ZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL21vZGVsL1UyUC1VTUwtU3VwZXItdjItMDQwNTE2LmNhdCBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL21vZGVsL1UyUC1VTUwtU3VwZXItdjItMDQwNTE2LmNhdAppbmRleCAyM2JiYWY5Li42MTYzMDhjIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9tb2RlbC9VMlAtVU1MLVN1cGVyLXYyLTA0MDUxNi5jYXQKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvbW9kZWwvVTJQLVVNTC1TdXBlci12Mi0wNDA1MTYuY2F0CkBAIC0xLDcgKzEsNyBAQAogDQogKG9iamVjdCBQZXRhbA0KLSAgICB2ZXJzaW9uICAgIAk0Nw0KLSAgICBfd3JpdHRlbiAgIAkiUm9zZSA4LjAuMDMwMy4xNDAwIg0KKyAgICB2ZXJzaW9uICAgIAk0OA0KKyAgICBfd3JpdHRlbiAgIAkiUm9zZSA4LjEuMDMwNy4wOTAwIg0KICAgICBjaGFyU2V0ICAgIAkwKQ0KIA0KIChvYmplY3QgQ2xhc3NfQ2F0ZWdvcnkgIlVNTCINCkBAIC00Niw2ICs0Niw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIkNsYXNzIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0Q1RUM2REQwMDFDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiRXh0ZW5kcyB0aGUgbWV0YWNsYXNzIENsYXNzIHdpdGggdGhlIGNhcGFiaWxpdHkgdG8gaGF2ZSBhbiBpbnRlcm5hbCBzdHJ1Y3R1cmUgYW5kIHBvcnRzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRDVFQzZGRTAxRTYiDQpAQCAtMTc2LDYgKzE3Nyw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIkNvbGxhYm9yYXRpb25PY2N1cnJlbmNlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I4ODUxMzgwMjMxIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBjb2xsYWJvcmF0aW9uIG9jY3VycmVuY2UgcmVwcmVzZW50cyBvbmUgcGFydGljdWxhciB1c2Ugb2YgYSBjb2xsYWJvcmF0aW9uIHRvIGV4cGxhaW4gdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgcHJvcGVydGllcyBvZiBhIGNsYXNzaWZpZXIuIEEgY29sbGFib3JhdGlvbiBvY2N1cnJlbmNlIGluZGljYXRlcyBhIHNldCBvZiByb2xlcyBhbmQgY29ubmVjdG9ycyB0aGF0IGNvb3BlcmF0ZSB3aXRoaW4gdGhlIGNsYXNzaWZpZXIgYWNjb3JkaW5nIHRvIGEgZ2l2ZW4gY29sbGFib3JhdGlvbiwgaW5kaWNhdGVkIGJ5IHRoZSB0eXBlIG9mIHRoZSBjb2xsYWJvcmF0aW9uIG9jY3VycmVuY2UuIFRoZXJlIG1heSBiZSBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiBhIGdpdmVuIGNvbGxhYm9yYXRpb24gd2l0aGluIGEgY2xhc3NpZmllciwgZWFjaCBpbnZvbHZpbmcgYSBkaWZmZXJlbnQgc2V0IG9mIHJvbGVzIGFuZCBjb25uZWN0b3JzLiBBIGdpdmVuIHJvbGUgb3IgY29ubmVjdG9yIG1heSBiZSBpbnZvbHZlZCBpbiBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB0aGUgc2FtZSBvciBkaWZmZXJlbnQgY29sbGFib3JhdGlvbnMuIEFzc29jaWF0ZWQgZGVwZW5kZW5jaWVzIG1hcCBmZWF0dXJlcyBvZiB0aGUgY29sbGFib3JhdGlvbiB0eXBlIHRvIGZlYXR1cmVzIGluIHRoZSBjbGFzc2lmaWVyLiBUaGVzZSBkZXBlbmRlbmNpZXMgaW5kaWNhdGUgd2hpY2ggcm9sZSBpbiB0aGUgY2xhc3NpZmllciBwbGF5cyB3aGljaCByb2xlIGluIHRoZSBjb2xsYWJvcmF0aW9uLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZFMzIwMjAwMzIiDQpAQCAtMTgzLDYgKzE4NSw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRUNCOTAxQjAiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiQ29sbGFib3JhdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjMzN0E0NzI5MDA3OCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgY29sbGFib3JhdGlvbiBpcyByZXByZXNlbnRlZCBhcyBhIGtpbmQgb2YgY2xhc3NpZmllciBhbmQgZGVmaW5lcyBhIHNldCBvZiBjb29wZXJhdGluZyBlbnRpdGllcyB0byBiZSBwbGF5ZWQgYnkgaW5zdGFuY2VzIChpdHMgcm9sZXMpLCBhcyB3ZWxsIGFzIGEgc2V0IG9mIGNvbm5lY3RvcnMgdGhhdCBkZWZpbmUgY29tbXVuaWNhdGlvbiBwYXRocyBiZXR3ZWVuIHRoZSBwYXJ0aWNpcGF0aW5nIGluc3RhbmNlcy4gVGhlIGNvb3BlcmF0aW5nIGVudGl0aWVzIGFyZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgY29sbGFib3JhdGlvbiAoc2VlIJNQcm9wZXJ0eZQgb24gcGFnZSAxNjEpLiBBIGNvbGxhYm9yYXRpb24gc3BlY2lmaWVzIGEgdmlldyAob3IgcHJvamVjdGlvbikgb2YgYSBzZXQgb2YgY29vcGVyYXRpbmcgY2xhc3NpZmllcnMuIEl0IGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgbGlua3MgYmV0d2VlbiBpbnN0YW5jZXMgdGhhdCBwbGF5IHRoZSByb2xlcyBvZiB0aGUgY29sbGFib3JhdGlvbiwgYXMgd2VsbCBhcyB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgb2YgdGhlIGNsYXNzaWZpZXJzIHRoYXQgc3BlY2lmeSB0aGUgcGFydGljaXBhdGluZyBpbnN0YW5jZXMuIFNldmVyYWwgY29sbGFib3JhdGlvbnMgbWF5IGRlc2NyaWJlIGRpZmZlcmVudCBwcm9qZWN0aW9ucyBvZiB0aGUgc2FtZSBzZXQgb2YgY2xhc3NpZmllcnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQ0I1NzcyMDBDOCINCkBAIC0xOTksNiArMjAyLDcgQEAKIAkJCSAgICBsYW5ndWFnZSAgIAkibm9uZSIpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQzFBNkE3MDI4MiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkNsYXNzaWZpZXIgaXMgZXh0ZW5kZWQgd2l0aCB0aGUgY2FwYWJpbGl0eSB0byBvd24gY29sbGFib3JhdGlvbiBvY2N1cnJlbmNlcy4gVGhlc2UgY29sbGFib3JhdGlvbiBvY2N1cnJlbmNlcyBsaW5rIGEgY29sbGFib3JhdGlvbiB3aXRoIHRoZSBjbGFzc2lmaWVyIHRvIGdpdmUgYSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2luZ3Mgb2YgdGhlIGNsYXNzaWZpZXIuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFODIyNTI0MDFBQyINCkBAIC0zNjUsNyArMzY5LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMjEyDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkOCIgQDgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDc1LCA1NTYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA3NSwgNTcyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4MCw3ICszODQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbGxhYm9yYXRpb25Sb2xlIiBAOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NzMsIC0zMDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY3MywgLTI5MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTIsNyArMzk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTcwLCA1OTEpDQorCQkJCQkJbG9jYXRpb24gICAJKDk3MCwgNjA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE2LDExICs0MjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDc1LCA1NTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgwNCwgNTU2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA3NSwgNTcyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MDQsIDU3MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjEsIDUyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoODYxLCA1MzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDEsNyArNDQ1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5DQotCQkJCQkJbG9jYXRpb24gICAJKDk1NSwgNjM2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NTUsIDY1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2Miw3ICs0NjYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkOSIgQDEzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY3MywgLTMwOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjczLCAtMjkyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NywxMSArNDgxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA3NSwgNTU2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzQ2LCA1NTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDc1LCA1NzIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDYsIDU3MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI3NiwgNTI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjc2LCA1NDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MjMsNyArNzI3LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMjI1DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNCIgQDI1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjA1MywgNzU3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIwNTMsIDY3MykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzgsNyArNzQyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1IiBAMjYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYxMywgLTIzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2MTMsIC0xMDcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUzLDExICs3NTcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwNTMsIDc1NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM1OSwgNzU3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA1MywgNjczKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzU5LCA2NzMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2DQotCQkJCQkJbG9jYXRpb24gICAJKDIyNjEsIDcyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI2MSwgNjQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzc4LDcgKzc4Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXByZXNlbnRhdGlvbiIgQDI4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2MTMsIC0yMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjEzLCAtMTA3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc5MCw3ICs3OTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk1MywgNzk5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTUzLCA3MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04MTQsMTEgKzgxOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA1MywgNzU3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzQ3LCA3NTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDUzLCA2NzMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NDcsIDY3MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTgzOSwgNzI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODM5LCA2NDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04MzksNyArODQzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDI1LCA4NDApDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMjUsIDc1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg1OSw3ICs4NjMsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJODMNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYiIEAzMg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIwNTMsIDU4OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMDUzLCA2NzMpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc0LDcgKzg3OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib2NjdXJyZW5jZSIgQDMzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDM3LCAtMTA4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDM3LCAtMjMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2LDcgKzg5MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTIyLCA2MjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MjIsIDcxMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkxMCwxMSArOTE0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDUzLCA1ODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NDcsIDU4OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwNTMsIDY3MykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc0NywgNjczKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzk1LCA1NjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3OTUsIDY0NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzNSw3ICs5MzksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMzDQotCQkJCQkJbG9jYXRpb24gICAJKDIwNDAsIDY2NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA0MCwgNzQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTU2LDcgKzk2MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3IiBAMzcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MzcsIC0xMDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MzcsIC0yMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzEsMTEgKzk3NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA1MywgNTg4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzU5LCA1ODgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDUzLCA2NzMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzNTksIDY3MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI2NywgNTU1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjY3LCA2NDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05OTUsMTMgKzk5OSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzQNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIiIEAzOQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDk1NCwgNjYyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDk1NCwgNjkwKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNCODg1MTM4MDI3RSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicm9sZUJpbmRpbmciIEA0MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzUzLCAtNDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM1MywgLTE4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwMTMsNyArMTAxNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3ODUsIDYyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzg1LCA2NTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDM4LDExICsxMDQyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTQsIDY2MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjU2LCA2NjIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTQsIDY5MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjU2LCA2OTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwDQotCQkJCQkJbG9jYXRpb24gICAJKDcxOSwgNzEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MTksIDczOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwNjMsNyArMTA2Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODk2LCA1NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDg5NiwgNjA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA4NCw3ICsxMDg4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDMiIEA0NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzUzLCAtNDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM1MywgLTE4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwOTYsNyArMTEwMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDc5LCA3MDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwNzksIDczNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMjIsMTEgKzExMjYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk1NCwgNjYyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjUzLCA2NjIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTQsIDY5MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI1MywgNjkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTcwLCA2MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNzAsIDY0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExNDYsNyArMTE1MCw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk0Mg0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMCIgQDQ3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQ4MSwgODkxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE1MDAsIDg5MSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTYxLDcgKzExNjUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInR5cGUiIEA0OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM3LCAzMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4LCAzMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTczLDcgKzExNzcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU2NywgOTUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTg2LCA5NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTk3LDExICsxMjAxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDgxLCA4OTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0ODEsIDEwMDQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTAwLCA4OTEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDAsIDEwMDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ4DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzAsIDk1NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ0OSwgOTU2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTIyMiw3ICsxMjI2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDEiIEA1MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM3LCAzMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4LCAzMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMjM3LDExICsxMjQxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDgxLCA4OTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0ODEsIDc3OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MDAsIDg5MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwMCwgNzc4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDUyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDMwLCA4MTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NDksIDgxOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzMjEsNiArMTMyNSw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIlBvcnQiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQkFGRTJCMzAxMkMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJQb3J0cyByZXByZXNlbnQgaW50ZXJhY3Rpb24gcG9pbnRzIGJldHdlZW4gYSBjbGFzc2lmaWVyIGFuZCBpdHMgZW52aXJvbm1lbnQuIFRoZSBpbnRlcmZhY2VzIGFzc29jaWF0ZWQgd2l0aCBhIHBvcnQgc3BlY2lmeSB0aGUgbmF0dXJlIG9mIHRoZSBpbnRlcmFjdGlvbnMgdGhhdCBtYXkgb2NjdXIgb3ZlciBhIHBvcnQuIFRoZSByZXF1aXJlZCBpbnRlcmZhY2VzIG9mIGEgcG9ydCBjaGFyYWN0ZXJpemUgdGhlIHJlcXVlc3RzIHdoaWNoIG1heSBiZSBtYWRlIGZyb20gdGhlIGNsYXNzaWZpZXIgdG8gaXRzIGVudmlyb25tZW50IHRocm91Z2ggdGhpcyBwb3J0LiBUaGUgcHJvdmlkZWQgaW50ZXJmYWNlcyBvZiBhIHBvcnQgY2hhcmFjdGVyaXplIHJlcXVlc3RzIHRvIHRoZSBjbGFzc2lmaWVyIHRoYXQgaXRzIGVudmlyb25tZW50IG1heSBtYWtlIHRocm91Z2ggdGhpcyBwb3J0LiBBIHBvcnQgaGFzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgdGhhdCBhbnkgcmVxdWVzdHMgYXJyaXZpbmcgYXQgdGhpcyBwb3J0IGFyZSBoYW5kbGVkIGJ5IHRoZSBiZWhhdmlvciBvZiB0aGUgaW5zdGFuY2Ugb2YgdGhlIG93bmluZyBjbGFzc2lmaWVyLCByYXRoZXIgdGhhbiBiZWluZyBmb3J3YXJkZWQgdG8gYW55IGNvbnRhaW5lZCBpbnN0YW5jZXMsIGlmIGFueS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0JBRjZGRTAwM0U0Ig0KQEAgLTEzMzgsMTcgKzEzNDMsMTYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0JlaGF2aW9yIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQzE3MkVDMDJCMSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1NlcnZpY2UiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NFQ0Y2MjYwMTRCIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJInRydWUiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkVuY2Fwc3VsYXRlZENsYXNzaWZpZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRDAyNjIyRTAyMjMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJFeHRlbmRzIGEgY2xhc3NpZmllciB3aXRoIHRoZSBhYmlsaXR5IHRvIG93biBwb3J0cyBhcyBzcGVjaWZpYyBhbmQgdHlwZSBjaGVja2VkIGludGVyYWN0aW9uIHBvaW50cy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0Q1RUM2QTUwMDExIg0KQEAgLTE1NjUsNyArMTU2OSw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTQ4MQ0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTQ0KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTgiIEA1OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDQ2MywgOTQ1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDQ4MCwgOTQ1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU4MCw3ICsxNTg0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYXJ0V2l0aFBvcnQiIEA2MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMyLCAtNTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNSwgLTUwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU5Miw3ICsxNTk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYwDQotCQkJCQkJbG9jYXRpb24gICAJKDYwNywgOTg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MjQsIDk4OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2MTYsMTEgKzE2MjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA1OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQ2MywgOTQ1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NjMsIDEwMjcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0ODAsIDk0NSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDgwLCAxMDI3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDYyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzOTksIDk4NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDE2LCA5ODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjQxLDE0ICsxNjQ1LDE0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxOSIgQDYzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA1OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzIsIC01MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE1LCAtNTApDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZERkUyNjAzMkIiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDU5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDU4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDYzLCA5NDUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ2MywgODY0KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDgwLCA5NDUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ4MCwgODY0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6SW50ZXJmYWNlczo6SW50ZXJmYWNlIiBANjQNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTE4NTUsNyArMTg1OSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzMw0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTIiIEA3NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxODksIDYwMCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTg5LCA3MDgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTg2Nyw3ICsxODcxLDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc1DQogCQkJCQlQYXJlbnRfVmlldyAJQDc0DQotCQkJCQlsb2NhdGlvbiAgIAkoMjIwOCwgNjM4KQ0KKwkJCQkJbG9jYXRpb24gICAJKDIyMDgsIDc0NikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE4OTIsNyArMTg5Niw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3JlcXVpcmVkIiBANzYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDc0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY1LCAtNDYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NSwgLTM1NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTA0LDcgKzE5MDgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI3NywgNTQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjc3LCA2NTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTI4LDExICsxOTMyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANzQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTg5LCA2MDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzODEsIDYwMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxODksIDcwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MSwgNzA4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzYyLCA2NTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNjIsIDc2MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5NTMsNyArMTk1Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMyIgQDc5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA3NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NSwgLTQ2MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjUsIC0zNTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTk2OCwxMSArMTk3MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDc0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDY1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4OSwgNjAwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCA2MDApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTg5LCA3MDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5OTgsIDcwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAyNSwgNjQyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDI1LCA3NTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTkyLDcgKzE5OTYsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDINCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE2IiBAODENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMTg5LCA4MDMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjE4OSwgNzA4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwMDcsNyArMjAxMSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3Byb3ZpZGVkIiBAODINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDgxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU1MSwgLTI2NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTUxLCAtMzYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwMTksNyArMjAyMyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDgzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjc2LCA3NTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNzYsIDY2MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwNDMsMTEgKzIwNDcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxODksIDgwMykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MSwgODAzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4OSwgNzA4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzgxLCA3MDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDgyDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNjIsIDg1NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjM2MiwgNzYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA2OCw3ICsyMDcyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE3IiBAODUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDgxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU1MSwgLTI2NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTUxLCAtMzYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwODMsMTEgKzIwODcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxODksIDgwMykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk5OCwgODAzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4OSwgNzA4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCA3MDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDg1DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMTgsIDg1NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAxOCwgNzYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE0MSw3ICsyMTQ1LDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0NzIsIDQ2NikNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NzIsIDIyMSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMCIgQDg5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA5NCwgNTY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwOTQsIDU3MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTU2LDcgKzIxNjAsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkUG9ydCIgQDkwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4MTgsIDUzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MTgsIDU0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxNjgsNyArMjE3Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzM5LCA1MjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMzksIDUyNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxOTIsMTEgKzIxOTYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwOTQsIDU2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ2MiwgNTY5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA5NCwgNTcwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDYyLCA1NzApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MjQsIDYyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQyNCwgNjI0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjIxNyw3ICsyMjIxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjI4LCA0NTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjgsIDQ1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyNDEsNyArMjI0NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMSIgQDk0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4MTgsIDUzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MTgsIDU0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyNTYsMTEgKzIyNjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwOTQsIDU2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzI2LCA1NjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDk0LCA1NzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDcyNiwgNTcwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3ODcsIDUyMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzg3LCA1MjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMjgxLDcgKzIyODUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk0DQotCQkJCQkJbG9jYXRpb24gICAJKDEwMTMsIDYxNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTAxMywgNjE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjM2Niw2ICsyMzcwLDcgQEAKIAkJCSAgICBhYnN0cmFjdCAgIAlUUlVFKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlRyaWdnZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTExRUI0QjAxM0IiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHRyaWdnZXIgc3BlY2lmaWNhdGlvbiBtYXkgYmUgcXVhbGlmaWVkIGJ5IHRoZSBwb3J0IG9uIHdoaWNoIHRoZSBldmVudCBvY2N1cnJlZC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UxMUVCNzAwMDZDIg0KQEAgLTI0OTMsMTMgKzI0OTgsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTM4DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjIiIEAxMDINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3OTgsIDMxOSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3OTgsIDM1MykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRTAyMjYwMzAzNUYiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIzIiBAMTAzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ4MiwgLTE2ODEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00ODIsIC0xNjQ3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MTEsNyArMjUxNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTAzDQotCQkJCQkJbG9jYXRpb24gICAJKDY0OCwgMzYxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NDgsIDM5NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MzYsMTEgKzI1NDEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3OTgsIDMxOSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjExLCAzMTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3OTgsIDM1MykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjExLCAzNTMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjI5LCAzNzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyOSwgNDA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU2MSw3ICsyNTY2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9uUG9ydCIgQDEwNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTAyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00ODIsIC0xNjgxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDgyLCAtMTY0NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTczLDcgKzI1NzgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjIsIDI3OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODYyLCAzMTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTk3LDExICsyNjAyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTAyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc5OCwgMzE5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5ODYsIDMxOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc5OCwgMzUzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5ODYsIDM1MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTEsIDM2MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTExLCAzOTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjIxLDEzICsyNjI2LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk0Mg0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjAiIEAxMDkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTc2LCAzMjUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU3NiwgMzQ1KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjNFOTNBMDM5NiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjEiIEAxMTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzA4LCAyMDcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDEzMDgsIDIyNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjM5LDcgKzI2NDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzczLCAzNjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NzMsIDM4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2NjQsMTEgKzI2NjksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTAwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU3NiwgMzI1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODIzLCAzMjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTc2LCAzNDUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4MjMsIDM0NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzc4LCAyOTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NzgsIDMxNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2ODksNyArMjY5NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwb3J0IiBAMTEzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMwOCwgMjA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzA4LCAyMjcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjcwMSw3ICsyNzA2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ0NywgMzY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDQ3LCAzODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzI1LDExICsyNzMwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NzYsIDMyNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMzMCwgMzI1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU3NiwgMzQ1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzMwLCAzNDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM4OCwgMjk2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzg4LCAzMTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzcyLDYgKzI3NzcsNyBAQAogCQkgICAgbG9naWNhbF9tb2RlbHMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCQkob2JqZWN0IENsYXNzICJDb25uZWN0b3JFbmQiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQjZENzQ0RTAwOEMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIGNvbm5lY3RvciBlbmQgaXMgYW4gZW5kcG9pbnQgb2YgYSBjb25uZWN0b3IsIHdoaWNoIGF0dGFjaGVzIHRoZSBjb25uZWN0b3IgdG8gYSBjb25uZWN0YWJsZSBlbGVtZW50LiBFYWNoIGNvbm5lY3RvciBlbmQgaXMgcGFydCBvZiBvbmUgY29ubmVjdG9yLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZGQjVENjAzNkYiDQpAQCAtMjc3OSw2ICsyNzg1LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUFGRDUyMDJEQyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJDb25uZWN0b3IiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQjZENzUxNDAzOEUiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJFYWNoIGNvbm5lY3RvciBtYXkgYmUgYXR0YWNoZWQgdG8gdHdvIG9yIG1vcmUgY29ubmVjdGFibGUgZWxlbWVudHMsIGVhY2ggcmVwcmVzZW50aW5nIGEgc2V0IG9mIGluc3RhbmNlcy4gRWFjaCBjb25uZWN0b3IgZW5kICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNCNkQ3NjdEMDBFNiINCkBAIC0yNzg2LDYgKzI3OTMsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUZEMjIwMzM3IikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlByb3BlcnR5Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I5OTgyNUUwM0I0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiSW4gdGhlIG1ldGFtb2RlbCwgUHJvcGVydHkgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiBEZXBsb3ltZW50VGFyZ2V0LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0MxNkY1QTAwREEiDQpAQCAtMjc5Nyw2ICsyODA1LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIxRDc5MDEwMSIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJTdHJ1Y3R1cmVkQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQzE2RTIzMDFDMCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgc3RydWN0dXJlZCBjbGFzc2lmaWVyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB0aGF0IHJlcHJlc2VudHMgYW55IGNsYXNzaWZpZXIgd2hvc2UgYmVoYXZpb3IgY2FuIGJlIGZ1bGx5IG9yIHBhcnRseSBkZXNjcmliZWQgYnkgdGhlIGNvbGxhYm9yYXRpb24gb2Ygb3duZWQgb3IgcmVmZXJlbmNlZCBpbnN0YW5jZXMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMEI5ODQ4MDFENSINCkBAIC0yODA5LDYgKzI4MTgsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ29ubmVjdGFibGVFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NDMTZGNUEwMEE0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBDb25uZWN0YWJsZUVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIHJlcHJlc2VudGluZyBhIHNldCBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgb3duZWQgYnkgYSBjb250YWluaW5nIGNsYXNzaWZpZXIgaW5zdGFuY2UuIENvbm5lY3RhYmxlIGVsZW1lbnRzIG1heSBiZSBqb2luZWQgYnkgYXR0YWNoZWQgY29ubmVjdG9ycyBhbmQgc3BlY2lmeSBjb25maWd1cmF0aW9ucyBvZiBsaW5rZWQgaW5zdGFuY2VzIHRvIGJlIGNyZWF0ZWQgd2l0aGluIGFuIGluc3RhbmNlIG9mIHRoZSBjb250YWluaW5nIGNsYXNzaWZpZXIuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMDNDRUUzMDNBQyINCkBAIC0zMDkwLDcgKzMxMDAsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk1MTgNCiAJCQkJICAgIGhlaWdodCAgICAgCTE1NykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI0IiBAMTIwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjQwMCwgNzEyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIzOTcsIDcxMikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTAyLDcgKzMxMTIsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIxDQogCQkJCQlQYXJlbnRfVmlldyAJQDEyMA0KLQkJCQkJbG9jYXRpb24gICAJKDIzNjMsIDcwMSkNCisJCQkJCWxvY2F0aW9uICAgCSgyMzYwLCA3MDEpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTI3LDcgKzMxMzcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInR5cGUiIEAxMjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MjQsIDI1MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTIxLCAyNTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzEzOSw3ICszMTQ5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQ4OSwgNzkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNDg2LCA3OTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTYzLDExICszMTczLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTIwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDExOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0MDAsIDcxMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQwMCwgODM3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjM5NywgNzEyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzk3LCA4MzcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjMzOCwgNzk3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzM1LCA3OTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTg4LDcgKzMxOTgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjUiIEAxMjUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MjQsIDI1MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTIxLCAyNTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMjAzLDExICszMjEzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTIwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDExOQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0MDAsIDcxMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQwMCwgNTg4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjM5NywgNzEyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzk3LCA1ODgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM1MSwgNjE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzQ4LCA2MTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4MzYsMTMgKzM4NDYsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJNzI1DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjYiIEAxNTgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4NjgsIDg1NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSg4NjgsIDkxMikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQkM4QjI2MTAyNjAiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI3IiBAMTU5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNTgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM1NiwgNTY4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzU2LCA2MjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzg1NCw3ICszODY0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTU1LCA4MTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDU1NSwgODcxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzg3OSwxMSArMzg4OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE1OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjgsIDg1NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDc2LCA4NTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjgsIDkxMikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDc2LCA5MTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTUxLCA4MTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDU1MSwgODcxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzkwNCw3ICszOTE0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU5DQotCQkJCQkJbG9jYXRpb24gICAJKDY5OCwgODk1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2OTgsIDk1MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MjUsNyArMzkzNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZEF0dHJpYnV0ZSIgQDE2Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTU4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNTYsIDU2OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM1NiwgNjI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MzcsNyArMzk0Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYzDQotCQkJCQkJbG9jYXRpb24gICAJKDExMDcsIDgxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEwNywgODc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzk2MSwxMSArMzk3MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE1OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjgsIDg1NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2MCwgODU2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY4LCA5MTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNjAsIDkxMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjIwLCA5MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjAsIDk2NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5ODYsNyArMzk5Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDM3LCA3NDApDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMzcsIDc5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMDksNyArNDAxOSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkxMTcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI4IiBAMTY3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoODY4LCA5OTQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODY4LCA5MTIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAyNCw3ICs0MDM0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvcGFydCIgQDE2OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU5OCwgMTMwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1OTgsIDQ4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMzYsNyArNDA0Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY4DQotCQkJCQkJbG9jYXRpb24gICAJKDExNjQsIDk1NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2NCwgODcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA2MCwxMSArNDA3MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjgsIDk5NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2MCwgOTk0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY4LCA5MTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNjAsIDkxMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjA4LCAxMDI5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjA4LCA5NDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDg1LDcgKzQwOTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjkiIEAxNzENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg1OTgsIDEzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTk4LCA0OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTAwLDExICs0MTEwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTY3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE1Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2OCwgOTk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NzYsIDk5NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2OCwgOTEyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NzYsIDkxMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NTEsIDk2NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTUxLCA4ODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Mjg4LDcgKzQyOTgsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxNjINCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMiIgQDE4MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg2NiwgMTE4NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg4NjYsIDExNzUpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMwMyw3ICs0MzEzLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZENvbm5lY3RvciIgQDE4Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU5NiwgMzIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1OTYsIDMxMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzE1LDcgKzQzMjUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDgwLCAxMTUxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDgwLCAxMTQyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMzOSwxMSArNDM0OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjYsIDExODQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNTcsIDExODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjYsIDExNzUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNTcsIDExNzUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIxNywgMTIzOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIxNywgMTIyOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzNjQsNyArNDM3NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NzYsIDExMDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3NiwgMTA5OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzODUsNyArNDM5NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMyIgQDE4Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU5NiwgMzIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1OTYsIDMxMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDAwLDExICs0NDEwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTgxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE1Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2NiwgMTE4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDc2LCAxMTg0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY2LCAxMTc1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NzYsIDExNzUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTg2LCAxMjIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1ODYsIDEyMTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDI1LDcgKzQ0MzUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODA1LCAxMjY0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MDUsIDEyNTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NjM5LDYgKzQ2NDksNyBAQAogCQkgICAgbG9naWNhbF9tb2RlbHMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCQkob2JqZWN0IENsYXNzICJWYXJpYWJsZSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFOEEwNkRGMDI4NiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgdmFyaWFibGUgaXMgY29uc2lkZXJlZCBhIGNvbm5lY3RhYmxlIGVsZW1lbnQuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFOEEwNzYwMDAzMyINCkBAIC01NDc0LDYgKzU0ODUsNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJDaGFuZ2VUcmlnZ2VyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I5RDIyOTYwMkE5Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBjaGFuZ2UgdHJpZ2dlciBzcGVjaWZpZXMgYW4gZXZlbnQgdGhhdCBvY2N1cnMgd2hlbiBhIEJvb2xlYW4tdmFsdWVkIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlIGFzIGEgcmVzdWx0IG9mIGEgY2hhbmdlIGluICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNCOUQyMjk2MDJBOCINCkBAIC01NDgyLDYgKzU0OTQsNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJDbGFzcyINCiAJCQkgICAgcXVpZCAgICAgICAJIjNCQzhDMDVFMDIwNSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgY2xhc3MgbWF5IGJlIGRlc2lnbmF0ZWQgYXMgYWN0aXZlLCBpLmUuLCBlYWNoIG9mIGl0cyBpbnN0YW5jZSBoYXZpbmcgaXRzIG93biB0aHJlYWQgb2YgY29udHJvbCwgb3IgcGFzc2l2ZSwgaS5lLiwgZWFjaCBvZiBpdHMgaW5zdGFuY2UgZXhlY3V0aW5nIHdpdGhpbiB0aGUgY29udGV4dCBvZiBzb21lIG90aGVyIG9iamVjdC4gQSBjbGFzcyBtYXkgYWxzbyBzcGVjaWZ5IHdoaWNoIHNpZ25hbHMgdGhlIGluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGhhbmRsZS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0QwQkFGODgwMzZFIg0KQEAgLTU0OTUsMTAgKzU1MDgsMTAgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0FjdGl2ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0MwRDdFMDAxMDgiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlRyaWdnZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQjlEMjI5NjAyQTUiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHRyaWdnZXIgc3BlY2lmaWVzIHRoZSBhbiBldmVudCB0aGF0IG1heSBjYXVzZSB0aGUgZXhlY3V0aW9uIG9mIGFuIGFzc29jaWF0ZWQgYmVoYXZpb3IuIEFuIGV2ZW50IGlzIG9mdGVuIHVsdGltYXRlbHkgY2F1c2VkIGJ5IHRoZSBleGVjdXRpb24gb2YgYW4gYWN0aW9uLCBidXQgbmVlZCBub3QgYmUuIFRyaWdnZXIgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSI0MEFCN0Y5RjAxMDMiDQpAQCAtNTUwOCw2ICs1NTIxLDcgQEAKIAkJCSAgICBhYnN0cmFjdCAgIAlUUlVFKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkludGVyZmFjZSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQzBEOEIwMDI4RSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkFkZHMgdGhlIGNhcGFiaWxpdHkgZm9yIGludGVyZmFjZXMgdG8gaW5jbHVkZSByZWNlcHRpb25zIChpbiBhZGRpdGlvbiB0byBvcGVyYXRpb25zKS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UxMUVBQUYwMDMyIg0KQEAgLTU1MTUsNiArNTUyOSw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzMzQyQTE5NTAxNEQiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiUmVjZXB0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiMzNFQzEzMjUwMTQwIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSByZWNlcHRpb24gaXMgYSBkZWNsYXJhdGlvbiBzdGF0aW5nIHRoYXQgYSBjbGFzc2lmaWVyIGlzIHByZXBhcmVkIHRvIHJlYWN0IHRvIHRoZSByZWNlaXB0IG9mIGEgc2lnbmFsLiBBIHJlY2VwdGlvbiBkZXNpZ25hdGVzIGEgc2lnbmFsIGFuZCBzcGVjaWZpZXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9yYWwgcmVzcG9uc2UuIFRoZSBkZXRhaWxzIG9mIGhhbmRsaW5nIGEgc2lnbmFsIGFyZSBzcGVjaWZpZWQgYnkgdGhlIGJlaGF2aW9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVjZXB0aW9uIG9yIHRoZSBjbGFzc2lmaWVyIGl0c2VsZi4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiMzNGMjM3MkQwMTcyIg0KQEAgLTU1MjMsNiArNTUzOCw3IEBACiAJCQkgICAgbGFuZ3VhZ2UgICAJIm5vbmUiKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlNpZ25hbCINCiAJCQkgICAgcXVpZCAgICAgICAJIjMzODkwMzBCMDBFNiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgc2lnbmFsIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiB0eXBlIG9mIHNlbmQgcmVxdWVzdCBpbnN0YW5jZXMgY29tbXVuaWNhdGVkIGJldHdlZW4gb2JqZWN0cy4gVGhlIHJlY2VpdmluZyBvYmplY3QgaGFuZGxlcyB0aGUgc2lnbmFsIGluc3RhbmNlIGFzIHNwZWNpZmllZCBieSBpdHMgcmVjZXB0aW9ucy4gVGhlIGRhdGEgY2FycmllZCBieSBhIHNlbmQgcmVxdWVzdCBhbmQgcGFzc2VkIHRvIGl0IGJ5IHRoZSBvY2N1cnJlbmNlIG9mIHRoZSBzZW5kIGludm9jYXRpb24gZXZlbnQgdGhhdCBjYXVzZWQgdGhlIHJlcXVlc3QgaXMgcmVwcmVzZW50ZWQgYXMgYXR0cmlidXRlcyBvZiB0aGUgc2lnbmFsIGluc3RhbmNlLiBBIHNpZ25hbCBpcyBkZWZpbmVkIGluZGVwZW5kZW50bHkgb2YgdGhlIGNsYXNzaWZpZXJzIGhhbmRsaW5nIHRoZSBzaWduYWwuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMDlBRjUzMDM3QSINCkBAIC01NTM5LDYgKzU1NTUsNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJUaW1lVHJpZ2dlciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNCOUQyMjk2MDI5QiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgdGltZSB0cmlnZ2VyIHNwZWNpZmllcyBhIHRpbWUgZXZlbnQsIHdoaWNoIG1vZGVscyB0aGUgZXhwaXJhdGlvbiBvZiBhIHNwZWNpZmljIGRlYWRsaW5lLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQjlEMjI5NjAyOUMiDQpAQCAtNTU0OCw3ICs1NTY1LDYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlbGF0aXZlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMzkxOENDMDAzQSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCiAJCQkgICAgbGFuZ3VhZ2UgICAJIm5vbmUiKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkNhbGxDb25jdXJyZW5jeUtpbmQiDQpAQCAtNTU1OCw2ICs1NTc0LDcgQEAKIAkJCQkgICAgbmFtZSAgICAgICAJIkNPUkJBIERlY2xhcmF0aW9uIg0KIAkJCQkgICAgdmFsdWUgICAgICAJImVudW0gQ2FsbENvbmN1cnJlbmN5S2luZCB7IGNja19zZXF1ZW50aWFsLCBjY2tfZ3VhcmRlZCwgY2NrX2NvbmN1cnJlbnQgfSA7IikpDQogCQkJICAgIHF1aWQgICAgICAgCSIzM0YwRUMyMDAyQkMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJDYWxsQ29uY3VycmVuY3lLaW5kIGlzIGFuIGVudW1lcmF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBsaXRlcmFsczoglSBzZXF1ZW50aWFsIE5vIGNvbmN1cnJlbmN5IG1hbmFnZW1lbnQgbWVjaGFuaXNtIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlcmF0aW9uIGFuZCwgdGhlcmVmb3JlLCBjb25jdXJyZW5jeSBjb25mbGljdHMgbWF5IG9jY3VyLiBJbnN0YW5jZXMgdGhhdCBpbnZva2UgYSBiZWhhdmlvcmFsIGZlYXR1cmUgbmVlZCB0byBjb29yZGluYXRlIHNvIHRoYXQgb25seSBvbmUgaW52b2NhdGlvbiB0byBhIHRhcmdldCBvbiBhbnkgYmVoYXZpb3JhbCBmZWF0dXJlIG9jY3VycyBhdCBvbmNlLiCVIGd1YXJkZWQgTXVsdGlwbGUgaW52b2NhdGlvbnMgb2YgYSBiZWhhdmlvcmFsIGZlYXR1cmUgbWF5IG9jY3VyIHNpbXVsdGFuZW91c2x5IHRvIG9uZSBpbnN0YW5jZSwgYnV0IG9ubHkgb25lIGlzIGFsbG93ZWQgdG8gY29tbWVuY2UuIFRoZSBvdGhlcnMgYXJlIGJsb2NrZWQgdW50aWwgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBmaXJzdCBiZWhhdmlvcmFsIGZlYXR1cmUgaXMgY29tcGxldGUuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgc3lzdGVtIGRlc2lnbmVyIHRvIGVuc3VyZSB0aGF0IGRlYWRsb2NrcyBkbyBub3Qgb2NjdXIgZHVlIHRvIHNpbXVsdGFuZW91cyBibG9ja3MuIJUgY29uY3VycmVudCBNdWx0aXBsZSBpbnZvY2F0aW9ucyBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZSBtYXkgb2NjdXIgc2ltdWx0YW5lb3VzbHkgdG8gb25lIGluc3RhbmNlIGFuZCBhbGwgb2YgdGhlbSBtYXkgcHJvY2VlZCBjb25jdXJyZW50bHkuICINCiAJCQkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJzZXF1ZW50aWFsIg0KQEAgLTU1NzIsNiArNTU4OSw3IEBACiAJCQkgICAgbGFuZ3VhZ2UgICAJIm5vbmUiKQ0KIAkJCShvYmplY3QgQ2xhc3MgIk1lc3NhZ2VUcmlnZ2VyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0U1Qjk2NkEwMkYyIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBtZXNzYWdlIHRyaWdnZXIgc3BlY2lmaWVzIHRoZSBhbiBvYnNlcnZhYmxlIGV2ZW50IGNhdXNlZCBieSBhIGVpdGhlciBhIGNhbGwgb3IgYSBzaWduYWwuIE1lc3NhZ2VUcmlnZ2VyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0U1Qjk2RDgwMkU2Ig0KQEAgLTU1ODAsNiArNTU5OCw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJBbnlUcmlnZ2VyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0U1Qjk4MkUwMjk4Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQW4gQW55VHJpZ2dlciBmb3IgYSBnaXZlbiBzdGF0ZSBzcGVjaWZpZXMgdGhhdCB0aGUgdHJhbnNpdGlvbiBpcyB0cmlnZ2VyZWQgZm9yIGFsbCBhcHBsaWNhYmxlIG1lc3NhZ2UgdHJpZ2dlcnMgZXhjZXB0IGZvciB0aG9zZSBzcGVjaWZpZWQgZXhwbGljaXRseSBvbiBvdGhlciB0cmFuc2l0aW9ucyBmb3IgdGhpcyBzdGF0ZS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0U1Qjk4NUYwMkFDIg0KQEAgLTU4MjcsMTMgKzU4NDYsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTM4DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDUiIEAyMzcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NzQsIDE1NjQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjgzLCAxNTY0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNCOTRBMTlFMDEzNyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDYiIEAyMzgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIzNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzY1LCAtMTU2MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM1NiwgLTE1NjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTg0NSw3ICs1ODY0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjMzLCAxNDg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NDIsIDE0ODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODcwLDExICs1ODg5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjM3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzNQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3NCwgMTU2NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjc0LCAxNDY0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjgzLCAxNTY0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2ODMsIDE0NjQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzE5LCAxNDk0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MjgsIDE0OTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODk1LDcgKzU5MTQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2lnbmFsIiBAMjQxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM2NSwgLTE1NjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNTYsIC0xNTYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5MDcsNyArNTkyNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQxDQotCQkJCQkJbG9jYXRpb24gICAJKDU0NywgMTYzMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTU2LCAxNjMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTkzMSwxMSArNTk1MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIzNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzQsIDE1NjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3NCwgMTY2NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4MywgMTU2NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjgzLCAxNjY1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQxDQotCQkJCQkJbG9jYXRpb24gICAJKDcwMywgMTYzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzEyLCAxNjMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjAwOCw3ICs2MDI3LDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJMjk4DQogCQkJCSAgICBoZWlnaHQgICAgIAkxNDYpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MyIgQDI0Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExNjAsIDE1NjYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTE2MiwgMTU2NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDIzLDcgKzYwNDIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9wZXJhdGlvbiIgQDI0Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NTcsIC0xMjkwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDU1LCAtMTI5MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDM1LDcgKzYwNTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDI5LCAxNjM3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDMxLCAxNjM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjA1OSwxMSArNjA3OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTYwLCAxNTY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTYwLCAxNjY3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE2MiwgMTU2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE2MiwgMTY2OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjA4LCAxNjQwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjEwLCAxNjQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjA4NCw3ICs2MTAzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ0IiBAMjUwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ1NywgLTEyOTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NTUsIC0xMjkwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwOTYsNyArNjExNSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjUwDQotCQkJCQkJbG9jYXRpb24gICAJKDExMTksIDE0ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMjEsIDE0ODYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTIxLDExICs2MTQwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjQ2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExNjAsIDE1NjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNjAsIDE0NjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTYyLCAxNTY2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTYyLCAxNDY1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjUwDQotCQkJCQkJbG9jYXRpb24gICAJKDEyMDksIDE1MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMTEsIDE1MDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTk4LDcgKzYyMTcsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAkzNzUNCiAJCQkJICAgIGhlaWdodCAgICAgCTE1NykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUzIiBAMjU1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjE5MCwgMTI0NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTk2LCAxMjQ0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMTMsNyArNjIzMiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY2hhbmdlRXhwcmVzc2lvbiIgQDI1Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjU1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDk2LCAyMTgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDEwMiwgMjE4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMjUsNyArNjI0NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjU2DQotCQkJCQkJbG9jYXRpb24gICAJKDE5ODQsIDEzNTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5OTAsIDEzNTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjQ5LDExICs2MjY4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjU1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxOTAsIDEyNDQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxOTAsIDEzOTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk2LCAxMjQ0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTk2LCAxMzk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjU2DQotCQkJCQkJbG9jYXRpb24gICAJKDIyNDMsIDEzNTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNDksIDEzNTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Mjc0LDcgKzYyOTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjU5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjE5NCwgMTU4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIwMCwgMTU4OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyOTUsMTQgKzYzMTQsMTQgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU0IiBAMjYwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoOTYsIDIxOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAyLCAyMTgpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQkQxREUzMDAwMzMiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI1NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNTQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTkwLCAxMjQ0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTkwLCAxMDkyKSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE5NiwgMTI0NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE5NiwgMTA5MikpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNvbW1vbkJlaGF2aW9yczo6Q29tbXVuaWNhdGlvbnM6OlRyaWdnZXIiIEAyNjENCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQogCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxOCwgNjQyKQ0KQEAgLTY0OTAsMjIgKzY1MDksNiBAQAogCQkJCQlsYWJlbCAgICAgIAkiVGltZVRyaWdnZXIiKQ0KIAkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I5RDIyOTYwMjlCIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjcyDQotCQkJCQlsb2NhdGlvbiAgIAkoMTQ5NywgMTAxOCkNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTEwDQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTM2NSkNCiAJCQkJICAgIHdpZHRoICAgICAgCTQwOQ0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTQ1KQ0KIAkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyNzMNCkBAIC02NTE4LDcgKzY1MjEsNyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY5MiwgODU5KQ0KIAkJCQkgICAgZHJhd1N1cHBsaWVyIAlAMjYyKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTEiIEAyNzQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNjcwLCAxMjQ3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE2OTIsIDEyNDcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjUzMyw3ICs2NTM2LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ3aGVuIiBAMjc1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjkwLCAyMjEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDMxMiwgMjIxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NDUsNyArNjU0OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc1DQotCQkJCQkJbG9jYXRpb24gICAJKDE1ODcsIDEzNjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MDksIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTY5LDExICs2NTcyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjc0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NzAsIDEyNDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NzAsIDE0MDkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjkyLCAxMjQ3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjkyLCAxNDA5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc1DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MDQsIDEzNjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MjYsIDEzNjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTk0LDcgKzY1OTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY2NiwgMTYwNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY4OCwgMTYwNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2MTUsMTQgKzY2MTgsMTQgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUyIiBAMjc5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjkwLCAyMjEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDMxMiwgMjIxKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0JEMUREQ0QwMEE4Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNzQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjcyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY3MCwgMTI0NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY3MCwgMTA4NikpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2OTIsIDEyNDcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2OTIsIDEwODYpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDb21tb25CZWhhdmlvcnM6OkJhc2ljQmVoYXZpb3JzOjpCZWhhdmlvcmVkQ2xhc3NpZmllciIgQDI4MA0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQpAQCAtNjY3OCwyNyArNjY4MSw0MCBAQAogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUFFQ0I5MDFCMCINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDI4MQ0KLQkJCQkJbG9jYXRpb24gICAJKDExOTYsIDE3OCkNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTQNCi0JCQkJCW1heF93aWR0aCAgCTU1MykNCiAJCQkJICAgIHdpZHRoICAgICAgCTY1MA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMzEwDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpDb21tdW5pY2F0aW9uczo6QmVoYXZpb3JlZENsYXNzaWZpZXIiIEAyODINCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNvbW1vbkJlaGF2aW9yczo6Q29tbXVuaWNhdGlvbnM6OlRyaWdnZXIiIEAyODINCisJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxOCwgNjQyKQ0KKwkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQorCQkJCQlzaXplICAgICAgIAkxMA0KKwkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KKwkJCQkJYm9sZCAgICAgICAJRkFMU0UNCisJCQkJCWl0YWxpY3MgICAgCVRSVUUNCisJCQkJCXVuZGVybGluZSAgCUZBTFNFDQorCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KKwkJCQkJY29sb3IgICAgICAJMA0KKwkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQorCQkJCQlQYXJlbnRfVmlldyAJQDI4Mg0KKwkJCQkJbG9jYXRpb24gICAJKDEyNjIsIDU3NikNCisJCQkJCW5saW5lcyAgICAgCTENCisJCQkJCW1heF93aWR0aCAgCTUxMg0KKwkJCQkJanVzdGlmeSAgICAJMA0KKwkJCQkJbGFiZWwgICAgICAJIlRyaWdnZXIiKQ0KKwkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQorCQkJCSAgICBxdWlkdSAgICAgIAkiM0I5RDIyOTYwMkE1Ig0KKwkJCQkgICAgd2lkdGggICAgICAJNTMwDQorCQkJCSAgICBoZWlnaHQgICAgIAkxNTgpDQorCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI4Mw0KKwkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KKwkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KKwkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI3RjlGMDEwMyINCisJCQkJICAgIGNsaWVudCAgICAgCUAyODINCisJCQkJICAgIHN1cHBsaWVyICAgCUAyODENCisJCQkJICAgIGxpbmVfc3R5bGUgCTApDQorCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDb21tb25CZWhhdmlvcnM6OkNvbW11bmljYXRpb25zOjpCZWhhdmlvcmVkQ2xhc3NpZmllciIgQDI4NA0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCiAJCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCkBAIC02NzEzLDcgKzY3MjksNyBAQAogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjgyDQorCQkJCQlQYXJlbnRfVmlldyAJQDI4NA0KIAkJCQkJbG9jYXRpb24gICAJKDQ3MiwgNTc4KQ0KIAkJCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCiAJCQkJCW5saW5lcyAgICAgCTINCkBAIC02NzI3LDQyICs2NzQzLDEyIEBACiAJCQkJICAgIHdpZHRoICAgICAgCTI1MA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTQ4DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyODMNCi0JCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCi0JCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCi0JCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCODYzQzAyNzMiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjgyDQotCQkJCSAgICBzdXBwbGllciAgIAlAMjgwDQotCQkJCSAgICBsaW5lX3N0eWxlIAkwKQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpDb21tdW5pY2F0aW9uczo6VHJpZ2dlciIgQDI4NA0KLQkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTE4LCA2NDIpDQotCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCXNpemUgICAgICAgCTEwDQotCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJaXRhbGljcyAgICAJVFJVRQ0KLQkJCQkJdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCXN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQljb2xvciAgICAgIAkwDQotCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjg0DQotCQkJCQlsb2NhdGlvbiAgIAkoMTI2MiwgNTc2KQ0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJNTEyDQotCQkJCQlqdXN0aWZ5ICAgIAkwDQotCQkJCQlsYWJlbCAgICAgIAkiVHJpZ2dlciIpDQotCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQjlEMjI5NjAyQTUiDQotCQkJCSAgICB3aWR0aCAgICAgIAk1MzANCi0JCQkJICAgIGhlaWdodCAgICAgCTE1OCkNCiAJCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjg1DQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQotCQkJCSAgICBxdWlkdSAgICAgIAkiNDBBQjdGOUYwMTAzIg0KKwkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI4NjNDMDI3MyINCiAJCQkJICAgIGNsaWVudCAgICAgCUAyODQNCi0JCQkJICAgIHN1cHBsaWVyICAgCUAyODENCisJCQkJICAgIHN1cHBsaWVyICAgCUAyODANCiAJCQkJICAgIGxpbmVfc3R5bGUgCTApDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1OCIgQDI4Ng0KIAkJCQkgICAgbG9jYXRpb24gICAJKDk4MiwgNjQyKQ0KQEAgLTY4MDYsNyArNjc5Miw3IEBACiAJCQkJCQlhbmNob3IgICAgIAkxDQogCQkJCQkJYW5jaG9yX2xvYyAJMQ0KIAkJCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCQltYXhfd2lkdGggIAkyMzMNCisJCQkJCQltYXhfd2lkdGggIAkyNjUNCiAJCQkJCQlqdXN0aWZ5ICAgIAkwDQogCQkJCQkJbGFiZWwgICAgICAJIitvd25lZFRyaWdnZXIiDQogCQkJCQkJcGN0RGlzdCAgICAJMC41OTI1OTMNCkBAIC02ODE2LDcgKzY4MDIsNyBAQAogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCODY3OTAxMzUiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4Ng0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyODQNCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjgyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMA0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg3DQpAQCAtNjg3Niw3ICs2ODYyLDcgQEAKIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiNDBBQjg2NzkwMTQ5Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODYNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjgyDQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTANCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MQ0KQEAgLTcwNDksNyArNzAzNSw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTQ0Mw0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMjc1KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDkiIEAyOTkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzc2LCA1MzApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc3NiwgNTQ1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNjQsNyArNzA1MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRSZWNlcHRpb24iIEAzMDANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI5OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjY0LCAtNDk2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjY0LCAtNDgxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNzYsNyArNzA2Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE2OTEsIDU2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY5MSwgNTgyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzEwMCwxMSArNzA4NiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyOTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzc2LCA1MzApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MTcsIDUzMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NzYsIDU0NSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxNywgNTQ1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE1NTAsIDUwMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU1MCwgNTE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzEyNSw3ICs3MTExLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE2MTYsIDQyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYxNiwgNDQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzE0OSw3ICs3MTM1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUwIiBAMzA0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI2NCwgLTQ5NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI2NCwgLTQ4MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTY0LDExICs3MTUwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjk5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NzYsIDUzMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjAzNSwgNTMwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc3NiwgNTQ1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDM1LCA1NDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk0MywgNDk4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTQzLCA1MTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTg4LDcgKzcxNzQsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzMNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ3IiBAMzA2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc4MCwgNzQyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE3ODAsIDczMCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MjAzLDcgKzcxODksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkUmVjZXB0aW9uIiBAMzA3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI2MCwgLTQ2NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI2MCwgLTQ3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MjE1LDcgKzcyMDEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjg5LCA3ODUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2ODksIDc3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcyMzksMTEgKzcyMjUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMDYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjk4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc4MCwgNzQyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTE3LCA3NDIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzgwLCA3MzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MTcsIDczMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTQ5LCA3MjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1NDksIDcxMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcyNjQsNyArNzI1MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTc1LCA4NjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1NzUsIDg1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcyODgsNyArNzI3NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0OCIgQDMxMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzA2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNjAsIC00NjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNjAsIC00NzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMwMywxMSArNzI4OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMwNg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyOTcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzgwLCA3NDIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwNDQsIDc0MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3ODAsIDczMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjA0NCwgNzMwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzExDQotCQkJCQkJbG9jYXRpb24gICAJKDE5NTcsIDcxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTk1NywgNzAxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUxOSwxNCArNzUwNSwxNCBAQAogCQkJCSAgICB3aWR0aCAgICAgIAkzNzUNCiAJCQkJICAgIGhlaWdodCAgICAgCTExOSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU3IiBAMzIzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjA0LCAxMDI5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDU5NCwgMTAyOSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0ZBRTFGMDAyQTYiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmluZ1NpZ25hbCIgQDMyNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzIzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDIzMiwgLTE4OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIyLCAtMTg5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUzOCw3ICs3NTI0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzczLCA4OTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDc2MywgODk5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU2MywxMSArNzU0OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMTQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MDQsIDEwMjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYwNCwgODU4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTk0LCAxMDI5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1OTQsIDg1OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MzAsIDg5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTIwLCA4OTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTg4LDcgKzc1NzQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI2MSwgOTU2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjUxLCA5NTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NjA5LDcgKzc1OTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRBdHRyaWJ1dGUiIEAzMjgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMyMw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzIsIC0xODkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIyMiwgLTE4OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc2MjEsNyArNzYwNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI4DQotCQkJCQkJbG9jYXRpb24gICAJKDc5MiwgMTEwNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzgyLCAxMTA2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzY0NiwxMSArNzYzMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MDQsIDEwMjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYwNCwgMTIwMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU5NCwgMTAyOSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTk0LCAxMjAwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI4DQotCQkJCQkJbG9jYXRpb24gICAJKDU0MSwgMTE0OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTMxLCAxMTQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzY3MSw3ICs3NjU3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI4DQotCQkJCQkJbG9jYXRpb24gICAJKDExMTIsIDExNTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMDIsIDExNTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Nzg5LDcgKzc3NzUsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk2NjINCiAJCQkJICAgIGhlaWdodCAgICAgCTE5NCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU1IiBAMzM1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OCwgMjMxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwODgsIDIyMikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03ODA0LDcgKzc3OTAsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJhaXNlZEV4Y2VwdGlvbiIgQDMzNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xOTAsIC0yMTAzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTkwLCAtMjExMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03ODE2LDcgKzc4MDIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTIsIDI3MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTEyLCAyNjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03ODQwLDExICs3ODI2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzM1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMzMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODgsIDIzMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzE5LCAyMzEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAyMjIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDcxOSwgMjIyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzM2DQotCQkJCQkJbG9jYXRpb24gICAJKDc1NiwgMTc4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NTYsIDE2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc4NjUsNyArNzg1MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDE4LCAzMTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMTgsIDMwNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc4ODYsNyArNzg3Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NiIgQDM0MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xOTAsIC0yMTAzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTkwLCAtMjExMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03ODk4LDcgKzc4ODQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNDENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzUxLCAxOTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTEsIDE4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc5MjMsMTEgKzc5MDksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzM0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OCwgMjMxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDU3LCAyMzEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAyMjIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NTcsIDIyMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDE3LCAyNzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MTcsIDI2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc5NjMsNiArNzk0OSw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIkJlaGF2aW9yIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I5QTZGNEYwMDA4Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQmVoYXZpb3IgaXMgYSBzcGVjaWZpY2F0aW9uIG9mIGhvdyBpdHMgY29udGV4dCBjbGFzc2lmaWVyIGNoYW5nZXMgc3RhdGUgb3ZlciB0aW1lLiBUaGlzIHNwZWNpZmljYXRpb24gbWF5IGJlIGVpdGhlciBhIGRlZmluaXRpb24gb2YgcG9zc2libGUgYmVoYXZpb3IgZXhlY3V0aW9uIG9yIGVtZXJnZW50IGJlaGF2aW9yLCBvciBhIHNlbGVjdGl2ZSBpbGx1c3RyYXRpb24gb2YgYW4gaW50ZXJlc3Rpbmcgc3Vic2V0IG9mIHBvc3NpYmxlIGV4ZWN1dGlvbnMuIFRoZSBsYXR0ZXIgZm9ybSBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgY2FwdHVyaW5nIGV4YW1wbGVzLCBzdWNoIGFzIGEgdHJhY2Ugb2YgYSBwYXJ0aWN1bGFyIGV4ZWN1dGlvbi4gQSBjbGFzc2lmaWVyIGJlaGF2aW9yIGlzIGFsd2F5cyBhIGRlZmluaXRpb24gb2YgYmVoYXZpb3IgYW5kIG5vdCBhbiBpbGx1c3RyYXRpb24uIEl0IGRlc2NyaWJlcyB0aGUgc2VxdWVuY2Ugb2Ygc3RhdGUgY2hhbmdlcyBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzaWZpZXIgbWF5IHVuZGVyZ28gaW4gdGhlIGNvdXJzZSBvZiBpdHMgbGlmZXRpbWUuIEl0cyBwcmVjaXNlIHNlbWFudGljcyBkZXBlbmRzIG9uIHRoZSBraW5kIG9mIGNsYXNzaWZpZXIuIEZvciBleGFtcGxlLCB0aGUgY2xhc3NpZmllciBiZWhhdmlvciBvZiBhIGNvbGxhYm9yYXRpb24gcmVwcmVzZW50cyBlbWVyZ2VudCBiZWhhdmlvciBvZiBhbGwgdGhlIHBhcnRzLCB3aGVyZWFzIHRoZSBjbGFzc2lmaWVyIGJlaGF2aW9yIG9mIGEgY2xhc3MgaXMganVzdCB0aGUgYmVoYXZpb3Igb2YgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcyBzZXBhcmF0ZWQgZnJvbSB0aGUgYmVoYXZpb3JzIG9mIGFueSBvZiBpdHMgcGFydHMuIFdoZW4gYSBiZWhhdmlvciBpcyBhc3NvY2lhdGVkIGFzIHRoZSBtZXRob2Qgb2YgYSBiZWhhdmlvcmFsIGZlYXR1cmUsIGl0IGRlZmluZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoYXQgZmVhdHVyZTsgaS5lLiwgdGhlIGNvbXB1dGF0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBlZmZlY3RzIG9mIHRoZSBiZWhhdmlvcmFsIGZlYXR1cmUuIEFzIGEgY2xhc3NpZmllciwgYSBiZWhhdmlvciBjYW4gYmUgc3BlY2lhbGl6ZWQuIEluc3RhbnRpYXRpbmcgYSBiZWhhdmlvciBpcyByZWZlcnJlZCB0byBhcyCTaW52b2NhdGluZ5QgdGhlIGJlaGF2aW9yLCBhbiBpbnN0YW50aWF0ZWQgYmVoYXZpb3IgaXMgYWxzbyBjYWxsZWQgYSBiZWhhdmlvciCTZXhlY3V0aW9uLpQgQSBiZWhhdmlvciBtYXkgYmUgaW52b2tlZCBkaXJlY3RseSBvciBpdHMgaW52b2NhdGlvbiBtYXkgYmUgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgYmVoYXZpb3JhbCBmZWF0dXJlIHRoYXQgc3BlY2lmaWVzIHRoaXMgYmVoYXZpb3IuIEEgYmVoYXZpb3IgY2FuIGFsc28gYmUgaW5zdGFudGlhdGVkIGFzIGFuIG9iamVjdCBpbiB2aXJ0dWUgb2YgaXQgYmVpbmcgYSBjbGFzcy4gVGhlIHNwZWNpZmljYXRpb24gb2YgYSBiZWhhdmlvciBjYW4gdGFrZSBhIG51bWJlciBvZiBmb3JtcywgYXMgZGVzY3JpYmVkIGluIHRoZSBzdWJjbGFzc2VzIG9mIEJlaGF2aW9yLiBCZWhhdmlvciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgZmFjdG9yaW5nIG91dCB0aGUgY29tbW9uYWxpdGllcyBvZiB0aGVzZSBkaWZmZXJlbnQgc3BlY2lmaWNhdGlvbiBtZWNoYW5pc21zLiBXaGVuIGEgYmVoYXZpb3IgaXMgaW52b2tlZCwgaXRzIGV4ZWN1dGlvbiByZWNlaXZlcyBhIHNldCBvZiBpbnB1dCB2YWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBhZmZlY3QgdGhlIGNvdXJzZSBvZiBleGVjdXRpb24gYW5kIGFzIGEgcmVzdWx0IG9mIGl0cyBleGVjdXRpb24gaXQgcHJvZHVjZXMgYSBzZXQgb2Ygb3V0cHV0IHZhbHVlcyB3aGljaCBhcmUgcmV0dXJuZWQsIGFzIHNwZWNpZmllZCBieSBpdHMgcGFyYW1ldGVycy4gVGhlIG9ic2VydmFibGUgZWZmZWN0cyBvZiBhIGJlaGF2aW9yIGV4ZWN1dGlvbiBtYXkgaW5jbHVkZSBjaGFuZ2VzIG9mIHZhbHVlcyBvZiB2YXJpb3VzIG9iamVjdHMgaW52b2x2ZWQgaW4gdGhlIGV4ZWN1dGlvbiwgdGhlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiBvYmplY3RzLCBnZW5lcmF0aW9uIG9mIGNvbW11bmljYXRpb25zIGJldHdlZW4gb2JqZWN0cywgYXMgd2VsbCBhcyBhbiBleHBsaWNpdCBzZXQgb2Ygb3V0cHV0IHZhbHVlcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RBQTFBM0YwMDUzIg0KQEAgLTc5NzIsMTEgKzc5NTksMTEgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlZW50cmFudCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREY0MEQzMzAxNjciDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQmVoYXZpb3JlZENsYXNzaWZpZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0MwRDVGRjAyRDMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIGNsYXNzaWZpZXIgY2FuIGhhdmUgYmVoYXZpb3Igc3BlY2lmaWNhdGlvbnMgZGVmaW5lZCBpbiBpdHMgbmFtZXNwYWNlLiBPbmUgb2YgdGhlc2UgbWF5IHNwZWNpZnkgdGhlIGJlaGF2aW9yIG9mIHRoZSBjbGFzc2lmaWVyIGl0c2VsZi4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0QwQjkwRjkwMEU0Ig0KQEAgLTc5ODUsNiArNzk3Miw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJPcGFxdWVFeHByZXNzaW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NFQjUyRjcwMzQ2Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHByZWNpc2VseSBkZWZpbmluZyB0aGUgYmVoYXZpb3Igb2YgYW4gb3BhcXVlIGV4cHJlc3Npb24uIEFuIG9wYXF1ZSBleHByZXNzaW9uIGlzIGRlZmluZWQgYnkgYSBiZWhhdmlvciByZXN0cmljdGVkIHRvIHJldHVybiBvbmUgcmVzdWx0LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTExRUEzNDAwNzIiDQpAQCAtNzk5Miw2ICs3OTgwLDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUFGODdEMDEwNyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJCZWhhdmlvcmFsRmVhdHVyZSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNEMDM4MEVBMDA5QyINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgYmVoYXZpb3JhbCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIChyZWFsaXplZCkgYnkgYSBiZWhhdmlvci4gQSBiZWhhdmlvcmFsIGZlYXR1cmUgc3BlY2lmaWVzIHRoYXQgYSBjbGFzc2lmaWVyIHdpbGwgcmVzcG9uZCB0byBhIGRlc2lnbmF0ZWQgcmVxdWVzdCBieSBpbnZva2luZyBpdHMgaW1wbGVtZW50aW5nIG1ldGhvZC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UxMUVBMDcwMTBEIg0KQEAgLTgwMDAsMTEgKzc5ODksMTEgQEAKIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0Fic3RyYWN0Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMDM4MTI1MDBEMyINCi0JCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCIpKQ0KKwkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iKSkNCiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJBY3Rpdml0eSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMENFRTZBMDNBNSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkFuIGFjdGl2aXR5IGNvbnRhaW5zIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgdGV4dCBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSBhIGNvbXB1dGF0aW9uLCBhbmQgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbGFuZ3VhZ2UuIE9DTCwgbmF0dXJhbCBsYW5ndWFnZSwgb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWN0aXZpdHkuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMENFRTg3MDFBOCINCkBAIC04MDE1LDEzICs4MDA0LDExIEBACiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0UxQkMyOTAxMjMiDQogCQkJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImxhbmd1YWdlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDRTFCQzJGMDFGRCINCiAJCQkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDYwIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I5QTZGOEIwMDkwIg0KQEAgLTg1NDMsMTMgKzg1MzAsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQzDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2NSIgQDM1Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDk5OCwgMTMzNCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5OTgsIDEzODApDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0M2NzJDNTIwMjVFIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJtZXRob2QiIEAzNTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM1Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3MDQsIDI1NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzA0LCAzMDApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODU2MSw3ICs4NTQ4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzU5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI2OCwgMTI5MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI2OCwgMTMzOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg1ODUsMTEgKzg1NzIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTk4LCAxMzM0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYxLCAxMzM0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTk4LCAxMzgwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYxLCAxMzgwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzU4DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMzQsIDEzODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMzQsIDE0MjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjEwLDcgKzg1OTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic3BlY2lmaWNhdGlvbiIgQDM2MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDcwNCwgMjU0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3MDQsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjIyLDcgKzg2MDksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3OTQsIDEyOTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDc5NCwgMTM0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NDYsMTEgKzg2MzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzQ1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTk4LCAxMzM0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MzUsIDEzMzQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTgsIDEzODApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYzNSwgMTM4MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2OTIsIDEzODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDY5MiwgMTQyOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NzAsMTMgKzg2NTcsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ4DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2MCIgQDM2NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDk5OSwgODM3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDk5OSwgMTAwNCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjlBNkY4QjAwOTAiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbnRleHQiIEAzNjUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM2NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjA5LCAtMzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02MDksIDEzNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04Njg4LDcgKzg2NzUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjIsIDg3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzYyLCAxMDM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODcxMiwxMSArODY5OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM2NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDgzNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjM4LCA4MzcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDEwMDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYzOCwgMTAwNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MjQsIDgwMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzI0LCA5NjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzM3LDcgKzg3MjQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRCZWhhdmlvciIgQDM2OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzY0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02MDksIC0zMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYwOSwgMTM0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3NDksNyArODczNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM2OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzY4DQotCQkJCQkJbG9jYXRpb24gICAJKDExOTQsIDc2OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE5NCwgOTM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc3MywxMSArODc2MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM2NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDgzNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM2MSwgODM3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTk5LCAxMDA0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYxLCAxMDA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzY4DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMTcsIDg5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMxNywgMTA1OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3OTgsNyArODc4NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM2OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTI3LCA4MDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMjcsIDk3MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4MTgsNyArODgwNSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzNQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjEiIEAzNzINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5OTksIDEwNDEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTk5LCAxMDA0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4MzMsNyArODgyMCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY2xhc3NpZmllckJlaGF2aW9yIiBAMzczDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzIzLCAzMzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDcyMywgMjk2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4NDUsNyArODgzMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzczDQotCQkJCQkJbG9jYXRpb24gICAJKDExNzcsIDk2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE3NywgOTIzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2OSwxMSArODg1NiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDEwNDEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNjEsIDEwNDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDEwMDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNjEsIDEwMDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMxNSwgMTA3NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMxNSwgMTA0MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4OTQsNyArODg4MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTMxLCAxMDA2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTMxLCA5NjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTE1LDcgKzg5MDIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjIiIEAzNzcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM3Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3MjMsIDMzMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzIzLCAyOTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODkzMCwxMSArODkxNywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTksIDEwNDEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYzOCwgMTA0MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk5OSwgMTAwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjM4LCAxMDA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc3DQotCQkJCQkJbG9jYXRpb24gICAJKDczMSwgMTAwOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzMxLCA5NzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTYyLDcgKzg5NDksNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1OTcsIDc4OCkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTk3LCA1NzUpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjYiIEAzODANCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMjA4LCA4NzUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIwOCwgMTA4NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTc3LDcgKzg5NjQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInBhcmFtZXRlciIgQDM4MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzgwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC0xMjEzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE4LCAtMTAwMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTg5LDcgKzg5NzYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNDE4LCA4MjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MTgsIDEwMzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDEzLDExICs5MDAwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzgwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM0OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMDgsIDg3NSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjU1MCwgODc1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIwOCwgMTA4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjU1MCwgMTA4NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTEyLCA5MjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1MTIsIDExMzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDM4LDcgKzkwMjUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzMCwgNzg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjMwLCA5OTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDU5LDcgKzkwNDYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjciIEAzODUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE4LCAtMTIxMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxOCwgLTEwMDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA3NCwxMSArOTA2MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjA4LCA4NzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NjcsIDg3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMDgsIDEwODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NjcsIDEwODYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTkzNSwgODM0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTM1LCAxMDQ1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA5OCw3ICs5MDg1LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQyDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2OCIgQDM4Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIyMDgsIDEwNTkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIwOCwgMTA4NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MTEwLDcgKzkwOTcsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg4DQogCQkJCQlQYXJlbnRfVmlldyAJQDM4Nw0KLQkJCQkJbG9jYXRpb24gICAJKDIyMjEsIDEwODgpDQorCQkJCQlsb2NhdGlvbiAgIAkoMjIyMSwgMTExNSkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkxMzUsNyArOTEyMiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL2Zvcm1hbFBhcmFtZXRlciIgQDM4OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzg3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC0xMDI5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE4LCAtMTAwMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MTQ3LDcgKzkxMzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzU3LCAxMDIyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzU3LCAxMDQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTE3MSwxMSArOTE1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjA4LCAxMDU5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTUwLCAxMDU5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIwOCwgMTA4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjU1MCwgMTA4NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTEzLCAxMTA0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNTEzLCAxMTMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTE5Niw3ICs5MTgzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg5DQotCQkJCQkJbG9jYXRpb24gICAJKDIzNTcsIDEwOTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNTcsIDExMjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjE3LDcgKzkyMDQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjkiIEAzOTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE4LCAtMTAyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxOCwgLTEwMDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTIzMiwxMSArOTIxOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjA4LCAxMDU5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODY3LCAxMDU5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIwOCwgMTA4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg2NywgMTA4NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTQ5LCAxMTAyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTQ5LCAxMTI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI1Niw3ICs5MjQzLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQzDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ3MCIgQDM5NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIyMDgsIDEyNTkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIwOCwgMTA4NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjY4LDcgKzkyNTUsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzk2DQogCQkJCQlQYXJlbnRfVmlldyAJQDM5NQ0KLQkJCQkJbG9jYXRpb24gICAJKDIyMDksIDEyOTEpDQorCQkJCQlsb2NhdGlvbiAgIAkoMjIwOSwgMTExOCkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyOTMsNyArOTI4MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3JldHVyblJlc3VsdCIgQDM5Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzk1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC04MjkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC0xMDAyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzMDUsNyArOTI5Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk3DQotCQkJCQkJbG9jYXRpb24gICAJKDI0MDQsIDEyMjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MDQsIDEwNTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzI5LDExICs5MzE2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzk1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM0OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMDgsIDEyNTkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1NTAsIDEyNTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjA4LCAxMDg2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTUwLCAxMDg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk3DQotCQkJCQkJbG9jYXRpb24gICAJKDI1MjMsIDEzMTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1MjMsIDExMzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzU0LDcgKzkzNDEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM2NSwgMTMwMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjM2NSwgMTEyOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzNzUsNyArOTM2Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3MSIgQDQwMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzk1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC04MjkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIC0xMDAyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzOTAsMTEgKzkzNzcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIwOCwgMTI1OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg2NywgMTI1OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMDgsIDEwODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NjcsIDEwODYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTkzMSwgMTMxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkzMSwgMTE0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1MzcsNyArOTUyNCw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTQzNw0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMjU3KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNzIiIEA0MDgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDg2LCA2MzQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4NiwgNjg2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NTIsNyArOTUzOSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3Jlc3VsdCIgQDQwOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDkwLCAtNTM2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5MCwgLTQ4NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTY0LDcgKzk1NTEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjg0LCA1ODkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyODQsIDY0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1ODgsMTEgKzk1NzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDA1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4NiwgNjM0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDAwLCA2MzQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg2LCA2ODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MDAsIDY4NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzM3LCA2NzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMzcsIDcyNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2MTMsNyArOTYwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3MyIgQDQxMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDkwLCAtNTM2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5MCwgLTQ4NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjI4LDExICs5NjE1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODYsIDYzNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzczLCA2MzQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg2LCA2ODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc3MywgNjg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDEyDQotCQkJCQkJbG9jYXRpb24gICAJKDgwNCwgNjg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MDQsIDc0MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4MzIsNyArOTgxOSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTMwMA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDc2IiBANDIyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA4LCAxOTcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA4LCAyODkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg0Nyw3ICs5ODM0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwcmVjb25kaXRpb24iIEA0MjMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjE2LCAtODUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02MTYsIDcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg1OSw3ICs5ODQ2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDI0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE3OCwgMTU2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTc4LCAyNDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODgzLDExICs5ODcwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDIyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkwOCwgMTk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzQ5LCAxOTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MDgsIDI4OSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM0OSwgMjg5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIzDQotCQkJCQkJbG9jYXRpb24gICAJKDEzMDUsIDI1MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMwNSwgMzQzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkwOCw3ICs5ODk1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIzDQotCQkJCQkJbG9jYXRpb24gICAJKDEwODIsIDIzOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA4MiwgMzMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkyOSw3ICs5OTE2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDc3IiBANDI3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYxNiwgLTg1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjE2LCA3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5NDQsMTEgKzk5MzEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTA4LCAxOTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ2NywgMTk3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTA4LCAyODkpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ2NywgMjg5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDI3DQotCQkJCQkJbG9jYXRpb24gICAJKDUyNCwgMjUwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MjQsIDM0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5NjksNyArOTk1Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NTAsIDk3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NTAsIDE4OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5ODksNyArOTk3Niw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkxMDANCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDc4IiBANDMwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA4LCAzNjYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA4LCAyODkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTAwMDQsNyArOTk5MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicG9zdGNvbmRpdGlvbiIgQDQzMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDMwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU3MiwgNjYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDU3MiwgLTExKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwMDE2LDcgKzEwMDAzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE5NSwgMzI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTk1LCAyNDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDA0MCwxMSArMTAwMjcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MzANCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTA4LCAzNjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDksIDM2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkwOCwgMjg5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzQ5LCAyODkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMwNSwgNDIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzA1LCAzNDMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDA2NSw3ICsxMDA1Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDgyLCA0MTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwODIsIDMzNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwMDg2LDcgKzEwMDczLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDc5IiBANDM1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MzANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTcyLCA2NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTcyLCAtMTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTAxMDEsMTEgKzEwMDg4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDMwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkwOCwgMzY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NjcsIDM2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkwOCwgMjg5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NjcsIDI4OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MjMsIDQxNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTIzLCAzNDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDEyNiw3ICsxMDExMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NTQsIDQ5NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjU0LCA0MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDE1Nyw2ICsxMDE0NCw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIlRpbWVFeHByZXNzaW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI0M0QwMzJDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBUaW1lRXhwcmVzc2lvbiBkZWZpbmVzIGEgdmFsdWUgc3BlY2lmaWNhdGlvbiB0aGF0IHJlcHJlc2VudCBhIHRpbWUgdmFsdWUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERTRCNTY1MDIyMyINCkBAIC0xMDE2NiwxMSArMTAxNTQsMTEgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJmaXJzdFRpbWUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGQzdENDIwMzUyIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJIlRydWUiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkR1cmF0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI1ODkwMDlFIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBkdXJhdGlvbiBkZWZpbmVzIGEgdmFsdWUgc3BlY2lmaWNhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgdGVtcG9yYWwgZGlzdGFuY2UgYmV0d2VlbiB0d28gdGltZSBleHByZXNzaW9ucyB0aGF0IHNwZWNpZnkgdGltZSBpbnN0YW50cy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI1REYwMEU4Ig0KQEAgLTEwMTgwLDExICsxMDE2OCwxMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImZpcnN0VGltZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZDN0Q3NDAyRkEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiVHJ1ZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiVGltZU9ic2VydmF0aW9uQWN0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RGQzdEQjgwMDc3Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBUaW1lT2JzZXJ2YXRpb25BY3Rpb24gZGVmaW5lcyBhbiBhY3Rpb24gdGhhdCBvYnNlcnZlcyB0aGUgY3VycmVudCBwb2ludCBpbiB0aW1lLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZDN0RGQTAyNTIiDQpAQCAtMTAxOTIsNiArMTAxODAsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiMzgwRjQzNjkwMjYyIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkR1cmF0aW9uSW50ZXJ2YWwiDQogCQkJICAgIHF1aWQgICAgICAgCSIzREU0QjVBMDAzNDAiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIER1cmF0aW9uSW50ZXJ2YWwgZGVmaW5lcyB0aGUgcmFuZ2UgYmV0d2VlbiB0d28gRHVyYXRpb25zLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREU0QjVCQjAzREYiDQpAQCAtMTAxOTksNiArMTAxODgsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEIzQUMwMTg5IikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlRpbWVDb25zdHJhaW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI2NTIwMzVBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBUaW1lQ29uc3RyYWludCBkZWZpbmVzIGEgQ29uc3RyYWludCB0aGF0IHJlZmVycyB0byBhIFRpbWVJbnRlcnZhbC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI2NjMwMjY0Ig0KQEAgLTEwMjA2LDYgKzEwMTk2LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTRCNUYwMDJDRCIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJUaW1lSW50ZXJ2YWwiDQogCQkJICAgIHF1aWQgICAgICAgCSIzREU0QjUzMjAwNDkiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIFRpbWVJbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byBUaW1lRXhwcmVzc2lvbnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERTRCNTc2MDIwMCINCkBAIC0xMDIxMyw2ICsxMDIwNCw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREU0QjNBQzAxODkiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjNERkM3RERBMDE2NiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbiBkZWZpbmVzIGFuIGFjdGlvbiB0aGF0IG9ic2VydmVzIGR1cmF0aW9uIGluIHRpbWUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERkM3RTA0MDE4RSINCkBAIC0xMDIyMCw2ICsxMDIxMiw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzODBGNDM2OTAyNjIiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiRHVyYXRpb25Db25zdHJhaW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RFNEI2OEEwMTIwIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBEdXJhdGlvbkNvbnN0cmFpbnQgZGVmaW5lcyBhIENvbnN0cmFpbnQgdGhhdCByZWZlcnMgdG8gYSBEdXJhdGlvbkludGVydmFsLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREU0QjZBNzAwMUQiDQpAQCAtMTAyMjcsNiArMTAyMjAsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEI1RjAwMkNEIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkludGVydmFsQ29uc3RyYWludCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNERTRCNUYwMDJDRCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgSW50ZXJ2YWxDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGFuIEludGVydmFsLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREU0QjYxQTAwRDkiDQpAQCAtMTAyMzQsNiArMTAyMjgsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUVENjcwMjNDIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkludGVydmFsIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RFNEIzQUMwMTg5Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQW4gSW50ZXJ2YWwgZGVmaW5lcyB0aGUgcmFuZ2UgYmV0d2VlbiB0d28gdmFsdWUgc3BlY2lmaWNhdGlvbnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERTRCM0MyMDIzRiINCkBAIC0xMDYxMCw3ICsxMDYwNSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE3NQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEwMCIgQDQ0NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxODksIDYyMikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTg5LCA1ODcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA2MjUsNyArMTA2MjAsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNwZWNpZmljYXRpb24iIEA0NDUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ0NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDYxLCA3MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2MSwgMzUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA2MzcsNyArMTA2MzIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDk1LCA2NjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwOTUsIDYzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA2NjIsMTEgKzEwNjU3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDQ0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxODksIDYyMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk4NCwgNjIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4OSwgNTg3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTg0LCA1ODcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0NDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAwOCwgNTc5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDA4LCA1NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDY4Nyw3ICsxMDY4Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTc4LCA3MzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNzgsIDcwMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA3MDgsMTcgKzEwNzAzLDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMDEiIEA0NDkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ0NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDYxLCA3MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2MSwgMzUpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEI2M0MwMUI2Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0NDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDQwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4OSwgNjIyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzk1LCA2MjIpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTg5LCA1ODcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzOTUsIDU4NykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDk4IiBANDUwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTY0MiwgMzE1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE1MDYsIDUzNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDczMyw3ICsxMDcyOCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWF4IiBANDUxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0NTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQwLCAtMjEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIwNCwgMjAwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwNzQ1LDcgKzEwNzQwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDUyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0NTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQwMSwgMzQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjY1LCA1NjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDc2OSwxMiArMTA3NjQsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREU0QjNDRTAwNkYiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ1MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NDINCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTUwNiwgNTM2KQ0KKwkJCQkJCSgxMjcyLCA1MzYpDQorCQkJCQkJKDEyNzIsIDQ4NCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY0MiwgMzE1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjcyLCAzMTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTA2LCA1MzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNzIsIDQ4NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzE4LCAyNjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDExODIsIDQ4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwNzk1LDIxICsxMDc5NCwyMSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkOTkiIEA0NTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ1MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNDAsIC0yMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjA0LCAyMDApDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEIzQ0UwMEYxIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0NTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDQzDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDE2NDIsIDMxNSkNCi0JCQkJCQkoMTc5MSwgMzE1KQ0KKwkJCQkJCSgxNTA2LCA1MzYpDQorCQkJCQkJKDE3OTEsIDUzNikNCiAJCQkJCQkoMTc5MSwgNTM3KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjQyLCAzMTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTA2LCA1MzYpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3OTEsIDUzNykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDk2IiBANDU1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQ0MCwgNDUxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEzNzEsIDUzNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMDgyNCw3ICsxMDgyMyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWluIiBANDU2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0NTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMyLCAxMzkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDYzLCAyMjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA4MzYsNyArMTA4MzUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDI0LCA0ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTUsIDU2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEwODYwLDEyICsxMDg1OSwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERTRCNDAwMDMzOCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDU1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ0Mg0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxMzcxLCA1MzYpDQorCQkJCQkJKDEyNzIsIDUzNikNCisJCQkJCQkoMTI3MiwgNDg0KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDQwLCA0NTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNzIsIDQ1MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNzEsIDUzNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI3MiwgNDg0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDU2DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMzgsIDQxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI2OSwgNTAzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTA4ODYsMTggKzEwODg5LDE4IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ5NyIgQDQ1OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDU1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDEzMiwgMTM5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2MywgMjI0KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERTRCNDAwMDNBNiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDU1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ0Mw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxNDQwLCA0NTEpDQotCQkJCQkJKDE1MjIsIDQ1MSkNCisJCQkJCQkoMTM3MSwgNTM2KQ0KKwkJCQkJCSgxNTIyLCA1MzYpDQogCQkJCQkJKDE1MjIsIDUzNykpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ0MCwgNDUxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM3MSwgNTM2KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTIyLCA1MzcpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDQ2MA0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KQEAgLTExMDA5LDcgKzExMDEyLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTYyDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkOTQiIEA0NjYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMjQzLCAxMjY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIyNDMsIDEyNzYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEwMjQsNyArMTEwMjcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNwZWNpZmljYXRpb24iIEA0NjcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ2Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDgxLCAtMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ4MSwgNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTAzNiw3ICsxMTAzOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ2OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDY3DQotCQkJCQkJbG9jYXRpb24gICAJKDIxNDYsIDEzMDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNDYsIDEzMTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMDYxLDExICsxMTA2NCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ2Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NjUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjQzLCAxMjY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDIwLCAxMjY5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI0MywgMTI3NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjAyMCwgMTI3NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ2Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDY3LCAxMjI2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDY3LCAxMjMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEwODYsNyArMTEwODksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDcwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0NjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIxMywgMTM0OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIxMywgMTM1NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTExMDcsMTUgKzExMTEwLDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ5NSIgQDQ3MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDY2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00ODEsIC0zKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDgxLCA0KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERTRCNkFFMDI1QSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDY2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ2MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNDMsIDEyNjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0NjYsIDEyNjkpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjQzLCAxMjc2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDY2LCAxMjc2KSkpKQ0KIAkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA0NzINCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREU0QjVCQjAzREYiDQpAQCAtMTExODcsNyArMTExOTAsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk1ODgNCiAJCQkJICAgIGhlaWdodCAgICAgCTE0NCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEwNCIgQDQ3Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyMzUsIDE1MzMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA5MiwgMTUzMykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMjAyLDcgKzExMjA1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkdXJhdGlvbiIgQDQ3Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDc2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDEyMCwgLTI0NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIzLCAtMjQ3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEyMTQsNyArMTEyMTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ3Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTM0LCAxMzk3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTEsIDEzOTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMjM5LDExICsxMTI0MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ3Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NzUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjM1LCAxNTMzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjM1LCAxMzYxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA5MiwgMTUzMykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA5MiwgMTM2MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ3Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MDYsIDEzOTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDc2MywgMTM5NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEyNjQsMTcgKzExMjY3LDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMDUiIEA0ODANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ3Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMjAsIC0yNDcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMywgLTI0NykNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZDN0U4MjAwODMiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ3Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NjMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjM1LCAxNTMzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjM1LCAxNzA1KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA5MiwgMTUzMykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA5MiwgMTcwNSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDg0IiBANDgxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxNCwgMTI0MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE0LCAxMjg3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEyODksNyArMTEyOTIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm1pbiIgQDQ4Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDgxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMzEsIC0zNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMzMSwgMTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTMwMSw3ICsxMTMwNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ4Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDgyDQotCQkJCQkJbG9jYXRpb24gICAJKDEzOTAsIDEyMDApDQorCQkJCQkJbG9jYXRpb24gICAJKDEzOTAsIDEyNDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMzI2LDExICsxMTMyOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NzUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE0LCAxMjQxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzU5LCAxMjQxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUxNCwgMTI4NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM1OSwgMTI4NykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0ODQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQ4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDY2LCAxMTU2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDY2LCAxMjAyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTM1MSwxNyArMTEzNTQsMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDg1IiBANDg1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0ODENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMzMSwgLTM0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzMxLCAxMikNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZDODA1OTAzMjkiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NjUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE0LCAxMjQxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjcwLCAxMjQxKSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUxNCwgMTI4NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY3MCwgMTI4NykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDg2IiBANDg2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUxNCwgMTMzNSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTE0LCAxMjg3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTEzNzYsNyArMTEzNzksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm1heCIgQDQ4Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDg2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMzEsIDYwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzMxLCAxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExMzg4LDcgKzExMzkxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQyNiwgMTM2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQyNiwgMTMxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE0MTMsMTEgKzExNDE2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDg2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ3NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MTQsIDEzMzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNTksIDEzMzUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE0LCAxMjg3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzU5LCAxMjg3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ4OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDg3DQotCQkJCQkJbG9jYXRpb24gICAJKDE1MDcsIDEzOTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MDcsIDEzNDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExNDM4LDE1ICsxMTQ0MSwxNSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkODciIEA0OTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ4Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzMxLCA2MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMzMSwgMTIpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGQzgwODcwM0IyIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0ODYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDY1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUxNCwgMTMzNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY3MCwgMTMzNSkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MTQsIDEyODcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NzAsIDEyODcpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDQ5MQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTRCNURGMDBFOCINCkBAIC0xMTUyNiw3ICsxMTUyOSw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU5OCwgODQzKQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1OTgsIDcxMCkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ5MiIgQDQ5Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIwMDIsIDkwOCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMDAyLCA5MTIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE1NDEsNyArMTE1NDQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNwZWNpZmljYXRpb24iIEA0OTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQ5Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDM0LCAyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDM0LCA2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExNTUzLDcgKzExNTU2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDk4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0OTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg4NCwgOTU3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODg0LCA5NjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExNTc4LDExICsxMTU4MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQ5Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0OTQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDAyLCA5MDgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NjIsIDkwOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwMDIsIDkxMikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc2MiwgOTEyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ5OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDk3DQotCQkJCQkJbG9jYXRpb24gICAJKDE3OTIsIDg3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc5MiwgODc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE2MDMsNyArMTE2MDYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0OTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk1NSwgMTAwNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTk1NSwgMTAxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE2MjQsMTUgKzExNjI3LDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ5MyIgQDUwMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDk2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MzQsIDIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MzQsIDYpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEI2NzQwMjdEIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0OTYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDczDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAwMiwgOTA4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjQzLCA5MDgpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDAyLCA5MTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNDMsIDkxMikpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6Oktlcm5lbDo6TmFtZWRFbGVtZW50IiBANTAyDQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCkBAIC0xMTY2Miw3ICsxMTY2NSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE1MA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDgyIiBANTAzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzUzLCAxMjc4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDYwNCwgMjU1NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTY3Nyw3ICsxMTY4MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZXZlbnQiIEA1MDQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDUwMw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTM1LCAtMTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yODQsIDEyNjYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE2ODksNyArMTE2OTIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1MDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDUwNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyOTMsIDEwNTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0NCwgMjMzNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExNzE0LDE1ICsxMTcxNywxNyBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDUwMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1MDINCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoNjA0LCAyNTU2KQ0KKwkJCQkJCSgzNTMsIDI1NTYpDQogCQkJCQkJKDM1MywgMTI3OCkNCiAJCQkJCQkoMTk3LCAxMjc4KQ0KIAkJCQkJCSgxOTcsIDEwMTcpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM1MywgMTI3OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwNCwgMjU1NikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk3LCAxMDE3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDUwNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTA0DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MywgMTA2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzk0LCAyMzM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE3NDMsMTUgKzExNzQ4LDE5IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ4MyIgQDUwNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTAzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01MzUsIC0xMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI4NCwgMTI2NikNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREU0Qjc2RDAzNEQiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDUwMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0NzUNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoNjA0LCAyNTU2KQ0KKwkJCQkJCSgxMzU3LCAyNTU2KQ0KKwkJCQkJCSgxMzU3LCAxMzYyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNTMsIDEyNzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc3MSwgMTI3OCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwNCwgMjU1NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM1NywgMTM2MikpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNvbW1vbkJlaGF2aW9yczo6U2ltcGxlVGltZTo6VGltZUV4cHJlc3Npb24iIEA1MDgNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KQEAgLTExNzg3LDcgKzExNzk2LDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4OTcsIDg0OSkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4OTcsIDQ4MykpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMDIiIEA1MTANCi0JCQkJICAgIGxvY2F0aW9uICAgCSg1OTQsIDEzNjcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjcwLCAxMzY3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE4MDIsNyArMTE4MTEsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm5vdyIgQDUxMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTEwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMzYsIC0xNDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNjAsIC0xNDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTgxNCw3ICsxMTgyMyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDUxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTExDQotCQkJCQkJbG9jYXRpb24gICAJKDY2NCwgMTA3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzQwLCAxMDc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTgzOSwxMSArMTE4NDgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA1MTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlANTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTk0LCAxMzY3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1OTQsIDEwMzApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzAsIDEzNjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3MCwgMTAzMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1MTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDUxMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjMsIDExMTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDgzOSwgMTExOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE4NjQsMTcgKzExODczLDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMDMiIEA1MTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDUxMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjM2LCAtMTQ4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTYwLCAtMTQ4KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkM3RTEyMDNCNyINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANTEwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQ5Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU5NCwgMTM2NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTk0LCAxNzA1KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjcwLCAxMzY3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzAsIDE3MDQpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ5MCIgQDUxNQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyNjYsIDg3OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMjY2LCA5MjcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMTg4OSw3ICsxMTg5OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWluIiBANTE2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA1MTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMyNCwgLTQ3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzI0LCAyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE5MDEsNyArMTE5MTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1MTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDUxNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTY3LCA4MzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNjcsIDg4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTE5MjYsMTEgKzExOTM1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANTE1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDUwOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyNjYsIDg3OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTExNCwgODc4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI2NiwgOTI3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTE0LCA5MjcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTE4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1MTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA5OSwgNzkzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDk5LCA4NDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExOTUxLDE3ICsxMTk2MCwxNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkOTEiIEA1MTkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDUxNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzI0LCAtNDcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIDIpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGQzgwMDUwMzgzIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA1MTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDk0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI2NiwgODc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDE4LCA4NzgpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjY2LCA5MjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTgsIDkyNykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDg4IiBANTIwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTI2NiwgOTg0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEyNjYsIDkyNykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExOTc2LDcgKzExOTg1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJtYXgiIEA1MjENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDUyMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzI0LCA1OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMyNCwgMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTExOTg4LDcgKzExOTk3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTIyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1MjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE2OSwgMTAyMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2OSwgOTY1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMjAxMywxMSArMTIwMjIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA1MjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlANTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI2NiwgOTg0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTE0LCA5ODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjY2LCA5MjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMTQsIDkyNykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1MjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDUyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDkwLCAxMDU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDkwLCAxMDAxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMjAzOCwxNyArMTIwNDcsMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDg5IiBANTI0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA1MjANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMyNCwgNTkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIDIpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGQzgwMkUwMkFEIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA1MjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDk0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI2NiwgOTg0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDE4LCA5ODQpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjY2LCA5MjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTgsIDkyNykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDgwIiBANTI1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNDU0LCA5NDEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNDU0LCA5NDIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTIwNjMsNyArMTIwNzIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImV2ZW50IiBANTI2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA1MjUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2NCwgNSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2NCwgNikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMjA3NSw3ICsxMjA4NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDUyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTI2DQotCQkJCQkJbG9jYXRpb24gICAJKDQyOSwgOTAxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MjksIDkwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEyMTAwLDExICsxMjEwOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDUyNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1MDINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0NTQsIDk0MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzYzLCA5NDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0NTQsIDk0MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzYzLCA5NDIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTI4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1MjYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzk5LCA5ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDM5OSwgOTgxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTIxMjUsMTUgKzEyMTM0LDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ4MSIgQDUyOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTI1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NjQsIDUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NjQsIDYpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNEI3NEQwMkNGIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA1MjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDU0LCA5NDEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU0NiwgOTQxKSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDU0LCA5NDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU0NiwgOTQyKSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpTaW1wbGVUaW1lOjpUaW1lVHJpZ2dlciIgQDUzMA0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQpAQCAtMTI4MTAsNyArMTI4MTksNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImVmZmVjdCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAwQzY5RDAzQzYiDQogCQkJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEIxMDNDMyINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiUGluIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RGM0RCNkYwMzgzIg0KQEAgLTEzMzQxLDcgKzEzMzQ5LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTA0DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTI0IiBANTYwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMwOSwgMTM5MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMzE0LCAxMzkwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzMzU3LDcgKzEzMzY1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYXJhbWV0ZXIiIEA1NjENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDU2MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTYsIC0xMzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC05MSwgLTEzNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzM2OSw3ICsxMzM3Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTYxDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzEsIDE0MTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MzYsIDE0MTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzMzk0LDExICsxMzQwMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDU2MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1NTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzA5LCAxMzkwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzA5LCAxNDU2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMxNCwgMTM5MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMxNCwgMTQ1NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1NjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDU2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjY1LCAxNDE4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjcwLCAxNDE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzQxOSwxNSArMTM0MjcsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDEyNSIgQDU2NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTYwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05NiwgLTEzNSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkxLCAtMTM1KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkU2RDg1MDE0OCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANTYwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDU1OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMDksIDEzOTApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzMDksIDEzMjQpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzE0LCAxMzkwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzE0LCAxMzI0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpCYXNpY0JlaGF2aW9yczo6QWN0aXZpdHkiIEA1NjUNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTEzNzc3LDcgKzEzNzg1LDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyODQsIDM0NCkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODQsIDE4OCkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMTciIEA1ODINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NTUsIDQwMCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NTUsIDM5NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzNzkyLDcgKzEzODAwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJub2RlIiBANTgzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA1ODINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzMwLCAtMjIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzMzAsIC0yMjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzgwNCw3ICsxMzgxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU4NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTgzDQotCQkJCQkJbG9jYXRpb24gICAJKDEwNjIsIDMyNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA2MiwgMzIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzgyOCwxMSArMTM4MzYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA1ODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANTY5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzU1LCA0MDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNjUsIDQwMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1NSwgMzk2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTY1LCAzOTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1ODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEzMCwgNDM2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTMwLCA0MzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzODUzLDcgKzEzODYxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU4Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTgzDQotCQkJCQkJbG9jYXRpb24gICAJKDg5OSwgMzcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4OTksIDM2NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTM4NzQsNyArMTM4ODIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWN0aXZpdHkiIEA1ODcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDU4Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMzAsIC0yMjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDMzMCwgLTIyNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTEzODg2LDcgKzEzODk0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDQ4LCA0NDQpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ0OCwgNDQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzkxMCwxMSArMTM5MTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA1ODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANTgwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzU1LCA0MDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM0NSwgNDAwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzU1LCAzOTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM0NSwgMzk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU4OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTg3DQotCQkJCQkJbG9jYXRpb24gICAJKDQxMiwgMzQ1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MTIsIDM0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTM5MzUsNyArMTM5NDMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTE2LCA0NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDUxNiwgNDc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xMzk4Myw3ICsxMzk5MSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTg2DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTE4IiBANTkyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkzLCA5NjMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQyLCAxNjk4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTM5OTgsNyArMTQwMDYsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImFjdGlvbiIgQDU5Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANTkyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMzEsIDM0MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTgyLCAxMDc3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQwMTAsNyArMTQwMTgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1OTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDU5Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyOTQsIDEzMTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ0MywgMjA0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQwMzQsMTUgKzE0MDQyLDE3IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANTkyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDU5MQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxOTMsIDk2MykNCisJCQkJCQkoMzQyLCAxNjk4KQ0KKwkJCQkJCSgzNDIsIDE5MjYpDQorCQkJCQkJKDE5MywgMTkyNikNCiAJCQkJCQkoMTkzLCAxMjY2KQ0KIAkJCQkJCSg0MDUsIDEyNjYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MywgOTYzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQyLCAxNjk4KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MDUsIDEyNjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANTk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA1OTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzM4LCAxMjMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0ODcsIDE5NjUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0MDYzLDcgKzE0MDczLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU5Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTkzDQotCQkJCQkJbG9jYXRpb24gICAJKDI5NywgMTM4MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDQ2LCAyMTE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDA4NCw3ICsxNDA5NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMTkiIEA1OTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDU5Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjMxLCAzNDIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04MiwgMTA3NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0MDk5LDExICsxNDEwOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDU5Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1ODANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTMsIDk2MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkzLCA0NDgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDIsIDE2OTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM0MiwgNDQ4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU5OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANTk3DQotCQkJCQkJbG9jYXRpb24gICAJKDI0NywgNTAwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzOTYsIDEyMzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0MTYwLDEzICsxNDE3MCwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTI2IiBANjAxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTA2LCAxMzg1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDUxMCwgMTM4NSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREYzRDhFNzAzQkYiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDEyNyIgQDYwMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjAxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIC0zMTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTAsIC0zMTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQxNzgsNyArMTQxODgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYwMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NjUsIDEzMjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ2OSwgMTMyOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0MjAzLDExICsxNDIxMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDYwMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA1OTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MDYsIDEzODUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUwNiwgMTMxNSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MTAsIDEzODUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUxMCwgMTMxNSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvY29udGV4dCIgQDYwNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjAxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIC0zMTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTAsIC0zMTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQyMTksNyArMTQyMjksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYwNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg1OTMsIDEzOTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDU5NywgMTM5MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQyNDMsMTEgKzE0MjUzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANjAxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDYwMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUwNiwgMTM4NSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTA2LCAxNDU1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTEwLCAxMzg1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MTAsIDE0NTUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjA2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTU3LCAxNDI3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NjEsIDE0MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NTcxLDcgKzE0NTgxLDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEwOSIgQDYyMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDc0NywgNjM0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDc0NywgNTU4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NTg2LDcgKzE0NTk2LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvdXRnb2luZyIgQDYyMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjIxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MjgsIC0xODgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MjgsIC0yNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ1OTgsNyArMTQ2MDgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYyMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4OTAsIDYwNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODkwLCA1MjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NjIyLDExICsxNDYzMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDYyMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2MjANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDcsIDYzNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAwNSwgNjM0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQ3LCA1NTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMDUsIDU1OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYyMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg5ODgsIDY2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTg4LCA1OTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NjQ3LDcgKzE0NjU3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNvdXJjZSIgQDYyNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjIxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MjgsIC0xODgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MjgsIC0yNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ2NTksNyArMTQ2NjksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MjQsIDYwNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjI0LCA1MjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NjgzLDExICsxNDY5MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDYyMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2MTcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDcsIDYzNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDkwLCA2MzQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDcsIDU1OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDkwLCA1NTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjI3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTE4LCA1OTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDUxOCwgNTIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDcwNyw3ICsxNDcxNyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzOQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTEwIiBANjI4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ3LCA0OTcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ3LCA1NTgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ3MjIsNyArMTQ3MzIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRhcmdldCIgQDYyOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjI4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMjgzLCAtMzE4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTI4MywgLTI1NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDczNCw3ICsxNDc0NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDYzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjI5DQotCQkJCQkJbG9jYXRpb24gICAJKDYxMywgNDc0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTMsIDUzNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ3NTgsMTEgKzE0NzY4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANjI4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDYxNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NywgNDk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDQ5NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NywgNTU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDU1OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTgsIDQ3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTE4LCA1MzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0NzgzLDcgKzE0NzkzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImluY29taW5nIiBANjMyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA2MjgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEyODMsIC0zMTgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMjgzLCAtMjU3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0Nzk1LDcgKzE0ODA1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjMzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MzINCi0JCQkJCQlsb2NhdGlvbiAgIAkoODk0LCA0NzEpDQorCQkJCQkJbG9jYXRpb24gICAJKDg5NCwgNTMyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDgxOSwxMSArMTQ4MjksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA2MjgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjIwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQ3LCA0OTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMDUsIDQ5NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NywgNTU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDA1LCA1NTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjM0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MzINCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTg0LCA1MzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDk4NCwgNTk0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDg0MywxMyArMTQ4NTMsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTM2DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMDgiIEA2MzUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTg3LCA0NDcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU4NywgNDUyKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjI4M0Q3MDIwMyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZWRnZSIgQDYzNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDYsIDIzMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwNiwgMjM4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0ODYxLDcgKzE0ODcxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjM3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2MzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQwNSwgMzc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDA1LCAzODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE0ODg1LDExICsxNDg5NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDYzNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2MjANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTg3LCA0NDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzMzUsIDQ0NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1ODcsIDQ1MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMzNSwgNDUyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDYzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjM2DQotCQkJCQkJbG9jYXRpb24gICAJKDEzNzEsIDQ4NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM3MSwgNDkxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDkxMCw3ICsxNDkyMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2MzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDYzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTI0LCA0MTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MjQsIDQxNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ5MzEsNyArMTQ5NDEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWN0aXZpdHkiIEA2NDANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDYzNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTA2LCAyMzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDYsIDIzOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDk0Myw3ICsxNDk1Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjQwDQotCQkJCQkJbG9jYXRpb24gICAJKDE3NDAsIDQ4MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc0MCwgNDg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNDk2NywxMSArMTQ5NzcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA2MzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjE4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU4NywgNDQ3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODM5LCA0NDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTg3LCA0NTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4MzksIDQ1MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzgwLCAzOTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3ODAsIDQwMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTQ5OTIsNyArMTUwMDIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjQzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2NDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTcyMCwgNTE0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzIwLCA1MTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1MDEyLDcgKzE1MDIyLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTY3DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMjgiIEA2NDQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NTAsIDc3MikNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NTAsIDc3NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1MDI4LDcgKzE1MDM4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJndWFyZCIgQDY0NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjQ0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUsIDEyMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNSwgMTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUwNDAsNyArMTUwNTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NzIsIDgyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTcyLCA4MjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1MDY1LDExICsxNTA3NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDY0NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2MTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTAsIDc3MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDk2LCA3NzIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTAsIDc3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDk2LCA3NzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2NDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTQ3LCA3NDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0NywgNzQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTA5MCw3ICsxNTEwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2OTIsIDg1MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjkyLCA4NTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1MTExLDcgKzE1MTIxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDEyOSIgQDY0OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjQ0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUsIDEyMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNSwgMTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUxMjMsNyArMTUxMzMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY0OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjQsIDY4OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODY0LCA2OTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1MTQ5LDggKzE1MTU5LDggQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA2NDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjIwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzUwLCA3NzIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMDUsIDc3MikpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1MCwgNzc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDA1LCA3NzQpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDY1MQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjQxMDAzMDAwNCINCkBAIC0xNTE4NCw3ICsxNTE5NCw3IEBACiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzIyLCA5OTcpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUA2NTIpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMzQiIEA2NTUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNjE3LCA2ODcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTYxNywgNjg2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUxOTksNyArMTUyMDksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlZGVmaW5lZEVsZW1lbnQiIEA2NTYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDY1NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDcsIDUxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDcsIDUwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUyMTEsNyArMTUyMjEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTAyLCA4MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MDIsIDgwMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUyMzUsMTUgKzE1MjQ1LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANjU1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDYyMA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxNjE3LCA2ODcpDQorCQkJCQkJKDE2MTcsIDY4NikNCiAJCQkJCQkoMTYxNywgNzU5KQ0KIAkJCQkJCSgxMzM1LCA3NTkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MTcsIDY4NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MTcsIDY4NikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMzNSwgNzU5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjU2DQotCQkJCQkJbG9jYXRpb24gICAJKDEzNTgsIDczMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM1OCwgNzI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTI2NCw3ICsxNTI3NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTc3LCA4NDApDQorCQkJCQkJbG9jYXRpb24gICAJKDE1NzcsIDgzOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTUyODUsMTcgKzE1Mjk1LDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMzUiIEA2NjANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDY1NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDcsIDUxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDcsIDUwKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0U1NDAzQzIwMTE1Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA2NTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjIwDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDE2MTcsIDY4NykNCisJCQkJCQkoMTYxNywgNjg2KQ0KIAkJCQkJCSgxNjE3LCA2MTIpDQogCQkJCQkJKDEzMzUsIDYxMikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYxNywgNjg3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYxNywgNjg2KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzM1LCA2MTIpKSkpKSkNCiAJCQkob2JqZWN0IENsYXNzRGlhZ3JhbSAiR3JvdXBzIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RGMTI2MTAwMzFDIg0KQEAgLTE1NjA5LDcgKzE1NjE5LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTgzDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMTQiIEA2NzQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg1OTQsIDc5MikNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NTYsIDE1ODQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU2MjQsNyArMTU2MzQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbnRhaW5lZEVkZ2UiIEA2NzUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDY3NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NiwgMjg5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyMjgsIDEwODEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU2MzYsNyArMTU2NDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY3NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MzQsIDg5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjk2LCAxNjgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTY2MCwxNSArMTU2NzAsMTYgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA2NzQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjYyDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDU5NCwgNzkyKQ0KKwkJCQkJCSg3NTYsIDE1ODQpDQorCQkJCQkJKDU5NCwgMTU4NCkNCiAJCQkJCQkoNTk0LCA4NTIpDQogCQkJCQkJKDQxMCwgODUyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1OTQsIDc5MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1NiwgMTU4NCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDEwLCA4NTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2NzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDU1LCA4MTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDYxNywgMTYxMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU2ODksNyArMTU3MDAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL2luR3JvdXAiIEA2NzgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDY3NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NiwgMjg5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyMjgsIDEwODEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU3MDEsNyArMTU3MTIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY3OA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NzYsIDY2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoODM4LCAxNDU4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTcyNCwxMiArMTU3MzUsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQzdDMjQyRjAwRjAiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDY3NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA2NjQNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoNzU2LCAxNTg0KQ0KKwkJCQkJCSg4NjAsIDE1ODQpDQorCQkJCQkJKDg2MCwgNjEwKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1OTQsIDc5MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTk0LCA2MTApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTYsIDE1ODQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2MCwgNjEwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY4MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjc4DQotCQkJCQkJbG9jYXRpb24gICAJKDYzMCwgNjM0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3OTIsIDE0MjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1NzUwLDcgKzE1NzY1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjc4DQotCQkJCQkJbG9jYXRpb24gICAJKDY3MywgNzE0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzUsIDE1MDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1NzcwLDcgKzE1Nzg1LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTc5DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMTUiIEA2ODINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDg0OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDc0MykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTc4NSw3ICsxNTgwMCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29udGFpbmVkTm9kZSIgQDY4Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM2MCwgMzQwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjAsIDIzNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTc5Nyw3ICsxNTgxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY4NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjgzDQotCQkJCQkJbG9jYXRpb24gICAJKDkyMSwgODg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MjEsIDc4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU4MjAsMTIgKzE1ODM1LDE3IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0M3QzI0MzQwMEM1Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA2ODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjYzDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDg5MSwgNzQzKQ0KKwkJCQkJCSg4OTEsIDY2OSkNCisJCQkJCQkoMTA3MCwgNjY5KQ0KKwkJCQkJCSgxMDcwLCA4MTkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg5MSwgODQ4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDcwLCA4NDgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4OTEsIDc0MykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA3MCwgODE5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY4NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjgzDQotCQkJCQkJbG9jYXRpb24gICAJKDEwNDEsIDgwNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA0MSwgNzAyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTg0Niw3ICsxNTg2Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvaW5Hcm91cCIgQDY4Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANjgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM2MCwgMzQwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjAsIDIzNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTg1OCw3ICsxNTg3OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY4Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjg2DQotCQkJCQkJbG9jYXRpb24gICAJKDkxNywgNjc0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MTcsIDU2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTU4ODIsMTUgKzE1OTAyLDE2IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANjgyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDY2NA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg4OTEsIDc0MykNCiAJCQkJCQkoODkxLCA4NDgpDQogCQkJCQkJKDgzMSwgODQ4KQ0KIAkJCQkJCSg4MzEsIDYxMCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODkxLCA4NDgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4OTEsIDc0MykNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODMxLCA2MTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2ODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODU4LCA2NDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDg1OCwgNTM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTkxMSw3ICsxNTkzMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2ODkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY4Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjgsIDcyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzY4LCA2MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE1OTY5LDcgKzE1OTkwLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJOTQNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMTYiIEA2OTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4ODMsIDI4MikNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5NzQsIDU2NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTk4NCw3ICsxNjAwNSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZ3JvdXAiIEA2OTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDY5Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzg4LCAtMjMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yOTcsIDI1OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNTk5Niw3ICsxNjAxNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY5NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjkzDQotCQkJCQkJbG9jYXRpb24gICAJKDg3NCwgMzg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NjUsIDY2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTYwMjAsMTUgKzE2MDQxLDE3IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANjkyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDY2NA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5NzQsIDU2NCkNCisJCQkJCQkoODgzLCA1NjQpDQogCQkJCQkJKDg4MywgMjgyKQ0KIAkJCQkJCSg4MDcsIDI4MikNCiAJCQkJCQkoODA3LCA1MDYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg4MywgMjgyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTc0LCA1NjQpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgwNywgNTA2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY5NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjkzDQotCQkJCQkJbG9jYXRpb24gICAJKDgzNywgNDg1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MjgsIDc2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2MDQ5LDcgKzE2MDcyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDY5Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjkzDQotCQkJCQkJbG9jYXRpb24gICAJKDk5NiwgNDM1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDg3LCA3MTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2MDcwLDcgKzE2MDkzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImFjdGl2aXR5IiBANjk3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA2OTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM4OCwgLTIzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjk3LCAyNTkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTYwODIsNyArMTYxMDUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2OTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDY5Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDg2LCAxOTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNzcsIDQ3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTYxMDUsMTIgKzE2MTI4LDE2IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGMjhGNDQwMTBBIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA2OTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANjkxDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDk3NCwgNTY0KQ0KKwkJCQkJCSgxNDE1LCA1NjQpDQorCQkJCQkJKDE0MTUsIDMzMikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODgzLCAyODIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExODMsIDI4MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk3NCwgNTY0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDE1LCAzMzIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjk5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA2OTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEwMCwgMzI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTkxLCA2MDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2MTMxLDcgKzE2MTU4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDcwMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANjk3DQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTUsIDIzNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE0NiwgNTE5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjM5MCw3ICsxNjQxNyw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMTEiIEA3MTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMzQ3LCA2MjQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTM1MywgNjI0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2NDA1LDcgKzE2NDMyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkZWNpc2lvbklucHV0IiBANzEzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA3MTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQxMSwgLTkwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDA1LCAtOTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY0MTcsNyArMTY0NDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3MTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDcxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTk1LCA2NDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMDEsIDY0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY0NDIsMTEgKzE2NDY5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANzEyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDcxMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNDcsIDYyNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM0NywgNjk5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM1MywgNjI0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzUzLCA2OTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzE1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3MTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQxNSwgNjY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDIxLCA2NjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2NDY3LDcgKzE2NDk0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDExMiIgQDcxNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANzEyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MTEsIC05MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQwNSwgLTkwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2NDgzLDExICsxNjUxMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDcxMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3MTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzQ3LCA2MjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDcsIDU1MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNTMsIDYyNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM1MywgNTUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDcxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzE2DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MDIsIDU4MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQwOCwgNTgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjY1NywzMiArMTY2ODQsMTYgQEAKIAkJCQkJbGFiZWwgICAgICAJIkFjdGlvbiIpDQogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREYzREI2RjAzNkIiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA3MjUNCi0JCQkJCWxvY2F0aW9uICAgCSg5MywgODc1KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkxDQotCQkJCQltYXhfd2lkdGggIAkyMDYpDQogCQkJCSAgICB3aWR0aCAgICAgIAk3ODENCiAJCQkJICAgIGhlaWdodCAgICAgCTE1MCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEyMCIgQDcyNg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1MywgNjYwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE5OSwgNjYwKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNENzE2REMxMDBFNyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTIxIiBANzI3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA3MjYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEyMDgsIC00MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExNjIsIC00MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjY5NCw3ICsxNjcwNSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDcyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzI3DQotCQkJCQkJbG9jYXRpb24gICAJKDIzOSwgNzMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyODUsIDczMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY3MTksMTEgKzE2NzMwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANzI2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDcyNQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MywgNjYwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTMsIDgxMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5OSwgNjYwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTksIDgxMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3MjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDcyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjIsIDc0MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY4LCA3NDMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2NzQ0LDcgKzE2NzU1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9vdXRwdXQiIEA3MzANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDcyNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTIwOCwgLTQyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE2MiwgLTQyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2NzU2LDcgKzE2NzY3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzMxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3MzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjU0LCA1MzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDMwMCwgNTM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjc4MCwxMSArMTY3OTEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA3MjYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANzIyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzLCA2NjApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MywgNTA3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk5LCA2NjApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5OSwgNTA4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDczMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzMwDQotCQkJCQkJbG9jYXRpb24gICAJKDExNiwgNTMyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjIsIDUzMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY4MDUsNyArMTY4MTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzMzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3MzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzAzLCA2MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDM0OSwgNjIxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjgyOCwxNCArMTY4MzksMTQgQEAKIAkJCQkJCWhlaWdodCAgICAgCTE1MA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTIyIiBANzM0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzg4LCA2NTcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzYwLCA2NTcpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q3MTZERjUwMzFDIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvaW5wdXQiIEA3MzUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDczNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg1MiwgLTcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI0LCAtNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNjg0Nyw3ICsxNjg1OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDczNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzM1DQotCQkJCQkJbG9jYXRpb24gICAJKDcwMCwgNTI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzIsIDUyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY4NzIsMTEgKzE2ODgzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANzM0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDcyNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc4OCwgNjU3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3ODgsIDUwMikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc2MCwgNjU3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NjAsIDUwMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3MzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDczNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MjgsIDUzMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODAwLCA1MzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2ODk3LDcgKzE2OTA4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDczOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzM1DQotCQkJCQkJbG9jYXRpb24gICAJKDY0MywgNjE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTUsIDYxOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY5MjEsNyArMTY5MzIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTIzIiBANzM5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA3MzQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTIsIC03KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyNCwgLTcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTY5MzMsNyArMTY5NDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3NDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDczOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MDcsIDcxNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjc5LCA3MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE2OTU5LDExICsxNjk3MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDczNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3MjUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3ODgsIDY1NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzg4LCA4MTIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NjAsIDY1NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzYwLCA4MTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3MzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODQxLCA3NDQpDQorCQkJCQkJbG9jYXRpb24gICAJKDgxMywgNzQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNzA1OCw3ICsxNzA2OSw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTExMSwgNDQ0KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2NywgNDQ0KSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEzMCIgQDc0Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyMjMsIDU4OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMjI0LCA1ODgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNzA3Myw3ICsxNzA4NCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidmFsdWUiIEA3NDcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDc0Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY5LCAtOTYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNjgsIC05NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3MDg1LDcgKzE3MDk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3NDcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE0OSwgNjMyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTUwLCA2MzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3MTA5LDExICsxNzEyMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDc0Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3NDMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjIzLCA1ODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMjMsIDY4MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMjQsIDU4OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIyNCwgNjgxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc0OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDEyNzAsIDYzNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI3MSwgNjM2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNzEzNCw3ICsxNzE0NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxMzEiIEA3NTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDc0Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY5LCAtOTYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNjgsIC05NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3MTQ5LDExICsxNzE2MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDc0Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3NDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjIzLCA1ODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMjMsIDQ5NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMjQsIDU4OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIyNCwgNDk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc1MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzUwDQotCQkJCQkJbG9jYXRpb24gICAJKDEyODcsIDUxMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI4OCwgNTEyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNzI0MiwxMyArMTcyNTMsMTEgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0RpbWVuc2lvbiINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQzc2OTUxOTAzMjUiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNFeHRlcm5hbCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQzdFOUREQjAyRkIiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCkBAIC0xNzc1NCw3ICsxNzc2Myw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE1NA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEzOSIgQDc3MA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyNzIsIDYzMSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMjcyLCA2NjApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTc3NjksNyArMTc3NzgsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlcHJlc2VudHMiIEA3NzENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDc3MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjczLCAtNTYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjczLCAtNTMzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3NzgxLDcgKzE3NzkwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzcyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3NzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMwNywgNTk1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzA3LCA2MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3ODA1LDExICsxNzgxNCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDc3MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3NjYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjcyLCA2MzEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTMsIDYzMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyNzIsIDY2MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQxMywgNjYwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc3Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzcxDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNjEsIDY2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM2MSwgNjk2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xNzgzMCw3ICsxNzgzOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNDAiIEA3NzQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDc3MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjczLCAtNTYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjczLCAtNTMzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE3ODQ1LDExICsxNzg1NCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDc3MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3NjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjcyLCA2MzEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMzIsIDYzMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyNzIsIDY2MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEzMiwgNjYwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc3NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzc0DQotCQkJCQkJbG9jYXRpb24gICAJKDExNjQsIDY3MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2NCwgNjk5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODIyNSw3ICsxODIzNCw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkxNDANCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEzNyIgQDc5NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwNDIsIDEwMjEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA0MiwgODMzKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE4MjQwLDcgKzE4MjQ5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb250YWluZWROb2RlIiBANzk1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA3OTQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTEzLCA1MTgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUxMywgMzMwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE4MjUyLDcgKzE4MjYxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzk2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3OTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE5MSwgMTA2MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE5MSwgODc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODI3NSwxMiArMTgyODQsMTcgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0YxOUU2QTAyRkUiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDc5NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA3NjgNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTA0MiwgODMzKQ0KKwkJCQkJCSgxMDQyLCA3NzMpDQorCQkJCQkJKDEzMzMsIDc3MykNCisJCQkJCQkoMTMzMywgOTgyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDQyLCAxMDIxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzMzLCAxMDIxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA0MiwgODMzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzMzLCA5ODIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzk3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3OTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEyMiwgMTEwNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEyMiwgOTE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODMwMSw3ICsxODMxNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpblBhcnRpdGlvbiIgQDc5OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANzk0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUxMywgNTE4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTMsIDMzMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODMxMyw3ICsxODMyNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc5OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANzk4DQotCQkJCQkJbG9jYXRpb24gICAJKDEwODksIDc5MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA4OSwgNjA1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODMzNywxNSArMTgzNTEsMTYgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA3OTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANzY5DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDEwNDIsIDgzMykNCiAJCQkJCQkoMTA0MiwgMTAyMSkNCiAJCQkJCQkoOTgyLCAxMDIxKQ0KIAkJCQkJCSg5ODIsIDcxMykpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA0MiwgMTAyMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNDIsIDgzMykNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTgyLCA3MTMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA3OTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTAzNiwgNzUxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDM2LCA1NjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xODM2Niw3ICsxODM4MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MDENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDc5OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTM1LCA4MzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMzUsIDY0OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTg0NTYsNyArMTg0NzEsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzQ29tYmluZUR1cGxpY2F0ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSI0MDYzRkVGRDAzMEMiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkidHJ1ZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCiAJCQkgICAgbGFuZ3VhZ2UgICAJIk9iamVjdFN3aXRjaCIpDQpAQCAtMTg0NzksMTMgKzE4NDkzLDExIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNNdWx0aWNhc3QiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0QwMjdEODEwMTQwIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzTXVsdGlyZWNlaXZlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMDI3RDhBMDI1QyINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCiAJCQkgICAgbGFuZ3VhZ2UgICAJIk9iamVjdFN3aXRjaCIpDQpAQCAtMTg1NjUsMTIgKzE4NTc3LDEwIEBACiAJCQkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNTaW5nbGVFeGVjdXRpb24iDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGMjkxQTMwMTg2Ig0KLQkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIikNCisJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNSZWFkT25seSINCiAJCQkJICAgIHF1aWQgICAgICAgCSI0MDExOUM2NTAxRUQiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlBhcmFtZXRlciINCkBAIC0xODU4NCwxMyArMTg1OTQsMTEgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0V4Y2VwdGlvbiINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAwQjlFOTAwQzciDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNTdHJlYW0iDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGQkE3NkIwMUY0Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImVmZmVjdCINCkBAIC0xODk2OCwyMiArMTg5NzYsNiBAQAogCQkJCQlsYWJlbCAgICAgIAkiSm9pbk5vZGUiKQ0KIAkJCQkgICAgaWNvbl9zdHlsZSAJIkxhYmVsIg0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNEMDI4NEJFMDE4QiINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDgwNw0KLQkJCQkJbG9jYXRpb24gICAJKDU3LCA0MDIpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTU0NCkNCiAJCQkJICAgIHdpZHRoICAgICAgCTY2MA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTE4OTk2LDcgKzE4OTg4LDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyODUsIDMzOSkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODUsIDE3MCkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNDEiIEA4MDkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5ODQsIDM4OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5ODQsIDM5NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTAxMSw3ICsxOTAwMyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiam9pblNwZWMiIEA4MTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDgwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg1MDMsIC04MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTAzLCAtNzMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTkwMjMsNyArMTkwMTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDgxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTE4LCA0MzApDQorCQkJCQkJbG9jYXRpb24gICAJKDExMTgsIDQzOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTkwNDcsMTEgKzE5MDM5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAODA5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDgwNg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk4NCwgMzg4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjYwLCAzODgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5ODQsIDM5NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2MCwgMzk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDgxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODEwDQotCQkJCQkJbG9jYXRpb24gICAJKDExNzQsIDM0NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE3NCwgMzUyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTA3Miw3ICsxOTA2NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDgxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDIzLCA0NzApDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMjMsIDQ3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTkwOTMsNyArMTkwODUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTQyIiBAODE0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4MDkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTAzLCAtODEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUwMywgLTczKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTkxMDUsNyArMTkwOTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDgxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MzcsIDI5NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTM3LCAzMDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5MTMwLDggKzE5MTIyLDggQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4MDkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODA3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTg0LCAzODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDcwOCwgMzg4KSkpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5ODQsIDM5NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzA4LCAzOTYpKSkpKSkNCiAJCQkob2JqZWN0IENsYXNzRGlhZ3JhbSAiT2JqZWN0Tm9kZXMiDQogCQkJICAgIHF1aWQgICAgICAgCSIzREYxMjZDOTAyQUYiDQogCQkJICAgIHRpdGxlICAgICAgCSJPYmplY3ROb2RlcyINCkBAIC0xOTMzNiwxMyArMTkzMjgsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTQ3IiBAODIzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjg2LCA1NjcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjI4LCA1NjcpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I3MkU3RDMwMUZCIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNDgiIEA4MjQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDgyMw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODA4LCAtMzI2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODY2LCAtMzI2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5MzU0LDcgKzE5MzQ2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODI1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4MjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQ2LCA0ODUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4OCwgNDg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTM3OSwxMSArMTkzNzEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4MjMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODIyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg2LCA1NjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4NiwgNDY0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI4LCA1NjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyOCwgNDY0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDgyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODI0DQotCQkJCQkJbG9jYXRpb24gICAJKDMxOSwgNDk1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNjEsIDQ5NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTk0MDQsNyArMTkzOTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW5TdGF0ZSIgQDgyNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAODIzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC04MDgsIC0zMjYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04NjYsIC0zMjYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTk0MTYsNyArMTk0MDgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4MjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDgyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjIsIDYyNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA0LCA2MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5NDQwLDExICsxOTQzMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDgyMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4MTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyODYsIDU2NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjg2LCA2NzApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjgsIDU2NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI4LCA2NzApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODI5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4MjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzIzLCA2MzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDI2NSwgNjMyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTYzMCw3ICsxOTYyMiw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzg2LCAzNTIpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg2LCAxOTApKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTYwIiBAODM5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTE4LCA1NjkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjAwLCA1NjkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTY0NSw3ICsxOTYzNyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2VsZWN0aW9uIiBAODQwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4MzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTEwLCAtMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkyLCAtMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5NjU3LDcgKzE5NjQ5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4NDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjIxLCA2MDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDcwMywgNjA2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTY4MSwxMSArMTk2NzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4MzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODIxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTE4LCA1NjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUxOCwgNjc0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjAwLCA1NjkpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYwMCwgNjc0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODQwDQotCQkJCQkJbG9jYXRpb24gICAJKDU4NCwgNjQ5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NjYsIDY0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMTk3MDYsNyArMTk2OTgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTYxIiBAODQzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4MzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTEwLCAtMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkyLCAtMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTE5NzIxLDExICsxOTcxMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDgzOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4MjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MTgsIDU2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTE4LCA0NjQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MDAsIDU2OSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjAwLCA0NjQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4NDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTU5LCA1MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDY0MSwgNTAxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0xOTgxNiw2OCArMTk4MDgsOSBAQAogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCSAgICBmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDN0VCMEY2MDA5QiINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDg0Ng0KLQkJCQkJbG9jYXRpb24gICAJKDYyLCA2NzEpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTQNCi0JCQkJCW1heF93aWR0aCAgCTExMikNCiAJCQkJICAgIHdpZHRoICAgICAgCTQ5NA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMzEyKQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aXZpdGllczo6Q29tcGxldGVBY3Rpdml0aWVzOjpQYXJhbWV0ZXIiIEA4NDcNCi0JCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQotCQkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KLQkJCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KLQkJCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDMxMiwgNDA4KQ0KLQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQlzaXplICAgICAgIAk4DQotCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCXVuZGVybGluZSAgCUZBTFNFDQotCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJY29sb3IgICAgICAJMA0KLQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQotCQkJCQlQYXJlbnRfVmlldyAJQDg0Nw0KLQkJCQkJbG9jYXRpb24gICAJKDU5LCAzMjEpDQotCQkJCQlubGluZXMgICAgIAkxDQotCQkJCQltYXhfd2lkdGggIAk1MDYNCi0JCQkJCWp1c3RpZnkgICAgCTANCi0JCQkJCWxhYmVsICAgICAgCSJQYXJhbWV0ZXIiKQ0KLQkJCQkgICAgaWNvbl9zdHlsZSAJIkxhYmVsIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNERkJBNzQ4MDFGNCINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDg0Nw0KLQkJCQkJbG9jYXRpb24gICAJKDU5LCAzNzMpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTMNCi0JCQkJCW1heF93aWR0aCAgCTQyOCkNCi0JCQkJICAgIHdpZHRoICAgICAgCTUyNA0KLQkJCQkgICAgaGVpZ2h0ICAgICAJMTk0DQotCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpCYXNpY0JlaGF2aW9yczo6QmVoYXZpb3IiIEA4NDgNCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNvbW1vbkJlaGF2aW9yczo6QmFzaWNCZWhhdmlvcnM6OkJlaGF2aW9yIiBAODQ3DQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KIAkJCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KQEAgLTE5ODkyLDcgKzE5ODI1LDcgQEAKIAkJCQkJY29sb3IgICAgICAJMA0KIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQotCQkJCQlQYXJlbnRfVmlldyAJQDg0OA0KKwkJCQkJUGFyZW50X1ZpZXcgCUA4NDcNCiAJCQkJCWxvY2F0aW9uICAgCSgxNjI5LCA3MSkNCiAJCQkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQogCQkJCQlubGluZXMgICAgIAkxDQpAQCAtMTk5MDMsMjcgKzE5ODM2LDEwIEBACiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I5QTZGNEYwMDA4Ig0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAODQ4DQotCQkJCQlsb2NhdGlvbiAgIAkoMTYyOSwgMTU3KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMg0KLQkJCQkJbWF4X3dpZHRoICAJMzc4KQ0KIAkJCQkgICAgd2lkdGggICAgICAJNDU2DQogCQkJCSAgICBoZWlnaHQgICAgIAkxOTANCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQotCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpLZXJuZWw6OlBhcmFtZXRlciIgQDg0OQ0KKwkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpQYXJhbWV0ZXIiIEA4NDgNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCkBAIC0xOTk0MCw3ICsxOTg1Niw3IEBACiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA4NDkNCisJCQkJCVBhcmVudF9WaWV3IAlAODQ4DQogCQkJCQlsb2NhdGlvbiAgIAkoMjE1LCA4NikNCiAJCQkJCW5saW5lcyAgICAgCTENCiAJCQkJCW1heF93aWR0aCAgCTIzMA0KQEAgLTE5OTUyLDExICsxOTg2OCwzOCBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMDANCiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQorCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpBY3Rpdml0aWVzOjpDb21wbGV0ZUFjdGl2aXRpZXM6OlBhcmFtZXRlciIgQDg0OQ0KKwkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCisJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzEyLCA0MDgpDQorCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCisJCQkJCXNpemUgICAgICAgCTgNCisJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCisJCQkJCWJvbGQgICAgICAgCUZBTFNFDQorCQkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KKwkJCQkJdW5kZXJsaW5lICAJRkFMU0UNCisJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQorCQkJCQljb2xvciAgICAgIAkwDQorCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCisJCQkJCVBhcmVudF9WaWV3IAlAODQ5DQorCQkJCQlsb2NhdGlvbiAgIAkoNTksIDMyMSkNCisJCQkJCW5saW5lcyAgICAgCTENCisJCQkJCW1heF93aWR0aCAgCTUwNg0KKwkJCQkJanVzdGlmeSAgICAJMA0KKwkJCQkJbGFiZWwgICAgICAJIlBhcmFtZXRlciIpDQorCQkJCSAgICBpY29uX3N0eWxlIAkiTGFiZWwiDQorCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGQkE3NDgwMUY0Ig0KKwkJCQkgICAgd2lkdGggICAgICAJNTI0DQorCQkJCSAgICBoZWlnaHQgICAgIAkxOTQNCisJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDg1MA0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNFMDBCQzUwMDBFOSINCi0JCQkJICAgIGNsaWVudCAgICAgCUA4NDcNCi0JCQkJICAgIHN1cHBsaWVyICAgCUA4NDkNCisJCQkJICAgIGNsaWVudCAgICAgCUA4NDkNCisJCQkJICAgIHN1cHBsaWVyICAgCUA4NDgNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzI4LCAzMTEpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzI4LCAxNzYpKQ0KQEAgLTE5OTkwLDQzICsxOTkzMyw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTMwMA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTI1DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aXZpdGllczo6Q29tcGxldGVBY3Rpdml0aWVzOjpCZWhhdmlvciIgQDg1Mg0KLQkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxODU0LCAzOTYpDQotCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCXNpemUgICAgICAgCTgNCi0JCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCWJvbGQgICAgICAgCUZBTFNFDQotCQkJCQlpdGFsaWNzICAgIAlUUlVFDQotCQkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCWNvbG9yICAgICAgCTANCi0JCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA4NTINCi0JCQkJCWxvY2F0aW9uICAgCSgxNzU0LCAzNTQpDQotCQkJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJMjAwDQotCQkJCQlqdXN0aWZ5ICAgIAkwDQotCQkJCQlsYWJlbCAgICAgIAkiQmVoYXZpb3IiKQ0KLQkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQotCQkJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KLQkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI5NUFCMDJBNSINCi0JCQkJICAgIHdpZHRoICAgICAgCTIxOA0KLQkJCQkgICAgaGVpZ2h0ICAgICAJMTA0DQotCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA4NTMNCi0JCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCi0JCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCi0JCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCOTVCQzAwODMiDQotCQkJCSAgICBjbGllbnQgICAgIAlAODUyDQotCQkJCSAgICBzdXBwbGllciAgIAlAODQ4DQotCQkJCSAgICBsaW5lX3N0eWxlIAkwKQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aXZpdGllczo6Q29tcGxldGVBY3Rpdml0aWVzOjpQYXJhbWV0ZXJTZXQiIEA4NTQNCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkFjdGl2aXRpZXM6OkNvbXBsZXRlQWN0aXZpdGllczo6UGFyYW1ldGVyU2V0IiBAODUyDQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCiAJCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCkBAIC0yMDA0Miw3ICsxOTk0OSw3IEBACiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA4NTQNCisJCQkJCVBhcmVudF9WaWV3IAlAODUyDQogCQkJCQlsb2NhdGlvbiAgIAkoMTE2MywgMzU0KQ0KIAkJCQkJbmxpbmVzICAgICAJMQ0KIAkJCQkJbWF4X3dpZHRoICAJMjc4DQpAQCAtMjAwNTQsMTYgKzE5OTYxLDE2IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTEwNA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCi0JCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAODU1DQorCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDg1Mw0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDNzVFRERBMDI2RCINCi0JCQkJICAgIGNsaWVudCAgICAgCUA4NTQNCisJCQkJICAgIGNsaWVudCAgICAgCUA4NTINCiAJCQkJICAgIHN1cHBsaWVyICAgCUA4NDUNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI4MywgMzQ0KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyODMsIDE5NikpDQotCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNDkiIEA4NTYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4NjQsIDQwMykNCisJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE0OSIgQDg1NA0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg2NCwgMzk2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwMDc2LDkgKzE5OTgzLDkgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDNzVFREU3MDFDMiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KLQkJCQkJKG9iamVjdCBSb2xlVmlldyAicGFyYW1ldGVyU2V0IiBAODU3DQotCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4NTYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTE3LCAtODQpDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYXJhbWV0ZXJTZXQiIEA4NTUNCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDg1NA0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTcsIC05MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDA4OCw5ICsxOTk5NSw5IEBACiAJCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg1OA0KLQkJCQkJCVBhcmVudF9WaWV3IAlAODU3DQotCQkJCQkJbG9jYXRpb24gICAJKDEwMzQsIDM2NikNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NTYNCisJCQkJCQlQYXJlbnRfVmlldyAJQDg1NQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDM0LCAzNTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwMTEyLDE0ICsyMDAxOSwxNCBAQAogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0M3NUVERTgwMEU3Ig0KLQkJCQkJICAgIGNsaWVudCAgICAgCUA4NTYNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAODU0DQorCQkJCQkgICAgY2xpZW50ICAgICAJQDg1NA0KKwkJCQkJICAgIHN1cHBsaWVyICAgCUA4NTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjQsIDQwMykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE1NCwgNDAzKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg1OQ0KLQkJCQkJCVBhcmVudF9WaWV3IAlAODU3DQotCQkJCQkJbG9jYXRpb24gICAJKDExMTcsIDQ0NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2NCwgMzk2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTU0LCAzOTYpDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODU3DQorCQkJCQkJUGFyZW50X1ZpZXcgCUA4NTUNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTExNywgNDM5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDEzOCw5ICsyMDA0NSw5IEBACiAJCQkJCQlwY3REaXN0ICAgIAkwLjg3MzkyNg0KIAkJCQkJCWhlaWdodCAgICAgCTQzDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KLQkJCQkJKG9iamVjdCBSb2xlVmlldyAicGFyYW1ldGVyIiBAODYwDQotCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4NTYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTE3LCAtODQpDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYXJhbWV0ZXIiIEA4NTgNCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDg1NA0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTcsIC05MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDE1MCw5ICsyMDA1Nyw5IEBACiAJCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg2MQ0KLQkJCQkJCVBhcmVudF9WaWV3IAlAODYwDQotCQkJCQkJbG9jYXRpb24gICAJKDY5NiwgMzY2KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg1OQ0KKwkJCQkJCVBhcmVudF9WaWV3IAlAODU4DQorCQkJCQkJbG9jYXRpb24gICAJKDY5NiwgMzU5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDE3NCwxNCArMjAwODEsMTQgQEAKIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNDNzVFREU4MDBFOSINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAODU2DQotCQkJCQkgICAgc3VwcGxpZXIgICAJQDg0Nw0KKwkJCQkJICAgIGNsaWVudCAgICAgCUA4NTQNCisJCQkJCSAgICBzdXBwbGllciAgIAlAODQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY0LCA0MDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU3NCwgNDAzKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg2Mg0KLQkJCQkJCVBhcmVudF9WaWV3IAlAODYwDQotCQkJCQkJbG9jYXRpb24gICAJKDYzNCwgNDUxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY0LCAzOTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU3NCwgMzk2KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg2MA0KKwkJCQkJCVBhcmVudF9WaWV3IAlAODU4DQorCQkJCQkJbG9jYXRpb24gICAJKDYzNCwgNDQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDIwMCw4ICsyMDEwNyw4IEBACiAJCQkJCQlwY3REaXN0ICAgIAkwLjc5MzY5Ng0KIAkJCQkJCWhlaWdodCAgICAgCTQ4DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQotCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNjIiIEA4NjMNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjA2LCA2MDMpDQorCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNjIiIEA4NjENCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMzAyLCA2MDQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDIxNSw5ICsyMDEyMiw5IEBACiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIHF1aWR1ICAgICAgCSI0MDYzRkZEMjAzQjMiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCi0JCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbmRpdGlvbiIgQDg2NA0KLQkJCQkJICAgIFBhcmVudF9WaWV3IAlAODYzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05NiwgMjA3KQ0KKwkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29uZGl0aW9uIiBAODYyDQorCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4NjENCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMCwgMjA4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjAyMjcsOSArMjAxMzQsOSBAQAogCQkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NjUNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDg2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDk4LCA2NzkpDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODYzDQorCQkJCQkJUGFyZW50X1ZpZXcgCUA4NjINCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE5NCwgNjgwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDI1MSwxNCArMjAxNTgsMTQgQEAKIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjQwNjNGRkQ0MDEwRCINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAODYzDQorCQkJCQkgICAgY2xpZW50ICAgICAJQDg2MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4NTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA2LCA2MDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMDYsIDc1OSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NjYNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDg2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjU4LCA3MDQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzAyLCA2MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzMDIsIDc2MCkNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NjQNCisJCQkJCQlQYXJlbnRfVmlldyAJQDg2Mg0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzU0LCA3MDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwMjc3LDkgKzIwMTg0LDkgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuNjQ3NDM2DQogCQkJCQkJaGVpZ2h0ICAgICAJNTINCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NjcNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDg2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDAwLCA3MjgpDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODY1DQorCQkJCQkJUGFyZW50X1ZpZXcgCUA4NjINCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA5NiwgNzI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDI5OCwxNyArMjAyMDUsNTMgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuODAxMjgyDQogCQkJCQkJaGVpZ2h0ICAgICAJMjA2DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KLQkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTYzIiBAODY4DQotCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4NjMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTk2LCAyMDcpDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNjMiIEA4NjYNCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDg2MQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgwLCAyMDgpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiNDA2M0ZGRDQwMTM1Ig0KLQkJCQkJICAgIGNsaWVudCAgICAgCUA4NjMNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAODU0DQorCQkJCQkgICAgY2xpZW50ICAgICAJQDg2MQ0KKwkJCQkJICAgIHN1cHBsaWVyICAgCUA4NTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA2LCA2MDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMDYsIDQ0NykpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMDIsIDYwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMwMiwgNDQ4KSkpKQ0KKwkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aXZpdGllczo6Q29tcGxldGVBY3Rpdml0aWVzOjpCZWhhdmlvciIgQDg2Nw0KKwkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCisJCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCisJCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODU0LCAzOTYpDQorCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCisJCQkJCXNpemUgICAgICAgCTgNCisJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCisJCQkJCWJvbGQgICAgICAgCUZBTFNFDQorCQkJCQlpdGFsaWNzICAgIAlUUlVFDQorCQkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KKwkJCQkJc3RyaWtlICAgICAJRkFMU0UNCisJCQkJCWNvbG9yICAgICAgCTANCisJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KKwkJCQkJUGFyZW50X1ZpZXcgCUA4NjcNCisJCQkJCWxvY2F0aW9uICAgCSgxNzU0LCAzNTQpDQorCQkJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KKwkJCQkJbmxpbmVzICAgICAJMQ0KKwkJCQkJbWF4X3dpZHRoICAJMjAwDQorCQkJCQlqdXN0aWZ5ICAgIAkwDQorCQkJCQlsYWJlbCAgICAgIAkiQmVoYXZpb3IiKQ0KKwkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQorCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQorCQkJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KKwkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI5NUFCMDJBNSINCisJCQkJICAgIHdpZHRoICAgICAgCTIxOA0KKwkJCQkgICAgaGVpZ2h0ICAgICAJMTA0DQorCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KKwkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA4NjgNCisJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCisJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCisJCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCOTVCQzAwODMiDQorCQkJCSAgICBjbGllbnQgICAgIAlAODY3DQorCQkJCSAgICBzdXBwbGllciAgIAlAODQ3DQorCQkJCSAgICBsaW5lX3N0eWxlIAkwKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTY0IiBAODY5DQogCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU5NywgMzk2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQpAQCAtMjAzNjEsNyArMjAzMDQsNyBAQAogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCOTYzOTAzM0UiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDg2OQ0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUA4NTQNCisJCQkJCSAgICBzdXBwbGllciAgIAlAODUyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMA0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg3Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODcwDQpAQCAtMjA0MDAsNyArMjAzNDMsNyBAQAogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCOTYzOTAzNDAiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDg2OQ0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUA4NTINCisJCQkJCSAgICBzdXBwbGllciAgIAlAODY3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMA0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg3NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODczDQpAQCAtMjA2MDcsNyArMjA1NTAsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTQzIiBAODgyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjEwLCA4NjMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjEwLCA4NjEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA2MjIsNyArMjA1NjUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIndlaWdodCIgQDg4Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAODgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDIwOCwgLTgxOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjA4LCAtODIwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwNjM0LDcgKzIwNTc3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4ODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzg5LCA3NzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDc4OSwgNzcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDY1OCwxMSArMjA2MDEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4ODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODgwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjEwLCA4NjMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg1OCwgODYzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjEwLCA4NjEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg1OCwgODYxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg4NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODgzDQotCQkJCQkJbG9jYXRpb24gICAJKDgzMSwgOTE3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzEsIDkxNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA2ODMsNyArMjA2MjYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4ODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjcyLCA4MTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDY3MiwgODE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDcwNCw3ICsyMDY0Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNDQiIEA4ODcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDg4Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMDgsIC04MTgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIwOCwgLTgyMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDcxNiw3ICsyMDY1OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg4OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODg3DQotCQkJCQkJbG9jYXRpb24gICAJKDUwNywgOTA4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MDcsIDkwNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA3NDEsOCArMjA2ODQsOCBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDg4Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4ODENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MTAsIDg2MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzYyLCA4NjMpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MTAsIDg2MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzYyLCA4NjEpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDb21tb25CZWhhdmlvcnM6OkJhc2ljQmVoYXZpb3JzOjpCZWhhdmlvciIgQDg4OQ0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQpAQCAtMjA3OTksNyArMjA3NDIsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxNTQNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNTAiIEA4OTENCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5MTEsIDI5NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5MTEsIDM0MikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwODE0LDcgKzIwNzU3LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ0cmFuc2Zvcm1hdGlvbiIgQDg5Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAODkxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MDksIC0yMTYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MDksIC0xNjgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDgyNiw3ICsyMDc2OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg5Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODkyDQotCQkJCQkJbG9jYXRpb24gICAJKDEwMzgsIDMyNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTAzOCwgMzc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDg1MCwxMSArMjA3OTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4OTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODg5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTExLCAyOTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNzQsIDI5NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkxMSwgMzQyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTc0LCAzNDIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4OTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEyOSwgMjQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTI5LCAyODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwODc1LDcgKzIwODE4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE1MSIgQDg5NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAODkxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MDksIC0yMTYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MDksIC0xNjgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMDg5MCwxMSArMjA4MzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA4OTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAODkwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTExLCAyOTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY0OSwgMjk0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTExLCAzNDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY0OSwgMzQyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg5Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAODk1DQotCQkJCQkJbG9jYXRpb24gICAJKDY3MiwgMjYwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzIsIDMwOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA5MTQsNyArMjA4NTcsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzUNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE1OCIgQDg5Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDkxMSwgNDEzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDkxMSwgMzQyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA5MjksNyArMjA4NzIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNlbGVjdGlvbiIgQDg5OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAODk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00MDksIC05NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQwOSwgLTE2OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwOTQxLDcgKzIwODg0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAODk5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA4OTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA2MCwgNDQ0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDYwLCAzNzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIwOTY1LDExICsyMDkwOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDg5Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA4ODkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MTEsIDQxMykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE3NCwgNDEzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTExLCAzNDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNzQsIDM0MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDg5OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTMyLCAzNjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMzIsIDI5OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjA5OTAsNyArMjA5MzMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTU5IiBAOTAxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA4OTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQwOSwgLTk3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDA5LCAtMTY4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEwMDUsMTEgKzIwOTQ4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAODk3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDg5MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkxMSwgNDEzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NDksIDQxMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkxMSwgMzQyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NDksIDM0MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkwMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NzcsIDM3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjc3LCAzMDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxMjA4LDcgKzIxMTUxLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEzDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTU0IiBAOTExDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTA3LCA2NzEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNTA4LCA2NzEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEyMjMsNyArMjExNjYsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImxvY2FsUG9zdGNvbmRpdGlvbiIgQDkxMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTExDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE4NCwgLTIyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg1LCAtMjI5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxMjM1LDcgKzIxMTc4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5MTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjM0LCA3MzApDQorCQkJCQkJbG9jYXRpb24gICAJKDYzNSwgNzMwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTI2MCwxNSArMjEyMDMsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA5MTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTA5DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDUwNywgNjcxKQ0KKwkJCQkJCSg1MDgsIDY3MSkNCiAJCQkJCQkoNzgxLCA2NzEpDQogCQkJCQkJKDc4MSwgNTMwKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MDcsIDY3MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUwOCwgNjcxKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3ODEsIDUzMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkxMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NDIsIDU2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzQzLCA1NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxMjg5LDcgKzIxMjMyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkxNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTEyDQotCQkJCQkJbG9jYXRpb24gICAJKDYwOSwgNzc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTAsIDc3NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEzMTAsNyArMjEyNTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTU1IiBAOTE2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5MTENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg0LCAtMjI5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxODUsIC0yMjkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEzMjIsNyArMjEyNjUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkxNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMDYsIDcxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzA3LCA3MTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxMzQ4LDE0ICsyMTI5MSwxNCBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDkxMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5MTANCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoNTA3LCA2NzEpDQorCQkJCQkJKDUwOCwgNjcxKQ0KIAkJCQkJCSgyMjgsIDY3MSkNCiAJCQkJCQkoMjI4LCA1MzYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUwNywgNjcxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTA4LCA2NzEpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyOCwgNTM2KSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTUyIiBAOTE4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTUyLCAzMTkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNTUzLCAzMTkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEzNzAsNyArMjEzMTMsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImxvY2FsUHJlY29uZGl0aW9uIiBAOTE5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5MTgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjMzLCAtNjIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzQsIC02MjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjEzODIsNyArMjEzMjUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkxOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2ODEsIDIyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjgyLCAyMjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxNDA3LDE1ICsyMTM1MCwxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDkxOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5MDkNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoNTUyLCAzMTkpDQorCQkJCQkJKDU1MywgMzE5KQ0KIAkJCQkJCSg3OTQsIDMxOSkNCiAJCQkJCQkoNzk0LCA0MzApKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU1MiwgMzE5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTUzLCAzMTkpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc5NCwgNDMwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkyMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTE5DQotCQkJCQkJbG9jYXRpb24gICAJKDgzMCwgNDA2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzEsIDQwNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE0MzYsNyArMjEzNzksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTIyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5MTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjUwLCAyNzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDY1MSwgMjc2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTQ1Nyw3ICsyMTQwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNTMiIEA5MjMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDkxOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzMsIC02MjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIzNCwgLTYyMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTQ2OSw3ICsyMTQxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkyNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTIzDQotCQkJCQkJbG9jYXRpb24gICAJKDM3OCwgMjMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNzksIDIzMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE0OTUsMTEgKzIxNDM4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTE4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDkxMA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSg1NTIsIDMxOSkNCisJCQkJCQkoNTUzLCAzMTkpDQogCQkJCQkJKDMwNSwgMzE5KQ0KIAkJCQkJCSgzMDUsIDQyNCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTUyLCAzMTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1NTMsIDMxOSkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzA1LCA0MjQpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpBY3Rpdml0aWVzOjpCYXNpY0FjdGl2aXRpZXM6OkFjdGlvbiIgQDkyNQ0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCkBAIC0yMTY2NywxMyArMjE2MTAsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MTAsIDM1MykNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3MTAsIDE4OSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNTciIEA5MzINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4MzYsIDY3OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg4MzUsIDY3OCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRTAwQkMwNjAxNDciDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImluSW50ZXJydXB0aWJsZVJlZ2lvbiIgQDkzMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTMyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01MjgsIC0xNzIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01MjksIC0xNzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE2ODUsNyArMjE2MjgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTksIDQ3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTE4LCA0NzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxNzA5LDE1ICsyMTY1MiwxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDkzMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5MzANCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoODM2LCA2NzgpDQorCQkJCQkJKDgzNSwgNjc4KQ0KIAkJCQkJCSg3NTAsIDY3OCkNCiAJCQkJCQkoNzUwLCA0MzkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgzNiwgNjc4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODM1LCA2NzgpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc1MCwgNDM5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkzNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTMzDQotCQkJCQkJbG9jYXRpb24gICAJKDcyNywgNDg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MjYsIDQ4OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxNzM4LDcgKzIxNjgxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkzNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTMzDQotCQkJCQkJbG9jYXRpb24gICAJKDkyMiwgNTE1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MjEsIDUxNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE3NTksNyArMjE3MDIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29udGFpbmVkTm9kZSIgQDkzNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTMyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01MjgsIC0xNzIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01MjksIC0xNzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE3NzEsNyArMjE3MTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5MzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDkzNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDMzLCA3MTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMzIsIDcxNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE3OTUsMTEgKzIxNzM4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTMyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDkyOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgzNiwgNjc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTYwLCA2NzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjcwLCAxMzU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDYyLCAxMzUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDkzOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTM3DQotCQkJCQkJbG9jYXRpb24gICAJKDk4MiwgNzU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5ODEsIDc1OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE4MTksMTMgKzIxNzYyLDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk4MA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTU2IiBAOTQwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjE5LCA1MzgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNTU5LCA1MzkpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0UwMEJCRDIwMEEyIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnRlcnJ1cHRpbmdFZGdlIiBAOTQxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5NDANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExNSwgOTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzUsIDk1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIxODM3LDcgKzIxNzgwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTQyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDc0LCA2MDApDQorCQkJCQkJbG9jYXRpb24gICAJKDQxNCwgNjAxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTg2MSwxMSArMjE4MDQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA5NDANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTI5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjE5LCA1MzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYxOSwgNjM4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTU5LCA1MzkpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU1OSwgNjM5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTQxDQotCQkJCQkJbG9jYXRpb24gICAJKDY0MywgNjAyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1ODMsIDYwMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE4ODYsNyArMjE4MjksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW50ZXJydXB0cyIgQDk0NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTQwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTUsIDk0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc1LCA5NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMTg5OCw3ICsyMTg0MSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk0NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTQ0DQotCQkJCQkJbG9jYXRpb24gICAJKDUyOSwgNDc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NjksIDQ3NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjE5MjIsMTEgKzIxODY1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTQwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDkzMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYxOSwgNTM4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MTksIDQzOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU1OSwgNTM5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NTksIDQzOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5NDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjgsIDQ3OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjA4LCA0NzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyMDI2LDEyICsyMTk2OSwxMCBAQAogCQkJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzRGV0ZXJtaW5hdGUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGMjk4RUIwMzRCIg0KLQkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIikNCisJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNBc3N1cmVkIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERjI5OEUyMDM1QiINCi0JCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCIpKSkNCisJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxvb3BOb2RlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RGMjk4MzIwMTI4Ig0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQpAQCAtMjIwNDMsNyArMjE5ODQsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzVGVzdGVkRmlyc3QiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGMjk5NTcwM0E5Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJDbGF1c2UiDQogCQkJICAgIHF1aWQgICAgICAgCSIzREYyOTg0MDAzNUIiDQpAQCAtMjI0NTIsMjIgKzIyMzkyLDYgQEAKIAkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGMjk4MjcwMEZBIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAOTUzDQotCQkJCQlsb2NhdGlvbiAgIAkoMjc1LCAxMTI1KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkyDQotCQkJCQltYXhfd2lkdGggIAkzNTYpDQogCQkJCSAgICB3aWR0aCAgICAgIAk0NDANCiAJCQkJICAgIGhlaWdodCAgICAgCTE1NA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCkBAIC0yMjUwMiw3ICsyMjQyNiw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNzEiIEA5NTUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2ODMsIDE2ODgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ2LCAxNjg5KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI1MTgsNyArMjI0NDIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE3MiIgQDk1Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTU1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDIyMywgMzQ4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyODYsIDM0OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyNTM0LDExICsyMjQ1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDk1NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5NTQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2ODMsIDE2ODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY4MywgMTU5OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NiwgMTY4OSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzQ2LCAxNTk5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk1Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTU2DQotCQkJCQkJbG9jYXRpb24gICAJKDczNiwgMTYzMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzk5LCAxNjMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMjU1OSw3ICsyMjQ4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJib2R5IiBAOTU4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5NTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIzLCAzNDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI4NiwgMzQ5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI1NzEsNyArMjI0OTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5NTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk1OA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MDQsIDE3NTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDY2NywgMTc1NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI1OTYsMTEgKzIyNTIwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTU1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4MywgMTY4OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjgzLCAxNzc5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQ2LCAxNjg5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDYsIDE3ODApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzI0LCAxNzU2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3ODcsIDE3NTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyNzU4LDcgKzIyNjgyLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTc2DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNjkiIEA5NjgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4NTgsIDE2ODkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ2LCAxNjg5KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI3NzQsNyArMjI2OTgsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE3MCIgQDk2OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTY4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc4LCA1NjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNCwgNTY0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI3ODYsNyArMjI3MTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5NzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk2OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NzAsIDE2MjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDY1OCwgMTYyMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI4MTIsMTEgKzIyNzM2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTY4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk1NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg1OCwgMTY4OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODU4LCAxNTk5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQ2LCAxNjg5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDYsIDE1OTkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTcxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTE2LCAxNjMzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MDQsIDE2MzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyODM3LDcgKzIyNzYxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRlc3QiIEA5NzINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDk2OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3OCwgNTY0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzQsIDU2NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyODQ5LDcgKzIyNzczLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTczDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NzINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzg2LCAxNzU3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzQsIDE3NTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyODc0LDExICsyMjc5OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDk2OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5NTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NTgsIDE2ODkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg1OCwgMTc4MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NiwgMTY4OSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzQ2LCAxNzgwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk3NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTcyDQotCQkJCQkJbG9jYXRpb24gICAJKDkwMiwgMTc1OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzkwLCAxNzU4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMjg5OCw3ICsyMjgyMiw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk0NA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTc4IiBAOTc1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTgxLCAxMzIwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDU3NCwgMTMyMSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyOTEzLDcgKzIyODM3LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGF1c2UiIEA5NzYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDk3NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTEsIDY1MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA0LCA2NTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMjkyNSw3ICsyMjg0OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTc2DQotCQkJCQkJbG9jYXRpb24gICAJKDUwNywgMTMzNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTAwLCAxMzM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMjk0OSwxMSArMjI4NzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA5NzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTU0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTgxLCAxMzIwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1ODEsIDE0MjQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1NzQsIDEzMjEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU3NCwgMTQyNSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5NzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MzYsIDEzODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyOSwgMTM4MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjI5NzQsNyArMjI4OTgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5NzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzkwLCAxMzc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzODMsIDEzNzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIyOTk1LDcgKzIyOTE5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE3OSIgQDk4MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTc1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDExMSwgNjUwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMDQsIDY1MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzAwNyw3ICsyMjkzMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTgwDQotCQkJCQkJbG9jYXRpb24gICAJKDQxNiwgMTI0OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDA5LCAxMjQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzAzMiwxMSArMjI5NTYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA5NzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTUzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTgxLCAxMzIwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1ODEsIDEyMTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1NzQsIDEzMjEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU3NCwgMTIxNykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk4MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MjMsIDEyNDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDYxNiwgMTI0NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjMwODQsNyArMjMwMDgsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMjUNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxODAiIEA5ODQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMTI4LCAxNTA5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDkwMiwgMTcxOCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMDk5LDcgKzIzMDIzLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkZWNpZGVyIiBAOTg1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5ODQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDIzLCA1MDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE5NywgNzE4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjMxMTEsNyArMjMwMzUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5ODYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk4NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDQ2LCAxNzI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MjAsIDE5MzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMTM0LDEyICsyMzA1OCwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjQyNjI4MDJDMiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTg0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk4Mw0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5MDIsIDE3MTgpDQorCQkJCQkJKDkwMiwgMTc3OCkNCisJCQkJCQkoMTAyOCwgMTc3OCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEyOCwgMTUwOSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEyOCwgMTc3OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkwMiwgMTcxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAyOCwgMTc3OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5ODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDk4NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTU1LCAxNzI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MjksIDE5MzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMTYwLDcgKzIzMDg4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE4MSIgQDk4OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTg0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQyMywgNTA5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxOTcsIDcxOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMTc0LDE2ICsyMzEwMiwxMiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjQyNjI4MDMxMiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTg0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk1NA0KLQkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxMTI4LCAxNTA5KQ0KLQkJCQkJCSgxMTI4LCAxNDQ5KQ0KLQkJCQkJCSg5MDIsIDE0NDkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMjgsIDE1MDkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkwMiwgMTQ0OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MDQsIDM0MzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NzQsIDMxMTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5ODgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTU4LCAxNDA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzIsIDE2MTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMjU2LDI3ICsyMzE4MCwxMSBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREYyOTgzMjAxMjgiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA5OTENCi0JCQkJCWxvY2F0aW9uICAgCSgxNDEwLCAxNDY0KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkxDQotCQkJCQltYXhfd2lkdGggIAkzMzQpDQogCQkJCSAgICB3aWR0aCAgICAgIAk0MTQNCiAJCQkJICAgIGhlaWdodCAgICAgCTExMg0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE4MiIgQDk5Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyMzksIDE1MzgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQwMSwgMTY3MikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMjkxLDcgKzIzMTk5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkZWNpZGVyIiBAOTkzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA5OTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE3NiwgNjMzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQsIDc2NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMzAzLDcgKzIzMjExLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5OTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyNCwgMTczNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ4NiwgMTg3MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjMzMjYsMTIgKzIzMjM0LDE2IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGNDI2NTcwMDdCIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA5OTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTgzDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDE0MDEsIDE2NzIpDQorCQkJCQkJKDE0MDEsIDE3NzcpDQorCQkJCQkJKDEzNDgsIDE3NzcpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMzksIDE1MzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMzksIDE3ODApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDAxLCAxNjcyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzQ4LCAxNzc3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk5NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTkzDQotCQkJCQkJbG9jYXRpb24gICAJKDEyMTksIDE3MjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzODEsIDE4NjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzMzUyLDcgKzIzMjY0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE4MyIgQDk5Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAOTkyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzYsIDYzMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE0LCA3NjcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzM2NiwxNiArMjMyNzgsMTIgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREY0MjY1NzAwQ0IiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDk5Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA5OTENCi0JCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMTIzOSwgMTUzOCkNCi0JCQkJCQkoMTIzOSwgMTQ1OCkNCi0JCQkJCQkoMTQwMSwgMTQ1OCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIzOSwgMTUzOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQwMSwgMTQ1OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI4MDIsIDMzNDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwMDksIDI5NzIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAOTk3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA5OTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM2MywgMTQxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUyNSwgMTU0NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjMzOTUsNyArMjMzMDMsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDYNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE3NiIgQDk5OA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1ODcsIDE2NDkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTYzMiwgMTY1MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzNDExLDcgKzIzMzE5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxNzciIEA5OTkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDk5OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzcsIDQ5OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjgyLCA1MDApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzQyNywxMSArMjMzMzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA5OTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAOTkxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU4NywgMTY0OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU4NywgMTUxMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MzIsIDE2NTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MzIsIDE1MTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTAwMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAOTk5DQotCQkJCQkJbG9jYXRpb24gICAJKDE2MzcsIDE1NDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2ODIsIDE1NDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzNDUyLDcgKzIzMzYwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNldHVwUGFydCIgQDEwMDENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDk5OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzcsIDQ5OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjgyLCA1MDApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzQ2NCw3ICsyMzM3Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ5NywgMTY4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU0MiwgMTY5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjM0ODksMTEgKzIzMzk3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAOTk4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk5MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1ODcsIDE2NDkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1ODcsIDE3ODUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjMyLCAxNjUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjMyLCAxNzg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU0OCwgMTczNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU5MywgMTczNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjM1MTMsNyArMjM0MjEsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDANCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE3NCIgQDEwMDQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzAzLCAxNjQ5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE2MzIsIDE2NTApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzUyOSw3ICsyMzQzNyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTc1IiBAMTAwNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTAwNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNTMsIDQ5OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjgyLCA1MDApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzU0NSwxMSArMjM0NTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDA0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk5MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MDMsIDE2NDkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MDMsIDE1MTMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjMyLCAxNjUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjMyLCAxNTE0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc1NiwgMTU1MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY4NSwgMTU1NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjM1NzAsNyArMjM0NzgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYm9keVBhcnQiIEAxMDA3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDA0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM1MywgNDk5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyODIsIDUwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzNTgyLDcgKzIzNDkwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTAwOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTAwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODExLCAxNjg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzQwLCAxNjg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzYwNywxMSArMjM1MTUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDA0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDk5MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MDMsIDE2NDkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MDMsIDE3ODUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjMyLCAxNjUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjMyLCAxNzg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMDcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc0MiwgMTczOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY3MSwgMTc0MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjM5NTksNyArMjM4NjcsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAk0MDcNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNjYiIEAxMDI0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjcyLCA1ODQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjcyLCA1ODIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yMzk3NSw3ICsyMzg4Myw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2NvcGUiIEAxMDI1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDI0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQzNywgMjI5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0MzcsIDIyNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTIzOTg3LDcgKzIzODk1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTAyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTAyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MzcsIDYyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODM3LCA2MTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MDEyLDExICsyMzkyMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEwMjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTAyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3MiwgNTg0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MTksIDU4NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3MiwgNTgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MTksIDU4MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDI3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDI1DQotCQkJCQkJbG9jYXRpb24gICAJKDg4MiwgNTE2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4ODIsIDUxNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQwMzcsNyArMjM5NDUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTAyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTAyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3ODMsIDY1NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzgzLCA2NTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MDU4LDcgKzIzOTY2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInZhcmlhYmxlIiBAMTAyOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTAyNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0MzcsIDIyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDM3LCAyMjcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDA3MCw3ICsyMzk3OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTEyLCA1MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDUxMiwgNTAzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDA5NSwxMSArMjQwMDMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDI0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwMTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzIsIDU4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDI2LCA1ODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzIsIDU4MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDI2LCA1ODIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTAzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTAyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NzUsIDYyMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDc1LCA2MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MTIwLDcgKzI0MDI4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwMzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwMjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjIwLCA1NTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyMCwgNTUyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDE5Myw3ICsyNDEwMSw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE0MCwgNTI5KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNDAsIDI3OCkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxODYiIEAxMDM5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjY1LCA4NDMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjY1LCA4NjQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDIwOCw3ICsyNDExNiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWN0aXZpdHkiIEAxMDQwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDM5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNzMsIDQwNSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM3MywgNDI2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQyMjAsNyArMjQxMjgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDQwDQotCQkJCQkJbG9jYXRpb24gICAJKDQ5MiwgNzI2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0OTIsIDc0NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQyNDQsMTEgKzI0MTUyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTAzOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDIwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjY1LCA4NDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQxMSwgODQzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjY1LCA4NjQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQxMSwgODY0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDY1LCA4ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ2NSwgOTA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDI2OSw3ICsyNDE3Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDQzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDQwDQotCQkJCQkJbG9jYXRpb24gICAJKDU2NywgNzg1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NjcsIDgwNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQyOTAsNyArMjQxOTgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3N0cnVjdHVyZWROb2RlIiBAMTA0NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTAzOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzczLCA0MDUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNzMsIDQyNikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MzAyLDcgKzI0MjEwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA0NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NzksIDg3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzc5LCA4OTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MzI2LDExICsyNDIzNCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEwMzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTAyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY2NSwgODQzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MTksIDg0MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY2NSwgODY0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MTksIDg2NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDQ0DQotCQkJCQkJbG9jYXRpb24gICAJKDg5MiwgODA5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4OTIsIDgzMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQzNTEsNyArMjQyNTksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA0Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3OTEsIDkzNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzkxLCA5NTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MzcxLDcgKzI0Mjc5LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTkyDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxNjciIEAxMDQ4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTYwMiwgNTg3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE2MDIsIDYwNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0MzgzLDcgKzI0MjkxLDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNDkNCiAJCQkJCVBhcmVudF9WaWV3IAlAMTA0OA0KLQkJCQkJbG9jYXRpb24gICAJKDE0MDAsIDU1NCkNCisJCQkJCWxvY2F0aW9uICAgCSgxNDAwLCA1NzMpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NDA5LDcgKzI0MzE3LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb250YWluZWROb2RlIiBAMTA1MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTA0OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3ODcsIDIyNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzg3LCAyNDYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDQyMSw3ICsyNDMyOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY4NiwgNjI4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjg2LCA2NDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NDQ2LDExICsyNDM1NCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEwNDgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTAyMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MDIsIDU4NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg1NSwgNTg3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYwMiwgNjA2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODU1LCA2MDYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA1Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA1MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzY5LCA2ODgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NjksIDcwNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQ0NzEsNyArMjQzNzksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW5TdHJ1Y3R1cmVkTm9kZSIgQDEwNTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEwNDgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzg3LCAyMjcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc4NywgMjQ2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQ0ODMsNyArMjQzOTEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDU0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDUzDQotCQkJCQkJbG9jYXRpb24gICAJKDE1NjEsIDQ4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU2MSwgNTA4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDUwOCwxMSArMjQ0MTYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDQ4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwMjMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjAyLCA1ODcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDksIDU4NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MDIsIDYwNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM0OSwgNjA2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQzMSwgNjM0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDMxLCA2NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NTMzLDcgKzI0NDQxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU0OSwgNTQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTQ5LCA1NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NTUzLDE0ICsyNDQ2MSwxNCBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE2OCIgQDEwNTcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNjA1LCA4NzUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTYwNSwgODY0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjI5NkZGMDI3MSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29udGFpbmVkRWRnZSIgQDEwNTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEwNTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzkwLCA1MTUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc5MCwgNTA0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQ1NzIsNyArMjQ0ODAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDU5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDU4DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDkxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcxNiwgOTAyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDU5NywxMSArMjQ1MDUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDU3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwMjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjA1LCA4NzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NjEsIDg3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MDUsIDg2NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg2MSwgODY0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwNjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTgwNSwgOTU3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODA1LCA5NDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NjIyLDcgKzI0NTMwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImluU3RydWN0dXJlZE5vZGUiIEAxMDYxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc5MCwgNTE1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3OTAsIDUwNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI0NjM0LDcgKzI0NTQyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTM0LCA3OTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MzQsIDc4MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjQ2NTksMTEgKzI0NTY3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA1Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDIzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYwNSwgODc1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzQ5LCA4NzUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjA1LCA4NjQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDksIDg2NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDYzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDYxDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MjgsIDkyNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQyOCwgOTE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNDY4NCw3ICsyNDU5Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDY0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDYxDQotCQkJCQkJbG9jYXRpb24gICAJKDE1NDksIDgyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU0OSwgODE3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTA4NywxNCArMjQ5OTUsMTQgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMTMsIDUyNSkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMTMsIDIzNikpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxODgiIEAxMDc1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzY0LCA0NjIpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzY1LCA0NjIpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGMjlDNjkwMDlDIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnB1dEVsZW1lbnQiIEAxMDc2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDc1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDIzNCwgLTE4MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjM1LCAtMTgzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjUxMDYsNyArMjUwMTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDc2DQotCQkJCQkJbG9jYXRpb24gICAJKDk4OSwgMzc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTAsIDM3NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjUxMzEsMTUgKzI1MDM5LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA3NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDcxDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDc2NCwgNDYyKQ0KKwkJCQkJCSg3NjUsIDQ2MikNCiAJCQkJCQkoMTEyMiwgNDYyKQ0KIAkJCQkJCSgxMTIyLCA1MTgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc2NCwgNDYyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzY1LCA0NjIpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMjIsIDUxOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDc2DQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTYsIDQzNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA1NywgNDM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTE2MCw3ICsyNTA2OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZWdpb25Bc0lucHV0IiBAMTA3OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTA3NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzQsIC0xODMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIzNSwgLTE4MykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MTcyLDcgKzI1MDgwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA4MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA3OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MzUsIDQyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTM2LCA0MjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MTk3LDE1ICsyNTEwNSwxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEwNzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTA3Mw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSg3NjQsIDQ2MikNCisJCQkJCQkoNzY1LCA0NjIpDQogCQkJCQkJKDQxNSwgNDYyKQ0KIAkJCQkJCSg0MTUsIDUyNikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzY0LCA0NjIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NjUsIDQ2MikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDE1LCA1MjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA3OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg0OTUsIDQ5OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDk2LCA0OTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MjI1LDE0ICsyNTEzMywxNCBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE4NyIgQDEwODINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NzEsIDcwOSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NzIsIDcwOSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREYyOUM5NjAxQzUiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm91dHB1dEVsZW1lbnQiIEAxMDgzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI0MSwgNjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI0MiwgNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTI0NCw3ICsyNTE1Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwODQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA2MywgNzUwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDY0LCA3NTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1MjY5LDE1ICsyNTE3NywxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEwODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTA3MQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSg3NzEsIDcwOSkNCisJCQkJCQkoNzcyLCA3MDkpDQogCQkJCQkJKDExMDYsIDcwOSkNCiAJCQkJCQkoMTEwNiwgNjIyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NzEsIDcwOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc3MiwgNzA5KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTA2LCA2MjIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTA4NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTA4Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTYwLCA2NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNjEsIDY2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjUyOTgsNyArMjUyMDYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVnaW9uQXNPdXRwdXQiIEAxMDg2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI0MSwgNjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI0MiwgNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTMxMCw3ICsyNTIxOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTQ2LCA3NjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0NywgNzYzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTMzNSwxNSArMjUyNDMsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDgyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwNzMNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoNzcxLCA3MDkpDQorCQkJCQkJKDc3MiwgNzA5KQ0KIAkJCQkJCSg0MjEsIDcwOSkNCiAJCQkJCQkoNDIxLCA2MzgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc3MSwgNzA5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzcyLCA3MDkpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQyMSwgNjM4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDc3LCA2NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ3OCwgNjc5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTUyMiw3ICsyNTQzMCw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTM0NA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE5MSIgQDEwOTQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMzE3LCAzOTEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMxNywgMzk4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU1MzgsNyArMjU0NDYsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImV4Y2VwdGlvbklucHV0IiBAMTA5NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTA5NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTU4LCAtNDQ0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTU4LCAtNDM3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU1NTAsNyArMjU0NTgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMDk2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMDk1DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMzcsIDM0NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMzNywgMzU0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTU3NSwxMSArMjU0ODMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMDk0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEwOTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzE3LCAzOTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0ODMsIDM5MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMTcsIDM5OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ4MywgMzk4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEwOTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEwOTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ0NCwgNDMzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDQ0LCA0NDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1NjAwLDE3ICsyNTUwOCwxNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTkyIiBAMTA5OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTA5NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTU4LCAtNDQ0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTU4LCAtNDM3KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkE3RjYzMDJCRiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA5NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDkzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMxNywgMzkxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTUyLCAzOTEpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzE3LCAzOTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNTIsIDM5OCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE5MyIgQDEwOTkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMzM5LCA2MTYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMzOSwgNjMwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU2MjYsNyArMjU1MzQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImV4Y2VwdGlvblR5cGUiIEAxMTAwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02LCAtMjA0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNiwgLTE5MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1NjM4LDcgKzI1NTQ2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTEwMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTEwMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzg0LCA1NzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzODQsIDU4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU2NjMsMTEgKzI1NTcxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDkxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMzOSwgNjE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTI2LCA2MTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzM5LCA2MzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MjYsIDYzMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NjMsIDY3MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ2MywgNjg0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTY4OCwyNCArMjU1OTYsMjQgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDE5NCIgQDExMDMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEwOTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYsIC0yMDQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02LCAtMTkwKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkE3OUEyMDA3RCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTA5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDkzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMzOSwgNjE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTUyLCA2MTYpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzM5LCA2MzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNTIsIDYzMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE4OSIgQDExMDQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2MDksIDM5NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2MDksIDUyOCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREZBNzk5OTAwMkUiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImhhbmRsZXIiIEAxMTA1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTA0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI5LCAtNDExKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyOSwgLTI3NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1NzE3LDcgKzI1NjI1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTEwNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTEwNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjEsIDMxOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzYxLCA0NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1NzQyLDExICsyNTY1MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDExMDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTA5Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwOSwgMzk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NTIsIDM5NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwOSwgNTI4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NTIsIDUyOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTA3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTA1DQotCQkJCQkJbG9jYXRpb24gICAJKDgyNSwgNDM2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MjUsIDU3MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU3NjcsNyArMjU2NzUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTEwOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTEwNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjEsIDM1OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjYxLCA0OTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1Nzg4LDcgKzI1Njk2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInByb3RlY3RlZE5vZGUiIEAxMTA5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTA0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI5LCAtNDExKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyOSwgLTI3NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1ODAwLDcgKzI1NzA4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTExMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTEwOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTcsIDQyNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTE3LCA1NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1ODI1LDExICsyNTczMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDExMDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTA5Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwOSwgMzk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjYsIDM5NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYwOSwgNTI4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjYsIDUyOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTExDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTA5DQotCQkJCQkJbG9jYXRpb24gICAJKDQwMSwgMzQwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MDEsIDQ3NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU4NTAsNyArMjU3NTgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTExMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTEwOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTQsIDQ3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTE0LCA2MDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI1ODcwLDcgKzI1Nzc4LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTc3DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICJuIiBAMTExMw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDYwOSwgNjQ4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDYwOSwgNTI4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU4ODYsNyArMjU3OTQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImhhbmRsZXJCb2R5IiBAMTExNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTExMw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzM2LCAtMTcyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzM2LCAtMjkyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU4OTgsNyArMjU4MDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTE1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTE0DQotCQkJCQkJbG9jYXRpb24gICAJKDQ5MywgNjkyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0OTMsIDU3MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjU5MjMsMTEgKzI1ODMxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTExMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDkyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjA5LCA2NDgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM2NiwgNjQ4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjA5LCA1MjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM2NiwgNTI4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExMTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExMTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDA1LCA1OTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDQwNSwgNDc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTk0OCw3ICsyNTg1Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQxOTAiIEAxMTE3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTEzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03MzYsIC0xNzIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC03MzYsIC0yOTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTk2MCw3ICsyNTg2OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExMTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExMTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjkyLCA1NzApDQorCQkJCQkJbG9jYXRpb24gICAJKDY5MiwgNDUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNTk4Niw4ICsyNTg5NCw4IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTExMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMDkzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjA5LCA2NDgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg1MiwgNjQ4KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjA5LCA1MjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg1MiwgNTI4KSkpKQ0KIAkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAxMTE5DQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQpAQCAtMjYwNjQsOCArMjU5NzIsNyBAQAogCQkJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIm11c3RJc29sYXRlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERjQyQkYwMDI3MCINCi0JCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCIpKSkNCisJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxvb3BOb2RlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0RGNDJDMEEwMDUxIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQpAQCAtMjYzNDMsMjIgKzI2MjUwLDYgQEAKIAkJCQkJbGFiZWwgICAgICAJIlN0cnVjdHVyZWRBY3Rpdml0eU5vZGUiKQ0KIAkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGNDJCREEwMzY5Ig0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMTEyNg0KLQkJCQkJbG9jYXRpb24gICAJKDY5NywgNzk4KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkxDQotCQkJCQltYXhfd2lkdGggIAkzMjgpDQogCQkJCSAgICB3aWR0aCAgICAgIAkzNzUNCiAJCQkJICAgIGhlaWdodCAgICAgCTExOCkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkFjdGl2aXRpZXM6OkJhc2ljQWN0aXZpdGllczo6QWN0aW9uIiBAMTEyNw0KQEAgLTI2Njc2LDcgKzI2NTY3LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTA2DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjAzIiBAMTE0NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI0ODksIDExMjIpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjU3MywgMjI0NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2NjkxLDcgKzI2NTgyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJib2R5T3V0cHV0IiBAMTE0NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTE0NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDksIDM0MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTMzLCAxNDY0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjY3MDMsNyArMjY1OTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDIzMTksIDEyMjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MDMsIDIzNDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2NzI3LDE1ICsyNjYxOCwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDExNDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTE0Mw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgyNDg5LCAxMTIyKQ0KKwkJCQkJCSgyNTczLCAyMjQ0KQ0KKwkJCQkJCSgyNDg5LCAyMjQ0KQ0KIAkJCQkJCSgyNDg5LCAxMTgyKQ0KIAkJCQkJCSgyMjA5LCAxMTgyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNDg5LCAxMTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU3MywgMjI0NCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjIwOSwgMTE4MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDIyNjIsIDExNjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDYsIDIyODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2NzU2LDcgKzI2NjQ4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIwNCIgQDExNDgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDExNDQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDQ5LCAzNDIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUzMywgMTQ2NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2NzcwLDEyICsyNjY2MiwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjQyRjAxMDNDMyINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTE0NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMTMzDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDI1NzMsIDIyNDQpDQorCQkJCQkJKDI2MzMsIDIyNDQpDQorCQkJCQkJKDI2MzMsIDg0NykpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjQ4OSwgMTEyMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQ4OSwgODQ3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU3MywgMjI0NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjYzMywgODQ3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExNDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExNDgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjUyMywgODg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNjA3LCAyMDA2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjg1MSw3ICsyNjc0Nyw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTMwMA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTE4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTk3IiBAMTE1Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE3MTEsIDk4MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNjc4LCA5ODApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjg2Niw3ICsyNjc2Miw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBAMTE1Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTE1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMjYsIDIwNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjkzLCAyMDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjg3OCw3ICsyNjc3NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExNTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTYzNCwgMTA4MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYwMSwgMTA4MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjY5MDIsMTEgKzI2Nzk4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTE1Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMTM1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxMSwgOTgxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzExLCAxMTE0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY3OCwgOTgwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjc4LCAxMTEzKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc0OCwgMTA4NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcxNSwgMTA4MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjY5MjcsNyArMjY4MjMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE1Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTgwLCA5ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDE1NDcsIDk3OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjY5NTEsNyArMjY4NDcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTk4IiBAMTE1Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTE1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMjYsIDIwNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjkzLCAyMDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNjk2NiwxMSArMjY4NjIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMTUyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDExNTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzExLCA5ODEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MTEsIDg0OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NzgsIDk4MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY3OCwgODQ4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExNTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDExNTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc3OCwgODc5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzQ1LCA4NzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI2OTkwLDcgKzI2ODg2LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTY3DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxOTkiIEAxMTU5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg3OSwgOTgyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4NzgsIDk4MikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MDA1LDcgKzI2OTAxLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJsb29wVmFyaWFibGUiIEAxMTYwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTU5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5NCwgMjA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0OTMsIDIwNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MDE3LDcgKzI2OTEzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE2MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDE2LCAxMDgxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDE1LCAxMDgxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzA0MSwxMSArMjY5MzcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMTU5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDExNDMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODc5LCA5ODIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NzksIDExMTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODc4LCA5ODIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NzgsIDExMTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODQzLCAxMDkzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODQyLCAxMDkzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzA2Niw3ICsyNjk2Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTYzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTYwDQotCQkJCQkJbG9jYXRpb24gICAJKDIwMjIsIDEwMDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMjEsIDEwMDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MDkwLDcgKzI2OTg2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIwMCIgQDExNjQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDExNTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDk0LCAyMDcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5MywgMjA3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjcxMDUsMTEgKzI3MDAxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTE1OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMTUxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg3OSwgOTgyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODc5LCA4NDkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODc4LCA5ODIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NzgsIDg0OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTY1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTY0DQotCQkJCQkJbG9jYXRpb24gICAJKDE5MzksIDg4NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkzOCwgODg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzEyOSw3ICsyNzAyNSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk2MA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjAxIiBAMTE2Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxNjQsIDg4MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTA0LCA5ODIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzE0NCw3ICsyNzA0MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYm9keU91dHB1dCIgQDExNjcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDExNjYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzc5LCAxMDUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDcxOSwgMjA3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjcxNTYsNyArMjcwNTIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTY3DQotCQkJCQkJbG9jYXRpb24gICAJKDIyODksIDEwMDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMjksIDExMTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MTc5LDEyICsyNzA3NSwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjQyRUIzMDAwQSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTE2Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMTQzDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDIxMDQsIDk4MikNCisJCQkJCQkoMTg3OCwgOTgyKQ0KKwkJCQkJCSgxODc4LCAxMTE3KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTY0LCA4ODApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxNjQsIDExMTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTA0LCA5ODIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NzgsIDExMTcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE2OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE2Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTk4LCAxMDkyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTM4LCAxMTk0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzIwNSw3ICsyNzEwNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyMDIiIEAxMTcwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTY2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc3OSwgMTA1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3MTksIDIwNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MjIwLDE1ICsyNzEyMCwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDExNjYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTE1MQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgyMTY0LCA4ODApDQorCQkJCQkJKDIxMDQsIDk4MikNCisJCQkJCQkoMjE2NCwgOTgyKQ0KIAkJCQkJCSgyMTY0LCA4MjApDQogCQkJCQkJKDE5MTUsIDgyMCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE2NCwgODgwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjEwNCwgOTgyKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTE1LCA4MjApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE3MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE3MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTQ3LCA4MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDE4ODcsIDkxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjcyNTYsNyArMjcxNTcsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NzIsIDczMCkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzcyLCA1NzcpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjA1IiBAMTE3Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIwNDksIDc0MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTA5LCA2ODEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzI3MSw3ICsyNzE3Miw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibG9vcFZhcmlhYmxlSW5wdXQiIEAxMTc0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMTczDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY2NCwgLTM0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3MjQsIC05NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI3MjgzLDcgKzI3MTg0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE3NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE3NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjczLCA2MTEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzMzMsIDU1MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjczMDYsMTYgKzI3MjA3LDEyIEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGNDJGNEEwM0I0Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMTczDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDExNTANCi0JCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMjA0OSwgNzQxKQ0KLQkJCQkJCSgyMTA5LCA3NDEpDQotCQkJCQkJKDIxMDksIDU0OCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA0OSwgNzQxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjEwOSwgNjgxKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTA5LCA1NDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE3Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE3NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDYzLCA2MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMjMsIDU2MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjczMzYsNyArMjcyMzMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTE3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTE3NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjIzLCA2NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyODMsIDYxNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjczNjAsNyArMjcyNTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjA2IiBAMTE3OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTE3Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NjQsIC0zNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzI0LCAtOTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yNzM3NCwxMiArMjcyNzEsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREY0MkY0QjAwNkQiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDExNzMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTE1MQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgyMTA5LCA2ODEpDQorCQkJCQkJKDIxMDksIDc0MSkNCisJCQkJCQkoMTkxNSwgNzQxKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDQ5LCA3NDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTA5LCA2ODEpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MTUsIDc0MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMTc4DQotCQkJCQkJbG9jYXRpb24gICAJKDE5NDIsIDY5NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAwMiwgNjM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yODYzMCw3ICsyODUzMSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTEyNQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIyNyIgQDEyMTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyOTg5LCAxMjk3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDMwMDYsIDEyOTcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjg2NDYsNyArMjg1NDcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImludmFyaWFudCIgQDEyMTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzMywgMTY5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTE2LCAxNjkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjg2NTgsNyArMjg1NTksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjE0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjEzDQotCQkJCQkJbG9jYXRpb24gICAJKDI4NzYsIDEzNDApDQorCQkJCQkJbG9jYXRpb24gICAJKDI4OTMsIDEzNDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yODY4MywxMSArMjg1ODQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjEyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyMTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyOTg5LCAxMjk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTg5LCAxNDExKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzAwNiwgMTI5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzAwNiwgMTQxMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjE1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjEzDQotCQkJCQkJbG9jYXRpb24gICAJKDMwNjEsIDEzNjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDMwNzgsIDEzNjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yODcwOCw3ICsyODYwOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjE2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjEzDQotCQkJCQkJbG9jYXRpb24gICAJKDI3MzcsIDEzNzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDI3NTQsIDEzNzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yODcyOSwxNSArMjg2MzAsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIyOCIgQDEyMTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzMywgMTY5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTE2LCAxNjkpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0QyNTZDRjAwMjYwIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjEyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyMTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyOTg5LCAxMjk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTg5LCAxMTg0KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzAwNiwgMTI5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzAwNiwgMTE4MykpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkludGVyYWN0aW9uczo6QmFzaWNJbnRlcmFjdGlvbnM6OkludGVyYWN0aW9uRnJhZ21lbnQiIEAxMjE4DQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCkBAIC0yODgzMCw3ICsyODczMSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE2Mg0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIzMiIgQDEyMjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjIyLCA0NzApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIyMiwgOTIyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI4ODQ1LDcgKzI4NzQ2LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJmcmFnbWVudCIgQDEyMjUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODM5LCAtNzczKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MzksIC0zMjEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjg4NTcsNyArMjg3NTgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjI1DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MDcsIDM4OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcwNywgODQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjg4ODEsMTIgKzI4NzgyLDE3IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RDOEYxNzQwMDg3Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjI0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyMTgNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTIyMiwgOTIyKQ0KKwkJCQkJCSgxMjIyLCAxMDA1KQ0KKwkJCQkJCSgxODMwLCAxMDA1KQ0KKwkJCQkJCSgxODMwLCA1ODkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMjIsIDQ3MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTgzMSwgNDcwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyMiwgOTIyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODMwLCA1ODkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTIyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzg5LCA1MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3ODksIDk3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI4OTA3LDcgKzI4ODEzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyMjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU1MywgNTI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTUzLCA5NzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yODkzMSw3ICsyODgzNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbmNsb3NpbmdJbnRlcmFjdGlvbiIgQDEyMjkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyMjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODM5LCAtNzczKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MzksIC0zMjEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjg5NDMsNyArMjg4NDksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjMwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjI5DQotCQkJCQkJbG9jYXRpb24gICAJKDEzNzEsIDkxMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM3MSwgMTM2MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI4OTY4LDE1ICsyODg3NCwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEyMjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTIyMw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxMjIyLCA5MjIpDQogCQkJCQkJKDEyMjIsIDQ3MCkNCiAJCQkJCQkoMTE2MiwgNDcwKQ0KIAkJCQkJCSgxMTYyLCAxMDY1KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjIyLCA0NzApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjIyLCA5MjIpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNjIsIDEwNjUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTIyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjEyLCAxMDE3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjEyLCAxNDY5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk0MTUsNyArMjkzMjIsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk2OTINCiAJCQkJICAgIGhlaWdodCAgICAgCTI2NykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIxOCIgQDEyNTANCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDM4LCAxMzU4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwMTksIDEzNTgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk0MzAsNyArMjkzMzcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbm5lY3RvciIgQDEyNTENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyNTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyLCAyMDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC05MSwgMjA2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NDQyLDcgKzI5MzQ5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI1Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTI1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4OTcsIDE0ODgpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3OCwgMTQ4OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NDY2LDExICsyOTM3MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEyNTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTI0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzgsIDEzNTgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMzgsIDE1MjgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE5LCAxMzU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDE5LCAxNTI4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEwMSwgMTQ5NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA4MiwgMTQ5NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NDkxLDcgKzI5Mzk4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIxOSIgQDEyNTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyNTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyLCAyMDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC05MSwgMjA2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NTA2LDExICsyOTQxMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEyNTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTI0OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzgsIDEzNTgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMzgsIDExODkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE5LCAxMzU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDE5LCAxMTg4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA4NSwgMTIyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA2NiwgMTIyOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NTMwLDcgKzI5NDM3LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ3DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMTQiIEAxMjU2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg0MiwgMTAwOCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODQyLCAxMDc0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NTQyLDcgKzI5NDQ5LDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNTcNCiAJCQkJCVBhcmVudF9WaWV3IAlAMTI1Ng0KLQkJCQkJbG9jYXRpb24gICAJKDE4NzYsIDEwNDMpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTg3NiwgMTEwOSkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NTY3LDcgKzI5NDc0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzZW5kTWVzc2FnZSIgQDEyNTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyNTYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkxMywgLTQwNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkxMywgLTM0MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTU3OSw3ICsyOTQ4Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY3NCwgOTgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjc0LCAxMDQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk2MDQsMTEgKzI5NTExLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTI1Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMjQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg0MiwgMTAwOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUzNCwgMTAwOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NDIsIDEwNzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MzQsIDEwNzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTI1OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTc0LCAxMDQ0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTc0LCAxMTEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk2MjksNyArMjk1MzYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2VuZEV2ZW50IiBAMTI2MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTI1Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTEzLCAtNDA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTEzLCAtMzQxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTI5NjQxLDcgKzI5NTQ4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTI2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDQ1LCA5NjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNDUsIDEwMzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTY2NiwxMSArMjk1NzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjU2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODQyLCAxMDA4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTUwLCAxMDA4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg0MiwgMTA3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE1MCwgMTA3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjYzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjYxDQotCQkJCQkJbG9jYXRpb24gICAJKDIwOTUsIDEwMzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwOTUsIDExMDMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTY5MCw3ICsyOTU5Nyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkyOQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjEzIiBAMTI2NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE4NDIsIDExMjYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg0MiwgMTA3NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTcwMiw3ICsyOTYwOSw3IEBACiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjY1DQogCQkJCQlQYXJlbnRfVmlldyAJQDEyNjQNCi0JCQkJCWxvY2F0aW9uICAgCSgxODY4LCAxMTYyKQ0KKwkJCQkJbG9jYXRpb24gICAJKDE4NjgsIDExMTApDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTcyNyw3ICsyOTYzNCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVjZWl2ZU1lc3NhZ2UiIEAxMjY2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMjY0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTMsIC0yODkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTMsIC0zNDEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk3MzksNyArMjk2NDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjY3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjY2DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MDgsIDExMDApDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MDgsIDEwNDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTc2NCwxMSArMjk2NzEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjY0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODQyLCAxMTI2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTM0LCAxMTI2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg0MiwgMTA3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUzNCwgMTA3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjY2DQotCQkJCQkJbG9jYXRpb24gICAJKDE1ODQsIDExNzEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1ODQsIDExMTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTc4OSw3ICsyOTY5Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZWNlaXZlRXZlbnQiIEAxMjY5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMjY0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTMsIC0yODkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTMsIC0zNDEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk4MDEsNyArMjk3MDgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjcwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjY5DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMzEsIDEwODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMzEsIDEwMzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTgyNiwxMSArMjk3MzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjY0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODQyLCAxMTI2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTUwLCAxMTI2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg0MiwgMTA3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE1MCwgMTA3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjcxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjY5DQotCQkJCQkJbG9jYXRpb24gICAJKDIxMDAsIDExNzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMDAsIDExMjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTg1MCw3ICsyOTc1Nyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk0OA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjIwIiBAMTI3Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE0MTMsIDczNikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNDExLCA3MzcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk4NjUsNyArMjk3NzIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm1lc3NhZ2UiIEAxMjczDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMjcyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MSwgMTEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzksIDExMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTg3Nyw3ICsyOTc4NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTUxOCwgODIzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTE2LCA4MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTkwMSwxMSArMjk4MDgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjcyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDEzLCA3MzYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTMsIDkyMikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MTEsIDczNykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQxMSwgOTIyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNzUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM3NiwgODgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzc0LCA4ODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTkyNiw3ICsyOTgzMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjc2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjczDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NTIsIDg3NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY1MCwgODc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMjk5NDcsNyArMjk4NTQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW50ZXJhY3Rpb24iIEAxMjc3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMjcyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MSwgMTEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzksIDExMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTk1OSw3ICsyOTg2Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU1MywgNTc5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTUxLCA1ODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0yOTk4MywxMSArMjk4OTAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjcyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDEzLCA3MzYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTMsIDU1MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MTEsIDczNykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQxMSwgNTUyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyNzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEyNzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM2OCwgNTg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzY2LCA1ODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDAwOCw3ICsyOTkxNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjgwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjc3DQotCQkJCQkJbG9jYXRpb24gICAJKDE2MjgsIDYzNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYyNiwgNjM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAwMzYsNyArMjk5NDMsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNjUsIDkyMykNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDY1LCAzNzMpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjIzIiBAMTI4Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjYsIDEzNTEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTM5MSwgMTM1MSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDA1MSw3ICsyOTk1OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2lnbmF0dXJlIiBAMTI4Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTI4Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyODYsIDE4NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjUxLCAxODcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAwNjMsNyArMjk5NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjgzDQotCQkJCQkJbG9jYXRpb24gICAJKDEzMjAsIDE0ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDEyODUsIDE0ODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDA4NywxMSArMjk5OTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjgyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDI2LCAxMzUxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDI2LCAxNTE1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM5MSwgMTM1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM5MSwgMTUxNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjgzDQotCQkJCQkJbG9jYXRpb24gICAJKDE0OTksIDE0ODQpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NjQsIDE0ODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDExMiwxNiArMzAwMTksMTYgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIyNCIgQDEyODYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyODINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjg2LCAxODcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI1MSwgMTg3KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0M2Mzk4M0UwMkMyIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMjgyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyNDkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDI2LCAxMzUxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDI2LCAxMTg4KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM5MSwgMTM1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM5MSwgMTE4OSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIyNSIgQDEyODcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2MzUsIDExMDEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjM1LCAxMTI0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwMTM2LDcgKzMwMDQzLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJhcmd1bWVudCIgQDEyODgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyODcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYwMSwgOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYwMSwgMzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAxNDgsNyArMzAwNTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjg4DQotCQkJCQkJbG9jYXRpb24gICAJKDUxNywgMTAxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTE3LCAxMDM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAxNzIsMTEgKzMwMDc5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTI4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMjQ4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjM1LCAxMTAxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MjgsIDExMDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MzUsIDExMjQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQyOCwgMTEyNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjg4DQotCQkJCQkJbG9jYXRpb24gICAJKDQ0OSwgMTE1NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDQ5LCAxMTc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAxOTcsNyArMzAxMDQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTI5MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTI4OA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MjgsIDEwNTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyOCwgMTA4MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwMjE4LDcgKzMwMTI1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIyNiIgQDEyOTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyODcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYwMSwgOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYwMSwgMzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAyMzAsNyArMzAxMzcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjkzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjkyDQotCQkJCQkJbG9jYXRpb24gICAJKDgwMSwgMTA2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODAxLCAxMDgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAyNTUsMTEgKzMwMTYyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTI4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMjQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjM1LCAxMTAxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NDIsIDExMDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MzUsIDExMjQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg0MiwgMTEyNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjkyDQotCQkJCQkJbG9jYXRpb24gICAJKDgwMSwgMTE1NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODAxLCAxMTc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAzNDUsNyArMzAyNTIsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM2OTYsIDk5MCkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjk2LCA3NDMpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjMwIiBAMTI5OA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDM5NDQsIDQyNykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzMzYwLCA4NjkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAzNjEsNyArMzAyNjgsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImdlbmVyYWxPcmRlcmluZyIgQDEyOTkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEyOTgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODkwLCA2NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzA2LCA1MDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzAzNzMsNyArMzAyODAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjk5DQotCQkJCQkJbG9jYXRpb24gICAJKDM4ODgsIDk1NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzMwNCwgMTM5NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwMzk3LDEyICszMDMwNCwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNEQkU1M0JFMDE3MyINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTI5OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMjk2DQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDMzNjAsIDg2OSkNCisJCQkJCQkoMzM2MCwgOTg5KQ0KKwkJCQkJCSgzNjc0LCA5ODkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM5NDQsIDQyNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzk0NCwgOTg5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzM2MCwgODY5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjc0LCA5ODkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMwMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTI5OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg0MDg1LCA5NDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDM1MDEsIDEzOTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDQyMyw3ICszMDMzNCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMjk5DQotCQkJCQkJbG9jYXRpb24gICAJKDM5NDMsIDkxMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzM1OSwgMTM1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwNDQ0LDE5ICszMDM1NSwxNSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjMxIiBAMTMwMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTI5OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTAsIDY3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzMDYsIDUwOSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREJFNTNCRTAxNzUiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDEyOTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTI5NQ0KLQkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgzOTQ0LCA0MjcpDQotCQkJCQkJKDM5NDQsIDM2NykNCi0JCQkJCQkoMzM2MCwgMzY3KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzOTQ0LCA0MjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMzNjAsIDM2NykpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3MjAsIDE3MzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY0MTQsIDc5NSkpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkludGVyYWN0aW9uczo6QmFzaWNJbnRlcmFjdGlvbnM6OkV2ZW50T2NjdXJyZW5jZSIgQDEzMDQNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTMwNTA4LDEzICszMDQxNSwxMyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI4MDEsIDEwNzEpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQ5NCwgMTA3MSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMjEiIEAxMzA3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQ5MCwgMTAwNykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzNDkwLCAxMDc0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDNDcyMTk0MDI0QSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYmVmb3JlIiBAMTMwOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTMwNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNTgsIC0xMzkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM1OCwgLTcyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwNTI2LDcgKzMwNDMzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMwOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMwOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzc4LCA5NzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDMzNzgsIDEwNDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDU1MSwxMSArMzA0NTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMzA3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEzMDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDkwLCAxMDA3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMzA3LCAxMDA3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQ5MCwgMTA3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzMwNywgMTA3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzEwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzA4DQotCQkJCQkJbG9jYXRpb24gICAJKDMzMjYsIDEwMzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDMzMjYsIDExMDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDU3Niw3ICszMDQ4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ0b0FmdGVyIiBAMTMxMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTMwNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNTgsIC0xMzkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM1OCwgLTcyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwNTg4LDcgKzMwNDk1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMxMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNTg1LCA5NzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDM1ODUsIDEwNDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDYxMywxMSArMzA1MjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMzA3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEyOTYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDkwLCAxMDA3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjc0LCAxMDA3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQ5MCwgMTA3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzY3NCwgMTA3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzExDQotCQkJCQkJbG9jYXRpb24gICAJKDM2NTYsIDEwNjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDM2NTYsIDExMjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMDYzNywxMyArMzA1NDQsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMjIiIEAxMzE0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQ5MCwgMTEyOSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzNDkwLCAxMDc0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDNDcyMUZFMDEwMiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidG9CZWZvcmUiIEAxMzE1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzE0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDEwOTYsIC0yOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA5NiwgLTg0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwNjU1LDcgKzMwNTYyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMxNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMxNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNTc2LCAxMTU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNTc2LCAxMTAzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA2ODAsMTEgKzMwNTg3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTMxNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMjk2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQ5MCwgMTEyOSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzY3NCwgMTEyOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0OTAsIDEwNzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM2NzQsIDEwNzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMxNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNjU0LCAxMTA2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNjU0LCAxMDUxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA3MDUsNyArMzA2MTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWZ0ZXIiIEAxMzE4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzE0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDEwOTYsIC0yOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA5NiwgLTg0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwNzE3LDcgKzMwNjI0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMxOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzU4LCAxMTU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMzU4LCAxMTAzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA3NDIsMTEgKzMwNjQ5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTMxNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzA0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQ5MCwgMTEyOSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzMwNywgMTEyOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0OTAsIDEwNzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMzMDcsIDEwNzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMyMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzMyLCAxMTAwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMzMyLCAxMDQ1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA4MzQsMTMgKzMwNzQxLDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE1Ng0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIwOCIgQDEzMjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgzMjY0LCAxMzUwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDMwNTQsIDEzNTApDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I0QkMxMEIwM0Q0Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzdGFydEV4ZWMiIEAxMzI1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzI0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUwNiwgLTIxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk2LCAtMjEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwODUyLDcgKzMwNzU5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzczLCAxNDYyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTYzLCAxNDYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA4NzcsMTEgKzMwNzg0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTMyNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzIzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzI2NCwgMTM1MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzI2NCwgMTUwNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMwNTQsIDEzNTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNTQsIDE1MDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMjM4LCAxNDY1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMDI4LCAxNDY1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA5MDIsNyArMzA4MDksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic3RhcnQiIEAxMzI4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzI0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUwNiwgLTIxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk2LCAtMjEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwOTE0LDcgKzMwODIxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMyOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzI2LCAxMjI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTE2LCAxMjI1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA5MzksMTEgKzMwODQ2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTMyNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzA0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzI2NCwgMTM1MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzI2NCwgMTE5NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMwNTQsIDEzNTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNTQsIDExOTUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMyOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMjE2LCAxMjI3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMDA2LCAxMjI3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzA5NjMsMTMgKzMwODcwLDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk0OQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjA5IiBAMTMzMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI5MjAsIDEzNTApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzA1NCwgMTM1MCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjRCQzE1MTAwODIiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImZpbmlzaEV4ZWMiIEAxMzMyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzMxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE2MiwgLTIxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk2LCAtMjEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMwOTgxLDcgKzMwODg4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMzMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMDQyLCAxNDcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTc2LCAxNDcwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzEwMDYsMTEgKzMwOTEzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTMzMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzIzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjkyMCwgMTM1MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjkyMCwgMTUwNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMwNTQsIDEzNTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNTQsIDE1MDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMzNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTMzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyODk1LCAxNDY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMDI5LCAxNDY5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzEwMzEsNyArMzA5MzgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZmluaXNoIiBAMTMzNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTMzMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNjIsIC0yMTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI5NiwgLTIxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTA0Myw3ICszMDk1MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzMzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzMzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzAwMiwgMTIzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzEzNiwgMTIzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxMDY4LDExICszMDk3NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEzMzENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTMwNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI5MjAsIDEzNTApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI5MjAsIDExOTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMDU0LCAxMzUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMDU0LCAxMTk1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzMzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzMzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjg4MiwgMTIzMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzAxNiwgMTIzMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxMzcyLDcgKzMxMjc5LDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJODk5DQogCQkJCSAgICBoZWlnaHQgICAgIAkxNzApDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMDciIEAxMzQ5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkyMCwgNzM4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE5NDQsIDczOCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTM4NCw3ICszMTI5MSw3IEBACiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzUwDQogCQkJCQlQYXJlbnRfVmlldyAJQDEzNDkNCi0JCQkJCWxvY2F0aW9uICAgCSgxOTIwLCA2NzkpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTk0NCwgNjc5KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE0MDksNyArMzEzMTYsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvdmVyZWQiIEAxMzUxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzQ5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDMxMSwgLTE4OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzM1LCAtMTg4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNDIxLDcgKzMxMzI4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM1Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzY1LCA5ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3ODksIDk4NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNDQ2LDExICszMTM1MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEzNDkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTM0OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MjAsIDczOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkyMCwgMTAzNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5NDQsIDczOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk0NCwgMTAzNykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzUzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzUxDQotCQkJCQkJbG9jYXRpb24gICAJKDE4OTAsIDEwMDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MTQsIDEwMDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTQ3MSw3ICszMTM3OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb3ZlcmVkQnkiIEAxMzU0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzQ5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDMxMSwgLTE4OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzM1LCAtMTg4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNDgzLDcgKzMxMzkwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM1NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzk3LCA0ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MjEsIDQ4MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNTA4LDExICszMTQxNSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEzNDkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTM0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MjAsIDczOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkyMCwgNDQwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk0NCwgNzM4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTQ0LCA0NDApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTU4LCA0ODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5ODIsIDQ4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNTMyLDEzICszMTQzOSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzgNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIxMCIgQDEzNTcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzYyLCAxMzk4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE2NTYsIDEzOTgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I0REREMUIwMDVBIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyMTEiIEAxMzU4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02NjIsIC05MjMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC03NjgsIC05MjMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE1NTAsNyArMzE0NTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzU5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzU4DQotCQkJCQkJbG9jYXRpb24gICAJKDE4MzQsIDEyNTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MjgsIDEyNTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTU3NiwxMSArMzE0ODMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMzU3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEzNDgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzYyLCAxMzk4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzYyLCAxMjA2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY1NiwgMTM5OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY1NiwgMTIwNikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzU4DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MjcsIDEyNzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MjEsIDEyNzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTYwMSw3ICszMTUwOCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXByZXNlbnRzIiBAMTM2MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTM1Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjYyLCAtOTIzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzY4LCAtOTIzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNjEzLDcgKzMxNTIwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjI2LCAxNTA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTIwLCAxNTA1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE2MzgsMTEgKzMxNTQ1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTM1Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzQ0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc2MiwgMTM5OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc2MiwgMTU5MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NTYsIDEzOTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NTYsIDE1OTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM2Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzMwLCAxNTUxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjI0LCAxNTUxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE2NjIsNyArMzE1NjksNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzMNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIxNiIgQDEzNjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMTkyLCAxNDAwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIxNDIsIDE0MDEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE2NzcsNyArMzE1ODQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNlbGVjdG9yIiBAMTM2NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTM2NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTIsIDQ3NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAyLCA0NzcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzE2ODksNyArMzE1OTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzY2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzY1DQotCQkJCQkJbG9jYXRpb24gICAJKDIzMDYsIDE0OTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNTYsIDE0OTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTcxMywxMSArMzE2MjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxMzY0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDEzNDUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTkyLCAxNDAwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTkyLCAxNTk0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE0MiwgMTQwMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE0MiwgMTU5NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzY3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzY1DQotCQkJCQkJbG9jYXRpb24gICAJKDIxNDUsIDE1MzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwOTUsIDE1MzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTczOCw3ICszMTY0NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzY1DQotCQkJCQkJbG9jYXRpb24gICAJKDI0MzEsIDE1NTApDQorCQkJCQkJbG9jYXRpb24gICAJKDIzODEsIDE1NTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTc1OSw3ICszMTY2Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyMTciIEAxMzY5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzY0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MiwgNDc2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMDIsIDQ3NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMTc3MSw3ICszMTY3OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzNzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzNjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjA5OSwgMTI2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA0OSwgMTI2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMxNzk2LDExICszMTcwMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDEzNjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTM0OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxOTIsIDE0MDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxOTIsIDEyMDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTQyLCAxNDAxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTQyLCAxMjA3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzNzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzNjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzNywgMTMwOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjE4NywgMTMxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyMTA2LDcgKzMyMDEzLDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIxMiIgQDEzODcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTQwLCA4NzgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUzMiwgODc4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyMTIxLDcgKzMyMDI4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJsaWZlbGluZSIgQDEzODgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEzODcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE0MjYsIC0xNTMzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQzNCwgLTE1MzMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzIxMzMsNyArMzIwNDAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzg4DQotCQkJCQkJbG9jYXRpb24gICAJKDE0NjIsIDkzNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NCwgOTM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzIxNTgsMTEgKzMyMDY1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTM4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzQ4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0MCwgODc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQwLCAxMDM3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzMiwgODc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTMyLCAxMDM3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzOTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzODgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU2NiwgMTAxMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU1OCwgMTAxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyMTgzLDcgKzMyMDkwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzOTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDEzODgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMwMiwgOTc4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjk0LCA5NzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMjIwNCw3ICszMjExMSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnRlcmFjdGlvbiIgQDEzOTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDEzODcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE0MjYsIC0xNTMzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQzNCwgLTE1MzMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzIyMTYsNyArMzIxMjMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzkzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzkyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NTksIDc2OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY1MSwgNzY5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzIyNDEsMTEgKzMyMTQ4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTM4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxMzg2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0MCwgODc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQwLCA3MTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTMyLCA4NzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MzIsIDcxOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxMzkyDQotCQkJCQkJbG9jYXRpb24gICAJKDE0ODksIDc0NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ4MSwgNzQ2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzIyNjYsNyArMzIxNzMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTM5NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTM5Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzUwLCA4MTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NDIsIDgxMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyMzQwLDcgKzMyMjQ3LDcgQEAKIAkJICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQogCQkJKG9iamVjdCBDbGFzcyAiSW50ZXJhY3Rpb25PY2N1cnJlbmNlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiMzhBM0ZERUYwMTJDIg0KLQkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSByZWZlcmVuY2UgdG8gYW4gaW50ZXJhY3Rpb24gd2l0aCBhY3R1YWwgdmFsdWVzLiBUaGUgaW50ZXJwcmV0YXRpb24gaXMgdGhhdCB0aGUgc2VxdWVuY2UgZGlhZ3JhbSByZXBsYWNlcyB0aGUgcmVmZXJlbmNlICh3aXRoIGFjdHVhbCBwYXJhbWV0ZXJzIHN1YnN0aXR1dGVkKSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkludGVyYWN0aW9uT2NjdXJyZW5jZSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIEludGVyYWN0aW9uRnJhZ21lbnQuIEFuIEludGVyYWN0aW9uT2NjdXJyZW5jZSBoYXMgYSBzZXQgb2YgYWN0dWFsIGdhdGVzIHRoYXQgbXVzdCBtYXRjaCB0aGUgZm9ybWFsIGdhdGVzIG9mIHRoZSByZWZlcmVuY2VkIEludGVyYWN0aW9uLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQjk3NUEzQjAxNjIiDQpAQCAtMzI0NzEsNyArMzIzNzgsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInNldHRpbmciDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGQzkwNDEwMDk4Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJIlRydWUiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkludGVyYWN0aW9uRnJhZ21lbnQiDQpAQCAtMzI4MDEsNyArMzI3MDcsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk3MjUNCiAJCQkJICAgIGhlaWdodCAgICAgCTY5MCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI0MyIgQDE0MDMNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NTEsIDk3NSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NTEsIDk3OCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMjgxNiw3ICszMjcyMiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY2ZyYWdtZW50R2F0ZSIgQDE0MDQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE0MDMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY1LCAtMjA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjUsIC0yMDQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzI4MjgsNyArMzI3MzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDA0DQotCQkJCQkJbG9jYXRpb24gICAJKDgyNCwgODg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MjQsIDg5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyODUyLDExICszMjc1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0MDMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQwMg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1MSwgOTc1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5ODgsIDk3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1MSwgOTc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5ODgsIDk3OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDA2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDA0DQotCQkJCQkJbG9jYXRpb24gICAJKDk1OCwgMTAxMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTU4LCAxMDE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzI4NzcsNyArMzI3ODMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQwNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQwNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjQsIDk0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzY0LCA5NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMjg5OCw3ICszMjgwNCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNDQiIEAxNDA4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDAzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02NSwgLTIwNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY1LCAtMjA0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyOTEzLDExICszMjgxOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0MDMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQwMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1MSwgOTc1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MTQsIDk3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1MSwgOTc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MTQsIDk3OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDA5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDA4DQotCQkJCQkJbG9jYXRpb24gICAJKDU1OCwgMTAyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTU4LCAxMDMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzI5MzcsNyArMzI4NDMsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTMNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI0NSIgQDE0MTANCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NDEsIDcxNikNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NDEsIDcwMikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMjk1Miw3ICszMjg1OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjQ2IiBAMTQxMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQxMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTExOSwgLTQ2NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExMTksIC00ODApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzI5NjQsNyArMzI4NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDExDQotCQkJCQkJbG9jYXRpb24gICAJKDkyNSwgODY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MjUsIDg1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMyOTg5LDExICszMjg5NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0MTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQwMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0MSwgNzE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTQsIDcxNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0MSwgNzAyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTQsIDcwMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDExDQotCQkJCQkJbG9jYXRpb24gICAJKDU0OCwgNzgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NDgsIDc2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzMDE0LDcgKzMyOTIwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImFjdHVhbEdhdGUiIEAxNDE0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDEwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTE5LCAtNDY2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTExOSwgLTQ4MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzAyNiw3ICszMjkzMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0MTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0MTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODUxLCA2MjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDg1MSwgNjE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzMwNTAsMTEgKzMyOTU2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQxMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDAyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQxLCA3MTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk4OCwgNzE2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzQxLCA3MDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk4OCwgNzAyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0MTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0MTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTU2LCA3NTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDk1NiwgNzQ1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzMwNzUsNyArMzI5ODEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NDcsIDY4MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzQ3LCA2NjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzEzNCw3ICszMzA0MCw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE1MA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI0NyIgQDE0MjANCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3MTMsIDExOTEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzEzLCAxMjAzKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzMTQ5LDcgKzMzMDU1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJmb3JtYWxHYXRlIiBAMTQyMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQyMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0MSwgNDY1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0MSwgNDc3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzMTYxLDcgKzMzMDY3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQyMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NzAsIDExMTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3MCwgMTEyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzMTg1LDExICszMzA5MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0MjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQwMg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDcxMywgMTE5MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTg4LCAxMTkxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzEzLCAxMjAzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5ODgsIDEyMDMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQyMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTksIDEyMTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDkxOSwgMTIyNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzMjEwLDcgKzMzMTE2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0MjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0MjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzM0LCAxMTU0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzQsIDExNjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzIzMSw3ICszMzEzNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNDgiIEAxNDI1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQxLCA0NjUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQxLCA0NzcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzMyNDYsMTEgKzMzMTUyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDE5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzEzLCAxMTkxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MzksIDExOTEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MTMsIDEyMDMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzOSwgMTIwMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDI1DQotCQkJCQkJbG9jYXRpb24gICAJKDQ5MywgMTIzOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDkzLCAxMjUxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzMzNjgsNyArMzMyNzQsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk0NjINCiAJCQkJICAgIGhlaWdodCAgICAgCTEzOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI1MyIgQDE0MzANCi0JCQkJICAgIGxvY2F0aW9uICAgCSg1OTIsIDcwOCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg1OTIsIDcwOSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzM4Myw3ICszMzI4OSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYXJndW1lbnQiIEAxNDMxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDMwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zODAsIC02KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzgwLCAtNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzM5NSw3ICszMzMwMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0MzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0MzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTQyLCA2NzEpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0MiwgNjcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM0MjAsMTEgKzMzMzI2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQzMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDI3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTkyLCA3MDgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzNSwgNzA4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTkyLCA3MDkpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzNSwgNzA5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0MzMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0MzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDUyLCA3NjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ1MiwgNzYzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM0NDUsNyArMzMzNTEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjU0IiBAMTQzNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQzMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzgwLCAtNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM4MCwgLTUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzQ2MSwxMSArMzMzNjcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDMwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0MjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1OTIsIDcwOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzQ5LCA3MDgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1OTIsIDcwOSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzQ5LCA3MDkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQzNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQzNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MTMsIDc1NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzEzLCA3NTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNDg1LDcgKzMzMzkxLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ4DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNDEiIEAxNDM2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQyNywgNjg0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE0MjcsIDY5NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzUwMCw3ICszMzQwNiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVmZXJzVG8iIEAxNDM3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDM2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDkwNSwgLTE2OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA1LCAtMTU2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNTEyLDcgKzMzNDE4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQzNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTI0LCA2NDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MjQsIDY1NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNTM2LDExICszMzQ0MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0MzYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQyOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MjcsIDY4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0NCwgNjg0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQyNywgNjk2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjQ0LCA2OTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQzOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQzNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTk0LCA3MzApDQorCQkJCQkJbG9jYXRpb24gICAJKDE1OTQsIDc0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNTYxLDcgKzMzNDY3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI0MiIgQDE0NDANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE0MzYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA1LCAtMTY4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5MDUsIC0xNTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM1NzYsMTEgKzMzNDgyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQzNg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDI5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQyNywgNjg0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjExLCA2ODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDI3LCA2OTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMTEsIDY5NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDQwDQotCQkJCQkJbG9jYXRpb24gICAJKDEyNDEsIDY1MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI0MSwgNjY1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM2NjUsNyArMzM1NzEsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMjYNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMzUiIEAxNDQ1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQzOSwgMTA3MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNDM5LCAxMDY4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNjc3LDcgKzMzNTgzLDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0NDYNCiAJCQkJCVBhcmVudF9WaWV3IAlAMTQ0NQ0KLQkJCQkJbG9jYXRpb24gICAJKDE0MzksIDEwMTEpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTQzOSwgMTAwOSkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTMzNzAyLDcgKzMzNjA4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkZWNvbXBvc2VkQXMiIEAxNDQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDQ1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00OTIsIC04NTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00OTIsIC04NTMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM3MTQsNyArMzM2MjAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MTcsIDExMTEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MTcsIDExMDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzczOSwxMSArMzM2NDUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDQ1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NDINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDM5LCAxMDcwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjM0LCAxMDcwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQzOSwgMTA2OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIzNCwgMTA2OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDQ5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDEyOTEsIDEwMjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyOTEsIDEwMjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzc2NCw3ICszMzY3MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyMzYiIEAxNDUwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDQ1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00OTIsIC04NTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00OTIsIC04NTMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzM3NzYsNyArMzM2ODIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDUxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDUwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NTAsIDExNzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NTAsIDExNzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zMzgwMiw4ICszMzcwOCw4IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQ0NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDQ0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQzOSwgMTA3MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0NCwgMTA3MCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MzksIDEwNjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NDQsIDEwNjgpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpJbnRlcmFjdGlvbnM6OkZyYWdtZW50czo6SW50ZXJhY3Rpb25GcmFnbWVudCIgQDE0NTINCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTMzODk4LDE0ICszMzgwNCwxNCBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCiAJCQkJCVBhcmVudF9WaWV3IAlAMTQ1NQ0KLQkJCQkJbG9jYXRpb24gICAJKDE5MTEsIDExOTUpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTkxMSwgMTE5MCkNCiAJCQkJCW5saW5lcyAgICAgCTENCiAJCQkJCW1heF93aWR0aCAgCTQ1MQ0KIAkJCQkJanVzdGlmeSAgICAJMA0KIAkJCQkJbGFiZWwgICAgICAJIkludGVyYWN0aW9uT3BlcmF0b3IiKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJKG9iamVjdCBJdGVtTGFiZWwNCiAJCQkJCVBhcmVudF9WaWV3IAlAMTQ1NQ0KLQkJCQkJbG9jYXRpb24gICAJKDE5MTEsIDExNDEpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTkxMSwgMTE0MCkNCiAJCQkJCWFuY2hvciAgICAgCTEwDQogCQkJCQlubGluZXMgICAgIAkxDQogCQkJCQltYXhfd2lkdGggIAk0NTENCkBAIC0zMzkxNCwyMiArMzM4MjAsNiBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I3QTI3MjYwMEI0Ig0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMTQ1NQ0KLQkJCQkJbG9jYXRpb24gICAJKDE5MTEsIDEyNjApDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAkxMA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkxMg0KLQkJCQkJbWF4X3dpZHRoICAJMTYyKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNDY5DQogCQkJCSAgICBoZWlnaHQgICAgIAk3ODEpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpJbnRlcmFjdGlvbnM6OkZyYWdtZW50czo6Q29udGludWF0aW9uIiBAMTQ1Ng0KQEAgLTMzOTU3LDIyICszMzg0Nyw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREZDODdDMzAzRTUiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAxNDU2DQotCQkJCQlsb2NhdGlvbiAgIAkoMjA4NSwgOTgyKQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJNDQzKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNTE3DQogCQkJCSAgICBoZWlnaHQgICAgIAkxMzYpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpLZXJuZWw6OlZhbHVlU3BlY2lmaWNhdGlvbiIgQDE0NTcNCkBAIC0zNDAzNSw3ICszMzkwOSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTE3Mw0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI0OSIgQDE0NTkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDIxLCAxNTI4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwMjEsIDE0ODQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQwNTEsNyArMzM5MjUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm1pbmludCIgQDE0NjANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE0NTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCAtMTEwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3NDUsIC0xNTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQwNjMsNyArMzM5MzcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDYxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDYwDQotCQkJCQkJbG9jYXRpb24gICAJKDExMTMsIDE1NTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMTMsIDE1MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0MDg4LDExICszMzk2MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0NTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQ1Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMjEsIDE1MjgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNjcsIDE1MjgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDIxLCAxNDg0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjY3LCAxNDg0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0NjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0NjANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIyNywgMTU2MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIyNywgMTUxOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQxMTMsNyArMzM5ODcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQ2Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQ2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDQyLCAxNjE0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDQyLCAxNTcwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDEzNCwxNyArMzQwMDgsMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI1MCIgQDE0NjQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE0NTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCAtMTEwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3NDUsIC0xNTQpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0M0NkU5OUUwMDg3Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDU5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDIxLCAxNTI4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NzUsIDE1MjgpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDIxLCAxNDg0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NzUsIDE0ODQpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNTEiIEAxNDY1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAyMSwgMTQ2OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDIxLCAxNDg0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0MTYwLDcgKzM0MDM0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJtYXhpbnQiIEAxNDY2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDY1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc0NSwgLTE2OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCAtMTU0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0MTcyLDcgKzM0MDQ2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQ2Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQ2Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDkwLCAxNDQzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDkwLCAxNDU4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDE5NywxMSArMzQwNzEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDY1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NTcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDIxLCAxNDY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjY3LCAxNDY5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyMSwgMTQ4NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2NywgMTQ4NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDY2DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMjIsIDE0MzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjIsIDE0NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0MjIyLDcgKzM0MDk2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0NjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0NjYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA0MCwgMTQwNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA0MCwgMTQyMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQyNDMsMTUgKzM0MTE3LDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNTIiIEAxNDcwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDY1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc0NSwgLTE2OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCAtMTU0KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNDNDZFOUI3MDM4NiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQ2NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDU4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyMSwgMTQ2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzc1LCAxNDY5KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyMSwgMTQ4NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzc1LCAxNDg0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6SW50ZXJhY3Rpb25zOjpGcmFnbWVudHM6OkNvbWJpbmVkRnJhZ21lbnQiIEAxNDcxDQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCkBAIC0zNDI3OCwyMiArMzQxNTIsNiBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhBM0ZGMjAwM0MwIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMTQ3MQ0KLQkJCQkJbG9jYXRpb24gICAJKDExMjIsIDk4MCkNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTEwDQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTc5NikNCiAJCQkJICAgIHdpZHRoICAgICAgCTk1NA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTQwDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTM0MzkxLDcgKzM0MjQ5LDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJNDY5DQogCQkJCSAgICBoZWlnaHQgICAgIAkxNTYpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMzciIEAxNDc4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNDIxLCAxMjI2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDUzMywgMTIyNSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDQwNiw3ICszNDI2NCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZ3VhcmQiIEAxNDc5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDc4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU1LCAtMTQ4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNjcsIC0xNDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQ0MTgsNyArMzQyNzYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDgwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDc5DQotCQkJCQkJbG9jYXRpb24gICAJKDUwMywgMTM3OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjE1LCAxMzc3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDQ0MiwxMSArMzQzMDAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDc4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MjEsIDEyMjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQyMSwgMTQxNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUzMywgMTIyNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTMzLCAxNDE0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0ODENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0NzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzYwLCAxMzUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NzIsIDEzNTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NDY3LDcgKzM0MzI1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0NzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjU4LCAxMzMzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NzAsIDEzMzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NDg4LDcgKzM0MzQ2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDIzOCIgQDE0ODMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE0NzgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTUsIC0xNDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE2NywgLTE0OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDUwMywxMSArMzQzNjEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDc4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NzcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MjEsIDEyMjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQyMSwgMTAzOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUzMywgMTIyNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTMzLCAxMDM3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0ODQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0ODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzUxLCAxMDg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NjMsIDEwODgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDUyNyw3ICszNDM4NSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk3MQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjM5IiBAMTQ4NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDkyNSwgOTY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDkyNSwgOTcwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NTQyLDcgKzM0NDAwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvcGVyYW5kIiBAMTQ4Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQ4NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjI3LCAtMzk5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjI3LCAtMzk4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NTU0LDcgKzM0NDEyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQ4Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQ4Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MjksIDg4OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODI5LCA4ODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NTc4LDExICszNDQzNiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0ODUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQ3Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkyNSwgOTY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3MzgsIDk2OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkyNSwgOTcwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3MzgsIDk3MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDg2DQotCQkJCQkJbG9jYXRpb24gICAJKDc4MiwgMTAwOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzgyLCAxMDA5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDYwMyw3ICszNDQ2MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDg2DQotCQkJCQkJbG9jYXRpb24gICAJKDkxNywgOTI4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MTcsIDkyOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQ2MjQsNyArMzQ0ODIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjQwIiBAMTQ5MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQ4NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjI3LCAtMzk5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjI3LCAtMzk4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NjM5LDExICszNDQ5NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE0ODUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTQ3MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkyNSwgOTY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTEzLCA5NjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MjUsIDk3MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTExMywgOTcwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0OTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0OTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA3MSwgMTAxNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA3MSwgMTAxNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQ2NzIsNyArMzQ1MzAsNyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjg2LCA3MjQpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUAxNDczKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjU1IiBAMTQ5Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDcxMywgNDc3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwNzIsIDg4MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDY4Niw3ICszNDU0NCw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjhCOUE1NzAyRDAiDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNDk0DQogCQkJCQlQYXJlbnRfVmlldyAJQDE0OTMNCi0JCQkJCWxvY2F0aW9uICAgCSgxMTI1LCA0NTApDQorCQkJCQlsb2NhdGlvbiAgIAkoMTQ4NCwgODUzKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDcwOCw3ICszNDU2Niw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZnJhZ21lbnQiIEAxNDk1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNDkzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDMzMCwgLTc2NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjg5LCAtMzYzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0NzIwLDcgKzM0NTc4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTQ5Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTQ5NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTM0LCA0MDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0OTMsIDgxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQ3NDQsMTIgKzM0NjAyLDE2IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0I4QjlBNTkwMkZCIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNDkzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE0NzINCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTA3MiwgODgwKQ0KKwkJCQkJCSgxMjU4LCA4ODApDQorCQkJCQkJKDEyNTgsIDU2NSkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzEzLCA0NzcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNTgsIDQ3NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNzIsIDg4MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI1OCwgNTY1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0OTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0OTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIyMSwgNTI4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTgwLCA5MzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDc3MCw3ICszNDYzMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbmNsb3NpbmdPcGVyYW5kIiBAMTQ5OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTQ5Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMzAsIC03NjYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY4OSwgLTM2MykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNDc4Miw3ICszNDY0NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE0OTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0OTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDAzLCA3NzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDc2MiwgMTE3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzQ4MDcsMTUgKzM0NjY5LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTQ5Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNDc3DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDcxMywgNDc3KQ0KLQkJCQkJCSg1NzMsIDQ3NykNCisJCQkJCQkoMTA3MiwgODgwKQ0KKwkJCQkJCSg1NzMsIDg4MCkNCiAJCQkJCQkoNTczLCA4ODIpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDcxMywgNDc3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA3MiwgODgwKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NzMsIDg4MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNDk4DQotCQkJCQkJbG9jYXRpb24gICAJKDYyMywgODQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5ODIsIDEyNDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM0ODM2LDcgKzM0Njk4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE1MDENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE0OTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzYxLCA4MjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDcyMCwgMTIzMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzUzMTAsNiArMzUxNzIsNyBAQAogCQkgICAgbG9naWNhbF9tb2RlbHMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCQkob2JqZWN0IENsYXNzICJFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUVDMEQwMTc2Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiRWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3Mgd2l0aCBubyBzdXBlcmNsYXNzLiBJdCBpcyB1c2VkIGFzIHRoZSBjb21tb24gc3VwZXJjbGFzcyBmb3IgYWxsIG1ldGFjbGFzc2VzIGluIHRoZSBpbmZyYXN0cnVjdHVyZSBsaWJyYXJ5LiBFbGVtZW50IGhhcyBhIGRlcml2ZWQgY29tcG9zaXRpb24gYXNzb2NpYXRpb24gdG8gaXRzZWxmIHRvIHN1cHBvcnQgdGhlIGdlbmVyYWwgY2FwYWJpbGl0eSBmb3IgZWxlbWVudHMgdG8gb3duIG90aGVyIGVsZW1lbnRzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNDFFMDAxRDAiDQpAQCAtMzUzMTgsNiArMzUxODEsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ29tbWVudCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQUMwN0M5MDFEOSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgY29tbWVudCBnaXZlcyB0aGUgYWJpbGl0eSB0byBhdHRhY2ggdmFyaW91cyByZW1hcmtzIHRvIGVsZW1lbnRzLiBBIGNvbW1lbnQgY2FycmllcyBubyBzZW1hbnRpYyBmb3JjZSwgYnV0IG1heSBjb250YWluIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZnVsIHRvIGEgbW9kZWxlci4gQSBjb21tZW50IGNhbiBiZSBvd25lZCBieSBhbnkgZWxlbWVudC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCMUYyNjkwMTQyIg0KQEAgLTM1MzMxLDEwICszNTE5NSwxMCBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImJvZHkiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQzA3RDgwMEQ3Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkRpcmVjdGVkUmVsYXRpb25zaGlwIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUVDMTkwMkJFIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgcmVmZXJlbmNlcyBvbmUgb3IgbW9yZSBzb3VyY2UgZWxlbWVudHMgYW5kIG9uZSBvciBtb3JlIHRhcmdldCBlbGVtZW50cy4gRGlyZWN0ZWQgcmVsYXRpb25zaGlwIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0Q1MTRGNUQwMTM0Ig0KQEAgLTM1MzQ3LDYgKzM1MjExLDcgQEAKIAkJCSAgICBhYnN0cmFjdCAgIAlUUlVFKQ0KIAkJCShvYmplY3QgQ2xhc3MgIk5hbWVkRWxlbWVudCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQUFFQ0I5MDFCMCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgbmFtZWQgZWxlbWVudCByZXByZXNlbnRzIGVsZW1lbnRzIHRoYXQgbWF5IGhhdmUgYSBuYW1lLiBUaGUgbmFtZSBpcyB1c2VkIGZvciBpZGVudGlmaWNhdGlvbiBvZiB0aGUgbmFtZWQgZWxlbWVudCB3aXRoaW4gdGhlIG5hbWVzcGFjZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLiBBIG5hbWVkIGVsZW1lbnQgYWxzbyBoYXMgYSBxdWFsaWZpZWQgbmFtZSB0aGF0IGFsbG93cyBpdCB0byBiZSB1bmFtYmlndW91c2x5IGlkZW50aWZpZWQgd2l0aGluIGEgaGllcmFyY2h5IG9mIG5lc3RlZCBuYW1lc3BhY2VzLiBOYW1lZEVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FBRUZFNTAzM0UiDQpAQCAtMzUzNjEsNyArMzUyMjYsNiBAQAogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQUYwMEUwMzUxIg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEIxMDNDMyINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ2aXNpYmlsaXR5Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUFGMDIyMDNCNCINCkBAIC0zNTM3MywxMiArMzUyMzcsMTIgQEAKIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUFGMDMwMDIxOSINCiAJCQkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiUGFja2FnZWFibGVFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCMUYzQTAwMjREIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBwYWNrYWdlYWJsZSBlbGVtZW50IGluZGljYXRlcyBhIG5hbWVkIGVsZW1lbnQgdGhhdCBtYXkgYmUgb3duZWQgZGlyZWN0bHkgYnkgYSBwYWNrYWdlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0IxRjNDMDAzRDAiDQpAQCAtMzUzOTcsNiArMzUyNjEsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiVmlzaWJpbGl0eUtpbmQiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FBRjI1NjAwRjgiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJWaXNpYmlsaXR5S2luZCBpcyBhbiBlbnVtZXJhdGlvbiBvZiB0aGUgZm9sbG93aW5nIGxpdGVyYWwgdmFsdWVzOiCVIHB1YmxpYyCVIHByaXZhdGUglSBwcm90ZWN0ZWQglSBwYWNrYWdlICINCiAJCQkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJwdWJsaWMiDQpAQCAtMzU0MTMsNiArMzUyNzgsNyBAQAogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIk9wYXF1ZUV4cHJlc3Npb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FBRjg3RDAxMDciDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBleHByZXNzaW9uIGNvbnRhaW5zIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgdGV4dCBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSBhIHZhbHVlIG9yIHZhbHVlcywgYW5kIGFuIG9wdGlvbmFsIHNwZWNpZmljYXRpb24gb2YgdGhlIGxhbmd1YWdlLiBPbmUgcHJlZGVmaW5lZCBsYW5ndWFnZSBmb3Igc3BlY2lmeWluZyBleHByZXNzaW9ucyBpcyBPQ0wuIE5hdHVyYWwgbGFuZ3VhZ2Ugb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1heSBhbHNvIGJlIHVzZWQuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEMDI1NEY3MDJEMyINCkBAIC0zNTQyNiwxNiArMzUyOTIsMTUgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJib2R5Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUFGOEJDMDM3NCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImxhbmd1YWdlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUFGOEMxMDFGRiINCiAJCQkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxpdGVyYWxTcGVjaWZpY2F0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFMEUwMjRFIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXRlcmFsIHNwZWNpZmljYXRpb24gaXMgYW4gYWJzdHJhY3Qgc3BlY2lhbGl6YXRpb24gb2YgVmFsdWVTcGVjaWZpY2F0aW9uIHRoYXQgaWRlbnRpZmllcyBhIGxpdGVyYWwgY29uc3RhbnQgYmVpbmcgbW9kZWxlZC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0QwMjU0RkIwMTE2Ig0KQEAgLTM1NDQ4LDYgKzM1MzEzLDcgQEAKIAkJCSAgICBhYnN0cmFjdCAgIAlUUlVFKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxpdGVyYWxJbnRlZ2VyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFMkYwMTk4Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXRlcmFsIGludGVnZXIgY29udGFpbnMgYW4gSW50ZWdlci12YWx1ZWQgYXR0cmlidXRlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0I1REVEMDAxQ0IiDQpAQCAtMzU0NjEsMTAgKzM1MzI3LDEwIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidmFsdWUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFODYwMDQ4Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkludGVnZXIiDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQTQwMDdCIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJMaXRlcmFsU3RyaW5nIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFNDcwMzlCIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXRlcmFsIHN0cmluZyBjb250YWlucyBhIFN0cmluZy12YWx1ZWQgYXR0cmlidXRlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0I1REVENjAyNDIiDQpAQCAtMzU0NzgsMTAgKzM1MzQ0LDEwIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidmFsdWUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFQTAwMjlFIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxpdGVyYWxCb29sZWFuIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFMzkwMTQyIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXRlcmFsIGJvb2xlYW4gY29udGFpbnMgYSBCb29sZWFuLXZhbHVlZCBhdHRyaWJ1dGUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQjVERUREMDI5QyINCkBAIC0zNTQ5NSwxMCArMzUzNjEsMTAgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ2YWx1ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0I1REVCMTAzNzUiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkxpdGVyYWxOdWxsIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFNTIwMTAyIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXRlcmFsIG51bGwgaXMgdXNlZCB0byByZXByZXNlbnQgbnVsbCwgaS5lLiwgdGhlIGFic2VuY2Ugb2YgYSB2YWx1ZS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCNURFRTQwMkQ4Ig0KQEAgLTM1NTEwLDYgKzM1Mzc2LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQjVBMjkyMDBEMiIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJDb25zdHJhaW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUVENjcwMjNDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQ29uc3RyYWludCBjb250YWlucyBhIFZhbHVlU3BlY2lmaWNhdGlvbiB0aGF0IHNwZWNpZmllcyBhZGRpdGlvbmFsIHNlbWFudGljcyBmb3Igb25lIG9yIG1vcmUgZWxlbWVudHMuIENlcnRhaW4ga2luZHMgb2YgY29uc3RyYWludHMgKHN1Y2ggYXMgYW4gYXNzb2NpYXRpb24gk3hvcpQgY29uc3RyYWludCkgYXJlIHByZWRlZmluZWQgaW4gVU1MLCBvdGhlcnMgbWF5IGJlIHVzZXItZGVmaW5lZC4gQSB1c2VyLWRlZmluZWQgQ29uc3RyYWludCBpcyBkZXNjcmliZWQgdXNpbmcgYSBzcGVjaWZpZWQgbGFuZ3VhZ2UsIHdob3NlIHN5bnRheCBhbmQgaW50ZXJwcmV0YXRpb24gaXMgYSB0b29sIHJlc3BvbnNpYmlsaXR5LiBPbmUgcHJlZGVmaW5lZCBsYW5ndWFnZSBmb3Igd3JpdGluZyBjb25zdHJhaW50cyBpcyBPQ0wuIEluIHNvbWUgc2l0dWF0aW9ucywgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSBzdWNoIGFzIEphdmEgbWF5IGJlIGFwcHJvcHJpYXRlIGZvciBleHByZXNzaW5nIGEgY29uc3RyYWludC4gSW4gb3RoZXIgc2l0dWF0aW9ucyBuYXR1cmFsIGxhbmd1YWdlIG1heSBiZSB1c2VkLiBDb25zdHJhaW50IGlzIGEgY29uZGl0aW9uIChhIEJvb2xlYW4gZXhwcmVzc2lvbikgdGhhdCByZXN0cmljdHMgdGhlIGV4dGVuc2lvbiBvZiB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IGJleW9uZCB3aGF0IGlzIGltcG9zZWQgYnkgdGhlIG90aGVyIGxhbmd1YWdlIGNvbnN0cnVjdHMgYXBwbGllZCB0byB0aGF0IGVsZW1lbnQuIENvbnN0cmFpbnQgY29udGFpbnMgYW4gb3B0aW9uYWwgbmFtZSwgYWx0aG91Z2ggdGhleSBhcmUgY29tbW9ubHkgdW5uYW1lZC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCMjBENEEwMzQ1Ig0KQEAgLTM1NTIxLDYgKzM1Mzg4LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTc2NjQ1MDAwNyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJFbGVtZW50SW1wb3J0Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NCNUUxNTkwMUJBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQW4gZWxlbWVudCBpbXBvcnQgaXMgZGVmaW5lZCBhcyBhIGRpcmVjdGVkIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFuIGltcG9ydGluZyBuYW1lc3BhY2UgYW5kIGEgcGFja2FnZWFibGUgZWxlbWVudC4gVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2VhYmxlIGVsZW1lbnQgb3IgaXRzIGFsaWFzIGlzIHRvIGJlIGFkZGVkIHRvIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIGltcG9ydGluZyBuYW1lc3BhY2UuIEl0IGlzIGFsc28gcG9zc2libGUgdG8gY29udHJvbCB3aGV0aGVyIHRoZSBpbXBvcnRlZCBlbGVtZW50IGNhbiBiZSBmdXJ0aGVyIGltcG9ydGVkLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0I1RTJGNDAzNzQiDQpAQCAtMzU1NDAsMTAgKzM1NDA4LDEwIEBACiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0JCRTJFOTAyNEMiDQogCQkJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJNdWx0aXBsaWNpdHlFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUZENTIwMkRDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBNdWx0aXBsaWNpdHlFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB3aGljaCBpbmNsdWRlcyBvcHRpb25hbCBhdHRyaWJ1dGVzIGZvciBkZWZpbmluZyB0aGUgYm91bmRzIG9mIGEgbXVsdGlwbGljaXR5LiBBIE11bHRpcGxpY2l0eUVsZW1lbnQgYWxzbyBpbmNsdWRlcyBzcGVjaWZpY2F0aW9ucyBvZiB3aGV0aGVyIHRoZSB2YWx1ZXMgaW4gYW4gaW5zdGFudGlhdGlvbiBvZiB0aGlzIGVsZW1lbnQgbXVzdCBiZSB1bmlxdWUgb3Igb3JkZXJlZC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQUZFRTgwMkMyIg0KQEAgLTM1NTYxLDMyICszNTQyOSwyOSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzT3JkZXJlZCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FEOUQxRDAwNEMiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNVbmlxdWUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGRkIyMkQwM0Q2Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJInRydWUiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidXBwZXIiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGRkIyMzgwMjlCIg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiVW5saW1pdGVkTmF0dXJhbCINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzREU2QTkzQzAwMDMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibG93ZXIiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGRkIyNjQwMDI4Ig0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiSW50ZWdlciINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBNDAwN0IiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiVHlwZWRFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUZEM0EwMDZCIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSB0eXBlZCBlbGVtZW50IGlzIGFuIGVsZW1lbnQgdGhhdCBoYXMgYSB0eXBlIHRoYXQgc2VydmVzIGFzIGEgY29uc3RyYWludCBvbiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHRoZSBlbGVtZW50IGNhbiByZXByZXNlbnQuIFR5cGVkIGVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZGQjhFNTAzNEQiDQpAQCAtMzU2MDMsNiArMzU0NjgsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQUFFQ0U4MDE5OSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgY2xhc3NpZmllciBpcyBhIG5hbWVzcGFjZSB3aG9zZSBtZW1iZXJzIGNhbiBpbmNsdWRlIGZlYXR1cmVzLiBDbGFzc2lmaWVyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQSBjbGFzc2lmaWVyIGlzIGEgdHlwZSBhbmQgY2FuIG93biBnZW5lcmFsaXphdGlvbnMsIHRoZXJlYnkgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGRlZmluZSBnZW5lcmFsaXphdGlvbiByZWxhdGlvbnNoaXBzIHRvIG90aGVyIGNsYXNzaWZpZXJzLiBBIGNsYXNzaWZpZXIgY2FuIHNwZWNpZnkgYSBnZW5lcmFsaXphdGlvbiBoaWVyYXJjaHkgYnkgcmVmZXJlbmNpbmcgaXRzIGdlbmVyYWwgY2xhc3NpZmllcnMuIEEgY2xhc3NpZmllciBpcyBhIHJlZGVmaW5hYmxlIGVsZW1lbnQsIG1lYW5pbmcgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byByZWRlZmluZSBuZXN0ZWQgY2xhc3NpZmllcnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQjE5ODZGMDNEMCINCkBAIC0zNTYyOCwxMiArMzU0OTQsMTIgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0Fic3RyYWN0Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUIwMjVDMDJDRCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJGZWF0dXJlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUZEMjIwMzM3Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBmZWF0dXJlIGRlY2xhcmVzIGEgYmVoYXZpb3JhbCBvciBzdHJ1Y3R1cmFsIGNoYXJhY3RlcmlzdGljIG9mIGluc3RhbmNlcyBvZiBjbGFzc2lmaWVycy4gRmVhdHVyZSBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUIwNDNFMDA2MyINCkBAIC0zNTY0NywxMiArMzU1MTMsMTIgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1N0YXRpYyINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0IxN0I3NjAwMjciDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiUmVkZWZpbmFibGVFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjAwNzEwMUQ3Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSByZWRlZmluYWJsZSBlbGVtZW50IGlzIGEgbmFtZWQgZWxlbWVudCB0aGF0IGNhbiBiZSByZWRlZmluZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBnZW5lcmFsaXphdGlvbi4gUmVkZWZpbmFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQjA0MjMwMjRGIg0KQEAgLTM1NjY2LDEyICszNTUzMiwxMiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzTGVhZiINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMDQ0QzAyMDgiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiR2VuZXJhbGl6YXRpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FBRUNFRjAxNDkiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIGdlbmVyYWxpemF0aW9uIHJlbGF0ZXMgYSBzcGVjaWZpYyBjbGFzc2lmaWVyIHRvIGEgbW9yZSBnZW5lcmFsIGNsYXNzaWZpZXIsIGFuZCBpcyBvd25lZCBieSB0aGUgc3BlY2lmaWMgY2xhc3NpZmllci4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQjAxRDIwMDEyIg0KQEAgLTM1Njg1LDEwICszNTU1MSwxMCBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzU3Vic3RpdHV0YWJsZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREY0RkE0MzAyNEYiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkJlaGF2aW9yYWxGZWF0dXJlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUZENDcwMzI2Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBiZWhhdmlvcmFsIGZlYXR1cmUgc3BlY2lmaWVzIHRoYXQgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzc2lmaWVyIHdpbGwgcmVzcG9uZCB0byBhIGRlc2lnbmF0ZWQgcmVxdWVzdCBieSBpbnZva2luZyBhIGJlaGF2aW9yLiBCZWhhdmlvcmFsRmVhdHVyZSBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3Mgc3BlY2lhbGl6aW5nIEZlYXR1cmUgYW5kIE5hbWVzcGFjZS4gS2luZHMgb2YgYmVoYXZpb3JhbCBhc3BlY3RzIGFyZSBtb2RlbGVkIGJ5IHN1YmNsYXNzZXMgb2YgQmVoYXZpb3JhbEZlYXR1cmUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUIwOTc0MDM5NyINCkBAIC0zNTcwNSw2ICszNTU3MSw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJQYXJhbWV0ZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMEIzRDAzNjIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHBhcmFtZXRlciBpcyBhIHNwZWNpZmljYXRpb24gb2YgYW4gYXJndW1lbnQgdXNlZCB0byBwYXNzIGluZm9ybWF0aW9uIGludG8gb3Igb3V0IG9mIGFuIGludm9jYXRpb24gb2YgYSBiZWhhdmlvcmFsIGZlYXR1cmUuIEl0IGhhcyBhIHR5cGUsIGFuZCBtYXkgaGF2ZSBhIG11bHRpcGxpY2l0eSBhbmQgYW4gb3B0aW9uYWwgZGVmYXVsdCB2YWx1ZS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQjBERUUwMjA0Ig0KQEAgLTM1NzI5LDExICszNTU5NiwxMSBAQAogCQkJCSAgICBxdWlkICAgICAgIAkiM0RGRkNDNDkwMkZCIg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEIxMDNDMyINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiDQogCQkJCSAgICBkZXJpdmVkICAgIAlUUlVFKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiU3RydWN0dXJhbEZlYXR1cmUiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMDhFRDAwMEQiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHN0cnVjdHVyYWwgZmVhdHVyZSBpcyBhIHR5cGVkIGZlYXR1cmUgb2YgYSBjbGFzc2lmaWVyIHRoYXQgc3BlY2lmeSB0aGUgc3RydWN0dXJlIG9mIGluc3RhbmNlcyBvZiB0aGUgY2xhc3NpZmllci4gU3RydWN0dXJhbCBmZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQnkgc3BlY2lhbGl6aW5nIG11bHRpcGxpY2l0eSBlbGVtZW50LCBpdCBzdXBwb3J0cyBhIG11bHRpcGxpY2l0eSB0aGF0IHNwZWNpZmllcyB2YWxpZCBjYXJkaW5hbGl0aWVzIGZvciB0aGUgc2V0IG9mIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggYW4gaW5zdGFudGlhdGlvbiBvZiB0aGUgc3RydWN0dXJhbCBmZWF0dXJlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMDk0ODAwMEUiDQpAQCAtMzU3NTUsMTIgKzM1NjIyLDEyIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNSZWFkT25seSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNzJCNDAyNTciDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiSW5zdGFuY2VTcGVjaWZpY2F0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjExQTcwMTBBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiSW4gdGhlIG1ldGFtb2RlbCwgSW5zdGFuY2VTcGVjaWZpY2F0aW9uIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgRGVwbG95bWVudFRhcmdldCBhbmQgRGVwbG95ZWRBcnRpZmFjdC4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NFMTY3RUQwMDA2Ig0KQEAgLTM1NzcyLDYgKzM1NjM5LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAzMjBDMDJEQiIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJTbG90Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjExQjIwMjE0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBzbG90IGlzIG93bmVkIGJ5IGFuIGluc3RhbmNlIHNwZWNpZmljYXRpb24uIEl0IHNwZWNpZmllcyB0aGUgdmFsdWUgb3IgdmFsdWVzIGZvciBpdHMgZGVmaW5pbmcgZmVhdHVyZSwgd2hpY2ggbXVzdCBiZSBhIHN0cnVjdHVyYWwgZmVhdHVyZSBvZiBhIGNsYXNzaWZpZXIgb2YgdGhlIGluc3RhbmNlIHNwZWNpZmljYXRpb24gb3duaW5nIHRoZSBzbG90LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMTMxRTAzMTIiDQpAQCAtMzU3ODMsNiArMzU2NTEsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDMyMTIwMzM0IikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlBhY2thZ2UiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMUQ3RTAxNjIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHBhY2thZ2UgaXMgYSBuYW1lc3BhY2UgZm9yIGl0cyBtZW1iZXJzLCBhbmQgbWF5IGNvbnRhaW4gb3RoZXIgcGFja2FnZXMuIE9ubHkgcGFja2FnZWFibGUgZWxlbWVudHMgY2FuIGJlIG93bmVkIG1lbWJlcnMgb2YgYSBwYWNrYWdlLiBCeSB2aXJ0dWUgb2YgYmVpbmcgYSBuYW1lc3BhY2UsIGEgcGFja2FnZSBjYW4gaW1wb3J0IGVpdGhlciBpbmRpdmlkdWFsIG1lbWJlcnMgb2Ygb3RoZXIgcGFja2FnZXMsIG9yIGFsbCB0aGUgbWVtYmVycyBvZiBvdGhlciBwYWNrYWdlcy4gSW4gYWRkaXRpb24gYSBwYWNrYWdlIGNhbiBiZSBtZXJnZWQgd2l0aCBvdGhlciBwYWNrYWdlcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCMjE0MkYwMEMyIg0KQEAgLTM1Nzk4LDYgKzM1NjY3LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTZENURBMDE4MyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJQYWNrYWdlSW1wb3J0Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjFEOEYwMkE3Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBwYWNrYWdlIGltcG9ydCBpcyBkZWZpbmVkIGFzIGEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIHRoYXQgaWRlbnRpZmllcyBhIHBhY2thZ2Ugd2hvc2UgbWVtYmVycyBhcmUgdG8gYmUgaW1wb3J0ZWQgYnkgYSBuYW1lc3BhY2UuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNEREQwMzI4MDE0MSINCkBAIC0zNTgxNSw2ICszNTY4NSw3IEBACiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3MiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMUQ2RDAwQTAiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJDbGFzcyBpcyBhIGtpbmQgb2YgY2xhc3NpZmllciB3aG9zZSBmZWF0dXJlcyBhcmUgYXR0cmlidXRlcyBhbmQgb3BlcmF0aW9ucy4gQXR0cmlidXRlcyBvZiBhIGNsYXNzIGFyZSByZXByZXNlbnRlZCBieSBpbnN0YW5jZXMgb2YgUHJvcGVydHkgdGhhdCBhcmUgb3duZWQgYnkgdGhlIGNsYXNzLiBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgbWF5IHJlcHJlc2VudCB0aGUgbmF2aWdhYmxlIGVuZHMgb2YgYmluYXJ5IGFzc29jaWF0aW9ucy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQjIxNDAwMUZDIg0KQEAgLTM1ODI4LDExICszNTY5OSwxMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzQWJzdHJhY3QiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UxQkZBNjIwMDlDIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJQcm9wZXJ0eSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQUIxRDc5MDEwMSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIlByb3BlcnR5IHJlcHJlc2VudHMgYSBkZWNsYXJlZCBzdGF0ZSBvZiBvbmUgb3IgbW9yZSBpbnN0YW5jZXMgaW4gdGVybXMgb2YgYSBuYW1lZCByZWxhdGlvbnNoaXAgdG8gYSB2YWx1ZSBvciB2YWx1ZXMuIFdoZW4gYSBwcm9wZXJ0eSBpcyBhbiBhdHRyaWJ1dGUgb2YgYSBjbGFzc2lmaWVyLCB0aGUgdmFsdWUgb3IgdmFsdWVzIGFyZSByZWxhdGVkIHRvIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3NpZmllciBieSBiZWluZyBoZWxkIGluIHNsb3RzIG9mIHRoZSBpbnN0YW5jZS4gV2hlbiBhIHByb3BlcnR5IGlzIGFuIGFzc29jaWF0aW9uIGVuZCwgdGhlIHZhbHVlIG9yIHZhbHVlcyBhcmUgcmVsYXRlZCB0byB0aGUgaW5zdGFuY2Ugb3IgaW5zdGFuY2VzIGF0IHRoZSBvdGhlciBlbmQocykgb2YgdGhlIGFzc29jaWF0aW9uIChzZWUgc2VtYW50aWNzIG9mIEFzc29jaWF0aW9uKS4gUHJvcGVydHkgaXMgaW5kaXJlY3RseSBhIHN1YmNsYXNzIG9mIENvbnN0cnVjdHM6OlR5cGVkRWxlbWVudC4gVGhlIHJhbmdlIG9mIHZhbGlkIHZhbHVlcyByZXByZXNlbnRlZCBieSB0aGUgcHJvcGVydHkgY2FuIGJlIGNvbnRyb2xsZWQgYnkgc2V0dGluZyB0aGUgcHJvcGVydHmScyB0eXBlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMjE5RTAxRjciDQpAQCAtMzU4NDYsMjYgKzM1NzE3LDIyIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNEZXJpdmVkIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUIyMThFMDA0NSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlYWRPbmx5Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERkZDMDU5MDM4RCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0Rlcml2ZWRVbmlvbiINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZGQzA2MTAzQ0EiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZGVmYXVsdCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzREZGQzEwNDAxRUUiDQogCQkJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyINCiAJCQkJICAgIGRlcml2ZWQgICAgCVRSVUUpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImFnZ3JlZ2F0aW9uIg0KQEAgLTM1ODc3LDExICszNTc0NCwxMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzQ29tcG9zaXRlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNERkZDNjZBMDM2OCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiDQogCQkJCSAgICBkZXJpdmVkICAgIAlUUlVFKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiT3BlcmF0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjFENzEwMTY0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQW4gb3BlcmF0aW9uIGlzIGEgYmVoYXZpb3JhbCBmZWF0dXJlIG9mIGEgY2xhc3NpZmllciB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSwgdHlwZSwgcGFyYW1ldGVycywgYW5kIGNvbnN0cmFpbnRzIGZvciBpbnZva2luZyBhbiBhc3NvY2lhdGVkIGJlaGF2aW9yLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMjM0QjAxMzYiDQpAQCAtMzU4OTUsMzcgKzM1NzYyLDMzIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNRdWVyeSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAyODA1MDAyQkIiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNPcmRlcmVkIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMDRCMUI1MDBGMCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiDQogCQkJCSAgICBkZXJpdmVkICAgIAlUUlVFKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1VuaXF1ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTA0QjFCRDAxMzciDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibG93ZXIiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UwNEIxQ0YwMDlEIg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiSW50ZWdlciINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBNDAwN0IiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidXBwZXIiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UwNEIxQzIwMTcxIg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiVW5saW1pdGVkTmF0dXJhbCINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzREU2QTkzQzAwMDMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkRhdGFUeXBlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQjFEOUMwM0M4Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiRGF0YVR5cGUgZGVmaW5lcyBhIGtpbmQgb2YgY2xhc3NpZmllciBpbiB3aGljaCBvcGVyYXRpb25zIGFyZSBhbGwgcHVyZSBmdW5jdGlvbnMgKGkuZS4sIHRoZXkgY2FuIHJldHVybiBkYXRhIHZhbHVlcyBidXQgdGhleSBjYW5ub3QgY2hhbmdlIGRhdGEgdmFsdWVzLCBiZWNhdXNlIHRoZXkgaGF2ZSBubyBpZGVudGl0eSkuIEZvciBleGFtcGxlLCBhbiCTYWRklCBvcGVyYXRpb24gb24gYSBudW1iZXIgd2l0aCBhbm90aGVyIG51bWJlciBhcyBhbiBhcmd1bWVudCB5aWVsZHMgYSB0aGlyZCBudW1iZXIgYXMgYSByZXN1bHQ7IHRoZSB0YXJnZXQgYW5kIGFyZ3VtZW50IGFyZSB1bmNoYW5nZWQuIEEgRGF0YVR5cGUgbWF5IGFsc28gY29udGFpbiBhdHRyaWJ1dGVzIHRvIHN1cHBvcnQgdGhlIG1vZGVsaW5nIG9mIHN0cnVjdHVyZWQgZGF0YSB0eXBlcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NCQzYxMTIwMjc0Ig0KQEAgLTM1OTM3LDYgKzM1ODAwLDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTZEMjUyMDJBNiIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJFbnVtZXJhdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjNDQUIxREMwMDI2QyINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkVudW1lcmF0aW9uIGlzIGEga2luZCBvZiBkYXRhIHR5cGUsIHdob3NlIGluc3RhbmNlcyBtYXkgYmUgYW55IG9mIGEgbnVtYmVyIG9mIHVzZXItZGVmaW5lZCBlbnVtZXJhdGlvbiBsaXRlcmFscy4gSXQgaXMgcG9zc2libGUgdG8gZXh0ZW5kIHRoZSBzZXQgb2YgYXBwbGljYWJsZSBlbnVtZXJhdGlvbiBsaXRlcmFscyBpbiBvdGhlciBwYWNrYWdlcyBvciBwcm9maWxlcy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NBQjU3NkMwMkZBIg0KQEAgLTM1OTQ4LDYgKzM1ODEyLDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNERTZEMjc1MDE1MiIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJFbnVtZXJhdGlvbkxpdGVyYWwiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMURDNjAxQzAiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBlbnVtZXJhdGlvbiBsaXRlcmFsIGlzIGEgdXNlci1kZWZpbmVkIGRhdGEgdmFsdWUgZm9yIGFuIGVudW1lcmF0aW9uLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0VFM0FCRTAwQUIiDQpAQCAtMzU5NTksNiArMzU4MjQsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0RFNkQyOTEwMzk3IikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlByaW1pdGl2ZVR5cGUiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMURDRDAwQjIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgaW5zdGFuY2VzIG9mIHByaW1pdGl2ZSB0eXBlIHVzZWQgaW4gVU1MIGl0c2VsZiBpbmNsdWRlIEJvb2xlYW4sIEludGVnZXIsIFVubGltaXRlZE5hdHVyYWwsIGFuZCBTdHJpbmcuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUI1NzY4MDNBOCINCkBAIC0zNTk3MCw2ICszNTgzNiw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREU2RDI1NzAzOTMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiQXNzb2NpYXRpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FCMURENzAwMTYiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBhc3NvY2lhdGlvbiBzcGVjaWZpZXMgYSBzZW1hbnRpYyByZWxhdGlvbnNoaXAgdGhhdCBjYW4gb2NjdXIgYmV0d2VlbiB0eXBlZCBpbnN0YW5jZXMuIEl0IGhhcyBhdCBsZWFzdCB0d28gZW5kcyByZXByZXNlbnRlZCBieSBwcm9wZXJ0aWVzLCBlYWNoIG9mIHdoaWNoIGlzIGNvbm5lY3RlZCB0byB0aGUgdHlwZSBvZiB0aGUgZW5kLiBNb3JlIHRoYW4gb25lIGVuZCBvZiB0aGUgYXNzb2NpYXRpb24gbWF5IGhhdmUgdGhlIHNhbWUgdHlwZS4gV2hlbiBhIHByb3BlcnR5IGlzIG93bmVkIGJ5IGFuIGFzc29jaWF0aW9uIGl0IHJlcHJlc2VudHMgYSBub24tbmF2aWdhYmxlIGVuZCBvZiB0aGUgYXNzb2NpYXRpb24uIEluIHRoaXMgY2FzZSB0aGUgcHJvcGVydHkgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBuYW1lc3BhY2Ugb2YgYW55IG9mIHRoZSBhc3NvY2lhdGVkIGNsYXNzaWZpZXJzLiBXaGVuIGEgcHJvcGVydHkgYXQgYW4gZW5kIG9mIGFuIGFzc29jaWF0aW9uIGlzIG93bmVkIGJ5IG9uZSBvZiB0aGUgYXNzb2NpYXRlZCBjbGFzc2lmaWVycyBpdCByZXByZXNlbnRzIGEgbmF2aWdhYmxlIGVuZCBvZiB0aGUgYXNzb2NpYXRpb24uIEluIHRoaXMgY2FzZSB0aGUgcHJvcGVydHkgaXMgYWxzbyBhbiBhdHRyaWJ1dGUgb2YgdGhlIGFzc29jaWF0ZWQgY2xhc3NpZmllci4gT25seSBiaW5hcnkgYXNzb2NpYXRpb25zIG1heSBoYXZlIG5hdmlnYWJsZSBlbmRzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0JDNjE1MTAxRTkiDQpAQCAtMzU5ODcsMTEgKzM1ODU0LDExIEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiaXNEZXJpdmVkIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUIzRjk4MDI3NCINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiTmFtZXNwYWNlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NBQUVDQzUwMkRBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBuYW1lc3BhY2UgaXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgY2FuIG93biBvdGhlciBuYW1lZCBlbGVtZW50cy4gRWFjaCBuYW1lZCBlbGVtZW50IG1heSBiZSBvd25lZCBieSBhdCBtb3N0IG9uZSBuYW1lc3BhY2UuIEEgbmFtZXNwYWNlIHByb3ZpZGVzIGEgbWVhbnMgZm9yIGlkZW50aWZ5aW5nIG5hbWVkIGVsZW1lbnRzIGJ5IG5hbWUuIE5hbWVkIGVsZW1lbnRzIGNhbiBiZSBpZGVudGlmaWVkIGJ5IG5hbWUgaW4gYSBuYW1lc3BhY2UgZWl0aGVyIGJ5IGJlaW5nIGRpcmVjdGx5IG93bmVkIGJ5IHRoZSBuYW1lc3BhY2Ugb3IgYnkgYmVpbmcgaW50cm9kdWNlZCBpbnRvIHRoZSBuYW1lc3BhY2UgYnkgb3RoZXIgbWVhbnMgZS5nLiBpbXBvcnRpbmcgb3IgaW5oZXJpdGluZy4gTmFtZXNwYWNlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQSBuYW1lc3BhY2UgY2FuIG93biBjb25zdHJhaW50cy4gVGhlIGNvbnN0cmFpbnQgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlIG5hbWVzcGFjZSBpdHNlbGYsIGJ1dCBtYXkgYWxzbyBhcHBseSB0byBlbGVtZW50cyBpbiB0aGUgbmFtZXNwYWNlLiBBIG5hbWVzcGFjZSBoYXMgdGhlIGFiaWxpdHkgdG8gaW1wb3J0IGVpdGhlciBpbmRpdmlkaWFsIG1lbWJlcnMgb3IgYWxsIG1lbWJlcnMgb2YgYSBwYWNrYWdlLCB0aGVyZWJ5IG1ha2luZyBpdCBwb3NzaWJsZSB0byByZWZlciB0byB0aG9zZSBuYW1lZCBlbGVtZW50cyB3aXRob3V0IHF1YWxpZmljYXRpb24gaW4gdGhlIGltcG9ydGluZyBuYW1lc3BhY2UuIEluIHRoZSBjYXNlIG9mIGNvbmZsaWN0cywgaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBxdWFsaWZpZWQgbmFtZXMgb3IgYWxpYXNlcyB0byBkaXNhbWJpZ3VhdGUgdGhlIHJlZmVyZW5jZWQgZWxlbWVudHMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDQUFGMDcwMDMyMCINCkBAIC0zNjAwNCw2ICszNTg3MSw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJQYXJhbWV0ZXJEaXJlY3Rpb25LaW5kIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NFRTQxOUYwM0IwIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiUGFyYW1ldGVyRGlyZWN0aW9uS2luZCBpcyBhbiBlbnVtZXJhdGlvbiBvZiB0aGUgZm9sbG93aW5nIGxpdGVyYWwgdmFsdWVzOiCVIGluIEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBpbnRvIHRoZSBiZWhhdmlvcmFsIGVsZW1lbnQgYnkgdGhlIGNhbGxlci4glSBpbm91dCBJbmRpY2F0ZXMgdGhhdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgaW50byBhIGJlaGF2aW9yYWwgZWxlbWVudCBieSB0aGUgY2FsbGVyIGFuZCB0aGVuIGJhY2sgb3V0IHRvIHRoZSBjYWxsZXIgZnJvbSB0aGUgYmVoYXZpb3JhbCBlbGVtZW50LiCVIG91dCBJbmRpY2F0ZXMgdGhhdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgZnJvbSBhIGJlaGF2aW9yYWwgZWxlbWVudCBvdXQgdG8gdGhlIGNhbGxlci4glSByZXR1cm4gSW5kaWNhdGVzIHRoYXQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgcGFzc2VkIGFzIHJldHVybiB2YWx1ZXMgZnJvbSBhIGJlaGF2aW9yYWwgZWxlbWVudCBiYWNrIHRvIHRoZSBjYWxsZXIuICINCiAJCQkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpbiINCkBAIC0zNjAyMCw2ICszNTg4OCw3IEBACiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiVmFsdWVTcGVjaWZpY2F0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0QwMjU0QUIwMjNEIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiVmFsdWVTcGVjaWZpY2F0aW9uIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB1c2VkIHRvIGlkZW50aWZ5IGEgdmFsdWUgb3IgdmFsdWVzIGluIGEgbW9kZWwuIEl0IG1heSByZWZlcmVuY2UgYW4gaW5zdGFuY2Ugb3IgaXQgbWF5IGJlIGFuIGV4cHJlc3Npb24gZGVub3RpbmcgYW4gaW5zdGFuY2Ugb3IgaW5zdGFuY2VzIHdoZW4gZXZhbHVhdGVkLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNUM3NzAzMDUiDQpAQCAtMzYwMzIsNiArMzU5MDEsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiUmVsYXRpb25zaGlwIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0Q1MTRFQkEwMTExIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlcyBvbmUgb3IgbW9yZSByZWxhdGVkIGVsZW1lbnRzLiBSZWxhdGlvbnNoaXAgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRDUxNEVEQjAyRjkiDQpAQCAtMzYwNDQsNiArMzU5MTQsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiUGFja2FnZU1lcmdlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0Q2MjNBODYwMUFCIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBwYWNrYWdlIG1lcmdlIGlzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIHBhY2thZ2VzLCB3aGVyZSB0aGUgY29udGVudHMgb2YgdGhlIHRhcmdldCBwYWNrYWdlICh0aGUgb25lIHBvaW50ZWQgYXQpIGlzIG1lcmdlZCB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIHBhY2thZ2UgdGhyb3VnaCBzcGVjaWFsaXphdGlvbiBhbmQgcmVkZWZpbml0aW9uLCB3aGVyZSBhcHBsaWNhYmxlLiBUaGlzIGlzIGEgbWVjaGFuaXNtIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBlbGVtZW50cyBvZiB0aGUgc2FtZSBuYW1lIGFyZSBpbnRlbmRlZCB0byByZXByZXNlbnQgdGhlIHNhbWUgY29uY2VwdCwgcmVnYXJkbGVzcyBvZiB0aGUgcGFja2FnZSBpbiB3aGljaCB0aGV5IGFyZSBkZWZpbmVkLiBBIG1lcmdpbmcgcGFja2FnZSB3aWxsIHRha2UgZWxlbWVudHMgb2YgdGhlIHNhbWUga2luZCB3aXRoIHRoZSBzYW1lIG5hbWUgZnJvbSBvbmUgb3IgbW9yZSBwYWNrYWdlcyBhbmQgbWVyZ2UgdGhlbSB0b2dldGhlciBpbnRvIGEgc2luZ2xlIGVsZW1lbnQgdXNpbmcgZ2VuZXJhbGl6YXRpb24gYW5kIHJlZGVmaW5pdGlvbnMuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IGEgcGFja2FnZSBtZXJnZSBjYW4gYmUgdmlld2VkIGFzIGEgc2hvcnQtaGFuZCB3YXkgb2YgZXhwbGljaXRseSBkZWZpbmluZyB0aG9zZSBnZW5lcmFsaXphdGlvbnMgYW5kIHJlZGVmaW5pdGlvbnMuIFRoZSBtZXJnZWQgcGFja2FnZXMgYXJlIHN0aWxsIGF2YWlsYWJsZSwgYW5kIHRoZSBlbGVtZW50cyBpbiB0aG9zZSBwYWNrYWdlcyBjYW4gYmUgc2VwYXJhdGVseSBxdWFsaWZpZWQuIEZyb20gYW4gWE1JIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVpdGhlciBwb3NzaWJsZSB0byBleGNoYW5nZSBhIG1vZGVsIHdpdGggYWxsIFBhY2thZ2VNZXJnZXMgcmV0YWluZWQgb3IgYSBtb2RlbCB3aGVyZSBhbGwgUGFja2FnZU1lcmdlcyBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgYXdheSAoaW4gd2hpY2ggY2FzZSBwYWNrYWdlIGltcG9ydHMsIGdlbmVyYWxpemF0aW9ucywgYW5kIHJlZGVmaW5pdGlvbnMgYXJlIHVzZWQgaW5zdGVhZCkuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNENjIzQUI1MDNBNyINCkBAIC0zNjA1NSw2ICszNTkyNiw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREVFOERGRTAyOTAiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiSW5zdGFuY2VWYWx1ZSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNENzhBRDRCMDM3NCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkFuIGluc3RhbmNlIHZhbHVlIHNwZWNpZmllcyB0aGUgdmFsdWUgbW9kZWxlZCBieSBhbiBpbnN0YW5jZSBzcGVjaWZpY2F0aW9uLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRDc4QUREQjAwMTQiDQpAQCAtMzYwNjYsNiArMzU5MzgsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0QxMTE1QTcwMjhCIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkFnZ3JlZ2F0aW9uS2luZCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNERkZDNkFCMDI1MyINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkFnZ3JlZ2F0aW9uS2luZCBpcyBhbiBlbnVtZXJhdGlvbiBvZiB0aGUgZm9sbG93aW5nIGxpdGVyYWwgdmFsdWVzOiCVIG5vbmUgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBubyBhZ2dyZWdhdGlvbi4glSBzaGFyZWQgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBhIHNoYXJlZCBhZ2dyZWdhdGlvbi4glSBjb21wb3NpdGUgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGlzIGFnZ3JlZ2F0ZWQgY29tcG9zaXRlbHksIGkuZS4sIHRoZSBjb21wb3NpdGUgb2JqZWN0IGhhcyByZXNwb25zaWJpbGl0eSBmb3IgdGhlIGV4aXN0ZW5jZSBhbmQgc3RvcmFnZSBvZiB0aGUgY29tcG9zZWQgb2JqZWN0cyAocGFydHMpLiAiDQogCQkJICAgIHN0ZXJlb3R5cGUgCSJlbnVtZXJhdGlvbiINCiAJCQkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibm9uZSINCkBAIC0zNjA3OSw2ICszNTk1Miw3IEBACiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiTGl0ZXJhbFVubGltaXRlZE5hdHVyYWwiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNURBMDAxQ0IiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIGxpdGVyYWwgdW5saW1pdGVkIG5hdHVyYWwgY29udGFpbnMgYSBVbmxpbWl0ZWROYXR1cmFsLXZhbHVlZCBhdHRyaWJ1dGUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMDI1REQxMDI1OCINCkBAIC0zNjA5MiwxMCArMzU5NjYsMTAgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ2YWx1ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNURDNDAwNDciDQogCQkJCSAgICB0eXBlICAgICAgIAkiVW5saW1pdGVkTmF0dXJhbCINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzREU2QTkzQzAwMDMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlR5cGUiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTU5MjBDMjAxNEUiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIHR5cGUgc2VydmVzIGFzIGEgY29uc3RyYWludCBvbiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJlcHJlc2VudGVkIGJ5IGEgdHlwZWQgZWxlbWVudC4gVHlwZSBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFNTkyMTIxMDJDNyINCkBAIC0zNjEwOCw2ICszNTk4Miw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJFeHByZXNzaW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0U1OTIxRUUwMTBBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQW4gZXhwcmVzc2lvbiByZXByZXNlbnRzIGEgbm9kZSBpbiBhbiBleHByZXNzaW9uIHRyZWUsIHdoaWNoIG1heSBiZSBub24tdGVybWluYWwgb3IgdGVybWluYWwuIEl0IGRlZmluZXMgYSBzeW1ib2wsIGFuZCBoYXMgYSBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiBvcGVyYW5kcyB3aGljaCBhcmUgdmFsdWUgc3BlY2lmaWNhdGlvbnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFNTkyMjEzMDJCQiINCkBAIC0zNjEyMSw3ICszNTk5Niw2IEBACiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAic3ltYm9sIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFNTkyMUY5MDE3RSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQyNTYiDQogCQkJICAgIHF1aWQgICAgICAgCSIzQ0FBRUVBNDAzOEQiDQpAQCAtMzc1MjMsNyArMzczOTcsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk2NTANCiAJCQkJICAgIGhlaWdodCAgICAgCTM1NikNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMyMCIgQDE1MjUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyNDQzLCA1MjIpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjQ0MywgNTk0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NTM4LDcgKzM3NDEyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ1cHBlclZhbHVlIiBAMTUyNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTUyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTg1LCAtNTIyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTg1LCAtNDUwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NTUwLDcgKzM3NDI0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTUyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNzUyLCA0NzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDI3NTIsIDU0NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NTc0LDExICszNzQ0OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE1MjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTUyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0NDMsIDUyMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjkzMCwgNTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjQ0MywgNTk0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTMwLCA1OTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTUyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyODgwLCA1NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4ODAsIDY0OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NTk5LDcgKzM3NDczLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE1MjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE1MjYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjU2MSwgNTY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNTYxLCA2MzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNzYyMCw3ICszNzQ5NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lclVwcGVyIiBAMTUzMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTUyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTg1LCAtNTIyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTg1LCAtNDUwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NjMyLDcgKzM3NTA2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTUzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUzMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTE0LCA0NDApDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMTQsIDUxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NjU2LDExICszNzUzMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE1MjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTUyNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0NDMsIDUyMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk1NywgNTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjQ0MywgNTk0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTU3LCA1OTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTUzMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUzMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDA2LCA1NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMDYsIDY0OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3NjgxLDcgKzM3NTU1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE1MzMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE1MzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjE1NywgNDg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTU3LCA1NTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zNzcwMSw3ICszNzU3NSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzOA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzIxIiBAMTUzNA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI0NDMsIDY4NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyNDQzLCA1OTQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc3MTYsNyArMzc1OTAsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImxvd2VyVmFsdWUiIEAxNTM1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNTM0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1ODUsIC0zNTcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE1ODUsIC00NTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc3MjgsNyArMzc2MDIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTM2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTM1DQotCQkJCQkJbG9jYXRpb24gICAJKDI3NDQsIDY0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjc0NCwgNTQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc3NTIsMTEgKzM3NjI2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTUzNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTIzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjQ0MywgNjg3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTMwLCA2ODcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNDQzLCA1OTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI5MzAsIDU5NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTM3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTM1DQotCQkJCQkJbG9jYXRpb24gICAJKDI4ODAsIDc0MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjg4MCwgNjQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc3NzcsNyArMzc2NTEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTUzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUzNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTcxLCA3MjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1NzEsIDYzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM3Nzk4LDcgKzM3NjcyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVyTG93ZXIiIEAxNTM5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNTM0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE1ODUsIC0zNTcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE1ODUsIC00NTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc4MTAsNyArMzc2ODQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTQwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTM5DQotCQkJCQkJbG9jYXRpb24gICAJKDIxMzIsIDYyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjEzMiwgNTI3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc4MzQsMTEgKzM3NzA4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTUzNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTI0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjQ0MywgNjg3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTU3LCA2ODcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNDQzLCA1OTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5NTcsIDU5NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTM5DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMDYsIDc0MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAwNiwgNjQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzc4NTksNyArMzc3MzMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTUzOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTczLCA2NTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNzMsIDU2NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4MDAzLDcgKzM3ODc3LDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjYwLCAxMTM2KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NjAsIDEwMDApKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjYzIiBAMTU1MA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxMjIsIDExODQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjEyMiwgMTIyNCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zODAxOCw3ICszNzg5Miw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidHlwZSIgQDE1NTENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE1NTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjIyLCA1NDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDYyMiwgNTg4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4MDMwLDcgKzM3OTA0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU1Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjU5LCAxMTQ0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjU5LCAxMTg0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzgwNTQsMTEgKzM3OTI4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTU1MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTQ3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjEyMiwgMTE4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MCwgMTE4NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxMjIsIDEyMjQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzODAsIDEyMjQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU1Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU1MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjcwLCAxMjI2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjcwLCAxMjY2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzgwNzksNyArMzc5NTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjY0IiBAMTU1NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTU1MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2MjIsIDU0OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjIyLCA1ODgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzgwOTQsOCArMzc5NjgsOCBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE1NTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTU0OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxMjIsIDExODQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NjQsIDExODQpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTIyLCAxMjI0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODY0LCAxMjI0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpQYWNrYWdlYWJsZUVsZW1lbnQiIEAxNTU1DQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCkBAIC0zODczNSwxMyArMzg2MDksMTMgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI4MCIgQDE1ODQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjIyLCA0MDYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIyMiwgNDA0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQjFGMjFGMDI0QSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duaW5nRWxlbWVudCIgQDE1ODUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE1ODQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzNiwgLTM3NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzNiwgLTM3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4NzUzLDcgKzM4NjI3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU4Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU4NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDM5LCAzODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMzksIDM4MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzg3NzcsMTEgKzM4NjUxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTU4NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTczDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyMiwgNDA2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NzUsIDQwNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMjIsIDQwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODc1LCA0MDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU4Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU4NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTAsIDQ2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTEwLCA0NTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4ODAyLDcgKzM4Njc2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE1ODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE1ODUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA0OCwgNDUxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDQ4LCA0NDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4ODIzLDcgKzM4Njk3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkQ29tbWVudCIgQDE1ODkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE1ODQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzNiwgLTM3NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUzNiwgLTM3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM4ODM1LDcgKzM4NzA5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTU5MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTU4OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDExLCAzNjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MTEsIDM2NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzg4NTksMTEgKzM4NzMzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTU4NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTgzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyMiwgNDA2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTcwLCA0MDYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjIyLCA0MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NzAsIDQwNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTkxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTg5DQotCQkJCQkJbG9jYXRpb24gICAJKDE1MzQsIDQ2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUzNCwgNDU4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zODg4NCw3ICszODc1OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTkyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNTg5DQotCQkJCQkJbG9jYXRpb24gICAJKDEzNDIsIDQ1MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM0MiwgNDQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTAzNSwxMyArMzg5MDksMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJNjI1DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjU5IiBAMTYwMA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExMzQsIDExMTIpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTEzNCwgMTE3NikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRUY0NjAzN0IiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI2MCIgQDE2MDENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2MDANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxMCwgMzQ0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjEwLCA0MDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTA1Myw3ICszODkyNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2MDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2MDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTQ1LCAxMDcxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NDUsIDExMzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MDc4LDExICszODk1MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2MDANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTU5NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzQsIDExMTIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg5OCwgMTExMikpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTM0LCAxMTc2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4OTgsIDExNzYpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3RhcmdldCIgQDE2MDMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2MDANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxMCwgMzQ0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjEwLCA0MDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTA5NCw3ICszODk2OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2MDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2MDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI5NCwgMTA3NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI5NCwgMTE0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzkxMTgsMTEgKzM4OTkyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTYwMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTk5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEzNCwgMTExMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM3MSwgMTExMikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzQsIDExNzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNzEsIDExNzYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYwNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYwMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQwLCAxMTYwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzQwLCAxMjI0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTE0Myw3ICszOTAxNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjA2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjAzDQotCQkJCQkJbG9jYXRpb24gICAJKDExMzcsIDExNzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMzcsIDEyNDMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MTY2LDEzICszOTA0MCwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNjcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI1NyIgQDE2MDcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMTM0LCAxMjcyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDExMzQsIDExNzYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUVFRjYwMzA4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNTgiIEAxNjA4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjA3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQwOCwgOTU0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0MDgsIDg1OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MTg0LDcgKzM5MDU4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYwOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYwOA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NDUsIDEyMzEpDQorCQkJCQkJbG9jYXRpb24gICAJKDk0NSwgMTEzNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzkyMDksMTEgKzM5MDgzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTYwNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTk0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEzNCwgMTI3MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODk4LCAxMjcyKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzQsIDExNzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg5OCwgMTE3NikpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvc291cmNlIiBAMTYxMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTYwNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0MDgsIDk1NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDA4LCA4NTgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTIyNSw3ICszOTA5OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2MTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI5NCwgMTI0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI5NCwgMTE0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzkyNDksMTEgKzM5MTIzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTYwNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTk5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEzNCwgMTI3MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM3MSwgMTI3MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzQsIDExNzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNzEsIDExNzYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQ2LCAxMzI2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzQ2LCAxMjMwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTI3NCw3ICszOTE0OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjEwDQotCQkJCQkJbG9jYXRpb24gICAJKDExODYsIDEzNDQpDQorCQkJCQkJbG9jYXRpb24gICAJKDExODYsIDEyNDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5Mjk3LDEzICszOTE3MSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNzINCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI3OCIgQDE2MTQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxODk0LCA3NjYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg5NCwgNzc0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUMwQ0JBMDBERSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjc5IiBAMTYxNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTYxNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTY4LCA0NDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDExNjgsIDQ1NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MzE1LDcgKzM5MTg5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYxNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYxNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDQ3LCA3MjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNDcsIDczMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzkzNDAsMTEgKzM5MjE0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTYxNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTk1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg5NCwgNzY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDg3LCA3NjYpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg5NCwgNzc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDg3LCA3NzQpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYW5ub3RhdGVkRWxlbWVudCIgQDE2MTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2MTQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTE2OCwgNDQ4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTY4LCA0NTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTM1Niw3ICszOTIzMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2MTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg2NiwgNzM3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODY2LCA3NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5MzgwLDExICszOTI1NCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2MTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTU5OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4OTQsIDc2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTcwMSwgNzY2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg5NCwgNzc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzAxLCA3NzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYxOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYxNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzI3LCA4MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MjcsIDgxOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzk0MDQsMTMgKzM5Mjc4LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk0NA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzE2IiBAMTYyMA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExMjIsIDc1MykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMTIyLCA3NzQpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q1MTRGNkQwMjI3Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMTciIEAxNjIxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM5NiwgNDM1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzOTYsIDQ1NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5NDIyLDcgKzM5Mjk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYyMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MjQsIDcxMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTI0LCA3MzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5NDQ3LDExICszOTMyMSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2MjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTU5Ng0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMjIsIDc1MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODczLCA3NTMpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEyMiwgNzc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NzMsIDc3NCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvcmVsYXRlZEVsZW1lbnQiIEAxNjIzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM5NiwgNDM1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzOTYsIDQ1NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTM5NDYzLDcgKzM5MzM3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYyNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTYyMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTUxLCA3MTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNTEsIDczNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzk0ODcsMTEgKzM5MzYxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTYyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNTk5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEyMiwgNzUzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzcxLCA3NTMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTIyLCA3NzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNzEsIDc3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjI1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjIzDQotCQkJCQkJbG9jYXRpb24gICAJKDEyOTksIDc5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI5OSwgODE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTUxMiw3ICszOTM4Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjIzDQotCQkJCQkJbG9jYXRpb24gICAJKDExODUsIDc5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE4NSwgODE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTg1NCwxMyArMzk3MjgsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMDAyLCAxMjczKQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwMDIsIDExNTQpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjgxIiBAMTY0Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDMzMDUsIDEzMjUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzMwNSwgMTMzOCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0I1RTM5QTAwODQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI4MiIgQDE2NDQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2NDMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjQyOSwgNDA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyNDI5LCA0MjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTg3Miw3ICszOTc0Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzE0OSwgMTM2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzE0OSwgMTM4MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzk4OTcsMTEgKzM5NzcxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTY0Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNjQxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzMwNSwgMTMyNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzEwOSwgMTMyNSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMzA1LCAxMzM4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMTA5LCAxMzM4KSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImltcG9ydGVkRWxlbWVudCIgQDE2NDYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2NDMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjQyOSwgNDA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyNDI5LCA0MjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTkxMyw3ICszOTc4Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzM1NywgMTI4MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzM1NywgMTI5NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtMzk5MzcsMTEgKzM5ODExLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTY0Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNjM5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzMwNSwgMTMyNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzUwMiwgMTMyNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMzMDUsIDEzMzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM1MDIsIDEzMzgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY0Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNDcwLCAxMzY3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNDcwLCAxMzgwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC0zOTk2Miw3ICszOTgzNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjQ5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjQ2DQotCQkJCQkJbG9jYXRpb24gICAJKDMzNDQsIDEzNTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDMzNDQsIDEzNzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMDQyLDEzICszOTkxNiwxMyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAk5NDMNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMTMiIEAxNjUzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjE5NywgMTA2OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTk3LCA5NzYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUYwQUYwMEU2Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvbmFtZXNwYWNlIiBAMTY1NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY1Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNDI5LCA3ODcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjksIDY5NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMDYwLDcgKzM5OTM0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY1NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDAyLCAxMDI5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDAyLCA5MzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMDg0LDExICszOTk1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2NTMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxOTcsIDEwNjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDEwNjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk3LCA5NzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDk3NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjU2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjU0DQotCQkJCQkJbG9jYXRpb24gICAJKDE5MDMsIDExMTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MDMsIDEwMjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMTA5LDcgKzM5OTgzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAyMiwgMTE0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAyMiwgMTA0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAxMzMsNyArNDAwMDcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL293bmVkTWVtYmVyIiBAMTY1OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY1Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNDI5LCA3ODcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjksIDY5NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMTQ1LDcgKzQwMDE5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY1OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY1OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzc4LCAxMDMyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzc4LCA5MzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMTY5LDExICs0MDA0MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2NTMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY0MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxOTcsIDEwNjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1MzksIDEwNjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk3LCA5NzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1MzksIDk3NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjU4DQotCQkJCQkJbG9jYXRpb24gICAJKDI1MDUsIDExMjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1MDUsIDEwMzApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMTk0LDcgKzQwMDY4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM4OSwgMTE1MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjM4OSwgMTA1NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAyMTgsMTMgKzQwMDkyLDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk4MQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzE0IiBAMTY2Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxOTcsIDg5NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMTk3LCA5NzYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUYxRDAwMTFEIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMTUiIEAxNjYzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjYyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjksIDYxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQyOSwgNjk0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAyMzYsNyArNDAxMTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjY0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjYzDQotCQkJCQkJbG9jYXRpb24gICAJKDE5MjQsIDg1MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkyNCwgOTM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDI2MSwxMSArNDAxMzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNjYyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE2NTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk3LCA4OTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDg5NCkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk3LCA5NzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDk3NikpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvbWVtYmVyIiBAMTY2NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY2Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNDI5LCA2MTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjksIDY5NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMjc3LDcgKzQwMTUxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY2Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNDE1LCA4NjApDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MTUsIDk0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAzMDEsMTEgKzQwMTc1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTY2Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNjQwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE5NywgODk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTM5LCA4OTQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTk3LCA5NzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1MzksIDk3NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjY3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjY1DQotCQkJCQkJbG9jYXRpb24gICAJKDI0ODUsIDk0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQ4NSwgMTAyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAzMjYsNyArNDAyMDAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY2OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzc1LCA5MjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNzUsIDEwMTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMzU1LDEzICs0MDIyOSwxMyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0NywgNzY2KQ0KIAkJCQkgICAgZHJhd1N1cHBsaWVyIAlAMTYzMykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI5OSIgQDE2NzANCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMjcxLCAxMzQwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIyNzEsIDEzNTApDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjVDNzUwMEMyIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbXBvcnRpbmdOYW1lc3BhY2UiIEAxNjcxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjcwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNzMsIC03MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI3MywgLTYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDAzNzMsNyArNDAyNDcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjcyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjcxDQotCQkJCQkJbG9jYXRpb24gICAJKDIwNTAsIDEzMDApDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNTAsIDEzMTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwMzk3LDExICs0MDI3MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2NzANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNzEsIDEzNDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDEzNDApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjcxLCAxMzUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODU2LCAxMzUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NzMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg5OCwgMTM5NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg5OCwgMTQwNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA0MjIsNyArNDAyOTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY3NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY3MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDU3LCAxMzk0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDU3LCAxNDA0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDQ0Niw3ICs0MDMyMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbGVtZW50SW1wb3J0IiBAMTY3NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY3MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjczLCAtNzApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNzMsIC02MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwNDU4LDcgKzQwMzMyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY3Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY3NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTQ4LCAxMzAwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNTQ4LCAxMzEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDQ4MiwxMSArNDAzNTYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNjcwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE2NDENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjcxLCAxMzQwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjg3LCAxMzQwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI3MSwgMTM1MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjY4NywgMTM1MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjc1DQotCQkJCQkJbG9jYXRpb24gICAJKDI2NDQsIDEzOTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDI2NDQsIDE0MDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwNTA3LDcgKzQwMzgxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2NzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2NzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQzOCwgMTM3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQzOCwgMTM4NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA1MjcsNyArNDA0MDEsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzUNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMzMCIgQDE2NzkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjM1LCA5MzgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIzNSwgOTQ4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA1MzksNyArNDA0MTMsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY4MA0KIAkJCQkJUGFyZW50X1ZpZXcgCUAxNjc5DQotCQkJCQlsb2NhdGlvbiAgIAkoMTIzNSwgODc5KQ0KKwkJCQkJbG9jYXRpb24gICAJKDEyMzUsIDg4OSkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA1NjQsNyArNDA0MzgsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDMzMSIgQDE2ODENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2NzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY1NSwgMzI2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjU1LCAzMzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDU3Niw3ICs0MDQ1MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2ODENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM4MywgOTgwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzgzLCA5OTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwNjAxLDExICs0MDQ3NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2NzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMzUsIDkzOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQyMCwgOTM4KSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMzUsIDk0OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQyMCwgOTQ4KSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9pbXBvcnRlZE1lbWJlciIgQDE2ODMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE2NzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY1NSwgMzI2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjU1LCAzMzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDYxNyw3ICs0MDQ5MSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2ODQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2ODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIxNywgOTA3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjE3LCA5MTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwNjQxLDExICs0MDUxNSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2NzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY1MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMzUsIDkzOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA1MSwgOTM4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIzNSwgOTQ4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDUxLCA5NDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY4NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY4Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDc4LCA5NzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwNzgsIDk4OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA2NjYsNyArNDA1NDAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY4Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY4Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjU4LCA5NzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNTgsIDk4NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA3MTIsMTMgKzQwNTg2LDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTExMg0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMwMCIgQDE2ODgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMjY1LCAxNjk3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIyNjUsIDE3MDQpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjVDRTcwMjZCIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbXBvcnRpbmdOYW1lc3BhY2UiIEAxNjg5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjg4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02MjEsIC02NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYyMSwgLTYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA3MzAsNyArNDA2MDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjg5DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMzcsIDE2NTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMzcsIDE2NjUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwNzU0LDExICs0MDYyOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2ODgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNjUsIDE2OTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NTYsIDE2OTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjY1LCAxNzA0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODU2LCAxNzA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2OTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2ODkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg5OCwgMTc1MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg5OCwgMTc1OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA3NzksNyArNDA2NTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY5Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY4OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDY3LCAxNzcxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDY3LCAxNzc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDgwMyw3ICs0MDY3Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYWNrYWdlSW1wb3J0IiBAMTY5Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY4OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjIxLCAtNjcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02MjEsIC02MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwODE1LDcgKzQwNjg5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY5NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTY5Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTQwLCAxNjYyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNTQwLCAxNjY5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDgzOSwxMSArNDA3MTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNjg4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE2ODcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjY1LCAxNjk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjc1LCAxNjk3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI2NSwgMTcwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjY3NSwgMTcwNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNjkzDQotCQkJCQkJbG9jYXRpb24gICAJKDI2MjAsIDE3NTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDI2MjAsIDE3NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwODY0LDcgKzQwNzM4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE2OTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE2OTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQwNywgMTc0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQwNywgMTc1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA5MjAsMTMgKzQwNzk0LDEzIEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMDEiIEAxNjk5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzI5NywgMTcxMCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzMjk3LCAxNzE2KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUI1RDQzMDJFNSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzAyIiBAMTcwMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTY5OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzkzLCAtMTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zOTMsIC02KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDA5MzgsNyArNDA4MTIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDMxMzcsIDE2NjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDMxMzcsIDE2NzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQwOTYzLDExICs0MDgzNywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE2OTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTY4Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMyOTcsIDE3MTApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwOTcsIDE3MTApKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzI5NywgMTcxNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzA5NywgMTcxNikpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbXBvcnRlZFBhY2thZ2UiIEAxNzAyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zOTMsIC0xMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM5MywgLTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MDk3OSw3ICs0MDg1Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3MDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3MDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzMyMiwgMTY2NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzMyMiwgMTY3MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDEwMDMsMTEgKzQwODc3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTY5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNjk4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzI5NywgMTcxMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzQ5NywgMTcxMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMyOTcsIDE3MTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM0OTcsIDE3MTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTcwNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTcwMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNDc2LCAxNzY0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNDc2LCAxNzcwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTAyOCw3ICs0MDkwMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzAyDQotCQkJCQkJbG9jYXRpb24gICAJKDMzMzQsIDE3NjApDQorCQkJCQkJbG9jYXRpb24gICAJKDMzMzQsIDE3NjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQxMzQ5LDIyICs0MTIyMyw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRUNFODAxOTkiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAxNzE5DQotCQkJCQlsb2NhdGlvbiAgIAkoOTQ4LCA1NzcpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJVFJVRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJMCkNCiAJCQkJICAgIHdpZHRoICAgICAgCTQ2Mw0KIAkJCQkgICAgaGVpZ2h0ICAgICAJNjYyKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzAzIiBAMTcyMA0KQEAgLTQxNTA0LDcgKzQxMzYyLDcgQEAKIAkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc1MSwgMTAwMikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQwMSwgOTUyKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzQxIiBAMTcyNw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDcwMSwgNjYyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDcwMSwgNzkyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE1MTksNyArNDEzNzcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9yZWRlZmluaXRpb25Db250ZXh0IiBAMTcyOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTcyNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0MjUsIC0yMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDI1LCAxMDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTUzMSw3ICs0MTM4OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3MjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3MjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzM5LCA2MjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDczOSwgNzUyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTU1NSwxMSArNDE0MTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNzI3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE3MTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MDEsIDY2MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTM5LCA2NjIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MDEsIDc5MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTM5LCA3OTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTczMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTcyOA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5MTUsIDcxNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTE1LCA4NDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQxNTgwLDcgKzQxNDM4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3MzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3MjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODA3LCA3MDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDgwNywgODM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTYwMSwyMiArNDE0NTksMjIgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM0MiIgQDE3MzINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE3MjcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDI1LCAtMjIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQyNSwgMTA4KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0UwMjZFMkMwMTdDIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNzI3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE3MTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MDEsIDY2MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDYzLCA2NjIpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MDEsIDc5MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDYzLCA3OTIpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNjUiIEAxNzMzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTgzNiwgNzE2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4MzYsIDY0OCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMDFFNDAxNjIiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNwZWNpZmljIiBAMTczNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTczMw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQ0LCA4MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE0NCwgMTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTYyOCw3ICs0MTQ4Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3MzUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3MzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ4OCwgNjc1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDg4LCA2MDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQxNjUyLDExICs0MTUxMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE3MzMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTcxOQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MzYsIDcxNikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQwMSwgNzE2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgzNiwgNjQ4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDAxLCA2NDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTczNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTczNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDQ2LCA3NzApDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NDYsIDcwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE2NzcsNyArNDE1MzUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTczNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTczNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjIyLCA3NjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MjIsIDY5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE3MDEsNyArNDE1NTksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZ2VuZXJhbGl6YXRpb24iIEAxNzM4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNzMzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNDQsIDgwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQ0LCAxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQxNzEzLDcgKzQxNTcxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTczOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTczOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDk3LCA2OTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwOTcsIDYyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE3MzcsMTEgKzQxNTk1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTczMw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNzE3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgzNiwgNzE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjcyLCA3MTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODM2LCA2NDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNzIsIDY0OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzQwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzM4DQotCQkJCQkJbG9jYXRpb24gICAJKDIyMjcsIDc3MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIyNywgNzAyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTc2Miw3ICs0MTYyMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzM4DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMDUsIDc2NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAwNSwgNjk2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTc4MiwxMyArNDE2NDAsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ4DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNjYiIEAxNzQyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTgzNiwgNjAzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4MzYsIDY0OCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMDIxQTAxMTkiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI2NyIgQDE3NDMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE3NDINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjU0LCAtOTkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY1NCwgLTU0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE4MDAsNyArNDE2NTgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzQzDQotCQkJCQkJbG9jYXRpb24gICAJKDIxMTgsIDU2OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjExOCwgNjE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTgyNSwxMSArNDE2ODMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNzQyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE3MTcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODM2LCA2MDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNzIsIDYwMykpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODM2LCA2NDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNzIsIDY0OCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJnZW5lcmFsIiBAMTc0NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTc0Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NTQsIC05OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjU0LCAtNTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MTg0MSw3ICs0MTY5OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3NDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3NDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ4OCwgNTcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDg4LCA2MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQxODY1LDExICs0MTcyMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE3NDINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTcxOQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MzYsIDYwMykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQwMSwgNjAzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgzNiwgNjQ4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDAxLCA2NDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTc0Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTc0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDUzLCA2NDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NTMsIDY4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDE4OTAsNyArNDE3NDgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTc0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTc0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjAzLCA2MzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MDMsIDY4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDIwMzIsNyArNDE4OTAsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjgzIiBAMTc1NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE4MTksIDg2NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODE5LCA4NTgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjA0NCw3ICs0MTkwMiw3IEBACiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzU2DQogCQkJCQlQYXJlbnRfVmlldyAJQDE3NTUNCi0JCQkJCWxvY2F0aW9uICAgCSgxODE5LCA4MDcpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTgxOSwgNzk5KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjA2OSw3ICs0MTkyNyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjg0IiBAMTc1Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTc1NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzMzLCA1ODQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDEzMzMsIDU3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQyMDgxLDcgKzQxOTM5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTc1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTc1Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDg2LCA5MDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0ODYsIDkwMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDIxMDYsMTEgKzQxOTY0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTc1NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNzE5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgxOSwgODY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDAxLCA4NjYpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgxOSwgODU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDAxLCA4NTgpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL2luaGVyaXRlZE1lbWJlciIgQDE3NTkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE3NTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMzMywgNTg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMzMzLCA1NzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjEyMiw3ICs0MTk4MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3NjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3NTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjA2NywgODIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDY3LCA4MTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQyMTQ2LDExICs0MjAwNCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE3NTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTc1NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MTksIDg2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjIzOCwgODY2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgxOSwgODU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjM4LCA4NTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTc2MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTc1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTk1LCA5MjApDQorCQkJCQkJbG9jYXRpb24gICAJKDIxOTUsIDkxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDIxNzEsNyArNDIwMjksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTc2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTc1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDIyLCA5MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMjIsIDg5MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI1ODksMTMgKzQyNDQ3LDEzIEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMjUiIEAxNzg1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjE2OCwgNzU0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIxNjgsIDc2NikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRDc4QUQ2MTAwOTEiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDMyNiIgQDE3ODYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE3ODUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzYyLCAxODQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM2MiwgMTk2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI2MDcsNyArNDI0NjUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzg3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzg2DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMTksIDcxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAxOSwgNzI1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjYzMiwxMSArNDI0OTAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNzg1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE3ODMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTY4LCA3NTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5ODIsIDc1NCkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTY4LCA3NjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5ODIsIDc2NikpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnN0YW5jZSIgQDE3ODgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE3ODUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzYyLCAxODQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM2MiwgMTk2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI2NDgsNyArNDI1MDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzg4DQotCQkJCQkJbG9jYXRpb24gICAJKDIyMzksIDcyMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIzOSwgNzMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjY3MiwxMSArNDI1MzAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxNzg1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE3ODQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTY4LCA3NTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzNTUsIDc1NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxNjgsIDc2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM1NSwgNzY2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3OTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE3ODgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjMxNSwgNzk5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzE1LCA4MTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQyNzgyLDcgKzQyNjQwLDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJMzUwDQogCQkJCSAgICBoZWlnaHQgICAgIAkxMzcpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNTEiIEAxNzk3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY1LCA0MjkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAzMCwgNzY2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI3OTcsNyArNDI2NTUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9wZXJhbmQiIEAxNzk4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNzk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNDcsIC0zNTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQxOCwgLTE0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI4MDksNyArNDI2NjcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzk5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzk4DQotCQkJCQkJbG9jYXRpb24gICAJKDk0NSwgMzg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjEwLCA3MjUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQyODMyLDEyICs0MjY5MCwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFNTkyMjFFMDI3QiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTc5Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxNzkxDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDEwMzAsIDc2NikNCisJCQkJCQkoMTA5MCwgNzY2KQ0KKwkJCQkJCSgxMDkwLCA0ODgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM2NSwgNDI5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDkwLCA0MjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDMwLCA3NjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwOTAsIDQ4OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzk4DQotCQkJCQkJbG9jYXRpb24gICAJKDEwMTcsIDQ4MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY4MiwgODIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Mjg1OCw3ICs0MjcyMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxNzk4DQotCQkJCQkJbG9jYXRpb24gICAJKDczNiwgNDc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDAxLCA4MTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQyODc5LDcgKzQyNzQxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImV4cHJlc3Npb24iIEAxODAyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxNzk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNDcsIC0zNTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQxOCwgLTE0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDI4OTEsNyArNDI3NTMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODAzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODAyDQotCQkJCQkJbG9jYXRpb24gICAJKDMzOCwgNzI5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDAzLCAxMDY2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MjkxNCwxNyArNDI3NzYsMTIgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzRTU5MjIxRTAyRkQiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDE3OTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTc5Ng0KLQkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgzNjUsIDQyOSkNCi0JCQkJCQkoMjA5LCA0MjkpDQotCQkJCQkJKDIwOSwgNzY5KQ0KLQkJCQkJCSg0MzcsIDc2OSkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzY1LCA0MjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzNywgNzY5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA2MCwgMTUzMikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM5OSwgMTU0NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODAyDQotCQkJCQkJbG9jYXRpb24gICAJKDM2NSwgODIzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDMwLCAxMTYwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Mjk0NSw3ICs0MjgwMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODAyDQotCQkJCQkJbG9jYXRpb24gICAJKDM2NSwgODc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDMwLCAxMjE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzEzMywxMyArNDI5OTAsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzEwLCA0ODgpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMxMCwgMzY4KSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMxMCIgQDE4MTQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NzcsIDU5NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2NzcsIDY3MikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FDNzFDMTAzN0MiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDMxMSIgQDE4MTUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4MTQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTA5LCAzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTA5LCAxMDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzE1MSw3ICs0MzAwOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4MTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4MTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTAwMSwgNTUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDAxLCA2MzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzMTc2LDExICs0MzAzMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4MTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTgxMg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3NywgNTk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDgzLCA1OTQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzcsIDY3MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA4MywgNjcyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4MTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4MTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA0MSwgNjQ4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDQxLCA3MjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzMjAxLDcgKzQzMDU4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9jb250ZXh0IiBAMTgxOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgxNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg1MDksIDMwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MDksIDEwOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzMjEzLDcgKzQzMDcwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTgxOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTgxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSg0MDMsIDU2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDAzLCA2NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzMjM3LDExICs0MzA5NCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4MTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTgxMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3NywgNTk0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNzEsIDU5NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY3NywgNjcyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNzEsIDY3MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODIwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODE4DQotCQkJCQkJbG9jYXRpb24gICAJKDMxMywgNjQ4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTMsIDcyNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMyNjIsNyArNDMxMTksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTgyMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTgxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NTAsIDY1MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDUwLCA3MjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzMjgyLDEzICs0MzEzOSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMxMiIgQDE4MjINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NzcsIDc1OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2NzcsIDY3MikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRjVBODAwMDAiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm5hbWVzcGFjZSIgQDE4MjMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4MjINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQzOSwgOTkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00MzksIDEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMzMDAsNyArNDMxNTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODI0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODIzDQotCQkJCQkJbG9jYXRpb24gICAJKDQzMiwgNzIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MzIsIDYzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMzMjQsMTEgKzQzMTgxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTgyMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODEwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjc3LCA3NTkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3MSwgNzU5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjc3LCA2NzIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3MSwgNjcyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4MjUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4MjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzE4LCA4MTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDMxOCwgNzI1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzM0OSw3ICs0MzIwNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODIzDQotCQkJCQkJbG9jYXRpb24gICAJKDUwNiwgODA4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MDYsIDcyMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDMzNzAsNyArNDMyMjcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRSdWxlIiBAMTgyNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgyMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDM5LCA5OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQzOSwgMTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzM4Miw3ICs0MzIzOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4MjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4MjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTA3LCA3MjApDQorCQkJCQkJbG9jYXRpb24gICAJKDkwNywgNjMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzQwNiwxMSArNDMyNjMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxODIyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE4MTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzcsIDc1OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA4MywgNzU5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjc3LCA2NzIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwODMsIDY3MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODI5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODI3DQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTgsIDgwNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA1OCwgNzE5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzQzMSw3ICs0MzI4OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODMwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODI3DQotCQkJCQkJbG9jYXRpb24gICAJKDg0OSwgODA0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4NDksIDcxNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM0NTEsMTMgKzQzMzA4LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAk0NQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzA1IiBAMTgzMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE5MDQsIDc0NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxOTA0LCA3NTApDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NFQ0ZDMDEwMTMyIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdDb25zdHJhaW50IiBAMTgzMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgzMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTMwLCAtNTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMzAsIC00OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzNDY5LDcgKzQzMzI2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTgzMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTgzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzE4LCA3ODEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MTgsIDc4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM0OTMsMTEgKzQzMzUwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTgzMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODEyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkwNCwgNzQ0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ1LCA3NDQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTA0LCA3NTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDUsIDc1MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODM0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODMyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2MTQsIDY5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYxNCwgNzAxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzUxOCw3ICs0MzM3NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODMyDQotCQkJCQkJbG9jYXRpb24gICAJKDE3MDYsIDgyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcwNiwgODI2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzUzOSw3ICs0MzM5Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzcGVjaWZpY2F0aW9uIiBAMTgzNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTgzMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTMwLCAtNTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMzAsIC00OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzNTUxLDcgKzQzNDA4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTgzNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTgzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTE5LCA2NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMTksIDY4NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM1NzUsMTEgKzQzNDMyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTgzMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODExDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkwNCwgNzQ0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjY0LCA3NDQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTA0LCA3NTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNjQsIDc1MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODM2DQotCQkJCQkJbG9jYXRpb24gICAJKDIyMjcsIDc5OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIyNywgODA0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzYwMCw3ICs0MzQ1Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODM2DQotCQkJCQkJbG9jYXRpb24gICAJKDIwNjMsIDcxNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA2MywgNzIyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzY0NywxMyArNDM1MDQsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEzDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjYxIiBAMTg0MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE5MDgsIDU0NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxOTA4LCA1NDIpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUY2OTEwMzQ0Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNjIiIEAxODQyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxODQxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yOTQsIDE2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjk0LCAxNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzNjY1LDcgKzQzNTIyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg0Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjE4LCA1MDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MTgsIDUwMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM2OTAsMTEgKzQzNTQ3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTg0MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODEyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkwOCwgNTQ0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ1LCA1NDQpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkwOCwgNTQyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ1LCA1NDIpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29uc3RyYWluZWRFbGVtZW50IiBAMTg0NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTg0MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjk0LCAxNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI5NCwgMTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00MzcwNiw3ICs0MzU2Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4NDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4NDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAxNCwgNTA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDE0LCA1MDMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzNzMwLDExICs0MzU4NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4NDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg0MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MDgsIDU0NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI3MSwgNTQ0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkwOCwgNTQyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjcxLCA1NDIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg0Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjM1LCA1OTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMzUsIDU5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM3NTUsNyArNDM2MTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg0Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTAyLCA1ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMDIsIDU4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM5MjksMTMgKzQzNzg2LDEzIEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzE2LCA0NjcpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzE2LCAzNTcpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzI4IiBAMTg1NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg2MiwgNzQxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg2MiwgNzY4KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNENzhBRTkzMDA0QiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duaW5nSW5zdGFuY2VTcGVjIiBAMTg1NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTg1NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTgyLCAtNTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODIsIC0yNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzOTQ3LDcgKzQzODA0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg1NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MDgsIDY2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzA4LCA2OTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQzOTcxLDExICs0MzgyOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4NTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MiwgNzQxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDc0MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MiwgNzY4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDc2OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODU3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODU1DQotCQkJCQkJbG9jYXRpb24gICAJKDU3OCwgNzg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NzgsIDgxMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDM5OTYsNyArNDM4NTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg1NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjksIDcxMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjY5LCA3MzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MDE3LDcgKzQzODc0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNwZWNpZmljYXRpb24iIEAxODU5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxODU0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODIsIC01MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4MiwgLTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQwMjksNyArNDM4ODYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODU5DQotCQkJCQkJbG9jYXRpb24gICAJKDEwODksIDY5OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA4OSwgNzI1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDA1MywxMSArNDM5MTAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxODU0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE4NTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjIsIDc0MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIzNCwgNzQxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODYyLCA3NjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMzQsIDc2OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODYxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODU5DQotCQkJCQkJbG9jYXRpb24gICAJKDExNjQsIDc3MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2NCwgNzk5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDA3OCw3ICs0MzkzNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODYyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODU5DQotCQkJCQkJbG9jYXRpb24gICAJKDkzMiwgNzc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MzIsIDgwNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQwOTgsMTMgKzQzOTU1LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAkzNg0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjczIiBAMTg2Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg2MywgODgxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg2MywgOTAwKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIxMzg3MDMyNyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjc0IiBAMTg2NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTg2Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjQxLCAtOTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNDEsIC03MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MTE2LDcgKzQzOTczLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg2NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NjYsIDg0MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTY2LCA4NTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MTQxLDExICs0Mzk5OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4NjMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MywgODgxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDg4MSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjMsIDkwMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDkwLCA5MDApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY2xhc3NpZmllciIgQDE4NjYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4NjMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI0MSwgLTkxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjQxLCAtNzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDE1Nyw3ICs0NDAxNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4NjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4NjYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEwNiwgODQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTA2LCA4NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MTgxLDExICs0NDAzOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4NjMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg1MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MywgODgxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjM2LCA4ODEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjMsIDkwMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIzNiwgOTAwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4NjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4NjYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE0MiwgOTIzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTQyLCA5NDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MjYwLDEzICs0NDExNywxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjc1IiBAMTg3MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg2MCwgNTE2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg2MCwgNTczKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIxM0I1MDNCOSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duaW5nSW5zdGFuY2UiIEAxODcyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxODcxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zODIsIDEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzgyLCA2OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0Mjc4LDcgKzQ0MTM1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg3Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MzcsIDQ3OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjM3LCA1MzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MzAyLDExICs0NDE1OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4NzENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MCwgNTE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDUxNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MCwgNTczKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0OTAsIDU3MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODc0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODcyDQotCQkJCQkJbG9jYXRpb24gICAJKDUyMiwgNTcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MjIsIDYyNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQzMjcsNyArNDQxODQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg3Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjAsIDU2NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjYwLCA2MjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MzQ4LDcgKzQ0MjA1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInNsb3QiIEAxODc2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxODcxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zODIsIDEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzgyLCA2OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0MzYwLDcgKzQ0MjE3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTU2LCA0NzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNTYsIDUzMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQzODQsMTEgKzQ0MjQxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTg3MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODcwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODYwLCA1MTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMzAsIDUxNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg2MCwgNTczKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjMwLCA1NzMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTkyLCA1NzApDQorCQkJCQkJbG9jYXRpb24gICAJKDExOTIsIDYyNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQ0MDksNyArNDQyNjYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg3OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NzksIDU2NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTc5LCA2MjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0NDM3LDEzICs0NDI5NCwxMyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNzMsIDQ0OSkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzczLCAzMzkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzI3IiBAMTg4MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE4ODAsIDQ3MikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODgwLCA0OTApDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q3OEFFMDYwMEMwIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdTbG90IiBAMTg4Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTg4MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4MzYsIC0zMjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDgzNiwgLTMwMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0NDU1LDcgKzQ0MzEyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg4Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjQ1LCA0MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2NDUsIDQyMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQ0NzksMTEgKzQ0MzM2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTg4MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxODcwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg4MCwgNDcyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTE4LCA0NzIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODgwLCA0OTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MTgsIDQ5MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODgyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2MzEsIDUxMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYzMSwgNTMwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDUwNCw3ICs0NDM2MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxODgyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NzMsIDQ0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY3MywgNDYwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDUyNSw3ICs0NDM4Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ2YWx1ZSIgQDE4ODYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4ODENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODM2LCAtMzIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MzYsIC0zMDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDUzNyw3ICs0NDM5NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4ODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4ODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjEzNSwgNDM3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTM1LCA0NTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0NTYxLDExICs0NDQxOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4ODENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg2OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODAsIDQ3MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI0MiwgNDcyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg4MCwgNDkwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjQyLCA0OTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg4OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg4Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjE1LCA1MzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMTUsIDU1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQ1ODYsNyArNDQ0NDMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg4OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg4Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDE0LCA1MTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMTQsIDUzNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQ2MzcsMTMgKzQ0NDk0LDEzIEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNzYiIEAxODkxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg4MSwgNjEwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4ODEsIDYyNCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMTQ0RjAwOEYiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI3NyIgQDE4OTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4OTENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYzMywgLTk4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjMzLCAtODQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDY1NSw3ICs0NDUxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4OTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4OTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU5MSwgNTY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTkxLCA1ODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0NjgwLDExICs0NDUzNywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4OTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg3MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODEsIDYxMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxOCwgNjEwKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODEsIDYyNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxOCwgNjI0KSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImRlZmluaW5nRmVhdHVyZSIgQDE4OTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE4OTENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYzMywgLTk4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjMzLCAtODQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NDY5Niw3ICs0NDU1Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4OTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE4OTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAyMCwgNTgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDIwLCA1OTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0NzIwLDExICs0NDU3NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE4OTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTg5MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODEsIDYxMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI0NCwgNjEwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg4MSwgNjI0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjQ0LCA2MjQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTg5Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTg5NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjA4LCA2NjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMDgsIDY3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDQ5NTEsMTMgKzQ0ODA4LDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTg2Mg0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMyOSIgQDE5MDUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDE4LCA1MTUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAxOCwgNTIyKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNEREQwNThCMDI2QyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duaW5nUGFja2FnZSIgQDE5MDYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5MDUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNCwgOTUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQsIDEwMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0OTY5LDcgKzQ0ODI2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkwNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkwNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MzIsIDQ0NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzMyLCA0NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ0OTkzLDExICs0NDg1MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5MDUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTkwNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMTgsIDUxNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYyLCA1MTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE4LCA1MjIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MiwgNTIyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjUxLCA1NjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDY1MSwgNTcwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTAxOCw3ICs0NDg3NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTA5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTA2DQotCQkJCQkJbG9jYXRpb24gICAJKDc3MSwgNDgwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NzEsIDQ4NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUwMzksNyArNDQ4OTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRNZW1iZXIiIEAxOTEwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTA1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQsIDk1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0LCAxMDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTA1MSw3ICs0NDkwOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI2MiwgNDg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjYyLCA0OTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MDc1LDExICs0NDkzMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5MDUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTkwMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMTgsIDUxNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ3NCwgNTE1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAxOCwgNTIyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDc0LCA1MjIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkxMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDI4LCA1NjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MjgsIDU3NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUxMDAsNyArNDQ5NTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkxMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjIwLCA1NTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjAsIDU2NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUxMzYsMTMgKzQ0OTkzLDEzIEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzE2LCA0NzQpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzE2LCAzNjMpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzIyIiBAMTkxNg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwMzYsIDk0NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDM2LCAxMDM4KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNENjIzQUJBMDBERCINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWVyZ2luZ1BhY2thZ2UiIEAxOTE3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTE2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDAsIC00OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ0MCwgNDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTE1NCw3ICs0NTAxMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzE3LCA5MDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDcxNywgOTk4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTE3OCwxMSArNDUwMzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxOTE2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE5MDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDM2LCA5NDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MiwgOTQ3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAzNiwgMTAzOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYyLCAxMDM4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjEwLCAxMDAxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTAsIDEwOTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MjAzLDcgKzQ1MDYwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzg0LCA5OTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDc4NCwgMTA5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUyMjcsNyArNDUwODQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicGFja2FnZUV4dGVuc2lvbiIgQDE5MjENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5MTYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ0MCwgLTQ5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDQwLCA0MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MjM5LDcgKzQ1MDk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkyMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQ1LCA5MDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNDUsIDk5OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUyNjMsMTEgKzQ1MTIwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTkxNg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxOTAxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAzNiwgOTQ3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTEwLCA5NDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDM2LCAxMDM4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTEwLCAxMDM4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ2MiwgMTAwMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ2MiwgMTA5MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDUyODgsNyArNDUxNDUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkyNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjQ3LCA5OTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNDcsIDEwODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MzA4LDEzICs0NTE2NSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTENCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMyMyIgQDE5MjUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDM2LCAxMTEzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwMzYsIDEwMzgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q2MjNBRjMwMjg0Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMjQiIEAxOTI2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTI1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY0NiwgMzU3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NDYsIDI4MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MzI2LDcgKzQ1MTgzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDE1LCAxMDcyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDE1LCA5OTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MzUxLDExICs0NTIwOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5MjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTkwMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzYsIDExMTMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MTAsIDExMTMpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAzNiwgMTAzOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxMCwgMTAzOCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJtZXJnZWRQYWNrYWdlIiBAMTkyOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTkyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NDYsIDM1NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjQ2LCAyODIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTM2Nyw3ICs0NTIyNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzM0LCAxMDgwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzQsIDEwMDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1MzkxLDExICs0NTI0OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5MjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTkwNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzYsIDExMTMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MiwgMTExMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzYsIDEwMzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MiwgMTAzOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTMwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTI4DQotCQkJCQkJbG9jYXRpb24gICAJKDYxNiwgMTE0OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjE2LCAxMDczKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTQxNiw3ICs0NTI3Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTMxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTI4DQotCQkJCQkJbG9jYXRpb24gICAJKDc2OSwgMTE0OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzY5LCAxMDc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTQzNiw3ICs0NTI5Myw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzNg0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzM4IiBAMTkzMg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDk5OCwgMTQxMCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5MzgsIDE0NzApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTQ1MSw3ICs0NTMwOCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL25lc3RlZFBhY2thZ2UiIEAxOTMzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTMyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYwOCwgNTA0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1NDgsIDU2NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1NDYzLDcgKzQ1MzIwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTkzNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTkzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMTgsIDE0MDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1OCwgMTQ2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU0ODcsMTYgKzQ1MzQ0LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTkzMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxOTA0DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDk5OCwgMTQxMCkNCi0JCQkJCQkoOTk4LCAxNDcwKQ0KKwkJCQkJCSg5MzgsIDE0NzApDQogCQkJCQkJKDQ3MywgMTQ3MCkNCiAJCQkJCQkoNDczLCAxMzM3KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTgsIDE0MTApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MzgsIDE0NzApDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ3MywgMTMzNykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTMzDQotCQkJCQkJbG9jYXRpb24gICAJKDUxMiwgMTM5NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDUyLCAxNDU2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTUxNyw3ICs0NTM3Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTM2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTMzDQotCQkJCQkJbG9jYXRpb24gICAJKDY4MCwgMTQyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjIwLCAxNDg5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTUzOCw3ICs0NTM5NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJuZXN0aW5nUGFja2FnZSIgQDE5MzcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5MzINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjA4LCA1MDQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDU0OCwgNTY0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU1NTAsNyArNDU0MDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTM3DQotCQkJCQkJbG9jYXRpb24gICAJKDc0MywgMTIyNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjgzLCAxMjg2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTU3NCwxNSArNDU0MzAsMTYgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxOTMyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE5MDQNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoOTk4LCAxNDEwKQ0KKwkJCQkJCSg5MzgsIDE0NzApDQorCQkJCQkJKDk5OCwgMTQ3MCkNCiAJCQkJCQkoOTk4LCAxMjY4KQ0KIAkJCQkJCSg1NjIsIDEyNjgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk5OCwgMTQxMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzOCwgMTQ3MCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYyLCAxMjY4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5MzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjIwLCAxMzIyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NjAsIDEzODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1NjAzLDcgKzQ1NDYwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5MzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODA5LCAxMzIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NDksIDEzODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1NjIzLDcgKzQ1NDgwLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTUyDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMzciIEAxOTQxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAzNCwgNjg3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwMzQsIDY2MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1NjM4LDcgKzQ1NDk1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvb3duZWRUeXBlIiBAMTk0Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTk0MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NDQsIC02OSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjQ0LCAtOTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTY1MCw3ICs0NTUwNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMzNCwgNjU0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzM0LCA2MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1Njc0LDExICs0NTUzMSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5NDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTkwMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzQsIDY4NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNiwgNjg3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAzNCwgNjYwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTA2LCA2NjApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk0NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk0Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDU4LCA3NDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NTgsIDcxNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU2OTksNyArNDU1NTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk0NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk0Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjQ3LCA3MzApDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNDcsIDcwMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU3MjAsNyArNDU1NzcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicGFja2FnZSIgQDE5NDYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5NDENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjQ0LCAtNjkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY0NCwgLTk2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU3MzIsNyArNDU1ODksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTQ2DQotCQkJCQkJbG9jYXRpb24gICAJKDY1NiwgNjQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NTYsIDYxOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDU3NTYsMTEgKzQ1NjEzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTk0MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxOTA0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAzNCwgNjg3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjIsIDY4NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzQsIDY2MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYyLCA2NjApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk0Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MTAsIDc0MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjEwLCA3MTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1NzgxLDcgKzQ1NjM4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODEzLCA3NDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDgxMywgNzE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTg2NCwxMyArNDU3MjEsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMzY5DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjk2IiBAMTk1Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEzMzgsIDU1MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMzM4LCA1NTkpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjU2RTEwMkM4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkYXRhdHlwZSIgQDE5NTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5NTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxNiwgLTQzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjE2LCAtMzUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTg4Miw3ICs0NTczOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTAxMCwgNTI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDEwLCA1MzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1OTA2LDExICs0NTc2MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5NTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTk1MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMzgsIDU1MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODg2LCA1NTEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzM4LCA1NTkpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg4NiwgNTU5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTMxLCA2MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDkzMSwgNjEzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTkzMSw3ICs0NTc4OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTU2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTUzDQotCQkJCQkJbG9jYXRpb24gICAJKDExNDcsIDYzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE0NywgNjQxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTk1Niw3ICs0NTgxMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZEF0dHJpYnV0ZSIgQDE5NTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5NTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxNiwgLTQzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjE2LCAtMzUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NTk2OCw3ICs0NTgyNSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5NTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTYwNSwgNTEyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjA1LCA1MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ1OTkyLDExICs0NTg0OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5NTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTk1MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMzgsIDU1MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc5MSwgNTUxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMzOCwgNTU5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzkxLCA1NTkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk1OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk1Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzQ1LCA2MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NDUsIDYxMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDYwMTcsNyArNDU4NzQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk1Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTkxLCA2NDApDQorCQkJCQkJbG9jYXRpb24gICAJKDE1OTEsIDY0OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDYzNDMsMTMgKzQ2MjAwLDEzIEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyOTgiIEAxOTc2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTM5OCwgMTI1NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMzk4LCAxMjY2KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUI1ODM0MDMxNSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZW51bWVyYXRpb24iIEAxOTc3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTc2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODAsIDEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTgwLCAyNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2MzYxLDcgKzQ2MjE4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk3OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk3Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTY1LCAxMjE0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTY1LCAxMjI2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NjM4NSwxMSArNDYyNDIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxOTc2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE5NzMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzk4LCAxMjU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDIxLCAxMjU0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM5OCwgMTI2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAyMSwgMTI2NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTc3DQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTksIDEzMDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwNTksIDEzMjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2NDEwLDcgKzQ2MjY3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5ODANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5NzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIzOSwgMTMwNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIzOSwgMTMxNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDY0MzEsNyArNDYyODgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRMaXRlcmFsIiBAMTk4MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMTk3Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTgwLCAxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4MCwgMjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NjQ0Myw3ICs0NjMwMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE5ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDE5ODENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY2MSwgMTIwNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY2MSwgMTIxOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDY0NjcsMTEgKzQ2MzI0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMTk3Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAxOTc1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM5OCwgMTI1NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc3NiwgMTI1NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzOTgsIDEyNjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NzYsIDEyNjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk4Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMTk4MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzM4LCAxMzA4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzM4LCAxMzIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NjQ5Miw3ICs0NjM0OSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTgxDQotCQkJCQkJbG9jYXRpb24gICAJKDE1OTQsIDEzMTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1OTQsIDEzMjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2NjQ1LDIyICs0NjUwMiw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMDhFRDAwMEQiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAxOTkwDQotCQkJCQlsb2NhdGlvbiAgIAkoNjQ5LCAxMDg2KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTQzNCkNCiAJCQkJICAgIHdpZHRoICAgICAgCTUzMg0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTQ2NzIzLDIyICs0NjU2NCw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0VFNDE5RjAzQjAiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAxOTkyDQotCQkJCQlsb2NhdGlvbiAgIAkoMTk3NSwgNTgwKQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAk0DQotCQkJCQltYXhfd2lkdGggIAk5MykNCiAJCQkJICAgIHdpZHRoICAgICAgCTQwMA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMjgyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTQ2NzY1LDIyICs0NjU5MCw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRkQyMjAzMzciDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAxOTkzDQotCQkJCQlsb2NhdGlvbiAgIAkoMTExMiwgNjU0KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTM3MikNCiAJCQkJICAgIHdpZHRoICAgICAgCTQ1OA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTQ2ODI3LDEzICs0NjYzNiwxMyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMDYNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyNjgiIEAxOTk3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoODQ5LCA2MzcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODQ5LCA2NTUpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjA0NzkwMTA4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvZmVhdHVyZSIgQDE5OTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDE5OTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE5NSwgLTUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xOTUsIDEzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDY4NDUsNyArNDY2NTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTk5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTk4DQotCQkJCQkJbG9jYXRpb24gICAJKDEwMjcsIDYwOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTAyNywgNjI2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Njg2OSwxMSArNDY2NzgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAxOTk3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDE5OTMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NDksIDYzNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEwMywgNjM3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODQ5LCA2NTUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMDMsIDY1NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTk4DQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTYsIDY3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA1NiwgNjkzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Njg5NCw3ICs0NjcwMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAxOTk4DQotCQkJCQkJbG9jYXRpb24gICAJKDk4NCwgNjY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5ODQsIDY4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDY5MTUsNyArNDY3MjQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL2ZlYXR1cmluZ0NsYXNzaWZpZXIiIEAyMDAyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAxOTk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xOTUsIC01KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTk1LCAxMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2OTI3LDcgKzQ2NzM2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAwMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAwMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NTcsIDU5OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzU3LCA2MTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ2OTUxLDExICs0Njc2MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDE5OTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMTk5Ng0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg0OSwgNjM3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1OTYsIDYzNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg0OSwgNjU1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1OTYsIDY1NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDAyDQotCQkJCQkJbG9jYXRpb24gICAJKDY0NCwgNjc5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NDQsIDY5NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDY5NzYsNyArNDY3ODUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAwNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAwMg0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NDIsIDY4NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzQyLCA3MDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3MTk1LDIyICs0NzAwNCw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMEIzRDAzNjIiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyMDE1DQotCQkJCQlsb2NhdGlvbiAgIAkoMjM5MiwgMTEwNCkNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMg0KLQkJCQkJbWF4X3dpZHRoICAJNTg0KQ0KIAkJCQkgICAgd2lkdGggICAgICAJNjgyDQogCQkJCSAgICBoZWlnaHQgICAgIAk1MzIpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDIwMTYNCkBAIC00NzIyMiwxMyArNDcwMTUsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNTkzLCAxMDQyKQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1OTMsIDkyNikpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMDYiIEAyMDE3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQ3MCwgMTA5NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzNDcwLCAxMTA0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDRUNGQ0Q1MDFCQSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duaW5nUGFyYW1ldGVyIiBAMjAxOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjAxNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyOTYsIDQwMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk2LCA0MDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzI0MCw3ICs0NzAzMyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwMTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwMTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzI0NywgMTA1NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzI0NywgMTA2NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDcyNjQsMTEgKzQ3MDU3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjAxNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDE1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzQ3MCwgMTA5NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzA2NSwgMTA5NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0NzAsIDExMDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNjUsIDExMDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAyMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMTE4LCAxMTQ0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTE4LCAxMTUxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzI4OSw3ICs0NzA4Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDIxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDE4DQotCQkJCQkJbG9jYXRpb24gICAJKDMyNzAsIDExMzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDMyNzAsIDExNDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3MzEwLDcgKzQ3MTAzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImRlZmF1bHRWYWx1ZSIgQDIwMjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIwMTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk2LCA0MDEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI5NiwgNDA4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDczMjIsNyArNDcxMTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDIzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDIyDQotCQkJCQkJbG9jYXRpb24gICAJKDM2OTUsIDEwNjApDQorCQkJCQkJbG9jYXRpb24gICAJKDM2OTUsIDEwNjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3MzQ2LDExICs0NzEzOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIwMTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjAxNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0NzAsIDEwOTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM4NzYsIDEwOTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDcwLCAxMTA0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzODc2LCAxMTA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwMjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwMjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzgyNCwgMTEzNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzgyNCwgMTE0NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDczNzEsNyArNDcxNjQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAyNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAyMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNTg5LCAxMTQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNTg5LCAxMTQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzQyNSwxMyArNDcyMTgsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJNzMxDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjY5IiBAMjAyOA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIwMzEsIDEwNjUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjAzMSwgMTMwOCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMEUyNDAyQ0EiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDI3MCIgQDIwMjkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIwMjgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE3NywgNTcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NDQzLDcgKzQ3MjM2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzUxLCAxMDI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzUxLCAxMjY3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzQ2OCwxMSArNDcyNjEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDI4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwMjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDMxLCAxMDY1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjgwLCAxMDY1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTMwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY4MCwgMTMwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDMxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDI5DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDExMTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NDkzLDcgKzQ3Mjg2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9wYXJhbWV0ZXIiIEAyMDMyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDI4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDU3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc3LCAzMDApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzUwNSw3ICs0NzI5OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwMzMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwMzINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI4MiwgMTAyNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI4MiwgMTI2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDc1MjksMTEgKzQ3MzIyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjAyOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDE1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTA2NSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MywgMTA2NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwMzEsIDEzMDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzODMsIDEzMDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAzNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzQ4LCAxMTE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzQ4LCAxMzYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzU1NCw3ICs0NzM0Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDMyDQotCQkJCQkJbG9jYXRpb24gICAJKDIxOTUsIDExMzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxOTUsIDEzODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NTc4LDEzICs0NzM3MSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNzINCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI3MSIgQDIwMzYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMDMxLCAxNTIyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIwMzEsIDEzMDgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjBFN0EwMjBGIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lclJldHVyblBhcmFtIiBAMjAzNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjAzNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc3LCA1MTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NTk2LDcgKzQ3Mzg5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjAzNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODUwLCAxNDYyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODUwLCAxMjQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzYyMCwxMSArNDc0MTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDM2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwMjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDMxLCAxNTIyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjgwLCAxNTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTMwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY4MCwgMTMwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDM3DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDE1NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NjQ1LDcgKzQ3NDM4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwNDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwMzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg1MiwgMTQ5MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg1MiwgMTI3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDc2NjYsNyArNDc0NTksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmV0dXJuUmVzdWx0IiBAMjA0MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjAzNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc3LCA1MTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3Njc4LDcgKzQ3NDcxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA0MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjU0LCAxNDg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjU0LCAxMjc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00NzcwMiwxMSArNDc0OTUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDM2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwMTUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDMxLCAxNTIyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzgzLCAxNTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTMwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MywgMTMwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDQzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDQxDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDE1NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NzI3LDcgKzQ3NTIwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwNDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwNDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjE3MSwgMTYyNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjE3MSwgMTQxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDc3NTEsMTMgKzQ3NTQ0LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAkxMDQNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI3MiIgQDIwNDUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMDMxLCAxMzE4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIwMzEsIDEzMDgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjBGMkEwMzIxIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lckZvcm1hbFBhcmFtIiBAMjA0Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjA0NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc3LCAzMTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3NzY5LDcgKzQ3NTYyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA0Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA0Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODQ3LCAxMjQ1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODQ3LCAxMjM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Nzc5MywxMSArNDc1ODYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDQ1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwMjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDMxLCAxMzE4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjgwLCAxMzE4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTMwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY4MCwgMTMwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDQ2DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDEzNzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MTYsIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3ODE4LDcgKzQ3NjExLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwNDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwNDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg2NSwgMTI4MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg2NSwgMTI3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDc4MzksNyArNDc2MzIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZm9ybWFsUGFyYW1ldGVyIiBAMjA1MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjA0NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTc3LCAzMTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzcsIDMwMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3ODUxLDcgKzQ3NjQ0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA1MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA1MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjM0LCAxMjg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjM0LCAxMjc5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Nzg3NSwxMSArNDc2NjgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDQ1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwMTUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDMxLCAxMzE4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzgzLCAxMzE4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzMSwgMTMwOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4MywgMTMwOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDUyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDUwDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDEzNzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDEzNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ3OTAwLDcgKzQ3NjkzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwNTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwNTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjE4MywgMTM5MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjE4MywgMTM4MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDc5NjcsMTMgKzQ3NzYwLDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTEwNA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMwOCIgQDIwNTcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMDM0LCAxNzIyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIwMzQsIDE3MTMpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NFRTM3NzgwMTZFIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMDkiIEAyMDU4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE3NjQsIDEwNzQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE3NjQsIDEwNjUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00Nzk4NSw3ICs0Nzc3OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwNTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc1MiwgMTY4MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc1MiwgMTY3MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDgwMTAsMTEgKzQ3ODAzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjA1Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDI3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzNCwgMTcyMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY4MCwgMTcyMikpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDM0LCAxNzEzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjgwLCAxNzEzKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJhaXNlZEV4Y2VwdGlvbiIgQDIwNjANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIwNTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc2NCwgMTA3NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc2NCwgMTA2NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4MDI2LDcgKzQ3ODE5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA2MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTYzLCAxNzY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTYzLCAxNzU3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODA1MCwxMSArNDc4NDMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDU3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwNTYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDM0LCAxNzIyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzg4LCAxNzIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAzNCwgMTcxMykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM4OCwgMTcxMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDYyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDYwDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNDYsIDE3NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDYsIDE3NjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4MjQxLDIyICs0ODAzNCw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMUQ3MTAxNjQiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyMDY5DQotCQkJCQlsb2NhdGlvbiAgIAkoMjAxLCA2MTApDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTUNCi0JCQkJCW1heF93aWR0aCAgCTM5MCkNCiAJCQkJICAgIHdpZHRoICAgICAgCTQ4MQ0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEwMCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI5MSIgQDIwNzANCkBAIC00ODQwNCwxMyArNDgxODEsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzODQsIDU0NykNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzODQsIDQ0MCkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyODkiIEAyMDc4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OSwgNzM3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwODksIDkxOCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMjQxODAyQUQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInByZUNvbnRleHQiIEAyMDc5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDc4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMDMsIDEzMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwMywgMzEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg0MjIsNyArNDgxOTksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDgwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDc5DQotCQkJCQkJbG9jYXRpb24gICAJKDc5NiwgNjk2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3OTYsIDg3NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg0NDYsMTEgKzQ4MjIzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjA3OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OSwgNzM3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDczNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDkxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjcyLCA5MTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA3OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MTUsIDc5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzE1LCA5NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4NDcxLDcgKzQ4MjQ4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwNzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODg4LCA3ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDg4OCwgOTY3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODQ5NSw3ICs0ODI3Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwcmVjb25kaXRpb24iIEAyMDgzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDc4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMDMsIDEzMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwMywgMzEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg1MDcsNyArNDgyODQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDgzDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNjEsIDcwNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM2MSwgODg3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODUzMSwxMSArNDgzMDgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMDc4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwNjYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg5LCA3MzcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDcsIDczNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDkxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNywgOTE4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwODUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ2NCwgNzkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDY0LCA5NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4NTU2LDcgKzQ4MzMzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwODYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwODMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI1NCwgNzc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjU0LCA5NTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4NTc2LDEzICs0ODM1MywxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzkNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI5MCIgQDIwODcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDg5LCA5MTkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OSwgOTE4KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIyNDMxMDEyQyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicG9zdENvbnRleHQiIEAyMDg4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDg3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMDMsIDMxMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwMywgMzEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg1OTQsNyArNDgzNzEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDg4DQotCQkJCQkJbG9jYXRpb24gICAJKDgxNCwgODczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MTQsIDg3MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg2MTgsMTEgKzQ4Mzk1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjA4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OSwgOTE5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDkxOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDkxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjcyLCA5MTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA5MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA4OA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MTUsIDk3MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzE1LCA5NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4NjQzLDcgKzQ4NDIwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwOTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwODgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODkyLCA5NjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDg5MiwgOTYwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODY2Nyw3ICs0ODQ0NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwb3N0Y29uZGl0aW9uIiBAMjA5Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjA4Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzAzLCAzMTMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMDMsIDMxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4Njc5LDcgKzQ4NDU2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA5Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjA5Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQzLCA4ODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNDMsIDg4NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg3MDMsMTEgKzQ4NDgwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjA4Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OSwgOTE5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTA3LCA5MTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg5LCA5MTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDcsIDkxOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDkyDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NjQsIDk3MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ2NCwgOTcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODcyOCw3ICs0ODUwNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDkyDQotCQkJCQkJbG9jYXRpb24gICAJKDEyNTQsIDk2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI1NCwgOTY2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODc0OCw3ICs0ODUyNSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk0OA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzQ3IiBAMjA5Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwODksIDEwNzUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OSwgOTE4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg3NjMsNyArNDg1NDAsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImJvZHlDb25kaXRpb24iIEAyMDk3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDk2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYzMywgMTgxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2MzMsIDI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg3NzUsNyArNDg1NTIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDk4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDk3DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMjAsIDEwNTApDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjAsIDg5MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg3OTksMTEgKzQ4NTc2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjA5Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OSwgMTA3NSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNywgMTA3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDkxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNywgOTE4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwOTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIwOTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ2NCwgMTEyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ2NCwgOTcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODgyNCw3ICs0ODYwMSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMDk3DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMjgsIDExMjApDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjgsIDk2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg4NDUsNyArNDg2MjIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYm9keUNvbnRleHQiIEAyMTAxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDk2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYzMywgMTgxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2MzMsIDI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg4NTcsNyArNDg2MzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTAxDQotCQkJCQkJbG9jYXRpb24gICAJKDgzMiwgMTA0MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODMyLCA4ODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4ODgxLDExICs0ODY1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIwOTYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjA2OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDEwNzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3MiwgMTA3NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODksIDkxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjcyLCA5MTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjEwMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjEwMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MTUsIDExMjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDcxNSwgOTcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODkwNiw3ICs0ODY4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTAxDQotCQkJCQkJbG9jYXRpb24gICAJKDg4MSwgMTEyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODgxLCA5NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4OTI5LDcgKzQ4NzA2LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNTAiIEAyMTA1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OCwgNTg0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwODgsIDYwOSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ4OTQ0LDcgKzQ4NzIxLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJmb3JtYWxQYXJhbWV0ZXIiIEAyMTA2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTA1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYzMiwgLTQ0OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjMyLCAtNDIzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDg5NTYsNyArNDg3MzMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTA3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTA2DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMjksIDU0OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMyOSwgNTc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00ODk4MCwxMSArNDg3NTcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTA1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwNjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCA1ODQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDUsIDU4NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODgsIDYwOSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNSwgNjA5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxMDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxMDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ4NCwgNjIyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDg0LCA2NDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5MDA1LDcgKzQ4NzgyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxMDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxMDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI1OSwgNjE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjU5LCA2NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5MDI2LDcgKzQ4ODAzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9wZXJhdGlvbiIgQDIxMTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxMDUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjMyLCAtNDQ4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2MzIsIC00MjMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTAzOCw3ICs0ODgxNSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxMTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxMTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODAyLCA1NDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDgwMiwgNTY4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTA2MiwxMSArNDg4MzksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTA1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwNjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCA1ODQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3MiwgNTg0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OCwgNjA5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDYwOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTEwDQotCQkJCQkJbG9jYXRpb24gICAJKDcxNSwgNjM4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MTUsIDY2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkwODcsNyArNDg4NjQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjExMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjExMA0KLQkJCQkJCWxvY2F0aW9uICAgCSg4OTYsIDYxOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODk2LCA2NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5MTA3LDcgKzQ4ODg0LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTM1DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNDgiIEAyMTE0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OCwgMTI0MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDg4LCAxMzE0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkxMjIsNyArNDg4OTksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi90eXBlIiBAMjExNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjExNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2MzIsIDIwOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjMyLCAyODIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTEzNCw3ICs0ODkxMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxMTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxMTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQwMSwgMTIxNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQwMSwgMTI4OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkxNTgsMTEgKzQ4OTM1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjExNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OCwgMTI0MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNSwgMTI0MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODgsIDEzMTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDUsIDEzMTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjExNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjExNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDI5LCAxMjczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDI5LCAxMzQ2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTE4MywxNiArNDg5NjAsMTYgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM0OSIgQDIxMTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxMTQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjMyLCAyMDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDYzMiwgMjgyKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0UwMjgyNDcwMEQzIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTE0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIwNjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAxMjQxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDEyNDEpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAxMzE0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDEzMTQpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNTIiIEAyMTE5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4OCwgMTM2NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDg4LCAxMzE0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkyMDcsNyArNDg5ODQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJhaXNlZEV4Y2VwdGlvbiIgQDIxMjANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxMTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjU2LCAyNjgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY1NiwgMjE2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkyMTksNyArNDg5OTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTIxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTIwDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNTYsIDEzMzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTYsIDEyODYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5MjQzLDExICs0OTAyMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIxMTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjA2OA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODgsIDEzNjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDUsIDEzNjYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAxMzE0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTA1LCAxMzE0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxMjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxMjANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ2MiwgMTQyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ2MiwgMTM2OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDkyNjgsMTQgKzQ5MDQ1LDE0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNTMiIEAyMTIzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTE5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY1NiwgMjY4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NTYsIDIxNikNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFNTkyNDExMDAzRSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjExOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMDY5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA4OCwgMTM2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjcyLCAxMzY2KSkpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg4LCAxMzE0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NzIsIDEzMTQpKSkpKSkNCiAJCQkob2JqZWN0IENsYXNzRGlhZ3JhbSAiQ2xhc3NlcyINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMDI3N0U0MDNCNSINCiAJCQkgICAgdGl0bGUgICAgICAJIkNsYXNzZXMiDQpAQCAtNDkzODYsMjIgKzQ5MTYzLDYgQEAKIAkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQogCQkJCSAgICBmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERkZDNkFCMDI1MyINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDIxMjcNCi0JCQkJCWxvY2F0aW9uICAgCSgyODQxLCAxMzc0KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkzDQotCQkJCQltYXhfd2lkdGggIAkxNTkpDQogCQkJCSAgICB3aWR0aCAgICAgIAkzMDANCiAJCQkJICAgIGhlaWdodCAgICAgCTI0Mg0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCkBAIC00OTU4NCwxMyArNDkzNDUsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJOTU2DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjg1IiBAMjEzNQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwMTcsIDE0MTYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAxNywgMTQ0NikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0JDMzkzMTAwOTQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNsYXNzIiBAMjEzNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjEzNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNTMsIDk5MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUzLCAxMDIwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk2MDIsNyArNDkzNjMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTM3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTM2DQotCQkJCQkJbG9jYXRpb24gICAJKDY1NCwgMTM3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjU0LCAxNDA1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTYyNiwxMSArNDkzODcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTM1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxMzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE3LCAxNDE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjMsIDE0MTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE3LCAxNDQ2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjMsIDE0NDYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjEzOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjEzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MzksIDE0NjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDYzOSwgMTQ5MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk2NTEsNyArNDk0MTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjEzOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjEzNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4OTAsIDE0NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDg5MCwgMTUwOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk2NzUsNyArNDk0MzYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibmVzdGVkQ2xhc3NpZmllciIgQDIxNDANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxMzUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUzLCA5OTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE1MywgMTAyMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5Njg3LDcgKzQ5NDQ4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjQ1LCAxMzgxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjQ1LCAxNDExKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTcxMSwxMSArNDk0NzIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTM1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxMzANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE3LCAxNDE2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDcyLCAxNDE2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAxNywgMTQ0NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ3MiwgMTQ0NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTQyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTQwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzMsIDE0NjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MzMsIDE0OTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTQ5NzM2LDcgKzQ5NDk3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxNDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxNDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI5OSwgMTQ3NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI5OSwgMTUwNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk3NTksNyArNDk1MjAsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNjENCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM0NSIgQDIxNDQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg4MTEsIDEwNTcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODExLCAxMDU2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk3NzQsNyArNDk1MzUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9zdXBlckNsYXNzIiBAMjE0NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjE0NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNSwgMTA5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNSwgMTA4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk3ODYsNyArNDk1NDcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDY5NCwgMTA4NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjk0LCAxMDgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTgxMCwxNSArNDk1NzEsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTQ0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxMzQNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoODExLCAxMDU3KQ0KKwkJCQkJCSg4MTEsIDEwNTYpDQogCQkJCQkJKDgxMSwgMTExOSkNCiAJCQkJCQkoNTYzLCAxMTE5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTEsIDEwNTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTEsIDEwNTYpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MywgMTExOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDU3OSwgMTE2MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTc5LCAxMTYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTgzOSw3ICs0OTYwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDcxNywgMTE1NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzE3LCAxMTU0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTg2MCwxNyArNDk2MjEsMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM0NiIgQDIxNDkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxNDQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUsIDEwOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUsIDEwOCkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFMDI3QkVCMDBGMCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjE0NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMTM0DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDgxMSwgMTA1NykNCisJCQkJCQkoODExLCAxMDU2KQ0KIAkJCQkJCSg4MTEsIDk5MykNCiAJCQkJCQkoNTYzLCA5OTMpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgxMSwgMTA1NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgxMSwgMTA1NikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYzLCA5OTMpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDIxNTANCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCkBAIC00OTg4MSwxMyArNDk2NDIsMTMgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MDYsIDY5MikNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MDYsIDU1NSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyODgiIEAyMTUxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAxMywgMTYzOCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDEzLCAxNjM2KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIyMkUwMDBFMiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY2xhc3MiIEAyMTUyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTUxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MDEsIC04NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkwMSwgLTg2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk4OTksNyArNDk2NjAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTUzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTUyDQotCQkJCQkJbG9jYXRpb24gICAJKDY1MywgMTU5NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjUzLCAxNTk1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC00OTkyMywxMSArNDk2ODQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTUxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxMzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDEzLCAxNjM4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjMsIDE2MzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDEzLCAxNjM2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjMsIDE2MzYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE1NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE1Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MDksIDE2OTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDYwOSwgMTY5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk5NDgsNyArNDk3MDksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE1NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE1Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjMsIDE3MjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDg2MywgMTcyMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk5NzMsNyArNDk3MzQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRPcGVyYXRpb24iIEAyMTU2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTUxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MDEsIC04NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkwMSwgLTg2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNDk5ODUsNyArNDk3NDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTU3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTU2DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMDQsIDE1OTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMDQsIDE1OTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwMDA5LDExICs0OTc3MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIxNTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjEzMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMTMsIDE2MzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NjQsIDE2MzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDEzLCAxNjM2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDY0LCAxNjM2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxNTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxNTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQxOCwgMTY5MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQxOCwgMTY5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTAwMzQsNyArNDk3OTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE1OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjk4LCAxNzM4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjk4LCAxNzM2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDA4MCwyMiArNDk4NDEsNiBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjFENzkwMTAxIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjE2MA0KLQkJCQkJbG9jYXRpb24gICAJKDE0OTEsIDU0MykNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJNg0KLQkJCQkJbWF4X3dpZHRoICAJNTc4KQ0KIAkJCQkgICAgd2lkdGggICAgICAJNjM3DQogCQkJCSAgICBoZWlnaHQgICAgIAk4NzUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyOTMiIEAyMTYxDQpAQCAtNTA0NzMsMTMgKzUwMjE4LDEzIEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTgwNiwgNDgxKQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4MDYsIDMyMSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyODYiIEAyMTgxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTk4LCA1MjEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTk4LCA1MTgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjIxQUYwMTZGIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGFzc2lmaWVyIiBAMjE4Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjE4MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTIzNCwgLTIyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEyMzQsIC0yMzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDQ5MSw3ICs1MDIzNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxODMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxODINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjEyLCA0ODApDQorCQkJCQkJbG9jYXRpb24gICAJKDYxMiwgNDc3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDUxNSwxMSArNTAyNjAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMTgxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIxMzINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTgsIDUyMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTE0LCA1MjEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTgsIDUxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTE0LCA1MTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE4NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE4Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NjIsIDU3NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTYyLCA1NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwNTQwLDcgKzUwMjg1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxODUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxODINCi0JCQkJCQlsb2NhdGlvbiAgIAkoODI1LCA1NzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDgyNSwgNTcwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDU2MSw3ICs1MDMwNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvYXR0cmlidXRlIiBAMjE4Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjE4MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTIzNCwgLTIyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEyMzQsIC0yMzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDU3Myw3ICs1MDMxOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM4NCwgNDgwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzg0LCA0NzcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwNTk3LDExICs1MDM0MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIxODENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjE2MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk5OCwgNTIxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDgyLCA1MjEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTgsIDUxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ4MiwgNTE4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQyOSwgNTU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDI5LCA1NTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwNjIyLDcgKzUwMzY3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxODkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyOSwgNTc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzI5LCA1NzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwNjQ1LDEzICs1MDM5MCwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTUNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMwNyIgQDIxOTANCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyNTg2LCAxMDY2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDI1ODYsIDEwOTgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NFRDAwN0QwMzc4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdQcm9wZXJ0eSIgQDIxOTENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxOTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI4MiwgNzMwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjgyLCA3NjIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDY2Myw3ICs1MDQwOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxOTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxOTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI5MywgMTAzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI5MywgMTA2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA2ODcsMTEgKzUwNDMyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjE5MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMTYwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU4NiwgMTA2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjExOCwgMTA2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1ODYsIDEwOTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxMTgsIDEwOTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE5Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE5MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTkyLCAxMTA3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTkyLCAxMTM5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDcxMiw3ICs1MDQ1Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTkxDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNDEsIDExMDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDEsIDExMzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwNzMzLDcgKzUwNDc4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImRlZmF1bHRWYWx1ZSIgQDIxOTUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIxOTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI4MiwgNzMwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjgyLCA3NjIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDc0NSw3ICs1MDQ5MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxOTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIxOTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjgwOCwgMTAyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjgwOCwgMTA2MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA3NjksMTEgKzUwNTE0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjE5MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMTMzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU4NiwgMTA2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzA1NCwgMTA2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1ODYsIDEwOTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNTQsIDEwOTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjE5Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjE5NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMDAzLCAxMTA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMDAzLCAxMTM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDc5NCw3ICs1MDUzOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTk4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMTk1DQotCQkJCQkJbG9jYXRpb24gICAJKDI3NzAsIDExMDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI3NzAsIDExNDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwODE0LDEzICs1MDU1OSwxMyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDINCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI4NyIgQDIxOTkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDIyLCA3MDYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAyMiwgMTAyMykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCMjI0OTAwNDQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNsYXNzIiBAMjIwMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjE5OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTI0LCA3MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEyNCwgMzg3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA4MzIsNyArNTA1NzcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjAwDQotCQkJCQkJbG9jYXRpb24gICAJKDY1NiwgNjY1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NTYsIDk4MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA4NTYsMTEgKzUwNjAxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjE5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMTM0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyMiwgNzA2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjMsIDcwNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMjIsIDEwMjMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MywgMTAyMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjAwDQotCQkJCQkJbG9jYXRpb24gICAJKDYxMywgNzQ5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTMsIDEwNjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwODgxLDcgKzUwNjI2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODU3LCA4MTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDg1NywgMTEzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA5MDYsNyArNTA2NTEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRBdHRyaWJ1dGUiIEAyMjA0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMjQsIDcwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTI0LCAzODcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MDkxOCw3ICs1MDY2Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMwNCwgNjY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzA0LCA5ODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUwOTQyLDExICs1MDY4NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIxOTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjE2MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMjIsIDcwNikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ4MiwgNzA2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyMiwgMTAyMykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ4MiwgMTAyMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjA2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjA0DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MjgsIDc1NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQyOCwgMTA3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTA5NjcsNyArNTA3MTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIwNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIwNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjcyLCA4MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNzIsIDExMTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxMDEzLDMyICs1MDc1OCwxNiBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjFERDcwMDE2Ig0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjIwOA0KLQkJCQkJbG9jYXRpb24gICAJKDMwODQsIDYxMikNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJNDAzKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNDYyDQogCQkJCSAgICBoZWlnaHQgICAgIAkyNTYpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyOTUiIEAyMjA5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjU5NiwgNzY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDI1OTYsIDY3OCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FCM0VCQzAyQkUiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmluZ0Fzc29jaWF0aW9uIiBAMjIxMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjIwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjQsIC0xODUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM2NCwgLTI3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxMDUwLDcgKzUwNzc5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIxMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyODQwLCA3MzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4NDAsIDY0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTEwNzQsMTEgKzUwODAzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjIwOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU5NiwgNzY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMDc1LCA3NjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNTk2LCA2NzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNzUsIDY3OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjEwDQotCQkJCQkJbG9jYXRpb24gICAJKDMwNDMsIDgxOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzA0MywgNzI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTA5OSw3ICs1MDgyOCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjEwDQotCQkJCQkJbG9jYXRpb24gICAJKDI4MDUsIDg1NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjgwNSwgNzY1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTEyNCw3ICs1MDg1Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZEVuZCIgQDIyMTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyMDkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY0LCAtMTg1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjQsIC0yNzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTEzNiw3ICs1MDg2NSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzNSwgNzQwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjM1LCA2NDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxMTYwLDExICs1MDg4OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIyMDkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjE2MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1OTYsIDc2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjExOCwgNzY5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU5NiwgNjc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTE4LCA2NzgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIxNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTUzLCA4MDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNTMsIDcxNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTExODUsNyArNTA5MTQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzQ3LCA4OTApDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDcsIDc5OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTEyMTAsMTMgKzUwOTM5LDEzIEBACiAJCQkJCQloZWlnaHQgICAgIAkxMjENCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMzNiIgQDIyMTgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyNTk2LCA2MjQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjU5NiwgNjc4KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERkZDNzRFMDJEOSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYXNzb2NpYXRpb24iIEAyMjE5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjE4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM2NCwgLTMzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY0LCAtMjc2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTEyMjgsNyArNTA5NTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjIwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjE5DQotCQkJCQkJbG9jYXRpb24gICAJKDI5MDQsIDU4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjkwNCwgNjQzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTI1MiwxMSArNTA5ODEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMjE4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyMDgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNTk2LCA2MjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMwNzUsIDYyNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1OTYsIDY3OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzA3NSwgNjc4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzA0MSwgNjY1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMDQxLCA3MTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxMjc3LDcgKzUxMDA2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm1lbWJlckVuZCIgQDIyMjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyMTgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY0LCAtMzMwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjQsIC0yNzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTI4OSw3ICs1MTAxOCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzNywgNTc5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjM3LCA2MzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxMzEzLDExICs1MTA0MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIyMTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjE2MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1OTYsIDYyNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjExOCwgNjI0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU5NiwgNjc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTE4LCA2NzgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIyNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIyMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTcyLCA2NjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNzIsIDcxNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTEzMzgsNyArNTEwNjcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIyNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIyMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNDkzLCA2OTEpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0OTMsIDc0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTE0MDIsNyArNTExMzEsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMDQNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzMTgiIEAyMjI5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzcwNiwgNzM4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDM3MDYsIDc1OCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxNDE0LDcgKzUxMTQzLDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMzANCiAJCQkJCVBhcmVudF9WaWV3IAlAMjIyOQ0KLQkJCQkJbG9jYXRpb24gICAJKDM3MDYsIDY3OSkNCisJCQkJCWxvY2F0aW9uICAgCSgzNzA2LCA2OTkpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxNDM5LDcgKzUxMTY4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzMTkiIEAyMjMxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjI5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI4NzgsIDI0MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjg3OCwgMjYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTE0NTEsNyArNTExODAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjMyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjMxDQotCQkJCQkJbG9jYXRpb24gICAJKDM1NzIsIDY5NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzU3MiwgNzE3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTQ3NiwxMSArNTEyMDUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMjI5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyMDgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzA2LCA3MzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM1MzcsIDczOCkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzA2LCA3NTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM1MzcsIDc1OCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIvZW5kVHlwZSIgQDIyMzMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyMjkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjg3OCwgMjQwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyODc4LCAyNjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTQ5Miw3ICs1MTIyMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyMzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzc3NCwgNzAzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNzc0LCA3MjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxNTE2LDExICs1MTI0NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIyMjkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjIyOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM3MDYsIDczOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg3NiwgNzM4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzcwNiwgNzU4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzODc2LCA3NTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIzNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjIzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgzODA4LCA3OTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDM4MDgsIDgxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTE1NTYsNiArNTEyODUsNyBAQAogCQkgICAgbG9naWNhbF9tb2RlbHMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCQkob2JqZWN0IENsYXNzICJJbnRlcmZhY2UiDQogCQkJICAgIHF1aWQgICAgICAgCSIzMzQyQTE5NTAxNEQiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBpbnRlcmZhY2UgaXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgdGhhdCByZXByZXNlbnRzIGEgZGVjbGFyYXRpb24gb2YgYSBzZXQgb2YgY29oZXJlbnQgcHVibGljIGZlYXR1cmVzIGFuZCBvYmxpZ2F0aW9ucy4gSW4gYSBzZW5zZSwgIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiMzM0MkExOUMwMUVEIg0KQEAgLTUxNTY0LDYgKzUxMjk0LDcgQEAKIAkJCSAgICBsYW5ndWFnZSAgIAkibm9uZSIpDQogCQkJKG9iamVjdCBDbGFzcyAiSW1wbGVtZW50YXRpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzQjZENzBFMDAwMzIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBJbXBsZW1lbnRhdGlvbiBpcyBhIHNwZWNpYWxpemVkIFJlYWxpemF0aW9uIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGEgQ2xhc3NpZmllciBhbmQgYW4gSW50ZXJmYWNlLiBUaGUgaW1wbGVtZW50YXRpb24gcmVsYXRpb25zaGlwIHNpZ25pZmllcyB0aGF0IHRoZSByZWFsaXppbmcgY2xhc3NpZmllciBjb25mb3JtcyB0byB0aGUgY29udHJhY3Qgc3BlY2lmaWVkIGJ5IHRoZSBpbnRlcmZhY2UuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNCNkQ3MEYzMDEwRSINCkBAIC01MTU3MSw2ICs1MTMwMiw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjcxRjY0MTAyNDQiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiQmVoYXZpb3JlZENsYXNzaWZpZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRDBCNDEyMTAwMjMiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIEJlaGF2aW9yZWRDbGFzc2lmaWVyIG1heSBoYXZlIGltcGxlbWVudGF0aW9ucy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UxMUVFMkQwMjBGIg0KQEAgLTUxNzM5LDcgKzUxNDcxLDMzIEBACiAJCQkJICAgIHdpZHRoICAgICAgCTQ0NA0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTMxDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpQcm9wZXJ0eSIgQDIyMzcNCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6OkludGVyZmFjZXM6OkJlaGF2aW9yZWRDbGFzc2lmaWVyIiBAMjIzNw0KKwkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCisJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjc1LCAxMjMwKQ0KKwkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQorCQkJCQlzaXplICAgICAgIAkxMA0KKwkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KKwkJCQkJYm9sZCAgICAgICAJRkFMU0UNCisJCQkJCWl0YWxpY3MgICAgCVRSVUUNCisJCQkJCXVuZGVybGluZSAgCUZBTFNFDQorCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KKwkJCQkJY29sb3IgICAgICAJMA0KKwkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQorCQkJCQlQYXJlbnRfVmlldyAJQDIyMzcNCisJCQkJCWxvY2F0aW9uICAgCSg0NTksIDExNjQpDQorCQkJCQlubGluZXMgICAgIAkxDQorCQkJCQltYXhfd2lkdGggIAk0MzINCisJCQkJCWp1c3RpZnkgICAgCTANCisJCQkJCWxhYmVsICAgICAgCSJCZWhhdmlvcmVkQ2xhc3NpZmllciIpDQorCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCisJCQkJICAgIHF1aWR1ICAgICAgCSIzRDBCNDEyMTAwMjMiDQorCQkJCSAgICB3aWR0aCAgICAgIAk0NTANCisJCQkJICAgIGhlaWdodCAgICAgCTE1NykNCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6Oktlcm5lbDo6UHJvcGVydHkiIEAyMjM4DQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQpAQCAtNTE3NTYsNyArNTE1MTQsNyBAQAogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjIzNw0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyMjM4DQogCQkJCQlsb2NhdGlvbiAgIAkoMjQ4LCA0MDMpDQogCQkJCQlubGluZXMgICAgIAkxDQogCQkJCQltYXhfd2lkdGggIAkzNjQNCkBAIC01MTc2Nyw3ICs1MTUyNSw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTM4Mg0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTM4DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpPcGVyYXRpb24iIEAyMjM4DQorCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpLZXJuZWw6Ok9wZXJhdGlvbiIgQDIyMzkNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCkBAIC01MTc4NCw3ICs1MTU0Miw3IEBACiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyMjM4DQorCQkJCQlQYXJlbnRfVmlldyAJQDIyMzkNCiAJCQkJCWxvY2F0aW9uICAgCSgyMjcsIDczMykNCiAJCQkJCW5saW5lcyAgICAgCTENCiAJCQkJCW1heF93aWR0aCAgCTM2Mw0KQEAgLTUxNzk1LDcgKzUxNTUzLDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJMzgxDQogCQkJCSAgICBoZWlnaHQgICAgIAkxMzENCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQotCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpJbnRlcmZhY2VzOjpJbXBsZW1lbnRhdGlvbiIgQDIyMzkNCisJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6OkludGVyZmFjZXM6OkltcGxlbWVudGF0aW9uIiBAMjI0MA0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQogCQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQpAQCAtNTE4MTEsNyArNTE1NjksNyBAQAogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjIzOQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyMjQwDQogCQkJCQlsb2NhdGlvbiAgIAkoMTUyMiwgMTE2NCkNCiAJCQkJCW5saW5lcyAgICAgCTENCiAJCQkJCW1heF93aWR0aCAgCTQyNg0KQEAgLTUxODIyLDQyICs1MTU4MCwxNiBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk0NDQNCiAJCQkJICAgIGhlaWdodCAgICAgCTE1Nw0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCi0JCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjI0MA0KKwkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyMjQxDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I2RDcwRjMwMTBFIg0KLQkJCQkgICAgY2xpZW50ICAgICAJQDIyMzkNCisJCQkJICAgIGNsaWVudCAgICAgCUAyMjQwDQogCQkJCSAgICBzdXBwbGllciAgIAlAMjIzNg0KIAkJCQkgICAgbGluZV9zdHlsZSAJMw0KIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzI0LCAxMzA4KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MjQsIDE0OTUpKQ0KLQkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6SW50ZXJmYWNlczo6QmVoYXZpb3JlZENsYXNzaWZpZXIiIEAyMjQxDQotCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KLQkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NzUsIDEyMzApDQotCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCXNpemUgICAgICAgCTEwDQotCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJaXRhbGljcyAgICAJVFJVRQ0KLQkJCQkJdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCXN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQljb2xvciAgICAgIAkwDQotCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjI0MQ0KLQkJCQkJbG9jYXRpb24gICAJKDQ1OSwgMTE2NCkNCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTQzMg0KLQkJCQkJanVzdGlmeSAgICAJMA0KLQkJCQkJbGFiZWwgICAgICAJIkJlaGF2aW9yZWRDbGFzc2lmaWVyIikNCi0JCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNEMEI0MTIxMDAyMyINCi0JCQkJICAgIHdpZHRoICAgICAgCTQ1MA0KLQkJCQkgICAgaGVpZ2h0ICAgICAJMTU3KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzYwIiBAMjI0Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyMDYsIDEyMjUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIwNiwgMTIzMCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTg3Miw3ICs1MTYwNCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW1wbGVtZW50YXRpb24iIEAyMjQzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIC0zODkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIC0zODQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTE4ODQsNyArNTE2MTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjQzDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNTAsIDExNzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTAsIDExNzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTkwNywxMyArNTE2MzksMTMgQEAKIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0JEODhCNEMwM0JCIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMjQyDQotCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyMzkNCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjI0MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDYsIDEyMjUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MTMsIDEyMjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA2LCAxMjMwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTEzLCAxMjMwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ3NiwgMTI3MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ3NiwgMTI3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxOTM0LDcgKzUxNjY2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIyNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI1OSwgMTA5OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI1OSwgMTEwNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUxOTU4LDcgKzUxNjkwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImltcGxlbWVudGluZ0NsYXNzaWZpZXIiIEAyMjQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIC0zODkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMjQsIC0zODQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTE5NzAsNyArNTE3MDIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDExNDgsIDEyODApDQorCQkJCQkJbG9jYXRpb24gICAJKDExNDgsIDEyODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MTk5MywxMyArNTE3MjUsMTMgQEAKIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0JEODhCNEMwM0M1Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMjQyDQotCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyNDENCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjIzNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDYsIDEyMjUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkwMCwgMTIyNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDYsIDEyMzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkwMCwgMTIzMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjQ5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDk1MCwgMTE4MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTUwLCAxMTg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIwMjAsNyArNTE3NTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI1MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjI0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDg5LCAxMzMzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDg5LCAxMzM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIwMzksNyArNTE3NzEsMzUgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuMzgyMzUzDQogCQkJCQkJaGVpZ2h0ICAgICAJMTA4DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQotCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpJbnRlcmZhY2VzOjpJbnRlcmZhY2UiIEAyMjUxDQorCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpDbGFzc2VzOjpLZXJuZWw6OkNsYXNzaWZpZXIiIEAyMjUxDQorCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KKwkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCisJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQorCQkJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc3MCwgMTkwKQ0KKwkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQorCQkJCQlzaXplICAgICAgIAkxMA0KKwkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KKwkJCQkJYm9sZCAgICAgICAJRkFMU0UNCisJCQkJCWl0YWxpY3MgICAgCVRSVUUNCisJCQkJCXVuZGVybGluZSAgCUZBTFNFDQorCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KKwkJCQkJY29sb3IgICAgICAJMA0KKwkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQorCQkJCQlQYXJlbnRfVmlldyAJQDIyNTENCisJCQkJCWxvY2F0aW9uICAgCSgxNTY0LCAxMjQpDQorCQkJCQlubGluZXMgICAgIAkxDQorCQkJCQltYXhfd2lkdGggIAk0MTMNCisJCQkJCWp1c3RpZnkgICAgCTANCisJCQkJCWxhYmVsICAgICAgCSJDbGFzc2lmaWVyIikNCisJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KKwkJCQkgICAgcXVpZHUgICAgICAJIjNDQUFFQ0U4MDE5OSINCisJCQkJICAgIHdpZHRoICAgICAgCTQzMQ0KKwkJCQkgICAgaGVpZ2h0ICAgICAJMTU2DQorCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KKwkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6SW50ZXJmYWNlczo6SW50ZXJmYWNlIiBAMjI1Mg0KIAkJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQogCQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQpAQCAtNTIwNTUsNyArNTE4MTUsNyBAQAogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjI1MQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyMjUyDQogCQkJCQlsb2NhdGlvbiAgIAkoMTU1OCwgNDIwKQ0KIAkJCQkJbmxpbmVzICAgICAJMQ0KIAkJCQkJbWF4X3dpZHRoICAJNDE0DQpAQCAtNTIwNjYsNyArNTE4MjYsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk0MzINCiAJCQkJICAgIGhlaWdodCAgICAgCTQ0NA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCi0JCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM2MSIgQDIyNTINCisJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM2MSIgQDIyNTMNCiAJCQkJICAgIGxvY2F0aW9uICAgCSgyMzMxLCA3NzUpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQpAQCAtNTIwODAsOCArNTE4NDAsOCBAQAogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NDNERGMjkwMzlFIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQotCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNjIiIEAyMjUzDQotCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjUyDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNjIiIEAyMjU0DQorCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjUzDQogCQkJCQkgICAgbG9jYXRpb24gICAJKDM1MSwgMTAzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQpAQCAtNTIwOTQsOCArNTE4NTQsOCBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNDQzRERjJCMDNEMyINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAMjI1Mg0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjUxDQorCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNTMNCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjI1Mg0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KIAkJCQkJCSgyMzMxLCA3NzUpDQogCQkJCQkJKDIzMzEsIDczMSkNCkBAIC01MjEwMyw4ICs1MTg2Myw4IEBACiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMzMxLCA3NzUpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5ODEsIDczMSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjU0DQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjUzDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI1NQ0KKwkJCQkJCVBhcmVudF9WaWV3IAlAMjI1NA0KIAkJCQkJCWxvY2F0aW9uICAgCSgyMDIwLCA3ODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQpAQCAtNTIxMjQsOCArNTE4ODQsOCBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCiAJCQkJCQloZWlnaHQgICAgIAk1NA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCi0JCQkJCShvYmplY3QgUm9sZVZpZXcgInJlZGVmaW5lZEludGVyZmFjZSIgQDIyNTUNCi0JCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNTINCisJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlZGVmaW5lZEludGVyZmFjZSIgQDIyNTYNCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNTMNCiAJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzUxLCAxMDMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCkBAIC01MjEzNiw4ICs1MTg5Niw4IEBACiAJCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNTYNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNTUNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjU3DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjU2DQogCQkJCQkJbG9jYXRpb24gICAJKDIyMzIsIDg2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCkBAIC01MjE1OSw4ICs1MTkxOSw4IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNDQzRERjJDMDAwOSINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAMjI1Mg0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjUxDQorCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNTMNCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjI1Mg0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KIAkJCQkJCSgyMzMxLCA3NzUpDQogCQkJCQkJKDIzMzEsIDgxOSkNCkBAIC01MjE2OCw4ICs1MTkyOCw4IEBACiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMzMxLCA3NzUpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5ODEsIDgxOSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjU3DQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjU1DQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI1OA0KKwkJCQkJCVBhcmVudF9WaWV3IAlAMjI1Ng0KIAkJCQkJCWxvY2F0aW9uICAgCSgyMDIwLCA4NzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQpAQCAtNTIxODksOCArNTE5NDksOCBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCiAJCQkJCQloZWlnaHQgICAgIAk1NA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNTgNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNTUNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjU5DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjU2DQogCQkJCQkJbG9jYXRpb24gICAJKDIzMDAsIDkwNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCkBAIC01MjIxMCw4ICs1MTk3MCw4IEBACiAJCQkJCQlwY3REaXN0ICAgIAkwLjE5MDM1NQ0KIAkJCQkJCWhlaWdodCAgICAgCTg2DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQotCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNTQiIEAyMjU5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA4NSwgNDQzKQ0KKwkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzU0IiBAMjI2MA0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEwODUsIDQ2OCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjIyMSw5ICs1MTk4MSw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI2MA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyMjU5DQotCQkJCQlsb2NhdGlvbiAgIAkoMTA4NSwgMzg0KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI2MQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyMjYwDQorCQkJCQlsb2NhdGlvbiAgIAkoMTA4NSwgNDA5KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIyNDYsOSArNTIwMDYsOSBAQAogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0I3MUVBQkYwMEEwIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQotCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZEF0dHJpYnV0ZSIgQDIyNjENCi0JCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTg5LCAtMjA1MykNCisJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkQXR0cmlidXRlIiBAMjI2Mg0KKwkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI2MA0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1ODksIC0yMDI4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyMjU4LDkgKzUyMDE4LDkgQEAKIAkJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQkJY29sb3IgICAgICAJMA0KIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI2Mg0KLQkJCQkJCVBhcmVudF9WaWV3IAlAMjI2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MDcsIDQwMykNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjYzDQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjYyDQorCQkJCQkJbG9jYXRpb24gICAJKDgwNywgNDI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIyODIsMTQgKzUyMDQyLDE0IEBACiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQjcxRUFCRjAwQTIiDQotCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNTkNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjIzNw0KKwkJCQkJICAgIGNsaWVudCAgICAgCUAyMjYwDQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyMzgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg1LCA0NDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYyMSwgNDQzKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjMNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjgxLCA1MDIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg1LCA0NjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYyMSwgNDY4KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjQNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNjINCisJCQkJCQlsb2NhdGlvbiAgIAkoNjgxLCA1MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjMwOCw5ICs1MjA2OCw5IEBACiAJCQkJCQlwY3REaXN0ICAgIAkwLjg3Mjg0NQ0KIAkJCQkJCWhlaWdodCAgICAgCTU5DQogCQkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI2NA0KLQkJCQkJCVBhcmVudF9WaWV3IAlAMjI2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4ODIsIDM1MykNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjY1DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjYyDQorCQkJCQkJbG9jYXRpb24gICAJKDg4MiwgMzc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIzMjksOSArNTIwODksOSBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC40Mzc1MDANCiAJCQkJCQloZWlnaHQgICAgIAk5MQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCi0JCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM1NSIgQDIyNjUNCi0JCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTg5LCAtMjA1MykNCisJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM1NSIgQDIyNjYNCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNjANCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTg5LCAtMjAyOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjM0MSw5ICs1MjEwMSw5IEBACiAJCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjYNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NSwgNDAyKQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjcNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNjYNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NSwgNDI3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIzNjYsMTQgKzUyMTI2LDE0IEBACiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQjcxRUFCRjAwQTEiDQotCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNTkNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjI1MQ0KKwkJCQkJICAgIGNsaWVudCAgICAgCUAyMjYwDQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyNTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDg1LCA0NDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDksIDQ0MykNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjY3DQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjY1DQotCQkJCQkJbG9jYXRpb24gICAJKDE0NTAsIDQwOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwODUsIDQ2OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0OSwgNDY4KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjgNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNjYNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ1MCwgNDM0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTIzOTIsOSArNTIxNTIsOSBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC43ODg3OTMNCiAJCQkJCQloZWlnaHQgICAgIAkzNQ0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjgNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE3NywgNTE3KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNjkNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNjYNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE3NywgNTQyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI0MTYsOCArNTIxNzYsOCBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC4yMDA0MzENCiAJCQkJCQloZWlnaHQgICAgIAk3NA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzU2IiBAMjI2OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwNzMsIDc2NikNCisJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM1NiIgQDIyNzANCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDczLCA3ODYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI0MjcsOSArNTIxODcsOSBAQAogCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJY29sb3IgICAgICAJMA0KIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzANCi0JCQkJCVBhcmVudF9WaWV3IAlAMjI2OQ0KLQkJCQkJbG9jYXRpb24gICAJKDEwNzMsIDcwNykNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzENCisJCQkJCVBhcmVudF9WaWV3IAlAMjI3MA0KKwkJCQkJbG9jYXRpb24gICAJKDEwNzMsIDcyNykNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNDUyLDkgKzUyMjEyLDkgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNCNzFFQUU3MDA1QSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KLQkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzU3IiBAMjI3MQ0KLQkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI2OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTkzNCwgLTk3MCkNCisJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM1NyIgQDIyNzINCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyNzANCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE5MzQsIC05NTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI0NjQsOSArNTIyMjQsOSBAQAogCQkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjcyDQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjcxDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NTMsIDcyNSkNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjczDQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjcyDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NTMsIDc0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNDg4LDE0ICs1MjI0OCwxNCBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQjcxRUFFNzAwNUIiDQotCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNjkNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjI1MQ0KKwkJCQkJICAgIGNsaWVudCAgICAgCUAyMjcwDQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyNTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDczLCA3NjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDksIDc2NikNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjczDQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjcxDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NDAsIDczNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNzMsIDc4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0OSwgNzg2KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzQNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNzINCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ0MCwgNzU0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI1MTQsOSArNTIyNzQsOSBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC43NzEwMDgNCiAJCQkJCQloZWlnaHQgICAgIAkzMw0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzQNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI0MSwgODA4KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzUNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNzINCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI0MSwgODI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI1MzUsOSArNTIyOTUsOSBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC4zNTUwNDINCiAJCQkJCQloZWlnaHQgICAgIAk0Mg0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCi0JCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkT3BlcmF0aW9uIiBAMjI3NQ0KLQkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI2OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTkzNCwgLTk3MCkNCisJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkT3BlcmF0aW9uIiBAMjI3Ng0KKwkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI3MA0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTkzNCwgLTk1MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjU0Nyw5ICs1MjMwNyw5IEBACiAJCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzYNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODE0LCA3MjQpDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI3Nw0KKwkJCQkJCVBhcmVudF9WaWV3IAlAMjI3Ng0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MTQsIDc0NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNTcwLDE0ICs1MjMzMCwxNCBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQjcxRUFFNzAwNUMiDQotCQkJCQkgICAgY2xpZW50ICAgICAJQDIyNjkNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjIzOA0KKwkJCQkJICAgIGNsaWVudCAgICAgCUAyMjcwDQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyMzkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDczLCA3NjYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5OCwgNzY2KQ0KLQkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzcNCi0JCQkJCQlQYXJlbnRfVmlldyAJQDIyNzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjYyLCA4MDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDczLCA3ODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5OCwgNzg2KQ0KKwkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyNzgNCisJCQkJCQlQYXJlbnRfVmlldyAJQDIyNzYNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjYyLCA4MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjU5Niw5ICs1MjM1Niw5IEBACiAJCQkJCQlwY3REaXN0ICAgIAkwLjg2NzM2OA0KIAkJCQkJCWhlaWdodCAgICAgCTQxDQogCQkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI3OA0KLQkJCQkJCVBhcmVudF9WaWV3IAlAMjI3NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MTIsIDY3MSkNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjc5DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjc2DQorCQkJCQkJbG9jYXRpb24gICAJKDgxMiwgNjkxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTI2MTcsOCArNTIzNzcsOCBAQAogCQkJCQkJcGN0RGlzdCAgICAJMC41NDk0NzQNCiAJCQkJCQloZWlnaHQgICAgIAk5Ng0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzU4IiBAMjI3OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE3NjEsIDEwMDIpDQorCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNTgiIEAyMjgwDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc1MywgMTAwMSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjYzMSw5ICs1MjM5MSw5IEBACiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQkQ4OEE0QTAyNTEiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCi0JCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbnRyYWN0IiBAMjI4MA0KLQkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI3OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMTMsIC0yNDYpDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb250cmFjdCIgQDIyODENCisJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIyODANCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjA1LCAtMjQ3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNjQzLDkgKzUyNDAzLDkgQEAKIAkJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQkJY29sb3IgICAgICAJMA0KIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI4MQ0KLQkJCQkJCVBhcmVudF9WaWV3IAlAMjI4MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjU1LCA5MDEpDQorCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI4Mg0KKwkJCQkJCVBhcmVudF9WaWV3IAlAMjI4MQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjQ3LCA5MDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjY2NywxNCArNTI0MjcsMTQgQEAKIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNCRDg4QTU0MDIyRCINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAMjI3OQ0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjUxDQorCQkJCQkgICAgY2xpZW50ICAgICAJQDIyODANCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjI1Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NjEsIDEwMDIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NjEsIDg1MikNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjgyDQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjgwDQotCQkJCQkJbG9jYXRpb24gICAJKDE4MTUsIDkwNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NTMsIDEwMDEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NTMsIDg1MikNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjgzDQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjgxDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MDcsIDkwNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNjkzLDkgKzUyNDUzLDkgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuNjQ1NDU1DQogCQkJCQkJaGVpZ2h0ICAgICAJNTQNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCi0JCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjgzDQotCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjgwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzgsIDk0NikNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjg0DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjgxDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MzAsIDk0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUyNzE0LDkgKzUyNDc0LDkgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuMzgwMDAwDQogCQkJCQkJaGVpZ2h0ICAgICAJMzI0DQogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KLQkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzU5IiBAMjI4NA0KLQkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjI3OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMTMsIC0yNDYpDQorCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNTkiIEAyMjg1DQorCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMjgwDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIwNSwgLTI0NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MjcyOSwxNCArNTI0ODksMTQgQEAKIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNCRDg4QTU1MDA2QyINCi0JCQkJCSAgICBjbGllbnQgICAgIAlAMjI3OQ0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjM5DQorCQkJCQkgICAgY2xpZW50ICAgICAJQDIyODANCisJCQkJCSAgICBzdXBwbGllciAgIAlAMjI0MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NjEsIDEwMDIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NjEsIDExNTIpDQotCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI4NQ0KLQkJCQkJCVBhcmVudF9WaWV3IAlAMjI4NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODA5LCAxMTEwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc1MywgMTAwMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc1MywgMTE1MSkNCisJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjg2DQorCQkJCQkJUGFyZW50X1ZpZXcgCUAyMjg1DQorCQkJCQkJbG9jYXRpb24gICAJKDE4MDEsIDExMDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Mjc1NSwzOSArNTI1MTUsMTEgQEAKIAkJCQkJCXBjdERpc3QgICAgCTAuNzE4MTgyDQogCQkJCQkJaGVpZ2h0ICAgICAJNDgNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCi0JCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6Oktlcm5lbDo6Q2xhc3NpZmllciIgQDIyODYNCi0JCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQotCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KLQkJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCi0JCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzcwLCAxOTApDQotCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCXNpemUgICAgICAgCTEwDQotCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJaXRhbGljcyAgICAJVFJVRQ0KLQkJCQkJdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCXN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQljb2xvciAgICAgIAkwDQotCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjI4Ng0KLQkJCQkJbG9jYXRpb24gICAJKDE1NjQsIDEyNCkNCi0JCQkJCW5saW5lcyAgICAgCTENCi0JCQkJCW1heF93aWR0aCAgCTQxMw0KLQkJCQkJanVzdGlmeSAgICAJMA0KLQkJCQkJbGFiZWwgICAgICAJIkNsYXNzaWZpZXIiKQ0KLQkJCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUVDRTgwMTk5Ig0KLQkJCQkgICAgd2lkdGggICAgICAJNDMxDQotCQkJCSAgICBoZWlnaHQgICAgIAkxNTYNCi0JCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDIyODcNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzMzQyQTE5QzAxRUQiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjI1MQ0KLQkJCQkgICAgc3VwcGxpZXIgICAJQDIyODYNCisJCQkJICAgIGNsaWVudCAgICAgCUAyMjUyDQorCQkJCSAgICBzdXBwbGllciAgIAlAMjI1MQ0KIAkJCQkgICAgbGluZV9zdHlsZSAJMw0KIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzU5LCA0MDgpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc1OSwgMjY4KSkNCkBAIC01Mjg0Myw3ICs1MjU3NSw3IEBACiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI3NEY2MDEyQiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjI4OA0KLQkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjg2DQorCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyNTENCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCiAJCQkJCQkoMjMwNiwgNDExKQ0KIAkJCQkJCSgyMzA2LCAxOTEpDQpAQCAtNTI5MzEsNyArNTI2NjMsNyBAQAogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSI0MEFCNzRGNjAxNTQiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDIyODgNCi0JCQkJCSAgICBzdXBwbGllciAgIAlAMjI1MQ0KKwkJCQkJICAgIHN1cHBsaWVyICAgCUAyMjUyDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQogCQkJCQkJKDIzMDYsIDQxMSkNCiAJCQkJCQkoMjMwNiwgNjI4KQ0KQEAgLTUyOTcwLDYgKzUyNzAyLDcgQEAKIAkJICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQogCQkJKG9iamVjdCBDbGFzcyAiUGVybWlzc2lvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjMzRjVBNkFBMDNDQSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgUGVybWlzc2lvbiBzaWduaWZpZXMgZ3JhbnRpbmcgb2YgYWNjZXNzIHJpZ2h0cyBmcm9tIHRoZSBzdXBwbGllciBtb2RlbCBlbGVtZW50IHRvIGEgY2xpZW50IG1vZGVsIGVsZW1lbnQuIE9yIHRvIHB1dCBpdCBhbm90aGVyIHdheSwgaXQgc2lnbmlmaWVzIHRoYXQgdGhlIGNsaWVudCByZXF1aXJlcyBhY2Nlc3MgdG8gc29tZSBvciBhbGwgb2YgdGhlIGNvbnN0aXR1ZW50IGVsZW1lbnRzIG9mIHRoZSBzdXBwbGllci4gVGhlIHN1cHBsaWVyIGVsZW1lbnQgZ2l2ZXMgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIGFjY2VzcyBzb21lIG9yIGFsbCBvZiBpdHMgY29uc3RpdHVlbnRzIGVsZW1lbnRzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzM0Y1QTZCQjAwREMiDQpAQCAtNTI5NzgsNiArNTI3MTEsNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJVc2FnZSINCiAJCQkgICAgcXVpZCAgICAgICAJIjMzRThGRUY3MDFFMCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgdXNhZ2UgaXMgYSByZWxhdGlvbnNoaXAgaW4gd2hpY2ggb25lIGVsZW1lbnQgcmVxdWlyZXMgYW5vdGhlciBlbGVtZW50IChvciBzZXQgb2YgZWxlbWVudHMpIGZvciBpdHMgZnVsbCBpbXBsZW1lbnRhdGlvbiBvciBvcGVyYXRpb24uIEluIHRoZSBtZXRhbW9kZWwsIGEgVXNhZ2UgaXMgYSBEZXBlbmRlbmN5IGluIHdoaWNoIHRoZSBjbGllbnQgcmVxdWlyZXMgdGhlIHByZXNlbmNlIG9mIHRoZSBzdXBwbGllci4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiMzNFOEZGMDcwMDgyIg0KQEAgLTUyOTg2LDYgKzUyNzIwLDcgQEAKIAkJCSAgICBsYW5ndWFnZSAgIAkibm9uZSIpDQogCQkJKG9iamVjdCBDbGFzcyAiQWJzdHJhY3Rpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzMzg4RkU3RDAwNkUiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBhYnN0cmFjdGlvbiBpcyBhIHJlbGF0aW9uc2hpcCB0aGF0IHJlbGF0ZXMgdHdvIGVsZW1lbnRzIG9yIHNldHMgb2YgZWxlbWVudHMgdGhhdCByZXByZXNlbnQgdGhlIHNhbWUgY29uY2VwdCBhdCBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFic3RyYWN0aW9uIG9yIGZyb20gZGlmZmVyZW50IHZpZXdwb2ludHMuIChTZWUgYWxzbywgdGhlIGRlZmluaXRpb24gb2YgYWJzdHJhdGlvbiBpbiB0aGUgR2xvc3NhcnkuKSBJbiB0aGUgbWV0YW1vZGVsLCBhbiBBYnN0cmFjdGlvbiBpcyBhIERlcGVuZGVuY3kgaW4gd2hpY2ggdGhlcmUgaXMgYSBtYXBwaW5nIGJldHdlZW4gdGhlIHN1cHBsaWVyIGFuZCB0aGUgY2xpZW50LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzMzg4RkU4NzAwNkUiDQpAQCAtNTI5OTQsNiArNTI3MjksNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJEZXBlbmRlbmN5Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiMzI3QTY0NkYwMEU2Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBkZXBlbmRlbmN5IGlzIGEgcmVsYXRpb25zaGlwIHRoYXQgc2lnbmlmaWVzIHRoYXQgYSBzaW5nbGUgb3IgYSBzZXQgb2YgbW9kZWwgZWxlbWVudHMgcmVxdWlyZXMgb3RoZXIgbW9kZWwgZWxlbWVudHMgZm9yIHRoZWlyIHNwZWNpZmljYXRpb24gb3IgaW1wbGVtZW50YXRpb24uIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29tcGxldGUgc2VtYW50aWNzIG9mIHRoZSBkZXBlbmRpbmcgZWxlbWVudHMgaXMgZWl0aGVyIHNlbWFudGljYWxseSBvciBzdHJ1Y3R1cmFsbHkgZGVwZW5kZW50IG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzdXBwbGllciBlbGVtZW50KHMpLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzMzg4RkIwMzAwOTYiDQpAQCAtNTMwMDYsNiArNTI3NDIsNyBAQAogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCiAJCQkob2JqZWN0IENsYXNzICJSZWFsaXphdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjNCNzFGNjQxMDI0NCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkluIHRoZSBtZXRhbW9kZWwsIGEgUmVhbGl6YXRpb24gaXMgYSBzdWJ0eXBlIG9mIERlcGVuZGVuY2llczo6UmVhbGl6YXRpb24uICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNCNzFGNjYyMDI0RSINCkBAIC01MzAxMyw2ICs1Mjc1MCw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzMzg4RkU3RDAwNkUiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiU3Vic3RpdHV0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0NDMEUxMTAwMUM0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBzdWJzdGl0dXRpb24gaXMgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gY2xhc3NpZmllcnMgc2lnbmlmaWVzIHRoYXQgdGhlIHN1YnN0aXR1dGluZ0NsYXNzaWZpZXIgY29tcGxpZXMgd2l0aCB0aGUgY29udHJhY3Qgc3BlY2lmaWVkIGJ5IHRoZSBjb250cmFjdCBjbGFzc2lmaWVyLiBUaGlzIGltcGxpZXMgdGhhdCBpbnN0YW5jZXMgb2YgdGhlIHN1YnN0aXR1dGluZ0NsYXNzaWZpZXIgYXJlIHJ1bnRpbWUgc3Vic3RpdHV0YWJsZSB3aGVyZSBpbnN0YW5jZXMgb2YgdGhlIGNvbnRyYWN0IGNsYXNzaWZpZXIgYXJlIGV4cGVjdGVkLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQ0MwRTExMDAxQzUiDQpAQCAtNTMyNjksNyArNTMwMDcsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkzMDANCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNjciIEAyMzAxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg1NiwgMTc0NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODU2LCAxODUxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzMjg0LDcgKzUzMDIyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb250cmFjdCIgQDIzMDINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIzMDENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODI0LCAtNjgzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4MjQsIC01NzkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTMyOTYsNyArNTMwMzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzAzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzAyDQotCQkJCQkJbG9jYXRpb24gICAJKDIxNzEsIDE2NTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxNzEsIDE3NjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzMyMCwxMSArNTMwNTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzAxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzMDANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODU2LCAxNzQ3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMzAyLCAxNzQ3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg1NiwgMTg1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjMwMiwgMTg1MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzAyDQotCQkJCQkJbG9jYXRpb24gICAJKDIyNjAsIDE3ODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNjAsIDE4ODYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzM0NSw3ICs1MzA4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzAyDQotCQkJCQkJbG9jYXRpb24gICAJKDE5NzYsIDE3MDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5NzYsIDE4MDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzM2Niw3ICs1MzEwNCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNjgiIEAyMzA2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzAxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDgyNCwgLTY4MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODI0LCAtNTc5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzMzgxLDExICs1MzExOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIzMDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjI5OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NTYsIDE3NDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MTAsIDE3NDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODU2LCAxODUxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDEwLCAxODUxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzMDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzMDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NCwgMTc4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NCwgMTg5MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzNDA1LDcgKzUzMTQzLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQyDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNjkiIEAyMzA4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg1NiwgMTk2MikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODU2LCAxODUxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzNDIwLDcgKzUzMTU4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzdWJzdGl0dXRpb24iIEAyMzA5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzA4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC04MTQsIC00OTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04MTQsIC02MDMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTM0MzIsNyArNTMxNzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzEwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzA5DQotCQkJCQkJbG9jYXRpb24gICAJKDE1MzIsIDIwMTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MzIsIDE5MDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzQ1NiwxMSArNTMxOTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzA4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIyOTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODU2LCAxOTYyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDEwLCAxOTYyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg1NiwgMTg1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQxMCwgMTg1MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzExDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzA5DQotCQkJCQkJbG9jYXRpb24gICAJKDE0NTUsIDE5NDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NTUsIDE4MzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzQ4MSw3ICs1MzIxOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzA5DQotCQkJCQkJbG9jYXRpb24gICAJKDE5MTAsIDIwNTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MTAsIDE5NDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzUwMiw3ICs1MzI0MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzdWJzdGl0dXRpbmdDbGFzc2lmaWVyIiBAMjMxMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjMwOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODE0LCAtNDkyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODE0LCAtNjAzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzNTE0LDcgKzUzMjUyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjMxNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjMxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDU3LCAxODczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDU3LCAxNzYyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTM1MzgsMTEgKzUzMjc2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjMwOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzAwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg1NiwgMTk2MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjMwMiwgMTk2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NTYsIDE4NTEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIzMDIsIDE4NTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjMxNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjMxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjU3LCAyMDE2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjU3LCAxOTA1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTM1NjMsNyArNTMzMDEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjMxNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjMxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTc1LCAxOTIxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTc1LCAxODEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTM2ODIsNyArNTM0MjAsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzQsIDEzNjMpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEzNCwgMTIwNikpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzNjUiIEAyMzIyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzM0LCAxMTA5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDczNCwgMTExNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzY5Nyw3ICs1MzQzNSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWFwcGluZyIgQDIzMjMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIzMjINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcwMCwgLTM3MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcwMCwgLTM2NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzcwOSw3ICs1MzQ0Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzMjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzMjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjYxLCAxMTY3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NjEsIDExNzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzczMywxMSArNTM0NzEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzIyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzMTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MzQsIDExMDkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2MSwgMTEwOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDczNCwgMTExNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTYxLCAxMTE2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzMjUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzMjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjAzLCAxMDU3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MDMsIDEwNjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Mzc1OCw3ICs1MzQ5Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzIzDQotCQkJCQkJbG9jYXRpb24gICAJKDU0NCwgMTIyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTQ0LCAxMjMwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTM3NzksNyArNTM1MTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzY2IiBAMjMyNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjMyMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzAwLCAtMzczKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzAwLCAtMzY2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzNzk0LDExICs1MzUzMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIzMjINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjMyMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDczNCwgMTEwOSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTA4LCAxMTA5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzM0LCAxMTE2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MDgsIDExMTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjMyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjMyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NzMsIDEwNTYpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3MywgMTA2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzOTExLDcgKzUzNjQ5LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMjMxDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiTCIgQDIzMzYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDY2LCA3MTYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA2NiwgNjQ4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTUzOTI3LDcgKzUzNjY1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGllbnREZXBlbmRlbmN5IiBAMjMzNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjMzNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2OTQsIDE1OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjk0LCA5MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01MzkzOSw3ICs1MzY3Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzMzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzMzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIzMiwgNjgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjMyLCA2MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Mzk2NCwxMSArNTM3MDIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzM2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzMzANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDY2LCA3MTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NDAsIDcxNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNjYsIDY0OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ0MCwgNjQ4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzMzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzMzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQwMywgNzcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDAzLCA3MDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Mzk4OSw3ICs1MzcyNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGllbnQiIEAyMzQwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzM2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY5NCwgMTU4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2OTQsIDkwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0MDAxLDcgKzUzNzM5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjM0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjksIDY3NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzY5LCA2MDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDAyNiwxMSArNTM3NjQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzM2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzMzUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDY2LCA3MTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY5MiwgNzE2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA2NiwgNjQ4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2OTIsIDY0OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzQyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzQwDQotCQkJCQkJbG9jYXRpb24gICAJKDc2MiwgNzcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NjIsIDcwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0MDUwLDE0ICs1Mzc4OCwxNCBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTQNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM2NCIgQDIzNDMNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDY2LCA1NjYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA2NiwgNjQ4KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNBRkYwMjFCMDAwMCINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic3VwcGxpZXJEZXBlbmRlbmN5IiBAMjM0NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjM0Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2OTQsIDgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDY5NCwgOTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQwNjksNyArNTM4MDcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzQ1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzQ0DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMDcsIDUyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIwNywgNjEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQwOTQsMTEgKzUzODMyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjM0Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzMwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA2NiwgNTY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDQwLCA1NjYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDY2LCA2NDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NDAsIDY0OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzQ0DQotCQkJCQkJbG9jYXRpb24gICAJKDEzOTEsIDYxMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM5MSwgNjkzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQxMTksNyArNTM4NTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic3VwcGxpZXIiIEAyMzQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzQzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY5NCwgOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjk0LCA5MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDEzMSw3ICs1Mzg2OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzNDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzNDcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODAwLCA1MjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDgwMCwgNjA4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQxNTYsMTEgKzUzODk0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjM0Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzM1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA2NiwgNTY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2OTIsIDU2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNjYsIDY0OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjkyLCA2NDgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM0OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjM0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NjIsIDU5MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzYyLCA2NzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDI5OSw2ICs1NDAzNyw3IEBACiAJCSAgICBsb2dpY2FsX21vZGVscyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJCShvYmplY3QgQ2xhc3MgIkdlbmVyYWxpemF0aW9uU2V0Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0Q3NjU1QUQwMjlGIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiRWFjaCBHZW5lcmFsaXphdGlvbiBpcyBhIGJpbmFyeSByZWxhdGlvbnNoaXAgdGhhdCByZWxhdGVzIGEgc3BlY2lmaWMgQ2xhc3NpZmllciB0byBhIG1vcmUgZ2VuZXJhbCBDbGFzc2lmaWVyIChpLmUuLCBhIHN1YmNsYXNzKS4gRWFjaCBHZW5lcmFsaXphdGlvblNldCBkZWZpbmVzIGEgcGFydGljdWxhciBzZXQgb2YgR2VuZXJhbGl6YXRpb24gcmVsYXRpb25zaGlwcyB0aGF0IGRlc2NyaWJlIHRoZSB3YXkgaW4gd2hpY2ggYSBzcGVjaWZpYyBDbGFzc2lmaWVyICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNENzY1NjY1MDJFMSINCkBAIC01NDMwNywxMiArNTQwNDYsMTAgQEAKIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0NvdmVyaW5nIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNENzY1NjI0MDE2MSINCi0JCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCIpDQorCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzRGlzam9pbnQiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0Q3NjU2MzQwMjIyIg0KLQkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIikpKQ0KKwkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNENzY1NUM0MDA3QiINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KQEAgLTU0NDIzLDIyICs1NDE2MCw2IEBACiAJCQkJCWxhYmVsICAgICAgCSJHZW5lcmFsaXphdGlvblNldCIpDQogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRDc2NTVBRDAyOUYiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyMzU3DQotCQkJCQlsb2NhdGlvbiAgIAkoODgxLCAxMjQ1KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkyDQotCQkJCQltYXhfd2lkdGggIAkzMTUpDQogCQkJCSAgICB3aWR0aCAgICAgIAk0MDYNCiAJCQkJICAgIGhlaWdodCAgICAgCTIyNCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM3MCIgQDIzNTgNCkBAIC01NDc5OCw3ICs1NDUxOSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTQ0MA0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI2NSIgQDIzNzUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjA1LCAyMTUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIwNSwgMzMwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0ODEzLDcgKzU0NTM0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJnZW5lcmFsaXphdGlvbiIgQDIzNzYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIzNzUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwNTUsIC00NzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDU1LCAtMzU4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0ODI1LDcgKzU0NTQ2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjM3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDE0LCAxNTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MTQsIDI3MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQ4NDksMTEgKzU0NTcwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjM3NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzc0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIwNSwgMjE1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjAyLCAyMTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA1LCAzMzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MDIsIDMzMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzc2DQotCQkJCQkJbG9jYXRpb24gICAJKDE1NjUsIDE2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU2NSwgMjgxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDg3NCw3ICs1NDU5NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzc2DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MTAsIDI2OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQxMCwgMzg0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDg5NSw3ICs1NDYxNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzcGVjaWZpYyIgQDIzODANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDIzNzUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwNTUsIC00NzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDU1LCAtMzU4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0OTA3LDcgKzU0NjI4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjM4MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5ODUsIDE2MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTg1LCAyNzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0OTMxLDExICs1NDY1MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDIzNzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjM3Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDUsIDIxNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODA5LCAyMTUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA1LCAzMzApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgwOSwgMzMwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODgzLCAxNTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDg4MywgMjczKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NDk1Niw3ICs1NDY3Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzgzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzgwDQotCQkJCQkJbG9jYXRpb24gICAJKDk5NiwgMjkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTYsIDQwNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTQ5NzksNyArNTQ3MDAsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNzYNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDI2NiIgQDIzODQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjA1LCA0ODApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIwNSwgMzMwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU0OTk0LDcgKzU0NzE1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJnZW5lcmFsIiBAMjM4NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjM4NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjE5NSwgLTIwOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxOTUsIC0zNTgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTUwMDYsNyArNTQ3MjcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyMzg1DQotCQkJCQkJbG9jYXRpb24gICAJKDk5MiwgNDMxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTIsIDI4MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTUwMzAsMTEgKzU0NzUxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjM4NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyMzczDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIwNSwgNDgwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MDksIDQ4MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDUsIDMzMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODA5LCAzMzApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM4Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjM4NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4ODUsIDQzNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODg1LCAyODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU1MDU1LDcgKzU0Nzc2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzODUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTkwLCA1MTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDk5MCwgMzY5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NTA3Niw3ICs1NDc5Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQyNjciIEAyMzg5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzg0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMTk1LCAtMjA4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjE5NSwgLTM1OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NTA4OCw3ICs1NDgwOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzOTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDIzODkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQxOCwgNDQyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDE4LCAyOTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU1MTEzLDggKzU0ODM0LDggQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyMzg0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDIzNzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA1LCA0ODApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MDIsIDQ4MCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDUsIDMzMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTYwMiwgMzMwKSkpKQ0KIAkJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyMzkxDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q3NjVBNDIwMUU4Ig0KQEAgLTU1MTc3LDYgKzU0ODk4LDcgQEAKIAkJICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQogCQkJKG9iamVjdCBDbGFzcyAiQXNzb2NpYXRpb25DbGFzcyINCiAJCQkgICAgcXVpZCAgICAgICAJIjMzNjU3OTkwMDI2QyINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkluIHRoZSBtZXRhbW9kZWwsIGFuIEFzc29jaWF0aW9uQ2xhc3MgaXMgYSBkZWNsYXJhdGlvbiBvZiBhIHNlbWFudGljIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIENsYXNzaWZpZXJzLCB3aGljaCBoYXMgYSBzZXQgb2YgZmVhdHVyZXMgb2YgaXRzIG93bi4gQXNzb2NpYXRpb25DbGFzcyBpcyBib3RoIGFuIEFzc29jaWF0aW9uIGFuZCBhIENsYXNzLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzM0ZGNTU5QjAwOEMiDQpAQCAtNTUzNzcsMTMgKzU1MDk5LDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTEzMQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM3MiIgQDI0MDINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5NjYsIDQ1OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5NjYsIDQ3MSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzM0RCRTUwNTAwMjgiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImFzc29jaWF0aW9uRW5kIiBAMjQwMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQwMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODk0LCAtNjg4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODk0LCAtNjc2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU1Mzk1LDcgKzU1MTE3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQwNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQwMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjI0LCA0MDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMjQsIDQyMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU1NDE5LDExICs1NTE0MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0MDINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQwMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk2NiwgNDU5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDQ5LCA0NTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NjYsIDQ3MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ0OSwgNDcxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0MDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0MDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM3NSwgNTE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzc1LCA1MzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NTQ0NCw3ICs1NTE2Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDA2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNDAzDQotCQkJCQkJbG9jYXRpb24gICAJKDEyODIsIDU2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI4MiwgNTc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTU0NjUsNyArNTUxODcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicXVhbGlmaWVyIiBAMjQwNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQwMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODk0LCAtNjg4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODk0LCAtNjc2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU1NDc3LDcgKzU1MTk5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQwOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MjMsIDM5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjIzLCA0MDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NTUwMSwxMSArNTUyMjMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNDAyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0MDENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NjYsIDQ1OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDgzLCA0NTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NjYsIDQ3MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDgzLCA0NzEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQwOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQwNw0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NDEsIDUxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTQxLCA1MjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NTUyNiw3ICs1NTI0OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDEwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNDA3DQotCQkJCQkJbG9jYXRpb24gICAJKDczNywgNTcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzcsIDU4MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2MTAyLDEzICs1NTgyNCwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzczIiBAMjQzMw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwMDksIDc4NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDA5LCA3ODYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0UwMjUyRTUwMEM3Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNzQiIEAyNDM0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDMzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMzMsIDI4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjMzLCAzMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2MTIwLDcgKzU1ODQyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQzNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQzNA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NTYsIDc0MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzU2LCA3NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2MTQ1LDExICs1NTg2NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0MzMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQzMQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMDksIDc4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjkxLCA3ODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDA5LCA3ODYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY5MSwgNzg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0MzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0MzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzIzLCA4MzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDcyMywgODQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NjE3MCw3ICs1NTg5Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZE1lbWJlciIgQDI0MzcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI0MzMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIzMywgMjgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMzMsIDMwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTYxODIsNyArNTU5MDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNDM3DQotCQkJCQkJbG9jYXRpb24gICAJKDExMDgsIDc0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEwOCwgNzQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NjIwNiwxMSArNTU5MjgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNDMzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0MzINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDA5LCA3ODQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzMjcsIDc4NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMDksIDc4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMyNywgNzg2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0MzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0MzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI4OCwgODM0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjg4LCA4MzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2MjMxLDcgKzU1OTUzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0MzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA2MSwgODI3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDYxLCA4MjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2MjgxLDcgKzU2MDAzLDYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0luZGlyZWN0bHlJbnN0YW50aWF0ZWQiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UwMjU3MzgwM0FFIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJSZWFsaXphdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMDI1NzJBMDAxRSINCkBAIC01NjUwNCw3ICs1NjIyNSw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzUzLCA3MzgpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzUzLCA1MjQpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzc1IiBAMjQ0Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI4NywgMTI3MykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzMzYsIDEyNzMpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NjUxOSw3ICs1NjI0MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3JlcXVpcmVkIiBAMjQ0Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ0Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzksIDU5NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwLCA1OTUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NjUzMSw3ICs1NjI1Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NDcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk0LCAxMzgyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNDMsIDEzODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2NTU1LDExICs1NjI3NiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0NDYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQ0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI4NywgMTI3MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjg3LCAxNDczKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzM2LCAxMjczKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMzYsIDE0NzMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ0OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzQsIDE0NTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4MywgMTQ1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY1ODAsMTYgKzU2MzAxLDE2IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNzYiIEAyNDUwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDQ2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03OSwgNTk1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzAsIDU5NSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFMDI1Nzg5MDA4OSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjQ0Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNDQ0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg3LCAxMjczKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODcsIDEwNzQpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMzYsIDEyNzMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMzNiwgMTA3NCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM3NyIgQDI0NTENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgzODQsIDEyNzMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzM2LCAxMjczKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY2MDQsNyArNTYzMjUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9wcm92aWRlZCIgQDI0NTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI0NTENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTgsIDU5NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwLCA1OTUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NjYxNiw3ICs1NjMzNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTYzLCAxNDEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MTUsIDE0MTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2NjQwLDExICs1NjM2MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0NTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQ0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM4NCwgMTI3MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg0LCAxNDczKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzM2LCAxMjczKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMzYsIDE0NzMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ1NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ1Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgzMzEsIDE0NTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4MywgMTQ1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY2NjUsMTQgKzU2Mzg2LDE0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzNzgiIEAyNDU1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDUxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE4LCA1OTUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zMCwgNTk1KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0UwMjU3QjkwMkQ3Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNDUxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0NDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzODQsIDEyNzMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM4NCwgMTA3NCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMzNiwgMTI3MykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzM2LCAxMDc0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpDbGFzc2lmaWVyIiBAMjQ1Ng0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCiAJCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQpAQCAtNTY3MzAsNyArNTY0NTEsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzc5IiBAMjQ1OA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEwMjQsIDk1NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDI0LCA5NjYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Njc0NSw3ICs1NjQ2Niw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVhbGl6YXRpb24iIEAyNDU5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDU4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY1OCwgMjAwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NTgsIDIxMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2NzU3LDcgKzU2NDc4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjc4LCA5MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNzgsIDkyMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY3ODEsMTEgKzU2NTAyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjQ1OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNDU3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAyNCwgOTU2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDIzLCA5NTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDI0LCA5NjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MjMsIDk2NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDYxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNDU5DQotCQkJCQkJbG9jYXRpb24gICAJKDEzODMsIDEwMTApDQorCQkJCQkJbG9jYXRpb24gICAJKDEzODMsIDEwMjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2ODA2LDcgKzU2NTI3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE4MiwgMTAzMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE4MiwgMTA0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY4MzAsNyArNTY1NTEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWJzdHJhY3Rpb24iIEAyNDYzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDU4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY1OCwgMjAwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NTgsIDIxMCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2ODQyLDcgKzU2NTYzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ2NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ2Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NTQsIDkxNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzU0LCA5MjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2ODY2LDExICs1NjU4NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0NTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQ0NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMjQsIDk1NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjI1LCA5NTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDI0LCA5NjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYyNSwgOTY2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NjUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjY1LCAxMDEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NjUsIDEwMjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2ODkxLDcgKzU2NjEyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODEyLCAxMDUyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MTIsIDEwNjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2OTE1LDcgKzU2NjM2LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTk2DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzODAiIEAyNDY3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg3NywgOTUwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4NzcsIDk2NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU2OTMwLDcgKzU2NjUxLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZWFsaXppbmdDbGFzc2lmaWVyIiBAMjQ2OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ2Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNTksIDY4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNTksIDgyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY5NDIsNyArNTY2NjMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDY5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNDY4DQotCQkJCQkJbG9jYXRpb24gICAJKDE5MTAsIDkyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkxMCwgOTM0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Njk2NiwxMSArNTY2ODcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNDY3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0NTYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODc3LCA5NTApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxMDYsIDk1MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NzcsIDk2NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjEwNiwgOTY0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjA4MiwgMTAwNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA4MiwgMTAxOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTY5OTEsNyArNTY3MTIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ3MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ2OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTM0LCAxMDA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTM0LCAxMDE5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NzAxNSwxNCArNTY3MzYsMTQgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM4MSIgQDI0NzINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI0NjcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzU5LCA2OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzU5LCA4MikNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFMDI1ODlGMDBGNyINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjQ2Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNDU3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg3NywgOTUwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjQ5LCA5NTApKSkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NzcsIDk2NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0OSwgOTY0KSkpKSkpDQogCQkJKG9iamVjdCBDbGFzc0RpYWdyYW0gIkNvbm5lY3RvcnMiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTAyNTk1NTAwNEYiDQogCQkJICAgIHRpdGxlICAgICAgCSJDb25uZWN0b3JzIg0KQEAgLTU3MTIxLDcgKzU2ODQyLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEyDQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzgyIiBAMjQ3Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg4OCwgNjA2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg4OCwgNjE3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTcxMzYsNyArNTY4NTcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbnRyYWN0IiBAMjQ3Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ3Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzOTAsIC0yNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzkwLCAtMTMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NzE0OCw3ICs1Njg2OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NzgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTAyMCwgNTY3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDIwLCA1NzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU3MTcyLDExICs1Njg5MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0NzYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQ3NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg4OCwgNjA2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTE2LCA2MDYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4ODgsIDYxNykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTExNiwgNjE3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0NzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0NzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA5MywgNjYwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDkzLCA2NzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU3MTk3LDcgKzU2OTE4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM4MyIgQDI0ODANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI0NzYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzkwLCAtMjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDM5MCwgLTEzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTcyMTIsMTEgKzU2OTMzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjQ3Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNDc1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODg4LCA2MDYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY2MSwgNjA2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODg4LCA2MTcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY2MSwgNjE3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0ODENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0ODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzA3LCA1NTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDcwNywgNTYzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NzQ4NywxMiArNTcyMDgsMTAgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJkZXBsb3ltZW50TG9jYXRpb24iDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UwMjNDNjEwMjYzIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCiAJCQkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZXhlY3V0aW9uTG9jYXRpb24iDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UwMjNDNjgwMkZBIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDM4NCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMDIzQ0I1MDAwQiINCkBAIC01NzY0MSw3ICs1NzM2MCw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzODQiIEAyNDk2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIwNSwgNjc1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEyMDUsIDY4MikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU3NjU2LDcgKzU3Mzc1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb25maWd1cmF0aW9uIiBAMjQ5Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ5Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NTUsIC0zKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NTUsIDQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01NzY2OCw3ICs1NzM4Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI0OTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI0OTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM3NSwgNjQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzc1LCA2NDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU3NjkyLDExICs1NzQxMSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI0OTYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjQ5Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMDUsIDY3NSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0OSwgNjc1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIwNSwgNjgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ5LCA2ODIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ5OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ5Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTE1LCA3MjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MTUsIDczNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTc3MTcsNyArNTc0MzYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjUwMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjQ5Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjcwLCA3MTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNzAsIDcyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTc3MzgsNyArNTc0NTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzg1IiBAMjUwMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ5Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NTUsIC0zKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NTUsIDQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01Nzc1MywxMSArNTc0NzIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNDk2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI0OTUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjA1LCA2NzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2MiwgNjc1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIwNSwgNjgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NjIsIDY4MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTAxDQotCQkJCQkJbG9jYXRpb24gICAJKDkxMiwgNzI5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MTIsIDczNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTg1MjcsNyArNTgyNDYsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwMDQsIDQ0MikNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDA0LCAzMDYpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzg2IiBAMjUzMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIyODcsIDQ3NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMjg3LCA0ODEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODU0Miw3ICs1ODI2MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZGVwbG95ZWRBcnRpZmFjdCIgQDI1MzINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI1MzENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTExMSwgLTUxNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTExMSwgLTUwOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4NTU0LDcgKzU4MjczLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjUzMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjUzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzA3LCA0MjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzMDcsIDQzMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTg1NzgsMTEgKzU4Mjk3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjUzMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNTI4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI4NywgNDc2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDI5LCA0NzYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjg3LCA0ODEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0MjksIDQ4MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTM0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTMyDQotCQkJCQkJbG9jYXRpb24gICAJKDI0MTQsIDUzMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQxNCwgNTM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODYwMyw3ICs1ODMyMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTMyDQotCQkJCQkJbG9jYXRpb24gICAJKDIzMjIsIDM2MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjMyMiwgMzY1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODYyNyw3ICs1ODM0Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQzODciIEAyNTM2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNTMxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDExMTEsIC01MTQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDExMTEsIC01MDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODY0MiwxMSArNTgzNjEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTMxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1MjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjg3LCA0NzYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxNDYsIDQ3NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyODcsIDQ4MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE0NiwgNDgxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1MzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1MzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjE3MywgNTE1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTczLCA1MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4NzI0LDcgKzU4NDQzLDcgQEAKIAkJCQkgICAgc3VwcGxpZXIgICAJQDI1MjUNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTApDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzODgiIEAyNTQxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU0MiwgNDY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE1NDIsIDQ4MSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4NzM5LDcgKzU4NDU4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXBsb3ltZW50IiBAMjU0Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjU0MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NjYsIDE5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NjYsIDMxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTg3NTEsNyArNTg0NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTQzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTQyDQotCQkJCQkJbG9jYXRpb24gICAJKDE3NTYsIDQyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc1NiwgNDQxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODc3NSwxMSArNTg0OTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTQxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1MjkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQyLCA0NjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NzQsIDQ2OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NDIsIDQ4MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg3NCwgNDgxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1NDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1NDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg1MywgNTExKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODUzLCA1MjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4ODAwLDcgKzU4NTE5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1NDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1NDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY1MywgMzY3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjUzLCAzNzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4ODI0LDcgKzU4NTQzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImxvY2F0aW9uIiBAMjU0Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjU0MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2NjYsIDE5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg2NjYsIDMxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTg4MzYsNyArNTg1NTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTQ2DQotCQkJCQkJbG9jYXRpb24gICAJKDEyNzEsIDQyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI3MSwgNDQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01ODg2MCwxMSArNTg1NzksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTQxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1MzkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQyLCA0NjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMTEsIDQ2OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NDIsIDQ4MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIxMSwgNDgxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1NDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI0NSwgNTIzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjQ1LCA1MzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU4ODg1LDcgKzU4NjA0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1NDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQxMiwgNTM5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDEyLCA1NTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5MTgwLDggKzU4ODk5LDcgQEAKIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJmaWxlTmFtZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTAzMzBENDAyMTEiDQotCQkJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEIxMDNDMyIpKSkNCisJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiTWFuaWZlc3RhdGlvbiINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMDQ1MzNGMDJEQSINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KQEAgLTU5NzcxLDcgKzU5NDg5LDcgQEAKIAkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDgwLCA4ODApDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc3OCwgMTAwMikpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM5NyIgQDI1ODkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMjg3LCAxMDI3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEyODcsIDEwMjApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01OTc4Niw3ICs1OTUwNCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAibWFuaWZlc3RhdGlvbiIgQDI1OTANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI1ODkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQxLCAyNjMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc0MSwgMjU2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTk3OTgsNyArNTk1MTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTkxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTkwDQotCQkJCQkJbG9jYXRpb24gICAJKDEzMzYsIDk5MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMzNiwgOTgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01OTgyMiwxMSArNTk1NDAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTg5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1NzENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjg3LCAxMDI3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDgxLCAxMDI3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI4NywgMTAyMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ4MSwgMTAyMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTkyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTkwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NjAsIDEwNjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NjAsIDEwNTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5ODQ3LDcgKzU5NTY1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1OTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI1OTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyMSwgOTEyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzIxLCA5MDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5ODcxLDcgKzU5NTg5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM5OCIgQDI1OTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI1ODkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQxLCAyNjMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc0MSwgMjU2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTk4ODMsNyArNTk2MDEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTk0DQotCQkJCQkJbG9jYXRpb24gICAJKDExMzQsIDk4NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEzNCwgOTc5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01OTkwOCwxMSArNTk2MjYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTg5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1ODINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjg3LCAxMDI3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDk0LCAxMDI3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI4NywgMTAyMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA5NCwgMTAyMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNTk2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTk0DQotCQkJCQkJbG9jYXRpb24gICAJKDExNjIsIDEwNzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNjIsIDEwNjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5OTMyLDcgKzU5NjUwLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ4DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MDEiIEAyNTk3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTAzNCwgMTE5NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDE5LCAxMTk3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNTk5NDQsNyArNTk2NjIsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjU5OA0KIAkJCQkJUGFyZW50X1ZpZXcgCUAyNTk3DQotCQkJCQlsb2NhdGlvbiAgIAkoMTAzNCwgMTEzOCkNCisJCQkJCWxvY2F0aW9uICAgCSgxMDE5LCAxMTM4KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC01OTk2OSw3ICs1OTY4Nyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRBdHRyaWJ1dGUiIEAyNTk5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNTk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ4OCwgNDM1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NzMsIDQzNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTU5OTgxLDcgKzU5Njk5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjYwMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjU5OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTc5LCAxMjc4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTY0LCAxMjc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDAwNSwxMSArNTk3MjMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNTk3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1ODANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDM0LCAxMTk3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDM0LCAxMzM3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAxOSwgMTE5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAxOSwgMTMzNykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTk5DQotCQkJCQkJbG9jYXRpb24gICAJKDk5OSwgMTI5NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTg0LCAxMjk3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDAzMCw3ICs1OTc0OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNTk5DQotCQkJCQkJbG9jYXRpb24gICAJKDE0OTQsIDEzMTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NzksIDEzMTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMDUxLDcgKzU5NzY5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQwMiIgQDI2MDMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI1OTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDg4LCA0MzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQ3MywgNDM1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjAwNjMsNyArNTk3ODEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNjAzDQotCQkJCQkJbG9jYXRpb24gICAJKDExNDMsIDEwODUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMjgsIDEwODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMDg4LDExICs1OTgwNiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI1OTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjU4Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMzQsIDExOTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMzQsIDEwNTcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDE5LCAxMTk3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDE5LCAxMDU4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTcwLCAxMDkyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NTUsIDEwOTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMTEzLDcgKzU5ODMxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIyOSwgMTE3NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIxNCwgMTE3NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjAxMzcsNyArNTk4NTUsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMTk1DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQzOTkiIEAyNjA3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoODE4LCAxMTk3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDgzNiwgMTE5NykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMTUyLDcgKzU5ODcwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZE9wZXJhdGlvbiIgQDI2MDgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2MDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjcyLCA0MzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI5MCwgNDM1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjAxNjQsNyArNTk4ODIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjA5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNjA4DQotCQkJCQkJbG9jYXRpb24gICAJKDY2MCwgMTI5OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjc4LCAxMjk4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDE4OCwxMSArNTk5MDYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNjA3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1ODENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTgsIDExOTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgxOCwgMTMzNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgzNiwgMTE5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODM2LCAxMzM3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MDgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODYyLCAxMzEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4ODAsIDEzMTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMjEzLDcgKzU5OTMxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MDgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDI4LCAxMjQ3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NDYsIDEyNDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMjM0LDcgKzU5OTUyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQwMCIgQDI2MTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2MDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjcyLCA0MzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI5MCwgNDM1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjAyNDYsNyArNTk5NjQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNjEyDQotCQkJCQkJbG9jYXRpb24gICAJKDQ1NiwgMTA0MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDc0LCAxMDQwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MDI3MSwxMSArNTk5ODksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNjA3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI1ODINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTgsIDExOTcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgxOCwgMTA1OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgzNiwgMTE5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODM2LCAxMDU3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoODc3LCAxMDk0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4OTUsIDEwOTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwMjk2LDcgKzYwMDE0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2MTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI2MTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTc0LCAxMTE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1OTIsIDExMTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYwNjY2LDYgKzYwMzg0LDcgQEAKIAkgICAgbG9naWNhbF9tb2RlbHMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCShvYmplY3QgQ2xhc3MgIkFjdG9yIg0KIAkJICAgIHF1aWQgICAgICAgCSIzMzY1NkMwQjAxN0MiDQorCQkgICAgZG9jdW1lbnRhdGlvbiAJIkFuIEFjdG9yIG1vZGVscyBhIHR5cGUgb2Ygcm9sZSBwbGF5ZWQgYnkgYW4gZW50aXR5IHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIHN1YmplY3QgKGUuZy4sIGJ5IGV4Y2hhbmdpbmcgc2lnbmFscyBhbmQgZGF0YSksICINCiAJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkgICAgcXVpZCAgICAgICAJIjNEMjg5OTk1MDE4RiINCkBAIC02MDcxMSw2ICs2MDQzMCw3IEBACiAJCQkgICAgbmFtZSAgICAgICAJIkNvbnN0cnVjdG9ySXMiDQogCQkJICAgIHZhbHVlICAgICAgCSgiQ3Rvcl9TZXQiIDYyKSkpDQogCQkgICAgcXVpZCAgICAgICAJIjM1RkRENjgzMDIxQyINCisJCSAgICBkb2N1bWVudGF0aW9uIAkiVGhpcyByZWxhdGlvbnNoaXAgc3BlY2lmaWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgbWF5IGJlIGV4dGVuZGVkIGJ5IHRoZSBiZWhhdmlvciBvZiBhbm90aGVyICh1c3VhbGx5IHN1cHBsZW1lbnRhcnkpIHVzZSBjYXNlLiBUaGUgZXh0ZW5zaW9uIHRha2VzIHBsYWNlIGF0IG9uZSBvciBtb3JlIHNwZWNpZmljIGV4dGVuc2lvbiBwb2ludHMgZGVmaW5lZCBpbiB0aGUgZXh0ZW5kZWQgdXNlIGNhc2UuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgdGhlIGV4dGVuZGVkIHVzZSBjYXNlIGlzIGRlZmluZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlIGFuZCBpcyBtZWFuaW5nZnVsIGluZGVwZW5kZW50bHkgb2YgdGhlIGV4dGVuZGluZyB1c2UgY2FzZS4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBleHRlbmRpbmcgdXNlIGNhc2UgdHlwaWNhbGx5IGRlZmluZXMgYmVoYXZpb3IgdGhhdCBtYXkgbm90IG5lY2Vzc2FyaWx5IGJlIG1lYW5pbmdmdWwgYnkgaXRzZWxmLiBJbnN0ZWFkLCB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlIGRlZmluZXMgYSBzZXQgb2YgbW9kdWxhciBiZWhhdmlvciBpbmNyZW1lbnRzIHRoYXQgYXVnbWVudCBhbiBleGVjdXRpb24gb2YgdGhlIGV4dGVuZGVkIHVzZSBjYXNlIHVuZGVyIHNwZWNpZmljIGNvbmRpdGlvbnMuIE5vdGUgdGhhdCB0aGUgc2FtZSBleHRlbmRpbmcgdXNlIGNhc2UgY2FuIGV4dGVuZCBtb3JlIHRoYW4gb25lIHVzZSBjYXNlLiBGdXJ0aGVybW9yZSwgYW4gZXh0ZW5kaW5nIHVzZSBjYXNlIG1heSBpdHNlbGYgYmUgZXh0ZW5kZWQuICINCiAJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldCkNCkBAIC02MDczNiw2ICs2MDQ1Niw3IEBACiAJCSAgICBsYW5ndWFnZSAgIAkiSmF2YSIpDQogCQkob2JqZWN0IENsYXNzICJVc2VDYXNlIg0KIAkJICAgIHF1aWQgICAgICAgCSIzQzFGMDI0NDAwNDIiDQorCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgVXNlQ2FzZSBpcyBhIGtpbmQgb2YgYmVoYXZpb3JlZCBjbGFzc2lmaWVyIHRoYXQgcmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIG9mIGFuIG9mZmVyZWQgYmVoYXZpb3IuIEVhY2ggdXNlIGNhc2Ugc3BlY2lmaWVzIHNvbWUgYmVoYXZpb3IsIHBvc3NpYmx5IGluY2x1ZGluZyB2YXJpYW50cywgdGhhdCB0aGUgc3ViamVjdCBjYW4gcGVyZm9ybSBpbiBjb2xsYWJvcmF0aW9uIHdpdGggb25lIG9yIG1vcmUgYWN0b3JzLiBVc2UgY2FzZXMgZGVmaW5lIHRoZSBvZmZlcmVkIGJlaGF2aW9yIG9mIHRoZSBzdWJqZWN0IHdpdGhvdXQgcmVmZXJlbmNlIHRvIGl0cyBpbnRlcm5hbCBzdHJ1Y3R1cmUuIFRoZXNlIGJlaGF2aW9ycywgaW52b2x2aW5nIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBhY3RvciBhbmQgdGhlIHN1YmplY3QsIG1heSByZXN1bHQgaW4gY2hhbmdlcyB0byB0aGUgc3RhdGUgb2YgdGhlIHN1YmplY3QgYW5kIGNvbW11bmljYXRpb25zIHdpdGggaXRzIGVudmlyb25tZW50LiBBIHVzZSBjYXNlIGNhbiBpbmNsdWRlIHBvc3NpYmxlIHZhcmlhdGlvbnMgb2YgaXRzIGJhc2ljIGJlaGF2aW9yLCBpbmNsdWRpbmcgZXhjZXB0aW9uYWwgYmVoYXZpb3IgYW5kIGVycm9yIGhhbmRsaW5nLiBUaGUgc3ViamVjdCBvZiBhIHVzZSBjYXNlIGNvdWxkIGJlIGEgcGh5c2ljYWwgc3lzdGVtIG9yIGFueSBvdGhlciBlbGVtZW50IHRoYXQgbWF5IGhhdmUgYmVoYXZpb3IsIHN1Y2ggYXMgYSBjb21wb25lbnQsIHN1YnN5c3RlbSBvciBjbGFzcy4gRWFjaCB1c2UgY2FzZSBzcGVjaWZpZXMgYSB1bml0IG9mIHVzZWZ1bCBmdW5jdGlvbmFsaXR5IHRoYXQgdGhlIHN1YmplY3QgcHJvdmlkZXMgdG8gaXRzIHVzZXJzLCBpLmUuLCBhIHNwZWNpZmljIHdheSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdWJqZWN0LiBUaGlzIGZ1bmN0aW9uYWxpdHksIHdoaWNoIGlzIGluaXRpYXRlZCBieSBhbiBhY3RvciwgbXVzdCBhbHdheXMgYmUgY29tcGxldGVkIGZvciB0aGUgdXNlIGNhc2UgdG8gY29tcGxldGUuIEl0IGlzIGRlZW1lZCBjb21wbGV0ZSBpZiwgYWZ0ZXIgaXRzIGV4ZWN1dGlvbiwgdGhlIHN1YmplY3Qgd2lsbCBiZSBpbiBhIHN0YXRlIGluIHdoaWNoIG5vIGZ1cnRoZXIgaW5wdXRzIG9yIGFjdGlvbnMgYXJlIGV4cGVjdGVkIGFuZCB0aGUgdXNlIGNhc2UgY2FuIGJlIGluaXRpYXRlZCBhZ2FpbiBvciBpbiBhbiBlcnJvciBzdGF0ZS4gVXNlIGNhc2VzIGNhbiBiZSB1c2VkIGJvdGggZm9yIHNwZWNpZmljYXRpb24gb2YgdGhlIChleHRlcm5hbCkgcmVxdWlyZW1lbnRzIG9uIGEgc3ViamVjdCBhbmQgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IG9mZmVyZWQgYnkgYSBzdWJqZWN0LiBNb3Jlb3ZlciwgdGhlIHVzZSBjYXNlcyBhbHNvIHN0YXRlIHRoZSByZXF1aXJlbWVudHMgdGhlIHNwZWNpZmllZCBzdWJqZWN0IHBvc2VzIG9uIGl0cyBlbnZpcm9ubWVudCBieSBkZWZpbmluZyBob3cgdGhleSBzaG91bGQgaW50ZXJhY3Qgd2l0aCB0aGUgc3ViamVjdCBzbyB0aGF0IGl0IHdpbGwgYmUgYWJsZSB0byBwZXJmb3JtIGl0cyBzZXJ2aWNlcy4gVGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgY2FuIGJlIGRlc2NyaWJlZCBieSBhIHNwZWNpZmljYXRpb24gdGhhdCBpcyBzb21lIGtpbmQgb2YgQmVoYXZpb3IgKHRocm91Z2ggaXRzIG93bmVkQmVoYXZpb3IgcmVsYXRpb25zaGlwKSwgc3VjaCBhcyBpbnRlcmFjdGlvbnMsIGFjdGl2aXRpZXMsIGFuZCBzdGF0ZSBtYWNoaW5lcywgb3IgYnkgcHJlLWNvbmRpdGlvbnMgYW5kIHBvc3QtY29uZGl0aW9ucyBhcyB3ZWxsIGFzIGJ5IG5hdHVyYWwgbGFuZ3VhZ2UgdGV4dCB3aGVyZSBhcHByb3ByaWF0ZS4gSXQgbWF5IGFsc28gYmUgZGVzY3JpYmVkIGluZGlyZWN0bHkgdGhyb3VnaCBhIENvbGxhYm9yYXRpb24gdGhhdCB1c2VzIHRoZSB1c2UgY2FzZSBhbmQgaXRzIGFjdG9ycyBhcyB0aGUgY2xhc3NpZmllcnMgdGhhdCB0eXBlIGl0cyBwYXJ0cy4gV2hpY2ggb2YgdGhlc2UgdGVjaG5pcXVlcyB0byB1c2UgZGVwZW5kcyBvbiB0aGUgbmF0dXJlIG9mIHRoZSB1c2UgY2FzZSBiZWhhdmlvciBhcyB3ZWxsIGFzIG9uIHRoZSBpbnRlbmRlZCByZWFkZXIuIFRoZXNlIGRlc2NyaXB0aW9ucyBjYW4gYmUgY29tYmluZWQuIEFuIGV4YW1wbGUgb2YgYSB1c2UgY2FzZSB3aXRoIGFuIGFzc29jaWF0ZWQgc3RhdGUgbWFjaGluZSBkZXNjcmlwdGlvbiBpcyBzaG93biBpbiBGaWd1cmUgNDA1LiAiDQogCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJICAgIHF1aWQgICAgICAgCSIzQzFGMDI2RDAwNEIiDQpAQCAtNjA3NDMsNiArNjA0NjQsNyBAQAogCQkJICAgIHF1aWR1ICAgICAgCSIzQ0MwRDVGRjAyRDMiKSkpDQogCQkob2JqZWN0IENsYXNzICJFeHRlbnNpb25Qb2ludCINCiAJCSAgICBxdWlkICAgICAgIAkiM0M4QzlFNEIwMjg0Ig0KKwkJICAgIGRvY3VtZW50YXRpb24gCSJBbiBFeHRlbnNpb25Qb2ludCBpcyBhIGZlYXR1cmUgb2YgYSB1c2UgY2FzZSB0aGF0IGlkZW50aWZpZXMgYSBwb2ludCB3aGVyZSB0aGUgYmVoYXZpb3Igb2YgYSB1c2UgY2FzZSBjYW4gYmUgYXVnbWVudGVkIHdpdGggZWxlbWVudHMgb2YgYW5vdGhlciAoZXh0ZW5kaW5nKSB1c2UgY2FzZS4gIg0KIAkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCSAgICBxdWlkICAgICAgIAkiM0M4Q0EwRDYwMTQwIg0KQEAgLTYwNzUwLDYgKzYwNDcyLDcgQEAKIAkJCSAgICBxdWlkdSAgICAgIAkiM0NBQjAwNzEwMUQ3IikpKQ0KIAkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllciINCiAJCSAgICBxdWlkICAgICAgIAkiM0QyQ0NBNzQwMkRGIg0KKwkJICAgIGRvY3VtZW50YXRpb24gCSJFeHRlbmRzIGEgY2xhc3NpZmllciB3aXRoIHRoZSBjYXBhYmlsaXR5IHRvIG93biB1c2UgY2FzZXMuIEFsdGhvdWdoIHRoZSBvd25pbmcgY2xhc3NpZmllciB0eXBpY2FsbHkgcmVwcmVzZW50cyB0aGUgc3ViamVjdCB0byB3aGljaCB0aGUgb3duZWQgdXNlIGNhc2VzIGFwcGx5LCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY2FzZS4gSW4gcHJpbmNpcGxlLCB0aGUgc2FtZSB1c2UgY2FzZSBjYW4gYmUgYXBwbGllZCB0byAiDQogCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJICAgIHF1aWQgICAgICAgCSIzRDJDQ0FGRTAwQUQiDQpAQCAtNjEwODgsNyArNjA4MTEsNTEgQEAKIAkJCSAgICB3aWR0aCAgICAgIAkzMzgNCiAJCQkgICAgaGVpZ2h0ICAgICAJMTI0DQogCQkJICAgIGFubm90YXRpb24gCTgpDQotCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6Oktlcm5lbDo6Q29uc3RyYWludCIgQDI2MzgNCisJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpDbGFzc2lmaWVyIiBAMjYzOA0KKwkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KKwkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KKwkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KKwkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQorCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCisJCQkgICAgbG9jYXRpb24gICAJKDI0MzAsIDE3NCkNCisJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQorCQkJCXNpemUgICAgICAgCTEwDQorCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCisJCQkJYm9sZCAgICAgICAJRkFMU0UNCisJCQkJaXRhbGljcyAgICAJVFJVRQ0KKwkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KKwkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KKwkJCQljb2xvciAgICAgIAkwDQorCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQorCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQorCQkJCVBhcmVudF9WaWV3IAlAMjYzOA0KKwkJCQlsb2NhdGlvbiAgIAkoMjEzNCwgMTE5KQ0KKwkJCQlubGluZXMgICAgIAkxDQorCQkJCW1heF93aWR0aCAgCTU5Mg0KKwkJCQlqdXN0aWZ5ICAgIAkwDQorCQkJCWxhYmVsICAgICAgCSJDbGFzc2lmaWVyIikNCisJCQkgICAgaWNvbl9zdHlsZSAJIkxhYmVsIg0KKwkJCSAgICBmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KKwkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUVDRTgwMTk5Ig0KKwkJCSAgICB3aWR0aCAgICAgIAk2MTANCisJCQkgICAgaGVpZ2h0ICAgICAJMTM1DQorCQkJICAgIGFubm90YXRpb24gCTgpDQorCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjYzOQ0KKwkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQorCQkJICAgIHF1aWR1ICAgICAgCSIzRDI4OTk5NTAxOEYiDQorCQkJICAgIGNsaWVudCAgICAgCUAyNjM2DQorCQkJICAgIHN1cHBsaWVyICAgCUAyNjM4DQorCQkJICAgIGxpbmVfc3R5bGUgCTMNCisJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNjQyLCA3MjEpDQorCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjQyLCAyNDApKQ0KKwkJCShvYmplY3QgSW5oZXJpdFRyZWVWaWV3ICIiIEAyNjQwDQorCQkJICAgIGxvY2F0aW9uICAgCSgxNzgyLCAxNzYxKQ0KKwkJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KKwkJCSAgICBzdXBwbGllciAgIAlAMjYzNw0KKwkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJKDE3ODIsIDE3NjEpDQorCQkJCSgxNzgyLCAxODgyKSkpDQorCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkNsYXNzZXM6Oktlcm5lbDo6Q29uc3RyYWludCIgQDI2NDENCiAJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCiAJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCkBAIC02MTEwNSw3ICs2MDg3Miw3IEBACiAJCQkJY29sb3IgICAgICAJMA0KIAkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQlQYXJlbnRfVmlldyAJQDI2MzgNCisJCQkJUGFyZW50X1ZpZXcgCUAyNjQxDQogCQkJCWxvY2F0aW9uICAgCSg1ODUsIDE1MzApDQogCQkJCW5saW5lcyAgICAgCTENCiAJCQkJbWF4X3dpZHRoICAJMjcwDQpAQCAtNjExMTYsNyArNjA4ODMsNyBAQAogCQkJICAgIHdpZHRoICAgICAgCTI4OA0KIAkJCSAgICBoZWlnaHQgICAgIAkxMzENCiAJCQkgICAgYW5ub3RhdGlvbiAJOCkNCi0JCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6VXNlQ2FzZXM6OkluY2x1ZGUiIEAyNjM5DQorCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OlVzZUNhc2VzOjpJbmNsdWRlIiBAMjY0Mg0KIAkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KIAkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQpAQCAtNjExMzIsNyArNjA4OTksNyBAQAogCQkJCWNvbG9yICAgICAgCTANCiAJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJUGFyZW50X1ZpZXcgCUAyNjM5DQorCQkJCVBhcmVudF9WaWV3IAlAMjY0Mg0KIAkJCQlsb2NhdGlvbiAgIAkoMTg5MSwgMTE0OCkNCiAJCQkJbmxpbmVzICAgICAJMQ0KIAkJCQltYXhfd2lkdGggIAkzNzANCkBAIC02MTE0NCw3ICs2MDkxMSwzNCBAQAogCQkJICAgIHdpZHRoICAgICAgCTM4OA0KIAkJCSAgICBoZWlnaHQgICAgIAkxMzgNCiAJCQkgICAgYW5ub3RhdGlvbiAJOCkNCi0JCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6VXNlQ2FzZXM6OkV4dGVuc2lvblBvaW50IiBAMjY0MA0KKwkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI2NDMNCisJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQorCQkJCXNpemUgICAgICAgCTEwDQorCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCisJCQkJYm9sZCAgICAgICAJRkFMU0UNCisJCQkJaXRhbGljcyAgICAJRkFMU0UNCisJCQkJdW5kZXJsaW5lICAJRkFMU0UNCisJCQkJc3RyaWtlICAgICAJRkFMU0UNCisJCQkJY29sb3IgICAgICAJMA0KKwkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KKwkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQorCQkJICAgIHF1aWR1ICAgICAgCSIzNjM0Q0YyQjAyQzYiDQorCQkJICAgIGNsaWVudCAgICAgCUAyNjQyDQorCQkJICAgIHN1cHBsaWVyICAgCUAyNjMyDQorCQkJICAgIGxpbmVfc3R5bGUgCTMNCisJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDI1LCAxMjc0KQ0KKwkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjAyNSwgMTM5NSkNCisJCQkgICAgZHJhd1N1cHBsaWVyIAlAMjYzMykNCisJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyNjQ0DQorCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCisJCQkgICAgcXVpZHUgICAgICAJIjQwMTFBOUREMDMzRiINCisJCQkgICAgY2xpZW50ICAgICAJQDI2NDINCisJCQkgICAgc3VwcGxpZXIgICAJQDI2MzcNCisJCQkgICAgbGluZV9zdHlsZSAJMw0KKwkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxMDIsIDEyNzUpDQorCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTAyLCAxNzYxKQ0KKwkJCSAgICBkcmF3U3VwcGxpZXIgCUAyNjQwKQ0KKwkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpVc2VDYXNlczo6RXh0ZW5zaW9uUG9pbnQiIEAyNjQ1DQogCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQogCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCkBAIC02MTE2MCw3ICs2MDk1NCw3IEBACiAJCQkJY29sb3IgICAgICAJMA0KIAkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQlQYXJlbnRfVmlldyAJQDI2NDANCisJCQkJUGFyZW50X1ZpZXcgCUAyNjQ1DQogCQkJCWxvY2F0aW9uICAgCSgyODEsIDc1MikNCiAJCQkJbmxpbmVzICAgICAJMQ0KIAkJCQltYXhfd2lkdGggIAkzMjYNCkBAIC02MTE3Miw3ICs2MDk2Niw3IEBACiAJCQkgICAgd2lkdGggICAgICAJMzQ0DQogCQkJICAgIGhlaWdodCAgICAgCTE1MA0KIAkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KLQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI2NDENCisJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyNjQ2DQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjExODQsMTIgKzYwOTc4LDEyIEBACiAJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiM0M4Q0EwRDYwMTQwIg0KLQkJCSAgICBjbGllbnQgICAgIAlAMjY0MA0KKwkJCSAgICBjbGllbnQgICAgIAlAMjY0NQ0KIAkJCSAgICBzdXBwbGllciAgIAlAMjYzNA0KIAkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDQ2LCA3NDEpDQogCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NDYsIDUwOCkpDQotCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OlVzZUNhc2VzOjpFeHRlbmQiIEAyNjQyDQorCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OlVzZUNhc2VzOjpFeHRlbmQiIEAyNjQ3DQogCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQogCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCkBAIC02MTIwNSw3ICs2MDk5OSw3IEBACiAJCQkJY29sb3IgICAgICAJMA0KIAkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KLQkJCQlQYXJlbnRfVmlldyAJQDI2NDINCisJCQkJUGFyZW50X1ZpZXcgCUAyNjQ3DQogCQkJCWxvY2F0aW9uICAgCSgxMzMwLCAxMTQyKQ0KIAkJCQlubGluZXMgICAgIAkxDQogCQkJCW1heF93aWR0aCAgCTM3Ng0KQEAgLTYxMjE2LDggKzYxMDEwLDggQEAKIAkJCSAgICBxdWlkdSAgICAgIAkiMzVGREQ2ODMwMjFDIg0KIAkJCSAgICB3aWR0aCAgICAgIAkzOTQNCiAJCQkgICAgaGVpZ2h0ICAgICAJMTM4KQ0KLQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTAiIEAyNjQzDQotCQkJICAgIGxvY2F0aW9uICAgCSgxMjg3LCAxNTY3KQ0KKwkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTAiIEAyNjQ4DQorCQkJICAgIGxvY2F0aW9uICAgCSg5NjcsIDEyNjkpDQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjEyMzAsOSArNjEwMjQsOSBAQAogCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkgICAgcXVpZHUgICAgICAJIjNDOEM5RjAwMDI3QSINCiAJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQotCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbmRpdGlvbiIgQDI2NDQNCi0JCQkJICAgIFBhcmVudF9WaWV3IAlAMjY0Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIxOSwgLTQwNykNCisJCQkJKG9iamVjdCBSb2xlVmlldyAiY29uZGl0aW9uIiBAMjY0OQ0KKwkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjQ4DQorCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwMSwgLTcwNSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTI0Miw5ICs2MTAzNiw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY0NQ0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjQ0DQotCQkJCQlsb2NhdGlvbiAgIAkoMTAxMSwgMTYwOCkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2NTANCisJCQkJCVBhcmVudF9WaWV3IAlAMjY0OQ0KKwkJCQkJbG9jYXRpb24gICAJKDY5MSwgMTMxMCkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxMjY2LDE0ICs2MTA2MCwxOCBAQAogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0M4QzlGMDIwMDA2Ig0KLQkJCQkgICAgY2xpZW50ICAgICAJQDI2NDMNCi0JCQkJICAgIHN1cHBsaWVyICAgCUAyNjM4DQorCQkJCSAgICBjbGllbnQgICAgIAlAMjY0OA0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDENCisJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJKDk2NywgMTI2OSkNCisJCQkJCSg4NjQsIDEyNjkpDQorCQkJCQkoODY0LCAxNTE5KSkNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI4NywgMTU2NykNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NjQsIDE1NjcpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjQ2DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NDQNCi0JCQkJCWxvY2F0aW9uICAgCSg5MzgsIDE1MTgpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk2NywgMTI2OSkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NjQsIDE1MTkpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjUxDQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NDkNCisJCQkJCWxvY2F0aW9uICAgCSg2MTgsIDEyMjApDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTI5Miw5ICs2MTA5MCw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuODI0NjU4DQogCQkJCQloZWlnaHQgICAgIAk1MA0KIAkJCQkJb3JpZW50YXRpb24gCTEpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjQ3DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NDQNCi0JCQkJCWxvY2F0aW9uICAgCSgxMTE4LCAxNjYyKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY1Mg0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjQ5DQorCQkJCQlsb2NhdGlvbiAgIAkoNzk4LCAxMzY0KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjEzMTMsOSArNjExMTEsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjQwMDAwMA0KIAkJCQkJaGVpZ2h0ICAgICAJOTUNCiAJCQkJCW9yaWVudGF0aW9uIAkwKSkNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDExIiBAMjY0OA0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjQzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjE5LCAtNDA3KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0MTEiIEAyNjUzDQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2NDgNCisJCQkJICAgIGxvY2F0aW9uICAgCSgtMTAxLCAtNzA1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxMzI4LDE4ICs2MTEyNiwxNCBAQAogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0M4QzlGMDIwMUFCIg0KLQkJCQkgICAgY2xpZW50ICAgICAJQDI2NDMNCi0JCQkJICAgIHN1cHBsaWVyICAgCUAyNjQyDQotCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCSgxMjg3LCAxNTY3KQ0KLQkJCQkJKDE0MTIsIDE1NjcpDQotCQkJCQkoMTQxMiwgMTI2OSkpDQorCQkJCSAgICBjbGllbnQgICAgIAlAMjY0OA0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDcNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTI4NywgMTU2NykNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDEyLCAxMjY5KQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY0OQ0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjQ4DQotCQkJCQlsb2NhdGlvbiAgIAkoMTMyNCwgMTMxNCkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzNCwgMjUzOCkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODM5LCAyNDY5KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY1NA0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjUzDQorCQkJCQlsb2NhdGlvbiAgIAkoMTAwNCwgMTAxNikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxMzU4LDggKzYxMTUyLDggQEAKIAkJCQkJcGN0RGlzdCAgICAJMC44OTM0NDMNCiAJCQkJCWhlaWdodCAgICAgCTg5DQogCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCi0JCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDEyIiBAMjY1MA0KLQkJCSAgICBsb2NhdGlvbiAgIAkoNzQyLCAxMTc1KQ0KKwkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTIiIEAyNjU1DQorCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDIzNTApDQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjEzNzIsOSArNjExNjYsOSBAQAogCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkgICAgcXVpZHUgICAgICAJIjNEMjg5NjM1MDI5QiINCiAJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQotCQkJCShvYmplY3QgUm9sZVZpZXcgImV4dGVuc2lvbkxvY2F0aW9uIiBAMjY1MQ0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjUwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIwNiwgMjE1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbnNpb25Mb2NhdGlvbiIgQDI2NTYNCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjY1NQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKC01NywgMTM5MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTM4NCw5ICs2MTE3OCw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY1Mg0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjUxDQotCQkJCQlsb2NhdGlvbiAgIAkoNjYzLCA5NDQpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjU3DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NTYNCisJCQkJCWxvY2F0aW9uICAgCSg4MTIsIDIxMTkpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTQwNywxOCArNjEyMDEsMjAgQEAKIAkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0QyODk2MzgwMjRGIg0KLQkJCQkgICAgY2xpZW50ICAgICAJQDI2NTANCi0JCQkJICAgIHN1cHBsaWVyICAgCUAyNjQwDQorCQkJCSAgICBjbGllbnQgICAgIAlAMjY1NQ0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDUNCiAJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJKDg5MSwgMjM1MCkNCisJCQkJCSg3NDIsIDIzNTApDQogCQkJCQkoNzQyLCAxMTc1KQ0KIAkJCQkJKDQ0OCwgMTE3NSkNCiAJCQkJCSg0NDgsIDg5MSkpDQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0MiwgMTE3NSkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODkxLCAyMzUwKQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ0OCwgODkxKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY1Mw0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjUxDQotCQkJCQlsb2NhdGlvbiAgIAkoMzU5LCA5MzgpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjU4DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NTYNCisJCQkJCWxvY2F0aW9uICAgCSg1MDgsIDIxMTMpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTQzNyw5ICs2MTIzMyw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuOTE4Njk5DQogCQkJCQloZWlnaHQgICAgIAk5MA0KIAkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjU0DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NTENCi0JCQkJCWxvY2F0aW9uICAgCSgzMzAsIDk5NSkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2NTkNCisJCQkJCVBhcmVudF9WaWV3IAlAMjY1Ng0KKwkJCQkJbG9jYXRpb24gICAJKDQ3OSwgMjE3MCkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxNDU4LDkgKzYxMjU0LDkgQEAKIAkJCQkJcGN0RGlzdCAgICAJMC44MjAzODANCiAJCQkJCWhlaWdodCAgICAgCTExOQ0KIAkJCQkJb3JpZW50YXRpb24gCTApKQ0KLQkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbnNpb24iIEAyNjU1DQotCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2NTANCi0JCQkJICAgIGxvY2F0aW9uICAgCSgtMjA2LCAyMTUpDQorCQkJCShvYmplY3QgUm9sZVZpZXcgImV4dGVuc2lvbiIgQDI2NjANCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjY1NQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKC01NywgMTM5MCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTQ3MiwxNCArNjEyNjgsMTggQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRDI4OTYzODAyNTkiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjY1MA0KLQkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDINCisJCQkJICAgIGNsaWVudCAgICAgCUAyNjU1DQorCQkJCSAgICBzdXBwbGllciAgIAlAMjY0Nw0KKwkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkoODkxLCAyMzUwKQ0KKwkJCQkJKDE3MTMsIDIzNTApDQorCQkJCQkoMTcxMywgMTI2OSkpDQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0MiwgMTE3NSkNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzIxLCAxMTc1KQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY1Ng0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjU1DQotCQkJCQlsb2NhdGlvbiAgIAkoMTI2OCwgMTIyOSkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODkxLCAyMzUwKQ0KKwkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MTMsIDEyNjkpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjYxDQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NjANCisJCQkJCWxvY2F0aW9uICAgCSgxNDE3LCAyNDA0KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjE0OTgsNzcgKzYxMjk4LDYgQEAKIAkJCQkJcGN0RGlzdCAgICAJMC45MDg3OTUNCiAJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCi0JCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpDbGFzc2lmaWVyIiBAMjY1Nw0KLQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KLQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KLQkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KLQkJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQotCQkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCi0JCQkgICAgbG9jYXRpb24gICAJKDI0MzAsIDE3NCkNCi0JCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCXNpemUgICAgICAgCTEwDQotCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJaXRhbGljcyAgICAJVFJVRQ0KLQkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQljb2xvciAgICAgIAkwDQotCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQotCQkJCVBhcmVudF9WaWV3IAlAMjY1Nw0KLQkJCQlsb2NhdGlvbiAgIAkoMjEzNCwgMTE5KQ0KLQkJCQlubGluZXMgICAgIAkxDQotCQkJCW1heF93aWR0aCAgCTU5Mg0KLQkJCQlqdXN0aWZ5ICAgIAkwDQotCQkJCWxhYmVsICAgICAgCSJDbGFzc2lmaWVyIikNCi0JCQkgICAgaWNvbl9zdHlsZSAJIkxhYmVsIg0KLQkJCSAgICBmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KLQkJCSAgICBxdWlkdSAgICAgIAkiM0NBQUVDRTgwMTk5Ig0KLQkJCSAgICB3aWR0aCAgICAgIAk2MTANCi0JCQkgICAgaGVpZ2h0ICAgICAJMTM1DQotCQkJICAgIGFubm90YXRpb24gCTgpDQotCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjY1OA0KLQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQotCQkJICAgIHF1aWR1ICAgICAgCSIzRDI4OTk5NTAxOEYiDQotCQkJICAgIGNsaWVudCAgICAgCUAyNjM2DQotCQkJICAgIHN1cHBsaWVyICAgCUAyNjU3DQotCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNjQyLCA3MjEpDQotCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjQyLCAyNDApKQ0KLQkJCShvYmplY3QgSW5oZXJpdFRyZWVWaWV3ICIiIEAyNjU5DQotCQkJICAgIGxvY2F0aW9uICAgCSgxNzgyLCAxNzYxKQ0KLQkJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KLQkJCSAgICBzdXBwbGllciAgIAlAMjYzNw0KLQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJKDE3ODIsIDE3NjEpDQotCQkJCSgxNzgyLCAxODgyKSkpDQotCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjY2MA0KLQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJc2l6ZSAgICAgICAJMTANCi0JCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQljb2xvciAgICAgIAkwDQotCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCi0JCQkgICAgcXVpZHUgICAgICAJIjM2MzRDRjJCMDJDNiINCi0JCQkgICAgY2xpZW50ICAgICAJQDI2MzkNCi0JCQkgICAgc3VwcGxpZXIgICAJQDI2MzINCi0JCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwMjUsIDEyNzQpDQotCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDI1LCAxMzk1KQ0KLQkJCSAgICBkcmF3U3VwcGxpZXIgCUAyNjMzKQ0KLQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI2NjENCi0JCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KLQkJCSAgICBxdWlkdSAgICAgIAkiNDAxMUE5REQwMzNGIg0KLQkJCSAgICBjbGllbnQgICAgIAlAMjYzOQ0KLQkJCSAgICBzdXBwbGllciAgIAlAMjYzNw0KLQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjEwMiwgMTI3NSkNCi0JCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxMDIsIDE3NjEpDQotCQkJICAgIGRyYXdTdXBwbGllciAJQDI2NTkpDQogCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjY2Mg0KIAkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJc2l6ZSAgICAgICAJMTANCkBAIC02MTU4MSw3ICs2MTMxMCw3IEBACiAJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiMzYzNENGMjcwMzY2Ig0KLQkJCSAgICBjbGllbnQgICAgIAlAMjY0Mg0KKwkJCSAgICBjbGllbnQgICAgIAlAMjY0Nw0KIAkJCSAgICBzdXBwbGllciAgIAlAMjYzMg0KIAkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU3NSwgMTI2OSkNCkBAIC02MTU5MCwxMyArNjEzMTksNTEgQEAKIAkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI2NjMNCiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiNDAxMUE5RjUwMjcxIg0KLQkJCSAgICBjbGllbnQgICAgIAlAMjY0Mg0KKwkJCSAgICBjbGllbnQgICAgIAlAMjY0Nw0KIAkJCSAgICBzdXBwbGllciAgIAlAMjYzNw0KIAkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ5NiwgMTI2OCkNCiAJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0OTYsIDE3NjEpDQotCQkJICAgIGRyYXdTdXBwbGllciAJQDI2NTkpDQotCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OlVzZUNhc2VzOjpVc2VDYXNlIiBAMjY2NA0KKwkJCSAgICBkcmF3U3VwcGxpZXIgCUAyNjQwKQ0KKwkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpVc2VDYXNlczo6Q2xhc3NpZmllciIgQDI2NjQNCisJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCisJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCisJCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KKwkJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQorCQkJICAgIGxvY2F0aW9uICAgCSgxNzY0LCA0MDgpDQorCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KKwkJCQlzaXplICAgICAgIAkxMA0KKwkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQorCQkJCWJvbGQgICAgICAgCUZBTFNFDQorCQkJCWl0YWxpY3MgICAgCVRSVUUNCisJCQkJdW5kZXJsaW5lICAJRkFMU0UNCisJCQkJc3RyaWtlICAgICAJRkFMU0UNCisJCQkJY29sb3IgICAgICAJMA0KKwkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KKwkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KKwkJCQlQYXJlbnRfVmlldyAJQDI2NjQNCisJCQkJbG9jYXRpb24gICAJKDE1NTgsIDM1NCkNCisJCQkJbmxpbmVzICAgICAJMQ0KKwkJCQltYXhfd2lkdGggIAk0MTMNCisJCQkJanVzdGlmeSAgICAJMA0KKwkJCQlsYWJlbCAgICAgIAkiQ2xhc3NpZmllciIpDQorCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KKwkJCSAgICBxdWlkdSAgICAgIAkiM0QyQ0NBNzQwMkRGIg0KKwkJCSAgICB3aWR0aCAgICAgIAk0MzENCisJCQkgICAgaGVpZ2h0ICAgICAJMTMyKQ0KKwkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI2NjUNCisJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KKwkJCSAgICBxdWlkdSAgICAgIAkiM0QyQ0NBRkUwMEFEIg0KKwkJCSAgICBjbGllbnQgICAgIAlAMjY2NA0KKwkJCSAgICBzdXBwbGllciAgIAlAMjYzOA0KKwkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJKDE3NDMsIDM0MikNCisJCQkJKDE3NDMsIDE2OCkNCisJCQkJKDIxMjUsIDE2OCkpDQorCQkJICAgIGxpbmVfc3R5bGUgCTMNCisJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzQzLCAzNDIpDQorCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTI1LCAxNjgpKQ0KKwkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpVc2VDYXNlczo6VXNlQ2FzZSIgQDI2NjYNCiAJCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCiAJCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCiAJCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KQEAgLTYxNjEyLDcgKzYxMzc5LDcgQEAKIAkJCQljb2xvciAgICAgIAkwDQogCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQotCQkJCVBhcmVudF9WaWV3IAlAMjY2NA0KKwkJCQlQYXJlbnRfVmlldyAJQDI2NjYNCiAJCQkJbG9jYXRpb24gICAJKDEyNTMsIDczNCkNCiAJCQkJbmxpbmVzICAgICAJMQ0KIAkJCQltYXhfd2lkdGggIAkxMDIyDQpAQCAtNjE2MjQsOCArNjEzOTEsOCBAQAogCQkJICAgIHdpZHRoICAgICAgCTEwNDANCiAJCQkgICAgaGVpZ2h0ICAgICAJMTQwDQogCQkJICAgIGFubm90YXRpb24gCTgpDQotCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQwMyIgQDI2NjUNCi0JCQkgICAgbG9jYXRpb24gICAJKDIxMjksIDk5OSkNCisJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDAzIiBAMjY2Nw0KKwkJCSAgICBsb2NhdGlvbiAgIAkoMjA3NiwgOTk5KQ0KIAkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxNjM4LDkgKzYxNDA1LDkgQEAKIAkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJICAgIHF1aWR1ICAgICAgCSIzQzFGMDVDODAxQUUiDQogCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KLQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbmNsdWRpbmdDYXNlIiBAMjY2Ng0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjY1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzkxLCAtOTc1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbmNsdWRpbmdDYXNlIiBAMjY2OA0KKwkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjY3DQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzM4LCAtOTc1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxNjUwLDkgKzYxNDE3LDkgQEAKIAkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjY3DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NjYNCi0JCQkJCWxvY2F0aW9uICAgCSgxOTY5LCA5MDcpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjY5DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NjgNCisJCQkJCWxvY2F0aW9uICAgCSgxOTE2LCA5MDcpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTY3NCwxNCArNjE0NDEsMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDMUYwNUM5MDA4RCINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjY1DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2NjcNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY2DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxMjksIDk5OSkNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTI5LCA4NjIpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjY4DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NjYNCi0JCQkJCWxvY2F0aW9uICAgCSgyMTgzLCA5MDYpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwNzYsIDk5OSkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDc2LCA4NjIpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjcwDQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NjgNCisJCQkJCWxvY2F0aW9uICAgCSgyMTMwLCA5MDYpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTcwMCw5ICs2MTQ2Nyw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuNjg0MjExDQogCQkJCQloZWlnaHQgICAgIAk1NA0KIAkJCQkJb3JpZW50YXRpb24gCTEpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjY5DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NjYNCi0JCQkJCWxvY2F0aW9uICAgCSgxOTc4LCA5NjEpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjcxDQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NjgNCisJCQkJCWxvY2F0aW9uICAgCSgxOTI1LCA5NjEpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTcyMSw5ICs2MTQ4OCw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuMjc3MzcyDQogCQkJCQloZWlnaHQgICAgIAkxNTINCiAJCQkJCW9yaWVudGF0aW9uIAkwKSkNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiaW5jbHVkZSIgQDI2NzANCi0JCQkJICAgIFBhcmVudF9WaWV3IAlAMjY2NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDc5MSwgLTk3NSkNCisJCQkJKG9iamVjdCBSb2xlVmlldyAiaW5jbHVkZSIgQDI2NzINCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjY2Nw0KKwkJCQkgICAgbG9jYXRpb24gICAJKDczOCwgLTk3NSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTczMyw5ICs2MTUwMCw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY3MQ0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjcwDQotCQkJCQlsb2NhdGlvbiAgIAkoMjAxOCwgMTA1MCkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2NzMNCisJCQkJCVBhcmVudF9WaWV3IAlAMjY3Mg0KKwkJCQkJbG9jYXRpb24gICAJKDE5NjUsIDEwNTApDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTc1NywxNCArNjE1MjQsMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDMUYwNUM5MDA5NyINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjY1DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjYzOQ0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2NjcNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjQyDQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxMjksIDk5OSkNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTI5LCAxMTM3KQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY3Mg0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjcwDQotCQkJCQlsb2NhdGlvbiAgIAkoMjE2NCwgMTExMCkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA3NiwgOTk5KQ0KKwkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwNzYsIDExMzcpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc0DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NzINCisJCQkJCWxvY2F0aW9uICAgCSgyMTExLCAxMTEwKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjE3ODMsOSArNjE1NTAsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjgxMjAzMA0KIAkJCQkJaGVpZ2h0ICAgICAJMzUNCiAJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY3Mw0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjcwDQotCQkJCQlsb2NhdGlvbiAgIAkoMTg5MCwgMTEwMikNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2NzUNCisJCQkJCVBhcmVudF9WaWV3IAlAMjY3Mg0KKwkJCQkJbG9jYXRpb24gICAJKDE4MzcsIDExMDIpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTgwNCw4ICs2MTU3MSw4IEBACiAJCQkJCXBjdERpc3QgICAgCTAuNzQ0NTI2DQogCQkJCQloZWlnaHQgICAgIAkyNDANCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MDQiIEAyNjc0DQotCQkJICAgIGxvY2F0aW9uICAgCSgyMjY2LCA5OTkpDQorCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQwNCIgQDI2NzYNCisJCQkgICAgbG9jYXRpb24gICAJKDIyNzIsIDk5OSkNCiAJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCXNpemUgICAgICAgCTEwDQogCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTgxOCw5ICs2MTU4NSw5IEBACiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiM0MxRjA1REYwMjUyIg0KIAkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiYWRkaXRpb24iIEAyNjc1DQotCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2NzQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5MjgsIC05NzUpDQorCQkJCShvYmplY3QgUm9sZVZpZXcgImFkZGl0aW9uIiBAMjY3Nw0KKwkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjc2DQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTM0LCAtOTc1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYxODMwLDkgKzYxNTk3LDkgQEAKIAkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc2DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NzUNCi0JCQkJCWxvY2F0aW9uICAgCSgyMzYzLCA5MzApDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc4DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NzcNCisJCQkJCWxvY2F0aW9uICAgCSgyMzY5LCA5MzApDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTg1NCwxNCArNjE2MjEsMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDMUYwNUUwMDBFQiINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjc0DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2NzYNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY2DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNjYsIDk5OSkNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjcyLCA4NjIpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc3DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NzUNCi0JCQkJCWxvY2F0aW9uICAgCSgyMjI1LCA5MDYpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNzIsIDk5OSkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjcyLCA4NjEpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc5DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NzcNCisJCQkJCWxvY2F0aW9uICAgCSgyMjMxLCA5MDYpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTg4MCw5ICs2MTY0Nyw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuNjg2NTY3DQogCQkJCQloZWlnaHQgICAgIAk0Mg0KIAkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjc4DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2NzUNCi0JCQkJCWxvY2F0aW9uICAgCSgyNDIyLCA5OTIpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjgwDQorCQkJCQlQYXJlbnRfVmlldyAJQDI2NzcNCisJCQkJCWxvY2F0aW9uICAgCSgyNDI4LCA5OTIpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTkwMSw5ICs2MTY2OCw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuMDU4Mzk0DQogCQkJCQloZWlnaHQgICAgIAkxNTYNCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDA1IiBAMjY3OQ0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjc0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTI4LCAtOTc1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0MDUiIEAyNjgxDQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2NzYNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5MzQsIC05NzUpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjE5MTYsMTQgKzYxNjgzLDE0IEBACiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQzFGMDVFMDAwRjUiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjY3NA0KLQkJCQkgICAgc3VwcGxpZXIgICAJQDI2MzkNCisJCQkJICAgIGNsaWVudCAgICAgCUAyNjc2DQorCQkJCSAgICBzdXBwbGllciAgIAlAMjY0Mg0KIAkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjY2LCA5OTkpDQotCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI2NiwgMTEzNikNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2ODANCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY3OQ0KLQkJCQkJbG9jYXRpb24gICAJKDIyMzEsIDExMDgpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQ1NDQsIDE5OTgpDQorCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDM0OCwgMjM0MykNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2ODINCisJCQkJCVBhcmVudF9WaWV3IAlAMjY4MQ0KKwkJCQkJbG9jYXRpb24gICAJKDIyMzcsIDExMDgpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTk0Miw4ICs2MTcwOSw4IEBACiAJCQkJCXBjdERpc3QgICAgCTAuODA1OTcwDQogCQkJCQloZWlnaHQgICAgIAkzNg0KIAkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQotCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQwOSIgQDI2ODENCi0JCQkgICAgbG9jYXRpb24gICAJKDkzMCwgODA2KQ0KKwkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MDkiIEAyNjgzDQorCQkJICAgIGxvY2F0aW9uICAgCSg5MzAsIDgwMSkNCiAJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCXNpemUgICAgICAgCTEwDQogCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTk1Niw5ICs2MTcyMyw5IEBACiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiM0M4QzlFRTAwMTVDIg0KIAkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiZXh0ZW5zaW9uUG9pbnQiIEAyNjgyDQotCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2ODENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgtNDU2LCAtNzcyKQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbnNpb25Qb2ludCIgQDI2ODQNCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjY4Mw0KKwkJCQkgICAgbG9jYXRpb24gICAJKC00NTYsIC03NzcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjE5NjgsOSArNjE3MzUsOSBAQAogCQkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KIAkJCQkJY29sb3IgICAgICAJMA0KIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2ODMNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY4Mg0KLQkJCQkJbG9jYXRpb24gICAJKDc3OCwgNzA2KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY4NQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjg0DQorCQkJCQlsb2NhdGlvbiAgIAkoNzc4LCA3MDEpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MTk5MiwxNCArNjE3NTksMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDOEM5RUUxMDJCQyINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjgxDQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY0MA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2ODMNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjQ1DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzMCwgODA2KQ0KLQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYxNiwgODA2KQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY4NA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjgyDQotCQkJCQlsb2NhdGlvbiAgIAkoNjcxLCA4NjApDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzMCwgODAxKQ0KKwkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDYxNiwgODAxKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY4Ng0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjg0DQorCQkJCQlsb2NhdGlvbiAgIAkoNjcxLCA4NTUpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjAxOCw5ICs2MTc4NSw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuODI4MjIxDQogCQkJCQloZWlnaHQgICAgIAk1NA0KIAkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjg1DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2ODINCi0JCQkJCWxvY2F0aW9uICAgCSg4NDcsIDc2NikNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2ODcNCisJCQkJCVBhcmVudF9WaWV3IAlAMjY4NA0KKwkJCQkJbG9jYXRpb24gICAJKDg0NywgNzYxKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIwMzksOSArNjE4MDYsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjI2NDMzMQ0KIAkJCQkJaGVpZ2h0ICAgICAJNDENCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAidXNlQ2FzZSIgQDI2ODYNCi0JCQkJICAgIFBhcmVudF9WaWV3IAlAMjY4MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKC00NTYsIC03NzIpDQorCQkJCShvYmplY3QgUm9sZVZpZXcgInVzZUNhc2UiIEAyNjg4DQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2ODMNCisJCQkJICAgIGxvY2F0aW9uICAgCSgtNDU2LCAtNzc3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMDUxLDkgKzYxODE4LDkgQEAKIAkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjg3DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2ODYNCi0JCQkJCWxvY2F0aW9uICAgCSgxMTQxLCA3MjkpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjg5DQorCQkJCQlQYXJlbnRfVmlldyAJQDI2ODgNCisJCQkJCWxvY2F0aW9uICAgCSgxMTQxLCA3MjQpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjA3NSwxNCArNjE4NDIsMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDOEM5RUUxMDJDNiINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjgxDQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2ODMNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY2DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzMCwgODA2KQ0KLQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNDQsIDgwNikNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2ODgNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY4Ng0KLQkJCQkJbG9jYXRpb24gICAJKDEyMTMsIDg2MCkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTMwLCA4MDEpDQorCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI0NCwgODAxKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5MA0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjg4DQorCQkJCQlsb2NhdGlvbiAgIAkoMTIxMywgODU1KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIxMDEsOCArNjE4NjgsOCBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KIAkJCQkJaGVpZ2h0ICAgICAJNTQNCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MDYiIEAyNjg5DQotCQkJICAgIGxvY2F0aW9uICAgCSgxNTE2LCA5OTYpDQorCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQwNiIgQDI2OTENCisJCQkgICAgbG9jYXRpb24gICAJKDE1MTgsIDk5NikNCiAJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCXNpemUgICAgICAgCTEwDQogCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjExNSw5ICs2MTg4Miw5IEBACiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiM0MxRjA2MUUwMUVFIg0KIAkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiZXh0ZW5kZWRDYXNlIiBAMjY5MA0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjg5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4MiwgLTk4NCkNCisJCQkJKG9iamVjdCBSb2xlVmlldyAiZXh0ZW5kZWRDYXNlIiBAMjY5Mg0KKwkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjkxDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4MCwgLTk4NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjEyNyw5ICs2MTg5NCw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5MQ0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjkwDQotCQkJCQlsb2NhdGlvbiAgIAkoMTY3MywgOTA3KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5Mw0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjkyDQorCQkJCQlsb2NhdGlvbiAgIAkoMTY3NSwgOTA3KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIxNTEsMTQgKzYxOTE4LDE0IEBACiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQzFGMDYxRjAwMjMiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjY4OQ0KLQkJCQkgICAgc3VwcGxpZXIgICAJQDI2NjQNCisJCQkJICAgIGNsaWVudCAgICAgCUAyNjkxDQorCQkJCSAgICBzdXBwbGllciAgIAlAMjY2Ng0KIAkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE2LCA5OTYpDQotCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxNiwgODYyKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5Mg0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjkwDQotCQkJCQlsb2NhdGlvbiAgIAkoMTQ2OCwgODkxKQ0KKwkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE4LCA5OTYpDQorCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxOCwgODYxKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5NA0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjkyDQorCQkJCQlsb2NhdGlvbiAgIAkoMTQ3MCwgODkxKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIxNzcsOSArNjE5NDQsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjc4OTQ3NA0KIAkJCQkJaGVpZ2h0ICAgICAJNDkNCiAJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5Mw0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNjkwDQotCQkJCQlsb2NhdGlvbiAgIAkoMTY2NywgOTYwKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5NQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjkyDQorCQkJCQlsb2NhdGlvbiAgIAkoMTY2OSwgOTYwKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIxOTgsOSArNjE5NjUsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjI2NjY2Nw0KIAkJCQkJaGVpZ2h0ICAgICAJMTUxDQogCQkJCQlvcmllbnRhdGlvbiAJMSkpDQotCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQwNyIgQDI2OTQNCi0JCQkJICAgIFBhcmVudF9WaWV3IAlAMjY4OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKC0xODIsIC05ODQpDQorCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQwNyIgQDI2OTYNCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjY5MQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKC0xODAsIC05ODQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIyMTMsMTQgKzYxOTgwLDE0IEBACiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQzFGMDYxRjAwMkQiDQotCQkJCSAgICBjbGllbnQgICAgIAlAMjY4OQ0KLQkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDINCisJCQkJICAgIGNsaWVudCAgICAgCUAyNjkxDQorCQkJCSAgICBzdXBwbGllciAgIAlAMjY0Nw0KIAkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTE2LCA5OTYpDQotCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUxNiwgMTEzMSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI2OTUNCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY5NA0KLQkJCQkJbG9jYXRpb24gICAJKDE0NzksIDExMDgpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MTgsIDk5NikNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTE4LCAxMTMxKQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5Nw0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNjk2DQorCQkJCQlsb2NhdGlvbiAgIAkoMTQ4MSwgMTEwOCkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMjM5LDggKzYyMDA2LDggQEAKIAkJCQkJcGN0RGlzdCAgICAJMC44MzU4MjENCiAJCQkJCWhlaWdodCAgICAgCTM4DQogCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCi0JCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDA4IiBAMjY5Ng0KLQkJCSAgICBsb2NhdGlvbiAgIAkoMTM2OSwgOTk1KQ0KKwkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MDgiIEAyNjk4DQorCQkJICAgIGxvY2F0aW9uICAgCSgxMzc1LCA5OTUpDQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjIyNTAsOSArNjIwMTcsOSBAQAogCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCWNvbG9yICAgICAgCTANCiAJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5Nw0KLQkJCQlQYXJlbnRfVmlldyAJQDI2OTYNCi0JCQkJbG9jYXRpb24gICAJKDE0NzIsIDk4MCkNCisJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY5OQ0KKwkJCQlQYXJlbnRfVmlldyAJQDI2OTgNCisJCQkJbG9jYXRpb24gICAJKDE0NzgsIDk4MCkNCiAJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMjc1LDkgKzYyMDQyLDkgQEAKIAkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJICAgIHF1aWR1ICAgICAgCSIzQzFGMDYyMjAzNzAiDQogCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KLQkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbnNpb24iIEAyNjk4DQotCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2OTYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgtMzI5LCAtOTg1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbnNpb24iIEAyNzAwDQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2OTgNCisJCQkJICAgIGxvY2F0aW9uICAgCSgtMzIzLCAtOTg1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMjg3LDkgKzYyMDU0LDkgQEAKIAkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjk5DQotCQkJCQlQYXJlbnRfVmlldyAJQDI2OTgNCi0JCQkJCWxvY2F0aW9uICAgCSgxMjM4LCA5MjMpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzAxDQorCQkJCQlQYXJlbnRfVmlldyAJQDI3MDANCisJCQkJCWxvY2F0aW9uICAgCSgxMjQ0LCA5MjMpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjMxMSwxNCArNjIwNzgsMTQgQEAKIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNDMUYwNjIzMDI1QSINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNjk2DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI2OTgNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY2DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNjksIDk5NSkNCisJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM3NSwgOTk1KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNzUsIDg2MSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MDANCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY5OA0KLQkJCQkJbG9jYXRpb24gICAJKDE0MTQsIDg5MSkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MDINCisJCQkJCVBhcmVudF9WaWV3IAlAMjcwMA0KKwkJCQkJbG9jYXRpb24gICAJKDE0MjAsIDg5MSkNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMzM3LDkgKzYyMTA0LDkgQEAKIAkJCQkJcGN0RGlzdCAgICAJMC43NzUzNjINCiAJCQkJCWhlaWdodCAgICAgCTQ1DQogCQkJCQlvcmllbnRhdGlvbiAJMSkNCi0JCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MDENCi0JCQkJCVBhcmVudF9WaWV3IAlAMjY5OA0KLQkJCQkJbG9jYXRpb24gICAJKDExOTksIDk3MikNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MDMNCisJCQkJCVBhcmVudF9WaWV3IAlAMjcwMA0KKwkJCQkJbG9jYXRpb24gICAJKDEyMDUsIDk3MikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMzU4LDkgKzYyMTI1LDkgQEAKIAkJCQkJcGN0RGlzdCAgICAJMC4xNzc3NzgNCiAJCQkJCWhlaWdodCAgICAgCTE3MQ0KIAkJCQkJb3JpZW50YXRpb24gCTApKQ0KLQkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbmQiIEAyNzAyDQotCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2OTYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgtMzI5LCAtOTg1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJleHRlbmQiIEAyNzA0DQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI2OTgNCisJCQkJICAgIGxvY2F0aW9uICAgCSgtMzIzLCAtOTg1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMzcwLDkgKzYyMTM3LDkgQEAKIAkJCQkJc3RyaWtlICAgICAJRkFMU0UNCiAJCQkJCWNvbG9yICAgICAgCTANCiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzAzDQotCQkJCQlQYXJlbnRfVmlldyAJQDI3MDINCi0JCQkJCWxvY2F0aW9uICAgCSgxMjc0LCAxMDY3KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjcwNQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNzA0DQorCQkJCQlsb2NhdGlvbiAgIAkoMTI4MCwgMTA2NykNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyMzk0LDE0ICs2MjE2MSwxNCBAQAogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0MxRjA2MjMwMjY0Ig0KLQkJCQkgICAgY2xpZW50ICAgICAJQDI2OTYNCi0JCQkJICAgIHN1cHBsaWVyICAgCUAyNjQyDQorCQkJCSAgICBjbGllbnQgICAgIAlAMjY5OA0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NDcNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM2OSwgOTk1KQ0KLQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNjksIDExMzApDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzA0DQotCQkJCQlQYXJlbnRfVmlldyAJQDI3MDINCi0JCQkJCWxvY2F0aW9uICAgCSgxNDAzLCAxMTAxKQ0KKwkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNzUwLCAxOTkwKQ0KKwkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4OTMsIDIzMzApDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzA2DQorCQkJCQlQYXJlbnRfVmlldyAJQDI3MDQNCisJCQkJCWxvY2F0aW9uICAgCSgxNDA5LCAxMTAxKQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjI0MjAsOSArNjIxODcsOSBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjc5MjU5Mw0KIAkJCQkJaGVpZ2h0ICAgICAJMzQNCiAJCQkJCW9yaWVudGF0aW9uIAkwKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjcwNQ0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNzAyDQotCQkJCQlsb2NhdGlvbiAgIAkoMTEzMCwgMTExMCkNCisJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MDcNCisJCQkJCVBhcmVudF9WaWV3IAlAMjcwNA0KKwkJCQkJbG9jYXRpb24gICAJKDExMzYsIDExMTApDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjQ0MSw3ICs2MjIwOCw3IEBACiAJCQkJCXBjdERpc3QgICAgCTAuODU5MjU5DQogCQkJCQloZWlnaHQgICAgIAkyNDANCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI3MDYNCisJCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyNzA4DQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjI0NTMsMzkgKzYyMjIwLDEzIEBACiAJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCSAgICBxdWlkdSAgICAgIAkiM0MxRjAyNkQwMDRCIg0KLQkJCSAgICBjbGllbnQgICAgIAlAMjY2NA0KKwkJCSAgICBjbGllbnQgICAgIAlAMjY2Ng0KIAkJCSAgICBzdXBwbGllciAgIAlAMjYzNQ0KIAkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMyNSwgNzIxKQ0KIAkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMyNSwgNDc4KSkNCi0JCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6VXNlQ2FzZXM6OkNsYXNzaWZpZXIiIEAyNzA3DQotCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQotCQkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQotCQkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCi0JCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KLQkJCSAgICBsb2NhdGlvbiAgIAkoMTc2NCwgNDA4KQ0KLQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJc2l6ZSAgICAgICAJMTANCi0JCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQlib2xkICAgICAgIAlGQUxTRQ0KLQkJCQlpdGFsaWNzICAgIAlUUlVFDQotCQkJCXVuZGVybGluZSAgCUZBTFNFDQotCQkJCXN0cmlrZSAgICAgCUZBTFNFDQotCQkJCWNvbG9yICAgICAgCTANCi0JCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCi0JCQkJUGFyZW50X1ZpZXcgCUAyNzA3DQotCQkJCWxvY2F0aW9uICAgCSgxNTU4LCAzNTQpDQotCQkJCW5saW5lcyAgICAgCTENCi0JCQkJbWF4X3dpZHRoICAJNDEzDQotCQkJCWp1c3RpZnkgICAgCTANCi0JCQkJbGFiZWwgICAgICAJIkNsYXNzaWZpZXIiKQ0KLQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkgICAgcXVpZHUgICAgICAJIjNEMkNDQTc0MDJERiINCi0JCQkgICAgd2lkdGggICAgICAJNDMxDQotCQkJICAgIGhlaWdodCAgICAgCTEzMikNCi0JCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDEzIiBAMjcwOA0KLQkJCSAgICBsb2NhdGlvbiAgIAkoMTg0NywgNTk3KQ0KKwkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTMiIEAyNzA5DQorCQkJICAgIGxvY2F0aW9uICAgCSgxNzY0LCA1OTgpDQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQlzaXplICAgICAgIAkxMA0KIAkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjI0OTgsOSArNjIyMzksOSBAQAogCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkgICAgcXVpZHUgICAgICAJIjNEMjg5N0YzMDI1NiINCiAJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQotCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkVXNlQ2FzZSIgQDI3MDkNCi0JCQkJICAgIFBhcmVudF9WaWV3IAlAMjcwOA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI3NSwgNDM1KQ0KKwkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZFVzZUNhc2UiIEAyNzEwDQorCQkJCSAgICBQYXJlbnRfVmlldyAJQDI3MDkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxOTIsIDQzNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjUxMCw5ICs2MjI1MSw5IEBACiAJCQkJCXN0cmlrZSAgICAgCUZBTFNFDQogCQkJCQljb2xvciAgICAgIAkwDQogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjcxMA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNzA5DQotCQkJCQlsb2NhdGlvbiAgIAkoMjAyNSwgNTk2KQ0KKwkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjcxMQ0KKwkJCQkJUGFyZW50X1ZpZXcgCUAyNzEwDQorCQkJCQlsb2NhdGlvbiAgIAkoMTk0MiwgNTk3KQ0KIAkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjI1MzMsMTQgKzYyMjc0LDE0IEBACiAJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNEMjg5N0Y1MDA4RCINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNzA4DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI3MDkNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY2DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NDcsIDU5NykNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODQ3LCA3MjEpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzExDQotCQkJCQlQYXJlbnRfVmlldyAJQDI3MDkNCi0JCQkJCWxvY2F0aW9uICAgCSgxODkzLCA3MDApDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NjQsIDU5OCkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzY0LCA3MjIpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzEyDQorCQkJCQlQYXJlbnRfVmlldyAJQDI3MTANCisJCQkJCWxvY2F0aW9uICAgCSgxODEwLCA3MDEpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjU1OSw5ICs2MjMwMCw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuODMwNjQ1DQogCQkJCQloZWlnaHQgICAgIAk0Ng0KIAkJCQkJb3JpZW50YXRpb24gCTApDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzEyDQotCQkJCQlQYXJlbnRfVmlldyAJQDI3MDkNCi0JCQkJCWxvY2F0aW9uICAgCSgyMDg1LCA2NDcpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzEzDQorCQkJCQlQYXJlbnRfVmlldyAJQDI3MTANCisJCQkJCWxvY2F0aW9uICAgCSgyMDAyLCA2NDgpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjU4MCw5ICs2MjMyMSw5IEBACiAJCQkJCXBjdERpc3QgICAgCTAuNDAzMjI2DQogCQkJCQloZWlnaHQgICAgIAkyMzgNCiAJCQkJCW9yaWVudGF0aW9uIAkwKSkNCi0JCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDE0IiBAMjcxMw0KLQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzA4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjc1LCA0MzUpDQorCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQxNCIgQDI3MTQNCisJCQkJICAgIFBhcmVudF9WaWV3IAlAMjcwOQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE5MiwgNDM2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYyNTk0LDE0ICs2MjMzNSwxNCBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNEMjg5N0Y1MDA5NyINCi0JCQkJICAgIGNsaWVudCAgICAgCUAyNzA4DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjcwNw0KKwkJCQkgICAgY2xpZW50ICAgICAJQDI3MDkNCisJCQkJICAgIHN1cHBsaWVyICAgCUAyNjY0DQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NDcsIDU5NykNCi0JCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODQ3LCA0NzMpDQotCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzE0DQotCQkJCQlQYXJlbnRfVmlldyAJQDI3MTMNCi0JCQkJCWxvY2F0aW9uICAgCSgxOTE2LCA1MTIpDQorCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NjQsIDU5OCkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzY0LCA0NzQpDQorCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzE1DQorCQkJCQlQYXJlbnRfVmlldyAJQDI3MTQNCisJCQkJCWxvY2F0aW9uICAgCSgxODMzLCA1MTMpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02MjYyMCwxOCArNjIzNjEsNiBAQAogCQkJCQlwY3REaXN0ICAgIAkwLjY4NTQ4NA0KIAkJCQkJaGVpZ2h0ICAgICAJNjkNCiAJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KLQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI3MTUNCi0JCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KLQkJCSAgICBxdWlkdSAgICAgIAkiM0QyQ0NBRkUwMEFEIg0KLQkJCSAgICBjbGllbnQgICAgIAlAMjcwNw0KLQkJCSAgICBzdXBwbGllciAgIAlAMjY1Nw0KLQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJKDE3NDMsIDM0MikNCi0JCQkJKDE3NDMsIDE2OCkNCi0JCQkJKDIxMjUsIDE2OCkpDQotCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzQzLCAzNDIpDQotCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTI1LCAxNjgpKQ0KIAkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTUiIEAyNzE2DQogCQkJICAgIGxvY2F0aW9uICAgCSgxNzY0LCA1OTcpDQogCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KQEAgLTYyNjg0LDcgKzYyNDEzLDcgQEAKIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI5RTc0MDI0RSINCiAJCQkJICAgIGNsaWVudCAgICAgCUAyNzE2DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjcwNw0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NjQNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTANCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MTkNCiAJCQkJCVBhcmVudF9WaWV3IAlAMjcxNw0KQEAgLTYyNzQ0LDcgKzYyNDczLDcgQEAKIAkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjQwQUI5RTc0MDI1MCINCiAJCQkJICAgIGNsaWVudCAgICAgCUAyNzE2DQotCQkJCSAgICBzdXBwbGllciAgIAlAMjY2NA0KKwkJCQkgICAgc3VwcGxpZXIgICAJQDI2NjYNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTANCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MjINCiAJCQkJCVBhcmVudF9WaWV3IAlAMjcyMA0KQEAgLTYyOTk1LDI1ICs2MjcyNCwyMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzQ29tcG9zaXRlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDNjEyQzI4MDIyRiINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiDQogCQkJCSAgICBkZXJpdmVkICAgIAlUUlVFKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc09ydGhvZ29uYWwiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0M2MTM2QjQwMUI5Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyINCiAJCQkJICAgIGRlcml2ZWQgICAgCVRSVUUpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzU2ltcGxlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNDNjEzNzY0MDAwRSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiDQogCQkJCSAgICBkZXJpdmVkICAgIAlUUlVFKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1N1Ym1hY2hpbmVTdGF0ZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQzY3OEY1MzAwQ0EiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KIAkJCQkgICAgZGVyaXZlZCAgICAJVFJVRSkpDQogCQkJICAgIGxhbmd1YWdlICAgCSJub25lIikNCkBAIC02MzA2OCw2ICs2Mjc5Myw3IEBACiAJCQkgICAgbGFuZ3VhZ2UgICAJIkMrKyIpDQogCQkJKG9iamVjdCBDbGFzcyAiQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0I4QTU0OEUwM0NDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQ29ubmVjdGlvbiBwb2ludCByZWZlcmVuY2VzIG9mIGEgc3VibWFjaGluZSBzdGF0ZSBjYW4gYmUgdXNlZCBhcyBzb3VyY2VzL3RhcmdldHMgb2YgdHJhbnNpdGlvbnMuIFRoZXkgcmVwcmVzZW50IGVudHJpZXMgaW50byBvciBleGl0cyBvdXQgb2YgdGhlIHN1Ym1hY2hpbmUgc3RhdGUgbWFjaGluZSByZWZlcmVuY2VkIGJ5IHRoZSBzdWJtYWNoaW5lIHN0YXRlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQjhBNTRGNzAwMzQiDQpAQCAtNjM2NjMsMjIgKzYzMzg5LDYgQEAKIAkJCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjk0QjgyNzAwOUMiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNzMxDQotCQkJCQlsb2NhdGlvbiAgIAkoMjYzNiwgMzk5KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMTANCi0JCQkJCW1heF93aWR0aCAgCTI3MSkNCiAJCQkJICAgIHdpZHRoICAgICAgCTQyMg0KIAkJCQkgICAgaGVpZ2h0ICAgICAJNjc4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KQEAgLTYzODE1LDIyICs2MzUyNSw2IEBACiAJCQkJCWxhYmVsICAgICAgCSJQc2V1ZG9zdGF0ZSIpDQogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzMjhBNDdGMTAwNjQiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUAyNzM2DQotCQkJCQlsb2NhdGlvbiAgIAkoNDA5LCAxNzE2KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJNDMxKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNDcyDQogCQkJCSAgICBoZWlnaHQgICAgIAkxNjApDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpTdGF0ZU1hY2hpbmVzOjpCZWhhdmlvclN0YXRlTWFjaGluZXM6OkNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSIgQDI3MzcNCkBAIC02Mzg2Miw3ICs2MzU1Niw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MjEiIEAyNzM4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTM4LCAxODc2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDY2MSwgMTg3NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Mzg3Nyw3ICs2MzU3MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZW50cnkiIEAyNzM5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzM4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDExOCwgLTExNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjQxLCAtMTE3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYzODg5LDcgKzYzNTgzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc0MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjczOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MjksIDE4MzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDc1MiwgMTgzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYzOTE0LDExICs2MzYwOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI3MzgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjczNg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUzOCwgMTg3NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTM4LCAxODAyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjYxLCAxODc2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NjEsIDE4MDEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjczOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTEsIDE4MzApDQorCQkJCQkJbG9jYXRpb24gICAJKDYzNCwgMTgzMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTYzOTM5LDcgKzYzNjMzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQyMiIgQDI3NDINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI3MzgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTE4LCAtMTE3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyNDEsIC0xMTcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjM5NTEsNyArNjM2NDUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzQzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzQyDQotCQkJCQkJbG9jYXRpb24gICAJKDY3NSwgMTkxNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzk4LCAxOTE2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjM5NzcsMTEgKzYzNjcxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjczOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNzM3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTM4LCAxODc2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MzgsIDE5NTEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NjEsIDE4NzYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY2MSwgMTk1MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzQyDQotCQkJCQkJbG9jYXRpb24gICAJKDQ5OSwgMTkyMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjIyLCAxOTIyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjQwMDEsNyArNjM2OTUsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDANCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQyOSIgQDI3NDUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3ODQsIDE4NzYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNjYxLCAxODc2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0MDE2LDcgKzYzNzEwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJleGl0IiBAMjc0Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjc0NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzNDYsIC0zMzgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIyMywgLTMzOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDAyOCw3ICs2MzcyMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODYxLCAxODIwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzgsIDE4MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDA1MiwxMSArNjM3NDYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNzQ1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3MzYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3ODQsIDE4NzYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc4NCwgMTgwMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY2MSwgMTg3NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjYxLCAxODAxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzM3LCAxODQ0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTQsIDE4NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDA3Nyw3ICs2Mzc3MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0MzAiIEAyNzQ5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzQ1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM0NiwgLTMzOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIzLCAtMzM4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0MDg5LDcgKzYzNzgzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc1MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc0OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjYsIDE5NDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0MywgMTk0MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0MTE0LDExICs2MzgwOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI3NDUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjczNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc4NCwgMTg3NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzg0LCAxOTUyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjYxLCAxODc2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NjEsIDE5NTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc1MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc0OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NDksIDE5MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyNiwgMTkyMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0MTc5LDcgKzYzODczLDcgQEAKIAkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQ5LCA2MTApDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0OSwgNDMwKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQzNiIgQDI3NTQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMzIsIDgxMykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMzIsIDgxMikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDE5NCw3ICs2Mzg4OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29ubmVjdGlvblBvaW50IiBAMjc1NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjc1NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTUwMiwgNzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNTAyLCA3NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDIwNiw3ICs2MzkwMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDE0LCAxNTYyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MTQsIDE1NjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDIzMSwxNSArNjM5MjUsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNzU0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3MzYNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMjMyLCA4MTMpDQorCQkJCQkJKDIzMiwgODEyKQ0KIAkJCQkJCSgyMzIsIDE2NjApDQogCQkJCQkJKDQwMCwgMTY2MCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjMyLCA4MTMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMzIsIDgxMikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDAwLCAxNjYwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzY1LCAxNzExKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNjUsIDE3MTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDI2MCw3ICs2Mzk1NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzU4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzU1DQotCQkJCQkJbG9jYXRpb24gICAJKDQ4NiwgMTYwNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDg2LCAxNjA0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjQyODEsNyArNjM5NzUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDM3IiBAMjc1OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjc1NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTUwMiwgNzUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNTAyLCA3NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDI5NywxNSArNjM5OTEsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNzU0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3NTINCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMjMyLCA4MTMpDQorCQkJCQkJKDIzMiwgODEyKQ0KIAkJCQkJCSgyMzIsIDc1MikNCiAJCQkJCQkoMTI0MywgNzUyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMzIsIDgxMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIzMiwgODEyKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjQzLCA3NTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTUyLCA3OTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNTIsIDc5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0MzUwLDcgKzY0MDQ0LDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJNzI4DQogCQkJCSAgICBoZWlnaHQgICAgIAk1NDUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MjMiIEAyNzYyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTMwLCAyMTQzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDkzMCwgMjA3OCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDM2NSw3ICs2NDA1OSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDI0IiBAMjc2Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjc2Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTAsIDE1MCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNTEwLCA4NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDM4MCwxMiArNjQwNzQsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQjhBNTUzQjAxODYiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI3NjINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjc2MQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5MzAsIDIwNzgpDQorCQkJCQkJKDkzMCwgMjAxMykNCisJCQkJCQkoMTIwMiwgMjAxMykpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTMwLCAyMTQzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjAyLCAyMTQzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTMwLCAyMDc4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjAyLCAyMDEzKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NjMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTEzNSwgMjA4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEzNSwgMjAyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0NDA2LDcgKzY0MTA0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNvbm5lY3Rpb24iIEAyNzY1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzYyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUxMCwgMTUwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTAsIDg1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0NDE4LDcgKzY0MTE2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc2Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3OTQsIDIxNzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDc5NCwgMjExMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0NDQzLDE1ICs2NDE0MSwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI3NjINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjczNw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5MzAsIDIwNzgpDQogCQkJCQkJKDkzMCwgMjE0MykNCiAJCQkJCQkoNzIwLCAyMTQzKQ0KIAkJCQkJCSg3MjAsIDIwODApKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzMCwgMjE0MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzMCwgMjA3OCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzIwLCAyMDgwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3NjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI3NjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzU2LCAyMTY1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NTYsIDIxMDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDQ3Miw3ICs2NDE3MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzY1DQotCQkJCQkJbG9jYXRpb24gICAJKDc2NiwgMjA1OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzY2LCAxOTkzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjQ3NTYsNyArNjQ0NTUsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxNDMNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTYiIEAyNzgyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA1OCwgMTEwMikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMjI3LCAyMjA0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY0NzcxLDcgKzY0NDcwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzdWJ2ZXJ0ZXgiIEAyNzgzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM0NSwgLTQ1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTQsIDEwNTcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjQ3ODMsNyArNjQ0ODIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzg0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzgzDQotCQkJCQkJbG9jYXRpb24gICAJKDEwMjMsIDExNTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDExOTIsIDIyNjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDgwNywxNSArNjQ1MDYsMTcgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyNzgyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3NzYNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTIyNywgMjIwNCkNCisJCQkJCQkoMTA1OCwgMjIwNCkNCiAJCQkJCQkoMTA1OCwgMTEwMikNCiAJCQkJCQkoOTA4LCAxMTAyKQ0KIAkJCQkJCSg5MDgsIDEyNTYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNTgsIDExMDIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjI3LCAyMjA0KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MDgsIDEyNTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc4NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjc4Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjQsIDEyMTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMzMsIDIzMTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDgzNiw3ICs2NDUzNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzgzDQotCQkJCQkJbG9jYXRpb24gICAJKDExNTcsIDEyMDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjYsIDIzMTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDg1Nyw3ICs2NDU1OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb250YWluZXIiIEAyNzg3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzgyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM0NSwgLTQ1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTQsIDEwNTcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjQ4NjksNyArNjQ1NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzg3DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMzgsIDEwMjYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MDcsIDIxMjgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDg5MiwxMiArNjQ1OTMsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzMjg4RDhDNzAxNzIiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI3ODINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjc4MQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxMjI3LCAyMjA0KQ0KKwkJCQkJCSgxNzY3LCAyMjA0KQ0KKwkJCQkJCSgxNzY3LCAxMTY5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDU4LCAxMTAyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYzLCAxMTAyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyNywgMjIwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc2NywgMTE2OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzg3DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMDIsIDExNDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NzEsIDIyNDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NDkxOCw3ICs2NDYyMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNzkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyNzg3DQotCQkJCQkJbG9jYXRpb24gICAJKDExNTgsIDEwNzEpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjcsIDIxNzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTMzNCw3ICs2NTAzOSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTEyNQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQzMSIgQDI4MTENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxODgwLCAyMzQ3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4ODEsIDIzNDcpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjUzNDksNyArNjUwNTQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImRlZmVycmFibGVUcmlnZ2VyIiBAMjgxMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjgxMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxODgsIDQ0NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg5LCA0NDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjUzNjEsNyArNjUwNjYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODEzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODEyDQotCQkJCQkJbG9jYXRpb24gICAJKDE4NDUsIDIzODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4NDYsIDIzODcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTM4NiwxNSArNjUwOTEsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODExDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4MTANCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMTg4MCwgMjM0NykNCisJCQkJCQkoMTg4MSwgMjM0NykNCiAJCQkJCQkoMjA1MywgMjM0NykNCiAJCQkJCQkoMjA1MywgMjQyMikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg4MCwgMjM0NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODEsIDIzNDcpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwNTMsIDI0MjIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgxNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgxMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDkzLCAyMzg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDk0LCAyMzg0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU0MTUsNyArNjUxMjAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDMyIiBAMjgxNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjgxMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxODgsIDQ0NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTg5LCA0NDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU0MjcsNyArNjUxMzIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODE2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODE1DQotCQkJCQkJbG9jYXRpb24gICAJKDE3NDcsIDIyNDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NDgsIDIyNDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTQ1MywxNSArNjUxNTgsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODExDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3NjENCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMTg4MCwgMjM0NykNCisJCQkJCQkoMTg4MSwgMjM0NykNCiAJCQkJCQkoMTc4OCwgMjM0NykNCiAJCQkJCQkoMTc4OCwgMjE5MikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg4MCwgMjM0NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4ODEsIDIzNDcpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3ODgsIDIxOTIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgxNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODQyLCAyMjE4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODQzLCAyMjE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU1MDksNyArNjUyMTQsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMTkNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NjAiIEAyODE5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTYyOSwgMjUyMikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxODY4LCA1MDQ0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NTI0LDcgKzY1MjI5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzdGF0ZUludmFyaWFudCIgQDI4MjANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4MTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk5LCA2MzIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUzOCwgMzE1NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTUzNiw3ICs2NTI0MSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4MjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4MjANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU3MywgMjY1MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTgxMiwgNTE3NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NTYxLDE2ICs2NTI2NiwxNyBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4MTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjgxOA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxNjI5LCAyNTIyKQ0KKwkJCQkJCSgxODY4LCA1MDQ0KQ0KKwkJCQkJCSgxNjI5LCA1MDQ0KQ0KIAkJCQkJCSgxNjI5LCAyNjEzKQ0KIAkJCQkJCSgxNzUwLCAyNjEzKQ0KIAkJCQkJCSgxNzUwLCAyNzMxKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjI5LCAyNTIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg2OCwgNTA0NCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc1MCwgMjczMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODIyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODIwDQotCQkJCQkJbG9jYXRpb24gICAJKDE4MDEsIDI2ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNDAsIDUyMDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTU5MSw3ICs2NTI5Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODIzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODIwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0NzYsIDI3MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MTUsIDUyMjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTYxMiw3ICs2NTMxOCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdTdGF0ZSIgQDI4MjQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4MTkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjk5LCA2MzIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUzOCwgMzE1NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTYyNCw3ICs2NTMzMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4MjUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4MjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTUwMywgMjI3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc0MiwgNDc5MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NjQ4LDEyICs2NTM1NCwxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkYyMzVBMDMwQSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjgxOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNzYxDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDE4NjgsIDUwNDQpDQorCQkJCQkJKDE5MjgsIDUwNDQpDQorCQkJCQkJKDE5MjgsIDIxOTIpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MjksIDI1MjIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MjksIDIxOTIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODY4LCA1MDQ0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTI4LCAyMTkyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4MjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4MjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY5MCwgMjIyOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkyOSwgNDc1MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NzAxLDcgKzY1NDExLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJNTI4DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDU4IiBAMjgyOA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIyMjEsIDIxNDcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIyMSwgMTk1MSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NzE2LDcgKzY1NDI2LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJkb0FjdGl2aXR5IiBAMjgyOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjgyOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDI1NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODkxLCA2MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1NzI4LDcgKzY1NDM4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzg5LCAyMDc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzg5LCAxODgwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU3NTIsMTEgKzY1NDYyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjgyOA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyODI3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIyMSwgMjE0NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjUxMywgMjE0NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMjEsIDE5NTEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1MTMsIDE5NTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNDM4LCAyMTc3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNDM4LCAxOTgxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU3NzcsNyArNjU0ODcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgzMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjgyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjU2LCAyMTEzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjU2LCAxOTE3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU3OTgsNyArNjU1MDgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDU5IiBAMjgzMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjgyOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDI1NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODkxLCA2MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1ODEzLDExICs2NTUyMywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4MjgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjc2MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMjEsIDIxNDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MzAsIDIxNDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjIxLCAxOTUxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTMwLCAxOTUxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4MzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4MzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk5MSwgMjE5MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTk5MSwgMTk5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY1ODM3LDcgKzY1NTQ3LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ1DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NTYiIEAyODM1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjIyMSwgMTk5MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMjIxLCAxOTUxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU4NTIsNyArNjU1NjIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImV4aXQiIEAyODM2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg5MSwgMTAwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDYxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU4NjQsNyArNjU1NzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODM3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODM2DQotCQkJCQkJbG9jYXRpb24gICAJKDI0MjMsIDE5MDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MjMsIDE4NjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTg4OCwxMSArNjU1OTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODM1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4MjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjIxLCAxOTkwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTEzLCAxOTkwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIyMSwgMTk1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjUxMywgMTk1MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODM2DQotCQkJCQkJbG9jYXRpb24gICAJKDI0MzUsIDIwMTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MzUsIDE5NzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTkxMyw3ICs2NTYyMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODM2DQotCQkJCQkJbG9jYXRpb24gICAJKDIyNDUsIDE5NDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNDUsIDE5MDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTkzNCw3ICs2NTY0NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NTciIEAyODQwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg5MSwgMTAwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDYxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU5NDksMTEgKzY1NjU5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjgzNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNzYxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIyMSwgMTk5MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkzMCwgMTk5MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMjEsIDE5NTEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MzAsIDE5NTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg0MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTg1LCAyMDM1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTg1LCAxOTk2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjU5NzMsNyArNjU2ODMsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNDUNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ1NCIgQDI4NDINCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMjIxLCAxODE3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIyMjEsIDE5NTEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NTk4OCw3ICs2NTY5OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZW50cnkiIEAyODQzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg5MSwgLTczKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDYxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYwMDAsNyArNjU3MTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODQzDQotCQkJCQkJbG9jYXRpb24gICAJKDI0MTEsIDE3MjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MTEsIDE4NjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjAyNCwxMSArNjU3MzQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODQyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4MjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjIxLCAxODE3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTEzLCAxODE3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIyMSwgMTk1MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjUxMywgMTk1MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODQ1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODQzDQotCQkJCQkJbG9jYXRpb24gICAJKDI0MzUsIDE4NDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0MzUsIDE5ODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjA0OSw3ICs2NTc1OSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODQzDQotCQkJCQkJbG9jYXRpb24gICAJKDIyNjIsIDE3NzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyNjIsIDE5MTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjA3MCw3ICs2NTc4MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NTUiIEAyODQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg5MSwgLTczKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4OTEsIDYxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYwODUsMTEgKzY1Nzk1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg0Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNzYxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjIyMSwgMTgxNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkzMCwgMTgxNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyMjEsIDE5NTEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MzAsIDE5NTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg0Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTgwLCAxODYyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTgwLCAxOTk2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYxMzAsMjYgKzY1ODQwLDEwIEBACiAJCQkJCWxhYmVsICAgICAgCSJUcmFuc2l0aW9uIikNCiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgcXVpZHUgICAgICAJIjMyODhENzBBMDIxMiINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDI4NDkNCi0JCQkJCWxvY2F0aW9uICAgCSgxODU2LCAxMzMxKQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJMzc4KQ0KIAkJCQkgICAgd2lkdGggICAgICAJMTEwNg0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMjUwKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDE4IiBAMjg1MA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE0MjMsIDEzMTUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQyMywgMTM1NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjE2NCw3ICs2NTg1OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic291cmNlIiBAMjg1MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjg1MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3NzIsIDE2OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzcyLCAyMDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYxNzYsNyArNjU4NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODUyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODUxDQotCQkJCQkJbG9jYXRpb24gICAJKDEwOTAsIDEyNzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwOTAsIDEzMTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjIwMCwxMSArNjU4OTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODUwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI3NzYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDIzLCAxMzE1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDAwLCAxMzE1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQyMywgMTM1NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAwMCwgMTM1NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODUzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODUxDQotCQkJCQkJbG9jYXRpb24gICAJKDEwNTIsIDEzNDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwNTIsIDEzOTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjIyNSw3ICs2NTkxOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvdXRnb2luZyIgQDI4NTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4NTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzcyLCAxNjgpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc3MiwgMjA5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2MjM3LDcgKzY1OTMxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg1NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzA1LCAxMjgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzA1LCAxMzI0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYyNjEsMTEgKzY1OTU1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg1MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyODQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQyMywgMTMxNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg0NywgMTMxNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MjMsIDEzNTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NDcsIDEzNTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzgyLCAxMzQ4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzgyLCAxMzg5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYyODUsNyArNjU5NzksNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMzMNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQxOSIgQDI4NTcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNDIzLCAxNDIxKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE0MjMsIDEzNTYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYzMDAsNyArNjU5OTQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRhcmdldCIgQDI4NTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4NTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNzcyLCAyNzQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc3MiwgMjA5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2MzEyLDcgKzY2MDA2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg1OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg1OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDcyLCAxMzkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDcyLCAxMzI2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYzMzYsMTEgKzY2MDMwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg1Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyNzc2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQyMywgMTQyMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAwMCwgMTQyMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MjMsIDEzNTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMDAsIDEzNTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg1OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDUyLCAxNDYwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDUyLCAxMzk1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjYzNjEsNyArNjYwNTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW5jb21pbmciIEAyODYxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDc3MiwgMjc0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg3NzIsIDIwOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjM3Myw3ICs2NjA2Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4NjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4NjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTcwNSwgMTM4MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcwNSwgMTMxNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2Mzk3LDExICs2NjA5MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4NTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjg0OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MjMsIDE0MjEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4NDcsIDE0MjEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDIzLCAxMzU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODQ3LCAxMzU2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4NjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4NjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc4NSwgMTQ2MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc4NSwgMTM5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2NDIxLDcgKzY2MTE1LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQwDQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MTciIEAyODY0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkzNiwgMTA5NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxOTM2LCAyMTMwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2NDM2LDcgKzY2MTMwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ0cmFuc2l0aW9uIiBAMjg2NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjg2NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDgsIDExKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDgsIDEwNDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY0NDgsNyArNjYxNDIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODY2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODY1DQotCQkJCQkJbG9jYXRpb24gICAJKDIxMjksIDExNjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxMjksIDIyMDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjQ3MiwxNSArNjYxNjYsMTYgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODY0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4NDkNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMTkzNiwgMjEzMCkNCiAJCQkJCQkoMTkzNiwgMTA5NikNCiAJCQkJCQkoMTk5NiwgMTA5NikNCiAJCQkJCQkoMTk5NiwgMTI1NSkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzNiwgMTA5NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MzYsIDIxMzApDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5OTYsIDEyNTUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg2Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTY4LCAxMjMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTY4LCAyMjY0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY1MDEsNyArNjYxOTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg2OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg2NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjUzLCAxMjE1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjUzLCAyMjQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY1MjIsNyArNjYyMTcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiY29udGFpbmVyIiBAMjg2OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjg2NA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDgsIDExKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDgsIDEwNDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY1MzQsNyArNjYyMjksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODcwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODY5DQotCQkJCQkJbG9jYXRpb24gICAJKDE4OTQsIDEwMzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4OTQsIDIwNjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjU1NywxMiArNjYyNTIsMTcgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzMjg4RDcyNzAwQzgiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4NjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjc4MQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxOTM2LCAyMTMwKQ0KKwkJCQkJCSgxOTM2LCAyMTkyKQ0KKwkJCQkJCSgxNzY3LCAyMTkyKQ0KKwkJCQkJCSgxNzY3LCAxMTY5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTM2LCAxMDk2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzY5LCAxMDk2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzNiwgMjEzMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc2NywgMTE2OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODcxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODY5DQotCQkJCQkJbG9jYXRpb24gICAJKDE4MzksIDExNDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MzksIDIxODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjU4Myw3ICs2NjI4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODcyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODY5DQotCQkJCQkJbG9jYXRpb24gICAJKDE5NzcsIDEwNzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5NzcsIDIxMTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjYwMyw3ICs2NjMwMyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkyMA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDMzIiBAMjg3Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDI5MTUsIDIyNDUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjU2MSwgMjI0NSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjYxOCw3ICs2NjMxOCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDM0IiBAMjg3NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjg3Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NywgLTExOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwNywgLTExOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjYzMywxMiArNjYzMzMsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQkU2QkU2RDAxMTgiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4NzMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjg0OQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgyNTYxLCAyMjQ1KQ0KKwkJCQkJCSgyMjA4LCAyMjQ1KQ0KKwkJCQkJCSgyMjA4LCAxNTA1KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyOTE1LCAyMjQ1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTE1LCAxNTA1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU2MSwgMjI0NSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjIwOCwgMTUwNSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODc1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODc0DQotCQkJCQkJbG9jYXRpb24gICAJKDI4NzcsIDE1NTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1MjMsIDE1NTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjY1OSw3ICs2NjM2Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ0cmlnZ2VyIiBAMjg3Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjg3Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NywgLTExOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTMwNywgLTExOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjY3MSw3ICs2NjM3NSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4NzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4NzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQ3NiwgMjM5MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjEyMiwgMjM5MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2Njk2LDE2ICs2NjQwMCwxNyBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI4NzMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjgxMA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgyNTYxLCAyMjQ1KQ0KIAkJCQkJCSgyOTE1LCAyMjQ1KQ0KIAkJCQkJCSgyOTE1LCAyMzEwKQ0KIAkJCQkJCSgyMzUyLCAyMzEwKQ0KIAkJCQkJCSgyMzUyLCAyNDIyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyOTE1LCAyMjQ1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjU2MSwgMjI0NSkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM1MiwgMjQyMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODc2DQotCQkJCQkJbG9jYXRpb24gICAJKDIyNTUsIDIzODMpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MDEsIDIzODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjcyNSw3ICs2NjQzMCw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk5OA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDQzIiBAMjg3OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDMwNTksIDI1NzYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzA1OSwgMjU2OSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Njc0MCw3ICs2NjQ0NSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZ3VhcmQiIEAyODgwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyODc5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg4NywgMTIwOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODg3LCAxMjAxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2NzUyLDcgKzY2NDU3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg4MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg4MA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDc4LCAyNjg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDc4LCAyNjgyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY3NzcsMTUgKzY2NDgyLDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg3OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyODE4DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDMwNTksIDI1NzYpDQorCQkJCQkJKDMwNTksIDI1NjkpDQogCQkJCQkJKDMwNTksIDI3NzUpDQogCQkJCQkJKDE5NzEsIDI3NzUpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMwNTksIDI1NzYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMDU5LCAyNTY5KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTcxLCAyNzc1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4ODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjA1MiwgMjgyNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA1MiwgMjgyMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2ODA2LDcgKzY2NTExLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4ODMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4ODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzNCwgMjc0NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjIzNCwgMjczNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2ODI3LDcgKzY2NTMyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ0NCIgQDI4ODQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4NzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODg3LCAxMjA4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4ODcsIDEyMDEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY4NDMsMTUgKzY2NTQ4LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg3OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyODQ5DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDMwNTksIDI1NzYpDQorCQkJCQkJKDMwNTksIDI1NjkpDQogCQkJCQkJKDMwNTksIDEzODApDQogCQkJCQkJKDI5NTMsIDEzODApKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMwNTksIDI1NzYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMDU5LCAyNTY5KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTUzLCAxMzgwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4ODUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4ODQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjk5OCwgMTQ1OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjk5OCwgMTQ1MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2ODcxLDcgKzY2NTc2LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTYxDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NTIiIEAyODg2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjY0MSwgMTYwNykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyNzAwLCAxNjA3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY4ODYsNyArNjY1OTEsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImVmZmVjdCIgQDI4ODcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4ODYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDcxLCAyMzcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUzMCwgMjM3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY4OTgsNyArNjY2MDMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODg4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODg3DQotCQkJCQkJbG9jYXRpb24gICAJKDI1NTQsIDE2MDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI2MTMsIDE2MDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NjkyMiwxMSArNjY2MjcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyODg2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4MjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNjQxLCAxNjA3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjQxLCAxNzEwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjcwMCwgMTYwNykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjcwMCwgMTcxMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyODg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyODg3DQotCQkJCQkJbG9jYXRpb24gICAJKDI3MDksIDE2ODEpDQorCQkJCQkJbG9jYXRpb24gICAJKDI3NjgsIDE2ODEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2OTQ3LDcgKzY2NjUyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI4OTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI4ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM5MywgMTY0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQ1MiwgMTY0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY2OTY4LDcgKzY2NjczLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ1MyIgQDI4OTENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI4ODYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDcxLCAyMzcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUzMCwgMjM3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjY5ODMsMTEgKzY2Njg4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjg4Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyODQ5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjY0MSwgMTYwNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjY0MSwgMTUwNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI3MDAsIDE2MDcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3MDAsIDE1MDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg5Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjg5MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTg3LCAxNTMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNjQ2LCAxNTMwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzA4NiwyMiArNjY3OTEsNiBAQAogCQkJCQlsYWJlbCAgICAgIAkiPDxlbnVtZXJhdGlvbj4+IikNCiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNFNUI5OTE4MDIzMCINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDI4OTYNCi0JCQkJCWxvY2F0aW9uICAgCSgyMTg3LCA0MDYpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAkxMA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkzDQotCQkJCQltYXhfd2lkdGggIAkxNTMpDQogCQkJCSAgICB3aWR0aCAgICAgIAkzOTYNCiAJCQkJICAgIGhlaWdodCAgICAgCTMwNSkpKQ0KIAkJCShvYmplY3QgQ2xhc3NEaWFncmFtICJSZWRlZmluaXRpb25zIg0KQEAgLTY3MzQ2LDcgKzY3MDM1LDcgQEAKIAkJCQkgICAgd2lkdGggICAgICAJMzQ1DQogCQkJCSAgICBoZWlnaHQgICAgIAkxNzcpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MjUiIEAyOTA4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjczMiwgOTM1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDI3MzIsIDkzMykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzM2MSw3ICs2NzA1MCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVkZWZpbmVkU3RhdGUiIEAyOTA5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTA4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE3NjAsIDE0MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc2MCwgMTM5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3MzczLDcgKzY3MDYyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjkxMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjkwOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNzA0LCA3MzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDI3MDQsIDczMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3Mzk4LDE1ICs2NzA4NywxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5MDgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjkwNw0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgyNzMyLCA5MzUpDQorCQkJCQkJKDI3MzIsIDkzMykNCiAJCQkJCQkoMjczMiwgODc4KQ0KIAkJCQkJCSgyNjAyLCA4NzgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI3MzIsIDkzNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI3MzIsIDkzMykNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjYwMiwgODc4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MDkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjYyNCwgODI4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNjI0LCA4MjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzQyNyw3ICs2NzExNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTEyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTA5DQotCQkJCQkJbG9jYXRpb24gICAJKDI4MDcsIDc4OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjgwNywgNzg2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc0NDgsNyArNjcxMzcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDI2IiBAMjkxMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjkwOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxNzYwLCAxNDEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDE3NjAsIDEzOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzQ2NCwxNSArNjcxNTMsMTUgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTA4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5MDcNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMjczMiwgOTM1KQ0KKwkJCQkJCSgyNzMyLCA5MzMpDQogCQkJCQkJKDI3MzIsIDk4OSkNCiAJCQkJCQkoMjYwMiwgOTg5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNzMyLCA5MzUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNzMyLCA5MzMpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI2MDIsIDk4OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTE0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTEzDQotCQkJCQkJbG9jYXRpb24gICAJKDI2NjQsIDEwMjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI2NjQsIDEwMjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzUxNSw3ICs2NzIwNCw3IEBACiAJCQkJICAgIHdpZHRoICAgICAgCTMzNg0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTc3KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDI3IiBAMjkxNg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDMzMjksIDExMTApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzMyOSwgMTEwOSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzUzMCw3ICs2NzIxOSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVkZWZpbmVkVHJhbnNpdGlvbiIgQDI5MTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI5MTYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc4MSwgMzI0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNzgxLCAzMjMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc1NDIsNyArNjcyMzEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTE4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTE3DQotCQkJCQkJbG9jYXRpb24gICAJKDMzODAsIDkxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzM4MCwgOTEzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc1NjcsMTUgKzY3MjU2LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjkxNg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyOTE1DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDMzMjksIDExMTApDQorCQkJCQkJKDMzMjksIDExMDkpDQogCQkJCQkJKDMzMjksIDEwNTApDQogCQkJCQkJKDMyMDQsIDEwNTApKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMzMjksIDExMTApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMzI5LCAxMTA5KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMjA0LCAxMDUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzI4MSwgMTA4MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzI4MSwgMTA4MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3NTk2LDcgKzY3Mjg1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzQ2NiwgOTg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNDY2LCA5ODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzYxNyw3ICs2NzMwNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0MjgiIEAyOTIxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTE2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDE3ODEsIDMyNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc4MSwgMzIzKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3NjMzLDE1ICs2NzMyMiwxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5MTYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjkxNQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgzMzI5LCAxMTEwKQ0KKwkJCQkJCSgzMzI5LCAxMTA5KQ0KIAkJCQkJCSgzMzI5LCAxMTY5KQ0KIAkJCQkJCSgzMjA0LCAxMTY5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMzI5LCAxMTEwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzMyOSwgMTEwOSkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzIwNCwgMTE2OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTIyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTIxDQotCQkJCQkJbG9jYXRpb24gICAJKDMyODEsIDEyMjApDQorCQkJCQkJbG9jYXRpb24gICAJKDMyODEsIDEyMTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzY4OSw3ICs2NzM3OCw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTUxOQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ0NiIgQDI5MjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMDc4LCA3NzQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTA3OCwgODA0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc3MDQsNyArNjczOTMsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9yZWRlZmluaXRpb25Db250ZXh0IiBAMjkyNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjkyNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDQ0LCAtMTc5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDQ0LCAtMTQ5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc3MTYsNyArNjc0MDUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTI1DQotCQkJCQkJbG9jYXRpb24gICAJKDkwMywgNjkzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MDMsIDcyMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3NzQxLDExICs2NzQzMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5MjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjkyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNzgsIDc3NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjUwLCA3NzQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDc4LCA4MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY1MCwgODA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjg3LCA4MDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDY4NywgODMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc3NjYsNyArNjc0NTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjkyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjkyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NzcsIDc0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTc3LCA3NzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Nzc4Nyw3ICs2NzQ3Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NDciIEAyOTI5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTI0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDQsIC0xNzkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDQsIC0xNDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzgwMywxMSArNjc0OTIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTI0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI4OTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDc4LCA3NzQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MDYsIDc3NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNzgsIDgwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUwNiwgODA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ1NywgODIxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDU3LCA4NTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02NzgyNyw3ICs2NzUxNiw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk0Nw0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDQ4IiBAMjkzMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE0NTQsIDk4MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNDU0LCA5NTQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Nzg0Miw3ICs2NzUzMSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDQ5IiBAMjkzMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjkzMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg2MDcsIC0yMDApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDYwNywgLTIyNikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3ODU4LDExICs2NzU0NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5MzENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjkwNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0NTQsIDk4MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI1OCwgOTgwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ1NCwgOTU0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjU4LCA5NTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjkzMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjkzMg0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMjM5LCA5NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMzksIDkzOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc4ODMsNyArNjc1NzIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3JlZGVmaW5pdGlvbkNvbnRleHQiIEAyOTM0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTMxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDYwNywgLTIwMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNjA3LCAtMjI2KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc4OTUsNyArNjc1ODQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTM0DQotCQkJCQkJbG9jYXRpb24gICAJKDkxNCwgODgyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MTQsIDg1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3OTIwLDExICs2NzYwOSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5MzENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjkyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0NTQsIDk4MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjUwLCA5ODApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDU0LCA5NTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY1MCwgOTU0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjk0LCAxMDIyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2OTQsIDk5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY3OTQ1LDcgKzY3NjM0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5MzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5MzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTk4LCA5MjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDk5OCwgODk4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjc5NjUsNyArNjc2NTQsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNTYNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ1MCIgQDI5MzgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzU5LCAxMTY2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE3NTksIDExMTYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Nzk4MCw3ICs2NzY2OSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDUxIiBAMjkzOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjkzOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MTMsIC0xNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTEzLCAtNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02Nzk5NiwxMSArNjc2ODUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTM4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5MTUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzU5LCAxMTY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODY4LCAxMTY2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc1OSwgMTExNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjg2OCwgMTExNikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTQwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTM5DQotCQkJCQkJbG9jYXRpb24gICAJKDI4MTcsIDExODgpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4MTcsIDExMzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY4MDIxLDcgKzY3NzEwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIi9yZWRlZmluaXRpb25Db250ZXh0IiBAMjk0MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjkzOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MTMsIC0xNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTEzLCAtNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODAzMyw3ICs2NzcyMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5NDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5NDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTA2LCAxMDkyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MDYsIDEwNDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODA1OCwxMSArNjc3NDcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTM4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5MjMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzU5LCAxMTY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NTAsIDExNjYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzU5LCAxMTE2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NTAsIDExMTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk0MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2OTYsIDEyMjApDQorCQkJCQkJbG9jYXRpb24gICAJKDY5NiwgMTE3MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY4MDgzLDcgKzY3NzcyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5NDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5NDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTgxLCAxMTM0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5ODEsIDEwODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODU5Niw2ICs2ODI4NSw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQkFGRTJCMzAxMkMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiUHJvdG9jb2xUcmFuc2l0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0IyMDhCRTgwMzg0Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBwcm90b2NvbCB0cmFuc2l0aW9uICh0cmFuc2l0aW9uIGFzIHNwZWNpYWxpemVkIGluIHRoZSBQcm90b2NvbFN0YXRlTWFjaGluZXMgcGFja2FnZSkgc3BlY2lmaWVzIGEgbGVnYWwgdHJhbnNpdGlvbiBmb3IgYW4gb3BlcmF0aW9uLiBUcmFuc2l0aW9ucyBvZiBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lcyBoYXZlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IGEgcHJlIGNvbmRpdGlvbiAoZ3VhcmQpLCBvbiB0cmlnZ2VyLCBhbmQgYSBwb3N0IGNvbmRpdGlvbi4gRXZlcnkgcHJvdG9jb2wgdHJhbnNpdGlvbiBpcyBhc3NvY2lhdGVkIHRvIHplcm8gb3Igb25lIG9wZXJhdGlvbiAocmVmZXJyZWQgQmVoYXZpb3JhbEZlYXR1cmUpIHRoYXQgYmVsb25ncyB0byB0aGUgY29udGV4dCBjbGFzc2lmaWVyIG9mIHRoZSBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lLiBUaGUgcHJvdG9jb2wgdHJhbnNpdGlvbiBzcGVjaWZpZXMgdGhhdCB0aGUgYXNzb2NpYXRlZCAocmVmZXJyZWQpIG9wZXJhdGlvbiBjYW4gYmUgY2FsbGVkIGZvciBhbiBpbnN0YW5jZSBpbiB0aGUgb3JpZ2luIHN0YXRlIHVuZGVyIHRoZSBpbml0aWFsIGNvbmRpdGlvbiAoZ3VhcmQpLCBhbmQgdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2l0aW9uLCB0aGUgZGVzdGluYXRpb24gc3RhdGUgd2lsbCBiZSByZWFjaGVkIHVuZGVyIHRoZSBmaW5hbCBjb25kaXRpb24gKHBvc3QpLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTExRUQ4MjAwQTAiDQpAQCAtNjg4ODAsNyArNjg1NzAsNyBAQAogCQkJCSAgICB3aWR0aCAgICAgIAk2MjUNCiAJCQkJICAgIGhlaWdodCAgICAgCTMxMikNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ2MiIgQDI5NzINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2OTEsIDM2OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2OTEsIDQwNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODg5NSw3ICs2ODU4NSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicHJvdG9jb2wiIEAyOTczDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTcyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5OSwgLTM5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0OTksIC0yKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY4OTA3LDcgKzY4NTk3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk3NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk3Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MDEsIDQxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODAxLCA0NTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODkzMSwxMSArNjg2MjEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTcyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5NzENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTEsIDM2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTE4LCAzNjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTEsIDQwNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTE4LCA0MDYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk3NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk3Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NjcsIDMyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODY3LCAzNjUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODk1Niw3ICs2ODY0Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NjMiIEAyOTc2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTcyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5OSwgLTM5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0OTksIC0yKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY4OTY4LDcgKzY4NjU4LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk3Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NDgsIDQxMSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTQ4LCA0NDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02ODk5MywxMSArNjg2ODMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTcyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5NjgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTEsIDM2OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDY0LCAzNjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTEsIDQwNikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDY0LCA0MDYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk3OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk3Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg0OTYsIDM0NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDk2LCAzODEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTAxNyw3ICs2ODcwNyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkyNg0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDY1IiBAMjk3OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDY4OSwgNjIyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDY4OSwgNTkyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5MDMyLDcgKzY4NzIyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwcm90b2NvbCIgQDI5ODANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI5NzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNDk3LCA0NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDk3LCAxNikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTA0NCw3ICs2ODczNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5ODENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5ODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODI2LCA2NzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDgyNiwgNjQ1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkwNjgsMTEgKzY4NzU4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjk3OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyOTcxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjg5LCA2MjIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkxOCwgNjIyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjg5LCA1OTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkxOCwgNTkyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5ODANCi0JCQkJCQlsb2NhdGlvbiAgIAkoODcwLCA1ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3MCwgNTU2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkwOTMsNyArNjg3ODMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjk4Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMjk4MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NDcsIDc1NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTQ3LCA3MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTExNCw3ICs2ODgwNCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnRlcmZhY2UiIEAyOTg0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTc5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5NywgNDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDQ5NywgMTYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkxMjYsNyArNjg4MTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTg0DQotCQkJCQkJbG9jYXRpb24gICAJKDU2NCwgNjg1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NjQsIDY1NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5MTUwLDExICs2ODg0MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5NzkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjk2OQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4OSwgNjIyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NjEsIDYyMikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4OSwgNTkyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0NjEsIDU5MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTg0DQotCQkJCQkJbG9jYXRpb24gICAJKDUwNCwgNTczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MDQsIDU0MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5MTc1LDcgKzY4ODY1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5ODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5ODQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDM0LCA3NTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDQzNCwgNzI0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkxOTUsNyArNjg4ODUsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMTMyDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NjYiIEAyOTg4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTk4MCwgNTgzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE5ODAsIDUwNCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTIxMCw3ICs2ODkwMCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZ2VuZXJhbE1hY2hpbmUiIEAyOTg5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAyOTg4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNjYyLCAtNjY1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY2MiwgLTc0NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTIyMiw3ICs2ODkxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5OTANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5ODkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTcyNCwgNjIxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzI0LCA1NDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTI0NywxMSArNjg5MzcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTg4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5NzENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTgwLCA1ODMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDIsIDU4MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5ODAsIDUwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0MiwgNTA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5OTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5ODkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTYwNiwgNTQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjA2LCA0NjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTI3Miw3ICs2ODk2Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTkyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTg5DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MjYsIDY4MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcyNiwgNjAzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkyOTMsNyArNjg5ODMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDY3IiBAMjk5Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjk4OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY2MiwgLTY2NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE2NjIsIC03NDQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkzMDksMTEgKzY4OTk5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMjk4OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAyOTcwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk4MCwgNTgzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDE4LCA1ODMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTgwLCA1MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0MTgsIDUwNCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTkzDQotCQkJCQkJbG9jYXRpb24gICAJKDIzODMsIDU1NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjM4MywgNDc3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjkzMzMsNyArNjkwMjMsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMjgNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ2MSIgQDI5OTUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxOTgwLCA0MTApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTk4MCwgNTA0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5MzQ4LDcgKzY5MDM4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb25mb3JtYW5jZSIgQDI5OTYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDI5OTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcwOCwgLTkyOCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcwOCwgLTgzNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTM2MCw3ICs2OTA1MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5OTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5OTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI0MCwgNDQzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMjQwLCA1MzcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTM4NSwxMSArNjkwNzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAyOTk1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDI5NzANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTgwLCA0MTApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0MTgsIDQxMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5ODAsIDUwNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQxOCwgNTA0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI5OTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDI5OTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM5MCwgMzU3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMzkwLCA0NTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTQxMCw3ICs2OTEwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTk5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAyOTk2DQotCQkJCQkJbG9jYXRpb24gICAJKDIxNjMsIDQ4MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjE2MywgNTc3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk0MzEsNyArNjkxMjEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic3BlY2lmaWNNYWNoaW5lIiBAMzAwMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMjk5NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzA4LCAtOTI4KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzA4LCAtODM0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NDQzLDcgKzY5MTMzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAwMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAwMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzQxLCAzMDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3NDEsIDQwMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NDY4LDExICs2OTE1OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDI5OTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMjk3MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5ODAsIDQxMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0MiwgNDEwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk4MCwgNTA0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQyLCA1MDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAwMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAwMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjAyLCA0NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MDIsIDU1OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NDkzLDcgKzY5MTgzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMDANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg4MCwgMzY2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODgwLCA0NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTYzMSwxMyArNjkzMjEsMTMgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTY5DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDY4IiBAMzAwOQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE4NTksIDIzMDcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzQ3NCwgMjM4MykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRDA0MTcyMTAxRDgiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInN0YXRlSW52YXJpYW50IiBAMzAxMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzAwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MjMsIDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI1MzgsIDg1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NjQ5LDcgKzY5MzM5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAxMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAxMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzAwLCAyMDcwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzOTE1LCAyMTQ2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk2NzMsMTUgKzY5MzYzLDE3IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzAwOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDA4DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDE4NTksIDIzMDcpDQorCQkJCQkJKDM0NzQsIDIzODMpDQorCQkJCQkJKDM3MTgsIDIzODMpDQorCQkJCQkJKDM3MTgsIDIzMDcpDQogCQkJCQkJKDIxNDEsIDIzMDcpDQogCQkJCQkJKDIxNDEsIDIwMjIpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NTksIDIzMDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDc0LCAyMzgzKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTQxLCAyMDIyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjA3MSwgMjA2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzY4NiwgMjE0MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NzAyLDcgKzY5Mzk0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM5MiwgMjExOSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDAwNywgMjE5NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NzIzLDcgKzY5NDE1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmluZ1N0YXRlIiBAMzAxNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzAwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MjMsIDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI1MzgsIDg1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5NzM1LDcgKzY5NDI3LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAxNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDk1LCAyMjU5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTEwLCAyMzM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk3NTksMTEgKzY5NDUxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzAwOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDA3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTg1OSwgMjMwNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI5MiwgMjMwNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0NzQsIDIzODMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyOTIsIDIzODMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAxNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQ5LCAyMzYxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyOTY0LCAyNDM3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk3ODQsNyArNjk0NzYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAxNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTc3LCAyMzUwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMTkyLCAyNDI2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk4NTcsNyArNjk1NDksNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxNjYNCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NjQiIEAzMDIwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTY0MSwgMTk5MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNjQxLCAxOTMxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5ODcyLDcgKzY5NTY0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwb3N0Q29uZGl0aW9uIiBAMzAyMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzAyMA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzUzLCA3NjcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC03NTMsIDcwNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC02OTg4NCw3ICs2OTU3Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTgzMCwgMjAyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTgzMCwgMTk2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5OTA5LDExICs2OTYwMSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMwMjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzAwOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NDEsIDE5OTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5OTgsIDE5OTEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjQxLCAxOTMxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCAxOTMxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTkyNSwgMTk2NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkyNSwgMTkwNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5OTM0LDcgKzY5NjI2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMjQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc1OSwgMjA3MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc1OSwgMjAxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5OTU1LDcgKzY5NjQ3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmluZ1RyYW5zaXRpb24iIEAzMDI1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03NTMsIDc2NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTc1MywgNzA3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTY5OTY3LDcgKzY5NjU5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDczLCAxOTUwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDczLCAxODkwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNjk5OTIsMTEgKzY5Njg0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzAyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDE5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY0MSwgMTk5MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4NCwgMTk5MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NDEsIDE5MzEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyODQsIDE5MzEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzg1LCAyMDQyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzg1LCAxOTgyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzAwMTcsNyArNjk3MDksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzIwLCAyMDk5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzIwLCAyMDM5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzAwMzcsNyArNjk3MjksNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMTA4DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NzAiIEAzMDI5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTY0MSwgMTg2NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNjQxLCAxOTMxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwMDUyLDcgKzY5NzQ0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwcmVDb25kaXRpb24iIEAzMDMwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDI5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU2MSwgLTYwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1NjEsIDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzAwNjQsNyArNjk3NTYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDMxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDMwDQotCQkJCQkJbG9jYXRpb24gICAJKDE3MjUsIDE4MTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MjUsIDE4ODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDA4OCwxMSArNjk3ODAsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMDI5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMwMDgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjQxLCAxODY2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCAxODY2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY0MSwgMTkzMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk5OCwgMTkzMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDMyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDMwDQotCQkJCQkJbG9jYXRpb24gICAJKDE5MjAsIDE4OTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MjAsIDE5NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDExMyw3ICs2OTgwNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDMzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDMwDQotCQkJCQkJbG9jYXRpb24gICAJKDIwMzMsIDE4MTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMzMsIDE4ODMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDEzNCw3ICs2OTgyNiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NzEiIEAzMDM0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDI5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDU2MSwgLTYwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1NjEsIDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzAxNDksMTEgKzY5ODQxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzAyOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDE5DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY0MSwgMTg2NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4NCwgMTg2NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NDEsIDE5MzEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyODQsIDE5MzEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzAzNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzAzNA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDA3LCAxODAzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDA3LCAxODY4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzAxNzksNyArNjk4NzEsNyBAQAogCQkJCSAgICBzdXBwbGllciAgIAlAMzAwNA0KIAkJCQkgICAgbGluZV9zdHlsZSAJMCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiAiIEAzMDM3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzIyLCAxODg3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDcyMiwgMTkwNSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDE5NCw3ICs2OTg4Niw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiL3JlZmVycmVkIiBAMzAzOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzAzNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzU4LCAtMzkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNTgsIC0yMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDIwNiw3ICs2OTg5OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwMzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjc4LCAxOTQ4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzgsIDE5NjYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDIzMCwxMSArNjk5MjIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMDM3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMwMTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MjIsIDE4ODcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU2OCwgMTg4NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDcyMiwgMTkwNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTY4LCAxOTA1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwNDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwMzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjE5LCAxODQxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MTksIDE4NTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDI1NSw3ICs2OTk0Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NjkiIEAzMDQxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDM3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zNTgsIC0zOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM1OCwgLTIxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwMjcwLDExICs2OTk2MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMwMzcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzAxOQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDcyMiwgMTg4NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODc2LCAxODg3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzIyLCAxOTA1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NzYsIDE5MDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzA0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzA0MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NTksIDE4NDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDg1OSwgMTg1OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNjE3LDcgKzcwMzA5LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTI2DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDc0IiBAMzA1NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExMDAsIDY0NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMTAwLCA2NjYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDYzMiw3ICs3MDMyNCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVnaW9uIiBAMzA1Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzA1NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0LCAyMDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIDIzMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNjQ0LDcgKzcwMzM2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzA1Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzA1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjg2LCA1NTEpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyODYsIDU3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNjY5LDExICs3MDM2MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMwNTUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzA0Ng0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMDAsIDY0NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQwOSwgNjQ0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEwMCwgNjY2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDA5LCA2NjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzA1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzA1Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzUyLCA2ODgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTIsIDcxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcwNjk0LDcgKzcwMzg2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwNTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwNTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIwOCwgNjAxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjA4LCA2MjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MDcxNSw3ICs3MDQwNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0NzUiIEAzMDYwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDU1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIDIwOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExNCwgMjMxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzA3MzEsMTEgKzcwNDIzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzA1NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDU0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEwMCwgNjQ0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3OTIsIDY0NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMDAsIDY2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzkyLCA2NjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzA2MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzA2MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NTUsIDY5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODU1LCA3MTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTM3OCw3ICs3MTA3MCw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzgyLCA3MTkpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzgyLCAzMDQpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDc3IiBAMzA4NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDU0OSwgNTExKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDM5MCwgNTEyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxMzk0LDcgKzcxMDg2LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXByZXNlbnRlZCIgQDMwODYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMwODUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExMSwgLTI5MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI3MCwgLTI5MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTQwNiw3ICs3MTA5OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzEzLCAzNTApDQorCQkJCQkJbG9jYXRpb24gICAJKDU1NCwgMzUxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzE0MzEsMTEgKzcxMTIzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzA4NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMDgzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTQ5LCA1MTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU0OSwgMzA0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzkwLCA1MTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM5MCwgMzA1KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMwODYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTAzLCAzNTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDM0NCwgMzYwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzE0NTYsNyArNzExNDgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVwcmVzZW50YXRpb24iIEAzMDg5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDg1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTEsIC0yOTMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNzAsIC0yOTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzE0NjgsNyArNzExNjAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDg5DQotCQkJCQkJbG9jYXRpb24gICAJKDc0MywgNjI1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1ODQsIDYyNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxNDkzLDExICs3MTE4NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMwODUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzA4MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU0OSwgNTExKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NDksIDcxOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM5MCwgNTEyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzOTAsIDcxOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMDkxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMDg5DQotCQkJCQkJbG9jYXRpb24gICAJKDYwMywgNjk3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NDQsIDY5OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxNzAwLDcgKzcxMzkyLDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NzgiIEAzMTAxDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIzMiwgMjI4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDgwNCwgNzE5KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxNzE2LDcgKzcxNDA4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjb252ZXllZCIgQDMxMDINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMxMDENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI5OCwgLTU5NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyNiwgLTEwMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTcyOCw3ICs3MTQyMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxMDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoODQyLCAxODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDQxNCwgNjc4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzE3NTIsMTIgKzcxNDQ0LDE2IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0REM0RFMzMwMjFFIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTAxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMwODMNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoODA0LCA3MTkpDQorCQkJCQkJKDc0NCwgNzE5KQ0KKwkJCQkJCSg3NDQsIDMwNSkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIzMiwgMjI4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDQsIDIyOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgwNCwgNzE5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDQsIDMwNSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTAyDQotCQkJCQkJbG9jYXRpb24gICAJKDc5NCwgMjgyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNjYsIDc3MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxNzc4LDcgKzcxNDc0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ3OSIgQDMxMDUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMxMDENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI5OCwgLTU5NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyNiwgLTEwMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MTc5MywxNiArNzE0ODksMTIgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREQzREUzMzAyNUEiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxMDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzA5Mg0KLQkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxMjMyLCAyMjgpDQotCQkJCQkJKDEyOTIsIDIyOCkNCi0JCQkJCQkoMTI5MiwgNzE5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjMyLCAyMjgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyOTIsIDcxOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MDgsIDE0MzgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3OTEsIDE1NDEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzEwNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzEwNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQ2LCA2NjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDkxOCwgMTE1NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcxODczLDYgKzcxNTY1LDcgQEAKIAkJICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQogCQkJKG9iamVjdCBDbGFzcyAiTW9kZWwiDQogCQkJICAgIHF1aWQgICAgICAgCSIzMjdBNUQxRTAwMzIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgTW9kZWwgY29uc3RydWN0IGlzIGRlZmluZWQgYXMgYSBQYWNrYWdlLiBJdCBjb250YWlucyBhIChoaWVyYXJjaGljYWwpIHNldCBvZiBlbGVtZW50cyB0aGF0IHRvZ2V0aGVyIGRlc2NyaWJlIHRoZSBwaHlzaWNhbCBzeXN0ZW0gYmVpbmcgbW9kZWxlZC4gQSBNb2RlbCBtYXkgYWxzbyBjb250YWluIGEgc2V0IG9mIGVsZW1lbnRzIHRoYXQgcmVwcmVzZW50cyB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIHN5c3RlbSwgdHlwaWNhbGx5IEFjdG9ycywgdG9nZXRoZXIgd2l0aCB0aGVpciBpbnRlcnJlbGF0aW9uc2hpcHMsIHN1Y2ggYXMgQXNzb2NpYXRpb25zIGFuZCBEZXBlbmRlbmNpZXMgIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiMzNFREI1ODYwMTQwIg0KQEAgLTcxODgxLDggKzcxNTc0LDcgQEAKIAkJCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ2aWV3cG9pbnQiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0QyQzMyODYwMTg4Ig0KLQkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiKSkNCisJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciKSkNCiAJCQkgICAgbGFuZ3VhZ2UgICAJIm5vbmUiKSkNCiAJCSAgICBsb2dpY2FsX3ByZXNlbnRhdGlvbnMgCShsaXN0IHVuaXRfcmVmZXJlbmNlX2xpc3QNCiAJCQkob2JqZWN0IENsYXNzRGlhZ3JhbSAiTW9kZWxzIg0KQEAgLTcxOTY4LDYgKzcxNjYwLDcgQEAKIAkJICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQogCQkJKG9iamVjdCBDbGFzcyAiVGVtcGxhdGVTaWduYXR1cmUiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTI4MDNFRTAxNkUiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJBIFRlbXBsYXRlU2lnbmF0dXJlIGlzIG93bmVkIGJ5IGEgVGVtcGxhdGVhYmxlRWxlbWVudCBhbmQgaGFzIG9uZSBvciBtb3JlIFRlbXBsYXRlUGFyYW1ldGVycyB0aGF0IGRlZmluZSB0aGUgc2lnbmF0dXJlIGZvciBiaW5kaW5nIHRoaXMgdGVtcGxhdGUuIEEgVGVtcGxhdGVTaWduYXR1cmUgbWF5IHJlZmVyZW5jZSBhIHNldCBvZiBuZXN0ZWQgdGVtcGxhdGUgc2lnbmF0dXJlcyB0byByZWZsZWN0IHRoZSBoaWVyYXJjaGljYWwgbmF0dXJlIG9mIGEgdGVtcGxhdGUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzc0Njg3MDA3QyINCkBAIC03MTk3NSw2ICs3MTY2OCw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRUMwRDAxNzYiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiTmFtZWRFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UyODA0MjgwMkRBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiTmFtZWRFbGVtZW50IHNwZWNpYWxpemVzIEtlcm5lbDo6TmFtZWRFbGVtZW50IGFuZCBhZGRzIGEgY29tcG9zaXRpb24gYXNzb2NpYXRpb24gdG8gRXhwcmVzc2lvbi4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UzMTI4QUYwMTZEIg0KQEAgLTcxOTg4LDExICs3MTY4MiwxMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIm5hbWUiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0U1QjkyMzYwMjVGIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiVGVtcGxhdGVQYXJhbWV0ZXIiDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTI4MDQ0QzAwMEIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJUZW1wbGF0ZVBhcmFtZXRlciByZWZlcmVuY2VzIGEgUGFyYW1ldGVyYWJsZUVsZW1lbnQgd2hpY2ggaXMgZXhwb3NlZCBhcyBhIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgaW4gdGhlIGNvbnRhaW5pbmcgdGVtcGxhdGUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzc0NjlDMDE2MiINCkBAIC03MjAwNyw2ICs3MTcwMSw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRTMxMjY5QTAwMUMiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiVGVtcGxhdGVCaW5kaW5nIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UyODEyOUQwMDc5Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiVGVtcGxhdGVCaW5kaW5nIGlzIGEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIGZyb20gYSBib3VuZCB0ZW1wbGF0ZWFibGUgZWxlbWVudCB0byB0aGUgdGVtcGxhdGUgc2lnbmF0dXJlIG9mIHRoZSB0YXJnZXQgdGVtcGxhdGUuIEEgVGVtcGxhdGVCaW5kaW5nIG93bnMgYSBzZXQgb2YgdGVtcGxhdGUgcGFyYW1ldGVyIHN1YnN0aXR1dGlvbnMuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzc3NjBGMDMzNiINCkBAIC03MjAxNCw2ICs3MTcwOSw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0FBRUMxOTAyQkUiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTI4MTJBQTAyOEIiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbiBhc3NvY2lhdGVzIG9uZSBvciBtb3JlIGFjdHVhbCBwYXJhbWV0ZXJzIHdpdGggYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhIFRlbXBsYXRlQmluZGluZy4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UzNzc1NjcwM0RFIg0KQEAgLTcyMDMyLDYgKzcxNzI4LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUMwN0M5MDFEOSIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJUZW1wbGF0ZWFibGVFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzMTI2OUEwMDFDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiVGVtcGxhdGVhYmxlRWxlbWVudCBtYXkgY29udGFpbiBhIHRlbXBsYXRlIHNpZ25hdHVyZSB3aGljaCBzcGVjaWZpZXMgdGhlIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLiBBIFRlbXBsYXRlYWJsZUVsZW1lbnQgdGhhdCBjb250YWlucyBhIHRlbXBsYXRlIHNpZ25hdHVyZSBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyBhIHRlbXBsYXRlLiBUZW1wbGF0ZWFibGVFbGVtZW50IG1heSBjb250YWluIGJpbmRpbmdzIHRvIHRlbXBsYXRlcyB0aGF0IGRlc2NyaWJlIGhvdyB0aGUgdGVtcGxhdGVhYmxlIGVsZW1lbnQgaXMgY29uc3RydWN0ZWQgYnkgcmVwbGFjaW5nIHRoZSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVycyB3aXRoIGFjdHVhbCBwYXJhbWV0ZXJzLiBBIFRlbXBsYXRlYWJsZUVsZW1lbnQgY29udGFpbmluZyBiaW5kaW5ncyBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyBhIGJvdW5kIGVsZW1lbnQuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzc0NTBGMDAyQiINCkBAIC03MjA0OCw2ICs3MTc0NSw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJQYXJhbWV0ZXJhYmxlRWxlbWVudCINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMzEyNkE5MDIwOCINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkEgUGFyYW1ldGVyYWJsZUVsZW1lbnQgY2FuIGJlIHJlZmVyZW5jZWQgYnkgYSBUZW1wbGF0ZVBhcmFtZXRlciB3aGVuIGRlZmluaW5nIGEgZm9ybWFsIHRlbXBsYXRlIHBhcmFtZXRlciBmb3IgYSB0ZW1wbGF0ZS4gQSBQYXJhbWV0ZXJhYmxlRWxlbWVudCBjYW4gYmUgcmVmZXJlbmNlZCBieSBhIFRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uIHdoZW4gdXNlZCBhcyBhbiBhY3R1YWwgcGFyYW1ldGVyIGluIGEgYmluZGluZyBvZiBhIHRlbXBsYXRlLiBQYXJhbWV0ZXJhYmxlRWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzc0NkFCMDNCRCINCkBAIC03MjA1Niw2ICs3MTc1NCw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJQYWNrYWdlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzMTI3QjMwMkFCIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiUGFja2FnZSBzcGVjaWFsaXplcyBUZW1wbGF0ZWFibGVFbGVtZW50IGFuZCBQYWNrYWdlYWJsZUVsZW1lbnQgc3BlY2lhbGl6ZXMgUGFyYW1ldGVyYWJsZUVsZW1lbnQgdG8gc3BlY2lmeSB0aGF0IGEgcGFja2FnZSBjYW4gYmUgdXNlZCBhcyBhIHRlbXBsYXRlIGFuZCBhIFBhY2thZ2VhYmxlRWxlbWVudCBhcyBhIHRlbXBsYXRlIHBhcmFtZXRlci4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UzMTI3RTEwMzI5Ig0KQEAgLTcyMDk3LDYgKzcxNzk2LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNDQUIxREQ3MDAxNiIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJQcm9wZXJ0eSINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFMzNEMUZBMDExRSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIlByb3BlcnR5IHNwZWNpYWxpemVzIFBhcmFtZXRlcmFibGVFbGVtZW50IHRvIHNwZWNpZnkgdGhhdCBhIHByb3BlcnR5IGNhbiBiZSBleHBvc2VkIGFzIGEgZm9ybWFsIHRlbXBsYXRlIHBhcmFtZXRlciwgYW5kIHByb3ZpZGVkIGFzIGFuIGFjdHVhbCBwYXJhbWV0ZXIgaW4gYSBiaW5kaW5nIG9mIGEgdGVtcGxhdGUuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFMzNGNUYxMDBDOCINCkBAIC03MjExMiw2ICs3MTgxMiw3IEBACiAJCQkJICAgIHF1aWR1ICAgICAgCSIzQjk5ODI1RTAzQjQiKSkpDQogCQkJKG9iamVjdCBDbGFzcyAiVmFsdWVTcGVjaWZpY2F0aW9uIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzM0Y2MDMwMUYwIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiVmFsdWVTcGVjaWZpY2F0aW9uIHNwZWNpYWxpemVzIFBhcmFtZXRlcmFibGVFbGVtZW50IHRvIHNwZWNpZnkgdGhhdCBhIHZhbHVlIHNwZWNpZmljYXRpb24gY2FuIGJlIGV4cG9zZWQgYXMgYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyLCBhbmQgcHJvdmlkZWQgYXMgYW4gYWN0dWFsIHBhcmFtZXRlciBpbiBhIGJpbmRpbmcgb2YgYSB0ZW1wbGF0ZS4gIg0KIAkJCSAgICBzdXBlcmNsYXNzZXMgCShsaXN0IGluaGVyaXRhbmNlX3JlbGF0aW9uc2hpcF9saXN0DQogCQkJCShvYmplY3QgSW5oZXJpdGFuY2VfUmVsYXRpb25zaGlwDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0UzM0Y2MTcwMjIxIg0KQEAgLTcyMTQ2LDYgKzcxODQ3LDcgQEAKIAkJCQkgICAgcXVpZHUgICAgICAJIjNFNTkyMUVFMDEwQSIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJPcGVyYXRpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzRTM5QUVEQjAwMjEiDQorCQkJICAgIGRvY3VtZW50YXRpb24gCSJPcGVyYXRpb24gc3BlY2lhbGl6ZXMgUGFyYW1ldGVyYWJsZUVsZW1lbnQgdG8gc3BlY2lmeSB0aGF0IGFuIG9wZXJhdGlvbiBjYW4gYmUgZXhwb3NlZCBhcyBhIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIsIGFuZCBwcm92aWRlZCBhcyBhbiBhY3R1YWwgcGFyYW1ldGVyIGluIGEgYmluZGluZyBvZiBhIHRlbXBsYXRlLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTM5QUVFQzAzQkUiDQpAQCAtNzIxNjEsNiArNzE4NjMsNyBAQAogCQkJCSAgICBxdWlkdSAgICAgIAkiM0UzMTI2OUEwMDFDIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIk9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzOUIwOTYwMTkwIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIgaXMgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgd2hlcmUgdGhlIHBhcmFtZXRlcmVkIGVsZW1lbnQgaXMgYW4gT3BlcmF0aW9uLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTM5QjBBQTAwM0EiDQpAQCAtNzIxODAsNiArNzE4ODMsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFNEI1NDNFMDFBOSINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkNsYXNzaWZpZXIgc3BlY2lhbGl6ZXMgS2VybmVsOjpDbGFzc2lmaWVyIFRlbXBsYXRlYWJsZUVsZW1lbnQgYW5kIFBhcmFtZXRlcmFibGVFbGVtZW50IHRvIHNwZWNpZnkgdGhhdCBhIGNsYXNzaWZpZXIgY2FuIGJlIHBhcmFtZXRlcml6ZWQsIGJlIGV4cG9zZWQgYXMgYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyLCBhbmQgY2FuIGJlIHNwZWNpZmllZCBhcyBhbiBhY3R1YWwgcGFyYW1ldGVyIGluIGEgYmluZGluZyBvZiBhIHRlbXBsYXRlLiBBIGNsYXNzaWZpZXIgd2l0aCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIGlzIG9mdGVuIGNhbGxlZCBhIHRlbXBsYXRlIGNsYXNzaWZpZXIsIHdoaWxlIGEgY2xhc3NpZmllciB3aXRoIGEgYmluZGluZyBpcyBvZnRlbiBjYWxsZWQgYSBib3VuZCBjbGFzc2lmaWVyLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTRCNTRBNDAwQkYiDQpAQCAtNzIxOTYsNiArNzE5MDAsNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzNzk0M0IwMjZBIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQ2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGEgQ2xhc3NpZmllciBpbiBpdHMgY2FwYWNpdHkgb2YgYmVpbmcgYSBraW5kIG9mIFBhcmFtZXRlcmFibGVFbGVtZW50LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTM3OTQ0QzAxOTIiDQpAQCAtNzIyMDUsNyArNzE5MTAsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImFsbG93U3Vic3RpdHV0YWJsZSINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTNFREVBNTAyNDEiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkidHJ1ZSIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJQYXJhbWV0ZXJhYmxlQ2xhc3NpZmllciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFM0VBRTlGMDBENiINCkBAIC03MjIyMSw2ICs3MTkyNSw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJSZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlIg0KIAkJCSAgICBxdWlkICAgICAgIAkiM0UzNzdENTUwMDZDIg0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiUmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZSBzcGVjaWFsaXplcyBib3RoIFRlbXBsYXRlU2lnbmF0dXJlIGFuZCBSZWRlZmluYWJsZUVsZW1lbnQgaW4gb3JkZXIgdG8gYWxsb3cgdGhlIGFkZGl0aW9uIG9mIG5ldyBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVycyBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpYWxpemluZyB0ZW1wbGF0ZSBDbGFzc2lmaWVyLiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTM3N0Q2NDAyRDAiDQpAQCAtNzIyNDQsNiArNzE5NDksNyBAQAogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQogCQkJKG9iamVjdCBDbGFzcyAiQ29ubmVjdGFibGVFbGVtZW50Ig0KIAkJCSAgICBxdWlkICAgICAgIAkiM0U0OTAwNTQwMzM1Ig0KKwkJCSAgICBkb2N1bWVudGF0aW9uIAkiQ29ubmVjdGFibGVFbGVtZW50IGlzIHRoZSBjb25uZWN0YWJsZSBlbGVtZW50IG9mIGEgQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIuICINCiAJCQkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KIAkJCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KIAkJCQkgICAgcXVpZCAgICAgICAJIjNFNDkwMDcwMDE4NyINCkBAIC03MjI1Niw2ICs3MTk2Miw3IEBACiAJCQkgICAgYWJzdHJhY3QgICAJVFJVRSkNCiAJCQkob2JqZWN0IENsYXNzICJDb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlciINCiAJCQkgICAgcXVpZCAgICAgICAJIjNFNDk3RTU0MDM5QiINCisJCQkgICAgZG9jdW1lbnRhdGlvbiAJIkNvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGEgQ29ubmVjdGFibGVFbGVtZW50LiAiDQogCQkJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCiAJCQkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCiAJCQkJICAgIHF1aWQgICAgICAgCSIzRTQ5N0VDNzAxODMiDQpAQCAtNzI4OTgsNyArNzI2MDUsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc5OCwgNzk1KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc5OCwgNjg3KSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ5OCIgQDMxMjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTU5LCA5MzEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU1OSwgOTY2KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTcyOTEzLDcgKzcyNjIwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25lZFRlbXBsYXRlU2lnbmF0dXJlIiBAMzEyNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzEyNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTQ3LCAxODcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01NDcsIDIyMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MjkyNSw3ICs3MjYzMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMxOSwgODg5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzE5LCA5MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mjk1MCwxMSArNzI2NTcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTI0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxMjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTU5LCA5MzEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMzEsIDkzMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NTksIDk2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAzMSwgOTY2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA5NiwgOTcyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDk2LCAxMDA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzI5NzUsNyArNzI2ODIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzEyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzEyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzA5LCAxMDMxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzA5LCAxMDY2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzI5OTYsNyArNzI3MDMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidGVtcGxhdGUiIEAzMTI5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTI0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01NDcsIDE4NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU0NywgMjIyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczMDA4LDcgKzcyNzE1LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzEzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzEyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxOTU5LCA4ODUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5NTksIDkyMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczMDMzLDExICs3Mjc0MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxMjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEyMA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NTksIDkzMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjA4OCwgOTMxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU1OSwgOTY2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDg4LCA5NjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzEzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzEyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDU3LCA5ODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNTcsIDEwMjIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzA1OCw3ICs3Mjc2NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTMyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTI5DQotCQkJCQkJbG9jYXRpb24gICAJKDE5MDIsIDEwNDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE5MDIsIDEwNzcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzEzMiw3ICs3MjgzOSw3IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTc3OQ0KIAkJCQkgICAgYW5ub3RhdGlvbiAJOCkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ4MCIgQDMxMzUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5MjgsIDEzMzYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODEyLCAxMzM1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczMTQ3LDcgKzcyODU0LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJwYXJhbWV0ZXIiIEAzMTM2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ3OCwgOTEwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjIsIDkwOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzE1OSw3ICs3Mjg2Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxMzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA1OSwgMTQ2OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTQzLCAxNDY4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMxODQsMTEgKzcyODkxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzEzNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMTM0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTI4LCAxMzM2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MjgsIDE1ODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTIsIDEzMzUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgxMiwgMTU4NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTM2DQotCQkJCQkJbG9jYXRpb24gICAJKDg3NiwgMTUzNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzYwLCAxNTMzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMyMDksMTcgKzcyOTE2LDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0ODEiIEAzMTM5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTM1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ3OCwgOTEwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjIsIDkwOSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzRTI4MDUzODAzMzYiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxMzUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEyMg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkyOCwgMTMzNikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTI4LCAxMDg4KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODEyLCAxMzM1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MTIsIDEwODcpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0ODIiIEAzMTQwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNjkxLCAxMzM2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDgxMiwgMTMzNSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzIzNCw3ICs3Mjk0MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRQYXJhbWV0ZXIiIEAzMTQxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTQwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDI0MSwgOTEwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjIsIDkwOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzI0Niw3ICs3Mjk1Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNDINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDg2LCAxNDQ1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MDcsIDE0NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzI3MSwxMSArNzI5NzgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTQwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxMzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTEsIDEzMzYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY5MSwgMTU4NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgxMiwgMTMzNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODEyLCAxNTg0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzI3LCAxNTUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4NDgsIDE1NTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzI5Niw3ICs3MzAwMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTQxDQotCQkJCQkJbG9jYXRpb24gICAJKDQxMCwgMTUzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTMxLCAxNTMyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMzMjAsNyArNzMwMjcsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2lnbmF0dXJlIiBAMzE0NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE0MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyNDEsIDkxMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzYyLCA5MDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMzMzIsNyArNzMwMzksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTQ2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDU4MywgMTE0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzA0LCAxMTQxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMzNTcsMTEgKzczMDY0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzE0MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMTIyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjkxLCAxMzM2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2OTEsIDEwODgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTIsIDEzMzUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgxMiwgMTA4NykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTQ3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTQ1DQotCQkJCQkJbG9jYXRpb24gICAJKDc0NCwgMTEzMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoODY1LCAxMTMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzMzODIsNyArNzMwODksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzE0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzE0NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTQsIDEyMTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDYzNSwgMTIxMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNDEwLDEzICs3MzExNywxMyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc5MCwgMjM2MykNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3OTAsIDI0OTgpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDk2IiBAMzE1MA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE3MTQsIDE5MzEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTcxNCwgMTk3NCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRTMxMjcwNDAxMDQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRlbXBsYXRlUGFyYW1ldGVyIiBAMzE1MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE1MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjgsIDExNjkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02OCwgMTIxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzQyOCw3ICs3MzEzNSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyNCwgMTg4NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMyNCwgMTkyOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNDUzLDExICs3MzE2MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxNTANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEzNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MTQsIDE5MzEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMTIsIDE5MzEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAxOTc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDEyLCAxOTc0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA5NywgMTk2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA5NywgMjAwOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNDc4LDcgKzczMTg1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInBhcmFtZXRlcmVkRWxlbWVudCIgQDMxNTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMxNTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY4LCAxMTY5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjgsIDEyMTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM0OTAsNyArNzMxOTcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTU1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTU0DQotCQkJCQkJbG9jYXRpb24gICAJKDIwODIsIDE4OTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwODIsIDE5MzgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzUxNSwxMSArNzMyMjIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTUwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxMzMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAxOTMxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDE2LCAxOTMxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxNCwgMTk3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQxNiwgMTk3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTU2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTU0DQotCQkJCQkJbG9jYXRpb24gICAJKDIzMTIsIDE5NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzMTIsIDIwMDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzUzOSw3ICs3MzI0Niw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzNA0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDk5IiBAMzE1Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE3MTQsIDE2NjIpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTcxNCwgMTk3NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzU1NCw3ICs3MzI2MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWRQYXJhbWV0ZXJlZEVsZW1lbnQiIEAzMTU4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDg4MCwgMjQ2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg4ODAsIDU1OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzU2Niw3ICs3MzI3Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAxMSwgMTYxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAxMSwgMTkyNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNTkxLDExICs3MzI5OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxNTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEzMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MTQsIDE2NjIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0MTYsIDE2NjIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAxOTc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDE2LCAxOTc0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjM0NCwgMTcwMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjM0NCwgMjAxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNjE2LDcgKzczMzIzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjAyMywgMTc0NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjAyMywgMjA1OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNjQwLDcgKzczMzQ3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmluZ1BhcmFtZXRlciIgQDMxNjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMxNTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoODgwLCAyNDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDg4MCwgNTU4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNjUyLDcgKzczMzU5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzE2Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzE2Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjk3LCAxNjA4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjk3LCAxOTIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM2NzcsMTEgKzczMzg0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzE1Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMTM0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxNCwgMTY2MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAxMiwgMTY2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MTQsIDE5NzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMTIsIDE5NzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzE2NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzE2Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDk0LCAxNzE1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDk0LCAyMDI3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM3MDIsNyArNzM0MDksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzE2NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzE2Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzU1LCAxNzQ3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzU1LCAyMDU5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM3MjUsNyArNzM0MzIsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJODUNCiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUwMCIgQDMxNjYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNzE0LCAyMTA3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE3MTQsIDE5NzQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM3NDAsNyArNzM0NDcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImRlZmF1bHQiIEAzMTY3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMTY2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDkwNCwgNDUxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5MDQsIDMxOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mzc1Miw3ICs3MzQ1OSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjI1MywgMjA3OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI1MywgMTk0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczNzc2LDExICs3MzQ4MywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxNjYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEzMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MTQsIDIxMDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0MTYsIDIxMDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAxOTc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDE2LCAxOTc0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxNjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjMzMywgMjE1MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjMzMywgMjAyMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTczODAxLDE2ICs3MzUwOCwxNiBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTAxIiBAMzE3MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE2Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MDQsIDQ1MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA0LCAzMTgpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzRTM3NkZGNjAzNzciDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxNjYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzEzNA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3MTQsIDIxMDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMTIsIDIxMDcpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAxOTc0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDEyLCAxOTc0KSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTAyIiBAMzE3MQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE3MTQsIDIyOTkpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTcxNCwgMTk3NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzgyNSw3ICs3MzUzMiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib3duZWREZWZhdWx0IiBAMzE3Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE3MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MDQsIDcyNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA0LCA0MDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM4MzcsNyArNzM1NDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTczDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTcyDQotCQkJCQkJbG9jYXRpb24gICAJKDIxODUsIDIyNjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDIxODUsIDE5MzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mzg2MSwxMSArNzM1NjgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTcxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxMzMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAyMjk5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNDE2LCAyMjk5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxNCwgMTk3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQxNiwgMTk3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTc0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTcyDQotCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDIzNDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNDgsIDIwMjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mzg4Niw3ICs3MzU5Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTc1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTcyDQotCQkJCQkJbG9jYXRpb24gICAJKDIwMjIsIDIzNzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwMjIsIDIwNTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03MzkxMCw3ICs3MzYxNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdEZWZhdWx0IiBAMzE3Ng0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE3MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg5MDQsIDcyNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTA0LCA0MDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzM5MjIsNyArNzM2MjksNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTc2DQotCQkJCQkJbG9jYXRpb24gICAJKDEyNDUsIDIyNDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyNDUsIDE5MTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mzk0NiwxMSArNzM2NTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTcxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxMzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzE0LCAyMjk5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDEyLCAyMjk5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxNCwgMTk3NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAxMiwgMTk3NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTc4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTc2DQotCQkJCQkJbG9jYXRpb24gICAJKDExMzAsIDIzNDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDExMzAsIDIwMjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03Mzk3MSw3ICs3MzY3OCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTc2DQotCQkJCQkJbG9jYXRpb24gICAJKDEyODAsIDIzOTIpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyODAsIDIwNjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NDIzMyw3ICs3Mzk0MCw3IEBACiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzE4Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTApKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ4NiIgQDMxOTENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNDU5LCAxMzQ5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDI4NDgsIDE0MjkpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzQyNDksNyArNzM5NTYsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImJvZHlFeHByZXNzaW9uIiBAMzE5Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzE5MQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzQ3LCAxMzcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDEwNDIsIDIxNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NDI2MSw3ICs3Mzk2OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxOTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMxOTINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc0OCwgMTUzMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzEzNywgMTYxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc0Mjg2LDE1ICs3Mzk5MywxNyBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMxOTENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzE4NA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxNDU5LCAxMzQ5KQ0KKwkJCQkJCSgyODQ4LCAxNDI5KQ0KKwkJCQkJCSgyOTE4LCAxNDI5KQ0KKwkJCQkJCSgyOTE4LCAxMzQ5KQ0KIAkJCQkJCSgxNTY5LCAxMzQ5KQ0KIAkJCQkJCSgxNTY5LCAxNjMzKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDU5LCAxMzQ5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg0OCwgMTQyOSkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU2OSwgMTYzMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTk0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTkyDQotCQkJCQkJbG9jYXRpb24gICAJKDE1MDgsIDE1ODQpDQorCQkJCQkJbG9jYXRpb24gICAJKDI4OTcsIDE2NjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NDMxNSw3ICs3NDAyNCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMTkyDQotCQkJCQkJbG9jYXRpb24gICAJKDE4MTYsIDE1ODcpDQorCQkJCQkJbG9jYXRpb24gICAJKDMyMDUsIDE2NjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NDMzNiwxNSArNzQwNDUsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ4NyIgQDMxOTYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMxOTENCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM0NywgMTM3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxMDQyLCAyMTcpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0UyODEzMDcwMDcyIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMTkxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMxODMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDU5LCAxMzQ5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDY1LCAxMzQ5KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg0OCwgMTQyOSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA2NSwgMTQyOSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ5NyIgQDMxOTcNCiAJCQkJICAgIGxvY2F0aW9uICAgCSgxODg4LCAxOTQ1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQpAQCAtNzQ4MjUsNyArNzQ1MzQsNyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAk0MTINCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0OTEiIEAzMjE5DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU3NywgMTYyNCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTc3LCAxNjAyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc0ODQwLDcgKzc0NTQ5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzaWduYXR1cmUiIEAzMjIwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjE5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02OTcsIDYzNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY5NywgNjEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc0ODUyLDcgKzc0NTYxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjEzLCAxNTgzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjEzLCAxNTYxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzQ4NzcsMTEgKzc0NTg2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzIxOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjE2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU3NywgMTYyNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEyMiwgMTYyNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NzcsIDE2MDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMjIsIDE2MDIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTc0LCAxNjcyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTc0LCAxNjUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzQ5MDIsNyArNzQ2MTEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzYxLCAxNjcyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzYxLCAxNjUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzQ5MjMsMTcgKzc0NjMyLDE3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0OTIiIEAzMjI0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjE5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02OTcsIDYzNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY5NywgNjEyKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFMjgxNERBMDM4MCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzIxOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjE4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU3NywgMTYyNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjAzMywgMTYyNCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NzcsIDE2MDIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwMzMsIDE2MDIpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0ODgiIEAzMjI1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU4NSwgMTM0NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTg1LCAxMzUwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc0OTQ4LDcgKzc0NjU3LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJib3VuZEVsZW1lbnQiIEAzMjI2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjI1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02ODksIDM1NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY4OSwgMzYwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc0OTYwLDcgKzc0NjY5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzExLCAxMzA1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzExLCAxMzA5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzQ5ODUsMTEgKzc0Njk0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzIyNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjE3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU4NSwgMTM0NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEzNywgMTM0NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1ODUsIDEzNTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMzcsIDEzNTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTcxLCAxMzkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTcxLCAxMzk1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUwMTAsNyArNzQ3MTksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzIyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzQ3LCAxNDEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzQ3LCAxNDE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUwMzQsNyArNzQ3NDMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidGVtcGxhdGVCaW5kaW5nIiBAMzIzMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzIyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjg5LCAzNTYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02ODksIDM2MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTA0Niw3ICs3NDc1NSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyMzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyMzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTg1OCwgMTMwMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg1OCwgMTMwNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MDcxLDExICs3NDc4MCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyMjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzIxOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1ODUsIDEzNDYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwMzMsIDEzNDYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTg1LCAxMzUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDMzLCAxMzUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyMzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyMzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk5OCwgMTM5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTk5OCwgMTM5NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MDk2LDcgKzc0ODA1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyMzMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyMzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTgwMSwgMTQ0MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTgwMSwgMTQ0NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MjA4LDcgKzc0OTE3LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMzkzDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDkzIiBAMzIzOA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIyNzcsIDEwNTMpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMjI5MiwgMTA1NCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTIyMyw3ICs3NDkzMiw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicGFyYW1ldGVyU3Vic3RpdHV0aW9uIiBAMzIzOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzIzOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzksIDYzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjQsIDY0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MjM1LDcgKzc0OTQ0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI0MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIzOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNTA0LCA4NTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDI1MTksIDg1NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MjYwLDExICs3NDk2OSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyMzgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzIzNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNzcsIDEwNTMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNzcsIDgxOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyOTIsIDEwNTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyOTIsIDgyMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjQxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjM5DQotCQkJCQkJbG9jYXRpb24gICAJKDIyMzcsIDg0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI1MiwgODQ2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzUyODUsNyArNzQ5OTQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI0Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzIzOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMzM2LCA5MDkpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzNTEsIDkxMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MzA2LDcgKzc1MDE1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRlbXBsYXRlQmluZGluZyIgQDMyNDMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMyMzgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM5LCA2MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI0LCA2NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTMxOCw3ICs3NTAyNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQ2NCwgMTE3NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQ3OSwgMTE3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MzQzLDExICs3NTA1MiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyMzgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzIxOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyNzcsIDEwNTMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNzcsIDEyODcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjkyLCAxMDU0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMjkyLCAxMjg4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjIzMCwgMTIzNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI0NSwgMTIzOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1MzY4LDcgKzc1MDc3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQ1NSwgMTIzMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQ3MCwgMTIzNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1Mzg4LDcgKzc1MDk3LDcgQEAKIAkJCQkJCWhlaWdodCAgICAgCTE3OA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDg5IiBAMzI0Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1NDIsIDQ2OSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTQyLCA0NjgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU0MDMsNyArNzUxMTIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImZvcm1hbCIgQDMyNDgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMyNDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY5NiwgMzU1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjk2LCAzNTQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU0MTUsNyArNzUxMjQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjQ5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjQ4DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMDQsIDQyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTIwNCwgNDIyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU0NDAsMTEgKzc1MTQ5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzI0Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjM1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0MiwgNDY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTA3LCA0NjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQyLCA0NjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMDcsIDQ2OCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjUwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjQ4DQotCQkJCQkJbG9jYXRpb24gICAJKDExNTIsIDUyMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE1MiwgNTIyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU0NjUsMTUgKzc1MTc0LDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0OTAiIEAzMjUxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjQ3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02OTYsIDM1NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY5NiwgMzU0KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNFMjgxNDk0MDBBRSINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzI0Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjM3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0MiwgNDY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTc3LCA0NjkpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQyLCA0NjgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5NzcsIDQ2OCkpKSkNCiAJCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMzI1Mg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNFMzc3NTY3MDNERSINCkBAIC03NTQ4Myw3ICs3NTE5Miw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI1MywgNDI3KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIyNTMsIDMwNykpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0OTQiIEAzMjUzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTUzNywgNjM1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE1MzcsIDY5NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTQ5OCw3ICs3NTIwNyw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiYWN0dWFsIiBAMzI1NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzI1Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzAxLCA1MjEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC03MDEsIDU4MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTUxMCw3ICs3NTIxOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTIwOCwgNTg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjA4LCA2NDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTUzNSwxMSArNzUyNDQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMjUzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMyMzYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTM3LCA2MzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwOTgsIDYzNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MzcsIDY5NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA5OCwgNjk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE2MSwgNjg1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTYxLCA3NDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTU2MCwxNyArNzUyNjksMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ5NSIgQDMyNTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDMyNTMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcwMSwgNTIxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzAxLCA1ODIpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0UyODE0OEQwMkFEIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzMjUzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDMyMzcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTM3LCA2MzUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5NzcsIDYzNSkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MzcsIDY5NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk3NywgNjk2KSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTAzIiBAMzI1OA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1MzcsIDc4OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTM3LCA2OTYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU1ODUsNyArNzUyOTQsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm93bmVkQWN0dWFsIiBAMzI1OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzI1OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjk1LCAxNjQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02OTUsIDcyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1NTk3LDcgKzc1MzA2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjgxLCA3NTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyODEsIDY2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1NjIxLDExICs3NTMzMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDMyNTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzIzNg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MzcsIDc4OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA5OCwgNzg4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzNywgNjk2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDk4LCA2OTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI2MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTQyLCA4NDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNDIsIDc1MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTc1NjQ2LDcgKzc1MzU1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDMyNTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM1NywgODUyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzU3LCA3NjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC03NTY3MCw3ICs3NTM3OSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvd25pbmdTdWJzdGl0dXRpb24iIEAzMjYzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjU4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02OTUsIDE2NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY5NSwgNzIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU2ODIsNyArNzUzOTEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjY0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjYzDQotCQkJCQkJbG9jYXRpb24gICAJKDE3ODQsIDc0NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc4NCwgNjU1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU3MDYsMTEgKzc1NDE1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzI1OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzMjM3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzNywgNzg4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTc3LCA3ODgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTM3LCA2OTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5NzcsIDY5NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjY1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzMjYzDQotCQkJCQkJbG9jYXRpb24gICAJKDE5MzIsIDg0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTkzMiwgNzUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtNzU3MzEsNyArNzU0NDAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI2Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzI2Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODMyLCA4ODkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MzIsIDc5NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJMTANCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg1NDI3LDcgKzg1MTM2LDYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlcGxhY2VBbGwiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0NDREZBMkQwMEY0Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIikpDQogCQkJICAgIGxhbmd1YWdlICAgCSJPYmplY3RTd2l0Y2giKQ0KIAkJCShvYmplY3QgQ2xhc3MgIlJlYWRJc0NsYXNzaWZpZWRPYmplY3RBY3Rpb24iDQpAQCAtODU0NDEsNyArODUxNDksNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzRGlyZWN0Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjM5NzM5REVGMDA2MSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCiAJCQkgICAgbGFuZ3VhZ2UgICAJIk9iamVjdFN3aXRjaCIpDQpAQCAtODYxMDEsMTMgKzg1ODA4LDEzIEBACiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTE4LCAzMDQpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUAzNzMzKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTE4IiBAMzczNw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE5MzAsIDg1NikNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxOTM4LCA4NTYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0E3ODU4RDAwMDI4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvYmplY3QiIEAzNzM4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzM3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03MiwgMzYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjQsIDM2MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjExOSw3ICs4NTgyNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3MzkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3MzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTgzNywgMTA0MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTg0NSwgMTA0MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODYxNDQsMTEgKzg1ODUxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzczNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzM0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzMCwgODU2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTMwLCAxMTUwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzOCwgODU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTM4LCAxMTUwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3MzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk4NSwgMTA5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTk5MywgMTA5MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODYxNjksNyArODU4NzYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc0MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzczOA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzk4LCAxMDkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODA2LCAxMDkxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjE5MCw3ICs4NTg5Nyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MTkiIEAzNzQyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzM3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03MiwgMzYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjQsIDM2MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjIwNiwxMSArODU5MTMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNzM3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM3MzUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTMwLCA4NTYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MzAsIDU2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MzgsIDg1NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkzOCwgNTYyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NDINCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk5OSwgNjI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMDA3LCA2MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2MzIxLDE0ICs4NjAyOCwxNCBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTA0IiBAMzc0Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExNiwgODUwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIxNiwgODUwKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5NUNGQkEyMDM5MyINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBAMzc0OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc0Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTAyNCwgMjUyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTI0LCAyNTIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODYzNDAsNyArODYwNDcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzQ5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzQ4DQotCQkJCQkJbG9jYXRpb24gICAJKDIwMCwgMTA0MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzAwLCAxMDQyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjM2NSwxMSArODYwNzIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNzQ3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM3NDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTYsIDg1MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE2LCAxMTM4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE2LCA4NTApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxNiwgMTEzOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzUwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzQ4DQotCQkJCQkJbG9jYXRpb24gICAJKDY5LCAxMDc1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjksIDEwNzUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2MzkwLDcgKzg2MDk3LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NDgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjY2LCAxMDk3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNjYsIDEwOTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NDExLDcgKzg2MTE4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUwNSIgQDM3NTINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM3NDcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwMjQsIDI1MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTkyNCwgMjUyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NDI3LDExICs4NjEzNCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3NDcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzc0Ng0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExNiwgODUwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTYsIDU2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIxNiwgODUwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMTYsIDU2MikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzUzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzUyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NCwgNjUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyNjQsIDY1MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY0OTcsNyArODYyMDQsNyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODAxLCAzMDQpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUAzNzMzKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTQ0IiBAMzc1Nw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDY1NiwgNjc3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDYxNiwgNjc3KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY1MTMsMTggKzg2MjIwLDE4IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTQ1IiBAMzc1OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc1Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTEsIDQxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzEsIDQxMikNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREYzQTVCRTAyQUYiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3NTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzc1NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY1NiwgNjc3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NTYsIDU3MSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2MTYsIDY3NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjE2LCA1NzEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAib2JqZWN0IiBAMzc1OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc1Nw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTEsIDQxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzEsIDQxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NTM2LDcgKzg2MjQzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc2MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NjUsIDY5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTI1LCA2OTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NTYxLDExICs4NjI2OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3NTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzc0NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY1NiwgNjc3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NTYsIDc4MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYxNiwgNjc3KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MTYsIDc4NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzYxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzU5DQotCQkJCQkJbG9jYXRpb24gICAJKDcwOCwgNzU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NjgsIDc1OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY1ODYsNyArODYyOTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc2Mg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc1OQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MjQsIDczNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDg0LCA3MzcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NjY1LDcgKzg2MzcyLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTEzDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTA2IiBAMzc2NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDM5OSwgOTkzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDQzOSwgMTgwOSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2Njc3LDcgKzg2Mzg0LDcgQEAKIAkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NjYNCiAJCQkJCVBhcmVudF9WaWV3IAlAMzc2NQ0KLQkJCQkJbG9jYXRpb24gICAJKDM5NywgOTM2KQ0KKwkJCQkJbG9jYXRpb24gICAJKDQzNywgMTc1MikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY3MDIsNyArODY0MDksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImNsYXNzaWZpZXIiIEAzNzY3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzY1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02NjQsIC04NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTYyNCwgNzMwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NzE0LDcgKzg2NDIxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc2OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc2Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg0OTIsIDEyMzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDUzMiwgMjA1MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY3MzgsMTUgKzg2NDQ1LDE1IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc2NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzY0DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDM5OSwgOTkzKQ0KKwkJCQkJCSg0MzksIDE4MDkpDQogCQkJCQkJKDM5OSwgMTE5MCkNCiAJCQkJCQkoNjMyLCAxMTkwKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzOTksIDk5MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQzOSwgMTgwOSkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjMyLCAxMTkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NjkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTY4LCAxMTYwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MDgsIDE5NzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2NzY3LDcgKzg2NDc0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUwNyIgQDM3NzANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM3NjUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY2NCwgLTg2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjI0LCA3MzApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY3ODEsMTIgKzg2NDg4LDE3IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiMzhDOTVDODQwMzMwIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNzY1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM3NDYNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoNDM5LCAxODA5KQ0KKwkJCQkJCSgzOTksIDE5ODYpDQorCQkJCQkJKDQzOSwgMTk4NikNCisJCQkJCQkoNDM5LCA1NjIpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM5OSwgOTkzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzOTksIDU2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQzOSwgMTgwOSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDM5LCA1NjIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc3MQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc3MA0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NTMsIDYxMykNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDkzLCAxNDI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjgwNiwxMyArODY1MTgsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MDgiIEAzNzcyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzkwLCA4NTQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODA0LCA4NTQpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhEQkVCMTAwMzEyIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvbGRDbGFzc2lmaWVyIiBAMzc3Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc3Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjY3LCAzMzEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02NTMsIDMzMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjgyNCw3ICs4NjUzNiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NzQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjczLCAxMDMxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2ODcsIDEwMzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2ODQ5LDExICs4NjU2MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3NzINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzc2NA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc5MCwgODU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3OTAsIDExMzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MDQsIDg1NCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODA0LCAxMTM4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NzUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NzMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODE4LCAxMDQ1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzIsIDEwNDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2ODc0LDcgKzg2NTg2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUwOSIgQDM3NzYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM3NzINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY2NywgMzMxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjUzLCAzMzEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODY4OTAsMTEgKzg2NjAyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc3Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzU1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzkwLCA4NTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc5MCwgNTcxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODA0LCA4NTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgwNCwgNTcxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3NzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NzYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODQ0LCA2MjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDg1OCwgNjI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjkxNCwxMyArODY2MjYsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTU0DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MTAiIEAzNzc4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoOTI4LCA4NTQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODA0LCA4NTQpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhEQkVCNDEwMkVCIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJuZXdDbGFzc2lmaWVyIiBAMzc3OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc3OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTI1LCAzMzEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC02NDksIDMzMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NjkzMiw3ICs4NjY0NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3ODANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3NzkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA1MiwgMTAyNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTI4LCAxMDI3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04Njk1NywxMSArODY2NjksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNzc4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM3NjQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MjgsIDg1NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTI4LCAxMTM4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODA0LCA4NTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDgwNCwgMTEzOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzgxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzc5DQotCQkJCQkJbG9jYXRpb24gICAJKDkwNSwgMTAzOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzgxLCAxMDM4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04Njk4Miw3ICs4NjY5NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MTEiIEAzNzgyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzc4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01MjUsIDMzMSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTY0OSwgMzMxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg2OTk4LDExICs4NjcxMCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM3NzgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzc1NQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkyOCwgODU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MjgsIDU3MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgwNCwgODU0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MDQsIDU3MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzgzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzgyDQotCQkJCQkJbG9jYXRpb24gICAJKDkwNSwgNjI3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3ODEsIDYyNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODcwODEsMTQgKzg2NzkzLDE0IEBACiAJCQkJICAgIGhlaWdodCAgICAgCTExMg0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUxNCIgQDM3ODYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMzYyLCA4NTQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQzNCwgODU0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5NzM5RUE3MDBERSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBAMzc4Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc4Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTIyLCAzNjEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04NTAsIDM2MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzEwMCw3ICs4NjgxMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3ODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQzNCwgMTAzMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUwNiwgMTAzMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODcxMjUsMTEgKzg2ODM3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc4Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzYzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM2MiwgODU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYyLCAxMTQzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQzNCwgODU0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDM0LCAxMTQ0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM3ODkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM3ODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyMiwgMTA4NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM5NCwgMTA4NCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODcxNTAsNyArODY4NjIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc5MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc4Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTAxLCAxMDczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTczLCAxMDczKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzE3MSw3ICs4Njg4Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MTUiIEAzNzkxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzg2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MjIsIDM2MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTg1MCwgMzYxKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODcxODcsMTEgKzg2ODk5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc4Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzg1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM2MiwgODU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzYyLCA1NjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDM0LCA4NTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MzQsIDU2NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzkyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzkxDQotCQkJCQkJbG9jYXRpb24gICAJKDEzMDIsIDYxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM3NCwgNjE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzIxMSwxNCArODY5MjMsMTQgQEAKIAkJCQkJCWhlaWdodCAgICAgCTYxDQogCQkJCQkJb3JpZW50YXRpb24gCTApKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MTIiIEAzNzkzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTE5NywgOTc4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE1NTMsIDE5NTYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzk3MzlFMkIwMzI0Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGFzc2lmaWVyIiBAMzc5NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc5Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTA4MiwgNDg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzI2LCAxNDYyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3MjMwLDcgKzg2OTQyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc5NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzc5NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDkzLCAxMjIyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDQ5LCAyMjAwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzI1NSwxNSArODY5NjcsMTYgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzNzkzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM3NjQNCiAJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMTE5NywgOTc4KQ0KKwkJCQkJCSgxNTUzLCAxOTU2KQ0KKwkJCQkJCSgxMTk3LCAxOTU2KQ0KIAkJCQkJCSgxMTk3LCAxMTY5KQ0KIAkJCQkJCSg5NzYsIDExNjkpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExOTcsIDk3OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NTMsIDE5NTYpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk3NiwgMTE2OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzk2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzNzk0DQotCQkJCQkJbG9jYXRpb24gICAJKDEwMjUsIDExMjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzODEsIDIxMDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3Mjg0LDE1ICs4Njk5NywxOSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTEzIiBAMzc5Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzc5Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTA4MiwgNDg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzI2LCAxNDYyKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjM5NzM5RTJDMDJBNCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc5Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzg1DQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDE1NTMsIDE5NTYpDQorCQkJCQkJKDE2MTMsIDE5NTYpDQorCQkJCQkJKDE2MTMsIDU2NikpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE5NywgOTc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTk3LCA1NjYpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTUzLCAxOTU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjEzLCA1NjYpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDM3OTgNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzREY0MDgyOTAyRTgiDQpAQCAtODczMDMsMTQgKzg3MDIwLDE0IEBACiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzMxLCAzMDQpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUAzNzMzKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTE2IiBAMzc5OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1MzcsIDY5OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTQzLCA2OTgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzk3MzlFNUIwMjUxIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvYmplY3QiIEAzODAwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03NDUsIDIwNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTczOSwgMjA0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3MzIyLDcgKzg3MDM5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzgwMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzgwMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjIzLCA3MjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MjksIDcyMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODczNDcsMTEgKzg3MDY0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzg0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzNywgNjk4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTM3LCA4MzEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQzLCA2OTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDMsIDgzMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0OTgsIDc3NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUwNCwgNzc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzM3Miw3ICs4NzA4OSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODAzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NzIsIDc3MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTY3OCwgNzcyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzM5Myw3ICs4NzExMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MTciIEAzODA0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzNzk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC03NDUsIDIwNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTczOSwgMjA0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc0MDksMTEgKzg3MTI2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzc5OQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzNzg1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUzNywgNjk4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTM3LCA1NjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQzLCA2OTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDMsIDU2NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODA0DQotCQkJCQkJbG9jYXRpb24gICAJKDE0NzgsIDYwNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQ4NCwgNjA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzYwNSwxMyArODczMjIsMTMgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUyMiIgQDM4MTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3ODAsIDcxOSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3ODAsIDcyMykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOEM5NjY4NjAyRDkiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUyMyIgQDM4MTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4MTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoOTMsIC0xMDIzKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5MywgLTEwMTkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc2MjMsNyArODczNDAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODE0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODEzDQotCQkJCQkJbG9jYXRpb24gICAJKDYyOSwgNzYxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2MjksIDc2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc2NDksMTEgKzg3MzY2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzgxMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODExDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzgwLCA3MTkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5MSwgNzE5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzgwLCA3MjMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5MSwgNzIzKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4MTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjIyLCA2ODYpDQorCQkJCQkJbG9jYXRpb24gICAJKDYyMiwgNjkwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzY3NCw3ICs4NzM5MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJxdWFsaWZpZXIiIEAzODE2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODEyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDkzLCAtMTAyMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoOTMsIC0xMDE5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3Njg2LDcgKzg3NDAzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzgxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzgxNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4NzEsIDc2NykNCisJCQkJCQlsb2NhdGlvbiAgIAkoODcxLCA3NzEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3NzExLDExICs4NzQyOCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4MTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzgwOQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc4MCwgNzE5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5NjksIDcxOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc4MCwgNzIzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5NjksIDcyMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODE4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODE2DQotCQkJCQkJbG9jYXRpb24gICAJKDk0MiwgNjc1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NDIsIDY3OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc3NDQsMTUgKzg3NDYxLDE1IEBACiAJCQkJCSg3NzgsIDcxOSkpDQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk4MywgODc5KQ0KLQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc4MSwgNzE5KSkNCisJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3ODEsIDcyMykpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MjAiIEAzODIwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMjg4LCA1NjQpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY5LCA1NjMpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhDOTY2MzcwMzJGIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MjEiIEAzODIxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02MjAsIC0yOTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01MzksIC0yOTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc3NjQsNyArODc0ODEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODIyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODIxDQotCQkJCQkJbG9jYXRpb24gICAJKDI0OCwgNDkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzMjksIDQ5MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc3ODksMTEgKzg3NTA2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzgyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODEwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg4LCA1NjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4OCwgNDcyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzY5LCA1NjMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM2OSwgNDcxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4MjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzQyLCA1MDYpDQorCQkJCQkJbG9jYXRpb24gICAJKDQyMywgNTA1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzgxNCw3ICs4NzUzMSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJxdWFsaWZpZXIiIEAzODI0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODIwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02MjAsIC0yOTApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01MzksIC0yOTEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc4MjYsNyArODc1NDMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODI1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODI0DQotCQkJCQkJbG9jYXRpb24gICAJKDM4OSwgNjE2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0NzAsIDYxNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODc4NTAsMTEgKzg3NTY3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzgyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODExDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg4LCA1NjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4OCwgNjU2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzY5LCA1NjMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM2OSwgNjU2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4MjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MjQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjQwLCA2MjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDMyMSwgNjIxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzkxMiwxMyArODc2MjksMTMgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUyNCIgQDM4MjkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg0MTYsIDgzNCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg0MjYsIDgzNCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOEM5NjZBRjAzREMiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUyNSIgQDM4MzANCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4MjkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE1NCwgLTIxMikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE0NCwgLTIxMikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04NzkzMCw3ICs4NzY0Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4MzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4MzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzc2LCA3NzQpDQorCQkJCQkJbG9jYXRpb24gICAJKDM4NiwgNzc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04Nzk1NiwxMSArODc2NzMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzODI5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM4MTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MTYsIDgzNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDE2LCA3NTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MjYsIDgzNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDI2LCA3NTkpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzgzMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzgzMA0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNzksIDc5MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzg5LCA3OTEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3OTgxLDcgKzg3Njk4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInZhbHVlIiBAMzgzMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzgyOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTU0LCAtMjEyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTQ0LCAtMjEyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg3OTkzLDcgKzg3NzEwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzgzNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzgzMw0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MTUsIDg4MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTI1LCA4ODEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4MDE4LDExICs4NzczNSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4MjkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzgyOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQxNiwgODM0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MTYsIDkxMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQyNiwgODM0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MjYsIDkxMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODM1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODMzDQotCQkJCQkJbG9jYXRpb24gICAJKDM2OSwgODg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNzksIDg4OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODgxOTEsMTQgKzg3OTA4LDE0IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MjgiIEAzODQzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTc3LCA2MjgpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTY4LCA2MjgpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhDOTY5MDgwMEI1Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbmQiIEAzODQ0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODQzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODY3LCAtMjcwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTg3NiwgLTI3MCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODIxMCw3ICs4NzkyNyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4NDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4NDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTE3LCA3MTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwOCwgNzE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODIzNCwxMSArODc5NTEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzODQzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM4NDENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzcsIDYyOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTc3LCA3NjApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjgsIDYyOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY4LCA3NjEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg0Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg0NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMTYsIDcyNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA3LCA3MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4MjU5LDcgKzg3OTc2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUyOSIgQDM4NDcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4NDMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE4NjcsIC0yNzApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODc2LCAtMjcwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4Mjc0LDExICs4Nzk5MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4NDMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzg0Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3NywgNjI4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzcsIDQ5NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2OCwgNjI4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjgsIDQ5NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDEyOSwgNTMxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjAsIDUzMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODgzNjgsMTQgKzg4MDg1LDE0IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MzAiIEAzODUyDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNDk3LCA3MTcpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNTU4LCAxMzc0KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5NUNENUFEMDA5OCINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBAMzg1Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzg1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTAsIDg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNzEsIDc0MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODM4Nyw3ICs4ODEwNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4NTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4NTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTg4LCA4MzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDY0OSwgMTQ4OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg0MTIsMTUgKzg4MTI5LDE3IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg1Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODUxDQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDQ5NywgNzE3KQ0KKwkJCQkJCSg1NTgsIDEzNzQpDQorCQkJCQkJKDU1OCwgMTQzNCkNCisJCQkJCQkoNDk3LCAxNDM0KQ0KIAkJCQkJCSg0OTcsIDc4NykNCiAJCQkJCQkoNjQ4LCA3ODcpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQ5NywgNzE3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTU4LCAxMzc0KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NDgsIDc4NykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODU1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODUzDQotCQkJCQkJbG9jYXRpb24gICAJKDYwOSwgNzM1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzAsIDEzOTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4NDQxLDcgKzg4MTYwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4NTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4NTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTM3LCA4NzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDU5OCwgMTUzMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg0NjIsNyArODgxODEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTMxIiBAMzg1Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzg1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMTAsIDg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNzEsIDc0MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODQ3OCwxMSArODgxOTcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzODUyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM4NDINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0OTcsIDcxNykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDk3LCA0OTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1NTgsIDEzNzQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU1OCwgNDk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4NTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4NTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTU2LCA1NzgpDQorCQkJCQkJbG9jYXRpb24gICAJKDYxNywgMTIzNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg1MzIsMTQgKzg4MjUxLDE0IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MjYiIEAzODYwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzgxLCA5MDUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMzgxLCA5MDYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhDOTY4RTAwMkFDIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJvYmplY3QiIEAzODYxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODYwDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNjY1LCA3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY2NSwgOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODU1MSw3ICs4ODI3MCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4NjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4NjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTgwLCAxMDg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1ODAsIDEwODgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4NTc1LDE1ICs4ODI5NCwxNSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4NjANCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzg1OQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgzODEsIDkwNSkNCisJCQkJCQkoMzgxLCA5MDYpDQogCQkJCQkJKDM4MSwgMTA0NykNCiAJCQkJCQkoNjQ5LCAxMDQ3KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzODEsIDkwNSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM4MSwgOTA2KQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NDksIDEwNDcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg2Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg2MTAsIDEwMTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDYxMCwgMTAxNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2MDQsNyArODgzMjMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg2NA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg2MQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1NDAsIDExMzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0MCwgMTEzNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2MjUsNyArODgzNDQsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTI3IiBAMzg2NQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzg2MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTY2NSwgNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE2NjUsIDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2NDAsMTEgKzg4MzU5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg2MA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODQyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzgxLCA5MDUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM4MSwgNDk1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzYyLCAxODEyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2ODcsIDk0MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODY2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODY1DQotCQkJCQkJbG9jYXRpb24gICAJKDQzNywgNTgxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MzcsIDU4MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg2OTUsMTQgKzg4NDE0LDE0IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1MzYiIEAzODY4DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQ3MiwgNjA0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE0NjcsIDYwNCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOEM5NkEwQTAyODMiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDUzNyIgQDM4NjkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4NjgNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzc0LCAtNjU3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzNjksIC02NTcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg3MTQsNyArODg0MzMsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODcwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODY5DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzEsIDUxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQyNiwgNTE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg3NDAsMTEgKzg4NDU5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg2OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODY3DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ3MiwgNjA0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDcyLCA0OTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDY3LCA2MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NjcsIDQ5NSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODcxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODY5DQotCQkJCQkJbG9jYXRpb24gICAJKDE1MzgsIDUxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUzMywgNTE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODc2NSw3ICs4ODQ4NCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJxdWFsaWZpZXIiIEAzODcyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODY4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDM3NCwgLTY1NykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMzY5LCAtNjU3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg4Nzc3LDcgKzg4NDk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg3Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg3Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzc1LCA2NjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNzAsIDY2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODg4MDIsMTEgKzg4NTIxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg2OA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODUwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ3MiwgNjA0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDcyLCA3MTMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDY3LCA2MDQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0NjcsIDcxMykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODc0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODcyDQotCQkJCQkJbG9jYXRpb24gICAJKDE1MjgsIDY3OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUyMywgNjc5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04ODgzNCw3ICs4ODU1Myw3IEBACiAJCQkJCSgxMjc4LCA2MDMpDQogCQkJCQkoMTI3OCwgOTY4KSkNCiAJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ3MSwgNjAzKQ0KKwkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDY4LCA2MDMpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4MywgOTY4KSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUzNCIgQDM4NzYNCiAJCQkJICAgIGxvY2F0aW9uICAgCSgxMDU4LCA2OTkpDQpAQCAtODg5NDcsOCArODg2NjYsOCBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM4NzYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzg2Nw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNTgsIDY5OSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTA1OCwgNDk1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjExNiwgMTM5OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM2NiwgOTQwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4ODINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM4ODENCiAJCQkJCQlsb2NhdGlvbiAgIAkoMTE0MSwgNTIwKQ0KQEAgLTg5MDg4LDggKzg4ODA3LDggQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzODg0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM4NjcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjAzLCA5MDMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMDMsIDQ5NSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0MDYsIDE4MDYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI1MTEsIDk0MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODkwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODg5DQogCQkJCQkJbG9jYXRpb24gICAJKDEyNzIsIDUyOCkNCkBAIC04OTEyMCw3ICs4ODgzOSw3IEBACiAJCQkJCSgyOTUsIDYyOCkNCiAJCQkJCSgyOTUsIDkyMikpDQogCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE3OCwgNjI4KQ0KKwkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjksIDYyOCkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjgsIDkyMikpKSkNCiAJCQkob2JqZWN0IENsYXNzRGlhZ3JhbSAiV3JpdGVMaW5rQWN0aW9ucyINCiAJCQkgICAgcXVpZCAgICAgICAJIjNERjNBNkExMDEwOSINCkBAIC04OTI4Myw3ICs4OTAwMiw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NDAiIEAzODk3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIyMywgNjE3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEyMzAsIDYxNykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5Mjk5LDcgKzg5MDE4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJxdWFsaWZpZXIiIEAzODk4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzODk3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zODcsIC0xNTYyKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzgwLCAtMTU2MikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5MzExLDcgKzg5MDMwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzg5OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzg5OA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzIyLCA2ODkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjksIDY4OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODkzMzYsMTEgKzg5MDU1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg5Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODk0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyMywgNjE3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjIzLCA3MjApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjMwLCA2MTcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMzAsIDcyMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODk4DQotCQkJCQkJbG9jYXRpb24gICAJKDExNTksIDY3OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2NiwgNjc5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTM2MSw3ICs4OTA4MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzODk4DQotCQkJCQkJbG9jYXRpb24gICAJKDExMTcsIDYzNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTEyNCwgNjM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTM4MiwxNSArODkxMDEsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU0MSIgQDM5MDINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM4OTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM4NywgLTE1NjIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0zODAsIC0xNTYyKQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjE0QzlFMDE2NyINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzg5Nw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODk2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyMywgNjE3KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjIzLCA1MTQpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjMwLCA2MTcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMzAsIDUxNCkpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkFjdGlvbnM6OkNvbXBsZXRlQWN0aW9uczo6Q3JlYXRlTGlua09iamVjdEFjdGlvbiIgQDM5MDMNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KQEAgLTg5NDIxLDEzICs4OTE0MCwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTM4IiBAMzkwNA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDM0NSwgNjAyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDMzNiwgNjAxKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM4RDdFNjgxMDNCMiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBAMzkwNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkwNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTEyNiwgLTEzOTMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTM1LCAtMTM5NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTQzOSw3ICs4OTE1OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5MDYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMjU3LCA2NjQpDQorCQkJCQkJbG9jYXRpb24gICAJKDI0OCwgNjYzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTQ2NCwxMSArODkxODMsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTA0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM4OTUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNDUsIDYwMikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzQ1LCA3MDIpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzMzYsIDYwMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzM2LCA3MDIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzkwNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzkwNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzODcsIDY4MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzc4LCA2ODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5NDg5LDcgKzg5MjA4LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5MDgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MDUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTI3LCA2NTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDUxOCwgNjU2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTUxMCw3ICs4OTIyOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MzkiIEAzOTA5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTA0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTI2LCAtMTM5MykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExMzUsIC0xMzk0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5NTI2LDExICs4OTI0NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5MDQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzkwMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM0NSwgNjAyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNDUsIDUwMikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMzNiwgNjAxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMzYsIDUwMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTEwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTA5DQotCQkJCQkJbG9jYXRpb24gICAJKDM5MywgNTQwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzODQsIDUzOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk1NTgsNyArODkyNzcsNyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMzMywgMzk4KQ0KIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMzMywgMTkzKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU0MiIgQDM5MTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NzgsIDQ1NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3NzgsIDQ1NikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5NTc0LDcgKzg5MjkzLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbmREYXRhIiBAMzkxMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkxMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzcsIC0xNzE2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyMzcsIC0xNzE0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk1ODYsNyArODkzMDUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTE0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTEzDQotCQkJCQkJbG9jYXRpb24gICAJKDkwOSwgNDEwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5MDksIDQxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk2MTEsMTEgKzg5MzMwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzkxMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzODk2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzc4LCA0NTQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwMzgsIDQ1NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc3OCwgNDU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDM4LCA0NTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzkxNQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzkxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NjksIDQ5OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoOTY5LCA1MDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5NjM2LDcgKzg5MzU1LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5MTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODc4LCA1NDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDg3OCwgNTUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTY1NywxNSArODkzNzYsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU0MyIgQDM5MTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5MTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjM3LCAtMTcxNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMjM3LCAtMTcxNCkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREYxNENERDAyNTMiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5MTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzkwMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc3OCwgNDU0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MTgsIDQ1NCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc3OCwgNDU2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MTgsIDQ1NikpKSkNCiAJCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMzkxOA0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KQEAgLTg5ODE0LDcgKzg5NTMzLDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU0NiIgQDM5MjQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2OTEsIDQxOSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2OTEsIDQyNikNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5ODMwLDcgKzg5NTQ5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ0cmlnZ2VyIiBAMzkyNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkyNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTY0LCAtMjYxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTY0LCAtMjU0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk4NDIsNyArODk1NjEsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTI2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTI1DQotCQkJCQkJbG9jYXRpb24gICAJKDcwNywgNDU4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MDcsIDQ2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk4NjcsMTEgKzg5NTg2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzkyNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTIxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjkxLCA0MTkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc1NiwgNDE5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjkxLCA0MjYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDc1NiwgNDI2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5MjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzIwLCAzNzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDcyMCwgMzgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC04OTg5MiwxNyArODk2MTEsMTcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU0NyIgQDM5MjgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5MjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU2NCwgLTI2MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU2NCwgLTI1NCkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREYxNDJBQjAyQkYiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5MjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzkyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY5MSwgNDE5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MjcsIDQxOSkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY5MSwgNDI2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MjcsIDQyNikpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU0OCIgQDM5MjkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg1NzcsIDU4OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg3MDMsIDQ2OSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5OTE4LDcgKzg5NjM3LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXN1bHQiIEAzOTMwDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTI5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC02NzgsIC05MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU1MiwgLTIxMSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5OTMwLDcgKzg5NjQ5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzkzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzkzMA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2OTAsIDYzOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODE2LCA1MTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTg5OTU0LDEyICs4OTY3MywxNiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERjE0MkJCMDBBQiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzkyOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTIyDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDcwMywgNDY5KQ0KKwkJCQkJCSg3NjMsIDQ2OSkNCisJCQkJCQkoNzYzLCA1NTYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU3NywgNTg4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NjMsIDU4OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDcwMywgNDY5KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NjMsIDU1NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTMyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTMwDQotCQkJCQkJbG9jYXRpb24gICAJKDcyNSwgNTQ1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4NTEsIDQyNikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtODk5ODAsNyArODk3MDMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzkzMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzkzMA0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NTMsIDY5MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoODc5LCA1NzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwMDAxLDE5ICs4OTcyNCwxNSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTQ5IiBAMzkzNA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkyOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNjc4LCAtOTIpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC01NTIsIC0yMTEpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGMTQyQkIwMTM4Ig0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTI5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5MjMNCi0JCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoNTc3LCA1ODgpDQotCQkJCQkJKDUwOSwgNTg4KQ0KLQkJCQkJCSg1MDksIDQ2OSkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTc3LCA1ODgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUwOSwgNDY5KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQwNiwgOTM4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDU5LCA4OTUpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpBY3Rpdml0aWVzOjpCYXNpY0FjdGl2aXRpZXM6Ok91dHB1dFBpbiIgQDM5MzUNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTkwMDc3LDcgKzg5Nzk2LDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU1MCIgQDM5MzcNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg0MzEsIDExMTUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNDM4LCAxMTE1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTAwOTMsNyArODk4MTIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJldHVybkluZm9ybWF0aW9uIiBAMzkzOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkzNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0OSwgNjk1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0MiwgNjk1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTAxMDUsNyArODk4MjQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTM4DQotCQkJCQkJbG9jYXRpb24gICAJKDYwNSwgMTEyMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjEyLCAxMTIwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDEzMCwxMSArODk4NDksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTM3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5MzUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MzEsIDExMTUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzMSwgMTIyMSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQzOCwgMTExNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDM4LCAxMjIyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzk2LCAxMTMzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MDMsIDExMzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwMTU1LDcgKzg5ODc0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NDENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5MzgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTczLCAxMTY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1ODAsIDExNjkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwMTc2LDE1ICs4OTg5NSwxNSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTUxIiBAMzk0Mg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzkzNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0OSwgNjk1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE0MiwgNjk1KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkE4NTU3MDJBRiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzkzNw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTM2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDMxLCAxMTE1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MzEsIDEwMDkpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MzgsIDExMTUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQzOCwgMTAwOSkpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkFjdGl2aXRpZXM6OkJhc2ljQWN0aXZpdGllczo6SW5wdXRQaW4iIEAzOTQzDQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCkBAIC05MDI0Niw3ICs4OTk2NSw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NTIiIEAzOTQ1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCA5NTYpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNzQ1LCA5NjYpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDI2Miw3ICs4OTk4MSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidHJpZ2dlciIgQDM5NDYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5NDUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTgxNSwgNTUxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODE1LCA1NjEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDI3NCw3ICs4OTk5Myw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODA0LCA4NDcpDQorCQkJCQkJbG9jYXRpb24gICAJKDgwNCwgODU3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDI5OSwxMSArOTAwMTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTQ1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5NDQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDUsIDk1NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODc2LCA5NTYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDUsIDk2NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODc2LCA5NjYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzk0OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk0Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg3NDMsIDg5NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzQzLCA5MDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwMzI0LDE1ICs5MDA0MywxNSBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTUzIiBAMzk0OQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzk0NQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODE1LCA1NTEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04MTUsIDU2MSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZBODRDOTAxMzgiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5NDUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzkzNg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NSwgOTU2KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MTQsIDk1NikpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NSwgOTY2KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MTQsIDk2NikpKSkNCiAJCQkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpVTUw6OkFjdGlvbnM6OkNvbXBsZXRlQWN0aW9uczo6UmVwbHlBY3Rpb24iIEAzOTUwDQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCkBAIC05MDM3NSw3ICs5MDA5NCw3IEBACiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTA2LCAzMDEpDQogCQkJCSAgICBkcmF3U3VwcGxpZXIgCUAzOTIwKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTU2IiBAMzk1Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE0NDQsIDU4MSkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTQ4LCA1ODIpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDM5MSw3ICs5MDExMCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVwbHlWYWx1ZSIgQDM5NTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5NTINCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU2NiwgMTg2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDYyLCAxODcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDQwMyw3ICs5MDEyMiw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyOSwgNjUyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDMzLCA2NTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwNDI4LDExICs5MDE0NywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5NTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzk0Mw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0NDQsIDU4MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ0NCwgNzEyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0OCwgNTgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ4LCA3MTMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzk1NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk1Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzk5LCA2MDgpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1MDMsIDYwOSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA0NTMsNyArOTAxNzIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzk1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk1Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzAyLCA2OTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MDYsIDY5NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA0NzQsMjQgKzkwMTkzLDI0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NTciIEAzOTU3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTUyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01NjYsIDE4NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2MiwgMTg3KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBsaW5lX2NvbG9yIAk0MTk0MzY4DQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNERkE4QTg4MDM2QiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzk1Mg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTUwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ0NCwgNTgxKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDQ0LCA0NTApKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQ4LCA1ODIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDgsIDQ1MSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU1OCIgQDM5NTgNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTM0LCA1ODEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU0OCwgNTgyKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERkE4QUYzMDM5OSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmV0dXJuSW5mb3JtYXRpb24iIEAzOTU5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTU4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NzYsIDE4NikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ2MiwgMTg3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA1MDMsNyArOTAyMjIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTYwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTU5DQotCQkJCQkJbG9jYXRpb24gICAJKDE2OTQsIDY0OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcwOCwgNjUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDUyOCwxMSArOTAyNDcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTU4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5NDMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTM0LCA1ODEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MzQsIDcxMykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NDgsIDU4MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU0OCwgNzEzKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU3MSwgNTk5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTg1LCA2MDApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwNTUzLDcgKzkwMjcyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY3MSwgNjg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjg1LCA2ODkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwNTc0LDE3ICs5MDI5MywxNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTU5IiBAMzk2Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlAMzk1OA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDc2LCAxODYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NjIsIDE4NykNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZBOEFGNDAzREEiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5NTgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzk1MA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MzQsIDU4MSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUzNCwgNDUwKSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0OCwgNTgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQ4LCA0NTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NTQiIEAzOTY0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTEzOCwgNTI0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE0MTUsIDc5NykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwNjAwLDcgKzkwMzE5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXBseVRvQ2FsbCIgQDM5NjUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5NjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTg3MiwgMTI5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTk1LCA0MDIpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDYxMiw3ICs5MDMzMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI2NSwgODY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTQyLCAxMTQyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDYzNiwxMiArOTAzNTUsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzREZBOEEyRDAzMkMiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDM5NjQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzk0NA0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxNDE1LCA3OTcpDQorCQkJCQkJKDE0MTUsIDkxNikNCisJCQkJCQkoMTE4OCwgOTE2KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTM4LCA1MjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMzgsIDkxNikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MTUsIDc5NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE4OCwgOTE2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA4OSwgODcxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzY2LCAxMTQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDY2MiwxOSArOTAzODUsMTUgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU1NSIgQDM5NjgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5NjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTg3MiwgMTI5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNTk1LCA0MDIpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGQThBMkQwMzRCIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTY0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5NTANCi0JCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCi0JCQkJCQkoMTEzOCwgNTI0KQ0KLQkJCQkJCSgxMTM4LCA0MDgpDQotCQkJCQkJKDE0MTUsIDQwOCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTEzOCwgNTI0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDE1LCA0MDgpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyODMwLCAxNTk0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyOTYzLCA4NTkpKSkpDQogCQkJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDM5NjkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzRTExQjMzNzAzRTYiDQpAQCAtOTA3NjMsNyArOTA0ODIsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTYwIiBAMzk3Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDc1NywgNDYzKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDc1NywgNDUyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkwNzc5LDcgKzkwNDk4LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJleGNlcHRpb24iIEAzOTc0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTczDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDgsIC00NDQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDgsIC00NTUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA3OTEsNyArOTA1MTAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTc1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTc0DQotCQkJCQkJbG9jYXRpb24gICAJKDgzOSwgMzcxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzksIDM2MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA4MTYsMTEgKzkwNTM1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzk3Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTcxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzU3LCA0NjMpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk0OCwgNDYzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzU3LCA0NTIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk0OCwgNDUyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5NzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTA0LCA1MjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDkwNCwgNTE3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MDg0MSw3ICs5MDU2MCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTc0DQotCQkJCQkJbG9jYXRpb24gICAJKDgzMywgNDI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzMsIDQxMykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTA4NjIsMTUgKzkwNTgxLDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NjEiIEAzOTc4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTczDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDgsIC00NDQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDgsIC00NTUpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0RGRTY3NDkwMkNFIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTczDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5NzINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTcsIDQ2MykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTY2LCA0NjMpKSkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTcsIDQ1MikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTY2LCA0NTIpKSkpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpBY3Rpdml0aWVzOjpCYXNpY0FjdGl2aXRpZXM6OkFjdGlvbiIgQDM5NzkNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KQEAgLTkwOTUzLDEzICs5MDY3MiwxMSBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzRGVzdHJveUxpbmtzIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjQwOEE1QjUxMDExMSINCiAJCQkJICAgIHR5cGUgICAgICAgCSJCb29sZWFuIg0KLQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTAxMEFDMDA5MCINCiAJCQkJICAgIGluaXR2ICAgICAgCSJmYWxzZSINCiAJCQkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc0Rlc3Ryb3lPd25lZE9iamVjdHMiDQogCQkJCSAgICBxdWlkICAgICAgIAkiNDA4QTVCNUQwMzk5Ig0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJUZXN0SWRlbnRpdHlBY3Rpb24iDQpAQCAtOTEwMjgsNyArOTA3NDUsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzUmVwbGFjZUFsbCINCiAJCQkJICAgIHF1aWQgICAgICAgCSIzQTc4QTY0RDAxMTIiDQogCQkJCSAgICB0eXBlICAgICAgIAkiQm9vbGVhbiINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBBQzAwOTAiDQogCQkJCSAgICBpbml0diAgICAgIAkiZmFsc2UiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGxhbmd1YWdlICAgCSJPYmplY3RTd2l0Y2giKQ0KQEAgLTkxMDY3LDcgKzkwNzgzLDYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlcGxhY2VBbGwiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0E3ODVFODAwM0UzIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCiAJCQkob2JqZWN0IENsYXNzICJDcmVhdGVMaW5rQWN0aW9uIg0KQEAgLTkxMTQ1LDcgKzkwODYwLDYgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJpc1JlcGxhY2VBbGwiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0E3OUIwNTIwMkNFIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJImZhbHNlIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKQ0KIAkJCSAgICBsYW5ndWFnZSAgIAkiT2JqZWN0U3dpdGNoIikNCkBAIC05MTE3NSwxMyArOTA4ODksMTEgQEAKIAkJCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJib2R5Ig0KIAkJCQkgICAgcXVpZCAgICAgICAJIjM5MTMzOTJEMDIxQyINCiAJCQkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQjEwM0MzIg0KIAkJCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImxhbmd1YWdlIg0KIAkJCQkgICAgcXVpZCAgICAgICAJIjM3NDVDNTRCMDI0RSINCiAJCQkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCi0JCQkJICAgIHF1aWR1ICAgICAgCSIzQ0EwMTBCMTAzQzMiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KIAkJCShvYmplY3QgQ2xhc3MgIkNhbGxBY3Rpb24iDQogCQkJICAgIHF1aWQgICAgICAgCSIzREYxMkVDMDAwREEiDQpAQCAtOTExOTQsNyArOTA5MDYsNiBAQAogCQkJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImlzU3luY2hyb25vdXMiDQogCQkJCSAgICBxdWlkICAgICAgIAkiM0U1NEY4QTQwMjczIg0KIAkJCQkgICAgdHlwZSAgICAgICAJIkJvb2xlYW4iDQotCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBMDEwQUMwMDkwIg0KIAkJCQkgICAgaW5pdHYgICAgICAJInRydWUiDQogCQkJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQogCQkJICAgIGFic3RyYWN0ICAgCVRSVUUpDQpAQCAtOTE5NDAsMTQgKzkxNjUxLDE0IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NzQiIEAzOTgzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkzNSwgNzA1KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE4MjQsIDcwNSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTVDRkJBMDAzMkMiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlc3VsdCIgQDM5ODQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5ODMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU4OSwgMTA1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNDc4LCAxMDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTE5NTksNyArOTE2NzAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTg0DQotCQkJCQkJbG9jYXRpb24gICAJKDE4NzMsIDcyOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc2MiwgNzI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MTk4NCwxMSArOTE2OTUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTgzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5ODENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTM1LCA3MDUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MzUsIDgzOCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MjQsIDcwNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTgyNCwgODM4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5ODYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5ODQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk3MiwgNzkyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxODYxLCA3OTIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMDA5LDcgKzkxNzIwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5ODcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5ODQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTc5OSwgNzczKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNjg4LCA3NzMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMDMwLDcgKzkxNzQxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU3NSIgQDM5ODgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5ODMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMTU4OSwgMTA1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgxNDc4LCAxMDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTIwNDYsMTEgKzkxNzU3LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzk4Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTgyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkzNSwgNzA1KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTM1LCA1NzMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODI0LCA3MDUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4MjQsIDU3MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUAzOTg4DQotCQkJCQkJbG9jYXRpb24gICAJKDE4NjIsIDYxOCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc1MSwgNjE4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjE1NCw3ICs5MTg2NSw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NjQiIEAzOTkzDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMzk0LCA3MDUpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNDAzLCA3MDUpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjE2Niw3ICs5MTg3Nyw3IEBACiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTk0DQogCQkJCQlQYXJlbnRfVmlldyAJQDM5OTMNCi0JCQkJCWxvY2F0aW9uICAgCSgzOTQsIDY0NikNCisJCQkJCWxvY2F0aW9uICAgCSg0MDMsIDY0NikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTIxOTEsNyArOTE5MDIsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlc3VsdCIgQDM5OTUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDM5OTMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNjQsIDE4MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNzMsIDE4MSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjIwMyw3ICs5MTkxNCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5OTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5OTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDc0LCA3NTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ4MywgNzUzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjIyOCwxMSArOTE5MzksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUAzOTkzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDM5OTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzOTQsIDcwNSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzk0LCA4NDMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0MDMsIDcwNSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDAzLCA4NDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzk5Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlAMzk5NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgzNDksIDc4MikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMzU4LCA3ODIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMjUzLDcgKzkxOTY0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5OTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5OTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTM4LCA3OTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0NywgNzkzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjI3NCw3ICs5MTk4NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NjUiIEAzOTk5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUAzOTkzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDY0LCAxODEpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDczLCAxODEpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTIyOTAsMTEgKzkyMDAxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlAMzk5Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTkyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzk0LCA3MDUpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM5NCwgNTY3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDAzLCA3MDUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQwMywgNTY3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDM5OTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDQ2LCA2MjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ1NSwgNjI5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjMxNCw3ICs5MjAyNSw3IEBACiAJCQkJCQloZWlnaHQgICAgIAk1Mg0KIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTYyIiBANDAwMQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEyMiwgNzA4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE2MiwgNzA4KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTIzMjYsNyArOTIwMzcsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAwMg0KIAkJCQkJUGFyZW50X1ZpZXcgCUA0MDAxDQotCQkJCQlsb2NhdGlvbiAgIAkoMTIyLCA2NDkpDQorCQkJCQlsb2NhdGlvbiAgIAkoMTYyLCA2NDkpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMzUxLDcgKzkyMDYyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJjbGFzc2lmaWVyIiBANDAwMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDAwMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTIxMiwgLTI3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTE3MiwgLTI3KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMzYzLDcgKzkyMDc0LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAwNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAwMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDcsIDc4NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjQ3LCA3ODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyMzg3LDExICs5MjA5OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwMDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlAMzk5MQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMiwgNzA4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjIsIDg0OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2MiwgNzA4KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNjIsIDg0OSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDA1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDAzDQotCQkJCQkJbG9jYXRpb24gICAJKDgyLCA3ODgpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyMiwgNzg4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjQxMiw3ICs5MjEyMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NjMiIEA0MDA2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDAxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMjEyLCAtMjcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTcyLCAtMjcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI0MjcsMTEgKzkyMTM4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDAwMQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUAzOTkyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIyLCA3MDgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMiwgNTY4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYyLCA3MDgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MiwgNTY3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMDcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMDYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQ4LCA2MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDE4OCwgNjEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjU2OSw3ICs5MjI4MCw3IEBACiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MzEsIDM1MCkNCiAJCQkJICAgIGRyYXdTdXBwbGllciAJQDQwMDkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NjYiIEA0MDE1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoODQ4LCA3MjEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoODY0LCA3MjEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjU4MSw3ICs5MjI5Miw3IEBACiAJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDE2DQogCQkJCQlQYXJlbnRfVmlldyAJQDQwMTUNCi0JCQkJCWxvY2F0aW9uICAgCSg4NDgsIDY2MikNCisJCQkJCWxvY2F0aW9uICAgCSg4NjQsIDY2MikNCiAJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI2MDYsNyArOTIzMTcsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRhcmdldCIgQDQwMTcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQwMTUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEwMTIsIDQ1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTk2LCA0NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjYxOCw3ICs5MjMyOSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTIxLCA4MTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDkzNywgODEzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjY0MywxMSArOTIzNTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDE1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwMTINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NDgsIDcyMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODQ4LCA4NDQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NjQsIDcyMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODY0LCA4NDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAxOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAxNw0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MDgsIDgwNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoODI0LCA4MDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyNjY4LDcgKzkyMzc5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMTcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTgwLCA3NzMpDQorCQkJCQkJbG9jYXRpb24gICAJKDk5NiwgNzczKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjY4OSw3ICs5MjQwMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NjciIEA0MDIxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDE1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMDEyLCA0NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTk5NiwgNDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI3MDUsMTEgKzkyNDE2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDAxNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDEzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODQ4LCA3MjEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg0OCwgNTk5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY0LCA3MjEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2NCwgNTk4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTIxLCA2NTMpDQorCQkJCQkJbG9jYXRpb24gICAJKDkzNywgNjUzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjgxMyw3ICs5MjUyNCw3IEBACiAJCQkJICAgIGFubm90YXRpb24gCTgNCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NzIiIEA0MDI2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTM0NywgNzExKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEzNTQsIDcxMSkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjgyOCw3ICs5MjUzOSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBANDAyNw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDAyNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3NzAsIC0xMzcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc3NywgLTEzNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Mjg0MCw3ICs5MjU1MSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMjgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMjcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTQyMywgNzI3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNDMwLCA3MjcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyODY0LDExICs5MjU3NSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwMjYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDAyMw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNDcsIDcxMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM0NywgODQzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM1NCwgNzExKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzU0LCA4NDQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMzA3LCA3NjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMTQsIDc2NykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI4ODksNyArOTI2MDAsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAzMA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAyNw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNDkxLCA3NjkpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0OTgsIDc2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTI5MTAsNyArOTI2MjEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTczIiBANDAzMQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDAyNg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg3NzAsIC0xMzcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDc3NywgLTEzNykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MjkyNSwxMSArOTI2MzYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDI2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwMjUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzQ3LCA3MTEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNDcsIDU4MCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNTQsIDcxMSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM1NCwgNTc5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwMzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwMzENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTI4NCwgNjIzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjkxLCA2MjMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyOTU4LDcgKzkyNjY5LDcgQEAKIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE0MDksIDM1MCkNCiAJCQkJICAgIGRyYXdTdXBwbGllciAJQDQwMDkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NjgiIEA0MDM0DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTMwMCwgMzIwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDEzODksIDMyMCkNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Mjk3Myw3ICs5MjY4NCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZmlyc3QiIEA0MDM1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDM0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDcyNiwgLTUyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODE1LCAtNTI5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkyOTg1LDcgKzkyNjk2LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDAzNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAzNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjM4LCAyMDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjcsIDIwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTMwMDksMTEgKzkyNzIwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDAzNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDI0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMwMCwgMzIwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzAwLCAxNjYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzg5LCAzMjApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzODksIDE2NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDM3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDM1DQotCQkJCQkJbG9jYXRpb24gICAJKDEzNDQsIDIxMCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTQzMywgMjEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzAzNCw3ICs5Mjc0NSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDM1DQotCQkJCQkJbG9jYXRpb24gICAJKDExNzQsIDI0NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI2MywgMjQ1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzA1NSw3ICs5Mjc2Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NjkiIEA0MDM5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDM0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDcyNiwgLTUyOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODE1LCAtNTI5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzMDcwLDExICs5Mjc4MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwMzQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDAyNQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMDAsIDMyMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMwMCwgNDc1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM4OSwgMzIwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzg5LCA0NzUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA0MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDAzOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjM0LCA0NDUpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzMjMsIDQ0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTMwOTQsNyArOTI4MDUsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJNjcNCiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU3MCIgQDQwNDENCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxNTIyLCAzMjApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTM4OSwgMzIwKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzMTA5LDcgKzkyODIwLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJzZWNvbmQiIEA0MDQyDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDQxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDk0NCwgLTUyNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODExLCAtNTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzMTIxLDcgKzkyODMyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA0Mw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA0Mg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNjIwLCAyMDEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0ODcsIDIwMSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTMxNDUsMTEgKzkyODU2LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA0MQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDI0DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTUyMiwgMzIwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTIyLCAxNjYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzg5LCAzMjApDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzODksIDE2NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDQ0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDQyDQotCQkJCQkJbG9jYXRpb24gICAJKDE0ODUsIDIxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM1MiwgMjE0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzE3MCw3ICs5Mjg4MSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDQ1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDQyDQotCQkJCQkJbG9jYXRpb24gICAJKDE2NjUsIDI0OCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTUzMiwgMjQ4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzE5MSw3ICs5MjkwMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1NzEiIEA0MDQ2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDQxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDk0NCwgLTUyNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoODExLCAtNTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzMjA2LDExICs5MjkxNywxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwNDENCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDAyNQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MjIsIDMyMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTUyMiwgNDc1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTM4OSwgMzIwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzg5LCA0NzUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA0Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA0Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNTk0LCA0NTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE0NjEsIDQ1NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTMzNTMsMTMgKzkzMDY0LDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTk0DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTgwIiBANDA1Mg0KLQkJCQkgICAgbG9jYXRpb24gICAJKDM3NSwgODg2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDM3OCwgODg2KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5NUNFMEIzMDE1NCINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBANDA1Mw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDUxLCAxMzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDgsIDEzMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzM3MSw3ICs5MzA4Miw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwNTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDYzLCA5MzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDQ2NiwgOTM2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzM5NiwxMSArOTMxMDcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDUyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwNTANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzUsIDg4NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzc1LCA5OTkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzgsIDg4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzc4LCAxMDAwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwNTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzAxLCA5NTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDMwNCwgOTU5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzQyMSw3ICs5MzEzMiw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDU2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDUzDQotCQkJCQkJbG9jYXRpb24gICAJKDUxOCwgOTY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1MjEsIDk2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTM0NDIsNyArOTMxNTMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTgxIiBANDA1Nw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA1Mg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtNDUxLCAxMzMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDgsIDEzMykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzQ1OCwxMSArOTMxNjksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDUyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwNTENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzUsIDg4NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzc1LCA3NzMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNzgsIDg4NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzc4LCA3NzMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA1OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA1Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NjAsIDgxNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDYzLCA4MTYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzNjIzLDEzICs5MzMzNCwxMyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTkwMSwgNTQ3KQ0KIAkJCQkgICAgZHJhd1N1cHBsaWVyIAlANDA2MykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU3NiIgQDQwNjYNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NjgsIDM0NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2NjgsIDM1NykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOERDMDhCODAyNzkiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU3NyIgQDQwNjcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQwNjYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxMjEsIC0zMzApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMTIxLCAtMzIwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzNjQxLDcgKzkzMzUyLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA2OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA2Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg3ODgsIDM4OSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzg4LCAzOTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzY2NywxMSArOTMzNzgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDY2DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwNjINCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NjgsIDM0NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODE4LCAzNDcpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NjgsIDM1NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODE4LCAzNTcpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA2OQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA2Nw0KLQkJCQkJCWxvY2F0aW9uICAgCSg3ODEsIDMxNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzgxLCAzMjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzNjkyLDcgKzkzNDAzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInN0cnVjdHVyYWxGZWF0dXJlIiBANDA3MA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA2Ng0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjEyMSwgLTMzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxMjEsIC0zMjApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTM3MDQsNyArOTM0MTUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDcxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDcwDQotCQkJCQkJbG9jYXRpb24gICAJKDY1OCwgMzgxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NTgsIDM5MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTM3MjksMTEgKzkzNDQwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA2Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDYwDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjY4LCAzNDcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUxOCwgMzQ3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjY4LCAzNTcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUxOCwgMzU3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwNzINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwNzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTQ2LCAzMDIpDQorCQkJCQkJbG9jYXRpb24gICAJKDU0NiwgMzEyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Mzc1MywxMyArOTM0NjQsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTQ2DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1NzgiIEA0MDczDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTQ2MywgMzY5KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDE0NjMsIDM2MSkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOERDMDczQTAxNjEiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9iamVjdCIgQDQwNzQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQwNzMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyNywgLTY1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzI3LCAtNzMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTM3NzEsNyArOTM0ODIsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDc1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDc0DQotCQkJCQkJbG9jYXRpb24gICAJKDE1NjMsIDQwMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTU2MywgMzk0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Mzc5NiwxMSArOTM1MDcsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MDczDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQwNjENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDYzLCAzNjkpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NDUsIDM2OSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0NjMsIDM2MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0NSwgMzYxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwNzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwNzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTU4NywgMzI5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTg3LCAzMjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzODIxLDcgKzkzNTMyLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwNzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwNzQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTUxNiwgNDQyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTE2LCA0MzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTkzODQyLDcgKzkzNTUzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU3OSIgQDQwNzgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQwNzMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTcyNywgLTY1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtNzI3LCAtNzMpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTM4NTgsMTEgKzkzNTY5LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA3Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDYyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQ2MywgMzY5KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjgyLCAzNjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDYzLCAzNjEpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyODIsIDM2MSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDc4DQotCQkJCQkJbG9jYXRpb24gICAJKDEzMzcsIDMzNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTMzNywgMzI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05MzkxNCwyMiArOTM2MjUsNiBAQAogCQkJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCiAJCQkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0E3ODcxNzYwMDdCIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlANDA4MQ0KLQkJCQkJbG9jYXRpb24gICAJKDk4MSwgMTA2MikNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KLQkJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQotCQkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCi0JCQkJCSAgICBjb2xvciAgICAgIAkwDQotCQkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCi0JCQkJCWljb25fc3R5bGUgCSJJY29uIg0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMQ0KLQkJCQkJbWF4X3dpZHRoICAJNDUzKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNjM2DQogCQkJCSAgICBoZWlnaHQgICAgIAkxMTIpDQogCQkJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6VU1MOjpBY3Rpdml0aWVzOjpCYXNpY0FjdGl2aXRpZXM6OklucHV0UGluIiBANDA4Mg0KQEAgLTkzOTYzLDEzICs5MzY1OCwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTg0IiBANDA4Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExNDgsIDEzMTEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTE0OCwgMTIzMikNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTYwRDE1QjAzNjciDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImluc2VydEF0IiBANDA4NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDA4Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjYxLCA2MDMpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNjEsIDUyNCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Mzk4MSw3ICs5MzY3Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwODUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwODQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTkxLCAxMzUzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTEsIDEyNzQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0MDA1LDEyICs5MzcwMCwxNyBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjM5NjBEMTVFMDAwNCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA4Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDgyDQorCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDExNDgsIDEyMzIpDQorCQkJCQkJKDExNDgsIDExNzIpDQorCQkJCQkJKDg4NywgMTE3MikNCisJCQkJCQkoODg3LCAxMjc2KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTQ4LCAxMzExKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4ODcsIDEzMTEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTQ4LCAxMjMyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4ODcsIDEyNzYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA4Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA4NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg5NTUsIDEyNzUpDQorCQkJCQkJbG9jYXRpb24gICAJKDk1NSwgMTE5NikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQwMzEsNyArOTM3MzEsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA4Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA4NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTczLCAxMzU2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTczLCAxMjc3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDA1Miw3ICs5Mzc1Miw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1ODUiIEA0MDg4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDgzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yNjEsIDYwMykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTI2MSwgNTI0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0MDY4LDE1ICs5Mzc2OCwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwODMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDA4MQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxMTQ4LCAxMjMyKQ0KIAkJCQkJCSgxMTQ4LCAxMzExKQ0KIAkJCQkJCSgxMjEwLCAxMzExKQ0KIAkJCQkJCSgxMjEwLCAxMTEyKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTQ4LCAxMzExKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE0OCwgMTIzMikNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIxMCwgMTExMikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDg5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDg4DQotCQkJCQkJbG9jYXRpb24gICAJKDEyOTMsIDExNTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDEyOTMsIDEwODApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0MTQ5LDEzICs5Mzg1MCwxMyBAQAogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2MiwgNTQ3KQ0KIAkJCQkgICAgZHJhd1N1cHBsaWVyIAlANDA2MykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU4MiIgQDQwOTQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3NDQsIDg2NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMDEwLCAxMDg1KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5MDczOTY0MDJENSINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidmFsdWUiIEA0MDk1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDk0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMTI5LCAtMTI2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtODYzLCA5NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDE2Nyw3ICs5Mzg2OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwOTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQwOTUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODI4LCAxMTU1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMDk0LCAxMzc2KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDE5MSwxMiArOTM4OTIsMTYgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzOTA3Mzk2NTAxNUEiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQwOTQNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDA4Mg0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgxMDEwLCAxMDg1KQ0KKwkJCQkJCSgxMDEwLCAxMjc2KQ0KKwkJCQkJCSg4ODcsIDEyNzYpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc0NCwgODY0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDQsIDEyNzYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDEwLCAxMDg1KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4ODcsIDEyNzYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA5Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA5NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg3MDksIDEyMjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDk3NSwgMTQ0OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQyMTcsNyArOTM5MjIsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA5OA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDA5NQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4ODEsIDEyMDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNDcsIDE0MjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0MjM4LDcgKzkzOTQzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU4MyIgQDQwOTkNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQwOTQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTExMjksIC0xMjYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04NjMsIDk1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0MjUzLDE2ICs5Mzk1OCwxMiBAQAogCQkJCQkgICAgcXVpZHUgICAgICAJIjM5MDczOTY1MDE4MiINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDA5NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MDkwDQotCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQotCQkJCQkJKDc0NCwgODY0KQ0KLQkJCQkJCSg3NDQsIDcxOSkNCi0JCQkJCQkoMTAxMCwgNzE5KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NDQsIDg2NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAxMCwgNzE5KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjAyMCwgMjE3MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI3NiwgMTQ5MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTAwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MDk5DQotCQkJCQkJbG9jYXRpb24gICAJKDk2MCwgNjg3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMjI2LCA5MDgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0NDcyLDcgKzk0MTczLDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU5MCIgQDQxMDkNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg3MDIsIDU2NykNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2OTgsIDU2NykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDQ4Nyw3ICs5NDE4OCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiZW5kIiBANDExMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDEwOQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjIyLCAxMTkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMjYsIDExOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDQ5OSw3ICs5NDIwMCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMTENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMTANCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzY0LCA2NDQpDQorCQkJCQkJbG9jYXRpb24gICAJKDc2MCwgNjQ0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDUyMywxMSArOTQyMjQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTA5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxMDUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MDIsIDU2NykNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzAyLCA2OTQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2OTgsIDU2NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjk4LCA2OTQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDExMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDExMA0KLQkJCQkJCWxvY2F0aW9uICAgCSg2NjEsIDY1MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjU3LCA2NTApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0NTQ4LDcgKzk0MjQ5LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU5MSIgQDQxMTMNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxMDkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIyMiwgMTE5KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjI2LCAxMTkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ1NjMsMTEgKzk0MjY0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDEwOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzAyLCA1NjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDcwMiwgNDQxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjk4LCA1NjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY5OCwgNDQxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMTQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzM3LCA0ODUpDQorCQkJCQkJbG9jYXRpb24gICAJKDczMywgNDg1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDU4NywxMyArOTQyODgsMTMgQEAKIAkJCQkJCWhlaWdodCAgICAgCTM1DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1ODYiIEA0MTE1DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNTI5LCA0MDEpDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoNTI5LCAzOTYpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzhEQzA0OUYwMjk4Ig0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJlbmREYXRhIiBANDExNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDExNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTMwMiwgLTc3MSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEzMDIsIC03NzYpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ2MDUsNyArOTQzMDYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTE3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTE2DQotCQkJCQkJbG9jYXRpb24gICAJKDU3MiwgNDM5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg1NzIsIDQzNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ2MzAsMTEgKzk0MzMxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDExNQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTI5LCA0MDEpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3NCwgNDAxKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTI5LCAzOTYpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY3NCwgMzk2KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMTgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjMyLCAzNTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDYzMiwgMzUzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDY1NSw3ICs5NDM1Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1ODciIEA0MTE5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTE1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMzAyLCAtNzcxKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTMwMiwgLTc3NikNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDY2Nyw3ICs5NDM2OCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMTkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDEzLCAzMTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDQxMywgMzEwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDY5MywxMSArOTQzOTQsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTE1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxMDYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MjksIDQwMSkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg0LCA0MDEpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MjksIDM5NikNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg0LCAzOTYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDEyMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDExOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg0MTYsIDQ1MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDE2LCA0NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk0NzU1LDEzICs5NDQ1NiwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTg4IiBANDEyNA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDg5OSwgNTY4KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDg2OSwgNTY3KQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM4Qzk2NUFEMDE2NCINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTg5IiBANDEyNQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDEyNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMTUsIC0zNzYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI4NSwgLTM3NykNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDc3Myw3ICs5NDQ3NCw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMjYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODU4LCA0NjgpDQorCQkJCQkJbG9jYXRpb24gICAJKDgyOCwgNDY3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ3OTksMTEgKzk0NTAwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDEyNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTA4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODk5LCA1NjgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg5OSwgNDQyKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY5LCA1NjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2OSwgNDQxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMjcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMjUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTQ5LCA0ODIpDQorCQkJCQkJbG9jYXRpb24gICAJKDkxOSwgNDgxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDgyNCw3ICs5NDUyNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJ2YWx1ZSIgQDQxMjgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxMjQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzE1LCAtMzc2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyODUsIC0zNzcpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ4MzYsNyArOTQ1MzcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTI5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTI4DQotCQkJCQkJbG9jYXRpb24gICAJKDk4MywgNjEzKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NTMsIDYxMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ4NjEsMTEgKzk0NTYyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDEyNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTIzDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODk5LCA1NjgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg5OSwgNjk0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODY5LCA1NjcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2OSwgNjk0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMjgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTY0LCA2NjApDQorCQkJCQkJbG9jYXRpb24gICAJKDkzNCwgNjU5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NDk1OSwxMyArOTQ2NjAsMTMgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDU5MiIgQDQxMzQNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg2NzAsIDYwMCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2NzAsIDYxOCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTVDRDUyMTAxMkQiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlc3VsdCIgQDQxMzUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxMzQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMzI2LCAtMTY2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgzMjYsIC0xNDgpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTQ5NzcsNyArOTQ2NzgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTM2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTM1DQotCQkJCQkJbG9jYXRpb24gICAJKDc5OSwgNjQ3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3OTksIDY2NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTUwMDIsMTEgKzk0NzAzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDEzNA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTMyDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjcwLCA2MDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg4MywgNjAwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjcwLCA2MTgpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg4MywgNjE4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMzcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxMzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoODM5LCA1NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDgzOSwgNTgzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTAyNyw3ICs5NDcyOCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTM1DQotCQkJCQkJbG9jYXRpb24gICAJKDc0NSwgNjg0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3NDUsIDcwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTUwNDgsNyArOTQ3NDksNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNTkzIiBANDEzOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDEzNA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgzMjYsIC0xNjYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDMyNiwgLTE0OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTA2NCwxMSArOTQ3NjUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTM0DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxMzMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzAsIDYwMCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDU3LCA2MDApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NzAsIDYxOCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDU3LCA2MTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDE0MA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDEzOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MjQsIDU2NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTI0LCA1ODQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NDE1LDEzICs5NTExNiwxMyBAQAogCQkJCSAgICBoZWlnaHQgICAgIAkxMTINCiAJCQkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ1OTYiIEA0MTU3DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoNDYzLCAxMjI0KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDUzMSwgMTIyNCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTNBRDhDMjAyRjUiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImVuZERhdGEiIEA0MTU4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTU3DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC01MTEsIC0yNjUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDMsIC0yNjUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTU0MzMsNyArOTUxMzQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTU5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTU4DQotCQkJCQkJbG9jYXRpb24gICAJKDU2MiwgMTIzMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNjMwLCAxMjMyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTQ1NywxMSArOTUxNTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTU3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxNTYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0NjMsIDEyMjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ2MywgMTMzMCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUzMSwgMTIyNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTMxLCAxMzI5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxNjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDI1LCAxMjg4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0OTMsIDEyODgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NDgyLDcgKzk1MTgzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxNjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxNTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjQwLCAxMjcyKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MDgsIDEyNzIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NTAzLDcgKzk1MjA0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU5NyIgQDQxNjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxNTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTUxMSwgLTI2NSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ0MywgLTI2NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTUxOCwxMSArOTUyMTksMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTU3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxNTMNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0NjMsIDEyMjQpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ2MywgMTExOSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDUzMSwgMTIyNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTMxLCAxMTIwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxNjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxNjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNDIyLCAxMTQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0OTAsIDExNDYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NTUwLDEzICs5NTI1MSwxMyBAQAogCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI1MSwgMTMyOSkNCiAJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNTEsIDExMDQpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTk0IiBANDE2NQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDgxNywgMTM3OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg4MTcsIDEzNzcpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiMzk2MEMxNzMwMjBEIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJpbnNlcnRBdCIgQDQxNjYNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxNjUNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTE3LCAxMjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDUxNywgMTE5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NTY4LDcgKzk1MjY5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDE2Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDE2Ng0KLQkJCQkJCWxvY2F0aW9uICAgCSg4ODEsIDE0MjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDg4MSwgMTQyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTU1OTMsMTEgKzk1Mjk0LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDE2NQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTU1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODE3LCAxMzc4KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5NTUsIDEzNzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTcsIDEzNzcpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk1NSwgMTM3NykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTY4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTY2DQotCQkJCQkJbG9jYXRpb24gICAJKDg5MiwgMTMzNikNCisJCQkJCQlsb2NhdGlvbiAgIAkoODkyLCAxMzM1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTYxOCw3ICs5NTMxOSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1OTUiIEA0MTY5DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTY1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDUxNywgMTIwKQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg1MTcsIDExOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTYzNCwxMSArOTUzMzUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MTY1DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxNTYNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTcsIDEzNzgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY4MCwgMTM3OCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgxNywgMTM3NykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjgwLCAxMzc3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxNzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxNjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzI5LCAxNDE2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MjksIDE0MTUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk1NzQ2LDEzICs5NTQ0NywxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjAwIiBANDE3NA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDExNzUsIDYzMykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMTIyLCA2MzMpDQogCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0E3ODdDNzQwMzBDIg0KIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJhc3NvY2lhdGlvbiIgQDQxNzUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQxNzQNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTg0MiwgOSkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTg5NSwgOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTc2NCw3ICs5NTQ2NSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxNzYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQxNzUNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA0NCwgODA3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5OTEsIDgwNykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTU3ODksMTEgKzk1NDkwLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDE3NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTcxDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE3NSwgNjMzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTc1LCA4MzgpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTIyLCA2MzMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMjIsIDgzOCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTc3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTc1DQotCQkJCQkJbG9jYXRpb24gICAJKDEyMTUsIDgwNykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE2MiwgODA3KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NTgxNCw3ICs5NTUxNSw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MDEiIEA0MTc4DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTc0DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC04NDIsIDkpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04OTUsIDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTU4MzAsMTEgKzk1NTMxLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDE3NA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MTczDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTE3NSwgNjMzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTc1LCA0MjkpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTIyLCA2MzMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMjIsIDQyOSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MTc5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MTc4DQotCQkJCQkJbG9jYXRpb24gICAJKDEyNDEsIDQ3MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTE4OCwgNDczKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjMwNywxMyArOTYwMDgsMTMgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYwMiIgQDQyMDENCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5OTcsIDM4NCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg5OTcsIDM4MykNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTA3OEEzODAzOTciDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInZhcmlhYmxlIiBANDIwMg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDIwMQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTczNSwgLTMwNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTE3MzUsIC0zMDUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTYzMjUsNyArOTYwMjYsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjAzDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjAyDQotCQkJCQkJbG9jYXRpb24gICAJKDEwODQsIDQyMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTA4NCwgNDIxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjM1MCwxMSArOTYwNTEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjAxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQxOTkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTcsIDM4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE2MSwgMzg0KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTk3LCAzODMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNjEsIDM4MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjA0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjAyDQotCQkJCQkJbG9jYXRpb24gICAJKDExMTEsIDM1MCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTExMSwgMzQ5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjM3NSw3ICs5NjA3Niw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MDMiIEA0MjA1DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjAxDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xNzM1LCAtMzA0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTczNSwgLTMwNSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjM5MSwxMSArOTYwOTIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjAxDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyMDANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTcsIDM4NCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODMzLCAzODQpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5OTcsIDM4MykNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODMzLCAzODMpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIwNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIwNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSg4ODIsIDM0MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoODgyLCAzNDIpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2NTYwLDEzICs5NjI2MSwxMyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjA2IiBANDIxNw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDUyMiwgODgyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDgwMCwgMTEwMCkNCiAJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzOTA3OEFFOTAxMjUiDQogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInZhbHVlIiBANDIxOA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDIxNw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjExNiwgLTEyMDYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0xODM4LCAtOTg4KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2NTc4LDcgKzk2Mjc5LDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIxOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIxOA0KLQkJCQkJCWxvY2F0aW9uICAgCSg0NDcsIDEyMjcpDQorCQkJCQkJbG9jYXRpb24gICAJKDcyNSwgMTQ0NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTY2MDIsMTIgKzk2MzAzLDE2IEBACiAJCQkJCSAgICBxdWlkdSAgICAgIAkiMzkwNzhBRTkwMzkyIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjE3DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyMTYNCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoODAwLCAxMTAwKQ0KKwkJCQkJCSg4MDAsIDEzMTcpDQorCQkJCQkJKDcwNywgMTMxNykpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTIyLCA4ODIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUyMiwgMTMxNykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgwMCwgMTEwMCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzA3LCAxMzE3KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyMjANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyMTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNTU4LCAxMjQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4MzYsIDE0NjQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2NjI4LDcgKzk2MzMzLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyMjENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyMTgNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMzk2LCAxMjY3KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NzQsIDE0ODUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2NjQ5LDcgKzk2MzU0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDYwNyIgQDQyMjINCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyMTcNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIxMTYsIC0xMjA2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTgzOCwgLTk4OCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NjY2NCwxNiArOTYzNjksMTIgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzOTA3OEFFQTAwMEUiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyMTcNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIxMg0KLQkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSg1MjIsIDg4MikNCi0JCQkJCQkoNTIyLCA3MjUpDQotCQkJCQkJKDgwMCwgNzI1KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MjIsIDg4MikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODAwLCA3MjUpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjAwLCAyMjAwKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODA4LCAxNTI4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyMjMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyMjINCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzU0LCA2ODQpDQorCQkJCQkJbG9jYXRpb24gICAJKDEwMzIsIDkwMikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTY3MjEsMTMgKzk2NDIyLDEzIEBACiAJCQkJICAgIGhlaWdodCAgICAgCTExMg0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYwOCIgQDQyMjUNCi0JCQkJICAgIGxvY2F0aW9uICAgCSg5NjUsIDEzNTApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoOTY1LCAxMjgzKQ0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjM5NjEwRDJGMDIwQiINCiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiaW5zZXJ0QXQiIEA0MjI2DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjI1DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDIwLCA1NTcpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDIwLCA0OTApDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTY3MzksNyArOTY0NDAsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjI3DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjI2DQotCQkJCQkJbG9jYXRpb24gICAJKDc5NywgMTM5NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoNzk3LCAxMzI4KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Njc2MywxMiArOTY0NjQsMTcgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzOTYxMEQzMjAzMEEiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyMjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIxNg0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5NjUsIDEyODMpDQorCQkJCQkJKDk2NSwgMTIyMykNCisJCQkJCQkoNzA2LCAxMjIzKQ0KKwkJCQkJCSg3MDYsIDEzMTgpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDk2NSwgMTM1MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzA3LCAxMzUwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTY1LCAxMjgzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3MDYsIDEzMTgpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIyOA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg4MDUsIDEzMTgpDQorCQkJCQkJbG9jYXRpb24gICAJKDgwNSwgMTI1MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTY3ODksNyArOTY0OTUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIyOQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDIyNg0KLQkJCQkJCWxvY2F0aW9uICAgCSg5ODcsIDEzOTcpDQorCQkJCQkJbG9jYXRpb24gICAJKDk4NywgMTMzMCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTY4MTAsNyArOTY1MTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTApKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjA5IiBANDIzMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDIyNQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyMCwgNTU3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyMCwgNDkwKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2ODI2LDE1ICs5NjUzMiwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyMjUNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIyNA0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSg5NjUsIDEyODMpDQogCQkJCQkJKDk2NSwgMTM1MCkNCiAJCQkJCQkoMTAyNSwgMTM1MCkNCiAJCQkJCQkoMTAyNSwgMTEzMCkpDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTY1LCAxMzUwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTY1LCAxMjgzKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDI1LCAxMTMwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyMzENCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyMzANCi0JCQkJCQlsb2NhdGlvbiAgIAkoOTY5LCAxMTgxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg5NjksIDExMTQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk2OTM4LDIyICs5NjY0NSw2IEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCiAJCQkJICAgIHF1aWR1ICAgICAgCSIzNzQ1QzRFNTAwNjQiDQotCQkJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KLQkJCQkJUGFyZW50X1ZpZXcgCUA0MjM1DQotCQkJCQlsb2NhdGlvbiAgIAkoOTYxLCA0MTMpDQotCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCi0JCQkJCSAgICBzaXplICAgICAgIAk4DQotCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KLQkJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQotCQkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCi0JCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KLQkJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQotCQkJCQkgICAgY29sb3IgICAgICAJMA0KLQkJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQotCQkJCQlpY29uX3N0eWxlIAkiSWNvbiINCi0JCQkJCWFuY2hvciAgICAgCTINCi0JCQkJCW5saW5lcyAgICAgCTINCi0JCQkJCW1heF93aWR0aCAgCTI2NSkNCiAJCQkJICAgIHdpZHRoICAgICAgCTQxMw0KIAkJCQkgICAgaGVpZ2h0ICAgICAJMTYzKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aXZpdGllczo6QmFzaWNBY3Rpdml0aWVzOjpPdXRwdXRQaW4iIEA0MjM2DQpAQCAtOTcwNDcsNyArOTY3MzgsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjEwIiBANDIzOQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDc3MSwgNDI3KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDc3MSwgNDE0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcwNTksNyArOTY3NTAsNyBAQAogCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDI0MA0KIAkJCQkJUGFyZW50X1ZpZXcgCUA0MjM5DQotCQkJCQlsb2NhdGlvbiAgIAkoNzcxLCAzNjgpDQorCQkJCQlsb2NhdGlvbiAgIAkoNzcxLCAzNTUpDQogCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3MDg0LDcgKzk2Nzc1LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJmdW5jdGlvbiIgQDQyNDENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyMzkNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEzMTQsIC0xMzM2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMTMxNCwgLTEzNDkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcwOTYsNyArOTY3ODcsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjQyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjQxDQotCQkJCQkJbG9jYXRpb24gICAJKDg0NSwgMzkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg4NDUsIDM3OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcxMjEsMTEgKzk2ODEyLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDIzOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MjM1DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzcxLCA0MjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk1MiwgNDI3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzcxLCA0MTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk1MiwgNDE0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNDMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNDENCi0JCQkJCQlsb2NhdGlvbiAgIAkoODg5LCA0NjMpDQorCQkJCQkJbG9jYXRpb24gICAJKDg4OSwgNDUwKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzE0Niw3ICs5NjgzNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MTEiIEA0MjQ0DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjM5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0xMzE0LCAtMTMzNikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTEzMTQsIC0xMzQ5KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcxNjIsMTEgKzk2ODUzLDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDIzOQ0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MjM4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzcxLCA0MjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5MSwgNDI3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNzcxLCA0MTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU5MSwgNDE0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNDUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNDQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjU5LCA0NjUpDQorCQkJCQkJbG9jYXRpb24gICAJKDY1OSwgNDUyKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzE4Niw3ICs5Njg3Nyw3IEBACiAJCQkJCQloZWlnaHQgICAgIAkzOA0KIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjE0IiBANDI0Ng0KLQkJCQkgICAgbG9jYXRpb24gICAJKDIwOSwgNTgyKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDI3MSwgNTgyKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3MjAxLDcgKzk2ODkyLDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJyZXN1bHQiIEA0MjQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjQ2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTQsIC0zODUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04NTIsIC0zODUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcyMTMsNyArOTY5MDQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjQ4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDI4MiwgNTY5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNDQsIDU2OSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcyMzcsMTEgKzk2OTI4LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDI0Ng0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MjM2DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA5LCA1ODIpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwOSwgNzAwKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjcxLCA1ODIpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3MSwgNjk5KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNDkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNDcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY4LCA2NDMpDQorCQkJCQkJbG9jYXRpb24gICAJKDIzMCwgNjQzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzI2Miw3ICs5Njk1Myw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjUwDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjQ3DQotCQkJCQkJbG9jYXRpb24gICAJKDMzOCwgNjM1KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg0MDAsIDYzNSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTcyODYsMTQgKzk2OTc3LDE0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MTUiIEA0MjUxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjQ2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC05MTQsIC0zODUpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC04NTIsIC0zODUpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQ0E3MzJDQjAwNjUiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyNDYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDIzOA0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwOSwgNTgyKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyMDksIDQ2NSkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI3MSwgNTgyKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNzEsIDQ2NikpKSkNCiAJCQkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBANDI1Mg0KIAkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjQwOUQ3MDBGQyINCkBAIC05NzMwMyw3ICs5Njk5NCw3IEBACiAJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzg0LCAzNjIpDQogCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMzg0LCAxODgpKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjEyIiBANDI1Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDU1OSwgNTg2KQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDUzMCwgNTg1KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3MzE4LDcgKzk3MDA5LDcgQEAKIAkJCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICJhcmd1bWVudCIgQDQyNTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyNTMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU2NywgLTM3OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU5NiwgLTM3OSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzMzMCw3ICs5NzAyMSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjc4LCA2MTApDQorCQkJCQkJbG9jYXRpb24gICAJKDY0OSwgNjA5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzM1NCwxMSArOTcwNDUsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjUzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyMzcNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1NTksIDU4NikNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTU5LCA3MDYpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MzAsIDU4NSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTMwLCA3MDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDI1Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDI1NA0KLQkJCQkJCWxvY2F0aW9uICAgCSg1MjYsIDY0NikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNDk3LCA2NDUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3Mzc5LDcgKzk3MDcwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyNTcNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyNTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzAzLCA2NTQpDQorCQkJCQkJbG9jYXRpb24gICAJKDY3NCwgNjUzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzQwMCwxNCArOTcwOTEsMTQgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDYxMyIgQDQyNTgNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyNTMNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU2NywgLTM3OCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTU5NiwgLTM3OSkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgcXVpZHUgICAgICAJIjNDQTczMkEzMDI5OCINCiAJCQkJCSAgICBjbGllbnQgICAgIAlANDI1Mw0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MjM4DQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTU5LCA1ODYpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU1OSwgNDY2KSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTMwLCA1ODUpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUzMCwgNDY2KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q2xhc3Nlczo6S2VybmVsOjpQYWNrYWdlYWJsZUVsZW1lbnQiIEA0MjU5DQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KIAkJCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KQEAgLTk3NDM0LDIzICs5NzEyNSw2IEBACiAJCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCiAJCQkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQogCQkJCSAgICBxdWlkdSAgICAgIAkiM0NCMUYzQTAwMjREIg0KLQkJCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCi0JCQkJCVBhcmVudF9WaWV3IAlANDI1OQ0KLQkJCQkJbG9jYXRpb24gICAJKDkyNiwgMTA3KQ0KLQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQotCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KLQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCi0JCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KLQkJCQkJYW5jaG9yICAgICAJMg0KLQkJCQkJbmxpbmVzICAgICAJMg0KLQkJCQkJbWF4X3dpZHRoICAJNDAwKQ0KIAkJCQkgICAgd2lkdGggICAgICAJNDgyDQogCQkJCSAgICBoZWlnaHQgICAgIAkyMzANCiAJCQkJICAgIGFubm90YXRpb24gCTgpDQpAQCAtOTc1MjcsMjYgKzk3MjAxLDEwIEBACiAJCQkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KIAkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkgICAgcXVpZHUgICAgICAJIjNERjEyRUMwMDBEQSINCi0JCQkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQotCQkJCQlQYXJlbnRfVmlldyAJQDQyNjINCi0JCQkJCWxvY2F0aW9uICAgCSg0NjQsIDgxNikNCi0JCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KLQkJCQkJICAgIHNpemUgICAgICAgCTgNCi0JCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQotCQkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCi0JCQkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQotCQkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCi0JCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KLQkJCQkJICAgIGNvbG9yICAgICAgCTANCi0JCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KLQkJCQkJaWNvbl9zdHlsZSAJIkljb24iDQotCQkJCQlhbmNob3IgICAgIAkyDQotCQkJCQlubGluZXMgICAgIAkxDQotCQkJCQltYXhfd2lkdGggIAk0NzEpDQogCQkJCSAgICB3aWR0aCAgICAgIAk1MDYNCiAJCQkJICAgIGhlaWdodCAgICAgCTExMykNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYyNiIgQDQyNjMNCi0JCQkJICAgIGxvY2F0aW9uICAgCSgzODQsIDgxMykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgzNjcsIDc1MykNCiAJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05NzU2MSw3ICs5NzIxOSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAicmVzdWx0IiBANDI2NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDI2Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODkyLCAtMzU1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTA5LCAtNDE1KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3NTczLDcgKzk3MjMxLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDI2NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDI2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgyNDIsIDcwNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjI1LCA2NDQpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3NTk3LDE1ICs5NzI1NSwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyNjMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDI2MQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgzODQsIDgxMykNCi0JCQkJCQkoMzI0LCA4MTMpDQotCQkJCQkJKDMyNCwgNjYxKSkNCisJCQkJCQkoMzY3LCA3NTMpDQorCQkJCQkJKDQxMCwgNzUzKQ0KKwkJCQkJCSg0MTAsIDY2MCkNCisJCQkJCQkoMzY2LCA2NjApKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM4NCwgODEzKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzMjQsIDY2MSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM2NywgNzUzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjYsIDY2MCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MjY2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MjY0DQotCQkJCQkJbG9jYXRpb24gICAJKDM2OCwgNzMwKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgzNTEsIDY3MCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTc2MjYsNyArOTcyODUsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDI2Nw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDI2NA0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODksIDc3MykNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTcyLCA3MTMpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk3NjQ3LDEzICs5NzMwNiwxOCBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjI3IiBANDI2OA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDI2Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtODkyLCAtMzU1KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtOTA5LCAtNDE1KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBNzJFMDQwMTZBIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjYzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyNjINCisJCQkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCisJCQkJCQkoMzY3LCA3NTMpDQorCQkJCQkJKDMyNCwgNzUzKQ0KKwkJCQkJCSgzMjQsIDgxMykNCisJCQkJCQkoNDU1LCA4MTMpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM4NCwgODEzKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzY3LCA3NTMpDQogCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQ1NSwgODEzKSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6Q29tbW9uQmVoYXZpb3JzOjpCYXNpY0JlaGF2aW9yczo6QmVoYXZpb3IiIEA0MjY5DQogCQkJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KQEAgLTk3OTYzLDcgKzk3NjI3LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTAwDQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjMyIiBANDI4Mw0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE2NTIsIDk1OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTU0LCA5NTgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05Nzk3OCw3ICs5NzY0Miw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2lnbmFsIiBANDI4NA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDI4Mw0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgxMDY5LCAtMTg0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg5NzEsIC0xODQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTc5OTAsNyArOTc2NTQsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0Mjg1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0Mjg0DQotCQkJCQkJbG9jYXRpb24gICAJKDE3MzAsIDEwMjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE2MzIsIDEwMjEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4MDE0LDExICs5NzY3OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyODMNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDI4Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NTIsIDk1OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY1MiwgMTA1NCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NTQsIDk1OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU1NCwgMTA1NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0Mjg2DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0Mjg0DQotCQkJCQkJbG9jYXRpb24gICAJKDE2OTksIDk3MSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTYwMSwgOTcxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODAzOSw3ICs5NzcwMyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MzMiIEA0Mjg3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MjgzDQotCQkJCQkgICAgbG9jYXRpb24gICAJKDEwNjksIC0xODQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDk3MSwgLTE4NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODA1NCwxMSArOTc3MTgsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjgzDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyODANCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjUyLCA5NTgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NTIsIDg2MikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NTQsIDk1OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTU1NCwgODYzKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyODgNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyODcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTY5NCwgODk4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNTk2LCA4OTgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4MTA1LDcgKzk3NzY5LDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTA0DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjE4IiBANDI5MA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDY2MywgMTQ0MCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSg2ODQsIDE0NDEpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODEyMCw3ICs5Nzc4NCw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjE5IiBANDI5MQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDI5MA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgyNzMsIC0yNzYpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKDI5NCwgLTI3NSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODEzMiw3ICs5Nzc5Niw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyOTINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyOTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjIyLCAxMzQ4KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg2NDMsIDEzNDkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTEwDQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODE1NywxMSArOTc4MjEsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjkwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyODkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NjMsIDE0NDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY2MywgMTMyNCkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4NCwgMTQ0MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjg0LCAxMzI0KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyOTMNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyOTENCi0JCQkJCQlsb2NhdGlvbiAgIAkoNjk4LCAxMzQ2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MTksIDEzNDcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4MTgyLDcgKzk3ODQ2LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkxKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIm9wZXJhdGlvbiIgQDQyOTQNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQyOTANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoMjczLCAtMjc2KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgyOTQsIC0yNzUpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTgxOTQsNyArOTc4NTgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0Mjk1DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0Mjk0DQotCQkJCQkJbG9jYXRpb24gICAJKDU2MywgMTUyMikNCisJCQkJCQlsb2NhdGlvbiAgIAkoNTg0LCAxNTIzKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODIxOCwxMSArOTc4ODIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MjkwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyODENCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NjMsIDE0NDApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY2MywgMTU1NykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4NCwgMTQ0MSkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjg0LCAxNTU4KQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyOTYNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQyOTQNCi0JCQkJCQlsb2NhdGlvbiAgIAkoNzE0LCAxNTE5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSg3MzUsIDE1MjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4Mjg3LDcgKzk3OTUxLDcgQEAKIAkJCQkgICAgaGVpZ2h0ICAgICAJMTA3DQogCQkJCSAgICBhbm5vdGF0aW9uIAk4KQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjM0IiBANDI5OQ0KLQkJCQkgICAgbG9jYXRpb24gICAJKDEzMzEsIDk1OCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMzI4LCA5NTgpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODMwMiw3ICs5Nzk2Niw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAic2lnbmFsIiBANDMwMA0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDI5OQ0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg0NDAsIC02NCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDM3LCAtNjQpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJMTANCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTgzMTQsNyArOTc5NzgsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzAxDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDE0MTIsIDEwMjApDQorCQkJCQkJbG9jYXRpb24gICAJKDE0MDksIDEwMjApDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4MzM4LDExICs5ODAwMiwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQyOTkNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDI4Mg0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMzEsIDk1OCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMzMSwgMTA1MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMjgsIDk1OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMyOCwgMTA1NCkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzAyDQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzAwDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNzQsIDk3NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTM3MSwgOTc0KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODM2Myw3ICs5ODAyNyw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MzUiIEA0MzAzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0Mjk5DQotCQkJCQkgICAgbG9jYXRpb24gICAJKDQ0MCwgLTY0KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSg0MzcsIC02NCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODM3OCwxMSArOTgwNDIsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0Mjk5DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyOTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzMxLCA5NTgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzMzEsIDg2MykNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzMjgsIDk1OCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMyOCwgODYyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzMDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTM2OSwgOTAxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMzY2LCA5MDEpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4NTIyLDcgKzk4MTg2LDcgQEAKIAkJCQkgICAgYW5ub3RhdGlvbiAJOA0KIAkJCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYyMCIgQDQzMTINCi0JCQkJICAgIGxvY2F0aW9uICAgCSgxMTI4LCAxMzYwKQ0KKwkJCQkgICAgbG9jYXRpb24gICAJKDIxODIsIDEzNjApDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODUzNyw3ICs5ODIwMSw3IEBACiAJCQkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjIxIiBANDMxMw0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDMxMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4NTQsIDY3MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkwOCwgNjcyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4NTQ5LDcgKzk4MjEzLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMxNA0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMxMw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDY5LCAxMjMxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTIzLCAxMjMxKQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAkxMA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg1NzQsMTUgKzk4MjM4LDE2IEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDMxMg0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0Mjg5DQogCQkJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQorCQkJCQkJKDIxODIsIDEzNjApDQogCQkJCQkJKDExMjgsIDEzNjApDQogCQkJCQkJKDExMjgsIDEyNzIpDQogCQkJCQkJKDEwMzEsIDEyNzIpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMjgsIDEzNjApDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMTgyLCAxMzYwKQ0KIAkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDMxLCAxMjcyKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzMTUNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMTMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTA4NCwgMTIyNCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjEzOCwgMTIyNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg2MDMsNyArOTgyNjgsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpKQ0KIAkJCQkJKG9iamVjdCBSb2xlVmlldyAidGFyZ2V0IiBANDMxNg0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDMxMg0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSg4NTQsIDY3MikNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoMTkwOCwgNjcyKQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4NjE1LDcgKzk4MjgwLDcgQEAKIAkJCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMxNw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMxNg0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMDQ2LCAxNDM5KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgyMTAwLCAxNDM5KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODYzOCwxMiArOTgzMDMsMTcgQEAKIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzQUE2RDI5RDAwOEMiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQzMTINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDMxMQ0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgyMTgyLCAxMzYwKQ0KKwkJCQkJCSgyMjU2LCAxMzYwKQ0KKwkJCQkJCSgyMjU2LCAxNjQzKQ0KKwkJCQkJCSgxMzczLCAxNjQzKSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTI4LCAxMzYwKQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTI4LCAxNTQ2KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjE4MiwgMTM2MCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM3MywgMTY0MykNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzE4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzE2DQotCQkJCQkJbG9jYXRpb24gICAJKDExNTYsIDE0NzkpDQorCQkJCQkJbG9jYXRpb24gICAJKDIyMTAsIDE0NzkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4NjY0LDcgKzk4MzM0LDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzMTkNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMTYNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTAwMSwgMTQ4NSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMjA1NSwgMTQ4NSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg2ODQsNyArOTgzNTQsNyBAQAogCQkJCQkJaGVpZ2h0ICAgICAJMTI4DQogCQkJCQkJb3JpZW50YXRpb24gCTEpKSkpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2MjIiIEA0MzIwDQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTIzOCwgMTIwNCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxMjE2LCAxMjAzKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg2OTksNyArOTgzNjksNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRhcmdldCIgQDQzMjENCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQzMjANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTEzLCAzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDkxLCAyOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODcxMSw3ICs5ODM4MSw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzMjINCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMjENCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTMyMCwgMTQzNSkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTI5OCwgMTQzNCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg3MzUsMTEgKzk4NDA1LDExIEBACiAJCQkJCSAgICBjbGllbnQgICAgIAlANDMyMA0KIAkJCQkJICAgIHN1cHBsaWVyICAgCUA0MzExDQogCQkJCQkgICAgbGluZV9zdHlsZSAJMw0KLQkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTIzOCwgMTIwNCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTIzOCwgMTU0NikNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyMTYsIDEyMDMpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMTYsIDE1NDUpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMyMw0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMyMQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMjEzLCAxNDc2KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxMTkxLCAxNDc1KQ0KIAkJCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCSAgICBzaXplICAgICAgIAk4DQogCQkJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODc2MCw3ICs5ODQzMCw3IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzI0DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzIxDQotCQkJCQkJbG9jYXRpb24gICAJKDEzNzksIDE0NzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDEzNTcsIDE0NzYpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4NzgxLDcgKzk4NDUxLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKSkNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDYyMyIgQDQzMjUNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQzMjANCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoNTEzLCAzMCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoNDkxLCAyOSkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODc5NiwxMSArOTg0NjYsMTEgQEAKIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MzIwDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQyOTgNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjM4LCAxMjA0KQ0KLQkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjM4LCA4NjMpDQorCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjE2LCAxMjAzKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjE2LCA4NjIpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMyNg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMyNQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxMTcxLCA4OTkpDQorCQkJCQkJbG9jYXRpb24gICAJKDExNDksIDg5OCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg4NTAsNyArOTg1MjAsNyBAQAogCQkJCSAgICBhbm5vdGF0aW9uIAk4DQogCQkJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KIAkJCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjMwIiBANDMyOA0KLQkJCQkgICAgbG9jYXRpb24gICAJKDE1NDksIDMyOCkNCisJCQkJICAgIGxvY2F0aW9uICAgCSgxNTQ5LCAzMzQpDQogCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCXNpemUgICAgICAgCTEwDQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg4NjUsNyArOTg1MzUsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgImFyZ3VtZW50IiBANDMyOQ0KIAkJCQkJICAgIFBhcmVudF9WaWV3IAlANDMyOA0KLQkJCQkJICAgIGxvY2F0aW9uICAgCSgtMjMsIC0yMzQpDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMywgLTIyOCkNCiAJCQkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQlzaXplICAgICAgIAkxMA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05ODg3Nyw3ICs5ODU0Nyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzMzANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMjkNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTczNCwgMTkxKQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxNzM0LCAxOTcpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk4OTAxLDExICs5ODU3MSwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQzMjgNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDMyNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NDksIDMyOCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg1NSwgMzI4KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU0OSwgMzM0KQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODU1LCAzMzQpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMzMQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODEzLCAzNzYpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MTMsIDM4MikNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg5MjYsNyArOTg1OTYsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDMzMg0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDMyOQ0KLQkJCQkJCWxvY2F0aW9uICAgCSgxNzIwLCAyNTUpDQorCQkJCQkJbG9jYXRpb24gICAJKDE3MjAsIDI2MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTg5NTAsMTQgKzk4NjIwLDE0IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MzEiIEA0MzMzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MzI4DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0yMywgLTIzNCkNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTIzLCAtMjI4KQ0KIAkJCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0NBNzJFNDUwMENFIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MzI4DQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQzMDUNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTQ5LCAzMjgpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyNDQsIDMyOCkpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NDksIDMzNCkNCisJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI0NCwgMzM0KSkpKQ0KIAkJCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OlVNTDo6QWN0aW9uczo6SW50ZXJtZWRpYXRlQWN0aW9uczo6U2VuZE9iamVjdEFjdGlvbiIgQDQzMzQNCiAJCQkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQogCQkJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KQEAgLTk5MDA3LDcgKzk4Njc3LDcgQEAKIAkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5MTMsIDU4MikNCiAJCQkJICAgIGRyYXdTdXBwbGllciAJQDQzMDYpDQogCQkJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2MjQiIEA0MzM2DQotCQkJCSAgICBsb2NhdGlvbiAgIAkoMTk2OCwgMTUyNykNCisJCQkJICAgIGxvY2F0aW9uICAgCSgyMDkzLCAzMDU0KQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkwMjMsNyArOTg2OTMsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInRhcmdldCIgQDQzMzcNCiAJCQkJCSAgICBQYXJlbnRfVmlldyAJQDQzMzYNCi0JCQkJCSAgICBsb2NhdGlvbiAgIAkoLTQ3MiwgNjM3KQ0KKwkJCQkJICAgIGxvY2F0aW9uICAgCSgtMzQ3LCAyMTY0KQ0KIAkJCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KIAkJCQkJCXNpemUgICAgICAgCTgNCiAJCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkwMzUsNyArOTg3MDUsNyBAQAogCQkJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzM4DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzM3DQotCQkJCQkJbG9jYXRpb24gICAJKDE0NTgsIDE1NjEpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1ODMsIDMwODgpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5MDYwLDE1ICs5ODczMCwxNiBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQzMzYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDMxMQ0KIAkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KLQkJCQkJCSgxOTY4LCAxNTI3KQ0KKwkJCQkJCSgyMDkzLCAzMDU0KQ0KKwkJCQkJCSgxOTY4LCAzMDU0KQ0KIAkJCQkJCSgxOTY4LCAxNTk2KQ0KIAkJCQkJCSgxMzczLCAxNTk2KSkNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTY4LCAxNTI3KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA5MywgMzA1NCkNCiAJCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM3MywgMTU5NikNCiAJCQkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MzM5DQogCQkJCQkJUGFyZW50X1ZpZXcgCUA0MzM3DQotCQkJCQkJbG9jYXRpb24gICAJKDE0MzQsIDE2MzIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE1NTksIDMxNTkpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5MDg5LDcgKzk4NzYwLDcgQEAKIAkJCQkJCW9yaWVudGF0aW9uIAkwKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzNDANCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzMzcNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTYzMCwgMTU2NCkNCisJCQkJCQlsb2NhdGlvbiAgIAkoMTc1NSwgMzA5MSkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkxMTAsMTcgKzk4NzgxLDIxIEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMSkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MjUiIEA0MzQxDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MzM2DQotCQkJCQkgICAgbG9jYXRpb24gICAJKC00NzIsIDYzNykNCisJCQkJCSAgICBsb2NhdGlvbiAgIAkoLTM0NywgMjE2NCkNCiAJCQkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQogCQkJCQkgICAgbGluZV9jb2xvciAJNDE5NDM2OA0KIAkJCQkJICAgIHF1aWR1ICAgICAgCSIzRDYzRDZFQzAzRDgiDQogCQkJCQkgICAgY2xpZW50ICAgICAJQDQzMzYNCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDMzNA0KKwkJCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KKwkJCQkJCSgyMDkzLCAzMDU0KQ0KKwkJCQkJCSgyMTUzLCAzMDU0KQ0KKwkJCQkJCSgyMTUzLCA4NjMpKQ0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5NjgsIDE1MjcpDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE5NjgsIDg2MykpKSkNCisJCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwOTMsIDMwNTQpDQorCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIxNTMsIDg2MykpKSkNCiAJCQkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYyOCIgQDQzNDINCi0JCQkJICAgIGxvY2F0aW9uICAgCSgyMDUwLCA1NzApDQorCQkJCSAgICBsb2NhdGlvbiAgIAkoMTk5OCwgNTcxKQ0KIAkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQlzaXplICAgICAgIAk4DQogCQkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkxMzYsNyArOTg4MTEsNyBAQAogCQkJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCiAJCQkJCShvYmplY3QgUm9sZVZpZXcgInJlcXVlc3QiIEA0MzQzDQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MzQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zOTAsIC0zMjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDIsIC0zMTkpDQogCQkJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJc2l6ZSAgICAgICAJOA0KIAkJCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCkBAIC05OTE0OCw3ICs5ODgyMyw3IEBACiAJCQkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KIAkJCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQzNDQNCiAJCQkJCQlQYXJlbnRfVmlldyAJQDQzNDMNCi0JCQkJCQlsb2NhdGlvbiAgIAkoMTk1NiwgNDI0KQ0KKwkJCQkJCWxvY2F0aW9uICAgCSgxOTA0LCA0MjUpDQogCQkJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQogCQkJCQkJICAgIHNpemUgICAgICAgCTgNCiAJCQkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KQEAgLTk5MTczLDExICs5ODg0OCwxMSBAQAogCQkJCQkgICAgY2xpZW50ICAgICAJQDQzNDINCiAJCQkJCSAgICBzdXBwbGllciAgIAlANDMyNw0KIAkJCQkJICAgIGxpbmVfc3R5bGUgCTMNCi0JCQkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwNTAsIDU3MCkNCi0JCQkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjA1MCwgMzg1KQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk5OCwgNTcxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCAzODYpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDM0NQ0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDM0Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgyMDk4LCA0MzcpDQorCQkJCQkJbG9jYXRpb24gICAJKDIwNDYsIDQzOCkNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkxOTgsNyArOTg4NzMsNyBAQAogCQkJCQkJb3JpZW50YXRpb24gCTEpDQogCQkJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDM0Ng0KIAkJCQkJCVBhcmVudF9WaWV3IAlANDM0Mw0KLQkJCQkJCWxvY2F0aW9uICAgCSgxODcxLCA0NjIpDQorCQkJCQkJbG9jYXRpb24gICAJKDE4MTksIDQ2MykNCiAJCQkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCiAJCQkJCQkgICAgc2l6ZSAgICAgICAJOA0KIAkJCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQpAQCAtOTkyMTksMTUgKzk4ODk0LDE1IEBACiAJCQkJCQlvcmllbnRhdGlvbiAJMCkpDQogCQkJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2MjkiIEA0MzQ3DQogCQkJCQkgICAgUGFyZW50X1ZpZXcgCUA0MzQyDQotCQkJCQkgICAgbG9jYXRpb24gICAJKC0zOTAsIC0zMjApDQorCQkJCQkgICAgbG9jYXRpb24gICAJKC00NDIsIC0zMTkpDQogCQkJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KIAkJCQkJICAgIGxpbmVfY29sb3IgCTQxOTQzNjgNCiAJCQkJCSAgICBxdWlkdSAgICAgIAkiM0Q2M0Q3ODAwMjcxIg0KIAkJCQkJICAgIGNsaWVudCAgICAgCUA0MzQyDQogCQkJCQkgICAgc3VwcGxpZXIgICAJQDQzMzQNCiAJCQkJCSAgICBsaW5lX3N0eWxlIAkzDQotCQkJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDUwLCA1NzApDQotCQkJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDIwNTAsIDc1NikpKSkpKSkpKQ0KKwkJCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk5OCwgNTcxKQ0KKwkJCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTk4LCA3NTcpKSkpKSkpKSkNCiAJICAgIGxvZ2ljYWxfcHJlc2VudGF0aW9ucyAJKGxpc3QgdW5pdF9yZWZlcmVuY2VfbGlzdA0KIAkJKG9iamVjdCBDbGFzc0RpYWdyYW0gIlBhY2thZ2UgRGVwZW5kZW5jaWVzIg0KIAkJICAgIHF1aWQgICAgICAgCSIzRTBDOEM5NzAzN0MiDQpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvbW9kZWwvVU1MMi5lY29yZSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL21vZGVsL1VNTDIuZWNvcmUKaW5kZXggNjA1ZGYxNS4uMDdlNWNiOCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvbW9kZWwvVU1MMi5lY29yZQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9tb2RlbC9VTUwyLmVjb3JlCkBAIC0xMCw2ICsxMCw5IEBACiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVEYXRhVHlwZSIgbmFtZT0iU2VxdWVuY2UiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlzdCIvPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBuYW1lPSJTZXQiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuU2V0Ii8+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkVsZW1lbnQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iLi4vLi4vb3JnLmVjbGlwc2UuZW1mLmVjb3JlXzIuMC4wL3NyYy9tb2RlbC9FY29yZS5lY29yZSMvL0VNb2RlbEVsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iRWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3Mgd2l0aCBubyBzdXBlcmNsYXNzLiBJdCBpcyB1c2VkIGFzIHRoZSBjb21tb24gc3VwZXJjbGFzcyBmb3IgYWxsIG1ldGFjbGFzc2VzIGluIHRoZSBpbmZyYXN0cnVjdHVyZSBsaWJyYXJ5LiBFbGVtZW50IGhhcyBhIGRlcml2ZWQgY29tcG9zaXRpb24gYXNzb2NpYXRpb24gdG8gaXRzZWxmIHRvIHN1cHBvcnQgdGhlIGdlbmVyYWwgY2FwYWJpbGl0eSBmb3IgZWxlbWVudHMgdG8gb3duIG90aGVyIGVsZW1lbnRzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZU5vdE93blNlbGYiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uRWxlbWVudE9wZXJhdGlvbnMudmFsaWRhdGVOb3RPd25TZWxmKHRoaXMsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsiLz4NCkBAIC01OCw2ICs2MSw5IEBACiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNdWx0aXBsaWNpdHlFbGVtZW50IiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIE11bHRpcGxpY2l0eUVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIHdoaWNoIGluY2x1ZGVzIG9wdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIGRlZmluaW5nIHRoZSBib3VuZHMgb2YgYSBtdWx0aXBsaWNpdHkuIEEgTXVsdGlwbGljaXR5RWxlbWVudCBhbHNvIGluY2x1ZGVzIHNwZWNpZmljYXRpb25zIG9mIHdoZXRoZXIgdGhlIHZhbHVlcyBpbiBhbiBpbnN0YW50aWF0aW9uIG9mIHRoaXMgZWxlbWVudCBtdXN0IGJlIHVuaXF1ZSBvciBvcmRlcmVkLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJsb3dlckJvdW5kIiBlVHlwZT0iIy8vSW50ZWdlciI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLk11bHRpcGxpY2l0eUVsZW1lbnRPcGVyYXRpb25zLmxvd2VyQm91bmQodGhpcyk7Ii8+DQpAQCAtMTgzLDEzOSArMTg5LDEwIEBACiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRpcmVjdGVkUmVsYXRpb25zaGlwIiBhYnN0cmFjdD0idHJ1ZSINCi0gICAgICBlU3VwZXJUeXBlcz0iIy8vUmVsYXRpb25zaGlwIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlbGF0ZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWxhdGVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcC9zb3VyY2UgIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAvdGFyZ2V0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzb3VyY2UiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9FbGVtZW50IiBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiDQotICAgICAgICB0cmFuc2llbnQ9InRydWUiIGRlcml2ZWQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIvPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWxhdGlvbnNoaXAjZ2V0UmVsYXRlZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRhcmdldCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0VsZW1lbnQiIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSINCi0gICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIi8+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlJlbGF0aW9uc2hpcCNnZXRSZWxhdGVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlbGF0aW9uc2hpcCIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9FbGVtZW50Ij4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlbGF0ZWRFbGVtZW50IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRWxlbWVudCIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIg0KLSAgICAgICAgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iLz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9wYXF1ZUV4cHJlc3Npb24iIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYm9keSIgZVR5cGU9IiMvL1N0cmluZyINCi0gICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibGFuZ3VhZ2UiIGVUeXBlPSIjLy9TdHJpbmciDQotICAgICAgICBkZWZhdWx0VmFsdWVMaXRlcmFsPSIiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc3VsdCIgZVR5cGU9IiMvL1BhcmFtZXRlciINCi0gICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJiZWhhdmlvciIgZVR5cGU9IiMvL0JlaGF2aW9yIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVmFsdWVTcGVjaWZpY2F0aW9uIiBhYnN0cmFjdD0idHJ1ZSINCi0gICAgICBlU3VwZXJUeXBlcz0iIy8vVHlwZWRFbGVtZW50ICMvL1BhcmFtZXRlcmFibGVFbGVtZW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImlzQ29tcHV0YWJsZSIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmlzQ29tcHV0YWJsZSh0aGlzKTsiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO2ZhbHNlJiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImludGVnZXJWYWx1ZSIgZVR5cGU9IiMvL0ludGVnZXIiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmludGVnZXJWYWx1ZSh0aGlzKTsiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO1NldHt9JiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImJvb2xlYW5WYWx1ZSIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmJvb2xlYW5WYWx1ZSh0aGlzKTsiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO1NldHt9JiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9InN0cmluZ1ZhbHVlIiBlVHlwZT0iIy8vU3RyaW5nIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVmFsdWVTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy5zdHJpbmdWYWx1ZSh0aGlzKTsiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO1NldHt9JiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9InVubGltaXRlZFZhbHVlIiBlVHlwZT0iIy8vVW5saW1pdGVkTmF0dXJhbCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMudW5saW1pdGVkVmFsdWUodGhpcyk7Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246JiN4RDsmI3hBOyZsdDtjb2RlPiYjeEQ7JiN4QTtTZXR7fSYjeEQ7JiN4QTsmbHQ7L2NvZGU+Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc051bGwiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVmFsdWVTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy5pc051bGwodGhpcyk7Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246JiN4RDsmI3hBOyZsdDtjb2RlPiYjeEQ7JiN4QTtmYWxzZSYjeEQ7JiN4QTsmbHQ7L2NvZGU+Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXhwcmVzc2lvbiIgZVN1cGVyVHlwZXM9IiMvL09wYXF1ZUV4cHJlc3Npb24iPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4cHJlc3Npb24vb3BlcmFuZCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3ltYm9sIiBlVHlwZT0iIy8vU3RyaW5nIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvcGVyYW5kIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb21tZW50IiBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVhYmxlRWxlbWVudCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vQ29tbWVudC9ib2R5RXhwcmVzc2lvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYm9keSIgZVR5cGU9IiMvL1N0cmluZyINCi0gICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYW5ub3RhdGVkRWxlbWVudCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0VsZW1lbnQiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJvZHlFeHByZXNzaW9uIiBlVHlwZT0iIy8vU3RyaW5nRXhwcmVzc2lvbiINCi0gICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJOYW1lZEVsZW1lbnQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVhYmxlRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIG5hbWVkIGVsZW1lbnQgcmVwcmVzZW50cyBlbGVtZW50cyB0aGF0IG1heSBoYXZlIGEgbmFtZS4gVGhlIG5hbWUgaXMgdXNlZCBmb3IgaWRlbnRpZmljYXRpb24gb2YgdGhlIG5hbWVkIGVsZW1lbnQgd2l0aGluIHRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggaXQgaXMgZGVmaW5lZC4gQSBuYW1lZCBlbGVtZW50IGFsc28gaGFzIGEgcXVhbGlmaWVkIG5hbWUgdGhhdCBhbGxvd3MgaXQgdG8gYmUgdW5hbWJpZ3VvdXNseSBpZGVudGlmaWVkIHdpdGhpbiBhIGhpZXJhcmNoeSBvZiBuZXN0ZWQgbmFtZXNwYWNlcy4gTmFtZWRFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idmFsaWRhdGVOb05hbWUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uTmFtZWRFbGVtZW50T3BlcmF0aW9ucy52YWxpZGF0ZU5vTmFtZSh0aGlzLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ii8+DQpAQCAtNDI3LDYgKzMwNCw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik5hbWVzcGFjZSIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9OYW1lZEVsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBuYW1lc3BhY2UgaXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgY2FuIG93biBvdGhlciBuYW1lZCBlbGVtZW50cy4gRWFjaCBuYW1lZCBlbGVtZW50IG1heSBiZSBvd25lZCBieSBhdCBtb3N0IG9uZSBuYW1lc3BhY2UuIEEgbmFtZXNwYWNlIHByb3ZpZGVzIGEgbWVhbnMgZm9yIGlkZW50aWZ5aW5nIG5hbWVkIGVsZW1lbnRzIGJ5IG5hbWUuIE5hbWVkIGVsZW1lbnRzIGNhbiBiZSBpZGVudGlmaWVkIGJ5IG5hbWUgaW4gYSBuYW1lc3BhY2UgZWl0aGVyIGJ5IGJlaW5nIGRpcmVjdGx5IG93bmVkIGJ5IHRoZSBuYW1lc3BhY2Ugb3IgYnkgYmVpbmcgaW50cm9kdWNlZCBpbnRvIHRoZSBuYW1lc3BhY2UgYnkgb3RoZXIgbWVhbnMgZS5nLiBpbXBvcnRpbmcgb3IgaW5oZXJpdGluZy4gTmFtZXNwYWNlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQSBuYW1lc3BhY2UgY2FuIG93biBjb25zdHJhaW50cy4gVGhlIGNvbnN0cmFpbnQgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlIG5hbWVzcGFjZSBpdHNlbGYsIGJ1dCBtYXkgYWxzbyBhcHBseSB0byBlbGVtZW50cyBpbiB0aGUgbmFtZXNwYWNlLiBBIG5hbWVzcGFjZSBoYXMgdGhlIGFiaWxpdHkgdG8gaW1wb3J0IGVpdGhlciBpbmRpdmlkaWFsIG1lbWJlcnMgb3IgYWxsIG1lbWJlcnMgb2YgYSBwYWNrYWdlLCB0aGVyZWJ5IG1ha2luZyBpdCBwb3NzaWJsZSB0byByZWZlciB0byB0aG9zZSBuYW1lZCBlbGVtZW50cyB3aXRob3V0IHF1YWxpZmljYXRpb24gaW4gdGhlIGltcG9ydGluZyBuYW1lc3BhY2UuIEluIHRoZSBjYXNlIG9mIGNvbmZsaWN0cywgaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBxdWFsaWZpZWQgbmFtZXMgb3IgYWxpYXNlcyB0byBkaXNhbWJpZ3VhdGUgdGhlIHJlZmVyZW5jZWQgZWxlbWVudHMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9InZhbGlkYXRlTWVtYmVyc0FyZURpc3Rpbmd1aXNoYWJsZSIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5OYW1lc3BhY2VPcGVyYXRpb25zLnZhbGlkYXRlTWVtYmVyc0FyZURpc3Rpbmd1aXNoYWJsZSh0aGlzLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ii8+DQpAQCAtNTQxLDcgKzQyMSwxNjAgQEAKICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGlyZWN0ZWRSZWxhdGlvbnNoaXAiIGFic3RyYWN0PSJ0cnVlIg0KKyAgICAgIGVTdXBlclR5cGVzPSIjLy9SZWxhdGlvbnNoaXAiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgcmVmZXJlbmNlcyBvbmUgb3IgbW9yZSBzb3VyY2UgZWxlbWVudHMgYW5kIG9uZSBvciBtb3JlIHRhcmdldCBlbGVtZW50cy4gRGlyZWN0ZWQgcmVsYXRpb25zaGlwIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVsYXRlZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJlbGF0ZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0RpcmVjdGVkUmVsYXRpb25zaGlwL3NvdXJjZSAjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcC90YXJnZXQiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNvdXJjZSIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0VsZW1lbnQiIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSINCisgICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlJlbGF0aW9uc2hpcCNnZXRSZWxhdGVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGFyZ2V0IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRWxlbWVudCIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIg0KKyAgICAgICAgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVsYXRpb25zaGlwI2dldFJlbGF0ZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVsYXRpb25zaGlwIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL0VsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlcyBvbmUgb3IgbW9yZSByZWxhdGVkIGVsZW1lbnRzLiBSZWxhdGlvbnNoaXAgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWxhdGVkRWxlbWVudCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0VsZW1lbnQiIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSINCisgICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIi8+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPcGFxdWVFeHByZXNzaW9uIiBlU3VwZXJUeXBlcz0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkFuIGV4cHJlc3Npb24gY29udGFpbnMgYSBsYW5ndWFnZS1zcGVjaWZpYyB0ZXh0IHN0cmluZyB1c2VkIHRvIGRlc2NyaWJlIGEgdmFsdWUgb3IgdmFsdWVzLCBhbmQgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbGFuZ3VhZ2UuIE9uZSBwcmVkZWZpbmVkIGxhbmd1YWdlIGZvciBzcGVjaWZ5aW5nIGV4cHJlc3Npb25zIGlzIE9DTC4gTmF0dXJhbCBsYW5ndWFnZSBvciBwcm9ncmFtbWluZyBsYW5ndWFnZXMgbWF5IGFsc28gYmUgdXNlZC4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYm9keSIgZVR5cGU9IiMvL1N0cmluZyINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibGFuZ3VhZ2UiIGVUeXBlPSIjLy9TdHJpbmciDQorICAgICAgICBkZWZhdWx0VmFsdWVMaXRlcmFsPSIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc3VsdCIgZVR5cGU9IiMvL1BhcmFtZXRlciINCisgICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJiZWhhdmlvciIgZVR5cGU9IiMvL0JlaGF2aW9yIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVmFsdWVTcGVjaWZpY2F0aW9uIiBhYnN0cmFjdD0idHJ1ZSINCisgICAgICBlU3VwZXJUeXBlcz0iIy8vVHlwZWRFbGVtZW50ICMvL1BhcmFtZXRlcmFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IlZhbHVlU3BlY2lmaWNhdGlvbiBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgdXNlZCB0byBpZGVudGlmeSBhIHZhbHVlIG9yIHZhbHVlcyBpbiBhIG1vZGVsLiBJdCBtYXkgcmVmZXJlbmNlIGFuIGluc3RhbmNlIG9yIGl0IG1heSBiZSBhbiBleHByZXNzaW9uIGRlbm90aW5nIGFuIGluc3RhbmNlIG9yIGluc3RhbmNlcyB3aGVuIGV2YWx1YXRlZC4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNDb21wdXRhYmxlIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuaXNDb21wdXRhYmxlKHRoaXMpOyIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7ZmFsc2UmI3hEOyYjeEE7Jmx0Oy9jb2RlPiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaW50ZWdlclZhbHVlIiBlVHlwZT0iIy8vSW50ZWdlciI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuaW50ZWdlclZhbHVlKHRoaXMpOyIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7U2V0e30mI3hEOyYjeEE7Jmx0Oy9jb2RlPiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iYm9vbGVhblZhbHVlIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuYm9vbGVhblZhbHVlKHRoaXMpOyIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7U2V0e30mI3hEOyYjeEE7Jmx0Oy9jb2RlPiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3RyaW5nVmFsdWUiIGVUeXBlPSIjLy9TdHJpbmciPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLnN0cmluZ1ZhbHVlKHRoaXMpOyIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7U2V0e30mI3hEOyYjeEE7Jmx0Oy9jb2RlPiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idW5saW1pdGVkVmFsdWUiIGVUeXBlPSIjLy9VbmxpbWl0ZWROYXR1cmFsIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVmFsdWVTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy51bmxpbWl0ZWRWYWx1ZSh0aGlzKTsiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO1NldHt9JiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImlzTnVsbCIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmlzTnVsbCh0aGlzKTsiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO2ZhbHNlJiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFeHByZXNzaW9uIiBlU3VwZXJUeXBlcz0iIy8vT3BhcXVlRXhwcmVzc2lvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBleHByZXNzaW9uIHJlcHJlc2VudHMgYSBub2RlIGluIGFuIGV4cHJlc3Npb24gdHJlZSwgd2hpY2ggbWF5IGJlIG5vbi10ZXJtaW5hbCBvciB0ZXJtaW5hbC4gSXQgZGVmaW5lcyBhIHN5bWJvbCwgYW5kIGhhcyBhIHBvc3NpYmx5IGVtcHR5IHNlcXVlbmNlIG9mIG9wZXJhbmRzIHdoaWNoIGFyZSB2YWx1ZSBzcGVjaWZpY2F0aW9ucy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4cHJlc3Npb24vb3BlcmFuZCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3ltYm9sIiBlVHlwZT0iIy8vU3RyaW5nIg0KKyAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvcGVyYW5kIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb21tZW50IiBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVhYmxlRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGNvbW1lbnQgZ2l2ZXMgdGhlIGFiaWxpdHkgdG8gYXR0YWNoIHZhcmlvdXMgcmVtYXJrcyB0byBlbGVtZW50cy4gQSBjb21tZW50IGNhcnJpZXMgbm8gc2VtYW50aWMgZm9yY2UsIGJ1dCBtYXkgY29udGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlzIHVzZWZ1bCB0byBhIG1vZGVsZXIuIEEgY29tbWVudCBjYW4gYmUgb3duZWQgYnkgYW55IGVsZW1lbnQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Db21tZW50L2JvZHlFeHByZXNzaW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJib2R5IiBlVHlwZT0iIy8vU3RyaW5nIg0KKyAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJhbm5vdGF0ZWRFbGVtZW50IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRWxlbWVudCIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYm9keUV4cHJlc3Npb24iIGVUeXBlPSIjLy9TdHJpbmdFeHByZXNzaW9uIg0KKyAgICAgICAgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNsYXNzIiBlU3VwZXJUeXBlcz0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIgIy8vRW5jYXBzdWxhdGVkQ2xhc3NpZmllciI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJDbGFzcyBpcyBhIGtpbmQgb2YgY2xhc3NpZmllciB3aG9zZSBmZWF0dXJlcyBhcmUgYXR0cmlidXRlcyBhbmQgb3BlcmF0aW9ucy4gQXR0cmlidXRlcyBvZiBhIGNsYXNzIGFyZSByZXByZXNlbnRlZCBieSBpbnN0YW5jZXMgb2YgUHJvcGVydHkgdGhhdCBhcmUgb3duZWQgYnkgdGhlIGNsYXNzLiBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgbWF5IHJlcHJlc2VudCB0aGUgbmF2aWdhYmxlIGVuZHMgb2YgYmluYXJ5IGFzc29jaWF0aW9ucy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaW5oZXJpdCIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vU2V0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uQ2xhc3NPcGVyYXRpb25zLmluaGVyaXQodGhpcywgaW5ocyk7Ii8+DQpAQCAtNjY4LDYgKzcwMSw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlR5cGUiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vUGFja2FnZWFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgdHlwZSBzZXJ2ZXMgYXMgYSBjb25zdHJhaW50IG9uIHRoZSByYW5nZSBvZiB2YWx1ZXMgcmVwcmVzZW50ZWQgYnkgYSB0eXBlZCBlbGVtZW50LiBUeXBlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iY29uZm9ybXNUbyIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5UeXBlT3BlcmF0aW9ucy5jb25mb3Jtc1RvKHRoaXMsIG90aGVyKTsiLz4NCkBAIC02OTYsNiArNzMyLDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvcGVydHkiIGVTdXBlclR5cGVzPSIjLy9TdHJ1Y3R1cmFsRmVhdHVyZSAjLy9Db25uZWN0YWJsZUVsZW1lbnQgIy8vRGVwbG95bWVudFRhcmdldCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJQcm9wZXJ0eSByZXByZXNlbnRzIGEgZGVjbGFyZWQgc3RhdGUgb2Ygb25lIG9yIG1vcmUgaW5zdGFuY2VzIGluIHRlcm1zIG9mIGEgbmFtZWQgcmVsYXRpb25zaGlwIHRvIGEgdmFsdWUgb3IgdmFsdWVzLiBXaGVuIGEgcHJvcGVydHkgaXMgYW4gYXR0cmlidXRlIG9mIGEgY2xhc3NpZmllciwgdGhlIHZhbHVlIG9yIHZhbHVlcyBhcmUgcmVsYXRlZCB0byB0aGUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzaWZpZXIgYnkgYmVpbmcgaGVsZCBpbiBzbG90cyBvZiB0aGUgaW5zdGFuY2UuIFdoZW4gYSBwcm9wZXJ0eSBpcyBhbiBhc3NvY2lhdGlvbiBlbmQsIHRoZSB2YWx1ZSBvciB2YWx1ZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIGluc3RhbmNlIG9yIGluc3RhbmNlcyBhdCB0aGUgb3RoZXIgZW5kKHMpIG9mIHRoZSBhc3NvY2lhdGlvbiAoc2VlIHNlbWFudGljcyBvZiBBc3NvY2lhdGlvbikuIFByb3BlcnR5IGlzIGluZGlyZWN0bHkgYSBzdWJjbGFzcyBvZiBDb25zdHJ1Y3RzOjpUeXBlZEVsZW1lbnQuIFRoZSByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgcmVwcmVzZW50ZWQgYnkgdGhlIHByb3BlcnR5IGNhbiBiZSBjb250cm9sbGVkIGJ5IHNldHRpbmcgdGhlIHByb3BlcnR54oCZcyB0eXBlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZU9wcG9zaXRlSXNPdGhlckVuZCIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5Qcm9wZXJ0eU9wZXJhdGlvbnMudmFsaWRhdGVPcHBvc2l0ZUlzT3RoZXJFbmQodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KQEAgLTkzNiw2ICs5NzUsOSBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPcGVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9CZWhhdmlvcmFsRmVhdHVyZSAjLy9UeXBlZEVsZW1lbnQgIy8vTXVsdGlwbGljaXR5RWxlbWVudCAjLy9QYXJhbWV0ZXJhYmxlRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBvcGVyYXRpb24gaXMgYSBiZWhhdmlvcmFsIGZlYXR1cmUgb2YgYSBjbGFzc2lmaWVyIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lLCB0eXBlLCBwYXJhbWV0ZXJzLCBhbmQgY29uc3RyYWludHMgZm9yIGludm9raW5nIGFuIGFzc29jaWF0ZWQgYmVoYXZpb3IuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9InZhbGlkYXRlVHlwZU9mUmVzdWx0IiBlVHlwZT0iIy8vQm9vbGVhbiI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLk9wZXJhdGlvbk9wZXJhdGlvbnMudmFsaWRhdGVUeXBlT2ZSZXN1bHQodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KQEAgLTEyMDAsOSArMTI0MiwxNSBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUeXBlZEVsZW1lbnQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgdHlwZWQgZWxlbWVudCBpcyBhbiBlbGVtZW50IHRoYXQgaGFzIGEgdHlwZSB0aGF0IHNlcnZlcyBhcyBhIGNvbnN0cmFpbnQgb24gdGhlIHJhbmdlIG9mIHZhbHVlcyB0aGUgZWxlbWVudCBjYW4gcmVwcmVzZW50LiBUeXBlZCBlbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHlwZSIgZVR5cGU9IiMvL1R5cGUiIHZvbGF0aWxlPSJ0cnVlIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUGFyYW1ldGVyIiBlU3VwZXJUeXBlcz0iIy8vQ29ubmVjdGFibGVFbGVtZW50ICMvL1R5cGVkRWxlbWVudCAjLy9NdWx0aXBsaWNpdHlFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcGFyYW1ldGVyIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiBhbiBhcmd1bWVudCB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gaW50byBvciBvdXQgb2YgYW4gaW52b2NhdGlvbiBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZS4gSXQgaGFzIGEgdHlwZSwgYW5kIG1heSBoYXZlIGEgbXVsdGlwbGljaXR5IGFuZCBhbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXROYW1lc3BhY2UiIGVUeXBlPSIjLy9OYW1lc3BhY2UiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCkBAIC0xMjU1LDYgKzEzMDMsOSBAQAogICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BhcmFtZXRlclNldCIgZU9wcG9zaXRlPSIjLy9QYXJhbWV0ZXJTZXQvcGFyYW1ldGVyIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUGFja2FnZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVzcGFjZSAjLy9QYWNrYWdlYWJsZUVsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBwYWNrYWdlIGlzIGEgbmFtZXNwYWNlIGZvciBpdHMgbWVtYmVycywgYW5kIG1heSBjb250YWluIG90aGVyIHBhY2thZ2VzLiBPbmx5IHBhY2thZ2VhYmxlIGVsZW1lbnRzIGNhbiBiZSBvd25lZCBtZW1iZXJzIG9mIGEgcGFja2FnZS4gQnkgdmlydHVlIG9mIGJlaW5nIGEgbmFtZXNwYWNlLCBhIHBhY2thZ2UgY2FuIGltcG9ydCBlaXRoZXIgaW5kaXZpZHVhbCBtZW1iZXJzIG9mIG90aGVyIHBhY2thZ2VzLCBvciBhbGwgdGhlIG1lbWJlcnMgb2Ygb3RoZXIgcGFja2FnZXMuIEluIGFkZGl0aW9uIGEgcGFja2FnZSBjYW4gYmUgbWVyZ2VkIHdpdGggb3RoZXIgcGFja2FnZXMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9InZhbGlkYXRlRWxlbWVudHNQdWJsaWNPclByaXZhdGUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uUGFja2FnZU9wZXJhdGlvbnMudmFsaWRhdGVFbGVtZW50c1B1YmxpY09yUHJpdmF0ZSh0aGlzLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ii8+DQpAQCAtMTM2OCw2ICsxNDE5LDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW51bWVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9EYXRhVHlwZSI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJFbnVtZXJhdGlvbiBpcyBhIGtpbmQgb2YgZGF0YSB0eXBlLCB3aG9zZSBpbnN0YW5jZXMgbWF5IGJlIGFueSBvZiBhIG51bWJlciBvZiB1c2VyLWRlZmluZWQgZW51bWVyYXRpb24gbGl0ZXJhbHMuIEl0IGlzIHBvc3NpYmxlIHRvIGV4dGVuZCB0aGUgc2V0IG9mIGFwcGxpY2FibGUgZW51bWVyYXRpb24gbGl0ZXJhbHMgaW4gb3RoZXIgcGFja2FnZXMgb3IgcHJvZmlsZXMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkTWVtYmVycyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCkBAIC0xMzg5LDYgKzE0NDMsOSBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEYXRhVHlwZSIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iRGF0YVR5cGUgZGVmaW5lcyBhIGtpbmQgb2YgY2xhc3NpZmllciBpbiB3aGljaCBvcGVyYXRpb25zIGFyZSBhbGwgcHVyZSBmdW5jdGlvbnMgKGkuZS4sIHRoZXkgY2FuIHJldHVybiBkYXRhIHZhbHVlcyBidXQgdGhleSBjYW5ub3QgY2hhbmdlIGRhdGEgdmFsdWVzLCBiZWNhdXNlIHRoZXkgaGF2ZSBubyBpZGVudGl0eSkuIEZvciBleGFtcGxlLCBhbiDigJxhZGTigJ0gb3BlcmF0aW9uIG9uIGEgbnVtYmVyIHdpdGggYW5vdGhlciBudW1iZXIgYXMgYW4gYXJndW1lbnQgeWllbGRzIGEgdGhpcmQgbnVtYmVyIGFzIGEgcmVzdWx0OyB0aGUgdGFyZ2V0IGFuZCBhcmd1bWVudCBhcmUgdW5jaGFuZ2VkLiBBIERhdGFUeXBlIG1heSBhbHNvIGNvbnRhaW4gYXR0cmlidXRlcyB0byBzdXBwb3J0IHRoZSBtb2RlbGluZyBvZiBzdHJ1Y3R1cmVkIGRhdGEgdHlwZXMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImluaGVyaXQiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1NldCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkRhdGFUeXBlT3BlcmF0aW9ucy5pbmhlcml0KHRoaXMsIGluaHMpOyIvPg0KQEAgLTE0NDcsNiArMTUwNCw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkVudW1lcmF0aW9uTGl0ZXJhbCIgZVN1cGVyVHlwZXM9IiMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBlbnVtZXJhdGlvbiBsaXRlcmFsIGlzIGEgdXNlci1kZWZpbmVkIGRhdGEgdmFsdWUgZm9yIGFuIGVudW1lcmF0aW9uLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXROYW1lc3BhY2UiIGVUeXBlPSIjLy9OYW1lc3BhY2UiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCkBAIC0xNDY3LDggKzE1MjcsMTUgQEAKICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJpbWl0aXZlVHlwZSIgZVN1cGVyVHlwZXM9IiMvL0RhdGFUeXBlIi8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlByaW1pdGl2ZVR5cGUiIGVTdXBlclR5cGVzPSIjLy9EYXRhVHlwZSI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJUaGUgaW5zdGFuY2VzIG9mIHByaW1pdGl2ZSB0eXBlIHVzZWQgaW4gVU1MIGl0c2VsZiBpbmNsdWRlIEJvb2xlYW4sIEludGVnZXIsIFVubGltaXRlZE5hdHVyYWwsIGFuZCBTdHJpbmcuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJMaXRlcmFsQm9vbGVhbiIgZVN1cGVyVHlwZXM9IiMvL0xpdGVyYWxTcGVjaWZpY2F0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgbGl0ZXJhbCBib29sZWFuIGNvbnRhaW5zIGEgQm9vbGVhbi12YWx1ZWQgYXR0cmlidXRlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc0NvbXB1dGFibGUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uTGl0ZXJhbEJvb2xlYW5PcGVyYXRpb25zLmlzQ29tcHV0YWJsZSh0aGlzKTsiLz4NCkBAIC0xNDg0LDggKzE1NTEsMTUgQEAKICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmFsdWUiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTGl0ZXJhbFNwZWNpZmljYXRpb24iIGFic3RyYWN0PSJ0cnVlIg0KLSAgICAgIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iLz4NCisgICAgICBlU3VwZXJUeXBlcz0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgbGl0ZXJhbCBzcGVjaWZpY2F0aW9uIGlzIGFuIGFic3RyYWN0IHNwZWNpYWxpemF0aW9uIG9mIFZhbHVlU3BlY2lmaWNhdGlvbiB0aGF0IGlkZW50aWZpZXMgYSBsaXRlcmFsIGNvbnN0YW50IGJlaW5nIG1vZGVsZWQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJMaXRlcmFsU3RyaW5nIiBlU3VwZXJUeXBlcz0iIy8vTGl0ZXJhbFNwZWNpZmljYXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBsaXRlcmFsIHN0cmluZyBjb250YWlucyBhIFN0cmluZy12YWx1ZWQgYXR0cmlidXRlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc0NvbXB1dGFibGUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uTGl0ZXJhbFN0cmluZ09wZXJhdGlvbnMuaXNDb21wdXRhYmxlKHRoaXMpOyIvPg0KQEAgLTE1MDIsNiArMTU3Niw5IEBACiAgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkxpdGVyYWxOdWxsIiBlU3VwZXJUeXBlcz0iIy8vTGl0ZXJhbFNwZWNpZmljYXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBsaXRlcmFsIG51bGwgaXMgdXNlZCB0byByZXByZXNlbnQgbnVsbCwgaS5lLiwgdGhlIGFic2VuY2Ugb2YgYSB2YWx1ZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNDb21wdXRhYmxlIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkxpdGVyYWxOdWxsT3BlcmF0aW9ucy5pc0NvbXB1dGFibGUodGhpcyk7Ii8+DQpAQCAtMTUxNiw2ICsxNTkzLDkgQEAKICAgICA8L2VPcGVyYXRpb25zPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkxpdGVyYWxJbnRlZ2VyIiBlU3VwZXJUeXBlcz0iIy8vTGl0ZXJhbFNwZWNpZmljYXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBsaXRlcmFsIGludGVnZXIgY29udGFpbnMgYW4gSW50ZWdlci12YWx1ZWQgYXR0cmlidXRlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc0NvbXB1dGFibGUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uTGl0ZXJhbEludGVnZXJPcGVyYXRpb25zLmlzQ29tcHV0YWJsZSh0aGlzKTsiLz4NCkBAIC0xNTMxLDYgKzE2MTEsOSBAQAogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2YWx1ZSIgZVR5cGU9IiMvL0ludGVnZXIiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJMaXRlcmFsVW5saW1pdGVkTmF0dXJhbCIgZVN1cGVyVHlwZXM9IiMvL0xpdGVyYWxTcGVjaWZpY2F0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgbGl0ZXJhbCB1bmxpbWl0ZWQgbmF0dXJhbCBjb250YWlucyBhIFVubGltaXRlZE5hdHVyYWwtdmFsdWVkIGF0dHJpYnV0ZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNDb21wdXRhYmxlIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkxpdGVyYWxVbmxpbWl0ZWROYXR1cmFsT3BlcmF0aW9ucy5pc0NvbXB1dGFibGUodGhpcyk7Ii8+DQpAQCAtMTU0NSw3ICsxNjI4LDE5IEBACiAgICAgPC9lT3BlcmF0aW9ucz4NCiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InZhbHVlIiBlVHlwZT0iIy8vVW5saW1pdGVkTmF0dXJhbCIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iVmlzaWJpbGl0eUtpbmQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iVmlzaWJpbGl0eUtpbmQgaXMgYW4gZW51bWVyYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsIHZhbHVlczog4oCiIHB1YmxpYyDigKIgcHJpdmF0ZSDigKIgcHJvdGVjdGVkIOKAoiBwYWNrYWdlICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJwdWJsaWMiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJwcml2YXRlIiB2YWx1ZT0iMSIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9InByb3RlY3RlZCIgdmFsdWU9IjIiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJwYWNrYWdlIiB2YWx1ZT0iMyIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNsYXNzaWZpZXIiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZXNwYWNlICMvL1R5cGUgIy8vUmVkZWZpbmFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgY2xhc3NpZmllciBpcyBhIG5hbWVzcGFjZSB3aG9zZSBtZW1iZXJzIGNhbiBpbmNsdWRlIGZlYXR1cmVzLiBDbGFzc2lmaWVyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQSBjbGFzc2lmaWVyIGlzIGEgdHlwZSBhbmQgY2FuIG93biBnZW5lcmFsaXphdGlvbnMsIHRoZXJlYnkgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGRlZmluZSBnZW5lcmFsaXphdGlvbiByZWxhdGlvbnNoaXBzIHRvIG90aGVyIGNsYXNzaWZpZXJzLiBBIGNsYXNzaWZpZXIgY2FuIHNwZWNpZnkgYSBnZW5lcmFsaXphdGlvbiBoaWVyYXJjaHkgYnkgcmVmZXJlbmNpbmcgaXRzIGdlbmVyYWwgY2xhc3NpZmllcnMuIEEgY2xhc3NpZmllciBpcyBhIHJlZGVmaW5hYmxlIGVsZW1lbnQsIG1lYW5pbmcgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byByZWRlZmluZSBuZXN0ZWQgY2xhc3NpZmllcnMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImFsbEZlYXR1cmVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9TZXQiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InRyeSB7JiN4RDsmI3hBOyYjeDk7amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIG1ldGhvZCA9IGdldENsYXNzKCkuZ2V0TWV0aG9kKCZxdW90O2FsbEZlYXR1cmVzJnF1b3Q7LCBudWxsKTsgLy8kTk9OLU5MUy0xJCYjeEQ7JiN4QTsmI3g5O1NldCByZXN1bHQgPSAoU2V0KSBnZXRDYWNoZUFkYXB0ZXIoKS5nZXQodGhpcywgbWV0aG9kKTsmI3hEOyYjeEE7JiN4RDsmI3hBOyYjeDk7aWYgKG51bGwgPT0gcmVzdWx0KSB7JiN4RDsmI3hBOyYjeDk7JiN4OTtyZXN1bHQgPSBqYXZhLnV0aWwuQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkNsYXNzaWZpZXJPcGVyYXRpb25zLmFsbEZlYXR1cmVzKHRoaXMpKTsmI3hEOyYjeEE7JiN4OTsmI3g5O2dldENhY2hlQWRhcHRlcigpLnB1dCh0aGlzLCBtZXRob2QsIHJlc3VsdCk7JiN4RDsmI3hBOyYjeDk7fSYjeEQ7JiN4QTsmI3hEOyYjeEE7JiN4OTtyZXR1cm4gcmVzdWx0OyYjeEQ7JiN4QTt9IGNhdGNoIChFeGNlcHRpb24gZSkgeyYjeEQ7JiN4QTsmI3g5O3JldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5DbGFzc2lmaWVyT3BlcmF0aW9ucy5hbGxGZWF0dXJlcyh0aGlzKTsmI3hEOyYjeEE7fSIvPg0KQEAgLTE3NzcsNiArMTg3Miw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZlYXR1cmUiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vUmVkZWZpbmFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgZmVhdHVyZSBkZWNsYXJlcyBhIGJlaGF2aW9yYWwgb3Igc3RydWN0dXJhbCBjaGFyYWN0ZXJpc3RpYyBvZiBpbnN0YW5jZXMgb2YgY2xhc3NpZmllcnMuIEZlYXR1cmUgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJmZWF0dXJpbmdDbGFzc2lmaWVyIiBvcmRlcmVkPSJmYWxzZSINCiAgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhc3NpZmllciIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiDQogICAgICAgICBkZXJpdmVkPSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0NsYXNzaWZpZXIvZmVhdHVyZSI+DQpAQCAtMTc4Niw2ICsxODg0LDkgQEAKICAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb25zdHJhaW50IiBlU3VwZXJUeXBlcz0iIy8vUGFja2FnZWFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkNvbnN0cmFpbnQgY29udGFpbnMgYSBWYWx1ZVNwZWNpZmljYXRpb24gdGhhdCBzcGVjaWZpZXMgYWRkaXRpb25hbCBzZW1hbnRpY3MgZm9yIG9uZSBvciBtb3JlIGVsZW1lbnRzLiBDZXJ0YWluIGtpbmRzIG9mIGNvbnN0cmFpbnRzIChzdWNoIGFzIGFuIGFzc29jaWF0aW9uIOKAnHhvcuKAnSBjb25zdHJhaW50KSBhcmUgcHJlZGVmaW5lZCBpbiBVTUwsIG90aGVycyBtYXkgYmUgdXNlci1kZWZpbmVkLiBBIHVzZXItZGVmaW5lZCBDb25zdHJhaW50IGlzIGRlc2NyaWJlZCB1c2luZyBhIHNwZWNpZmllZCBsYW5ndWFnZSwgd2hvc2Ugc3ludGF4IGFuZCBpbnRlcnByZXRhdGlvbiBpcyBhIHRvb2wgcmVzcG9uc2liaWxpdHkuIE9uZSBwcmVkZWZpbmVkIGxhbmd1YWdlIGZvciB3cml0aW5nIGNvbnN0cmFpbnRzIGlzIE9DTC4gSW4gc29tZSBzaXR1YXRpb25zLCBhIHByb2dyYW1taW5nIGxhbmd1YWdlIHN1Y2ggYXMgSmF2YSBtYXkgYmUgYXBwcm9wcmlhdGUgZm9yIGV4cHJlc3NpbmcgYSBjb25zdHJhaW50LiBJbiBvdGhlciBzaXR1YXRpb25zIG5hdHVyYWwgbGFuZ3VhZ2UgbWF5IGJlIHVzZWQuIENvbnN0cmFpbnQgaXMgYSBjb25kaXRpb24gKGEgQm9vbGVhbiBleHByZXNzaW9uKSB0aGF0IHJlc3RyaWN0cyB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBhc3NvY2lhdGVkIGVsZW1lbnQgYmV5b25kIHdoYXQgaXMgaW1wb3NlZCBieSB0aGUgb3RoZXIgbGFuZ3VhZ2UgY29uc3RydWN0cyBhcHBsaWVkIHRvIHRoYXQgZWxlbWVudC4gQ29uc3RyYWludCBjb250YWlucyBhbiBvcHRpb25hbCBuYW1lLCBhbHRob3VnaCB0aGV5IGFyZSBjb21tb25seSB1bm5hbWVkLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZU5vdEFwcGx5VG9TZWxmIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkNvbnN0cmFpbnRPcGVyYXRpb25zLnZhbGlkYXRlTm90QXBwbHlUb1NlbGYodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KQEAgLTE4MzAsMTMgKzE5MzEsMTAgQEAKICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29uc3RyYWluZWRFbGVtZW50IiB1cHBlckJvdW5kPSItMSINCiAgICAgICAgIGVUeXBlPSIjLy9FbGVtZW50Ii8+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJWaXNpYmlsaXR5S2luZCI+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0icHVibGljIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0icHJpdmF0ZSIgdmFsdWU9IjEiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJwcm90ZWN0ZWQiIHZhbHVlPSIyIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0icGFja2FnZSIgdmFsdWU9IjMiLz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZWhhdmlvcmFsRmVhdHVyZSIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9OYW1lc3BhY2UgIy8vRmVhdHVyZSI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGJlaGF2aW9yYWwgZmVhdHVyZSBzcGVjaWZpZXMgdGhhdCBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzaWZpZXIgd2lsbCByZXNwb25kIHRvIGEgZGVzaWduYXRlZCByZXF1ZXN0IGJ5IGludm9raW5nIGEgYmVoYXZpb3IuIEJlaGF2aW9yYWxGZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyBzcGVjaWFsaXppbmcgRmVhdHVyZSBhbmQgTmFtZXNwYWNlLiBLaW5kcyBvZiBiZWhhdmlvcmFsIGFzcGVjdHMgYXJlIG1vZGVsZWQgYnkgc3ViY2xhc3NlcyBvZiBCZWhhdmlvcmFsRmVhdHVyZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNEaXN0aW5ndWlzaGFibGVGcm9tIiBlVHlwZT0iIy8vQm9vbGVhbiI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0icmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkJlaGF2aW9yYWxGZWF0dXJlT3BlcmF0aW9ucy5pc0Rpc3Rpbmd1aXNoYWJsZUZyb20odGhpcywgbiwgbnMpOyIvPg0KQEAgLTE4OTYsMTEgKzE5OTQsMTcgQEAKICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY29uY3VycmVuY3kiIGVUeXBlPSIjLy9DYWxsQ29uY3VycmVuY3lLaW5kIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU3RydWN0dXJhbEZlYXR1cmUiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vRmVhdHVyZSAjLy9UeXBlZEVsZW1lbnQgIy8vTXVsdGlwbGljaXR5RWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHN0cnVjdHVyYWwgZmVhdHVyZSBpcyBhIHR5cGVkIGZlYXR1cmUgb2YgYSBjbGFzc2lmaWVyIHRoYXQgc3BlY2lmeSB0aGUgc3RydWN0dXJlIG9mIGluc3RhbmNlcyBvZiB0aGUgY2xhc3NpZmllci4gU3RydWN0dXJhbCBmZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQnkgc3BlY2lhbGl6aW5nIG11bHRpcGxpY2l0eSBlbGVtZW50LCBpdCBzdXBwb3J0cyBhIG11bHRpcGxpY2l0eSB0aGF0IHNwZWNpZmllcyB2YWxpZCBjYXJkaW5hbGl0aWVzIGZvciB0aGUgc2V0IG9mIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggYW4gaW5zdGFudGlhdGlvbiBvZiB0aGUgc3RydWN0dXJhbCBmZWF0dXJlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1JlYWRPbmx5IiBlVHlwZT0iIy8vQm9vbGVhbiINCiAgICAgICAgIHZvbGF0aWxlPSJ0cnVlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlZGVmaW5hYmxlRWxlbWVudCIgYWJzdHJhY3Q9InRydWUiDQogICAgICAgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHJlZGVmaW5hYmxlIGVsZW1lbnQgaXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgY2FuIGJlIHJlZGVmaW5lZCBpbiB0aGUgY29udGV4dCBvZiBhIGdlbmVyYWxpemF0aW9uLiBSZWRlZmluYWJsZUVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZVJlZGVmaW5pdGlvbkNvbnRleHRWYWxpZCIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5SZWRlZmluYWJsZUVsZW1lbnRPcGVyYXRpb25zLnZhbGlkYXRlUmVkZWZpbml0aW9uQ29udGV4dFZhbGlkKHRoaXMsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsiLz4NCkBAIC0xOTUwLDcgKzIwNTQsMTEyIEBACiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzTGVhZiIgZVR5cGU9IiMvL0Jvb2xlYW4iDQogICAgICAgICBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikluc3RhbmNlU3BlY2lmaWNhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCAjLy9EZXBsb3ltZW50VGFyZ2V0ICMvL0RlcGxveWVkQXJ0aWZhY3QiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iSW4gdGhlIG1ldGFtb2RlbCwgSW5zdGFuY2VTcGVjaWZpY2F0aW9uIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgRGVwbG95bWVudFRhcmdldCBhbmQgRGVwbG95ZWRBcnRpZmFjdC4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idmFsaWRhdGVTbG90c0FyZURlZmluZWQiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uSW5zdGFuY2VTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy52YWxpZGF0ZVNsb3RzQXJlRGVmaW5lZCh0aGlzLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBpbnZhcmlhbnQgY29uc3RyYWludCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7c2xvdC0+Zm9yQWxsKHMgfCYjeEQ7JiN4QTsgIGNsYXNzaWZpZXItPmV4aXN0cyhjIHwgYy5hbGxGZWF0dXJlcygpLT5pbmNsdWRlcyhzLmRlZmluaW5nRmVhdHVyZSkpJiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iY29uc3RyYWludCIvPg0KKyAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJkaWFnbm9zdGljcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURpYWdub3N0aWNDaGFpbiIvPg0KKyAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJjb250ZXh0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTWFwIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZU5vRHVwbGljYXRlU2xvdHMiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uSW5zdGFuY2VTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy52YWxpZGF0ZU5vRHVwbGljYXRlU2xvdHModGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQW4gaW52YXJpYW50IGNvbnN0cmFpbnQgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO2NsYXNzaWZpZXItPmZvckFsbChjIHwmI3hEOyYjeEE7JiN4OTsoYy5hbGxGZWF0dXJlcygpLT5mb3JBbGwoZiB8IHNsb3QtPnNlbGVjdChzIHwgcy5kZWZpbmluZ0ZlYXR1cmUgPSBmKS0+c2l6ZSgpICZsdDs9IDEpJiN4RDsmI3hBOyYjeDk7KSYjeEQ7JiN4QTsmbHQ7L2NvZGU+Ii8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImNvbnN0cmFpbnQiLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZGlhZ25vc3RpY3MiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEaWFnbm9zdGljQ2hhaW4iLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iY29udGV4dCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU1hcCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbi9zbG90ICMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbi9zcGVjaWZpY2F0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzbG90IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vU2xvdCIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU2xvdC9vd25pbmdJbnN0YW5jZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjbGFzc2lmaWVyIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhc3NpZmllciIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3BlY2lmaWNhdGlvbiIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiINCisgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTbG90IiBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHNsb3QgaXMgb3duZWQgYnkgYW4gaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbi4gSXQgc3BlY2lmaWVzIHRoZSB2YWx1ZSBvciB2YWx1ZXMgZm9yIGl0cyBkZWZpbmluZyBmZWF0dXJlLCB3aGljaCBtdXN0IGJlIGEgc3RydWN0dXJhbCBmZWF0dXJlIG9mIGEgY2xhc3NpZmllciBvZiB0aGUgaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbiBvd25pbmcgdGhlIHNsb3QuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1Nsb3Qvb3duaW5nSW5zdGFuY2UiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TbG90L3ZhbHVlIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvd25pbmdJbnN0YW5jZSIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9JbnN0YW5jZVNwZWNpZmljYXRpb24iIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9JbnN0YW5jZVNwZWNpZmljYXRpb24vc2xvdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idmFsdWUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVmaW5pbmdGZWF0dXJlIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1N0cnVjdHVyYWxGZWF0dXJlIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW5zdGFuY2VWYWx1ZSIgZVN1cGVyVHlwZXM9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBpbnN0YW5jZSB2YWx1ZSBzcGVjaWZpZXMgdGhlIHZhbHVlIG1vZGVsZWQgYnkgYW4gaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbi4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaW5zdGFuY2UiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vSW5zdGFuY2VTcGVjaWZpY2F0aW9uIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iR2VuZXJhbGl6YXRpb24iIGVTdXBlclR5cGVzPSIjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGdlbmVyYWxpemF0aW9uIHJlbGF0ZXMgYSBzcGVjaWZpYyBjbGFzc2lmaWVyIHRvIGEgbW9yZSBnZW5lcmFsIGNsYXNzaWZpZXIsIGFuZCBpcyBvd25lZCBieSB0aGUgc3BlY2lmaWMgY2xhc3NpZmllci4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U291cmNlcyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KICAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtMjAwMSwxMDEgKzIyMTAsMTEgQEAKICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ2VuZXJhbGl6YXRpb25TZXQiIG9yZGVyZWQ9ImZhbHNlIg0KICAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9HZW5lcmFsaXphdGlvblNldCIgZU9wcG9zaXRlPSIjLy9HZW5lcmFsaXphdGlvblNldC9nZW5lcmFsaXphdGlvbiIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikluc3RhbmNlU3BlY2lmaWNhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCAjLy9EZXBsb3ltZW50VGFyZ2V0ICMvL0RlcGxveWVkQXJ0aWZhY3QiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idmFsaWRhdGVTbG90c0FyZURlZmluZWQiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uSW5zdGFuY2VTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy52YWxpZGF0ZVNsb3RzQXJlRGVmaW5lZCh0aGlzLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBpbnZhcmlhbnQgY29uc3RyYWludCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOiYjeEQ7JiN4QTsmbHQ7Y29kZT4mI3hEOyYjeEE7c2xvdC0+Zm9yQWxsKHMgfCYjeEQ7JiN4QTsgIGNsYXNzaWZpZXItPmV4aXN0cyhjIHwgYy5hbGxGZWF0dXJlcygpLT5pbmNsdWRlcyhzLmRlZmluaW5nRmVhdHVyZSkpJiN4RDsmI3hBOyZsdDsvY29kZT4iLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iY29uc3RyYWludCIvPg0KLSAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJkaWFnbm9zdGljcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURpYWdub3N0aWNDaGFpbiIvPg0KLSAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJjb250ZXh0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTWFwIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ2YWxpZGF0ZU5vRHVwbGljYXRlU2xvdHMiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uSW5zdGFuY2VTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy52YWxpZGF0ZU5vRHVwbGljYXRlU2xvdHModGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQW4gaW52YXJpYW50IGNvbnN0cmFpbnQgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjomI3hEOyYjeEE7Jmx0O2NvZGU+JiN4RDsmI3hBO2NsYXNzaWZpZXItPmZvckFsbChjIHwmI3hEOyYjeEE7JiN4OTsoYy5hbGxGZWF0dXJlcygpLT5mb3JBbGwoZiB8IHNsb3QtPnNlbGVjdChzIHwgcy5kZWZpbmluZ0ZlYXR1cmUgPSBmKS0+c2l6ZSgpICZsdDs9IDEpJiN4RDsmI3hBOyYjeDk7KSYjeEQ7JiN4QTsmbHQ7L2NvZGU+Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImNvbnN0cmFpbnQiLz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZGlhZ25vc3RpY3MiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEaWFnbm9zdGljQ2hhaW4iLz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iY29udGV4dCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU1hcCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbi9zbG90ICMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbi9zcGVjaWZpY2F0aW9uIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzbG90IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vU2xvdCIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU2xvdC9vd25pbmdJbnN0YW5jZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjbGFzc2lmaWVyIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhc3NpZmllciIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3BlY2lmaWNhdGlvbiIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiINCi0gICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTbG90IiBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lciIgZVR5cGU9IiMvL0VsZW1lbnQiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TbG90L293bmluZ0luc3RhbmNlIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vU2xvdC92YWx1ZSIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duaW5nSW5zdGFuY2UiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vSW5zdGFuY2VTcGVjaWZpY2F0aW9uIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vSW5zdGFuY2VTcGVjaWZpY2F0aW9uL3Nsb3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVyIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InZhbHVlIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlZmluaW5nRmVhdHVyZSIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9TdHJ1Y3R1cmFsRmVhdHVyZSIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikluc3RhbmNlVmFsdWUiIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaW5zdGFuY2UiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vSW5zdGFuY2VTcGVjaWZpY2F0aW9uIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUGFja2FnZWFibGVFbGVtZW50IiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50ICMvL1BhcmFtZXRlcmFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcGFja2FnZWFibGUgZWxlbWVudCBpbmRpY2F0ZXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgbWF5IGJlIG93bmVkIGRpcmVjdGx5IGJ5IGEgcGFja2FnZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0VmlzaWJpbGl0eSIgZVR5cGU9IiMvL1Zpc2liaWxpdHlLaW5kIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTIxMjEsNiArMjI0MCw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkVsZW1lbnRJbXBvcnQiIGVTdXBlclR5cGVzPSIjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBlbGVtZW50IGltcG9ydCBpcyBkZWZpbmVkIGFzIGEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIGJldHdlZW4gYW4gaW1wb3J0aW5nIG5hbWVzcGFjZSBhbmQgYSBwYWNrYWdlYWJsZSBlbGVtZW50LiBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZWFibGUgZWxlbWVudCBvciBpdHMgYWxpYXMgaXMgdG8gYmUgYWRkZWQgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgaW1wb3J0aW5nIG5hbWVzcGFjZS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjb250cm9sIHdoZXRoZXIgdGhlIGltcG9ydGVkIGVsZW1lbnQgY2FuIGJlIGZ1cnRoZXIgaW1wb3J0ZWQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9InZhbGlkYXRlVmlzaWJpbGl0eVB1YmxpY09yUHJpdmF0ZSIgZVR5cGU9IiMvL0Jvb2xlYW4iPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5FbGVtZW50SW1wb3J0T3BlcmF0aW9ucy52YWxpZGF0ZVZpc2liaWxpdHlQdWJsaWNPclByaXZhdGUodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KQEAgLTIxOTYsNiArMjMxOCw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBhY2thZ2VJbXBvcnQiIGVTdXBlclR5cGVzPSIjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHBhY2thZ2UgaW1wb3J0IGlzIGRlZmluZWQgYXMgYSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgdGhhdCBpZGVudGlmaWVzIGEgcGFja2FnZSB3aG9zZSBtZW1iZXJzIGFyZSB0byBiZSBpbXBvcnRlZCBieSBhIG5hbWVzcGFjZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idmFsaWRhdGVQdWJsaWNPclByaXZhdGUiIGVUeXBlPSIjLy9Cb29sZWFuIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImJvZHkiIHZhbHVlPSJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uUGFja2FnZUltcG9ydE9wZXJhdGlvbnMudmFsaWRhdGVQdWJsaWNPclByaXZhdGUodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIvPg0KQEAgLTIyNTQsNiArMjM3OSw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFzc29jaWF0aW9uIiBlU3VwZXJUeXBlcz0iIy8vQ2xhc3NpZmllciAjLy9SZWxhdGlvbnNoaXAiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQW4gYXNzb2NpYXRpb24gc3BlY2lmaWVzIGEgc2VtYW50aWMgcmVsYXRpb25zaGlwIHRoYXQgY2FuIG9jY3VyIGJldHdlZW4gdHlwZWQgaW5zdGFuY2VzLiBJdCBoYXMgYXQgbGVhc3QgdHdvIGVuZHMgcmVwcmVzZW50ZWQgYnkgcHJvcGVydGllcywgZWFjaCBvZiB3aGljaCBpcyBjb25uZWN0ZWQgdG8gdGhlIHR5cGUgb2YgdGhlIGVuZC4gTW9yZSB0aGFuIG9uZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uIG1heSBoYXZlIHRoZSBzYW1lIHR5cGUuIFdoZW4gYSBwcm9wZXJ0eSBpcyBvd25lZCBieSBhbiBhc3NvY2lhdGlvbiBpdCByZXByZXNlbnRzIGEgbm9uLW5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgbmFtZXNwYWNlIG9mIGFueSBvZiB0aGUgYXNzb2NpYXRlZCBjbGFzc2lmaWVycy4gV2hlbiBhIHByb3BlcnR5IGF0IGFuIGVuZCBvZiBhbiBhc3NvY2lhdGlvbiBpcyBvd25lZCBieSBvbmUgb2YgdGhlIGFzc29jaWF0ZWQgY2xhc3NpZmllcnMgaXQgcmVwcmVzZW50cyBhIG5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGlzIGFsc28gYW4gYXR0cmlidXRlIG9mIHRoZSBhc3NvY2lhdGVkIGNsYXNzaWZpZXIuIE9ubHkgYmluYXJ5IGFzc29jaWF0aW9ucyBtYXkgaGF2ZSBuYXZpZ2FibGUgZW5kcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0RmVhdHVyZXMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtMjMyNSw2ICsyNDUzLDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUGFja2FnZU1lcmdlIiBlU3VwZXJUeXBlcz0iIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBwYWNrYWdlIG1lcmdlIGlzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIHBhY2thZ2VzLCB3aGVyZSB0aGUgY29udGVudHMgb2YgdGhlIHRhcmdldCBwYWNrYWdlICh0aGUgb25lIHBvaW50ZWQgYXQpIGlzIG1lcmdlZCB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIHBhY2thZ2UgdGhyb3VnaCBzcGVjaWFsaXphdGlvbiBhbmQgcmVkZWZpbml0aW9uLCB3aGVyZSBhcHBsaWNhYmxlLiBUaGlzIGlzIGEgbWVjaGFuaXNtIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBlbGVtZW50cyBvZiB0aGUgc2FtZSBuYW1lIGFyZSBpbnRlbmRlZCB0byByZXByZXNlbnQgdGhlIHNhbWUgY29uY2VwdCwgcmVnYXJkbGVzcyBvZiB0aGUgcGFja2FnZSBpbiB3aGljaCB0aGV5IGFyZSBkZWZpbmVkLiBBIG1lcmdpbmcgcGFja2FnZSB3aWxsIHRha2UgZWxlbWVudHMgb2YgdGhlIHNhbWUga2luZCB3aXRoIHRoZSBzYW1lIG5hbWUgZnJvbSBvbmUgb3IgbW9yZSBwYWNrYWdlcyBhbmQgbWVyZ2UgdGhlbSB0b2dldGhlciBpbnRvIGEgc2luZ2xlIGVsZW1lbnQgdXNpbmcgZ2VuZXJhbGl6YXRpb24gYW5kIHJlZGVmaW5pdGlvbnMuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IGEgcGFja2FnZSBtZXJnZSBjYW4gYmUgdmlld2VkIGFzIGEgc2hvcnQtaGFuZCB3YXkgb2YgZXhwbGljaXRseSBkZWZpbmluZyB0aG9zZSBnZW5lcmFsaXphdGlvbnMgYW5kIHJlZGVmaW5pdGlvbnMuIFRoZSBtZXJnZWQgcGFja2FnZXMgYXJlIHN0aWxsIGF2YWlsYWJsZSwgYW5kIHRoZSBlbGVtZW50cyBpbiB0aG9zZSBwYWNrYWdlcyBjYW4gYmUgc2VwYXJhdGVseSBxdWFsaWZpZWQuIEZyb20gYW4gWE1JIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVpdGhlciBwb3NzaWJsZSB0byBleGNoYW5nZSBhIG1vZGVsIHdpdGggYWxsIFBhY2thZ2VNZXJnZXMgcmV0YWluZWQgb3IgYSBtb2RlbCB3aGVyZSBhbGwgUGFja2FnZU1lcmdlcyBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgYXdheSAoaW4gd2hpY2ggY2FzZSBwYWNrYWdlIGltcG9ydHMsIGdlbmVyYWxpemF0aW9ucywgYW5kIHJlZGVmaW5pdGlvbnMgYXJlIHVzZWQgaW5zdGVhZCkuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNvdXJjZXMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCiAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KQEAgLTIzNzMsMTIgKzI1MDQsMTggQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJQYXJhbWV0ZXJEaXJlY3Rpb25LaW5kIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IlBhcmFtZXRlckRpcmVjdGlvbktpbmQgaXMgYW4gZW51bWVyYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsIHZhbHVlczog4oCiIGluIEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBpbnRvIHRoZSBiZWhhdmlvcmFsIGVsZW1lbnQgYnkgdGhlIGNhbGxlci4g4oCiIGlub3V0IEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBpbnRvIGEgYmVoYXZpb3JhbCBlbGVtZW50IGJ5IHRoZSBjYWxsZXIgYW5kIHRoZW4gYmFjayBvdXQgdG8gdGhlIGNhbGxlciBmcm9tIHRoZSBiZWhhdmlvcmFsIGVsZW1lbnQuIOKAoiBvdXQgSW5kaWNhdGVzIHRoYXQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgcGFzc2VkIGZyb20gYSBiZWhhdmlvcmFsIGVsZW1lbnQgb3V0IHRvIHRoZSBjYWxsZXIuIOKAoiByZXR1cm4gSW5kaWNhdGVzIHRoYXQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgcGFzc2VkIGFzIHJldHVybiB2YWx1ZXMgZnJvbSBhIGJlaGF2aW9yYWwgZWxlbWVudCBiYWNrIHRvIHRoZSBjYWxsZXIuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVMaXRlcmFscyBuYW1lPSJpbiIvPg0KICAgICA8ZUxpdGVyYWxzIG5hbWU9Imlub3V0IiB2YWx1ZT0iMSIvPg0KICAgICA8ZUxpdGVyYWxzIG5hbWU9Im91dCIgdmFsdWU9IjIiLz4NCiAgICAgPGVMaXRlcmFscyBuYW1lPSJyZXR1cm4iIHZhbHVlPSIzIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJBZ2dyZWdhdGlvbktpbmQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQWdncmVnYXRpb25LaW5kIGlzIGFuIGVudW1lcmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbCB2YWx1ZXM6IOKAoiBub25lIEluZGljYXRlcyB0aGF0IHRoZSBwcm9wZXJ0eSBoYXMgbm8gYWdncmVnYXRpb24uIOKAoiBzaGFyZWQgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBhIHNoYXJlZCBhZ2dyZWdhdGlvbi4g4oCiIGNvbXBvc2l0ZSBJbmRpY2F0ZXMgdGhhdCB0aGUgcHJvcGVydHkgaXMgYWdncmVnYXRlZCBjb21wb3NpdGVseSwgaS5lLiwgdGhlIGNvbXBvc2l0ZSBvYmplY3QgaGFzIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgZXhpc3RlbmNlIGFuZCBzdG9yYWdlIG9mIHRoZSBjb21wb3NlZCBvYmplY3RzIChwYXJ0cykuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVMaXRlcmFscyBuYW1lPSJub25lIi8+DQogICAgIDxlTGl0ZXJhbHMgbmFtZT0ic2hhcmVkIiB2YWx1ZT0iMSIvPg0KICAgICA8ZUxpdGVyYWxzIG5hbWU9ImNvbXBvc2l0ZSIgdmFsdWU9IjIiLz4NCkBAIC0yNTAzLDYgKzI2NDAsOSBAQAogICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0NsYXNzaWZpZXIiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZWhhdmlvciIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9DbGFzcyI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJCZWhhdmlvciBpcyBhIHNwZWNpZmljYXRpb24gb2YgaG93IGl0cyBjb250ZXh0IGNsYXNzaWZpZXIgY2hhbmdlcyBzdGF0ZSBvdmVyIHRpbWUuIFRoaXMgc3BlY2lmaWNhdGlvbiBtYXkgYmUgZWl0aGVyIGEgZGVmaW5pdGlvbiBvZiBwb3NzaWJsZSBiZWhhdmlvciBleGVjdXRpb24gb3IgZW1lcmdlbnQgYmVoYXZpb3IsIG9yIGEgc2VsZWN0aXZlIGlsbHVzdHJhdGlvbiBvZiBhbiBpbnRlcmVzdGluZyBzdWJzZXQgb2YgcG9zc2libGUgZXhlY3V0aW9ucy4gVGhlIGxhdHRlciBmb3JtIGlzIHR5cGljYWxseSB1c2VkIGZvciBjYXB0dXJpbmcgZXhhbXBsZXMsIHN1Y2ggYXMgYSB0cmFjZSBvZiBhIHBhcnRpY3VsYXIgZXhlY3V0aW9uLiBBIGNsYXNzaWZpZXIgYmVoYXZpb3IgaXMgYWx3YXlzIGEgZGVmaW5pdGlvbiBvZiBiZWhhdmlvciBhbmQgbm90IGFuIGlsbHVzdHJhdGlvbi4gSXQgZGVzY3JpYmVzIHRoZSBzZXF1ZW5jZSBvZiBzdGF0ZSBjaGFuZ2VzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3NpZmllciBtYXkgdW5kZXJnbyBpbiB0aGUgY291cnNlIG9mIGl0cyBsaWZldGltZS4gSXRzIHByZWNpc2Ugc2VtYW50aWNzIGRlcGVuZHMgb24gdGhlIGtpbmQgb2YgY2xhc3NpZmllci4gRm9yIGV4YW1wbGUsIHRoZSBjbGFzc2lmaWVyIGJlaGF2aW9yIG9mIGEgY29sbGFib3JhdGlvbiByZXByZXNlbnRzIGVtZXJnZW50IGJlaGF2aW9yIG9mIGFsbCB0aGUgcGFydHMsIHdoZXJlYXMgdGhlIGNsYXNzaWZpZXIgYmVoYXZpb3Igb2YgYSBjbGFzcyBpcyBqdXN0IHRoZSBiZWhhdmlvciBvZiBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzIHNlcGFyYXRlZCBmcm9tIHRoZSBiZWhhdmlvcnMgb2YgYW55IG9mIGl0cyBwYXJ0cy4gV2hlbiBhIGJlaGF2aW9yIGlzIGFzc29jaWF0ZWQgYXMgdGhlIG1ldGhvZCBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZSwgaXQgZGVmaW5lcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhhdCBmZWF0dXJlOyBpLmUuLCB0aGUgY29tcHV0YXRpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGVmZmVjdHMgb2YgdGhlIGJlaGF2aW9yYWwgZmVhdHVyZS4gQXMgYSBjbGFzc2lmaWVyLCBhIGJlaGF2aW9yIGNhbiBiZSBzcGVjaWFsaXplZC4gSW5zdGFudGlhdGluZyBhIGJlaGF2aW9yIGlzIHJlZmVycmVkIHRvIGFzIOKAnGludm9jYXRpbmfigJ0gdGhlIGJlaGF2aW9yLCBhbiBpbnN0YW50aWF0ZWQgYmVoYXZpb3IgaXMgYWxzbyBjYWxsZWQgYSBiZWhhdmlvciDigJxleGVjdXRpb24u4oCdIEEgYmVoYXZpb3IgbWF5IGJlIGludm9rZWQgZGlyZWN0bHkgb3IgaXRzIGludm9jYXRpb24gbWF5IGJlIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIGJlaGF2aW9yYWwgZmVhdHVyZSB0aGF0IHNwZWNpZmllcyB0aGlzIGJlaGF2aW9yLiBBIGJlaGF2aW9yIGNhbiBhbHNvIGJlIGluc3RhbnRpYXRlZCBhcyBhbiBvYmplY3QgaW4gdmlydHVlIG9mIGl0IGJlaW5nIGEgY2xhc3MuIFRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgYmVoYXZpb3IgY2FuIHRha2UgYSBudW1iZXIgb2YgZm9ybXMsIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3ViY2xhc3NlcyBvZiBCZWhhdmlvci4gQmVoYXZpb3IgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIGZhY3RvcmluZyBvdXQgdGhlIGNvbW1vbmFsaXRpZXMgb2YgdGhlc2UgZGlmZmVyZW50IHNwZWNpZmljYXRpb24gbWVjaGFuaXNtcy4gV2hlbiBhIGJlaGF2aW9yIGlzIGludm9rZWQsIGl0cyBleGVjdXRpb24gcmVjZWl2ZXMgYSBzZXQgb2YgaW5wdXQgdmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gYWZmZWN0IHRoZSBjb3Vyc2Ugb2YgZXhlY3V0aW9uIGFuZCBhcyBhIHJlc3VsdCBvZiBpdHMgZXhlY3V0aW9uIGl0IHByb2R1Y2VzIGEgc2V0IG9mIG91dHB1dCB2YWx1ZXMgd2hpY2ggYXJlIHJldHVybmVkLCBhcyBzcGVjaWZpZWQgYnkgaXRzIHBhcmFtZXRlcnMuIFRoZSBvYnNlcnZhYmxlIGVmZmVjdHMgb2YgYSBiZWhhdmlvciBleGVjdXRpb24gbWF5IGluY2x1ZGUgY2hhbmdlcyBvZiB2YWx1ZXMgb2YgdmFyaW91cyBvYmplY3RzIGludm9sdmVkIGluIHRoZSBleGVjdXRpb24sIHRoZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2Ygb2JqZWN0cywgZ2VuZXJhdGlvbiBvZiBjb21tdW5pY2F0aW9ucyBiZXR3ZWVuIG9iamVjdHMsIGFzIHdlbGwgYXMgYW4gZXhwbGljaXQgc2V0IG9mIG91dHB1dCB2YWx1ZXMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KQEAgLTI1NzYsNiArMjcxNiw5IEBACiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZWhhdmlvcmVkQ2xhc3NpZmllciIgYWJzdHJhY3Q9InRydWUiDQogICAgICAgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBjbGFzc2lmaWVyIGNhbiBoYXZlIGJlaGF2aW9yIHNwZWNpZmljYXRpb25zIGRlZmluZWQgaW4gaXRzIG5hbWVzcGFjZS4gT25lIG9mIHRoZXNlIG1heSBzcGVjaWZ5IHRoZSBiZWhhdmlvciBvZiB0aGUgY2xhc3NpZmllciBpdHNlbGYuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkTWVtYmVycyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCkBAIC0yNjUxLDYgKzI3OTQsOSBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBY3Rpdml0eSIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkFuIGFjdGl2aXR5IGNvbnRhaW5zIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgdGV4dCBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSBhIGNvbXB1dGF0aW9uLCBhbmQgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbGFuZ3VhZ2UuIE9DTCwgbmF0dXJhbCBsYW5ndWFnZSwgb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWN0aXZpdHkuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtMjcxMyw2ICsyODU5LDkgQEAKICAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJHZW5lcmFsaXphdGlvblNldCIgZVN1cGVyVHlwZXM9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJFYWNoIEdlbmVyYWxpemF0aW9uIGlzIGEgYmluYXJ5IHJlbGF0aW9uc2hpcCB0aGF0IHJlbGF0ZXMgYSBzcGVjaWZpYyBDbGFzc2lmaWVyIHRvIGEgbW9yZSBnZW5lcmFsIENsYXNzaWZpZXIgKGkuZS4sIGEgc3ViY2xhc3MpLiBFYWNoIEdlbmVyYWxpemF0aW9uU2V0IGRlZmluZXMgYSBwYXJ0aWN1bGFyIHNldCBvZiBHZW5lcmFsaXphdGlvbiByZWxhdGlvbnNoaXBzIHRoYXQgZGVzY3JpYmUgdGhlIHdheSBpbiB3aGljaCBhIHNwZWNpZmljIENsYXNzaWZpZXIgIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNDb3ZlcmluZyIgZVR5cGU9IiMvL0Jvb2xlYW4iLz4NCiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzRGlzam9pbnQiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwb3dlcnR5cGUiIGVUeXBlPSIjLy9DbGFzc2lmaWVyIg0KQEAgLTI3MjEsMTkgKzI4NzAsNDAgQEAKICAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9HZW5lcmFsaXphdGlvbiIgZU9wcG9zaXRlPSIjLy9HZW5lcmFsaXphdGlvbi9nZW5lcmFsaXphdGlvblNldCIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVsIiBlU3VwZXJUeXBlcz0iIy8vUGFja2FnZSI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJUaGUgTW9kZWwgY29uc3RydWN0IGlzIGRlZmluZWQgYXMgYSBQYWNrYWdlLiBJdCBjb250YWlucyBhIChoaWVyYXJjaGljYWwpIHNldCBvZiBlbGVtZW50cyB0aGF0IHRvZ2V0aGVyIGRlc2NyaWJlIHRoZSBwaHlzaWNhbCBzeXN0ZW0gYmVpbmcgbW9kZWxlZC4gQSBNb2RlbCBtYXkgYWxzbyBjb250YWluIGEgc2V0IG9mIGVsZW1lbnRzIHRoYXQgcmVwcmVzZW50cyB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIHN5c3RlbSwgdHlwaWNhbGx5IEFjdG9ycywgdG9nZXRoZXIgd2l0aCB0aGVpciBpbnRlcnJlbGF0aW9uc2hpcHMsIHN1Y2ggYXMgQXNzb2NpYXRpb25zIGFuZCBEZXBlbmRlbmNpZXMgIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmlld3BvaW50IiBlVHlwZT0iIy8vU3RyaW5nIg0KICAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQXNzb2NpYXRpb25DbGFzcyIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzICMvL0Fzc29jaWF0aW9uIi8+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBlcm1pc3Npb24iIGVTdXBlclR5cGVzPSIjLy9EZXBlbmRlbmN5Ii8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFzc29jaWF0aW9uQ2xhc3MiIGVTdXBlclR5cGVzPSIjLy9DbGFzcyAjLy9Bc3NvY2lhdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJJbiB0aGUgbWV0YW1vZGVsLCBhbiBBc3NvY2lhdGlvbkNsYXNzIGlzIGEgZGVjbGFyYXRpb24gb2YgYSBzZW1hbnRpYyByZWxhdGlvbnNoaXAgYmV0d2VlbiBDbGFzc2lmaWVycywgd2hpY2ggaGFzIGEgc2V0IG9mIGZlYXR1cmVzIG9mIGl0cyBvd24uIEFzc29jaWF0aW9uQ2xhc3MgaXMgYm90aCBhbiBBc3NvY2lhdGlvbiBhbmQgYSBDbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBlcm1pc3Npb24iIGVTdXBlclR5cGVzPSIjLy9EZXBlbmRlbmN5Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgUGVybWlzc2lvbiBzaWduaWZpZXMgZ3JhbnRpbmcgb2YgYWNjZXNzIHJpZ2h0cyBmcm9tIHRoZSBzdXBwbGllciBtb2RlbCBlbGVtZW50IHRvIGEgY2xpZW50IG1vZGVsIGVsZW1lbnQuIE9yIHRvIHB1dCBpdCBhbm90aGVyIHdheSwgaXQgc2lnbmlmaWVzIHRoYXQgdGhlIGNsaWVudCByZXF1aXJlcyBhY2Nlc3MgdG8gc29tZSBvciBhbGwgb2YgdGhlIGNvbnN0aXR1ZW50IGVsZW1lbnRzIG9mIHRoZSBzdXBwbGllci4gVGhlIHN1cHBsaWVyIGVsZW1lbnQgZ2l2ZXMgdGhlIGNsaWVudCBwZXJtaXNzaW9uIHRvIGFjY2VzcyBzb21lIG9yIGFsbCBvZiBpdHMgY29uc3RpdHVlbnRzIGVsZW1lbnRzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGVwZW5kZW5jeSIgZVN1cGVyVHlwZXM9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCAjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGRlcGVuZGVuY3kgaXMgYSByZWxhdGlvbnNoaXAgdGhhdCBzaWduaWZpZXMgdGhhdCBhIHNpbmdsZSBvciBhIHNldCBvZiBtb2RlbCBlbGVtZW50cyByZXF1aXJlcyBvdGhlciBtb2RlbCBlbGVtZW50cyBmb3IgdGhlaXIgc3BlY2lmaWNhdGlvbiBvciBpbXBsZW1lbnRhdGlvbi4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb21wbGV0ZSBzZW1hbnRpY3Mgb2YgdGhlIGRlcGVuZGluZyBlbGVtZW50cyBpcyBlaXRoZXIgc2VtYW50aWNhbGx5IG9yIHN0cnVjdHVyYWxseSBkZXBlbmRlbnQgb24gdGhlIGRlZmluaXRpb24gb2YgdGhlIHN1cHBsaWVyIGVsZW1lbnQocykuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNsaWVudCIgb3JkZXJlZD0iZmFsc2UiDQogICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL05hbWVkRWxlbWVudCIgdm9sYXRpbGU9InRydWUiIGVPcHBvc2l0ZT0iIy8vTmFtZWRFbGVtZW50L2NsaWVudERlcGVuZGVuY3kiLz4NCiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN1cHBsaWVyIiBvcmRlcmVkPSJmYWxzZSINCiAgICAgICAgIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vTmFtZWRFbGVtZW50IiB2b2xhdGlsZT0idHJ1ZSIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlVzYWdlIiBlU3VwZXJUeXBlcz0iIy8vRGVwZW5kZW5jeSIvPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJVc2FnZSIgZVN1cGVyVHlwZXM9IiMvL0RlcGVuZGVuY3kiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSB1c2FnZSBpcyBhIHJlbGF0aW9uc2hpcCBpbiB3aGljaCBvbmUgZWxlbWVudCByZXF1aXJlcyBhbm90aGVyIGVsZW1lbnQgKG9yIHNldCBvZiBlbGVtZW50cykgZm9yIGl0cyBmdWxsIGltcGxlbWVudGF0aW9uIG9yIG9wZXJhdGlvbi4gSW4gdGhlIG1ldGFtb2RlbCwgYSBVc2FnZSBpcyBhIERlcGVuZGVuY3kgaW4gd2hpY2ggdGhlIGNsaWVudCByZXF1aXJlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIHN1cHBsaWVyLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWJzdHJhY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9EZXBlbmRlbmN5Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkFuIGFic3RyYWN0aW9uIGlzIGEgcmVsYXRpb25zaGlwIHRoYXQgcmVsYXRlcyB0d28gZWxlbWVudHMgb3Igc2V0cyBvZiBlbGVtZW50cyB0aGF0IHJlcHJlc2VudCB0aGUgc2FtZSBjb25jZXB0IGF0IGRpZmZlcmVudCBsZXZlbHMgb2YgYWJzdHJhY3Rpb24gb3IgZnJvbSBkaWZmZXJlbnQgdmlld3BvaW50cy4gKFNlZSBhbHNvLCB0aGUgZGVmaW5pdGlvbiBvZiBhYnN0cmF0aW9uIGluIHRoZSBHbG9zc2FyeS4pIEluIHRoZSBtZXRhbW9kZWwsIGFuIEFic3RyYWN0aW9uIGlzIGEgRGVwZW5kZW5jeSBpbiB3aGljaCB0aGVyZSBpcyBhIG1hcHBpbmcgYmV0d2VlbiB0aGUgc3VwcGxpZXIgYW5kIHRoZSBjbGllbnQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtMjc1NSw2ICsyOTI1LDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVhbGl6YXRpb24iIGVTdXBlclR5cGVzPSIjLy9BYnN0cmFjdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJJbiB0aGUgbWV0YW1vZGVsLCBhIFJlYWxpemF0aW9uIGlzIGEgc3VidHlwZSBvZiBEZXBlbmRlbmNpZXM6OlJlYWxpemF0aW9uLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTb3VyY2VzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQogICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCkBAIC0yODI5LDYgKzMwMDIsOSBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdWJzdGl0dXRpb24iIGVTdXBlclR5cGVzPSIjLy9SZWFsaXphdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHN1YnN0aXR1dGlvbiBpcyBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBjbGFzc2lmaWVycyBzaWduaWZpZXMgdGhhdCB0aGUgc3Vic3RpdHV0aW5nQ2xhc3NpZmllciBjb21wbGllcyB3aXRoIHRoZSBjb250cmFjdCBzcGVjaWZpZWQgYnkgdGhlIGNvbnRyYWN0IGNsYXNzaWZpZXIuIFRoaXMgaW1wbGllcyB0aGF0IGluc3RhbmNlcyBvZiB0aGUgc3Vic3RpdHV0aW5nQ2xhc3NpZmllciBhcmUgcnVudGltZSBzdWJzdGl0dXRhYmxlIHdoZXJlIGluc3RhbmNlcyBvZiB0aGUgY29udHJhY3QgY2xhc3NpZmllciBhcmUgZXhwZWN0ZWQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFN1cHBsaWVycyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KICAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtMjg4OSw2ICszMDY1LDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29ubmVjdG9yRW5kIiBlU3VwZXJUeXBlcz0iIy8vTXVsdGlwbGljaXR5RWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGNvbm5lY3RvciBlbmQgaXMgYW4gZW5kcG9pbnQgb2YgYSBjb25uZWN0b3IsIHdoaWNoIGF0dGFjaGVzIHRoZSBjb25uZWN0b3IgdG8gYSBjb25uZWN0YWJsZSBlbGVtZW50LiBFYWNoIGNvbm5lY3RvciBlbmQgaXMgcGFydCBvZiBvbmUgY29ubmVjdG9yLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWZpbmluZ0VuZCIgZVR5cGU9IiMvL1Byb3BlcnR5Ig0KICAgICAgICAgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiIGRlcml2ZWQ9InRydWUiLz4NCiAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJvbGUiIGVUeXBlPSIjLy9Db25uZWN0YWJsZUVsZW1lbnQiDQpAQCAtMjg5NywxMCArMzA3NiwxNiBAQAogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29ubmVjdGFibGVFbGVtZW50IiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50ICMvL1BhcmFtZXRlcmFibGVFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgQ29ubmVjdGFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyByZXByZXNlbnRpbmcgYSBzZXQgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIG93bmVkIGJ5IGEgY29udGFpbmluZyBjbGFzc2lmaWVyIGluc3RhbmNlLiBDb25uZWN0YWJsZSBlbGVtZW50cyBtYXkgYmUgam9pbmVkIGJ5IGF0dGFjaGVkIGNvbm5lY3RvcnMgYW5kIHNwZWNpZnkgY29uZmlndXJhdGlvbnMgb2YgbGlua2VkIGluc3RhbmNlcyB0byBiZSBjcmVhdGVkIHdpdGhpbiBhbiBpbnN0YW5jZSBvZiB0aGUgY29udGFpbmluZyBjbGFzc2lmaWVyLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJlbmQiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSINCiAgICAgICAgIGVUeXBlPSIjLy9Db25uZWN0b3JFbmQiIGVPcHBvc2l0ZT0iIy8vQ29ubmVjdG9yRW5kL3JvbGUiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb25uZWN0b3IiIGVTdXBlclR5cGVzPSIjLy9GZWF0dXJlIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkVhY2ggY29ubmVjdG9yIG1heSBiZSBhdHRhY2hlZCB0byB0d28gb3IgbW9yZSBjb25uZWN0YWJsZSBlbGVtZW50cywgZWFjaCByZXByZXNlbnRpbmcgYSBzZXQgb2YgaW5zdGFuY2VzLiBFYWNoIGNvbm5lY3RvciBlbmQgIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVkZWZpbmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQpAQCAtMjk0Miw2ICszMTI3LDkgQEAKICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0cnVjdHVyZWRDbGFzc2lmaWVyIiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vQ2xhc3NpZmllciI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHN0cnVjdHVyZWQgY2xhc3NpZmllciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgdGhhdCByZXByZXNlbnRzIGFueSBjbGFzc2lmaWVyIHdob3NlIGJlaGF2aW9yIGNhbiBiZSBmdWxseSBvciBwYXJ0bHkgZGVzY3JpYmVkIGJ5IHRoZSBjb2xsYWJvcmF0aW9uIG9mIG93bmVkIG9yIHJlZmVyZW5jZWQgaW5zdGFuY2VzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRBdHRyaWJ1dGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KQEAgLTMwMTIsNiArMzIwMCw0MTcgQEAKICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZXJmYWNlIiBlU3VwZXJUeXBlcz0iIy8vQ2xhc3NpZmllciI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBpbnRlcmZhY2UgaXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgdGhhdCByZXByZXNlbnRzIGEgZGVjbGFyYXRpb24gb2YgYSBzZXQgb2YgY29oZXJlbnQgcHVibGljIGZlYXR1cmVzIGFuZCBvYmxpZ2F0aW9ucy4gSW4gYSBzZW5zZSwgIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QXR0cmlidXRlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImF0dHJpYnV0ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUHJvcGVydHkiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL293bmVkQXR0cmlidXRlIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkTWVtYmVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0ludGVyZmFjZS9vd25lZEF0dHJpYnV0ZSAjLy9JbnRlcmZhY2Uvb3duZWRPcGVyYXRpb24gIy8vSW50ZXJmYWNlL25lc3RlZENsYXNzaWZpZXIgIy8vSW50ZXJmYWNlL293bmVkUmVjZXB0aW9uICMvL0ludGVyZmFjZS9wcm90b2NvbCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0RmVhdHVyZXMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImZlYXR1cmUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0iZmVhdHVyaW5nQ2xhc3NpZmllciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5GZWF0dXJlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL293bmVkT3BlcmF0aW9uICMvL0ludGVyZmFjZS9vd25lZFJlY2VwdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVkZWZpbmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWRlZmluZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL3JlZGVmaW5lZEludGVyZmFjZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRBdHRyaWJ1dGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL1Byb3BlcnR5IiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0QXR0cmlidXRlcyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRPcGVyYXRpb24iIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL09wZXJhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWRlZmluZWRJbnRlcmZhY2UiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9JbnRlcmZhY2UiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibmVzdGVkQ2xhc3NpZmllciIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vQ2xhc3NpZmllciIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im93bmVkUmVjZXB0aW9uIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUmVjZXB0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiIHZhbHVlPSIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb3RvY29sIiBlVHlwZT0iIy8vUHJvdG9jb2xTdGF0ZU1hY2hpbmUiDQorICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkltcGxlbWVudGF0aW9uIiBlU3VwZXJUeXBlcz0iIy8vUmVhbGl6YXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQW4gSW1wbGVtZW50YXRpb24gaXMgYSBzcGVjaWFsaXplZCBSZWFsaXphdGlvbiByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENsYXNzaWZpZXIgYW5kIGFuIEludGVyZmFjZS4gVGhlIGltcGxlbWVudGF0aW9uIHJlbGF0aW9uc2hpcCBzaWduaWZpZXMgdGhhdCB0aGUgcmVhbGl6aW5nIGNsYXNzaWZpZXIgY29uZm9ybXMgdG8gdGhlIGNvbnRyYWN0IHNwZWNpZmllZCBieSB0aGUgaW50ZXJmYWNlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTdXBwbGllcnMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InN1cHBsaWVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdXBlcnNldCIgcmVmZXJlbmNlcz0iIy8vSW1wbGVtZW50YXRpb24vY29udHJhY3QiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0ltcGxlbWVudGF0aW9uL2NvbnRyYWN0Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRDbGllbnRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9ImNsaWVudERlcGVuZGVuY3kiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL0ltcGxlbWVudGF0aW9uL2ltcGxlbWVudGluZ0NsYXNzaWZpZXIiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNvdXJjZXMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic291cmNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0ltcGxlbWVudGF0aW9uL2ltcGxlbWVudGluZ0NsYXNzaWZpZXIiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRyYWN0IiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL0ludGVyZmFjZSIgdm9sYXRpbGU9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L3N1cHBsaWVyIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaW1wbGVtZW50aW5nQ2xhc3NpZmllciINCisgICAgICAgIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9CZWhhdmlvcmVkQ2xhc3NpZmllciIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSINCisgICAgICAgIGVPcHBvc2l0ZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIvaW1wbGVtZW50YXRpb24iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L2NsaWVudCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSNnZXRDbGllbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQXJ0aWZhY3QiIGVTdXBlclR5cGVzPSIjLy9DbGFzc2lmaWVyICMvL0RlcGxveWVkQXJ0aWZhY3QiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0FydGlmYWN0L21hbmlmZXN0YXRpb24iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldENsaWVudERlcGVuZGVuY2llcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50RGVwZW5kZW5jeSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJjbGllbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1cGVyc2V0IiByZWZlcmVuY2VzPSIjLy9BcnRpZmFjdC9tYW5pZmVzdGF0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRGZWF0dXJlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iZmVhdHVyZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJmZWF0dXJpbmdDbGFzc2lmaWVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkZlYXR1cmUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9BcnRpZmFjdC9vd25lZE9wZXJhdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRNZW1iZXJzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZE1lbWJlciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJuYW1lc3BhY2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9BcnRpZmFjdC9vd25lZE9wZXJhdGlvbiAjLy9BcnRpZmFjdC9vd25lZEF0dHJpYnV0ZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QXR0cmlidXRlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImF0dHJpYnV0ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUHJvcGVydHkiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vQXJ0aWZhY3Qvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZpbGVOYW1lIiBlVHlwZT0iIy8vU3RyaW5nIg0KKyAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJuZXN0ZWRBcnRpZmFjdCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0FydGlmYWN0IiBjb250YWlubWVudD0idHJ1ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWFuaWZlc3RhdGlvbiIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL01hbmlmZXN0YXRpb24iIHZvbGF0aWxlPSJ0cnVlIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL05hbWVkRWxlbWVudC9jbGllbnREZXBlbmRlbmN5Ij4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0Q2xpZW50RGVwZW5kZW5jaWVzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im93bmVkT3BlcmF0aW9uIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSIjLy9PcGVyYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRGZWF0dXJlcyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRBdHRyaWJ1dGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL1Byb3BlcnR5IiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0QXR0cmlidXRlcyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1hbmlmZXN0YXRpb24iIGVTdXBlclR5cGVzPSIjLy9BYnN0cmFjdGlvbiI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTdXBwbGllcnMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InN1cHBsaWVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdXBlcnNldCIgcmVmZXJlbmNlcz0iIy8vTWFuaWZlc3RhdGlvbi91dGlsaXplZEVsZW1lbnQiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL01hbmlmZXN0YXRpb24vdXRpbGl6ZWRFbGVtZW50Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ1dGlsaXplZEVsZW1lbnQiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vUGFja2FnZWFibGVFbGVtZW50IiB2b2xhdGlsZT0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL0RlcGVuZGVuY3kvc3VwcGxpZXIiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0U3VwcGxpZXJzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWN0b3IiIGVTdXBlclR5cGVzPSIjLy9DbGFzc2lmaWVyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkFuIEFjdG9yIG1vZGVscyBhIHR5cGUgb2Ygcm9sZSBwbGF5ZWQgYnkgYW4gZW50aXR5IHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIHN1YmplY3QgKGUuZy4sIGJ5IGV4Y2hhbmdpbmcgc2lnbmFscyBhbmQgZGF0YSksICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFeHRlbmQiIGVTdXBlclR5cGVzPSIjLy9OYW1lZEVsZW1lbnQgIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iVGhpcyByZWxhdGlvbnNoaXAgc3BlY2lmaWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgbWF5IGJlIGV4dGVuZGVkIGJ5IHRoZSBiZWhhdmlvciBvZiBhbm90aGVyICh1c3VhbGx5IHN1cHBsZW1lbnRhcnkpIHVzZSBjYXNlLiBUaGUgZXh0ZW5zaW9uIHRha2VzIHBsYWNlIGF0IG9uZSBvciBtb3JlIHNwZWNpZmljIGV4dGVuc2lvbiBwb2ludHMgZGVmaW5lZCBpbiB0aGUgZXh0ZW5kZWQgdXNlIGNhc2UuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgdGhlIGV4dGVuZGVkIHVzZSBjYXNlIGlzIGRlZmluZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlIGFuZCBpcyBtZWFuaW5nZnVsIGluZGVwZW5kZW50bHkgb2YgdGhlIGV4dGVuZGluZyB1c2UgY2FzZS4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBleHRlbmRpbmcgdXNlIGNhc2UgdHlwaWNhbGx5IGRlZmluZXMgYmVoYXZpb3IgdGhhdCBtYXkgbm90IG5lY2Vzc2FyaWx5IGJlIG1lYW5pbmdmdWwgYnkgaXRzZWxmLiBJbnN0ZWFkLCB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlIGRlZmluZXMgYSBzZXQgb2YgbW9kdWxhciBiZWhhdmlvciBpbmNyZW1lbnRzIHRoYXQgYXVnbWVudCBhbiBleGVjdXRpb24gb2YgdGhlIGV4dGVuZGVkIHVzZSBjYXNlIHVuZGVyIHNwZWNpZmljIGNvbmRpdGlvbnMuIE5vdGUgdGhhdCB0aGUgc2FtZSBleHRlbmRpbmcgdXNlIGNhc2UgY2FuIGV4dGVuZCBtb3JlIHRoYW4gb25lIHVzZSBjYXNlLiBGdXJ0aGVybW9yZSwgYW4gZXh0ZW5kaW5nIHVzZSBjYXNlIG1heSBpdHNlbGYgYmUgZXh0ZW5kZWQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4dGVuZC9leHRlbmRlZENhc2UiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNvdXJjZXMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic291cmNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4dGVuZC9leHRlbnNpb24iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9FeHRlbmQvY29uZGl0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleHRlbmRlZENhc2UiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vVXNlQ2FzZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXh0ZW5zaW9uIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1VzZUNhc2UiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9Vc2VDYXNlL2V4dGVuZCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29uZGl0aW9uIiBlVHlwZT0iIy8vQ29uc3RyYWludCINCisgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuc2lvbkxvY2F0aW9uIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9FeHRlbnNpb25Qb2ludCIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlVzZUNhc2UiIGVTdXBlclR5cGVzPSIjLy9CZWhhdmlvcmVkQ2xhc3NpZmllciI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIFVzZUNhc2UgaXMgYSBraW5kIG9mIGJlaGF2aW9yZWQgY2xhc3NpZmllciB0aGF0IHJlcHJlc2VudHMgYSBkZWNsYXJhdGlvbiBvZiBhbiBvZmZlcmVkIGJlaGF2aW9yLiBFYWNoIHVzZSBjYXNlIHNwZWNpZmllcyBzb21lIGJlaGF2aW9yLCBwb3NzaWJseSBpbmNsdWRpbmcgdmFyaWFudHMsIHRoYXQgdGhlIHN1YmplY3QgY2FuIHBlcmZvcm0gaW4gY29sbGFib3JhdGlvbiB3aXRoIG9uZSBvciBtb3JlIGFjdG9ycy4gVXNlIGNhc2VzIGRlZmluZSB0aGUgb2ZmZXJlZCBiZWhhdmlvciBvZiB0aGUgc3ViamVjdCB3aXRob3V0IHJlZmVyZW5jZSB0byBpdHMgaW50ZXJuYWwgc3RydWN0dXJlLiBUaGVzZSBiZWhhdmlvcnMsIGludm9sdmluZyBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0aGUgYWN0b3IgYW5kIHRoZSBzdWJqZWN0LCBtYXkgcmVzdWx0IGluIGNoYW5nZXMgdG8gdGhlIHN0YXRlIG9mIHRoZSBzdWJqZWN0IGFuZCBjb21tdW5pY2F0aW9ucyB3aXRoIGl0cyBlbnZpcm9ubWVudC4gQSB1c2UgY2FzZSBjYW4gaW5jbHVkZSBwb3NzaWJsZSB2YXJpYXRpb25zIG9mIGl0cyBiYXNpYyBiZWhhdmlvciwgaW5jbHVkaW5nIGV4Y2VwdGlvbmFsIGJlaGF2aW9yIGFuZCBlcnJvciBoYW5kbGluZy4gVGhlIHN1YmplY3Qgb2YgYSB1c2UgY2FzZSBjb3VsZCBiZSBhIHBoeXNpY2FsIHN5c3RlbSBvciBhbnkgb3RoZXIgZWxlbWVudCB0aGF0IG1heSBoYXZlIGJlaGF2aW9yLCBzdWNoIGFzIGEgY29tcG9uZW50LCBzdWJzeXN0ZW0gb3IgY2xhc3MuIEVhY2ggdXNlIGNhc2Ugc3BlY2lmaWVzIGEgdW5pdCBvZiB1c2VmdWwgZnVuY3Rpb25hbGl0eSB0aGF0IHRoZSBzdWJqZWN0IHByb3ZpZGVzIHRvIGl0cyB1c2VycywgaS5lLiwgYSBzcGVjaWZpYyB3YXkgb2YgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3ViamVjdC4gVGhpcyBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyBpbml0aWF0ZWQgYnkgYW4gYWN0b3IsIG11c3QgYWx3YXlzIGJlIGNvbXBsZXRlZCBmb3IgdGhlIHVzZSBjYXNlIHRvIGNvbXBsZXRlLiBJdCBpcyBkZWVtZWQgY29tcGxldGUgaWYsIGFmdGVyIGl0cyBleGVjdXRpb24sIHRoZSBzdWJqZWN0IHdpbGwgYmUgaW4gYSBzdGF0ZSBpbiB3aGljaCBubyBmdXJ0aGVyIGlucHV0cyBvciBhY3Rpb25zIGFyZSBleHBlY3RlZCBhbmQgdGhlIHVzZSBjYXNlIGNhbiBiZSBpbml0aWF0ZWQgYWdhaW4gb3IgaW4gYW4gZXJyb3Igc3RhdGUuIFVzZSBjYXNlcyBjYW4gYmUgdXNlZCBib3RoIGZvciBzcGVjaWZpY2F0aW9uIG9mIHRoZSAoZXh0ZXJuYWwpIHJlcXVpcmVtZW50cyBvbiBhIHN1YmplY3QgYW5kIGZvciB0aGUgc3BlY2lmaWNhdGlvbiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBvZmZlcmVkIGJ5IGEgc3ViamVjdC4gTW9yZW92ZXIsIHRoZSB1c2UgY2FzZXMgYWxzbyBzdGF0ZSB0aGUgcmVxdWlyZW1lbnRzIHRoZSBzcGVjaWZpZWQgc3ViamVjdCBwb3NlcyBvbiBpdHMgZW52aXJvbm1lbnQgYnkgZGVmaW5pbmcgaG93IHRoZXkgc2hvdWxkIGludGVyYWN0IHdpdGggdGhlIHN1YmplY3Qgc28gdGhhdCBpdCB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybSBpdHMgc2VydmljZXMuIFRoZSBiZWhhdmlvciBvZiBhIHVzZSBjYXNlIGNhbiBiZSBkZXNjcmliZWQgYnkgYSBzcGVjaWZpY2F0aW9uIHRoYXQgaXMgc29tZSBraW5kIG9mIEJlaGF2aW9yICh0aHJvdWdoIGl0cyBvd25lZEJlaGF2aW9yIHJlbGF0aW9uc2hpcCksIHN1Y2ggYXMgaW50ZXJhY3Rpb25zLCBhY3Rpdml0aWVzLCBhbmQgc3RhdGUgbWFjaGluZXMsIG9yIGJ5IHByZS1jb25kaXRpb25zIGFuZCBwb3N0LWNvbmRpdGlvbnMgYXMgd2VsbCBhcyBieSBuYXR1cmFsIGxhbmd1YWdlIHRleHQgd2hlcmUgYXBwcm9wcmlhdGUuIEl0IG1heSBhbHNvIGJlIGRlc2NyaWJlZCBpbmRpcmVjdGx5IHRocm91Z2ggYSBDb2xsYWJvcmF0aW9uIHRoYXQgdXNlcyB0aGUgdXNlIGNhc2UgYW5kIGl0cyBhY3RvcnMgYXMgdGhlIGNsYXNzaWZpZXJzIHRoYXQgdHlwZSBpdHMgcGFydHMuIFdoaWNoIG9mIHRoZXNlIHRlY2huaXF1ZXMgdG8gdXNlIGRlcGVuZHMgb24gdGhlIG5hdHVyZSBvZiB0aGUgdXNlIGNhc2UgYmVoYXZpb3IgYXMgd2VsbCBhcyBvbiB0aGUgaW50ZW5kZWQgcmVhZGVyLiBUaGVzZSBkZXNjcmlwdGlvbnMgY2FuIGJlIGNvbWJpbmVkLiBBbiBleGFtcGxlIG9mIGEgdXNlIGNhc2Ugd2l0aCBhbiBhc3NvY2lhdGVkIHN0YXRlIG1hY2hpbmUgZGVzY3JpcHRpb24gaXMgc2hvd24gaW4gRmlndXJlIDQwNS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRNZW1iZXJzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZE1lbWJlciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJuYW1lc3BhY2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Vc2VDYXNlL2luY2x1ZGUgIy8vVXNlQ2FzZS9leHRlbmQgIy8vVXNlQ2FzZS9leHRlbnNpb25Qb2ludCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaW5jbHVkZSIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0luY2x1ZGUiIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0luY2x1ZGUvaW5jbHVkaW5nQ2FzZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXh0ZW5kIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRXh0ZW5kIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9FeHRlbmQvZXh0ZW5zaW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleHRlbnNpb25Qb2ludCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0V4dGVuc2lvblBvaW50IiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9FeHRlbnNpb25Qb2ludC91c2VDYXNlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdWJqZWN0IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhc3NpZmllciIgZU9wcG9zaXRlPSIjLy9DbGFzc2lmaWVyL3VzZUNhc2UiLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFeHRlbnNpb25Qb2ludCIgZVN1cGVyVHlwZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBbiBFeHRlbnNpb25Qb2ludCBpcyBhIGZlYXR1cmUgb2YgYSB1c2UgY2FzZSB0aGF0IGlkZW50aWZpZXMgYSBwb2ludCB3aGVyZSB0aGUgYmVoYXZpb3Igb2YgYSB1c2UgY2FzZSBjYW4gYmUgYXVnbWVudGVkIHdpdGggZWxlbWVudHMgb2YgYW5vdGhlciAoZXh0ZW5kaW5nKSB1c2UgY2FzZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idXNlQ2FzZSIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9Vc2VDYXNlIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vVXNlQ2FzZS9leHRlbnNpb25Qb2ludCIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkluY2x1ZGUiIGVTdXBlclR5cGVzPSIjLy9OYW1lZEVsZW1lbnQgIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U291cmNlcyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzb3VyY2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW5jbHVkZS9pbmNsdWRpbmdDYXNlIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRUYXJnZXRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InRhcmdldCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9JbmNsdWRlL2FkZGl0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbmNsdWRpbmdDYXNlIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1VzZUNhc2UiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9Vc2VDYXNlL2luY2x1ZGUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImFkZGl0aW9uIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1VzZUNhc2UiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRUYXJnZXRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBY3Rpdml0eUVkZ2UiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vUmVkZWZpbmFibGVFbGVtZW50Ij4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KQEAgLTMzOTAsNyArMzk4OSwyNyBAQAogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2YWx1ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiINCiAgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQXJ0aWZhY3QiIGVTdXBlclR5cGVzPSIjLy9DbGFzc2lmaWVyICMvL0RlcGxveWVkQXJ0aWZhY3QiPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IkNhbGxDb25jdXJyZW5jeUtpbmQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQ2FsbENvbmN1cnJlbmN5S2luZCBpcyBhbiBlbnVtZXJhdGlvbiB3aXRoIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbHM6IOKAoiBzZXF1ZW50aWFsIE5vIGNvbmN1cnJlbmN5IG1hbmFnZW1lbnQgbWVjaGFuaXNtIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3BlcmF0aW9uIGFuZCwgdGhlcmVmb3JlLCBjb25jdXJyZW5jeSBjb25mbGljdHMgbWF5IG9jY3VyLiBJbnN0YW5jZXMgdGhhdCBpbnZva2UgYSBiZWhhdmlvcmFsIGZlYXR1cmUgbmVlZCB0byBjb29yZGluYXRlIHNvIHRoYXQgb25seSBvbmUgaW52b2NhdGlvbiB0byBhIHRhcmdldCBvbiBhbnkgYmVoYXZpb3JhbCBmZWF0dXJlIG9jY3VycyBhdCBvbmNlLiDigKIgZ3VhcmRlZCBNdWx0aXBsZSBpbnZvY2F0aW9ucyBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZSBtYXkgb2NjdXIgc2ltdWx0YW5lb3VzbHkgdG8gb25lIGluc3RhbmNlLCBidXQgb25seSBvbmUgaXMgYWxsb3dlZCB0byBjb21tZW5jZS4gVGhlIG90aGVycyBhcmUgYmxvY2tlZCB1bnRpbCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGZpcnN0IGJlaGF2aW9yYWwgZmVhdHVyZSBpcyBjb21wbGV0ZS4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBzeXN0ZW0gZGVzaWduZXIgdG8gZW5zdXJlIHRoYXQgZGVhZGxvY2tzIGRvIG5vdCBvY2N1ciBkdWUgdG8gc2ltdWx0YW5lb3VzIGJsb2Nrcy4g4oCiIGNvbmN1cnJlbnQgTXVsdGlwbGUgaW52b2NhdGlvbnMgb2YgYSBiZWhhdmlvcmFsIGZlYXR1cmUgbWF5IG9jY3VyIHNpbXVsdGFuZW91c2x5IHRvIG9uZSBpbnN0YW5jZSBhbmQgYWxsIG9mIHRoZW0gbWF5IHByb2NlZWQgY29uY3VycmVudGx5LiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0ic2VxdWVudGlhbCIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9Imd1YXJkZWQiIHZhbHVlPSIxIi8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iY29uY3VycmVudCIgdmFsdWU9IjIiLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDYWxsVHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL01lc3NhZ2VUcmlnZ2VyIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im9wZXJhdGlvbiIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9PcGVyYXRpb24iLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNZXNzYWdlVHJpZ2dlciIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9UcmlnZ2VyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgbWVzc2FnZSB0cmlnZ2VyIHNwZWNpZmllcyB0aGUgYW4gb2JzZXJ2YWJsZSBldmVudCBjYXVzZWQgYnkgYSBlaXRoZXIgYSBjYWxsIG9yIGEgc2lnbmFsLiBNZXNzYWdlVHJpZ2dlciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDaGFuZ2VUcmlnZ2VyIiBlU3VwZXJUeXBlcz0iIy8vVHJpZ2dlciI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGNoYW5nZSB0cmlnZ2VyIHNwZWNpZmllcyBhbiBldmVudCB0aGF0IG9jY3VycyB3aGVuIGEgQm9vbGVhbi12YWx1ZWQgZXhwcmVzc2lvbiBiZWNvbWVzIHRydWUgYXMgYSByZXN1bHQgb2YgYSBjaGFuZ2UgaW4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCkBAIC0zNDAyLDMzICs0MDIxLDQwIEBACiAgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9BcnRpZmFjdC9tYW5pZmVzdGF0aW9uIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9DaGFuZ2VUcmlnZ2VyL2NoYW5nZUV4cHJlc3Npb24iLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldENsaWVudERlcGVuZGVuY2llcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50RGVwZW5kZW5jeSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJjbGllbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjaGFuZ2VFeHByZXNzaW9uIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL0FydGlmYWN0L21hbmlmZXN0YXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldEZlYXR1cmVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUcmlnZ2VyIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHRyaWdnZXIgc3BlY2lmaWVzIHRoZSBhbiBldmVudCB0aGF0IG1heSBjYXVzZSB0aGUgZXhlY3V0aW9uIG9mIGFuIGFzc29jaWF0ZWQgYmVoYXZpb3IuIEFuIGV2ZW50IGlzIG9mdGVuIHVsdGltYXRlbHkgY2F1c2VkIGJ5IHRoZSBleGVjdXRpb24gb2YgYW4gYWN0aW9uLCBidXQgbmVlZCBub3QgYmUuIFRyaWdnZXIgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwb3J0IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vUG9ydCIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlY2VwdGlvbiIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yYWxGZWF0dXJlIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgcmVjZXB0aW9uIGlzIGEgZGVjbGFyYXRpb24gc3RhdGluZyB0aGF0IGEgY2xhc3NpZmllciBpcyBwcmVwYXJlZCB0byByZWFjdCB0byB0aGUgcmVjZWlwdCBvZiBhIHNpZ25hbC4gQSByZWNlcHRpb24gZGVzaWduYXRlcyBhIHNpZ25hbCBhbmQgc3BlY2lmaWVzIHRoZSBleHBlY3RlZCBiZWhhdmlvcmFsIHJlc3BvbnNlLiBUaGUgZGV0YWlscyBvZiBoYW5kbGluZyBhIHNpZ25hbCBhcmUgc3BlY2lmaWVkIGJ5IHRoZSBiZWhhdmlvciBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY2VwdGlvbiBvciB0aGUgY2xhc3NpZmllciBpdHNlbGYuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNpZ25hbCIgZVR5cGU9IiMvL1NpZ25hbCIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNpZ25hbCIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBzaWduYWwgaXMgYSBzcGVjaWZpY2F0aW9uIG9mIHR5cGUgb2Ygc2VuZCByZXF1ZXN0IGluc3RhbmNlcyBjb21tdW5pY2F0ZWQgYmV0d2VlbiBvYmplY3RzLiBUaGUgcmVjZWl2aW5nIG9iamVjdCBoYW5kbGVzIHRoZSBzaWduYWwgaW5zdGFuY2UgYXMgc3BlY2lmaWVkIGJ5IGl0cyByZWNlcHRpb25zLiBUaGUgZGF0YSBjYXJyaWVkIGJ5IGEgc2VuZCByZXF1ZXN0IGFuZCBwYXNzZWQgdG8gaXQgYnkgdGhlIG9jY3VycmVuY2Ugb2YgdGhlIHNlbmQgaW52b2NhdGlvbiBldmVudCB0aGF0IGNhdXNlZCB0aGUgcmVxdWVzdCBpcyByZXByZXNlbnRlZCBhcyBhdHRyaWJ1dGVzIG9mIHRoZSBzaWduYWwgaW5zdGFuY2UuIEEgc2lnbmFsIGlzIGRlZmluZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgY2xhc3NpZmllcnMgaGFuZGxpbmcgdGhlIHNpZ25hbC4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QXR0cmlidXRlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iZmVhdHVyZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJmZWF0dXJpbmdDbGFzc2lmaWVyIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkZlYXR1cmUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJhdHRyaWJ1dGUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLlByb3BlcnR5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0FydGlmYWN0L293bmVkT3BlcmF0aW9uIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TaWduYWwvb3duZWRBdHRyaWJ1dGUiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkTWVtYmVycyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCkBAIC0zNDQxLDM1ICs0MDY3LDggQEAKICAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50Ii8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vQXJ0aWZhY3Qvb3duZWRPcGVyYXRpb24gIy8vQXJ0aWZhY3Qvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1NpZ25hbC9vd25lZEF0dHJpYnV0ZSIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QXR0cmlidXRlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImF0dHJpYnV0ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUHJvcGVydHkiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vQXJ0aWZhY3Qvb3duZWRBdHRyaWJ1dGUiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZpbGVOYW1lIiBlVHlwZT0iIy8vU3RyaW5nIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJuZXN0ZWRBcnRpZmFjdCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0FydGlmYWN0IiBjb250YWlubWVudD0idHJ1ZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWFuaWZlc3RhdGlvbiIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL01hbmlmZXN0YXRpb24iIHZvbGF0aWxlPSJ0cnVlIiBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL05hbWVkRWxlbWVudC9jbGllbnREZXBlbmRlbmN5Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0Q2xpZW50RGVwZW5kZW5jaWVzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im93bmVkT3BlcmF0aW9uIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9PcGVyYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRGZWF0dXJlcyIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRBdHRyaWJ1dGUiIHVwcGVyQm91bmQ9Ii0xIg0KICAgICAgICAgZVR5cGU9IiMvL1Byb3BlcnR5IiBjb250YWlubWVudD0idHJ1ZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KQEAgLTM0NzgsNzEgKzQwNzcsODkgQEAKICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTWFuaWZlc3RhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL0Fic3RyYWN0aW9uIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFN1cHBsaWVycyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2lnbmFsVHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL01lc3NhZ2VUcmlnZ2VyIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNpZ25hbCIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vU2lnbmFsIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVGltZVRyaWdnZXIiIGVTdXBlclR5cGVzPSIjLy9UcmlnZ2VyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgdGltZSB0cmlnZ2VyIHNwZWNpZmllcyBhIHRpbWUgZXZlbnQsIHdoaWNoIG1vZGVscyB0aGUgZXhwaXJhdGlvbiBvZiBhIHNwZWNpZmljIGRlYWRsaW5lLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InN1cHBsaWVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdXBlcnNldCIgcmVmZXJlbmNlcz0iIy8vTWFuaWZlc3RhdGlvbi91dGlsaXplZEVsZW1lbnQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ0YXJnZXQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9NYW5pZmVzdGF0aW9uL3V0aWxpemVkRWxlbWVudCIvPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vVGltZVRyaWdnZXIvd2hlbiIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idXRpbGl6ZWRFbGVtZW50IiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCIgdm9sYXRpbGU9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L3N1cHBsaWVyIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzUmVsYXRpdmUiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ3aGVuIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIg0KKyAgICAgICAgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVyZmFjZSIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QXR0cmlidXRlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImF0dHJpYnV0ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUHJvcGVydHkiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL293bmVkQXR0cmlidXRlIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQW55VHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL01lc3NhZ2VUcmlnZ2VyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkFuIEFueVRyaWdnZXIgZm9yIGEgZ2l2ZW4gc3RhdGUgc3BlY2lmaWVzIHRoYXQgdGhlIHRyYW5zaXRpb24gaXMgdHJpZ2dlcmVkIGZvciBhbGwgYXBwbGljYWJsZSBtZXNzYWdlIHRyaWdnZXJzIGV4Y2VwdCBmb3IgdGhvc2Ugc3BlY2lmaWVkIGV4cGxpY2l0bHkgb24gb3RoZXIgdHJhbnNpdGlvbnMgZm9yIHRoaXMgc3RhdGUuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIGNvbGxhYm9yYXRpb24gb2NjdXJyZW5jZSByZXByZXNlbnRzIG9uZSBwYXJ0aWN1bGFyIHVzZSBvZiBhIGNvbGxhYm9yYXRpb24gdG8gZXhwbGFpbiB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY2xhc3NpZmllci4gQSBjb2xsYWJvcmF0aW9uIG9jY3VycmVuY2UgaW5kaWNhdGVzIGEgc2V0IG9mIHJvbGVzIGFuZCBjb25uZWN0b3JzIHRoYXQgY29vcGVyYXRlIHdpdGhpbiB0aGUgY2xhc3NpZmllciBhY2NvcmRpbmcgdG8gYSBnaXZlbiBjb2xsYWJvcmF0aW9uLCBpbmRpY2F0ZWQgYnkgdGhlIHR5cGUgb2YgdGhlIGNvbGxhYm9yYXRpb24gb2NjdXJyZW5jZS4gVGhlcmUgbWF5IGJlIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIGEgZ2l2ZW4gY29sbGFib3JhdGlvbiB3aXRoaW4gYSBjbGFzc2lmaWVyLCBlYWNoIGludm9sdmluZyBhIGRpZmZlcmVudCBzZXQgb2Ygcm9sZXMgYW5kIGNvbm5lY3RvcnMuIEEgZ2l2ZW4gcm9sZSBvciBjb25uZWN0b3IgbWF5IGJlIGludm9sdmVkIGluIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIHRoZSBzYW1lIG9yIGRpZmZlcmVudCBjb2xsYWJvcmF0aW9ucy4gQXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMgbWFwIGZlYXR1cmVzIG9mIHRoZSBjb2xsYWJvcmF0aW9uIHR5cGUgdG8gZmVhdHVyZXMgaW4gdGhlIGNsYXNzaWZpZXIuIFRoZXNlIGRlcGVuZGVuY2llcyBpbmRpY2F0ZSB3aGljaCByb2xlIGluIHRoZSBjbGFzc2lmaWVyIHBsYXlzIHdoaWNoIHJvbGUgaW4gdGhlIGNvbGxhYm9yYXRpb24uICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkTWVtYmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL293bmVkQXR0cmlidXRlICMvL0ludGVyZmFjZS9vd25lZE9wZXJhdGlvbiAjLy9JbnRlcmZhY2UvbmVzdGVkQ2xhc3NpZmllciAjLy9JbnRlcmZhY2Uvb3duZWRSZWNlcHRpb24gIy8vSW50ZXJmYWNlL3Byb3RvY29sIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZS9yb2xlQmluZGluZyIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0RmVhdHVyZXMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InR5cGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9Db2xsYWJvcmF0aW9uIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyb2xlQmluZGluZyIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0RlcGVuZGVuY3kiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb2xsYWJvcmF0aW9uIiBlU3VwZXJUeXBlcz0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIgIy8vU3RydWN0dXJlZENsYXNzaWZpZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBjb2xsYWJvcmF0aW9uIGlzIHJlcHJlc2VudGVkIGFzIGEga2luZCBvZiBjbGFzc2lmaWVyIGFuZCBkZWZpbmVzIGEgc2V0IG9mIGNvb3BlcmF0aW5nIGVudGl0aWVzIHRvIGJlIHBsYXllZCBieSBpbnN0YW5jZXMgKGl0cyByb2xlcyksIGFzIHdlbGwgYXMgYSBzZXQgb2YgY29ubmVjdG9ycyB0aGF0IGRlZmluZSBjb21tdW5pY2F0aW9uIHBhdGhzIGJldHdlZW4gdGhlIHBhcnRpY2lwYXRpbmcgaW5zdGFuY2VzLiBUaGUgY29vcGVyYXRpbmcgZW50aXRpZXMgYXJlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBjb2xsYWJvcmF0aW9uIChzZWUg4oCcUHJvcGVydHnigJ0gb24gcGFnZSAxNjEpLiBBIGNvbGxhYm9yYXRpb24gc3BlY2lmaWVzIGEgdmlldyAob3IgcHJvamVjdGlvbikgb2YgYSBzZXQgb2YgY29vcGVyYXRpbmcgY2xhc3NpZmllcnMuIEl0IGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgbGlua3MgYmV0d2VlbiBpbnN0YW5jZXMgdGhhdCBwbGF5IHRoZSByb2xlcyBvZiB0aGUgY29sbGFib3JhdGlvbiwgYXMgd2VsbCBhcyB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgb2YgdGhlIGNsYXNzaWZpZXJzIHRoYXQgc3BlY2lmeSB0aGUgcGFydGljaXBhdGluZyBpbnN0YW5jZXMuIFNldmVyYWwgY29sbGFib3JhdGlvbnMgbWF5IGRlc2NyaWJlIGRpZmZlcmVudCBwcm9qZWN0aW9ucyBvZiB0aGUgc2FtZSBzZXQgb2YgY2xhc3NpZmllcnMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJvbGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJmZWF0dXJlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9ImZlYXR1cmluZ0NsYXNzaWZpZXIiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRmVhdHVyZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJvbGUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkNvbm5lY3RhYmxlRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9JbnRlcmZhY2Uvb3duZWRPcGVyYXRpb24gIy8vSW50ZXJmYWNlL293bmVkUmVjZXB0aW9uIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Db2xsYWJvcmF0aW9uL2NvbGxhYm9yYXRpb25Sb2xlIi8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb2xsYWJvcmF0aW9uUm9sZSIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0Nvbm5lY3RhYmxlRWxlbWVudCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlN0cnVjdHVyZWRDbGFzc2lmaWVyI2dldFJvbGVzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQb3J0IiBlU3VwZXJUeXBlcz0iIy8vUHJvcGVydHkiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iUG9ydHMgcmVwcmVzZW50IGludGVyYWN0aW9uIHBvaW50cyBiZXR3ZWVuIGEgY2xhc3NpZmllciBhbmQgaXRzIGVudmlyb25tZW50LiBUaGUgaW50ZXJmYWNlcyBhc3NvY2lhdGVkIHdpdGggYSBwb3J0IHNwZWNpZnkgdGhlIG5hdHVyZSBvZiB0aGUgaW50ZXJhY3Rpb25zIHRoYXQgbWF5IG9jY3VyIG92ZXIgYSBwb3J0LiBUaGUgcmVxdWlyZWQgaW50ZXJmYWNlcyBvZiBhIHBvcnQgY2hhcmFjdGVyaXplIHRoZSByZXF1ZXN0cyB3aGljaCBtYXkgYmUgbWFkZSBmcm9tIHRoZSBjbGFzc2lmaWVyIHRvIGl0cyBlbnZpcm9ubWVudCB0aHJvdWdoIHRoaXMgcG9ydC4gVGhlIHByb3ZpZGVkIGludGVyZmFjZXMgb2YgYSBwb3J0IGNoYXJhY3Rlcml6ZSByZXF1ZXN0cyB0byB0aGUgY2xhc3NpZmllciB0aGF0IGl0cyBlbnZpcm9ubWVudCBtYXkgbWFrZSB0aHJvdWdoIHRoaXMgcG9ydC4gQSBwb3J0IGhhcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoYXQgYW55IHJlcXVlc3RzIGFycml2aW5nIGF0IHRoaXMgcG9ydCBhcmUgaGFuZGxlZCBieSB0aGUgYmVoYXZpb3Igb2YgdGhlIGluc3RhbmNlIG9mIHRoZSBvd25pbmcgY2xhc3NpZmllciwgcmF0aGVyIHRoYW4gYmVpbmcgZm9yd2FyZGVkIHRvIGFueSBjb250YWluZWQgaW5zdGFuY2VzLCBpZiBhbnkuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KQEAgLTM1NTAsMTMwICs0MTY3LDI0NCBAQAogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW50ZXJmYWNlL3JlZGVmaW5lZEludGVyZmFjZSIvPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vUG9ydC9yZWRlZmluZWRQb3J0Ii8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvd25lZEF0dHJpYnV0ZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vUHJvcGVydHkiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRBdHRyaWJ1dGVzIiB2YWx1ZT0iIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvd25lZE9wZXJhdGlvbiIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vT3BlcmF0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZGVmaW5lZEludGVyZmFjZSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0ludGVyZmFjZSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0JlaGF2aW9yIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1NlcnZpY2UiIGVUeXBlPSIjLy9Cb29sZWFuIg0KKyAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVxdWlyZWQiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9JbnRlcmZhY2UiIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIg0KKyAgICAgICAgZGVyaXZlZD0idHJ1ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVkZWZpbmVkUG9ydCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BvcnQiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibmVzdGVkQ2xhc3NpZmllciIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQ2xhc3NpZmllciIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm92aWRlZCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0ludGVyZmFjZSIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiDQorICAgICAgICBkZXJpdmVkPSJ0cnVlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm90b2NvbCIgZVR5cGU9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW5jYXBzdWxhdGVkQ2xhc3NpZmllciIgYWJzdHJhY3Q9InRydWUiDQorICAgICAgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRDbGFzc2lmaWVyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkV4dGVuZHMgYSBjbGFzc2lmaWVyIHdpdGggdGhlIGFiaWxpdHkgdG8gb3duIHBvcnRzIGFzIHNwZWNpZmljIGFuZCB0eXBlIGNoZWNrZWQgaW50ZXJhY3Rpb24gcG9pbnRzLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRGZWF0dXJlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iZmVhdHVyZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJmZWF0dXJpbmdDbGFzc2lmaWVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkZlYXR1cmUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im93bmVkUmVjZXB0aW9uIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUmVjZXB0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyL293bmVkUG9ydCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRNZW1iZXJzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZE1lbWJlciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJuYW1lc3BhY2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyL293bmVkUG9ydCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRQb3J0IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUG9ydCIgY29udGFpbm1lbnQ9InRydWUiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiB2YWx1ZT0iIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm90b2NvbCIgZVR5cGU9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIg0KLSAgICAgICAgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlZhcmlhYmxlIiBlU3VwZXJUeXBlcz0iIy8vQ29ubmVjdGFibGVFbGVtZW50ICMvL1R5cGVkRWxlbWVudCAjLy9NdWx0aXBsaWNpdHlFbGVtZW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgdmFyaWFibGUgaXMgY29uc2lkZXJlZCBhIGNvbm5lY3RhYmxlIGVsZW1lbnQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1ZhcmlhYmxlL3Njb3BlIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzY29wZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiDQorICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS92YXJpYWJsZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0cnVjdHVyZWRBY3Rpdml0eU5vZGUiIGVTdXBlclR5cGVzPSIjLy9BY3Rpb24gIy8vTmFtZXNwYWNlICMvL0FjdGl2aXR5R3JvdXAiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QWN0aXZpdHkiIGVUeXBlPSIjLy9BY3Rpdml0eSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJhY3Rpdml0eSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJzdHJ1Y3R1cmVkTm9kZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eU5vZGUvYWN0aXZpdHkgIy8vQWN0aXZpdHlHcm91cC9hY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ij4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eU5vZGUjZ2V0QWN0aXZpdHkiIHZhbHVlPSIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldEFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9InNldEFjdGl2aXR5Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImFjdGl2aXR5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9InN0cnVjdHVyZWROb2RlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0FjdGl2aXR5Tm9kZS9hY3Rpdml0eSAjLy9BY3Rpdml0eUdyb3VwL2FjdGl2aXR5R3JvdXBfYWN0aXZpdHkiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5Tm9kZSNnZXRBY3Rpdml0eSIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuZXdBY3Rpdml0eSIgZVR5cGU9IiMvL0FjdGl2aXR5Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5IiBlVHlwZT0iIy8vQWN0aXZpdHkiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJhY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Imdyb3VwIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL2dldEFjdGl2aXR5Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iYWN0aXZpdHlHcm91cF9hY3Rpdml0eSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJncm91cCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHkiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9zZXRBY3Rpdml0eSIvPg0KKyAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuZXdBY3Rpdml0eUdyb3VwX2FjdGl2aXR5IiBlVHlwZT0iIy8vQWN0aXZpdHkiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkTWVtYmVycyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRNZW1iZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ibmFtZXNwYWNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS92YXJpYWJsZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idmFyaWFibGUiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9WYXJpYWJsZSIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vVmFyaWFibGUvc2NvcGUiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lZE5vZGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlOb2RlL2luU3RydWN0dXJlZE5vZGUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0FjdGl2aXR5R3JvdXAvZ2V0Q29udGFpbmVkTm9kZXMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkTm9kZXMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29udGFpbmVkRWRnZSIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlFZGdlIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eUVkZ2UvaW5TdHJ1Y3R1cmVkTm9kZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlHcm91cC9nZXRDb250YWluZWRFZGdlcyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWRFZGdlcyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtdXN0SXNvbGF0ZSIgZVR5cGU9IiMvL0Jvb2xlYW4iLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbXBsZW1lbnRhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL1JlYWxpemF0aW9uIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFN1cHBsaWVycyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3VwcGxpZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1cGVyc2V0IiByZWZlcmVuY2VzPSIjLy9JbXBsZW1lbnRhdGlvbi9jb250cmFjdCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0VGFyZ2V0cyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ0YXJnZXQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vSW1wbGVtZW50YXRpb24vY29udHJhY3QiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldENsaWVudHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbmRpdGlvbmFsTm9kZSIgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9ImNsaWVudERlcGVuZGVuY3kiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL0ltcGxlbWVudGF0aW9uL2ltcGxlbWVudGluZ0NsYXNzaWZpZXIiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0NvbmRpdGlvbmFsTm9kZS9jbGF1c2UiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNvdXJjZXMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPdXRwdXRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzb3VyY2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im91dHB1dCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuT3V0cHV0UGluIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0ltcGxlbWVudGF0aW9uL2ltcGxlbWVudGluZ0NsYXNzaWZpZXIiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0NvbmRpdGlvbmFsTm9kZS9yZXN1bHQiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRyYWN0IiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL0ludGVyZmFjZSIgdm9sYXRpbGU9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L3N1cHBsaWVyIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzRGV0ZXJtaW5hdGUiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0Fzc3VyZWQiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjbGF1c2UiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9DbGF1c2UiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImltcGxlbWVudGluZ0NsYXNzaWZpZXIiDQotICAgICAgICBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiDQotICAgICAgICBlT3Bwb3NpdGU9IiMvL0JlaGF2aW9yZWRDbGFzc2lmaWVyL2ltcGxlbWVudGF0aW9uIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyIgcmVmZXJlbmNlcz0iIy8vRGVwZW5kZW5jeS9jbGllbnQiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0Q2xpZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiIHZhbHVlPSIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc3VsdCIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vT3V0cHV0UGluIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBY3RvciIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiLz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXh0ZW5kIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50ICMvL0RpcmVjdGVkUmVsYXRpb25zaGlwIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNsYXVzZSIgZVN1cGVyVHlwZXM9IiMvL0VsZW1lbnQiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGVzdCIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYm9keSIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icHJlZGVjZXNzb3JDbGF1c2UiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9DbGF1c2UiIGVPcHBvc2l0ZT0iIy8vQ2xhdXNlL3N1Y2Nlc3NvckNsYXVzZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3VjY2Vzc29yQ2xhdXNlIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhdXNlIiBlT3Bwb3NpdGU9IiMvL0NsYXVzZS9wcmVkZWNlc3NvckNsYXVzZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVjaWRlciIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9PdXRwdXRQaW4iLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJvZHlPdXRwdXQiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9PdXRwdXRQaW4iLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJMb29wTm9kZSIgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3V0cHV0cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvdXRwdXQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk91dHB1dFBpbiIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9FeHRlbmQvZXh0ZW5kZWRDYXNlIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTb3VyY2VzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InNvdXJjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9FeHRlbmQvZXh0ZW5zaW9uIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Mb29wTm9kZS9yZXN1bHQiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtMzY4NiwxMDMgKzQ0MTcsNTEgQEAKICAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4dGVuZC9jb25kaXRpb24iLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0xvb3BOb2RlL2xvb3BWYXJpYWJsZSIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXh0ZW5kZWRDYXNlIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1VzZUNhc2UiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0SW5wdXRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJpbnB1dCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vTG9vcE5vZGUvbG9vcFZhcmlhYmxlSW5wdXQiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzVGVzdGVkRmlyc3QiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJib2R5UGFydCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2V0dXBQYXJ0IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWNpZGVyIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL091dHB1dFBpbiIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGVzdCIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVzdWx0IiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSIjLy9PdXRwdXRQaW4iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuc2lvbiIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9Vc2VDYXNlIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vVXNlQ2FzZS9leHRlbmQiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbmRpdGlvbiIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJsb29wVmFyaWFibGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL091dHB1dFBpbiIgY29udGFpbm1lbnQ9InRydWUiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXh0ZW5zaW9uTG9jYXRpb24iIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0V4dGVuc2lvblBvaW50Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVXNlQ2FzZSIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yZWRDbGFzc2lmaWVyIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkTWVtYmVycyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRNZW1iZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ibmFtZXNwYWNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vVXNlQ2FzZS9pbmNsdWRlICMvL1VzZUNhc2UvZXh0ZW5kICMvL1VzZUNhc2UvZXh0ZW5zaW9uUG9pbnQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImluY2x1ZGUiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9JbmNsdWRlIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9JbmNsdWRlL2luY2x1ZGluZ0Nhc2UiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYm9keU91dHB1dCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL091dHB1dFBpbiIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibG9vcFZhcmlhYmxlSW5wdXQiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0lucHV0UGluIiBjb250YWlubWVudD0idHJ1ZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXh0ZW5kIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRXh0ZW5kIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9FeHRlbmQvZXh0ZW5zaW9uIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleHRlbnNpb25Qb2ludCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0V4dGVuc2lvblBvaW50IiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9FeHRlbnNpb25Qb2ludC91c2VDYXNlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdWJqZWN0IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ2xhc3NpZmllciIgZU9wcG9zaXRlPSIjLy9DbGFzc2lmaWVyL3VzZUNhc2UiLz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFeHRlbnNpb25Qb2ludCIgZVN1cGVyVHlwZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudCI+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ1c2VDYXNlIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1VzZUNhc2UiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9Vc2VDYXNlL2V4dGVuc2lvblBvaW50Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW5jbHVkZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCAjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTb3VyY2VzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InNvdXJjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9JbmNsdWRlL2luY2x1ZGluZ0Nhc2UiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0luY2x1ZGUvYWRkaXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImluY2x1ZGluZ0Nhc2UiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vVXNlQ2FzZSIgdHJhbnNpZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL1VzZUNhc2UvaW5jbHVkZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYWRkaXRpb24iIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vVXNlQ2FzZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpb24jZ2V0SW5wdXRzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUZW1wbGF0ZVNpZ25hdHVyZSIgZVN1cGVyVHlwZXM9IiMvL0VsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBUZW1wbGF0ZVNpZ25hdHVyZSBpcyBvd25lZCBieSBhIFRlbXBsYXRlYWJsZUVsZW1lbnQgYW5kIGhhcyBvbmUgb3IgbW9yZSBUZW1wbGF0ZVBhcmFtZXRlcnMgdGhhdCBkZWZpbmUgdGhlIHNpZ25hdHVyZSBmb3IgYmluZGluZyB0aGlzIHRlbXBsYXRlLiBBIFRlbXBsYXRlU2lnbmF0dXJlIG1heSByZWZlcmVuY2UgYSBzZXQgb2YgbmVzdGVkIHRlbXBsYXRlIHNpZ25hdHVyZXMgdG8gcmVmbGVjdCB0aGUgaGllcmFyY2hpY2FsIG5hdHVyZSBvZiBhIHRlbXBsYXRlLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTM4MzMsNiArNDUxMiw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRlbXBsYXRlUGFyYW1ldGVyIiBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJUZW1wbGF0ZVBhcmFtZXRlciByZWZlcmVuY2VzIGEgUGFyYW1ldGVyYWJsZUVsZW1lbnQgd2hpY2ggaXMgZXhwb3NlZCBhcyBhIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgaW4gdGhlIGNvbnRhaW5pbmcgdGVtcGxhdGUuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTM4OTAsNiArNDU3Miw5IEBACiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUZW1wbGF0ZWFibGVFbGVtZW50IiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJUZW1wbGF0ZWFibGVFbGVtZW50IG1heSBjb250YWluIGEgdGVtcGxhdGUgc2lnbmF0dXJlIHdoaWNoIHNwZWNpZmllcyB0aGUgZm9ybWFsIHRlbXBsYXRlIHBhcmFtZXRlcnMuIEEgVGVtcGxhdGVhYmxlRWxlbWVudCB0aGF0IGNvbnRhaW5zIGEgdGVtcGxhdGUgc2lnbmF0dXJlIGlzIG9mdGVuIHJlZmVycmVkIHRvIGFzIGEgdGVtcGxhdGUuIFRlbXBsYXRlYWJsZUVsZW1lbnQgbWF5IGNvbnRhaW4gYmluZGluZ3MgdG8gdGVtcGxhdGVzIHRoYXQgZGVzY3JpYmUgaG93IHRoZSB0ZW1wbGF0ZWFibGUgZWxlbWVudCBpcyBjb25zdHJ1Y3RlZCBieSByZXBsYWNpbmcgdGhlIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIHdpdGggYWN0dWFsIHBhcmFtZXRlcnMuIEEgVGVtcGxhdGVhYmxlRWxlbWVudCBjb250YWluaW5nIGJpbmRpbmdzIGlzIG9mdGVuIHJlZmVycmVkIHRvIGFzIGEgYm91bmQgZWxlbWVudC4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0icGFyYW1ldGVyYWJsZUVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9TZXQiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iYm9keSIgdmFsdWU9InRyeSB7JiN4RDsmI3hBOyYjeDk7amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIG1ldGhvZCA9IGdldENsYXNzKCkuZ2V0TWV0aG9kKCZxdW90O3BhcmFtZXRlcmFibGVFbGVtZW50cyZxdW90OywgbnVsbCk7IC8vJE5PTi1OTFMtMSQmI3hEOyYjeEE7JiN4OTtTZXQgcmVzdWx0ID0gKFNldCkgZ2V0Q2FjaGVBZGFwdGVyKCkuZ2V0KHRoaXMsIG1ldGhvZCk7JiN4RDsmI3hBOyYjeEQ7JiN4QTsmI3g5O2lmIChudWxsID09IHJlc3VsdCkgeyYjeEQ7JiN4QTsmI3g5OyYjeDk7cmVzdWx0ID0gamF2YS51dGlsLkNvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5UZW1wbGF0ZWFibGVFbGVtZW50T3BlcmF0aW9ucy5wYXJhbWV0ZXJhYmxlRWxlbWVudHModGhpcykpOyYjeEQ7JiN4QTsmI3g5OyYjeDk7Z2V0Q2FjaGVBZGFwdGVyKCkucHV0KHRoaXMsIG1ldGhvZCwgcmVzdWx0KTsmI3hEOyYjeEE7JiN4OTt9JiN4RDsmI3hBOyYjeEQ7JiN4QTsmI3g5O3JldHVybiByZXN1bHQ7JiN4RDsmI3hBO30gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7JiN4RDsmI3hBOyYjeDk7cmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlRlbXBsYXRlYWJsZUVsZW1lbnRPcGVyYXRpb25zLnBhcmFtZXRlcmFibGVFbGVtZW50cyh0aGlzKTsmI3hEOyYjeEE7fSIvPg0KQEAgLTM5NjMsNiArNDY0OCw5IEBACiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQYXJhbWV0ZXJhYmxlRWxlbWVudCIgYWJzdHJhY3Q9InRydWUiDQogICAgICAgZVN1cGVyVHlwZXM9IiMvL0VsZW1lbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBQYXJhbWV0ZXJhYmxlRWxlbWVudCBjYW4gYmUgcmVmZXJlbmNlZCBieSBhIFRlbXBsYXRlUGFyYW1ldGVyIHdoZW4gZGVmaW5pbmcgYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIGZvciBhIHRlbXBsYXRlLiBBIFBhcmFtZXRlcmFibGVFbGVtZW50IGNhbiBiZSByZWZlcmVuY2VkIGJ5IGEgVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24gd2hlbiB1c2VkIGFzIGFuIGFjdHVhbCBwYXJhbWV0ZXIgaW4gYSBiaW5kaW5nIG9mIGEgdGVtcGxhdGUuIFBhcmFtZXRlcmFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZXIiIGVUeXBlPSIjLy9FbGVtZW50Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtMzk5MCw2ICs0Njc4LDkgQEAKICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVGVtcGxhdGVCaW5kaW5nIiBlU3VwZXJUeXBlcz0iIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iVGVtcGxhdGVCaW5kaW5nIGlzIGEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIGZyb20gYSBib3VuZCB0ZW1wbGF0ZWFibGUgZWxlbWVudCB0byB0aGUgdGVtcGxhdGUgc2lnbmF0dXJlIG9mIHRoZSB0YXJnZXQgdGVtcGxhdGUuIEEgVGVtcGxhdGVCaW5kaW5nIG93bnMgYSBzZXQgb2YgdGVtcGxhdGUgcGFyYW1ldGVyIHN1YnN0aXR1dGlvbnMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTQwNTgsNiArNDc0OSw5IEBACiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uIiBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbiBhc3NvY2lhdGVzIG9uZSBvciBtb3JlIGFjdHVhbCBwYXJhbWV0ZXJzIHdpdGggYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhIFRlbXBsYXRlQmluZGluZy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZXIiIGVUeXBlPSIjLy9FbGVtZW50Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtNDEwNCwxMjAgKzQ3OTgsMzIgQEAKICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29sbGFib3JhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yZWRDbGFzc2lmaWVyICMvL1N0cnVjdHVyZWRDbGFzc2lmaWVyIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJvbGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icm9sZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ29ubmVjdGFibGVFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0NvbGxhYm9yYXRpb24vY29sbGFib3JhdGlvblJvbGUiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbGxhYm9yYXRpb25Sb2xlIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQ29ubmVjdGFibGVFbGVtZW50Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuU3RydWN0dXJlZENsYXNzaWZpZXIjZ2V0Um9sZXMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlciIgZVN1cGVyVHlwZXM9IiMvL1RlbXBsYXRlUGFyYW1ldGVyIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9Ik9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGFuIE9wZXJhdGlvbi4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIiBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVQYXJhbWV0ZXIiLz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyIiBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVQYXJhbWV0ZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQ2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGEgQ2xhc3NpZmllciBpbiBpdHMgY2FwYWNpdHkgb2YgYmVpbmcgYSBraW5kIG9mIFBhcmFtZXRlcmFibGVFbGVtZW50LiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhbGxvd1N1YnN0aXR1dGFibGUiIGVUeXBlPSIjLy9Cb29sZWFuIg0KICAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBhcmFtZXRlcmFibGVDbGFzc2lmaWVyIiBhYnN0cmFjdD0idHJ1ZSINCiAgICAgICBlU3VwZXJUeXBlcz0iIy8vQ2xhc3NpZmllciIvPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlIiBlU3VwZXJUeXBlcz0iIy8vUmVkZWZpbmFibGVFbGVtZW50ICMvL1RlbXBsYXRlU2lnbmF0dXJlIi8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmUiIGVTdXBlclR5cGVzPSIjLy9SZWRlZmluYWJsZUVsZW1lbnQgIy8vVGVtcGxhdGVTaWduYXR1cmUiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iUmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZSBzcGVjaWFsaXplcyBib3RoIFRlbXBsYXRlU2lnbmF0dXJlIGFuZCBSZWRlZmluYWJsZUVsZW1lbnQgaW4gb3JkZXIgdG8gYWxsb3cgdGhlIGFkZGl0aW9uIG9mIG5ldyBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVycyBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpYWxpemluZyB0ZW1wbGF0ZSBDbGFzc2lmaWVyLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVGVtcGxhdGVhYmxlQ2xhc3NpZmllciIgYWJzdHJhY3Q9InRydWUiDQogICAgICAgZVN1cGVyVHlwZXM9IiMvL0NsYXNzaWZpZXIiLz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIiDQotICAgICAgZVN1cGVyVHlwZXM9IiMvL1RlbXBsYXRlUGFyYW1ldGVyIi8+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbGxhYm9yYXRpb25PY2N1cnJlbmNlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZS9yb2xlQmluZGluZyIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHlwZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL0NvbGxhYm9yYXRpb24iLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJvbGVCaW5kaW5nIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRGVwZW5kZW5jeSIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBvcnQiIGVTdXBlclR5cGVzPSIjLy9Qcm9wZXJ0eSI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJlZGVmaW5lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qb3J0L3JlZGVmaW5lZFBvcnQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzQmVoYXZpb3IiIGVUeXBlPSIjLy9Cb29sZWFuIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzU2VydmljZSIgZVR5cGU9IiMvL0Jvb2xlYW4iDQotICAgICAgICBkZWZhdWx0VmFsdWVMaXRlcmFsPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZXF1aXJlZCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0ludGVyZmFjZSIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiDQotICAgICAgICBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWRlZmluZWRQb3J0IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUG9ydCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCNnZXRSZWRlZmluZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm92aWRlZCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0ludGVyZmFjZSIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiDQotICAgICAgICBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm90b2NvbCIgZVR5cGU9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW5jYXBzdWxhdGVkQ2xhc3NpZmllciIgYWJzdHJhY3Q9InRydWUiDQotICAgICAgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRDbGFzc2lmaWVyIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldEZlYXR1cmVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJmZWF0dXJlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9ImZlYXR1cmluZ0NsYXNzaWZpZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRmVhdHVyZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0VuY2Fwc3VsYXRlZENsYXNzaWZpZXIvb3duZWRQb3J0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkTWVtYmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0VuY2Fwc3VsYXRlZENsYXNzaWZpZXIvb3duZWRQb3J0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvd25lZFBvcnQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Qb3J0IiBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgICBlU3VwZXJUeXBlcz0iIy8vVGVtcGxhdGVQYXJhbWV0ZXIiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIgaXMgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgd2hlcmUgdGhlIHBhcmFtZXRlcmVkIGVsZW1lbnQgaXMgYSBDb25uZWN0YWJsZUVsZW1lbnQuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbnRlcmFjdGlvbiIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yICMvL0ludGVyYWN0aW9uRnJhZ21lbnQiPg0KICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQpAQCAtNDQ4OCw4NyArNTA5NCwyNCBAQAogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdG9wIiBlU3VwZXJUeXBlcz0iIy8vRXZlbnRPY2N1cnJlbmNlIi8+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlZhcmlhYmxlIiBlU3VwZXJUeXBlcz0iIy8vQ29ubmVjdGFibGVFbGVtZW50ICMvL1R5cGVkRWxlbWVudCAjLy9NdWx0aXBsaWNpdHlFbGVtZW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0YXRlTWFjaGluZSIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yIj4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1ZhcmlhYmxlL3Njb3BlIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzY29wZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiDQotICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS92YXJpYWJsZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0cnVjdHVyZWRBY3Rpdml0eU5vZGUiIGVTdXBlclR5cGVzPSIjLy9BY3Rpb24gIy8vTmFtZXNwYWNlICMvL0FjdGl2aXR5R3JvdXAiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QWN0aXZpdHkiIGVUeXBlPSIjLy9BY3Rpdml0eSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50Ii8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImFjdGl2aXR5Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9InN0cnVjdHVyZWROb2RlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RhdGVNYWNoaW5lL2V4dGVuZGVkU3RhdGVNYWNoaW5lIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHkiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlOb2RlL2FjdGl2aXR5ICMvL0FjdGl2aXR5R3JvdXAvYWN0aXZpdHlHcm91cF9hY3Rpdml0eSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlOb2RlI2dldEFjdGl2aXR5IiB2YWx1ZT0iIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5IiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRBY3Rpdml0eSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbml0aW9uQ29udGV4dCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJhY3Rpdml0eSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJzdHJ1Y3R1cmVkTm9kZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eU5vZGUvYWN0aXZpdHkgIy8vQWN0aXZpdHlHcm91cC9hY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eU5vZGUjZ2V0QWN0aXZpdHkiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldEFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3QWN0aXZpdHkiIGVUeXBlPSIjLy9BY3Rpdml0eSIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSIgZVR5cGU9IiMvL0FjdGl2aXR5Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iYWN0aXZpdHlHcm91cF9hY3Rpdml0eSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJncm91cCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHkiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9nZXRBY3Rpdml0eSIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0iZ3JvdXAiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZWQiIHJlZmVyZW5jZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvc2V0QWN0aXZpdHkiLz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3QWN0aXZpdHlHcm91cF9hY3Rpdml0eSIgZVR5cGU9IiMvL0FjdGl2aXR5Ii8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RhdGVNYWNoaW5lL3N0YXRlTWFjaGluZV9yZWRlZmluaXRpb25Db250ZXh0Ii8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtNDU4MSw4OSArNTEyNCw1NCBAQAogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL3ZhcmlhYmxlIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TdGF0ZU1hY2hpbmUvcmVnaW9uICMvL1N0YXRlTWFjaGluZS9jb25uZWN0aW9uUG9pbnQiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InZhcmlhYmxlIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVmFyaWFibGUiIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL1ZhcmlhYmxlL3Njb3BlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZ2lvbiIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1JlZ2lvbiIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vUmVnaW9uL3N0YXRlTWFjaGluZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29udGFpbmVkTm9kZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eU5vZGUvaW5TdHJ1Y3R1cmVkTm9kZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlHcm91cC9nZXRDb250YWluZWROb2RlcyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWROb2RlcyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb250YWluZWRFZGdlIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9BY3Rpdml0eUVkZ2UiIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0FjdGl2aXR5RWRnZS9pblN0cnVjdHVyZWROb2RlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eUdyb3VwL2dldENvbnRhaW5lZEVkZ2VzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldENvbnRhaW5lZEVkZ2VzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im11c3RJc29sYXRlIiBlVHlwZT0iIy8vQm9vbGVhbiIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbmRpdGlvbmFsTm9kZSIgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0NvbmRpdGlvbmFsTm9kZS9jbGF1c2UiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE91dHB1dHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im91dHB1dCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuT3V0cHV0UGluIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0NvbmRpdGlvbmFsTm9kZS9yZXN1bHQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzRGV0ZXJtaW5hdGUiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0Fzc3VyZWQiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjbGF1c2UiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9DbGF1c2UiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb25Qb2ludCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BzZXVkb3N0YXRlIiBjb250YWlubWVudD0idHJ1ZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVzdWx0IiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9PdXRwdXRQaW4iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aW9uI2dldE91dHB1dHMiIHZhbHVlPSIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuZGVkU3RhdGVNYWNoaW5lIiBlVHlwZT0iIy8vU3RhdGVNYWNoaW5lIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhdGVNYWNoaW5lX3JlZGVmaW5pdGlvbkNvbnRleHQiDQorICAgICAgICBlVHlwZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIvb3duZWRTdGF0ZU1hY2hpbmUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudC9yZWRlZmluaXRpb25Db250ZXh0Ij4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiDQorICAgICAgICAgICAgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2xhdXNlIiBlU3VwZXJUeXBlcz0iIy8vRWxlbWVudCI+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0ZXN0IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJib2R5IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcmVkZWNlc3NvckNsYXVzZSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0NsYXVzZSIgZU9wcG9zaXRlPSIjLy9DbGF1c2Uvc3VjY2Vzc29yQ2xhdXNlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdWNjZXNzb3JDbGF1c2UiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9DbGF1c2UiIGVPcHBvc2l0ZT0iIy8vQ2xhdXNlL3ByZWRlY2Vzc29yQ2xhdXNlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWNpZGVyIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL091dHB1dFBpbiIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYm9keU91dHB1dCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL091dHB1dFBpbiIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikxvb3BOb2RlIiBlU3VwZXJUeXBlcz0iIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPdXRwdXRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVnaW9uIiBlU3VwZXJUeXBlcz0iIy8vTmFtZXNwYWNlICMvL1JlZGVmaW5hYmxlRWxlbWVudCI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvdXRwdXQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk91dHB1dFBpbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbml0aW9uQ29udGV4dCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Mb29wTm9kZS9yZXN1bHQiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9SZWRlZmluYWJsZUVsZW1lbnQvcmVkZWZpbml0aW9uQ29udGV4dCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIg0KKyAgICAgICAgICAgIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9SZWdpb24vZXh0ZW5kZWRSZWdpb24iLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtNDY3Niw1OCArNTE4NCw3NiBAQAogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vTG9vcE5vZGUvbG9vcFZhcmlhYmxlIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9SZWdpb24vc3VidmVydGV4ICMvL1JlZ2lvbi90cmFuc2l0aW9uIi8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRJbnB1dHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TmFtZXNwYWNlIiBlVHlwZT0iIy8vTmFtZXNwYWNlIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJpbnB1dCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZWRNZW1iZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0xvb3BOb2RlL2xvb3BWYXJpYWJsZUlucHV0Ii8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9SZWdpb24vc3RhdGVNYWNoaW5lICMvL1JlZ2lvbi9zdGF0ZSIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNUZXN0ZWRGaXJzdCIgZVR5cGU9IiMvL0Jvb2xlYW4iLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJvZHlQYXJ0IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzZXR1cFBhcnQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9BY3Rpdml0eU5vZGUiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlY2lkZXIiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vT3V0cHV0UGluIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0ZXN0IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZXN1bHQiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9IiMvL091dHB1dFBpbiIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpb24jZ2V0T3V0cHV0cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJsb29wVmFyaWFibGUiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9IiMvL091dHB1dFBpbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3VidmVydGV4IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVmVydGV4IiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9WZXJ0ZXgvY29udGFpbmVyIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJvZHlPdXRwdXQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9PdXRwdXRQaW4iLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Imxvb3BWYXJpYWJsZUlucHV0IiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9JbnB1dFBpbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHJhbnNpdGlvbiIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1RyYW5zaXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL1RyYW5zaXRpb24vY29udGFpbmVyIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aW9uI2dldElucHV0cyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGF0ZU1hY2hpbmUiIGVUeXBlPSIjLy9TdGF0ZU1hY2hpbmUiDQorICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU3RhdGVNYWNoaW5lL3JlZ2lvbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXROYW1lc3BhY2UiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhdGUiIGVUeXBlPSIjLy9TdGF0ZSINCisgICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9TdGF0ZS9yZWdpb24iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0TmFtZXNwYWNlIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuZGVkUmVnaW9uIiBlVHlwZT0iIy8vUmVnaW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iQ2FsbENvbmN1cnJlbmN5S2luZCI+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0ic2VxdWVudGlhbCIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9Imd1YXJkZWQiIHZhbHVlPSIxIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0iY29uY3VycmVudCIgdmFsdWU9IjIiLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHNldWRvc3RhdGUiIGVTdXBlclR5cGVzPSIjLy9WZXJ0ZXgiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ia2luZCIgZVR5cGU9IiMvL1BzZXVkb3N0YXRlS2luZCIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNhbGxUcmlnZ2VyIiBlU3VwZXJUeXBlcz0iIy8vTWVzc2FnZVRyaWdnZXIiPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3BlcmF0aW9uIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL09wZXJhdGlvbiIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1lc3NhZ2VUcmlnZ2VyIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL1RyaWdnZXIiLz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2hhbmdlVHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL1RyaWdnZXIiPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdGF0ZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVzcGFjZSAjLy9SZWRlZmluYWJsZUVsZW1lbnQgIy8vVmVydGV4Ij4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5pdGlvbkNvbnRleHRzIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJlZGVmaW5pdGlvbkNvbnRleHQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudC9yZWRlZmluaXRpb25Db250ZXh0Ij4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiDQorICAgICAgICAgICAgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVkZWZpbmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWRlZmluZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZWQiIHJlZmVyZW5jZXM9IiMvL1N0YXRlL3JlZGVmaW5lZFN0YXRlIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTQ3MzksMzEgKzUyNjUsNyBAQAogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vQ2hhbmdlVHJpZ2dlci9jaGFuZ2VFeHByZXNzaW9uIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjaGFuZ2VFeHByZXNzaW9uIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRyaWdnZXIiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ij4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBvcnQiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9Qb3J0Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVjZXB0aW9uIiBlU3VwZXJUeXBlcz0iIy8vQmVoYXZpb3JhbEZlYXR1cmUiPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2lnbmFsIiBlVHlwZT0iIy8vU2lnbmFsIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2lnbmFsIiBlU3VwZXJUeXBlcz0iIy8vQ2xhc3NpZmllciI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRBdHRyaWJ1dGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iYXR0cmlidXRlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5Qcm9wZXJ0eSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TaWduYWwvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1N0YXRlL2Nvbm5lY3Rpb24gIy8vU3RhdGUvZW50cnkgIy8vU3RhdGUvZXhpdCAjLy9TdGF0ZS9kb0FjdGl2aXR5ICMvL1N0YXRlL3N0YXRlSW52YXJpYW50Ii8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQpAQCAtNDc3Niw2MiArNTI3OCw2MiBAQAogICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TaWduYWwvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1N0YXRlL3JlZ2lvbiIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3duZWRBdHRyaWJ1dGUiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9IiMvL1Byb3BlcnR5IiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0NvbXBvc2l0ZSIgZVR5cGU9IiMvL0Jvb2xlYW4iDQorICAgICAgICBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNPcnRob2dvbmFsIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1NpbXBsZSIgZVR5cGU9IiMvL0Jvb2xlYW4iDQorICAgICAgICBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNTdWJtYWNoaW5lU3RhdGUiIGVUeXBlPSIjLy9Cb29sZWFuIg0KKyAgICAgICAgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiIGRlcml2ZWQ9InRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN1Ym1hY2hpbmUiIGVUeXBlPSIjLy9TdGF0ZU1hY2hpbmUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb24iIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Db25uZWN0aW9uUG9pbnRSZWZlcmVuY2UiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRBdHRyaWJ1dGVzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZGVmaW5lZFN0YXRlIiBlVHlwZT0iIy8vU3RhdGUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCNnZXRSZWRlZmluZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWZlcnJhYmxlVHJpZ2dlciIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1RyaWdnZXIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZ2lvbiIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1JlZ2lvbiIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vUmVnaW9uL3N0YXRlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2lnbmFsVHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL01lc3NhZ2VUcmlnZ2VyIj4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNpZ25hbCIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vU2lnbmFsIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVGltZVRyaWdnZXIiIGVTdXBlclR5cGVzPSIjLy9UcmlnZ2VyIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJlbnRyeSIgZVR5cGU9IiMvL0FjdGl2aXR5Ig0KKyAgICAgICAgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1RpbWVUcmlnZ2VyL3doZW4iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzUmVsYXRpdmUiIGVUeXBlPSIjLy9Cb29sZWFuIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ3aGVuIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleGl0IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQorICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkb0FjdGl2aXR5IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQorICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGF0ZUludmFyaWFudCIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQogICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQW55VHJpZ2dlciIgZVN1cGVyVHlwZXM9IiMvL01lc3NhZ2VUcmlnZ2VyIi8+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4cGFuc2lvbk5vZGUiIGVTdXBlclR5cGVzPSIjLy9PYmplY3ROb2RlIj4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZ2lvbkFzT3V0cHV0IiBlVHlwZT0iIy8vRXhwYW5zaW9uUmVnaW9uIg0KLSAgICAgICAgZU9wcG9zaXRlPSIjLy9FeHBhbnNpb25SZWdpb24vb3V0cHV0RWxlbWVudCIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVnaW9uQXNJbnB1dCIgZVR5cGU9IiMvL0V4cGFuc2lvblJlZ2lvbiINCi0gICAgICAgIGVPcHBvc2l0ZT0iIy8vRXhwYW5zaW9uUmVnaW9uL2lucHV0RWxlbWVudCIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4cGFuc2lvblJlZ2lvbiIgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibW9kZSIgZVR5cGU9IiMvL0V4cGFuc2lvbktpbmQiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im91dHB1dEVsZW1lbnQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9FeHBhbnNpb25Ob2RlIiBlT3Bwb3NpdGU9IiMvL0V4cGFuc2lvbk5vZGUvcmVnaW9uQXNPdXRwdXQiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImlucHV0RWxlbWVudCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0V4cGFuc2lvbk5vZGUiIGVPcHBvc2l0ZT0iIy8vRXhwYW5zaW9uTm9kZS9yZWdpb25Bc0lucHV0Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJFeHBhbnNpb25LaW5kIj4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJwYXJhbGxlbCIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9Iml0ZXJhdGl2ZSIgdmFsdWU9IjEiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJzdHJlYW0iIHZhbHVlPSIyIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXhjZXB0aW9uSGFuZGxlciIgZVN1cGVyVHlwZXM9IiMvL0VsZW1lbnQiPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJWZXJ0ZXgiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ij4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTQ4NDMsMjMgKzUzNDUsNjMgQEAKICAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0V4Y2VwdGlvbkhhbmRsZXIvcHJvdGVjdGVkTm9kZSIvPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZWQiIHJlZmVyZW5jZXM9IiMvL1ZlcnRleC9jb250YWluZXIiLz4NCiAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb3RlY3RlZE5vZGUiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vRXhlY3V0YWJsZU5vZGUiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9FeGVjdXRhYmxlTm9kZS9oYW5kbGVyIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb250YWluZXIiIGVUeXBlPSIjLy9SZWdpb24iDQorICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vUmVnaW9uL3N1YnZlcnRleCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vRWxlbWVudC9vd25lciI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJoYW5kbGVyQm9keSIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9FeGVjdXRhYmxlTm9kZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhjZXB0aW9uSW5wdXQiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vT2JqZWN0Tm9kZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhjZXB0aW9uVHlwZSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0NsYXNzaWZpZXIiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im91dGdvaW5nIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVHJhbnNpdGlvbiIgZU9wcG9zaXRlPSIjLy9UcmFuc2l0aW9uL3NvdXJjZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaW5jb21pbmciIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9UcmFuc2l0aW9uIiBlT3Bwb3NpdGU9IiMvL1RyYW5zaXRpb24vdGFyZ2V0Ii8+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRm9ya05vZGUiIGVTdXBlclR5cGVzPSIjLy9Db250cm9sTm9kZSIvPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJKb2luTm9kZSIgZVN1cGVyVHlwZXM9IiMvL0NvbnRyb2xOb2RlIj4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlIiBlU3VwZXJUeXBlcz0iIy8vVmVydGV4Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkNvbm5lY3Rpb24gcG9pbnQgcmVmZXJlbmNlcyBvZiBhIHN1Ym1hY2hpbmUgc3RhdGUgY2FuIGJlIHVzZWQgYXMgc291cmNlcy90YXJnZXRzIG9mIHRyYW5zaXRpb25zLiBUaGV5IHJlcHJlc2VudCBlbnRyaWVzIGludG8gb3IgZXhpdHMgb3V0IG9mIHRoZSBzdWJtYWNoaW5lIHN0YXRlIG1hY2hpbmUgcmVmZXJlbmNlZCBieSB0aGUgc3VibWFjaGluZSBzdGF0ZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZW50cnkiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Qc2V1ZG9zdGF0ZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhpdCIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL1BzZXVkb3N0YXRlIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVHJhbnNpdGlvbiIgZVN1cGVyVHlwZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudCI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWRlZmluaXRpb25Db250ZXh0Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9SZWRlZmluYWJsZUVsZW1lbnQvcmVkZWZpbml0aW9uQ29udGV4dCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIg0KKyAgICAgICAgICAgIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9UcmFuc2l0aW9uL3JlZGVmaW5lZFRyYW5zaXRpb24iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1RyYW5zaXRpb24vY29udGFpbmVyIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTQ4NzEsNjMgKzU0MTMsNTcgQEAKICAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0pvaW5Ob2RlL2pvaW5TcGVjIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9UcmFuc2l0aW9uL2d1YXJkICMvL1RyYW5zaXRpb24vZWZmZWN0Ii8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0NvbWJpbmVEdXBsaWNhdGUiIGVUeXBlPSIjLy9Cb29sZWFuIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iam9pblNwZWMiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJraW5kIiBlVHlwZT0iIy8vVHJhbnNpdGlvbktpbmQiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lciIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9SZWdpb24iIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9SZWdpb24vdHJhbnNpdGlvbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic291cmNlIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1ZlcnRleCIgZU9wcG9zaXRlPSIjLy9WZXJ0ZXgvb3V0Z29pbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRhcmdldCIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9WZXJ0ZXgiIGVPcHBvc2l0ZT0iIy8vVmVydGV4L2luY29taW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWRlZmluZWRUcmFuc2l0aW9uIiBlVHlwZT0iIy8vVHJhbnNpdGlvbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRyaWdnZXIiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9UcmlnZ2VyIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJndWFyZCIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQorICAgICAgICB2b2xhdGlsZT0idHJ1ZSIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZWZmZWN0IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQorICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KICAgICAgIDwvZUFubm90YXRpb25zPg0KICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRmxvd0ZpbmFsTm9kZSIgZVN1cGVyVHlwZXM9IiMvL0ZpbmFsTm9kZSIvPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDZW50cmFsQnVmZmVyTm9kZSIgZVN1cGVyVHlwZXM9IiMvL09iamVjdE5vZGUiLz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWN0aXZpdHlQYXJ0aXRpb24iIGVTdXBlclR5cGVzPSIjLy9OYW1lZEVsZW1lbnQgIy8vQWN0aXZpdHlHcm91cCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTdXBlckdyb3VwIiBlVHlwZT0iIy8vQWN0aXZpdHlHcm91cCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3VwZXJHcm91cCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9InN1Ymdyb3VwIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eVBhcnRpdGlvbi9zdXBlclBhcnRpdGlvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNEaW1lbnNpb24iIGVUeXBlPSIjLy9Cb29sZWFuIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzRXh0ZXJuYWwiIGVUeXBlPSIjLy9Cb29sZWFuIg0KLSAgICAgICAgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lZEVkZ2UiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5RWRnZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eUVkZ2UvaW5QYXJ0aXRpb24iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0FjdGl2aXR5R3JvdXAvZ2V0Q29udGFpbmVkRWRnZXMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkRWRnZXMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29udGFpbmVkTm9kZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vQWN0aXZpdHlOb2RlIiBlT3Bwb3NpdGU9IiMvL0FjdGl2aXR5Tm9kZS9pblBhcnRpdGlvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlHcm91cC9nZXRDb250YWluZWROb2RlcyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWROb2RlcyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdWJncm91cCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0FjdGl2aXR5UGFydGl0aW9uIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eVBhcnRpdGlvbi9zdXBlclBhcnRpdGlvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlHcm91cC9nZXRTdWJncm91cHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0U3ViZ3JvdXBzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN1cGVyUGFydGl0aW9uIiBlVHlwZT0iIy8vQWN0aXZpdHlQYXJ0aXRpb24iDQotICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlQYXJ0aXRpb24vc3ViZ3JvdXAiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldFN1cGVyR3JvdXAiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVwcmVzZW50cyIgZVR5cGU9IiMvL0VsZW1lbnQiLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJUcmFuc2l0aW9uS2luZCI+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iaW50ZXJuYWwiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJsb2NhbCIgdmFsdWU9IjEiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJleHRlcm5hbCIgdmFsdWU9IjIiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlBzZXVkb3N0YXRlS2luZCI+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iaW5pdGlhbCIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9ImRlZXBIaXN0b3J5IiB2YWx1ZT0iMSIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9InNoYWxsb3dIaXN0b3J5IiB2YWx1ZT0iMiIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9ImpvaW4iIHZhbHVlPSIzIi8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iZm9yayIgdmFsdWU9IjQiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJqdW5jdGlvbiIgdmFsdWU9IjUiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJjaG9pY2UiIHZhbHVlPSI2Ii8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iZW50cnlQb2ludCIgdmFsdWU9IjciLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJleGl0UG9pbnQiIHZhbHVlPSI4Ii8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0idGVybWluYXRlIiB2YWx1ZT0iOSIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZpbmFsU3RhdGUiIGVTdXBlclR5cGVzPSIjLy9TdGF0ZSIvPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDcmVhdGVPYmplY3RBY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9BY3Rpb24iPg0KICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3V0cHV0cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KQEAgLTUzOTMsODUgKzU5MjksOCBAQAogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJiZWhhdmlvciIgbG93ZXJCb3VuZD0iMSINCiAgICAgICAgIGVUeXBlPSIjLy9CZWhhdmlvciIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0YXRlTWFjaGluZSIgZVN1cGVyVHlwZXM9IiMvL0JlaGF2aW9yIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9TdGF0ZU1hY2hpbmUvZXh0ZW5kZWRTdGF0ZU1hY2hpbmUiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5pdGlvbkNvbnRleHRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbml0aW9uQ29udGV4dCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RhdGVNYWNoaW5lL3N0YXRlTWFjaGluZV9yZWRlZmluaXRpb25Db250ZXh0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZE1lbWJlcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkTWVtYmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1N0YXRlTWFjaGluZS9yZWdpb24gIy8vU3RhdGVNYWNoaW5lL2Nvbm5lY3Rpb25Qb2ludCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVnaW9uIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUmVnaW9uIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9SZWdpb24vc3RhdGVNYWNoaW5lIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb25uZWN0aW9uUG9pbnQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Qc2V1ZG9zdGF0ZSIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuZGVkU3RhdGVNYWNoaW5lIiBlVHlwZT0iIy8vU3RhdGVNYWNoaW5lIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhdGVNYWNoaW5lX3JlZGVmaW5pdGlvbkNvbnRleHQiDQotICAgICAgICBlVHlwZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vQmVoYXZpb3JlZENsYXNzaWZpZXIvb3duZWRTdGF0ZU1hY2hpbmUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudC9yZWRlZmluaXRpb25Db250ZXh0Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiDQotICAgICAgICAgICAgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVnaW9uIiBlU3VwZXJUeXBlcz0iIy8vTmFtZXNwYWNlICMvL1JlZGVmaW5hYmxlRWxlbWVudCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWRlZmluaXRpb25Db250ZXh0Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9SZWRlZmluYWJsZUVsZW1lbnQvcmVkZWZpbml0aW9uQ29udGV4dCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIg0KLSAgICAgICAgICAgIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9SZWdpb24vZXh0ZW5kZWRSZWdpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRm9ya05vZGUiIGVTdXBlclR5cGVzPSIjLy9Db250cm9sTm9kZSIvPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJKb2luTm9kZSIgZVN1cGVyVHlwZXM9IiMvL0NvbnRyb2xOb2RlIj4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQpAQCAtNTQ4MywxNTYgKzU5NDIsODIgQEAKICAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1JlZ2lvbi9zdWJ2ZXJ0ZXggIy8vUmVnaW9uL3RyYW5zaXRpb24iLz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0pvaW5Ob2RlL2pvaW5TcGVjIi8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXROYW1lc3BhY2UiIGVUeXBlPSIjLy9OYW1lc3BhY2UiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNDb21iaW5lRHVwbGljYXRlIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImpvaW5TcGVjIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZsb3dGaW5hbE5vZGUiIGVTdXBlclR5cGVzPSIjLy9GaW5hbE5vZGUiLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2VudHJhbEJ1ZmZlck5vZGUiIGVTdXBlclR5cGVzPSIjLy9PYmplY3ROb2RlIi8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFjdGl2aXR5UGFydGl0aW9uIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50ICMvL0FjdGl2aXR5R3JvdXAiPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U3VwZXJHcm91cCIgZVR5cGU9IiMvL0FjdGl2aXR5R3JvdXAiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im5hbWVzcGFjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzdXBlckdyb3VwIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZWRNZW1iZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ic3ViZ3JvdXAiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1JlZ2lvbi9zdGF0ZU1hY2hpbmUgIy8vUmVnaW9uL3N0YXRlIi8+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eVBhcnRpdGlvbi9zdXBlclBhcnRpdGlvbiIvPg0KICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3VidmVydGV4IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVmVydGV4IiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9WZXJ0ZXgvY29udGFpbmVyIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzRGltZW5zaW9uIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc0V4dGVybmFsIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb250YWluZWRFZGdlIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSIjLy9BY3Rpdml0eUVkZ2UiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlFZGdlL2luUGFydGl0aW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eUdyb3VwL2dldENvbnRhaW5lZEVkZ2VzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldENvbnRhaW5lZEVkZ2VzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lZE5vZGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eU5vZGUvaW5QYXJ0aXRpb24iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0FjdGl2aXR5R3JvdXAvZ2V0Q29udGFpbmVkTm9kZXMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkTm9kZXMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3ViZ3JvdXAiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9BY3Rpdml0eVBhcnRpdGlvbiIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlQYXJ0aXRpb24vc3VwZXJQYXJ0aXRpb24iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0FjdGl2aXR5R3JvdXAvZ2V0U3ViZ3JvdXBzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldFN1Ymdyb3VwcyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdXBlclBhcnRpdGlvbiIgZVR5cGU9IiMvL0FjdGl2aXR5UGFydGl0aW9uIg0KKyAgICAgICAgdHJhbnNpZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0FjdGl2aXR5UGFydGl0aW9uL3N1Ymdyb3VwIj4NCiAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRTdXBlckdyb3VwIiB2YWx1ZT0iIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRyYW5zaXRpb24iIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9UcmFuc2l0aW9uIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9UcmFuc2l0aW9uL2NvbnRhaW5lciI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGF0ZU1hY2hpbmUiIGVUeXBlPSIjLy9TdGF0ZU1hY2hpbmUiDQotICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vU3RhdGVNYWNoaW5lL3JlZ2lvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXROYW1lc3BhY2UiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhdGUiIGVUeXBlPSIjLy9TdGF0ZSINCi0gICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9TdGF0ZS9yZWdpb24iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0TmFtZXNwYWNlIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV4dGVuZGVkUmVnaW9uIiBlVHlwZT0iIy8vUmVnaW9uIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVwcmVzZW50cyIgZVR5cGU9IiMvL0VsZW1lbnQiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQc2V1ZG9zdGF0ZSIgZVN1cGVyVHlwZXM9IiMvL1ZlcnRleCI+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJraW5kIiBlVHlwZT0iIy8vUHNldWRvc3RhdGVLaW5kIi8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4cGFuc2lvbk5vZGUiIGVTdXBlclR5cGVzPSIjLy9PYmplY3ROb2RlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZ2lvbkFzT3V0cHV0IiBlVHlwZT0iIy8vRXhwYW5zaW9uUmVnaW9uIg0KKyAgICAgICAgZU9wcG9zaXRlPSIjLy9FeHBhbnNpb25SZWdpb24vb3V0cHV0RWxlbWVudCIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVnaW9uQXNJbnB1dCIgZVR5cGU9IiMvL0V4cGFuc2lvblJlZ2lvbiINCisgICAgICAgIGVPcHBvc2l0ZT0iIy8vRXhwYW5zaW9uUmVnaW9uL2lucHV0RWxlbWVudCIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0YXRlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZXNwYWNlICMvL1JlZGVmaW5hYmxlRWxlbWVudCAjLy9WZXJ0ZXgiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0icmVkZWZpbml0aW9uQ29udGV4dCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vUmVkZWZpbmFibGVFbGVtZW50L3JlZGVmaW5pdGlvbkNvbnRleHQiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCNnZXRSZWRlZmluaXRpb25Db250ZXh0cyINCi0gICAgICAgICAgICB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRSZWRlZmluZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJlZGVmaW5lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vU3RhdGUvcmVkZWZpbmVkU3RhdGUiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TdGF0ZS9jb25uZWN0aW9uICMvL1N0YXRlL2VudHJ5ICMvL1N0YXRlL2V4aXQgIy8vU3RhdGUvZG9BY3Rpdml0eSAjLy9TdGF0ZS9zdGF0ZUludmFyaWFudCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRNZW1iZXJzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZE1lbWJlciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJuYW1lc3BhY2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9TdGF0ZS9yZWdpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzQ29tcG9zaXRlIiBlVHlwZT0iIy8vQm9vbGVhbiINCi0gICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc09ydGhvZ29uYWwiIGVUeXBlPSIjLy9Cb29sZWFuIg0KLSAgICAgICAgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIiB0cmFuc2llbnQ9InRydWUiIGRlcml2ZWQ9InRydWUiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzU2ltcGxlIiBlVHlwZT0iIy8vQm9vbGVhbiINCi0gICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1N1Ym1hY2hpbmVTdGF0ZSIgZVR5cGU9IiMvL0Jvb2xlYW4iDQotICAgICAgICBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3VibWFjaGluZSIgZVR5cGU9IiMvL1N0YXRlTWFjaGluZSIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29ubmVjdGlvbiIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVkZWZpbmVkU3RhdGUiIGVUeXBlPSIjLy9TdGF0ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlZmVycmFibGVUcmlnZ2VyIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVHJpZ2dlciIvPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVnaW9uIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUmVnaW9uIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9SZWdpb24vc3RhdGUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImVudHJ5IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleGl0IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkb0FjdGl2aXR5IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGF0ZUludmFyaWFudCIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4cGFuc2lvblJlZ2lvbiIgZVN1cGVyVHlwZXM9IiMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibW9kZSIgZVR5cGU9IiMvL0V4cGFuc2lvbktpbmQiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im91dHB1dEVsZW1lbnQiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9FeHBhbnNpb25Ob2RlIiBlT3Bwb3NpdGU9IiMvL0V4cGFuc2lvbk5vZGUvcmVnaW9uQXNPdXRwdXQiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImlucHV0RWxlbWVudCIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0V4cGFuc2lvbk5vZGUiIGVPcHBvc2l0ZT0iIy8vRXhwYW5zaW9uTm9kZS9yZWdpb25Bc0lucHV0Ii8+DQogICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVmVydGV4IiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iRXhwYW5zaW9uS2luZCI+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0icGFyYWxsZWwiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJpdGVyYXRpdmUiIHZhbHVlPSIxIi8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0ic3RyZWFtIiB2YWx1ZT0iMiIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4Y2VwdGlvbkhhbmRsZXIiIGVTdXBlclR5cGVzPSIjLy9FbGVtZW50Ij4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KQEAgLTU2NDQsMTI1ICs2MDI5LDI0IEBACiAgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCiAgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQogICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vVmVydGV4L2NvbnRhaW5lciIvPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vRXhjZXB0aW9uSGFuZGxlci9wcm90ZWN0ZWROb2RlIi8+DQogICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb250YWluZXIiIGVUeXBlPSIjLy9SZWdpb24iDQotICAgICAgICB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vUmVnaW9uL3N1YnZlcnRleCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vRWxlbWVudC9vd25lciI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvdXRnb2luZyIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1RyYW5zaXRpb24iIGVPcHBvc2l0ZT0iIy8vVHJhbnNpdGlvbi9zb3VyY2UiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImluY29taW5nIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVHJhbnNpdGlvbiIgZU9wcG9zaXRlPSIjLy9UcmFuc2l0aW9uL3RhcmdldCIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSIgZVN1cGVyVHlwZXM9IiMvL1ZlcnRleCI+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJlbnRyeSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BzZXVkb3N0YXRlIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleGl0IiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vUHNldWRvc3RhdGUiLz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUcmFuc2l0aW9uIiBlU3VwZXJUeXBlcz0iIy8vUmVkZWZpbmFibGVFbGVtZW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFJlZGVmaW5pdGlvbkNvbnRleHRzIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InJlZGVmaW5pdGlvbkNvbnRleHQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL1JlZGVmaW5hYmxlRWxlbWVudC9yZWRlZmluaXRpb25Db250ZXh0Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiDQotICAgICAgICAgICAgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UmVkZWZpbmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJyZWRlZmluZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZWQiIHJlZmVyZW5jZXM9IiMvL1RyYW5zaXRpb24vcmVkZWZpbmVkVHJhbnNpdGlvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZXIiIGVUeXBlPSIjLy9FbGVtZW50Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vVHJhbnNpdGlvbi9jb250YWluZXIiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9UcmFuc2l0aW9uL2d1YXJkICMvL1RyYW5zaXRpb24vZWZmZWN0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJraW5kIiBlVHlwZT0iIy8vVHJhbnNpdGlvbktpbmQiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lciIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9SZWdpb24iIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9SZWdpb24vdHJhbnNpdGlvbiI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm90ZWN0ZWROb2RlIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL0V4ZWN1dGFibGVOb2RlIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vRXhlY3V0YWJsZU5vZGUvaGFuZGxlciI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KICAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiIHZhbHVlPSIiLz4NCiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic291cmNlIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1ZlcnRleCIgZU9wcG9zaXRlPSIjLy9WZXJ0ZXgvb3V0Z29pbmciLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRhcmdldCIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9WZXJ0ZXgiIGVPcHBvc2l0ZT0iIy8vVmVydGV4L2luY29taW5nIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWRlZmluZWRUcmFuc2l0aW9uIiBlVHlwZT0iIy8vVHJhbnNpdGlvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRyaWdnZXIiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9UcmlnZ2VyIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJndWFyZCIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQotICAgICAgICB2b2xhdGlsZT0idHJ1ZSIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZWZmZWN0IiBlVHlwZT0iIy8vQWN0aXZpdHkiDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJoYW5kbGVyQm9keSIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9FeGVjdXRhYmxlTm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhjZXB0aW9uSW5wdXQiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vT2JqZWN0Tm9kZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhjZXB0aW9uVHlwZSIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0NsYXNzaWZpZXIiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlRyYW5zaXRpb25LaW5kIj4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJpbnRlcm5hbCIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9ImxvY2FsIiB2YWx1ZT0iMSIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9ImV4dGVybmFsIiB2YWx1ZT0iMiIvPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iUHNldWRvc3RhdGVLaW5kIj4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJpbml0aWFsIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0iZGVlcEhpc3RvcnkiIHZhbHVlPSIxIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0ic2hhbGxvd0hpc3RvcnkiIHZhbHVlPSIyIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0iam9pbiIgdmFsdWU9IjMiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJmb3JrIiB2YWx1ZT0iNCIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9Imp1bmN0aW9uIiB2YWx1ZT0iNSIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9ImNob2ljZSIgdmFsdWU9IjYiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJlbnRyeVBvaW50IiB2YWx1ZT0iNyIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9ImV4aXRQb2ludCIgdmFsdWU9IjgiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJ0ZXJtaW5hdGUiIHZhbHVlPSI5Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRmluYWxTdGF0ZSIgZVN1cGVyVHlwZXM9IiMvL1N0YXRlIi8+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVyYWN0aW9uT2NjdXJyZW5jZSIgZVN1cGVyVHlwZXM9IiMvL0ludGVyYWN0aW9uRnJhZ21lbnQiPg0KICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQotICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSByZWZlcmVuY2UgdG8gYW4gaW50ZXJhY3Rpb24gd2l0aCBhY3R1YWwgdmFsdWVzLiBUaGUgaW50ZXJwcmV0YXRpb24gaXMgdGhhdCB0aGUgc2VxdWVuY2UgZGlhZ3JhbSByZXBsYWNlcyB0aGUgcmVmZXJlbmNlICh3aXRoIGFjdHVhbCBwYXJhbWV0ZXJzIHN1YnN0aXR1dGVkKSIvPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkludGVyYWN0aW9uT2NjdXJyZW5jZSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIEludGVyYWN0aW9uRnJhZ21lbnQuIEFuIEludGVyYWN0aW9uT2NjdXJyZW5jZSBoYXMgYSBzZXQgb2YgYWN0dWFsIGdhdGVzIHRoYXQgbXVzdCBtYXRjaCB0aGUgZm9ybWFsIGdhdGVzIG9mIHRoZSByZWZlcmVuY2VkIEludGVyYWN0aW9uLiAiLz4NCiAgICAgPC9lQW5ub3RhdGlvbnM+DQogICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQogICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KQEAgLTU5NTQsNTA3ICs2MjM4LDYgQEAKICAgICA8ZUxpdGVyYWxzIG5hbWU9ImFzc2VtYmx5Ii8+DQogICAgIDxlTGl0ZXJhbHMgbmFtZT0iZGVsZWdhdGlvbiIgdmFsdWU9IjEiLz4NCiAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQcm90b2NvbENvbmZvcm1hbmNlIiBlU3VwZXJUeXBlcz0iIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U291cmNlcyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzb3VyY2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9zcGVjaWZpY01hY2hpbmUiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVyIiBlVHlwZT0iIy8vRWxlbWVudCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSItMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1Byb3RvY29sQ29uZm9ybWFuY2Uvc3BlY2lmaWNNYWNoaW5lIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRUYXJnZXRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InRhcmdldCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qcm90b2NvbENvbmZvcm1hbmNlL2dlbmVyYWxNYWNoaW5lIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzcGVjaWZpY01hY2hpbmUiIGxvd2VyQm91bmQ9IjEiDQotICAgICAgICBlVHlwZT0iIy8vUHJvdG9jb2xTdGF0ZU1hY2hpbmUiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9Qcm90b2NvbFN0YXRlTWFjaGluZS9jb25mb3JtYW5jZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVyIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImdlbmVyYWxNYWNoaW5lIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgZVR5cGU9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvdG9jb2xTdGF0ZU1hY2hpbmUiIGVTdXBlclR5cGVzPSIjLy9TdGF0ZU1hY2hpbmUiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lL2NvbmZvcm1hbmNlIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb25mb3JtYW5jZSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1Byb3RvY29sQ29uZm9ybWFuY2UiIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL1Byb3RvY29sQ29uZm9ybWFuY2Uvc3BlY2lmaWNNYWNoaW5lIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQcm90b2NvbFRyYW5zaXRpb24iIGVTdXBlclR5cGVzPSIjLy9UcmFuc2l0aW9uIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qcm90b2NvbFRyYW5zaXRpb24vcG9zdENvbmRpdGlvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0R3VhcmQiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJndWFyZCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL1Byb3RvY29sVHJhbnNpdGlvbi9wcmVDb25kaXRpb24iLz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3R3VhcmQiIGVUeXBlPSIjLy9Db25zdHJhaW50Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwb3N0Q29uZGl0aW9uIiBlVHlwZT0iIy8vQ29uc3RyYWludCINCi0gICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZmVycmVkIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vT3BlcmF0aW9uIiBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSINCi0gICAgICAgIGRlcml2ZWQ9InRydWUiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByZUNvbmRpdGlvbiIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQotICAgICAgICB2b2xhdGlsZT0idHJ1ZSIgcmVzb2x2ZVByb3hpZXM9ImZhbHNlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyIgcmVmZXJlbmNlcz0iIy8vVHJhbnNpdGlvbi9ndWFyZCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuVHJhbnNpdGlvbiNnZXRHdWFyZCIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVGltZUV4cHJlc3Npb24iIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlyc3RUaW1lIiBlVHlwZT0iIy8vQm9vbGVhbiINCi0gICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlRydWUiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50IiBlVHlwZT0iIy8vTmFtZWRFbGVtZW50Ii8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRHVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlyc3RUaW1lIiBlVHlwZT0iIy8vQm9vbGVhbiINCi0gICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlRydWUiLz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50IiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9IjIiIGVUeXBlPSIjLy9OYW1lZEVsZW1lbnQiLz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lT2JzZXJ2YXRpb25BY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFZhbHVlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vSW5wdXRQaW4iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vVGltZU9ic2VydmF0aW9uQWN0aW9uL25vdyIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0VmFsdWUiIGxvd2VyQm91bmQ9IjEiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vVGltZU9ic2VydmF0aW9uQWN0aW9uL25vdyIvPg0KLSAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuZXdWYWx1ZSIgZVR5cGU9IiMvL0lucHV0UGluIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJub3ciIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vVGltZUV4cHJlc3Npb24iDQotICAgICAgICBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vV3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbi92YWx1ZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuV3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbiNnZXRWYWx1ZSIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRHVyYXRpb25JbnRlcnZhbCIgZVN1cGVyVHlwZXM9IiMvL0ludGVydmFsIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE1pbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJtaW4iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9JbnRlcnZhbC9taW4iPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1pbnMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE1heGVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ibWF4Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5EdXJhdGlvbiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vSW50ZXJ2YWwvbWF4Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCNnZXRNYXhlcyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVydmFsIiBlU3VwZXJUeXBlcz0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1pbiIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iDQotICAgICAgICB2b2xhdGlsZT0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Imxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9InVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1heCIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iDQotICAgICAgICB2b2xhdGlsZT0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Imxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9InVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lQ29uc3RyYWludCIgZVN1cGVyVHlwZXM9IiMvL0ludGVydmFsQ29uc3RyYWludCI+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Db25zdHJhaW50L3NwZWNpZmljYXRpb24gIy8vSW50ZXJ2YWxDb25zdHJhaW50L2dldFNwZWNpZmljYXRpb24iPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Db25zdHJhaW50L3NwZWNpZmljYXRpb24gIy8vSW50ZXJ2YWxDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im5ld1NwZWNpZmljYXRpb24iIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbnRlcnZhbENvbnN0cmFpbnQiIGVTdXBlclR5cGVzPSIjLy9Db25zdHJhaW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNwZWNpZmljYXRpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzcGVjaWZpY2F0aW9uIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQ29uc3RyYWludC9zcGVjaWZpY2F0aW9uIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9InNldFNwZWNpZmljYXRpb24iIGxvd2VyQm91bmQ9IjEiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzcGVjaWZpY2F0aW9uIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQ29uc3RyYWludC9zcGVjaWZpY2F0aW9uIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3U3BlY2lmaWNhdGlvbiIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRpbWVJbnRlcnZhbCIgZVN1cGVyVHlwZXM9IiMvL0ludGVydmFsIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE1heGVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ibWF4Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5UaW1lRXhwcmVzc2lvbiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vSW50ZXJ2YWwvbWF4Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCNnZXRNYXhlcyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TWlucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im1pbiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUV4cHJlc3Npb24iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0ludGVydmFsL21pbiI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwjZ2V0TWlucyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uIj4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFZhbHVlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vSW5wdXRQaW4iPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9kdXJhdGlvbiIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0VmFsdWUiIGxvd2VyQm91bmQ9IjEiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9kdXJhdGlvbiIvPg0KLSAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuZXdWYWx1ZSIgZVR5cGU9IiMvL0lucHV0UGluIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkdXJhdGlvbiIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iIy8vRHVyYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uL3ZhbHVlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEdXJhdGlvbkNvbnN0cmFpbnQiIGVTdXBlclR5cGVzPSIjLy9JbnRlcnZhbENvbnN0cmFpbnQiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U3BlY2lmaWNhdGlvbiIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InNwZWNpZmljYXRpb24iLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uSW50ZXJ2YWwiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0NvbnN0cmFpbnQvc3BlY2lmaWNhdGlvbiAjLy9JbnRlcnZhbENvbnN0cmFpbnQvZ2V0U3BlY2lmaWNhdGlvbiI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWxDb25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9InNldFNwZWNpZmljYXRpb24iIGxvd2VyQm91bmQ9IjEiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzcGVjaWZpY2F0aW9uIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5EdXJhdGlvbkludGVydmFsIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Db25zdHJhaW50L3NwZWNpZmljYXRpb24gIy8vSW50ZXJ2YWxDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im5ld1NwZWNpZmljYXRpb24iIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEYXRhU3RvcmVOb2RlIiBlU3VwZXJUeXBlcz0iIy8vQ2VudHJhbEJ1ZmZlck5vZGUiLz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJQYXJhbWV0ZXJFZmZlY3RLaW5kIj4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJjcmVhdGUiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJyZWFkIiB2YWx1ZT0iMSIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9InVwZGF0ZSIgdmFsdWU9IjIiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJkZWxldGUiIHZhbHVlPSIzIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIiBlU3VwZXJUeXBlcz0iIy8vQWN0aXZpdHlHcm91cCI+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbnRlcnJ1cHRpbmdFZGdlIiBvcmRlcmVkPSJmYWxzZSINCi0gICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vQWN0aXZpdHlFZGdlIiBlT3Bwb3NpdGU9IiMvL0FjdGl2aXR5RWRnZS9pbnRlcnJ1cHRzIi8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb250YWluZWROb2RlIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgIGVUeXBlPSIjLy9BY3Rpdml0eU5vZGUiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlOb2RlL2luSW50ZXJydXB0aWJsZVJlZ2lvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQWN0aXZpdHlHcm91cC9nZXRDb250YWluZWROb2RlcyI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWROb2RlcyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJPYmplY3ROb2RlT3JkZXJpbmdLaW5kIj4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJ1bm9yZGVyZWQiLz4NCi0gICAgPGVMaXRlcmFscyBuYW1lPSJvcmRlcmVkIiB2YWx1ZT0iMSIvPg0KLSAgICA8ZUxpdGVyYWxzIG5hbWU9IkxJRk8iIHZhbHVlPSIyIi8+DQotICAgIDxlTGl0ZXJhbHMgbmFtZT0iRklGTyIgdmFsdWU9IjMiLz4NCi0gIDwvZUNsYXNzaWZpZXJzPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQYXJhbWV0ZXJTZXQiIGVTdXBlclR5cGVzPSIjLy9OYW1lZEVsZW1lbnQiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0T3duZWRFbGVtZW50cyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9Im93bmVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iMSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1BhcmFtZXRlclNldC9jb25kaXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBhcmFtZXRlciIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BhcmFtZXRlciIgZU9wcG9zaXRlPSIjLy9QYXJhbWV0ZXIvcGFyYW1ldGVyU2V0Ii8+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb25kaXRpb24iIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Db25zdHJhaW50IiBjb250YWlubWVudD0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGVwbG95bWVudCIgZVN1cGVyVHlwZXM9IiMvL0RlcGVuZGVuY3kiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U3VwcGxpZXJzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzdXBwbGllciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL0RlcGxveW1lbnQvZGVwbG95ZWRBcnRpZmFjdCIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0VGFyZ2V0cyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ0YXJnZXQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vRGVwbG95bWVudC9kZXBsb3llZEFydGlmYWN0Ii8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTb3VyY2VzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InNvdXJjZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50L2xvY2F0aW9uIi8+DQotICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRDbGllbnRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiDQotICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50Ii8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZSIgdmFsdWU9ImNsaWVudERlcGVuZGVuY3kiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUubG93ZXJCb3VuZCIgdmFsdWU9IjAiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL0RlcGxveW1lbnQvbG9jYXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50L2NvbmZpZ3VyYXRpb24iLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlcGxveWVkQXJ0aWZhY3QiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9EZXBsb3llZEFydGlmYWN0IiB2b2xhdGlsZT0idHJ1ZSI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL0RlcGVuZGVuY3kvc3VwcGxpZXIiPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0U3VwcGxpZXJzIiB2YWx1ZT0iIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJsb2NhdGlvbiIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgIGVUeXBlPSIjLy9EZXBsb3ltZW50VGFyZ2V0IiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0RlcGxveW1lbnRUYXJnZXQvZGVwbG95bWVudCI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL0RlcGVuZGVuY3kvY2xpZW50Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiB2YWx1ZT0iIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSNnZXRDbGllbnRzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbmZpZ3VyYXRpb24iIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9EZXBsb3ltZW50U3BlY2lmaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KLSAgPC9lQ2xhc3NpZmllcnM+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRlcGxveWVkQXJ0aWZhY3QiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ii8+DQotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRlcGxveW1lbnRUYXJnZXQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vTmFtZWRFbGVtZW50Ij4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50VGFyZ2V0L2RlcGxveW1lbnQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldENsaWVudERlcGVuZGVuY2llcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iY2xpZW50RGVwZW5kZW5jeSIvPg0KLSAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJjbGllbnQiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1cGVyc2V0IiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50VGFyZ2V0L2RlcGxveW1lbnQiLz4NCi0gICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlcGxveW1lbnQiIG9yZGVyZWQ9ImZhbHNlIg0KLSAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9EZXBsb3ltZW50IiB2b2xhdGlsZT0idHJ1ZSIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vRGVwbG95bWVudC9sb2NhdGlvbiI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiIHJlZmVyZW5jZXM9IiMvL05hbWVkRWxlbWVudC9jbGllbnREZXBlbmRlbmN5Ij4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiIHZhbHVlPSIiLz4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0Q2xpZW50RGVwZW5kZW5jaWVzIiB2YWx1ZT0iIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCi0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlcGxveWVkRWxlbWVudCIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL1BhY2thZ2VhYmxlRWxlbWVudCIgY2hhbmdlYWJsZT0iZmFsc2UiIHZvbGF0aWxlPSJ0cnVlIg0KLSAgICAgICAgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIi8+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTm9kZSIgZVN1cGVyVHlwZXM9IiMvL0NsYXNzICMvL0RlcGxveW1lbnRUYXJnZXQiPg0KLSAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TmVzdGVkQ2xhc3NpZmllcnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJuZXN0ZWRDbGFzc2lmaWVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIi8+DQotICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0idHJ1ZSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZWQiIHJlZmVyZW5jZXM9IiMvL05vZGUvbmVzdGVkTm9kZSIvPg0KLSAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibmVzdGVkTm9kZSIgb3JkZXJlZD0iZmFsc2UiDQotICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL05vZGUiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9DbGFzcy9uZXN0ZWRDbGFzc2lmaWVyIj4NCi0gICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5DbGFzcyNnZXROZXN0ZWRDbGFzc2lmaWVycyIgdmFsdWU9IiIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQotICA8L2VDbGFzc2lmaWVycz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGV2aWNlIiBlU3VwZXJUeXBlcz0iIy8vTm9kZSIvPg0KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFeGVjdXRpb25FbnZpcm9ubWVudCIgZVN1cGVyVHlwZXM9IiMvL05vZGUiLz4NCi0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29tbXVuaWNhdGlvblBhdGgiIGVTdXBlclR5cGVzPSIjLy9Bc3NvY2lhdGlvbiIvPg0KICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZWFkRXh0ZW50QWN0aW9uIiBlU3VwZXJUeXBlcz0iIy8vQWN0aW9uIj4NCiAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE91dHB1dHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCkBAIC02NzQ2LDYgKzY1MjksNTQwIEBACiAgICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRhdGFTdG9yZU5vZGUiIGVTdXBlclR5cGVzPSIjLy9DZW50cmFsQnVmZmVyTm9kZSIvPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlBhcmFtZXRlckVmZmVjdEtpbmQiPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9ImNyZWF0ZSIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9InJlYWQiIHZhbHVlPSIxIi8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0idXBkYXRlIiB2YWx1ZT0iMiIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9ImRlbGV0ZSIgdmFsdWU9IjMiLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24iIGVTdXBlclR5cGVzPSIjLy9BY3Rpdml0eUdyb3VwIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImludGVycnVwdGluZ0VkZ2UiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9BY3Rpdml0eUVkZ2UiIGVPcHBvc2l0ZT0iIy8vQWN0aXZpdHlFZGdlL2ludGVycnVwdHMiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbnRhaW5lZE5vZGUiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0FjdGl2aXR5Tm9kZSIgZU9wcG9zaXRlPSIjLy9BY3Rpdml0eU5vZGUvaW5JbnRlcnJ1cHRpYmxlUmVnaW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9BY3Rpdml0eUdyb3VwL2dldENvbnRhaW5lZE5vZGVzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldENvbnRhaW5lZE5vZGVzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9Ik9iamVjdE5vZGVPcmRlcmluZ0tpbmQiPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9InVub3JkZXJlZCIvPg0KKyAgICA8ZUxpdGVyYWxzIG5hbWU9Im9yZGVyZWQiIHZhbHVlPSIxIi8+DQorICAgIDxlTGl0ZXJhbHMgbmFtZT0iTElGTyIgdmFsdWU9IjIiLz4NCisgICAgPGVMaXRlcmFscyBuYW1lPSJGSUZPIiB2YWx1ZT0iMyIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBhcmFtZXRlclNldCIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vUGFyYW1ldGVyU2V0L2NvbmRpdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icGFyYW1ldGVyIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vUGFyYW1ldGVyIiBlT3Bwb3NpdGU9IiMvL1BhcmFtZXRlci9wYXJhbWV0ZXJTZXQiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbmRpdGlvbiIgb3JkZXJlZD0iZmFsc2UiDQorICAgICAgICB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lRXhwcmVzc2lvbiIgZVN1cGVyVHlwZXM9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIFRpbWVFeHByZXNzaW9uIGRlZmluZXMgYSB2YWx1ZSBzcGVjaWZpY2F0aW9uIHRoYXQgcmVwcmVzZW50IGEgdGltZSB2YWx1ZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlyc3RUaW1lIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50IiBlVHlwZT0iIy8vTmFtZWRFbGVtZW50Ii8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRHVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBkdXJhdGlvbiBkZWZpbmVzIGEgdmFsdWUgc3BlY2lmaWNhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgdGVtcG9yYWwgZGlzdGFuY2UgYmV0d2VlbiB0d28gdGltZSBleHByZXNzaW9ucyB0aGF0IHNwZWNpZnkgdGltZSBpbnN0YW50cy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlyc3RUaW1lIiBlVHlwZT0iIy8vQm9vbGVhbiINCisgICAgICAgIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9IjIiIGVUeXBlPSIjLy9OYW1lZEVsZW1lbnQiLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lT2JzZXJ2YXRpb25BY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgVGltZU9ic2VydmF0aW9uQWN0aW9uIGRlZmluZXMgYW4gYWN0aW9uIHRoYXQgb2JzZXJ2ZXMgdGhlIGN1cnJlbnQgcG9pbnQgaW4gdGltZS4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0VmFsdWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9JbnB1dFBpbiI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InZhbHVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5JbnB1dFBpbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vbm93Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRWYWx1ZSIgbG93ZXJCb3VuZD0iMSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InZhbHVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5JbnB1dFBpbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vbm93Ii8+DQorICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im5ld1ZhbHVlIiBlVHlwZT0iIy8vSW5wdXRQaW4iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im5vdyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9UaW1lRXhwcmVzc2lvbiINCisgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uL3ZhbHVlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEdXJhdGlvbkludGVydmFsIiBlU3VwZXJUeXBlcz0iIy8vSW50ZXJ2YWwiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBEdXJhdGlvbkludGVydmFsIGRlZmluZXMgdGhlIHJhbmdlIGJldHdlZW4gdHdvIER1cmF0aW9ucy4gIi8+DQorICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TWlucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im1pbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb24iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0ludGVydmFsL21pbiI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwjZ2V0TWlucyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TWF4ZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRUxpc3QiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJtYXgiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9JbnRlcnZhbC9tYXgiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1heGVzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZXJ2YWwiIGVTdXBlclR5cGVzPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQW4gSW50ZXJ2YWwgZGVmaW5lcyB0aGUgcmFuZ2UgYmV0d2VlbiB0d28gdmFsdWUgc3BlY2lmaWNhdGlvbnMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1pbiIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iDQorICAgICAgICB2b2xhdGlsZT0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Imxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9InVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1heCIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iDQorICAgICAgICB2b2xhdGlsZT0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Imxvd2VyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9InVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lQ29uc3RyYWludCIgZVN1cGVyVHlwZXM9IiMvL0ludGVydmFsQ29uc3RyYWludCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIFRpbWVDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGEgVGltZUludGVydmFsLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Db25zdHJhaW50L3NwZWNpZmljYXRpb24gIy8vSW50ZXJ2YWxDb25zdHJhaW50L2dldFNwZWNpZmljYXRpb24iPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Db25zdHJhaW50L3NwZWNpZmljYXRpb24gIy8vSW50ZXJ2YWxDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im5ld1NwZWNpZmljYXRpb24iIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbnRlcnZhbENvbnN0cmFpbnQiIGVTdXBlclR5cGVzPSIjLy9Db25zdHJhaW50Ij4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgSW50ZXJ2YWxDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGFuIEludGVydmFsLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0NvbnN0cmFpbnQvc3BlY2lmaWNhdGlvbiI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0NvbnN0cmFpbnQvc3BlY2lmaWNhdGlvbiI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im5ld1NwZWNpZmljYXRpb24iIGVUeXBlPSIjLy9WYWx1ZVNwZWNpZmljYXRpb24iLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1lSW50ZXJ2YWwiIGVTdXBlclR5cGVzPSIjLy9JbnRlcnZhbCI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIFRpbWVJbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byBUaW1lRXhwcmVzc2lvbnMuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE1heGVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ibWF4Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5UaW1lRXhwcmVzc2lvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vSW50ZXJ2YWwvbWF4Ij4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCNnZXRNYXhlcyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0TWlucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im1pbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuVGltZUV4cHJlc3Npb24iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0ludGVydmFsL21pbiI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwjZ2V0TWlucyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uIj4NCisgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiPg0KKyAgICAgIDxkZXRhaWxzIGtleT0iZG9jdW1lbnRhdGlvbiIgdmFsdWU9IkEgRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbiBkZWZpbmVzIGFuIGFjdGlvbiB0aGF0IG9ic2VydmVzIGR1cmF0aW9uIGluIHRpbWUuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFZhbHVlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vSW5wdXRQaW4iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9kdXJhdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0VmFsdWUiIGxvd2VyQm91bmQ9IjEiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ2YWx1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lZCIgcmVmZXJlbmNlcz0iIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9kdXJhdGlvbiIvPg0KKyAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuZXdWYWx1ZSIgZVR5cGU9IiMvL0lucHV0UGluIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkdXJhdGlvbiIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vRHVyYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVzIiByZWZlcmVuY2VzPSIjLy9Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uL3ZhbHVlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEdXJhdGlvbkNvbnN0cmFpbnQiIGVTdXBlclR5cGVzPSIjLy9JbnRlcnZhbENvbnN0cmFpbnQiPg0KKyAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+DQorICAgICAgPGRldGFpbHMga2V5PSJkb2N1bWVudGF0aW9uIiB2YWx1ZT0iQSBEdXJhdGlvbkNvbnN0cmFpbnQgZGVmaW5lcyBhIENvbnN0cmFpbnQgdGhhdCByZWZlcnMgdG8gYSBEdXJhdGlvbkludGVydmFsLiAiLz4NCisgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRTcGVjaWZpY2F0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb25JbnRlcnZhbCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQ29uc3RyYWludC9zcGVjaWZpY2F0aW9uICMvL0ludGVydmFsQ29uc3RyYWludC9nZXRTcGVjaWZpY2F0aW9uIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iIHZhbHVlPSIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbENvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0U3BlY2lmaWNhdGlvbiIgbG93ZXJCb3VuZD0iMSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9InNwZWNpZmljYXRpb24iLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uSW50ZXJ2YWwiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJyZWRlZmluZXMiIHJlZmVyZW5jZXM9IiMvL0NvbnN0cmFpbnQvc3BlY2lmaWNhdGlvbiAjLy9JbnRlcnZhbENvbnN0cmFpbnQvc2V0U3BlY2lmaWNhdGlvbiI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWxDb25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3U3BlY2lmaWNhdGlvbiIgZVR5cGU9IiMvL1ZhbHVlU3BlY2lmaWNhdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRlcGxveW1lbnQiIGVTdXBlclR5cGVzPSIjLy9EZXBlbmRlbmN5Ij4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFN1cHBsaWVycyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic3VwcGxpZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1cGVyc2V0IiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50L2RlcGxveWVkQXJ0aWZhY3QiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFRhcmdldHMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0idGFyZ2V0Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL0RlcGxveW1lbnQvZGVwbG95ZWRBcnRpZmFjdCIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0U291cmNlcyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJzb3VyY2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vRGVwbG95bWVudC9sb2NhdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0Q2xpZW50cyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImNsaWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJjbGllbnREZXBlbmRlbmN5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1cGVyc2V0IiByZWZlcmVuY2VzPSIjLy9EZXBsb3ltZW50L2xvY2F0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vRGVwbG95bWVudC9jb25maWd1cmF0aW9uIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZXBsb3llZEFydGlmYWN0IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRGVwbG95ZWRBcnRpZmFjdCIgdm9sYXRpbGU9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L3N1cHBsaWVyIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibG9jYXRpb24iIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vRGVwbG95bWVudFRhcmdldCIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9EZXBsb3ltZW50VGFyZ2V0L2RlcGxveW1lbnQiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9EZXBlbmRlbmN5L2NsaWVudCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIgdmFsdWU9IiIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0Q2xpZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb25maWd1cmF0aW9uIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRGVwbG95bWVudFNwZWNpZmljYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEZXBsb3llZEFydGlmYWN0IiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCIvPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEZXBsb3ltZW50VGFyZ2V0IiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL05hbWVkRWxlbWVudCI+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lZEVsZW1lbnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUuY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJvd25lZEVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9InRydWUiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLnVwcGVyQm91bmQiIHZhbHVlPSIxIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMCIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vRGVwbG95bWVudFRhcmdldC9kZXBsb3ltZW50Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRDbGllbnREZXBlbmRlbmNpZXMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9ImNsaWVudERlcGVuZGVuY3kiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0iY2xpZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9Ii0xIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5sb3dlckJvdW5kIiB2YWx1ZT0iMSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdXBlcnNldCIgcmVmZXJlbmNlcz0iIy8vRGVwbG95bWVudFRhcmdldC9kZXBsb3ltZW50Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZXBsb3ltZW50IiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vRGVwbG95bWVudCIgdm9sYXRpbGU9InRydWUiIGNvbnRhaW5tZW50PSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0RlcGxveW1lbnQvbG9jYXRpb24iPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIiByZWZlcmVuY2VzPSIjLy9OYW1lZEVsZW1lbnQvY2xpZW50RGVwZW5kZW5jeSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50I2dldENsaWVudERlcGVuZGVuY2llcyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZXBsb3llZEVsZW1lbnQiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9QYWNrYWdlYWJsZUVsZW1lbnQiIGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSINCisgICAgICAgIHRyYW5zaWVudD0idHJ1ZSIgZGVyaXZlZD0idHJ1ZSIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik5vZGUiIGVTdXBlclR5cGVzPSIjLy9DbGFzcyAjLy9EZXBsb3ltZW50VGFyZ2V0Ij4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE5lc3RlZENsYXNzaWZpZXJzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ibmVzdGVkQ2xhc3NpZmllciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icmVkZWZpbmVkIiByZWZlcmVuY2VzPSIjLy9Ob2RlL25lc3RlZE5vZGUiLz4NCisgICAgPC9lT3BlcmF0aW9ucz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im5lc3RlZE5vZGUiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Ob2RlIiBjb250YWlubWVudD0idHJ1ZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InJlZGVmaW5lcyIgcmVmZXJlbmNlcz0iIy8vQ2xhc3MvbmVzdGVkQ2xhc3NpZmllciI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuQ2xhc3MjZ2V0TmVzdGVkQ2xhc3NpZmllcnMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRldmljZSIgZVN1cGVyVHlwZXM9IiMvL05vZGUiLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXhlY3V0aW9uRW52aXJvbm1lbnQiIGVTdXBlclR5cGVzPSIjLy9Ob2RlIi8+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbW11bmljYXRpb25QYXRoIiBlU3VwZXJUeXBlcz0iIy8vQXNzb2NpYXRpb24iLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvdG9jb2xDb25mb3JtYW5jZSIgZVN1cGVyVHlwZXM9IiMvL0RpcmVjdGVkUmVsYXRpb25zaGlwIj4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFNvdXJjZXMiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VFTGlzdCI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9ImZlYXR1cmUiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ic291cmNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVUeXBlIiB2YWx1ZT0ib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0idW5pb24iIHJlZmVyZW5jZXM9IiMvL1Byb3RvY29sQ29uZm9ybWFuY2Uvc3BlY2lmaWNNYWNoaW5lIi8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRPd25lciIgZVR5cGU9IiMvL0VsZW1lbnQiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0ib3duZXIiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlIiB2YWx1ZT0ib3duZWRFbGVtZW50Ii8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS51cHBlckJvdW5kIiB2YWx1ZT0iLTEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qcm90b2NvbENvbmZvcm1hbmNlL3NwZWNpZmljTWFjaGluZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0VGFyZ2V0cyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImRlcml2ZWQiIHZhbHVlPSJ0cnVlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJ0YXJnZXQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iY29udGFpbm1lbnQiIHZhbHVlPSJmYWxzZSIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJ1bmlvbiIgcmVmZXJlbmNlcz0iIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9nZW5lcmFsTWFjaGluZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3BlY2lmaWNNYWNoaW5lIiBsb3dlckJvdW5kPSIxIg0KKyAgICAgICAgZVR5cGU9IiMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIiB0cmFuc2llbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8vUHJvdG9jb2xTdGF0ZU1hY2hpbmUvY29uZm9ybWFuY2UiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJzdWJzZXRzIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiB2YWx1ZT0iIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJnZW5lcmFsTWFjaGluZSIgbG93ZXJCb3VuZD0iMSINCisgICAgICAgIGVUeXBlPSIjLy9Qcm90b2NvbFN0YXRlTWFjaGluZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiIHZhbHVlPSIiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlByb3RvY29sU3RhdGVNYWNoaW5lIiBlU3VwZXJUeXBlcz0iIy8vU3RhdGVNYWNoaW5lIj4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qcm90b2NvbFN0YXRlTWFjaGluZS9jb25mb3JtYW5jZSIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29uZm9ybWFuY2UiIG9yZGVyZWQ9ImZhbHNlIg0KKyAgICAgICAgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9Qcm90b2NvbENvbmZvcm1hbmNlIiBjb250YWlubWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9Qcm90b2NvbENvbmZvcm1hbmNlL3NwZWNpZmljTWFjaGluZSI+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InN1YnNldHMiPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvdG9jb2xUcmFuc2l0aW9uIiBlU3VwZXJUeXBlcz0iIy8vVHJhbnNpdGlvbiI+DQorICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIj4NCisgICAgICA8ZGV0YWlscyBrZXk9ImRvY3VtZW50YXRpb24iIHZhbHVlPSJBIHByb3RvY29sIHRyYW5zaXRpb24gKHRyYW5zaXRpb24gYXMgc3BlY2lhbGl6ZWQgaW4gdGhlIFByb3RvY29sU3RhdGVNYWNoaW5lcyBwYWNrYWdlKSBzcGVjaWZpZXMgYSBsZWdhbCB0cmFuc2l0aW9uIGZvciBhbiBvcGVyYXRpb24uIFRyYW5zaXRpb25zIG9mIHByb3RvY29sIHN0YXRlIG1hY2hpbmVzIGhhdmUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjogYSBwcmUgY29uZGl0aW9uIChndWFyZCksIG9uIHRyaWdnZXIsIGFuZCBhIHBvc3QgY29uZGl0aW9uLiBFdmVyeSBwcm90b2NvbCB0cmFuc2l0aW9uIGlzIGFzc29jaWF0ZWQgdG8gemVybyBvciBvbmUgb3BlcmF0aW9uIChyZWZlcnJlZCBCZWhhdmlvcmFsRmVhdHVyZSkgdGhhdCBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IGNsYXNzaWZpZXIgb2YgdGhlIHByb3RvY29sIHN0YXRlIG1hY2hpbmUuIFRoZSBwcm90b2NvbCB0cmFuc2l0aW9uIHNwZWNpZmllcyB0aGF0IHRoZSBhc3NvY2lhdGVkIChyZWZlcnJlZCkgb3BlcmF0aW9uIGNhbiBiZSBjYWxsZWQgZm9yIGFuIGluc3RhbmNlIGluIHRoZSBvcmlnaW4gc3RhdGUgdW5kZXIgdGhlIGluaXRpYWwgY29uZGl0aW9uIChndWFyZCksIGFuZCB0aGF0IGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zaXRpb24sIHRoZSBkZXN0aW5hdGlvbiBzdGF0ZSB3aWxsIGJlIHJlYWNoZWQgdW5kZXIgdGhlIGZpbmFsIGNvbmRpdGlvbiAocG9zdCkuICIvPg0KKyAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE93bmVkRWxlbWVudHMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUVMaXN0Ij4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iZmVhdHVyZSI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImVPcHBvc2l0ZS5jb250YWlubWVudCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9ImNvbnRhaW5tZW50IiB2YWx1ZT0iZmFsc2UiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0ibmFtZSIgdmFsdWU9Im93bmVkRWxlbWVudCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUiIHZhbHVlPSJvd25lciIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJkZXJpdmVkIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlT3Bwb3NpdGUudXBwZXJCb3VuZCIgdmFsdWU9IjEiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZVR5cGUiIHZhbHVlPSJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLz4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZU9wcG9zaXRlLmxvd2VyQm91bmQiIHZhbHVlPSIwIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InVuaW9uIiByZWZlcmVuY2VzPSIjLy9Qcm90b2NvbFRyYW5zaXRpb24vcG9zdENvbmRpdGlvbiIvPg0KKyAgICA8L2VPcGVyYXRpb25zPg0KKyAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2V0R3VhcmQiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJmZWF0dXJlIj4NCisgICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZlZCIgdmFsdWU9ImZhbHNlIi8+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im5hbWUiIHZhbHVlPSJndWFyZCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJlVHlwZSIgdmFsdWU9Im9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCIvPg0KKyAgICAgICAgPGRldGFpbHMga2V5PSJjb250YWlubWVudCIgdmFsdWU9InRydWUiLz4NCisgICAgICA8L2VBbm5vdGF0aW9ucz4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3VwZXJzZXQiIHJlZmVyZW5jZXM9IiMvL1Byb3RvY29sVHJhbnNpdGlvbi9wcmVDb25kaXRpb24iLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibmV3R3VhcmQiIGVUeXBlPSIjLy9Db25zdHJhaW50Ii8+DQorICAgIDwvZU9wZXJhdGlvbnM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwb3N0Q29uZGl0aW9uIiBlVHlwZT0iIy8vQ29uc3RyYWludCINCisgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiB2YWx1ZT0iIi8+DQorICAgICAgPC9lQW5ub3RhdGlvbnM+DQorICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlZmVycmVkIiBvcmRlcmVkPSJmYWxzZSINCisgICAgICAgIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vT3BlcmF0aW9uIiBjaGFuZ2VhYmxlPSJmYWxzZSIgdm9sYXRpbGU9InRydWUiIHRyYW5zaWVudD0idHJ1ZSINCisgICAgICAgIGRlcml2ZWQ9InRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByZUNvbmRpdGlvbiIgZVR5cGU9IiMvL0NvbnN0cmFpbnQiDQorICAgICAgICB2b2xhdGlsZT0idHJ1ZSIgcmVzb2x2ZVByb3hpZXM9ImZhbHNlIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0ic3Vic2V0cyIgcmVmZXJlbmNlcz0iIy8vVHJhbnNpdGlvbi9ndWFyZCI+DQorICAgICAgICA8ZGV0YWlscyBrZXk9Im9yZy5lY2xpcHNlLnVtbDIuVHJhbnNpdGlvbiNnZXRHdWFyZCIgdmFsdWU9IiIvPg0KKyAgICAgIDwvZUFubm90YXRpb25zPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGVwbG95bWVudFNwZWNpZmljYXRpb24iIGVTdXBlclR5cGVzPSIjLy9BcnRpZmFjdCI+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkZXBsb3ltZW50TG9jYXRpb24iIGVUeXBlPSIjLy9TdHJpbmciDQogICAgICAgICBkZWZhdWx0VmFsdWVMaXRlcmFsPSIiLz4NCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9tb2RlbC9VTUwyLmdlbm1vZGVsIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvbW9kZWwvVU1MMi5nZW5tb2RlbAppbmRleCA4MTZhODJlLi44MmU2NmNkIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9tb2RlbC9VTUwyLmdlbm1vZGVsCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL21vZGVsL1VNTDIuZ2VubW9kZWwKQEAgLTI4LDYgKzI4LDExIEBACiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9BZ2dyZWdhdGlvbktpbmQvc2hhcmVkIi8+DQogICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vQWdncmVnYXRpb25LaW5kL2NvbXBvc2l0ZSIvPg0KICAgICA8L2dlbkVudW1zPg0KKyAgICA8Z2VuRW51bXMgZWNvcmVFbnVtPSJVTUwyLmVjb3JlIy8vQ2FsbENvbmN1cnJlbmN5S2luZCI+DQorICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vQ2FsbENvbmN1cnJlbmN5S2luZC9zZXF1ZW50aWFsIi8+DQorICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vQ2FsbENvbmN1cnJlbmN5S2luZC9ndWFyZGVkIi8+DQorICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vQ2FsbENvbmN1cnJlbmN5S2luZC9jb25jdXJyZW50Ii8+DQorICAgIDwvZ2VuRW51bXM+DQogICAgIDxnZW5FbnVtcyBlY29yZUVudW09IlVNTDIuZWNvcmUjLy9NZXNzYWdlS2luZCI+DQogICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vTWVzc2FnZUtpbmQvY29tcGxldGUiLz4NCiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9NZXNzYWdlS2luZC9sb3N0Ii8+DQpAQCAtNDAsMTYgKzQ1LDYgQEAKICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL01lc3NhZ2VTb3J0L2FzeW5jaENhbGwiLz4NCiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9NZXNzYWdlU29ydC9hc3luY2hTaWduYWwiLz4NCiAgICAgPC9nZW5FbnVtcz4NCi0gICAgPGdlbkVudW1zIGVjb3JlRW51bT0iVU1MMi5lY29yZSMvL0NhbGxDb25jdXJyZW5jeUtpbmQiPg0KLSAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL0NhbGxDb25jdXJyZW5jeUtpbmQvc2VxdWVudGlhbCIvPg0KLSAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL0NhbGxDb25jdXJyZW5jeUtpbmQvZ3VhcmRlZCIvPg0KLSAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL0NhbGxDb25jdXJyZW5jeUtpbmQvY29uY3VycmVudCIvPg0KLSAgICA8L2dlbkVudW1zPg0KLSAgICA8Z2VuRW51bXMgZWNvcmVFbnVtPSJVTUwyLmVjb3JlIy8vRXhwYW5zaW9uS2luZCI+DQotICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vRXhwYW5zaW9uS2luZC9wYXJhbGxlbCIvPg0KLSAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL0V4cGFuc2lvbktpbmQvaXRlcmF0aXZlIi8+DQotICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vRXhwYW5zaW9uS2luZC9zdHJlYW0iLz4NCi0gICAgPC9nZW5FbnVtcz4NCiAgICAgPGdlbkVudW1zIGVjb3JlRW51bT0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb25LaW5kIj4NCiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uS2luZC9pbnRlcm5hbCIvPg0KICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb25LaW5kL2xvY2FsIi8+DQpAQCAtNjcsNiArNjIsMTEgQEAKICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0iVU1MMi5lY29yZSMvL1BzZXVkb3N0YXRlS2luZC9leGl0UG9pbnQiLz4NCiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9Qc2V1ZG9zdGF0ZUtpbmQvdGVybWluYXRlIi8+DQogICAgIDwvZ2VuRW51bXM+DQorICAgIDxnZW5FbnVtcyBlY29yZUVudW09IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25LaW5kIj4NCisgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25LaW5kL3BhcmFsbGVsIi8+DQorICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vRXhwYW5zaW9uS2luZC9pdGVyYXRpdmUiLz4NCisgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25LaW5kL3N0cmVhbSIvPg0KKyAgICA8L2dlbkVudW1zPg0KICAgICA8Z2VuRW51bXMgZWNvcmVFbnVtPSJVTUwyLmVjb3JlIy8vSW50ZXJhY3Rpb25PcGVyYXRvciI+DQogICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJVTUwyLmVjb3JlIy8vSW50ZXJhY3Rpb25PcGVyYXRvci9zZXEiLz4NCiAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9IlVNTDIuZWNvcmUjLy9JbnRlcmFjdGlvbk9wZXJhdG9yL2FsdCIvPg0KQEAgLTE1OCwzOSArMTU4LDYgQEAKICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vTXVsdGlwbGljaXR5RWxlbWVudC91cHBlciIvPg0KICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vTXVsdGlwbGljaXR5RWxlbWVudC9nZXRPd25lZEVsZW1lbnRzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0RpcmVjdGVkUmVsYXRpb25zaGlwIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAvc291cmNlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RpcmVjdGVkUmVsYXRpb25zaGlwL3RhcmdldCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGlyZWN0ZWRSZWxhdGlvbnNoaXAvZ2V0UmVsYXRlZEVsZW1lbnRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlbGF0aW9uc2hpcCI+DQotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlbGF0aW9uc2hpcC9yZWxhdGVkRWxlbWVudCIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9PcGFxdWVFeHByZXNzaW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL09wYXF1ZUV4cHJlc3Npb24vYm9keSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vT3BhcXVlRXhwcmVzc2lvbi9sYW5ndWFnZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9PcGFxdWVFeHByZXNzaW9uL3Jlc3VsdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vT3BhcXVlRXhwcmVzc2lvbi9iZWhhdmlvciIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9WYWx1ZVNwZWNpZmljYXRpb24iPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uL2lzQ29tcHV0YWJsZSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uL2ludGVnZXJWYWx1ZSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uL2Jvb2xlYW5WYWx1ZSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uL3N0cmluZ1ZhbHVlIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9WYWx1ZVNwZWNpZmljYXRpb24vdW5saW1pdGVkVmFsdWUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZhbHVlU3BlY2lmaWNhdGlvbi9pc051bGwiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRXhwcmVzc2lvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9FeHByZXNzaW9uL3N5bWJvbCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXhwcmVzc2lvbi9vcGVyYW5kIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FeHByZXNzaW9uL2dldE93bmVkRWxlbWVudHMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQ29tbWVudCI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Db21tZW50L2JvZHkiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbW1lbnQvYW5ub3RhdGVkRWxlbWVudCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ29tbWVudC9ib2R5RXhwcmVzc2lvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQ29tbWVudC9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL05hbWVkRWxlbWVudCI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9OYW1lZEVsZW1lbnQvbmFtZSIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9OYW1lZEVsZW1lbnQvcXVhbGlmaWVkTmFtZS4xIi8+DQpAQCAtMjQ4LDYgKzIxNSwzOSBAQAogICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9OYW1lc3BhY2UvZ2V0T3duZWRNZW1iZXJzIi8+DQogICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9OYW1lc3BhY2UvZ2V0T3duZWRFbGVtZW50cyIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcCI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RpcmVjdGVkUmVsYXRpb25zaGlwL3NvdXJjZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EaXJlY3RlZFJlbGF0aW9uc2hpcC90YXJnZXQiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RpcmVjdGVkUmVsYXRpb25zaGlwL2dldFJlbGF0ZWRFbGVtZW50cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9SZWxhdGlvbnNoaXAiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWxhdGlvbnNoaXAvcmVsYXRlZEVsZW1lbnQiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vT3BhcXVlRXhwcmVzc2lvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9PcGFxdWVFeHByZXNzaW9uL2JvZHkiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL09wYXF1ZUV4cHJlc3Npb24vbGFuZ3VhZ2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vT3BhcXVlRXhwcmVzc2lvbi9yZXN1bHQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL09wYXF1ZUV4cHJlc3Npb24vYmVoYXZpb3IiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uIj4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZhbHVlU3BlY2lmaWNhdGlvbi9pc0NvbXB1dGFibGUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZhbHVlU3BlY2lmaWNhdGlvbi9pbnRlZ2VyVmFsdWUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZhbHVlU3BlY2lmaWNhdGlvbi9ib29sZWFuVmFsdWUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZhbHVlU3BlY2lmaWNhdGlvbi9zdHJpbmdWYWx1ZSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVmFsdWVTcGVjaWZpY2F0aW9uL3VubGltaXRlZFZhbHVlIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9WYWx1ZVNwZWNpZmljYXRpb24vaXNOdWxsIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0V4cHJlc3Npb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vRXhwcmVzc2lvbi9zeW1ib2wiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4cHJlc3Npb24vb3BlcmFuZCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRXhwcmVzc2lvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NvbW1lbnQiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQ29tbWVudC9ib2R5Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Db21tZW50L2Fubm90YXRlZEVsZW1lbnQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbW1lbnQvYm9keUV4cHJlc3Npb24iLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0NvbW1lbnQvZ2V0T3duZWRFbGVtZW50cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DbGFzcyI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DbGFzcy9vd25lZE9wZXJhdGlvbiIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DbGFzcy9zdXBlckNsYXNzIi8+DQpAQCAtNTY4LDE1ICs1NjgsNiBAQAogICAgICAgPC9nZW5PcGVyYXRpb25zPg0KICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUmVkZWZpbmFibGVFbGVtZW50L2dldFJlZGVmaW5lZEVsZW1lbnRzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0dlbmVyYWxpemF0aW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9HZW5lcmFsaXphdGlvbi9zcGVjaWZpYyIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2VuZXJhbCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vaXNTdWJzdGl0dXRhYmxlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9HZW5lcmFsaXphdGlvbi9nZW5lcmFsaXphdGlvblNldCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2V0U291cmNlcyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2V0T3duZXIiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0dlbmVyYWxpemF0aW9uL2dldFRhcmdldHMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW5zdGFuY2VTcGVjaWZpY2F0aW9uIj4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0luc3RhbmNlU3BlY2lmaWNhdGlvbi9zbG90Ii8+DQogICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnN0YW5jZVNwZWNpZmljYXRpb24vY2xhc3NpZmllciIvPg0KQEAgLTYwMSw2ICs1OTIsMTUgQEAKICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW5zdGFuY2VWYWx1ZSI+DQogICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnN0YW5jZVZhbHVlL2luc3RhbmNlIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0dlbmVyYWxpemF0aW9uIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9HZW5lcmFsaXphdGlvbi9zcGVjaWZpYyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2VuZXJhbCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vaXNTdWJzdGl0dXRhYmxlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9HZW5lcmFsaXphdGlvbi9nZW5lcmFsaXphdGlvblNldCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2V0U291cmNlcyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vR2VuZXJhbGl6YXRpb24vZ2V0T3duZXIiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0dlbmVyYWxpemF0aW9uL2dldFRhcmdldHMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vUGFja2FnZWFibGVFbGVtZW50Ij4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1BhY2thZ2VhYmxlRWxlbWVudC9wYWNrYWdlYWJsZUVsZW1lbnRfdmlzaWJpbGl0eSIvPg0KICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUGFja2FnZWFibGVFbGVtZW50L2dldFZpc2liaWxpdHkiLz4NCkBAIC03ODgsNiArNzg4LDY5IEBACiAgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRDbGFzc2lmaWVyL2dldE1lbWJlcnMiLz4NCiAgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRDbGFzc2lmaWVyL2dldEZlYXR1cmVzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0ludGVyZmFjZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmZhY2Uvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVyZmFjZS9vd25lZE9wZXJhdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL3JlZGVmaW5lZEludGVyZmFjZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL25lc3RlZENsYXNzaWZpZXIiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVyZmFjZS9vd25lZFJlY2VwdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL3Byb3RvY29sIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvZ2V0QXR0cmlidXRlcyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL2dldE93bmVkTWVtYmVycyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL2dldEZlYXR1cmVzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvZ2V0UmVkZWZpbmVkRWxlbWVudHMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW1wbGVtZW50YXRpb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW1wbGVtZW50YXRpb24vY29udHJhY3QiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbXBsZW1lbnRhdGlvbi9pbXBsZW1lbnRpbmdDbGFzc2lmaWVyIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbXBsZW1lbnRhdGlvbi9nZXRTdXBwbGllcnMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldFRhcmdldHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldENsaWVudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldFNvdXJjZXMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZmlsZU5hbWUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FydGlmYWN0L25lc3RlZEFydGlmYWN0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9BcnRpZmFjdC9tYW5pZmVzdGF0aW9uIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9BcnRpZmFjdC9vd25lZE9wZXJhdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQXJ0aWZhY3Qvb3duZWRBdHRyaWJ1dGUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0FydGlmYWN0L2dldE93bmVkRWxlbWVudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0FydGlmYWN0L2dldENsaWVudERlcGVuZGVuY2llcyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZ2V0RmVhdHVyZXMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0FydGlmYWN0L2dldE93bmVkTWVtYmVycyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZ2V0QXR0cmlidXRlcyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9NYW5pZmVzdGF0aW9uIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL01hbmlmZXN0YXRpb24vdXRpbGl6ZWRFbGVtZW50Ii8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9NYW5pZmVzdGF0aW9uL2dldFN1cHBsaWVycyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vTWFuaWZlc3RhdGlvbi9nZXRUYXJnZXRzIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0FjdG9yIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeHRlbmQiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXh0ZW5kL2V4dGVuZGVkQ2FzZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9leHRlbnNpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9jb25kaXRpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9leHRlbnNpb25Mb2NhdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRXh0ZW5kL2dldFRhcmdldHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0V4dGVuZC9nZXRTb3VyY2VzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FeHRlbmQvZ2V0T3duZWRFbGVtZW50cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Vc2VDYXNlIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1VzZUNhc2UvaW5jbHVkZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVXNlQ2FzZS9leHRlbmQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1VzZUNhc2UvZXh0ZW5zaW9uUG9pbnQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1VzZUNhc2Uvc3ViamVjdCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVXNlQ2FzZS9nZXRPd25lZE1lbWJlcnMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRXh0ZW5zaW9uUG9pbnQiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuc2lvblBvaW50L3VzZUNhc2UiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW5jbHVkZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW5jbHVkZS9pbmNsdWRpbmdDYXNlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbmNsdWRlL2FkZGl0aW9uIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbmNsdWRlL2dldFNvdXJjZXMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0luY2x1ZGUvZ2V0VGFyZ2V0cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9BY3Rpdml0eUVkZ2UiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FjdGl2aXR5RWRnZS9hY3Rpdml0eSIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlFZGdlL3NvdXJjZSIvPg0KQEAgLTg3MCw2OCArOTMzLDEwNSBAQAogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9WYWx1ZVBpbiI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9WYWx1ZVBpbi92YWx1ZSIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9BcnRpZmFjdCI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9BcnRpZmFjdC9maWxlTmFtZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvbmVzdGVkQXJ0aWZhY3QiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FydGlmYWN0L21hbmlmZXN0YXRpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FydGlmYWN0L293bmVkT3BlcmF0aW9uIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9BcnRpZmFjdC9vd25lZEF0dHJpYnV0ZSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZ2V0T3duZWRFbGVtZW50cyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZ2V0Q2xpZW50RGVwZW5kZW5jaWVzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9BcnRpZmFjdC9nZXRGZWF0dXJlcyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQXJ0aWZhY3QvZ2V0T3duZWRNZW1iZXJzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9BcnRpZmFjdC9nZXRBdHRyaWJ1dGVzIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DYWxsVHJpZ2dlciI+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DYWxsVHJpZ2dlci9vcGVyYXRpb24iLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vTWFuaWZlc3RhdGlvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9NYW5pZmVzdGF0aW9uL3V0aWxpemVkRWxlbWVudCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vTWFuaWZlc3RhdGlvbi9nZXRTdXBwbGllcnMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL01hbmlmZXN0YXRpb24vZ2V0VGFyZ2V0cyIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vTWVzc2FnZVRyaWdnZXIiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NoYW5nZVRyaWdnZXIiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ2hhbmdlVHJpZ2dlci9jaGFuZ2VFeHByZXNzaW9uIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9DaGFuZ2VUcmlnZ2VyL2dldE93bmVkRWxlbWVudHMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW50ZXJmYWNlIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVyZmFjZS9vd25lZEF0dHJpYnV0ZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL293bmVkT3BlcmF0aW9uIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvcmVkZWZpbmVkSW50ZXJmYWNlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvbmVzdGVkQ2xhc3NpZmllciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJmYWNlL293bmVkUmVjZXB0aW9uIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvcHJvdG9jb2wiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ludGVyZmFjZS9nZXRBdHRyaWJ1dGVzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvZ2V0T3duZWRNZW1iZXJzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcmZhY2UvZ2V0RmVhdHVyZXMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ludGVyZmFjZS9nZXRSZWRlZmluZWRFbGVtZW50cyIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVHJpZ2dlciI+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmlnZ2VyL3BvcnQiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW1wbGVtZW50YXRpb24iPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW1wbGVtZW50YXRpb24vY29udHJhY3QiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbXBsZW1lbnRhdGlvbi9pbXBsZW1lbnRpbmdDbGFzc2lmaWVyIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbXBsZW1lbnRhdGlvbi9nZXRTdXBwbGllcnMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldFRhcmdldHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldENsaWVudHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ltcGxlbWVudGF0aW9uL2dldFNvdXJjZXMiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlY2VwdGlvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWNlcHRpb24vc2lnbmFsIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0FjdG9yIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeHRlbmQiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXh0ZW5kL2V4dGVuZGVkQ2FzZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9leHRlbnNpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9jb25kaXRpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4dGVuZC9leHRlbnNpb25Mb2NhdGlvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRXh0ZW5kL2dldFRhcmdldHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0V4dGVuZC9nZXRTb3VyY2VzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FeHRlbmQvZ2V0T3duZWRFbGVtZW50cyIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU2lnbmFsIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1NpZ25hbC9vd25lZEF0dHJpYnV0ZSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU2lnbmFsL2dldEF0dHJpYnV0ZXMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1NpZ25hbC9nZXRPd25lZE1lbWJlcnMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVXNlQ2FzZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Vc2VDYXNlL2luY2x1ZGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1VzZUNhc2UvZXh0ZW5kIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Vc2VDYXNlL2V4dGVuc2lvblBvaW50Ii8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Vc2VDYXNlL3N1YmplY3QiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1VzZUNhc2UvZ2V0T3duZWRNZW1iZXJzIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9TaWduYWxUcmlnZ2VyIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1NpZ25hbFRyaWdnZXIvc2lnbmFsIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0V4dGVuc2lvblBvaW50Ij4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeHRlbnNpb25Qb2ludC91c2VDYXNlIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9UaW1lVHJpZ2dlciI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9UaW1lVHJpZ2dlci9pc1JlbGF0aXZlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UaW1lVHJpZ2dlci93aGVuIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UaW1lVHJpZ2dlci9nZXRPd25lZEVsZW1lbnRzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0luY2x1ZGUiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0luY2x1ZGUvaW5jbHVkaW5nQ2FzZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW5jbHVkZS9hZGRpdGlvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vSW5jbHVkZS9nZXRTb3VyY2VzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbmNsdWRlL2dldFRhcmdldHMiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0FueVRyaWdnZXIiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlL3R5cGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlL3JvbGVCaW5kaW5nIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZS9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ29sbGFib3JhdGlvbi9jb2xsYWJvcmF0aW9uUm9sZSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQ29sbGFib3JhdGlvbi9nZXRSb2xlcyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Qb3J0Ij4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1BvcnQvaXNCZWhhdmlvciIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vUG9ydC9pc1NlcnZpY2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUG9ydC9yZXF1aXJlZCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUG9ydC9yZWRlZmluZWRQb3J0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1BvcnQvcHJvdmlkZWQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1BvcnQvcHJvdG9jb2wiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1BvcnQvZ2V0UmVkZWZpbmVkRWxlbWVudHMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRW5jYXBzdWxhdGVkQ2xhc3NpZmllciI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyL293bmVkUG9ydCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRW5jYXBzdWxhdGVkQ2xhc3NpZmllci9nZXRGZWF0dXJlcyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRW5jYXBzdWxhdGVkQ2xhc3NpZmllci9nZXRPd25lZE1lbWJlcnMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVmFyaWFibGUiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1ZhcmlhYmxlL3Njb3BlIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9WYXJpYWJsZS9nZXRPd25lciIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvdmFyaWFibGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvY29udGFpbmVkTm9kZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9jb250YWluZWRFZGdlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL211c3RJc29sYXRlIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL2dldEFjdGl2aXR5Ii8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL3NldEFjdGl2aXR5Ij4NCisgICAgICAgIDxnZW5QYXJhbWV0ZXJzIGVjb3JlUGFyYW1ldGVyPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9zZXRBY3Rpdml0eS9uZXdBY3Rpdml0eSIvPg0KKyAgICAgIDwvZ2VuT3BlcmF0aW9ucz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvZ2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9zZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ij4NCisgICAgICAgIDxnZW5QYXJhbWV0ZXJzIGVjb3JlUGFyYW1ldGVyPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9zZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5L25ld0FjdGl2aXR5R3JvdXBfYWN0aXZpdHkiLz4NCisgICAgICA8L2dlbk9wZXJhdGlvbnM+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL2dldE93bmVkTWVtYmVycyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Db25kaXRpb25hbE5vZGUiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQ29uZGl0aW9uYWxOb2RlL2lzRGV0ZXJtaW5hdGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZS9pc0Fzc3VyZWQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZS9jbGF1c2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZS9yZXN1bHQiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZS9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Db25kaXRpb25hbE5vZGUvZ2V0T3V0cHV0cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DbGF1c2UiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ2xhdXNlL3Rlc3QiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NsYXVzZS9ib2R5Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DbGF1c2UvcHJlZGVjZXNzb3JDbGF1c2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NsYXVzZS9zdWNjZXNzb3JDbGF1c2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NsYXVzZS9kZWNpZGVyIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DbGF1c2UvYm9keU91dHB1dCIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Mb29wTm9kZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS9pc1Rlc3RlZEZpcnN0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS9ib2R5UGFydCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvc2V0dXBQYXJ0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS9kZWNpZGVyIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS90ZXN0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS9yZXN1bHQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0xvb3BOb2RlL2xvb3BWYXJpYWJsZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvYm9keU91dHB1dCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvbG9vcFZhcmlhYmxlSW5wdXQiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0xvb3BOb2RlL2dldE91dHB1dHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0xvb3BOb2RlL2dldE93bmVkRWxlbWVudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0xvb3BOb2RlL2dldElucHV0cyIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9UZW1wbGF0ZVNpZ25hdHVyZSI+DQogICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UZW1wbGF0ZVNpZ25hdHVyZS9wYXJhbWV0ZXIiLz4NCkBAIC05ODUsMTAgKzEwODUsNiBAQAogICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbi9nZXRPd25lciIvPg0KICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24vZ2V0T3duZWRFbGVtZW50cyIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Db2xsYWJvcmF0aW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb24vY29sbGFib3JhdGlvblJvbGUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb24vZ2V0Um9sZXMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIiLz4NCiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlciI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9DbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIvYWxsb3dTdWJzdGl0dXRhYmxlIi8+DQpAQCAtOTk3LDI1ICsxMDkzLDYgQEAKICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vUmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZSIvPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVGVtcGxhdGVhYmxlQ2xhc3NpZmllciIvPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIiLz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlL3R5cGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlL3JvbGVCaW5kaW5nIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZS9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1BvcnQiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vUG9ydC9pc0JlaGF2aW9yIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Qb3J0L2lzU2VydmljZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qb3J0L3JlcXVpcmVkIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qb3J0L3JlZGVmaW5lZFBvcnQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUG9ydC9wcm92aWRlZCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUG9ydC9wcm90b2NvbCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUG9ydC9nZXRSZWRlZmluZWRFbGVtZW50cyIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0VuY2Fwc3VsYXRlZENsYXNzaWZpZXIvb3duZWRQb3J0Ii8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyL2dldEZlYXR1cmVzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyL2dldE93bmVkTWVtYmVycyIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9JbnRlcmFjdGlvbiI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmFjdGlvbi9saWZlbGluZSIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJhY3Rpb24vbWVzc2FnZSIvPg0KQEAgLTEwNzgsMTE3ICsxMTU1LDczIEBACiAgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0YXRlSW52YXJpYW50L2dldE93bmVkRWxlbWVudHMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU3RvcCIvPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVmFyaWFibGUiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1ZhcmlhYmxlL3Njb3BlIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9WYXJpYWJsZS9nZXRPd25lciIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU3RhdGVNYWNoaW5lIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9yZWdpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9jb25uZWN0aW9uUG9pbnQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9leHRlbmRlZFN0YXRlTWFjaGluZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9zdGF0ZU1hY2hpbmVfcmVkZWZpbml0aW9uQ29udGV4dCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RhdGVNYWNoaW5lL2dldFJlZGVmaW5lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdGF0ZU1hY2hpbmUvZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9nZXRPd25lZE1lbWJlcnMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL3ZhcmlhYmxlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL2NvbnRhaW5lZE5vZGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvY29udGFpbmVkRWRnZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9tdXN0SXNvbGF0ZSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9nZXRBY3Rpdml0eSIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9zZXRBY3Rpdml0eSI+DQotICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvc2V0QWN0aXZpdHkvbmV3QWN0aXZpdHkiLz4NCi0gICAgICA8L2dlbk9wZXJhdGlvbnM+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlL2dldEFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvc2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSI+DQotICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGUvc2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eS9uZXdBY3Rpdml0eUdyb3VwX2FjdGl2aXR5Ii8+DQotICAgICAgPC9nZW5PcGVyYXRpb25zPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RydWN0dXJlZEFjdGl2aXR5Tm9kZS9nZXRPd25lZE1lbWJlcnMiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlZ2lvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vc3VidmVydGV4Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vdHJhbnNpdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlZ2lvbi9zdGF0ZU1hY2hpbmUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vc3RhdGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlZ2lvbi9leHRlbmRlZFJlZ2lvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUmVnaW9uL2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9SZWdpb24vZ2V0UmVkZWZpbmVkRWxlbWVudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1JlZ2lvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9SZWdpb24vZ2V0TmFtZXNwYWNlIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Db25kaXRpb25hbE5vZGUvaXNEZXRlcm1pbmF0ZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQ29uZGl0aW9uYWxOb2RlL2lzQXNzdXJlZCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ29uZGl0aW9uYWxOb2RlL2NsYXVzZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ29uZGl0aW9uYWxOb2RlL3Jlc3VsdCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQ29uZGl0aW9uYWxOb2RlL2dldE93bmVkRWxlbWVudHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0NvbmRpdGlvbmFsTm9kZS9nZXRPdXRwdXRzIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Qc2V1ZG9zdGF0ZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Qc2V1ZG9zdGF0ZS9raW5kIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NsYXVzZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DbGF1c2UvdGVzdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ2xhdXNlL2JvZHkiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NsYXVzZS9wcmVkZWNlc3NvckNsYXVzZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ2xhdXNlL3N1Y2Nlc3NvckNsYXVzZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ2xhdXNlL2RlY2lkZXIiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NsYXVzZS9ib2R5T3V0cHV0Ii8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9TdGF0ZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1N0YXRlL2lzQ29tcG9zaXRlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJSZWFkb25seSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1N0YXRlL2lzT3J0aG9nb25hbCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9TdGF0ZS9pc1NpbXBsZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9TdGF0ZS9pc1N1Ym1hY2hpbmVTdGF0ZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvc3VibWFjaGluZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvY29ubmVjdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvcmVkZWZpbmVkU3RhdGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlL2RlZmVycmFibGVUcmlnZ2VyIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9yZWdpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlL2VudHJ5Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9leGl0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9kb0FjdGl2aXR5Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9zdGF0ZUludmFyaWFudCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RhdGUvZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0YXRlL2dldFJlZGVmaW5lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdGF0ZS9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdGF0ZS9nZXRPd25lZE1lbWJlcnMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vTG9vcE5vZGUiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvaXNUZXN0ZWRGaXJzdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvYm9keVBhcnQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0xvb3BOb2RlL3NldHVwUGFydCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvZGVjaWRlciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvdGVzdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vTG9vcE5vZGUvcmVzdWx0Ii8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Mb29wTm9kZS9sb29wVmFyaWFibGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0xvb3BOb2RlL2JvZHlPdXRwdXQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0xvb3BOb2RlL2xvb3BWYXJpYWJsZUlucHV0Ii8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Mb29wTm9kZS9nZXRPdXRwdXRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Mb29wTm9kZS9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Mb29wTm9kZS9nZXRJbnB1dHMiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1ZlcnRleCI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVmVydGV4L2NvbnRhaW5lciIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVmVydGV4L291dGdvaW5nIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9WZXJ0ZXgvaW5jb21pbmciLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZlcnRleC9nZXRPd25lciIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DYWxsVHJpZ2dlciI+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DYWxsVHJpZ2dlci9vcGVyYXRpb24iLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Db25uZWN0aW9uUG9pbnRSZWZlcmVuY2UvZW50cnkiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS9leGl0Ii8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL01lc3NhZ2VUcmlnZ2VyIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DaGFuZ2VUcmlnZ2VyIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NoYW5nZVRyaWdnZXIvY2hhbmdlRXhwcmVzc2lvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQ2hhbmdlVHJpZ2dlci9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1RyYW5zaXRpb24va2luZCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vY29udGFpbmVyIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL3NvdXJjZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi90YXJnZXQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vcmVkZWZpbmVkVHJhbnNpdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi90cmlnZ2VyIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL2d1YXJkIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL2VmZmVjdCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9nZXRSZWRlZmluaXRpb25Db250ZXh0cyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9nZXRSZWRlZmluZWRFbGVtZW50cyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9nZXRPd25lciIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1RyaWdnZXIiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJpZ2dlci9wb3J0Ii8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlY2VwdGlvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWNlcHRpb24vc2lnbmFsIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1NpZ25hbCI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TaWduYWwvb3duZWRBdHRyaWJ1dGUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1NpZ25hbC9nZXRBdHRyaWJ1dGVzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TaWduYWwvZ2V0T3duZWRNZW1iZXJzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1NpZ25hbFRyaWdnZXIiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU2lnbmFsVHJpZ2dlci9zaWduYWwiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVGltZVRyaWdnZXIiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vVGltZVRyaWdnZXIvaXNSZWxhdGl2ZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVGltZVRyaWdnZXIvd2hlbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGltZVRyaWdnZXIvZ2V0T3duZWRFbGVtZW50cyIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9BbnlUcmlnZ2VyIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25Ob2RlIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4cGFuc2lvbk5vZGUvcmVnaW9uQXNPdXRwdXQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4cGFuc2lvbk5vZGUvcmVnaW9uQXNJbnB1dCIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25SZWdpb24iPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vRXhwYW5zaW9uUmVnaW9uL21vZGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4cGFuc2lvblJlZ2lvbi9vdXRwdXRFbGVtZW50Ii8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeHBhbnNpb25SZWdpb24vaW5wdXRFbGVtZW50Ii8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0V4Y2VwdGlvbkhhbmRsZXIiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4Y2VwdGlvbkhhbmRsZXIvcHJvdGVjdGVkTm9kZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXhjZXB0aW9uSGFuZGxlci9oYW5kbGVyQm9keSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXhjZXB0aW9uSGFuZGxlci9leGNlcHRpb25JbnB1dCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXhjZXB0aW9uSGFuZGxlci9leGNlcHRpb25UeXBlIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9FeGNlcHRpb25IYW5kbGVyL2dldE93bmVyIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0ZvcmtOb2RlIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Kb2luTm9kZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Kb2luTm9kZS9pc0NvbWJpbmVEdXBsaWNhdGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0pvaW5Ob2RlL2pvaW5TcGVjIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Kb2luTm9kZS9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0Zsb3dGaW5hbE5vZGUiLz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NlbnRyYWxCdWZmZXJOb2RlIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9BY3Rpdml0eVBhcnRpdGlvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9BY3Rpdml0eVBhcnRpdGlvbi9pc0RpbWVuc2lvbiIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vaXNFeHRlcm5hbCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vY29udGFpbmVkRWRnZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vY29udGFpbmVkTm9kZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vc3ViZ3JvdXAiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9BY3Rpdml0eVBhcnRpdGlvbi9zdXBlclBhcnRpdGlvbiIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vcmVwcmVzZW50cyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vZ2V0U3VwZXJHcm91cCIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9GaW5hbFN0YXRlIi8+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DcmVhdGVPYmplY3RBY3Rpb24iPg0KICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ3JlYXRlT2JqZWN0QWN0aW9uL2NsYXNzaWZpZXIiLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0NyZWF0ZU9iamVjdEFjdGlvbi9yZXN1bHQiLz4NCkBAIC0xMzE5LDczICsxMzUyLDQwIEBACiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0NhbGxCZWhhdmlvckFjdGlvbiI+DQogICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9DYWxsQmVoYXZpb3JBY3Rpb24vYmVoYXZpb3IiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU3RhdGVNYWNoaW5lIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9yZWdpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9jb25uZWN0aW9uUG9pbnQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9leHRlbmRlZFN0YXRlTWFjaGluZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9zdGF0ZU1hY2hpbmVfcmVkZWZpbml0aW9uQ29udGV4dCIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RhdGVNYWNoaW5lL2dldFJlZGVmaW5lZEVsZW1lbnRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdGF0ZU1hY2hpbmUvZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0YXRlTWFjaGluZS9nZXRPd25lZE1lbWJlcnMiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0ZvcmtOb2RlIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Kb2luTm9kZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9Kb2luTm9kZS9pc0NvbWJpbmVEdXBsaWNhdGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0pvaW5Ob2RlL2pvaW5TcGVjIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Kb2luTm9kZS9nZXRPd25lZEVsZW1lbnRzIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlZ2lvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vc3VidmVydGV4Ii8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vdHJhbnNpdGlvbiIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlZ2lvbi9zdGF0ZU1hY2hpbmUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9SZWdpb24vc3RhdGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlZ2lvbi9leHRlbmRlZFJlZ2lvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUmVnaW9uL2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9SZWdpb24vZ2V0UmVkZWZpbmVkRWxlbWVudHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1JlZ2lvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9SZWdpb24vZ2V0TmFtZXNwYWNlIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9GbG93RmluYWxOb2RlIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9DZW50cmFsQnVmZmVyTm9kZSIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vaXNEaW1lbnNpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL2lzRXh0ZXJuYWwiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL2NvbnRhaW5lZEVkZ2UiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL2NvbnRhaW5lZE5vZGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL3N1Ymdyb3VwIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQWN0aXZpdHlQYXJ0aXRpb24vc3VwZXJQYXJ0aXRpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL3JlcHJlc2VudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0FjdGl2aXR5UGFydGl0aW9uL2dldFN1cGVyR3JvdXAiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vUHNldWRvc3RhdGUiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vUHNldWRvc3RhdGUva2luZCIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRXhwYW5zaW9uTm9kZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeHBhbnNpb25Ob2RlL3JlZ2lvbkFzT3V0cHV0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeHBhbnNpb25Ob2RlL3JlZ2lvbkFzSW5wdXQiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vU3RhdGUiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9TdGF0ZS9pc0NvbXBvc2l0ZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9TdGF0ZS9pc09ydGhvZ29uYWwiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vU3RhdGUvaXNTaW1wbGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vU3RhdGUvaXNTdWJtYWNoaW5lU3RhdGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlL3N1Ym1hY2hpbmUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlL2Nvbm5lY3Rpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1N0YXRlL3JlZGVmaW5lZFN0YXRlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9kZWZlcnJhYmxlVHJpZ2dlciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvcmVnaW9uIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9TdGF0ZS9lbnRyeSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvZXhpdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvZG9BY3Rpdml0eSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vU3RhdGUvc3RhdGVJbnZhcmlhbnQiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1N0YXRlL2dldFJlZGVmaW5pdGlvbkNvbnRleHRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9TdGF0ZS9nZXRSZWRlZmluZWRFbGVtZW50cyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RhdGUvZ2V0T3duZWRFbGVtZW50cyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vU3RhdGUvZ2V0T3duZWRNZW1iZXJzIi8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeHBhbnNpb25SZWdpb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vRXhwYW5zaW9uUmVnaW9uL21vZGUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0V4cGFuc2lvblJlZ2lvbi9vdXRwdXRFbGVtZW50Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeHBhbnNpb25SZWdpb24vaW5wdXRFbGVtZW50Ii8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1ZlcnRleCI+DQotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVmVydGV4L2NvbnRhaW5lciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVmVydGV4L291dGdvaW5nIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9WZXJ0ZXgvaW5jb21pbmciLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1ZlcnRleC9nZXRPd25lciIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRXhjZXB0aW9uSGFuZGxlciI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRXhjZXB0aW9uSGFuZGxlci9wcm90ZWN0ZWROb2RlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeGNlcHRpb25IYW5kbGVyL2hhbmRsZXJCb2R5Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeGNlcHRpb25IYW5kbGVyL2V4Y2VwdGlvbklucHV0Ii8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9FeGNlcHRpb25IYW5kbGVyL2V4Y2VwdGlvblR5cGUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0V4Y2VwdGlvbkhhbmRsZXIvZ2V0T3duZXIiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS9lbnRyeSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlL2V4aXQiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL2tpbmQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL2NvbnRhaW5lciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9zb3VyY2UiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vdGFyZ2V0Ii8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UcmFuc2l0aW9uL3JlZGVmaW5lZFRyYW5zaXRpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vdHJpZ2dlciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9ndWFyZCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVHJhbnNpdGlvbi9lZmZlY3QiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vZ2V0UmVkZWZpbmVkRWxlbWVudHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vZ2V0T3duZXIiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RyYW5zaXRpb24vZ2V0T3duZWRFbGVtZW50cyIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9GaW5hbFN0YXRlIi8+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9JbnRlcmFjdGlvbk9jY3VycmVuY2UiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJhY3Rpb25PY2N1cnJlbmNlL3JlZmVyc1RvIi8+DQogICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcmFjdGlvbk9jY3VycmVuY2UvYWN0dWFsR2F0ZSIvPg0KQEAgLTE0MjIsMTEyICsxNDIyLDYgQEAKICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vQ29tcG9uZW50L2dldE93bmVkRWxlbWVudHMiLz4NCiAgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0NvbXBvbmVudC9nZXRDbGllbnREZXBlbmRlbmNpZXMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9zcGVjaWZpY01hY2hpbmUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sQ29uZm9ybWFuY2UvZ2VuZXJhbE1hY2hpbmUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1Byb3RvY29sQ29uZm9ybWFuY2UvZ2V0U291cmNlcyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9nZXRPd25lciIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9nZXRUYXJnZXRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sU3RhdGVNYWNoaW5lL2NvbmZvcm1hbmNlIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFN0YXRlTWFjaGluZS9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbiI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vcG9zdENvbmRpdGlvbiIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vcmVmZXJyZWQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbi9wcmVDb25kaXRpb24iLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vc2V0R3VhcmQiPg0KLSAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vc2V0R3VhcmQvbmV3R3VhcmQiLz4NCi0gICAgICA8L2dlbk9wZXJhdGlvbnM+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1RpbWVFeHByZXNzaW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL1RpbWVFeHByZXNzaW9uL2ZpcnN0VGltZSIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVGltZUV4cHJlc3Npb24vZXZlbnQiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRHVyYXRpb24iPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vRHVyYXRpb24vZmlyc3RUaW1lIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EdXJhdGlvbi9ldmVudCIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24iPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vVGltZU9ic2VydmF0aW9uQWN0aW9uL25vdyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGltZU9ic2VydmF0aW9uQWN0aW9uL2dldFZhbHVlIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vc2V0VmFsdWUiPg0KLSAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vc2V0VmFsdWUvbmV3VmFsdWUiLz4NCi0gICAgICA8L2dlbk9wZXJhdGlvbnM+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0R1cmF0aW9uSW50ZXJ2YWwiPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25JbnRlcnZhbC9nZXRNaW5zIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EdXJhdGlvbkludGVydmFsL2dldE1heGVzIi8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0ludGVydmFsIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVydmFsL21pbiIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJ2YWwvbWF4Ii8+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1RpbWVDb25zdHJhaW50Ij4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RpbWVDb25zdHJhaW50L2dldFNwZWNpZmljYXRpb24iLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RpbWVDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KLSAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9UaW1lQ29uc3RyYWludC9zZXRTcGVjaWZpY2F0aW9uL25ld1NwZWNpZmljYXRpb24iLz4NCi0gICAgICA8L2dlbk9wZXJhdGlvbnM+DQotICAgIDwvZ2VuQ2xhc3Nlcz4NCi0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0ludGVydmFsQ29uc3RyYWludCI+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcnZhbENvbnN0cmFpbnQvZ2V0U3BlY2lmaWNhdGlvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vSW50ZXJ2YWxDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KLSAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9JbnRlcnZhbENvbnN0cmFpbnQvc2V0U3BlY2lmaWNhdGlvbi9uZXdTcGVjaWZpY2F0aW9uIi8+DQotICAgICAgPC9nZW5PcGVyYXRpb25zPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9UaW1lSW50ZXJ2YWwiPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGltZUludGVydmFsL2dldE1heGVzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UaW1lSW50ZXJ2YWwvZ2V0TWlucyIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24vZHVyYXRpb24iLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24vZ2V0VmFsdWUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24vc2V0VmFsdWUiPg0KLSAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9EdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uL3NldFZhbHVlL25ld1ZhbHVlIi8+DQotICAgICAgPC9nZW5PcGVyYXRpb25zPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EdXJhdGlvbkNvbnN0cmFpbnQiPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25Db25zdHJhaW50L2dldFNwZWNpZmljYXRpb24iLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0R1cmF0aW9uQ29uc3RyYWludC9zZXRTcGVjaWZpY2F0aW9uIj4NCi0gICAgICAgIDxnZW5QYXJhbWV0ZXJzIGVjb3JlUGFyYW1ldGVyPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25Db25zdHJhaW50L3NldFNwZWNpZmljYXRpb24vbmV3U3BlY2lmaWNhdGlvbiIvPg0KLSAgICAgIDwvZ2VuT3BlcmF0aW9ucz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGF0YVN0b3JlTm9kZSIvPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIj4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbi9pbnRlcnJ1cHRpbmdFZGdlIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24vY29udGFpbmVkTm9kZSIvPg0KLSAgICA8L2dlbkNsYXNzZXM+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9QYXJhbWV0ZXJTZXQiPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L3BhcmFtZXRlciIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L2NvbmRpdGlvbiIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L2dldE93bmVkRWxlbWVudHMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudCI+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2RlcGxveWVkQXJ0aWZhY3QiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2xvY2F0aW9uIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2NvbmZpZ3VyYXRpb24iLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvZ2V0U3VwcGxpZXJzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2dldFRhcmdldHMiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvZ2V0U291cmNlcyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudC9nZXRDbGllbnRzIi8+DQotICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2dldE93bmVkRWxlbWVudHMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGVwbG95ZWRBcnRpZmFjdCIvPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudFRhcmdldCI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EZXBsb3ltZW50VGFyZ2V0L2RlcGxveW1lbnQiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9IlJlYWRvbmx5IiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRGVwbG95bWVudFRhcmdldC9kZXBsb3llZEVsZW1lbnQiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnRUYXJnZXQvZ2V0T3duZWRFbGVtZW50cyIvPg0KLSAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudFRhcmdldC9nZXRDbGllbnREZXBlbmRlbmNpZXMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vTm9kZSI+DQotICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Ob2RlL25lc3RlZE5vZGUiLz4NCi0gICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL05vZGUvZ2V0TmVzdGVkQ2xhc3NpZmllcnMiLz4NCi0gICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGV2aWNlIi8+DQotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9FeGVjdXRpb25FbnZpcm9ubWVudCIvPg0KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vQ29tbXVuaWNhdGlvblBhdGgiLz4NCiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1JlYWRFeHRlbnRBY3Rpb24iPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUmVhZEV4dGVudEFjdGlvbi9yZXN1bHQiLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1JlYWRFeHRlbnRBY3Rpb24vY2xhc3NpZmllciIvPg0KQEAgLTE1OTUsNiArMTQ4OSwxMTIgQEAKICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUmFpc2VFeGNlcHRpb25BY3Rpb24vZXhjZXB0aW9uIi8+DQogICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9SYWlzZUV4Y2VwdGlvbkFjdGlvbi9nZXRJbnB1dHMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRGF0YVN0b3JlTm9kZSIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0ludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbi9pbnRlcnJ1cHRpbmdFZGdlIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24vY29udGFpbmVkTm9kZSIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9QYXJhbWV0ZXJTZXQiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L3BhcmFtZXRlciIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L2NvbmRpdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUGFyYW1ldGVyU2V0L2dldE93bmVkRWxlbWVudHMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVGltZUV4cHJlc3Npb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vVGltZUV4cHJlc3Npb24vZmlyc3RUaW1lIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UaW1lRXhwcmVzc2lvbi9ldmVudCIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EdXJhdGlvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFVNTDIuZWNvcmUjLy9EdXJhdGlvbi9maXJzdFRpbWUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0R1cmF0aW9uL2V2ZW50Ii8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1RpbWVPYnNlcnZhdGlvbkFjdGlvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vbm93Ii8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UaW1lT2JzZXJ2YXRpb25BY3Rpb24vZ2V0VmFsdWUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RpbWVPYnNlcnZhdGlvbkFjdGlvbi9zZXRWYWx1ZSI+DQorICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL1RpbWVPYnNlcnZhdGlvbkFjdGlvbi9zZXRWYWx1ZS9uZXdWYWx1ZSIvPg0KKyAgICAgIDwvZ2VuT3BlcmF0aW9ucz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25JbnRlcnZhbCI+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EdXJhdGlvbkludGVydmFsL2dldE1pbnMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0R1cmF0aW9uSW50ZXJ2YWwvZ2V0TWF4ZXMiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW50ZXJ2YWwiPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vSW50ZXJ2YWwvbWluIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9JbnRlcnZhbC9tYXgiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vVGltZUNvbnN0cmFpbnQiPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGltZUNvbnN0cmFpbnQvZ2V0U3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vVGltZUNvbnN0cmFpbnQvc2V0U3BlY2lmaWNhdGlvbiI+DQorICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL1RpbWVDb25zdHJhaW50L3NldFNwZWNpZmljYXRpb24vbmV3U3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgIDwvZ2VuT3BlcmF0aW9ucz4NCisgICAgPC9nZW5DbGFzc2VzPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vSW50ZXJ2YWxDb25zdHJhaW50Ij4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0ludGVydmFsQ29uc3RyYWludC9nZXRTcGVjaWZpY2F0aW9uIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9JbnRlcnZhbENvbnN0cmFpbnQvc2V0U3BlY2lmaWNhdGlvbiI+DQorICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL0ludGVydmFsQ29uc3RyYWludC9zZXRTcGVjaWZpY2F0aW9uL25ld1NwZWNpZmljYXRpb24iLz4NCisgICAgICA8L2dlbk9wZXJhdGlvbnM+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1RpbWVJbnRlcnZhbCI+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9UaW1lSW50ZXJ2YWwvZ2V0TWF4ZXMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1RpbWVJbnRlcnZhbC9nZXRNaW5zIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24iPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9kdXJhdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9nZXRWYWx1ZSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi9zZXRWYWx1ZSI+DQorICAgICAgICA8Z2VuUGFyYW1ldGVycyBlY29yZVBhcmFtZXRlcj0iVU1MMi5lY29yZSMvL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24vc2V0VmFsdWUvbmV3VmFsdWUiLz4NCisgICAgICA8L2dlbk9wZXJhdGlvbnM+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0R1cmF0aW9uQ29uc3RyYWludCI+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EdXJhdGlvbkNvbnN0cmFpbnQvZ2V0U3BlY2lmaWNhdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRHVyYXRpb25Db25zdHJhaW50L3NldFNwZWNpZmljYXRpb24iPg0KKyAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9EdXJhdGlvbkNvbnN0cmFpbnQvc2V0U3BlY2lmaWNhdGlvbi9uZXdTcGVjaWZpY2F0aW9uIi8+DQorICAgICAgPC9nZW5PcGVyYXRpb25zPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50Ij4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvZGVwbG95ZWRBcnRpZmFjdCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvbG9jYXRpb24iLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvY29uZmlndXJhdGlvbiIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudC9nZXRTdXBwbGllcnMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvZ2V0VGFyZ2V0cyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudC9nZXRTb3VyY2VzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50L2dldENsaWVudHMiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnQvZ2V0T3duZWRFbGVtZW50cyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EZXBsb3llZEFydGlmYWN0Ii8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50VGFyZ2V0Ij4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL0RlcGxveW1lbnRUYXJnZXQvZGVwbG95bWVudCIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9EZXBsb3ltZW50VGFyZ2V0L2RlcGxveWVkRWxlbWVudCIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vRGVwbG95bWVudFRhcmdldC9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9EZXBsb3ltZW50VGFyZ2V0L2dldENsaWVudERlcGVuZGVuY2llcyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Ob2RlIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL05vZGUvbmVzdGVkTm9kZSIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vTm9kZS9nZXROZXN0ZWRDbGFzc2lmaWVycyIvPg0KKyAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9EZXZpY2UiLz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0V4ZWN1dGlvbkVudmlyb25tZW50Ii8+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlVNTDIuZWNvcmUjLy9Db21tdW5pY2F0aW9uUGF0aCIvPg0KKyAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZSI+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9zcGVjaWZpY01hY2hpbmUiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sQ29uZm9ybWFuY2UvZ2VuZXJhbE1hY2hpbmUiLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1Byb3RvY29sQ29uZm9ybWFuY2UvZ2V0U291cmNlcyIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9nZXRPd25lciIvPg0KKyAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJVTUwyLmVjb3JlIy8vUHJvdG9jb2xDb25mb3JtYW5jZS9nZXRUYXJnZXRzIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1Byb3RvY29sU3RhdGVNYWNoaW5lIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sU3RhdGVNYWNoaW5lL2NvbmZvcm1hbmNlIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFN0YXRlTWFjaGluZS9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCisgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbiI+DQorICAgICAgPGdlbkZlYXR1cmVzIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vcG9zdENvbmRpdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iUmVhZG9ubHkiIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vcmVmZXJyZWQiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbi9wcmVDb25kaXRpb24iLz4NCisgICAgICA8Z2VuT3BlcmF0aW9ucyBlY29yZU9wZXJhdGlvbj0iVU1MMi5lY29yZSMvL1Byb3RvY29sVHJhbnNpdGlvbi9nZXRPd25lZEVsZW1lbnRzIi8+DQorICAgICAgPGdlbk9wZXJhdGlvbnMgZWNvcmVPcGVyYXRpb249IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vc2V0R3VhcmQiPg0KKyAgICAgICAgPGdlblBhcmFtZXRlcnMgZWNvcmVQYXJhbWV0ZXI9IlVNTDIuZWNvcmUjLy9Qcm90b2NvbFRyYW5zaXRpb24vc2V0R3VhcmQvbmV3R3VhcmQiLz4NCisgICAgICA8L2dlbk9wZXJhdGlvbnM+DQorICAgIDwvZ2VuQ2xhc3Nlcz4NCiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iVU1MMi5lY29yZSMvL0RlcGxveW1lbnRTcGVjaWZpY2F0aW9uIj4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgVU1MMi5lY29yZSMvL0RlcGxveW1lbnRTcGVjaWZpY2F0aW9uL2RlcGxveW1lbnRMb2NhdGlvbiIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBVTUwyLmVjb3JlIy8vRGVwbG95bWVudFNwZWNpZmljYXRpb24vZXhlY3V0aW9uTG9jYXRpb24iLz4NCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BYnN0cmFjdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQWJzdHJhY3Rpb24uamF2YQppbmRleCBiMDY5OThjLi5lMTc3MjlhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BYnN0cmFjdGlvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Fic3RyYWN0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQWJzdHJhY3Rpb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogQWJzdHJhY3Rpb24uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMSw2ICsyMSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+QWJzdHJhY3Rpb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBhYnN0cmFjdGlvbiBpcyBhIHJlbGF0aW9uc2hpcCB0aGF0IHJlbGF0ZXMgdHdvIGVsZW1lbnRzIG9yIHNldHMgb2YgZWxlbWVudHMgdGhhdCByZXByZXNlbnQgdGhlIHNhbWUgY29uY2VwdCBhdCBkaWZmZXJlbnQgbGV2ZWxzIG9mIGFic3RyYWN0aW9uIG9yIGZyb20gZGlmZmVyZW50IHZpZXdwb2ludHMuIChTZWUgYWxzbywgdGhlIGRlZmluaXRpb24gb2YgYWJzdHJhdGlvbiBpbiB0aGUgR2xvc3NhcnkuKSBJbiB0aGUgbWV0YW1vZGVsLCBhbiBBYnN0cmFjdGlvbiBpcyBhIERlcGVuZGVuY3kgaW4gd2hpY2ggdGhlcmUgaXMgYSBtYXBwaW5nIGJldHdlZW4gdGhlIHN1cHBsaWVyIGFuZCB0aGUgY2xpZW50LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FjdGl2aXR5LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BY3Rpdml0eS5qYXZhCmluZGV4IDM2Yzc5MzAuLjMwYzI2OWYgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FjdGl2aXR5LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQWN0aXZpdHkuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBBY3Rpdml0eS5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBBY3Rpdml0eS5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEFuIGFjdGl2aXR5IGNvbnRhaW5zIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgdGV4dCBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSBhIGNvbXB1dGF0aW9uLCBhbmQgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbGFuZ3VhZ2UuIE9DTCwgbmF0dXJhbCBsYW5ndWFnZSwgb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWN0aXZpdHkuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQWN0b3IuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FjdG9yLmphdmEKaW5kZXggZTZmZTBjZC4uOGExNGZiNiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQWN0b3IuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BY3Rvci5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEFjdG9yLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEFjdG9yLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkFjdG9yPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQW4gQWN0b3IgbW9kZWxzIGEgdHlwZSBvZiByb2xlIHBsYXllZCBieSBhbiBlbnRpdHkgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3ViamVjdCAoZS5nLiwgYnkgZXhjaGFuZ2luZyBzaWduYWxzIGFuZCBkYXRhKSwgCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRBY3RvcigpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BZ2dyZWdhdGlvbktpbmQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FnZ3JlZ2F0aW9uS2luZC5qYXZhCmluZGV4IGJhOGJjZDAuLjNkYWQ0YzkgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FnZ3JlZ2F0aW9uS2luZC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FnZ3JlZ2F0aW9uS2luZC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEFnZ3JlZ2F0aW9uS2luZC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBBZ2dyZWdhdGlvbktpbmQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMyw2ICsyMyw5IEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsaXRlcmFscyBvZiB0aGUgZW51bWVyYXRpb24gJzxlbT48Yj5BZ2dyZWdhdGlvbiBLaW5kPC9iPjwvZW0+JywKICAqIGFuZCB1dGlsaXR5IG1ldGhvZHMgZm9yIHdvcmtpbmcgd2l0aCB0aGVtLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEFnZ3JlZ2F0aW9uS2luZCBpcyBhbiBlbnVtZXJhdGlvbiBvZiB0aGUgZm9sbG93aW5nIGxpdGVyYWwgdmFsdWVzOiCVIG5vbmUgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBubyBhZ2dyZWdhdGlvbi4glSBzaGFyZWQgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBhIHNoYXJlZCBhZ2dyZWdhdGlvbi4glSBjb21wb3NpdGUgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGlzIGFnZ3JlZ2F0ZWQgY29tcG9zaXRlbHksIGkuZS4sIHRoZSBjb21wb3NpdGUgb2JqZWN0IGhhcyByZXNwb25zaWJpbGl0eSBmb3IgdGhlIGV4aXN0ZW5jZSBhbmQgc3RvcmFnZSBvZiB0aGUgY29tcG9zZWQgb2JqZWN0cyAocGFydHMpLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRBZ2dyZWdhdGlvbktpbmQoKQogICogQG1vZGVsCiAgKiBAZ2VuZXJhdGVkCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BbnlUcmlnZ2VyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9BbnlUcmlnZ2VyLmphdmEKaW5kZXggNmIxMWRlNy4uNjY3MGE2MCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQW55VHJpZ2dlci5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0FueVRyaWdnZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBBbnlUcmlnZ2VyLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo0OSBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEFueVRyaWdnZXIuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+QW55IFRyaWdnZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBBbnlUcmlnZ2VyIGZvciBhIGdpdmVuIHN0YXRlIHNwZWNpZmllcyB0aGF0IHRoZSB0cmFuc2l0aW9uIGlzIHRyaWdnZXJlZCBmb3IgYWxsIGFwcGxpY2FibGUgbWVzc2FnZSB0cmlnZ2VycyBleGNlcHQgZm9yIHRob3NlIHNwZWNpZmllZCBleHBsaWNpdGx5IG9uIG90aGVyIHRyYW5zaXRpb25zIGZvciB0aGlzIHN0YXRlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKgogICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLlVNTDJQYWNrYWdlI2dldEFueVRyaWdnZXIoKQogICogQG1vZGVsIApkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQXNzb2NpYXRpb24uamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Fzc29jaWF0aW9uLmphdmEKaW5kZXggYjVjYzQ2MC4uNTAzYTI2YiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQXNzb2NpYXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Bc3NvY2lhdGlvbi5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEFzc29jaWF0aW9uLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEFzc29jaWF0aW9uLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkFzc29jaWF0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQW4gYXNzb2NpYXRpb24gc3BlY2lmaWVzIGEgc2VtYW50aWMgcmVsYXRpb25zaGlwIHRoYXQgY2FuIG9jY3VyIGJldHdlZW4gdHlwZWQgaW5zdGFuY2VzLiBJdCBoYXMgYXQgbGVhc3QgdHdvIGVuZHMgcmVwcmVzZW50ZWQgYnkgcHJvcGVydGllcywgZWFjaCBvZiB3aGljaCBpcyBjb25uZWN0ZWQgdG8gdGhlIHR5cGUgb2YgdGhlIGVuZC4gTW9yZSB0aGFuIG9uZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uIG1heSBoYXZlIHRoZSBzYW1lIHR5cGUuIFdoZW4gYSBwcm9wZXJ0eSBpcyBvd25lZCBieSBhbiBhc3NvY2lhdGlvbiBpdCByZXByZXNlbnRzIGEgbm9uLW5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgbmFtZXNwYWNlIG9mIGFueSBvZiB0aGUgYXNzb2NpYXRlZCBjbGFzc2lmaWVycy4gV2hlbiBhIHByb3BlcnR5IGF0IGFuIGVuZCBvZiBhbiBhc3NvY2lhdGlvbiBpcyBvd25lZCBieSBvbmUgb2YgdGhlIGFzc29jaWF0ZWQgY2xhc3NpZmllcnMgaXQgcmVwcmVzZW50cyBhIG5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGlzIGFsc28gYW4gYXR0cmlidXRlIG9mIHRoZSBhc3NvY2lhdGVkIGNsYXNzaWZpZXIuIE9ubHkgYmluYXJ5IGFzc29jaWF0aW9ucyBtYXkgaGF2ZSBuYXZpZ2FibGUgZW5kcy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Bc3NvY2lhdGlvbkNsYXNzLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Bc3NvY2lhdGlvbkNsYXNzLmphdmEKaW5kZXggNWI4ODk1NC4uNjcxZjA0NiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQXNzb2NpYXRpb25DbGFzcy5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Fzc29jaWF0aW9uQ2xhc3MuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBBc3NvY2lhdGlvbkNsYXNzLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEFzc29jaWF0aW9uQ2xhc3MuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+QXNzb2NpYXRpb24gQ2xhc3M8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBJbiB0aGUgbWV0YW1vZGVsLCBhbiBBc3NvY2lhdGlvbkNsYXNzIGlzIGEgZGVjbGFyYXRpb24gb2YgYSBzZW1hbnRpYyByZWxhdGlvbnNoaXAgYmV0d2VlbiBDbGFzc2lmaWVycywgd2hpY2ggaGFzIGEgc2V0IG9mIGZlYXR1cmVzIG9mIGl0cyBvd24uIEFzc29jaWF0aW9uQ2xhc3MgaXMgYm90aCBhbiBBc3NvY2lhdGlvbiBhbmQgYSBDbGFzcy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRBc3NvY2lhdGlvbkNsYXNzKCkKICAqIEBtb2RlbCAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0JlaGF2aW9yLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9CZWhhdmlvci5qYXZhCmluZGV4IGMwNDcwYjIuLjg1MmQxNDYgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0JlaGF2aW9yLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQmVoYXZpb3IuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBCZWhhdmlvci5qYXZhLHYgMS40IDIwMDQvMDUvMjAgMDM6MjA6MDQga2h1c3NleSBFeHAgJAorICogJElkOiBCZWhhdmlvci5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5CZWhhdmlvcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEJlaGF2aW9yIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiBob3cgaXRzIGNvbnRleHQgY2xhc3NpZmllciBjaGFuZ2VzIHN0YXRlIG92ZXIgdGltZS4gVGhpcyBzcGVjaWZpY2F0aW9uIG1heSBiZSBlaXRoZXIgYSBkZWZpbml0aW9uIG9mIHBvc3NpYmxlIGJlaGF2aW9yIGV4ZWN1dGlvbiBvciBlbWVyZ2VudCBiZWhhdmlvciwgb3IgYSBzZWxlY3RpdmUgaWxsdXN0cmF0aW9uIG9mIGFuIGludGVyZXN0aW5nIHN1YnNldCBvZiBwb3NzaWJsZSBleGVjdXRpb25zLiBUaGUgbGF0dGVyIGZvcm0gaXMgdHlwaWNhbGx5IHVzZWQgZm9yIGNhcHR1cmluZyBleGFtcGxlcywgc3VjaCBhcyBhIHRyYWNlIG9mIGEgcGFydGljdWxhciBleGVjdXRpb24uIEEgY2xhc3NpZmllciBiZWhhdmlvciBpcyBhbHdheXMgYSBkZWZpbml0aW9uIG9mIGJlaGF2aW9yIGFuZCBub3QgYW4gaWxsdXN0cmF0aW9uLiBJdCBkZXNjcmliZXMgdGhlIHNlcXVlbmNlIG9mIHN0YXRlIGNoYW5nZXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzc2lmaWVyIG1heSB1bmRlcmdvIGluIHRoZSBjb3Vyc2Ugb2YgaXRzIGxpZmV0aW1lLiBJdHMgcHJlY2lzZSBzZW1hbnRpY3MgZGVwZW5kcyBvbiB0aGUga2luZCBvZiBjbGFzc2lmaWVyLiBGb3IgZXhhbXBsZSwgdGhlIGNsYXNzaWZpZXIgYmVoYXZpb3Igb2YgYSBjb2xsYWJvcmF0aW9uIHJlcHJlc2VudHMgZW1lcmdlbnQgYmVoYXZpb3Igb2YgYWxsIHRoZSBwYXJ0cywgd2hlcmVhcyB0aGUgY2xhc3NpZmllciBiZWhhdmlvciBvZiBhIGNsYXNzIGlzIGp1c3QgdGhlIGJlaGF2aW9yIG9mIGluc3RhbmNlcyBvZiB0aGUgY2xhc3Mgc2VwYXJhdGVkIGZyb20gdGhlIGJlaGF2aW9ycyBvZiBhbnkgb2YgaXRzIHBhcnRzLiBXaGVuIGEgYmVoYXZpb3IgaXMgYXNzb2NpYXRlZCBhcyB0aGUgbWV0aG9kIG9mIGEgYmVoYXZpb3JhbCBmZWF0dXJlLCBpdCBkZWZpbmVzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGF0IGZlYXR1cmU7IGkuZS4sIHRoZSBjb21wdXRhdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgZWZmZWN0cyBvZiB0aGUgYmVoYXZpb3JhbCBmZWF0dXJlLiBBcyBhIGNsYXNzaWZpZXIsIGEgYmVoYXZpb3IgY2FuIGJlIHNwZWNpYWxpemVkLiBJbnN0YW50aWF0aW5nIGEgYmVoYXZpb3IgaXMgcmVmZXJyZWQgdG8gYXMgk2ludm9jYXRpbmeUIHRoZSBiZWhhdmlvciwgYW4gaW5zdGFudGlhdGVkIGJlaGF2aW9yIGlzIGFsc28gY2FsbGVkIGEgYmVoYXZpb3Igk2V4ZWN1dGlvbi6UIEEgYmVoYXZpb3IgbWF5IGJlIGludm9rZWQgZGlyZWN0bHkgb3IgaXRzIGludm9jYXRpb24gbWF5IGJlIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIGJlaGF2aW9yYWwgZmVhdHVyZSB0aGF0IHNwZWNpZmllcyB0aGlzIGJlaGF2aW9yLiBBIGJlaGF2aW9yIGNhbiBhbHNvIGJlIGluc3RhbnRpYXRlZCBhcyBhbiBvYmplY3QgaW4gdmlydHVlIG9mIGl0IGJlaW5nIGEgY2xhc3MuIFRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgYmVoYXZpb3IgY2FuIHRha2UgYSBudW1iZXIgb2YgZm9ybXMsIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3ViY2xhc3NlcyBvZiBCZWhhdmlvci4gQmVoYXZpb3IgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIGZhY3RvcmluZyBvdXQgdGhlIGNvbW1vbmFsaXRpZXMgb2YgdGhlc2UgZGlmZmVyZW50IHNwZWNpZmljYXRpb24gbWVjaGFuaXNtcy4gV2hlbiBhIGJlaGF2aW9yIGlzIGludm9rZWQsIGl0cyBleGVjdXRpb24gcmVjZWl2ZXMgYSBzZXQgb2YgaW5wdXQgdmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gYWZmZWN0IHRoZSBjb3Vyc2Ugb2YgZXhlY3V0aW9uIGFuZCBhcyBhIHJlc3VsdCBvZiBpdHMgZXhlY3V0aW9uIGl0IHByb2R1Y2VzIGEgc2V0IG9mIG91dHB1dCB2YWx1ZXMgd2hpY2ggYXJlIHJldHVybmVkLCBhcyBzcGVjaWZpZWQgYnkgaXRzIHBhcmFtZXRlcnMuIFRoZSBvYnNlcnZhYmxlIGVmZmVjdHMgb2YgYSBiZWhhdmlvciBleGVjdXRpb24gbWF5IGluY2x1ZGUgY2hhbmdlcyBvZiB2YWx1ZXMgb2YgdmFyaW91cyBvYmplY3RzIGludm9sdmVkIGluIHRoZSBleGVjdXRpb24sIHRoZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2Ygb2JqZWN0cywgZ2VuZXJhdGlvbiBvZiBjb21tdW5pY2F0aW9ucyBiZXR3ZWVuIG9iamVjdHMsIGFzIHdlbGwgYXMgYW4gZXhwbGljaXQgc2V0IG9mIG91dHB1dCB2YWx1ZXMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQmVoYXZpb3JhbEZlYXR1cmUuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0JlaGF2aW9yYWxGZWF0dXJlLmphdmEKaW5kZXggMDMzNjM1Yy4uYjdjMTEyMyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQmVoYXZpb3JhbEZlYXR1cmUuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9CZWhhdmlvcmFsRmVhdHVyZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEJlaGF2aW9yYWxGZWF0dXJlLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEJlaGF2aW9yYWxGZWF0dXJlLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkJlaGF2aW9yYWwgRmVhdHVyZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgYmVoYXZpb3JhbCBmZWF0dXJlIHNwZWNpZmllcyB0aGF0IGFuIGluc3RhbmNlIG9mIGEgY2xhc3NpZmllciB3aWxsIHJlc3BvbmQgdG8gYSBkZXNpZ25hdGVkIHJlcXVlc3QgYnkgaW52b2tpbmcgYSBiZWhhdmlvci4gQmVoYXZpb3JhbEZlYXR1cmUgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIHNwZWNpYWxpemluZyBGZWF0dXJlIGFuZCBOYW1lc3BhY2UuIEtpbmRzIG9mIGJlaGF2aW9yYWwgYXNwZWN0cyBhcmUgbW9kZWxlZCBieSBzdWJjbGFzc2VzIG9mIEJlaGF2aW9yYWxGZWF0dXJlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0JlaGF2aW9yZWRDbGFzc2lmaWVyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9CZWhhdmlvcmVkQ2xhc3NpZmllci5qYXZhCmluZGV4IDVjNGZmOWQuLjk0ZThjMWEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0JlaGF2aW9yZWRDbGFzc2lmaWVyLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQmVoYXZpb3JlZENsYXNzaWZpZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBCZWhhdmlvcmVkQ2xhc3NpZmllci5qYXZhLHYgMS40IDIwMDQvMDUvMjAgMDM6MjA6MDQga2h1c3NleSBFeHAgJAorICogJElkOiBCZWhhdmlvcmVkQ2xhc3NpZmllci5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5CZWhhdmlvcmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGNsYXNzaWZpZXIgY2FuIGhhdmUgYmVoYXZpb3Igc3BlY2lmaWNhdGlvbnMgZGVmaW5lZCBpbiBpdHMgbmFtZXNwYWNlLiBPbmUgb2YgdGhlc2UgbWF5IHNwZWNpZnkgdGhlIGJlaGF2aW9yIG9mIHRoZSBjbGFzc2lmaWVyIGl0c2VsZi4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DYWxsQ29uY3VycmVuY3lLaW5kLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DYWxsQ29uY3VycmVuY3lLaW5kLmphdmEKaW5kZXggOGI5NGViNi4uNTU2NmNmNyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2FsbENvbmN1cnJlbmN5S2luZC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NhbGxDb25jdXJyZW5jeUtpbmQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBDYWxsQ29uY3VycmVuY3lLaW5kLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IENhbGxDb25jdXJyZW5jeUtpbmQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMyw2ICsyMyw5IEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsaXRlcmFscyBvZiB0aGUgZW51bWVyYXRpb24gJzxlbT48Yj5DYWxsIENvbmN1cnJlbmN5IEtpbmQ8L2I+PC9lbT4nLAogICogYW5kIHV0aWxpdHkgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIHRoZW0uCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQ2FsbENvbmN1cnJlbmN5S2luZCBpcyBhbiBlbnVtZXJhdGlvbiB3aXRoIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbHM6IJUgc2VxdWVudGlhbCBObyBjb25jdXJyZW5jeSBtYW5hZ2VtZW50IG1lY2hhbmlzbSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIG9wZXJhdGlvbiBhbmQsIHRoZXJlZm9yZSwgY29uY3VycmVuY3kgY29uZmxpY3RzIG1heSBvY2N1ci4gSW5zdGFuY2VzIHRoYXQgaW52b2tlIGEgYmVoYXZpb3JhbCBmZWF0dXJlIG5lZWQgdG8gY29vcmRpbmF0ZSBzbyB0aGF0IG9ubHkgb25lIGludm9jYXRpb24gdG8gYSB0YXJnZXQgb24gYW55IGJlaGF2aW9yYWwgZmVhdHVyZSBvY2N1cnMgYXQgb25jZS4glSBndWFyZGVkIE11bHRpcGxlIGludm9jYXRpb25zIG9mIGEgYmVoYXZpb3JhbCBmZWF0dXJlIG1heSBvY2N1ciBzaW11bHRhbmVvdXNseSB0byBvbmUgaW5zdGFuY2UsIGJ1dCBvbmx5IG9uZSBpcyBhbGxvd2VkIHRvIGNvbW1lbmNlLiBUaGUgb3RoZXJzIGFyZSBibG9ja2VkIHVudGlsIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgZmlyc3QgYmVoYXZpb3JhbCBmZWF0dXJlIGlzIGNvbXBsZXRlLiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHN5c3RlbSBkZXNpZ25lciB0byBlbnN1cmUgdGhhdCBkZWFkbG9ja3MgZG8gbm90IG9jY3VyIGR1ZSB0byBzaW11bHRhbmVvdXMgYmxvY2tzLiCVIGNvbmN1cnJlbnQgTXVsdGlwbGUgaW52b2NhdGlvbnMgb2YgYSBiZWhhdmlvcmFsIGZlYXR1cmUgbWF5IG9jY3VyIHNpbXVsdGFuZW91c2x5IHRvIG9uZSBpbnN0YW5jZSBhbmQgYWxsIG9mIHRoZW0gbWF5IHByb2NlZWQgY29uY3VycmVudGx5LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRDYWxsQ29uY3VycmVuY3lLaW5kKCkKICAqIEBtb2RlbAogICogQGdlbmVyYXRlZApkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2hhbmdlVHJpZ2dlci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2hhbmdlVHJpZ2dlci5qYXZhCmluZGV4IGFmMGZlM2YuLmFmN2RiYmEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NoYW5nZVRyaWdnZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DaGFuZ2VUcmlnZ2VyLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ2hhbmdlVHJpZ2dlci5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBDaGFuZ2VUcmlnZ2VyLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNoYW5nZSBUcmlnZ2VyPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBjaGFuZ2UgdHJpZ2dlciBzcGVjaWZpZXMgYW4gZXZlbnQgdGhhdCBvY2N1cnMgd2hlbiBhIEJvb2xlYW4tdmFsdWVkIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlIGFzIGEgcmVzdWx0IG9mIGEgY2hhbmdlIGluIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2xhc3MuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NsYXNzLmphdmEKaW5kZXggNDBjOTcwYS4uODZlNDc3YSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2xhc3MuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DbGFzcy5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IENsYXNzLmphdmEsdiAxLjggMjAwNC8wNi8wMiAwNTowMjoyNyBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IENsYXNzLmphdmEsdiAxLjkgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjMsNiArMjMsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNsYXNzPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQ2xhc3MgaXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgd2hvc2UgZmVhdHVyZXMgYXJlIGF0dHJpYnV0ZXMgYW5kIG9wZXJhdGlvbnMuIEF0dHJpYnV0ZXMgb2YgYSBjbGFzcyBhcmUgcmVwcmVzZW50ZWQgYnkgaW5zdGFuY2VzIG9mIFByb3BlcnR5IHRoYXQgYXJlIG93bmVkIGJ5IHRoZSBjbGFzcy4gU29tZSBvZiB0aGVzZSBhdHRyaWJ1dGVzIG1heSByZXByZXNlbnQgdGhlIG5hdmlnYWJsZSBlbmRzIG9mIGJpbmFyeSBhc3NvY2lhdGlvbnMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2xhc3NpZmllci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ2xhc3NpZmllci5qYXZhCmluZGV4IDYwMWNhODQuLmJlMjAyY2EgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NsYXNzaWZpZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DbGFzc2lmaWVyLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ2xhc3NpZmllci5qYXZhLHYgMS45IDIwMDQvMDYvMDIgMDU6MDI6MjYga2h1c3NleSBFeHAgJAorICogJElkOiBDbGFzc2lmaWVyLmphdmEsdiAxLjEwIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTI1LDYgKzI1LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5DbGFzc2lmaWVyPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBjbGFzc2lmaWVyIGlzIGEgbmFtZXNwYWNlIHdob3NlIG1lbWJlcnMgY2FuIGluY2x1ZGUgZmVhdHVyZXMuIENsYXNzaWZpZXIgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiBBIGNsYXNzaWZpZXIgaXMgYSB0eXBlIGFuZCBjYW4gb3duIGdlbmVyYWxpemF0aW9ucywgdGhlcmVieSBtYWtpbmcgaXQgcG9zc2libGUgdG8gZGVmaW5lIGdlbmVyYWxpemF0aW9uIHJlbGF0aW9uc2hpcHMgdG8gb3RoZXIgY2xhc3NpZmllcnMuIEEgY2xhc3NpZmllciBjYW4gc3BlY2lmeSBhIGdlbmVyYWxpemF0aW9uIGhpZXJhcmNoeSBieSByZWZlcmVuY2luZyBpdHMgZ2VuZXJhbCBjbGFzc2lmaWVycy4gQSBjbGFzc2lmaWVyIGlzIGEgcmVkZWZpbmFibGUgZWxlbWVudCwgbWVhbmluZyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIHJlZGVmaW5lIG5lc3RlZCBjbGFzc2lmaWVycy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9DbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlci5qYXZhCmluZGV4IDg4OWUwMzkuLjk0MGMxZGUgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlci5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlci5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IENsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlci5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBDbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+Q2xhc3NpZmllciBUZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBDbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIgaXMgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgd2hlcmUgdGhlIHBhcmFtZXRlcmVkIGVsZW1lbnQgaXMgYSBDbGFzc2lmaWVyIGluIGl0cyBjYXBhY2l0eSBvZiBiZWluZyBhIGtpbmQgb2YgUGFyYW1ldGVyYWJsZUVsZW1lbnQuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29sbGFib3JhdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29sbGFib3JhdGlvbi5qYXZhCmluZGV4IGI2M2RlMGMuLjMxNDU1YjEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NvbGxhYm9yYXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db2xsYWJvcmF0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ29sbGFib3JhdGlvbi5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBDb2xsYWJvcmF0aW9uLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTksNiArMTksMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNvbGxhYm9yYXRpb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGNvbGxhYm9yYXRpb24gaXMgcmVwcmVzZW50ZWQgYXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgYW5kIGRlZmluZXMgYSBzZXQgb2YgY29vcGVyYXRpbmcgZW50aXRpZXMgdG8gYmUgcGxheWVkIGJ5IGluc3RhbmNlcyAoaXRzIHJvbGVzKSwgYXMgd2VsbCBhcyBhIHNldCBvZiBjb25uZWN0b3JzIHRoYXQgZGVmaW5lIGNvbW11bmljYXRpb24gcGF0aHMgYmV0d2VlbiB0aGUgcGFydGljaXBhdGluZyBpbnN0YW5jZXMuIFRoZSBjb29wZXJhdGluZyBlbnRpdGllcyBhcmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNvbGxhYm9yYXRpb24gKHNlZSCTUHJvcGVydHmUIG9uIHBhZ2UgMTYxKS4gQSBjb2xsYWJvcmF0aW9uIHNwZWNpZmllcyBhIHZpZXcgKG9yIHByb2plY3Rpb24pIG9mIGEgc2V0IG9mIGNvb3BlcmF0aW5nIGNsYXNzaWZpZXJzLiBJdCBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIGxpbmtzIGJldHdlZW4gaW5zdGFuY2VzIHRoYXQgcGxheSB0aGUgcm9sZXMgb2YgdGhlIGNvbGxhYm9yYXRpb24sIGFzIHdlbGwgYXMgdGhlIGZlYXR1cmVzIHJlcXVpcmVkIG9mIHRoZSBjbGFzc2lmaWVycyB0aGF0IHNwZWNpZnkgdGhlIHBhcnRpY2lwYXRpbmcgaW5zdGFuY2VzLiBTZXZlcmFsIGNvbGxhYm9yYXRpb25zIG1heSBkZXNjcmliZSBkaWZmZXJlbnQgcHJvamVjdGlvbnMgb2YgdGhlIHNhbWUgc2V0IG9mIGNsYXNzaWZpZXJzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZS5qYXZhCmluZGV4IDk1Y2M0MWIuLmM4ODhlNDUgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NvbGxhYm9yYXRpb25PY2N1cnJlbmNlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29sbGFib3JhdGlvbk9jY3VycmVuY2UuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZS5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZS5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Db2xsYWJvcmF0aW9uIE9jY3VycmVuY2U8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGNvbGxhYm9yYXRpb24gb2NjdXJyZW5jZSByZXByZXNlbnRzIG9uZSBwYXJ0aWN1bGFyIHVzZSBvZiBhIGNvbGxhYm9yYXRpb24gdG8gZXhwbGFpbiB0aGUgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY2xhc3NpZmllci4gQSBjb2xsYWJvcmF0aW9uIG9jY3VycmVuY2UgaW5kaWNhdGVzIGEgc2V0IG9mIHJvbGVzIGFuZCBjb25uZWN0b3JzIHRoYXQgY29vcGVyYXRlIHdpdGhpbiB0aGUgY2xhc3NpZmllciBhY2NvcmRpbmcgdG8gYSBnaXZlbiBjb2xsYWJvcmF0aW9uLCBpbmRpY2F0ZWQgYnkgdGhlIHR5cGUgb2YgdGhlIGNvbGxhYm9yYXRpb24gb2NjdXJyZW5jZS4gVGhlcmUgbWF5IGJlIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIGEgZ2l2ZW4gY29sbGFib3JhdGlvbiB3aXRoaW4gYSBjbGFzc2lmaWVyLCBlYWNoIGludm9sdmluZyBhIGRpZmZlcmVudCBzZXQgb2Ygcm9sZXMgYW5kIGNvbm5lY3RvcnMuIEEgZ2l2ZW4gcm9sZSBvciBjb25uZWN0b3IgbWF5IGJlIGludm9sdmVkIGluIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIHRoZSBzYW1lIG9yIGRpZmZlcmVudCBjb2xsYWJvcmF0aW9ucy4gQXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMgbWFwIGZlYXR1cmVzIG9mIHRoZSBjb2xsYWJvcmF0aW9uIHR5cGUgdG8gZmVhdHVyZXMgaW4gdGhlIGNsYXNzaWZpZXIuIFRoZXNlIGRlcGVuZGVuY2llcyBpbmRpY2F0ZSB3aGljaCByb2xlIGluIHRoZSBjbGFzc2lmaWVyIHBsYXlzIHdoaWNoIHJvbGUgaW4gdGhlIGNvbGxhYm9yYXRpb24uIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29tbWVudC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29tbWVudC5qYXZhCmluZGV4IGI0NDE0NGIuLjJhMWM5MDUgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NvbW1lbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db21tZW50LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ29tbWVudC5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBDb21tZW50LmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNvbW1lbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGNvbW1lbnQgZ2l2ZXMgdGhlIGFiaWxpdHkgdG8gYXR0YWNoIHZhcmlvdXMgcmVtYXJrcyB0byBlbGVtZW50cy4gQSBjb21tZW50IGNhcnJpZXMgbm8gc2VtYW50aWMgZm9yY2UsIGJ1dCBtYXkgY29udGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlzIHVzZWZ1bCB0byBhIG1vZGVsZXIuIEEgY29tbWVudCBjYW4gYmUgb3duZWQgYnkgYW55IGVsZW1lbnQuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29ubmVjdGFibGVFbGVtZW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0YWJsZUVsZW1lbnQuamF2YQppbmRleCBhNDkyMjhhLi5kZDcwMzNhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0YWJsZUVsZW1lbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0YWJsZUVsZW1lbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBDb25uZWN0YWJsZUVsZW1lbnQuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogQ29ubmVjdGFibGVFbGVtZW50LmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTksNiArMTksMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNvbm5lY3RhYmxlIEVsZW1lbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIENvbm5lY3RhYmxlRWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgcmVwcmVzZW50aW5nIGEgc2V0IG9mIGluc3RhbmNlcyB0aGF0IGFyZSBvd25lZCBieSBhIGNvbnRhaW5pbmcgY2xhc3NpZmllciBpbnN0YW5jZS4gQ29ubmVjdGFibGUgZWxlbWVudHMgbWF5IGJlIGpvaW5lZCBieSBhdHRhY2hlZCBjb25uZWN0b3JzIGFuZCBzcGVjaWZ5IGNvbmZpZ3VyYXRpb25zIG9mIGxpbmtlZCBpbnN0YW5jZXMgdG8gYmUgY3JlYXRlZCB3aXRoaW4gYW4gaW5zdGFuY2Ugb2YgdGhlIGNvbnRhaW5pbmcgY2xhc3NpZmllci4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIuamF2YQppbmRleCBkNzYxOWZlLi4zZWI5NmExIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlci5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+Q29ubmVjdGFibGUgRWxlbWVudCBUZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBDb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlciBpcyBhIHRlbXBsYXRlIHBhcmFtZXRlciB3aGVyZSB0aGUgcGFyYW1ldGVyZWQgZWxlbWVudCBpcyBhIENvbm5lY3RhYmxlRWxlbWVudC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRDb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlcigpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0aW9uUG9pbnRSZWZlcmVuY2UuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS5qYXZhCmluZGV4IDg0ZjU5OTUuLmNhOWQ1YWEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IENvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDEga2h1c3NleSBFeHAgJAorICogJElkOiBDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+Q29ubmVjdGlvbiBQb2ludCBSZWZlcmVuY2U8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBDb25uZWN0aW9uIHBvaW50IHJlZmVyZW5jZXMgb2YgYSBzdWJtYWNoaW5lIHN0YXRlIGNhbiBiZSB1c2VkIGFzIHNvdXJjZXMvdGFyZ2V0cyBvZiB0cmFuc2l0aW9ucy4gVGhleSByZXByZXNlbnQgZW50cmllcyBpbnRvIG9yIGV4aXRzIG91dCBvZiB0aGUgc3VibWFjaGluZSBzdGF0ZSBtYWNoaW5lIHJlZmVyZW5jZWQgYnkgdGhlIHN1Ym1hY2hpbmUgc3RhdGUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29ubmVjdG9yLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0b3IuamF2YQppbmRleCAwNjU3Mzc3Li4xZWIyMDEwIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0b3IuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0b3IuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBDb25uZWN0b3IuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogQ29ubmVjdG9yLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNvbm5lY3RvcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEVhY2ggY29ubmVjdG9yIG1heSBiZSBhdHRhY2hlZCB0byB0d28gb3IgbW9yZSBjb25uZWN0YWJsZSBlbGVtZW50cywgZWFjaCByZXByZXNlbnRpbmcgYSBzZXQgb2YgaW5zdGFuY2VzLiBFYWNoIGNvbm5lY3RvciBlbmQgCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25uZWN0b3JFbmQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3RvckVuZC5qYXZhCmluZGV4IGEwZjdkYTQuLmQzMjFlNjcgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3RvckVuZC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0Nvbm5lY3RvckVuZC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IENvbm5lY3RvckVuZC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBDb25uZWN0b3JFbmQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+Q29ubmVjdG9yIEVuZDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgY29ubmVjdG9yIGVuZCBpcyBhbiBlbmRwb2ludCBvZiBhIGNvbm5lY3Rvciwgd2hpY2ggYXR0YWNoZXMgdGhlIGNvbm5lY3RvciB0byBhIGNvbm5lY3RhYmxlIGVsZW1lbnQuIEVhY2ggY29ubmVjdG9yIGVuZCBpcyBwYXJ0IG9mIG9uZSBjb25uZWN0b3IuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29uc3RyYWludC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvQ29uc3RyYWludC5qYXZhCmluZGV4IDhiNjJkYWYuLjhmOWE2NjAgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0NvbnN0cmFpbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Db25zdHJhaW50LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogQ29uc3RyYWludC5qYXZhLHYgMS4zIDIwMDQvMDQvMjcgMTY6Mzg6NTQga2h1c3NleSBFeHAgJAorICogJElkOiBDb25zdHJhaW50LmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjQsNiArMjQsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkNvbnN0cmFpbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBDb25zdHJhaW50IGNvbnRhaW5zIGEgVmFsdWVTcGVjaWZpY2F0aW9uIHRoYXQgc3BlY2lmaWVzIGFkZGl0aW9uYWwgc2VtYW50aWNzIGZvciBvbmUgb3IgbW9yZSBlbGVtZW50cy4gQ2VydGFpbiBraW5kcyBvZiBjb25zdHJhaW50cyAoc3VjaCBhcyBhbiBhc3NvY2lhdGlvbiCTeG9ylCBjb25zdHJhaW50KSBhcmUgcHJlZGVmaW5lZCBpbiBVTUwsIG90aGVycyBtYXkgYmUgdXNlci1kZWZpbmVkLiBBIHVzZXItZGVmaW5lZCBDb25zdHJhaW50IGlzIGRlc2NyaWJlZCB1c2luZyBhIHNwZWNpZmllZCBsYW5ndWFnZSwgd2hvc2Ugc3ludGF4IGFuZCBpbnRlcnByZXRhdGlvbiBpcyBhIHRvb2wgcmVzcG9uc2liaWxpdHkuIE9uZSBwcmVkZWZpbmVkIGxhbmd1YWdlIGZvciB3cml0aW5nIGNvbnN0cmFpbnRzIGlzIE9DTC4gSW4gc29tZSBzaXR1YXRpb25zLCBhIHByb2dyYW1taW5nIGxhbmd1YWdlIHN1Y2ggYXMgSmF2YSBtYXkgYmUgYXBwcm9wcmlhdGUgZm9yIGV4cHJlc3NpbmcgYSBjb25zdHJhaW50LiBJbiBvdGhlciBzaXR1YXRpb25zIG5hdHVyYWwgbGFuZ3VhZ2UgbWF5IGJlIHVzZWQuIENvbnN0cmFpbnQgaXMgYSBjb25kaXRpb24gKGEgQm9vbGVhbiBleHByZXNzaW9uKSB0aGF0IHJlc3RyaWN0cyB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBhc3NvY2lhdGVkIGVsZW1lbnQgYmV5b25kIHdoYXQgaXMgaW1wb3NlZCBieSB0aGUgb3RoZXIgbGFuZ3VhZ2UgY29uc3RydWN0cyBhcHBsaWVkIHRvIHRoYXQgZWxlbWVudC4gQ29uc3RyYWludCBjb250YWlucyBhbiBvcHRpb25hbCBuYW1lLCBhbHRob3VnaCB0aGV5IGFyZSBjb21tb25seSB1bm5hbWVkLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RhdGFUeXBlLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EYXRhVHlwZS5qYXZhCmluZGV4IDcxZDEyMDAuLjEwZWZjZjQgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RhdGFUeXBlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRGF0YVR5cGUuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBEYXRhVHlwZS5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBEYXRhVHlwZS5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIzLDYgKzIzLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5EYXRhIFR5cGU8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBEYXRhVHlwZSBkZWZpbmVzIGEga2luZCBvZiBjbGFzc2lmaWVyIGluIHdoaWNoIG9wZXJhdGlvbnMgYXJlIGFsbCBwdXJlIGZ1bmN0aW9ucyAoaS5lLiwgdGhleSBjYW4gcmV0dXJuIGRhdGEgdmFsdWVzIGJ1dCB0aGV5IGNhbm5vdCBjaGFuZ2UgZGF0YSB2YWx1ZXMsIGJlY2F1c2UgdGhleSBoYXZlIG5vIGlkZW50aXR5KS4gRm9yIGV4YW1wbGUsIGFuIJNhZGSUIG9wZXJhdGlvbiBvbiBhIG51bWJlciB3aXRoIGFub3RoZXIgbnVtYmVyIGFzIGFuIGFyZ3VtZW50IHlpZWxkcyBhIHRoaXJkIG51bWJlciBhcyBhIHJlc3VsdDsgdGhlIHRhcmdldCBhbmQgYXJndW1lbnQgYXJlIHVuY2hhbmdlZC4gQSBEYXRhVHlwZSBtYXkgYWxzbyBjb250YWluIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydCB0aGUgbW9kZWxpbmcgb2Ygc3RydWN0dXJlZCBkYXRhIHR5cGVzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RlcGVuZGVuY3kuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RlcGVuZGVuY3kuamF2YQppbmRleCA4MjE0MTM4Li5lZWYxM2FiIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EZXBlbmRlbmN5LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRGVwZW5kZW5jeS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IERlcGVuZGVuY3kuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAxIGtodXNzZXkgRXhwICQKKyAqICRJZDogRGVwZW5kZW5jeS5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5EZXBlbmRlbmN5PC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBkZXBlbmRlbmN5IGlzIGEgcmVsYXRpb25zaGlwIHRoYXQgc2lnbmlmaWVzIHRoYXQgYSBzaW5nbGUgb3IgYSBzZXQgb2YgbW9kZWwgZWxlbWVudHMgcmVxdWlyZXMgb3RoZXIgbW9kZWwgZWxlbWVudHMgZm9yIHRoZWlyIHNwZWNpZmljYXRpb24gb3IgaW1wbGVtZW50YXRpb24uIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29tcGxldGUgc2VtYW50aWNzIG9mIHRoZSBkZXBlbmRpbmcgZWxlbWVudHMgaXMgZWl0aGVyIHNlbWFudGljYWxseSBvciBzdHJ1Y3R1cmFsbHkgZGVwZW5kZW50IG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzdXBwbGllciBlbGVtZW50KHMpLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RpcmVjdGVkUmVsYXRpb25zaGlwLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EaXJlY3RlZFJlbGF0aW9uc2hpcC5qYXZhCmluZGV4IDQ3YjY1YmQuLjNkOGQ4OGIgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0RpcmVjdGVkUmVsYXRpb25zaGlwLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRGlyZWN0ZWRSZWxhdGlvbnNoaXAuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBEaXJlY3RlZFJlbGF0aW9uc2hpcC5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBEaXJlY3RlZFJlbGF0aW9uc2hpcC5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5EaXJlY3RlZCBSZWxhdGlvbnNoaXA8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGRpcmVjdGVkIHJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIG9uZSBvciBtb3JlIHNvdXJjZSBlbGVtZW50cyBhbmQgb25lIG9yIG1vcmUgdGFyZ2V0IGVsZW1lbnRzLiBEaXJlY3RlZCByZWxhdGlvbnNoaXAgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0R1cmF0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbi5qYXZhCmluZGV4IDBlNjE2ZGQuLjU5NTI1MGUgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0R1cmF0aW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRHVyYXRpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBEdXJhdGlvbi5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBEdXJhdGlvbi5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5EdXJhdGlvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgZHVyYXRpb24gZGVmaW5lcyBhIHZhbHVlIHNwZWNpZmljYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHRlbXBvcmFsIGRpc3RhbmNlIGJldHdlZW4gdHdvIHRpbWUgZXhwcmVzc2lvbnMgdGhhdCBzcGVjaWZ5IHRpbWUgaW5zdGFudHMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRHVyYXRpb25Db25zdHJhaW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbkNvbnN0cmFpbnQuamF2YQppbmRleCAyNmNiMzk1Li5lYmEyNWU1IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbkNvbnN0cmFpbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbkNvbnN0cmFpbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBEdXJhdGlvbkNvbnN0cmFpbnQuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogRHVyYXRpb25Db25zdHJhaW50LmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTcsNiArMTcsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkR1cmF0aW9uIENvbnN0cmFpbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIER1cmF0aW9uQ29uc3RyYWludCBkZWZpbmVzIGEgQ29uc3RyYWludCB0aGF0IHJlZmVycyB0byBhIER1cmF0aW9uSW50ZXJ2YWwuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqCiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0RHVyYXRpb25Db25zdHJhaW50KCkKICAqIEBtb2RlbCAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0R1cmF0aW9uSW50ZXJ2YWwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0R1cmF0aW9uSW50ZXJ2YWwuamF2YQppbmRleCA0Zjg4YTRkLi5hNDQ2Zjc3IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbkludGVydmFsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRHVyYXRpb25JbnRlcnZhbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IER1cmF0aW9uSW50ZXJ2YWwuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogRHVyYXRpb25JbnRlcnZhbC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5EdXJhdGlvbiBJbnRlcnZhbDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgRHVyYXRpb25JbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byBEdXJhdGlvbnMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqCiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0RHVyYXRpb25JbnRlcnZhbCgpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9EdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uLmphdmEKaW5kZXggYzc4MDRhNi4uYzkzMDEzNyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0R1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMSw2ICsyMSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RHVyYXRpb24gT2JzZXJ2YXRpb24gQWN0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uIGRlZmluZXMgYW4gYWN0aW9uIHRoYXQgb2JzZXJ2ZXMgZHVyYXRpb24gaW4gdGltZS4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbGVtZW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbGVtZW50LmphdmEKaW5kZXggZGIyZTRkYi4uOGU5ZTBmYSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRWxlbWVudC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0VsZW1lbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBFbGVtZW50LmphdmEsdiAxLjYgMjAwNC8wNS8xOCAyMTowMDo0OCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEVsZW1lbnQuamF2YSx2IDEuNyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yNiw2ICsyNiwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RWxlbWVudDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIHdpdGggbm8gc3VwZXJjbGFzcy4gSXQgaXMgdXNlZCBhcyB0aGUgY29tbW9uIHN1cGVyY2xhc3MgZm9yIGFsbCBtZXRhY2xhc3NlcyBpbiB0aGUgaW5mcmFzdHJ1Y3R1cmUgbGlicmFyeS4gRWxlbWVudCBoYXMgYSBkZXJpdmVkIGNvbXBvc2l0aW9uIGFzc29jaWF0aW9uIHRvIGl0c2VsZiB0byBzdXBwb3J0IHRoZSBnZW5lcmFsIGNhcGFiaWxpdHkgZm9yIGVsZW1lbnRzIHRvIG93biBvdGhlciBlbGVtZW50cy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbGVtZW50SW1wb3J0LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbGVtZW50SW1wb3J0LmphdmEKaW5kZXggOGFkYTI1Yy4uMDM4MTJjMiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRWxlbWVudEltcG9ydC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0VsZW1lbnRJbXBvcnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBFbGVtZW50SW1wb3J0LmphdmEsdiAxLjMgMjAwNC8wNC8yNyAxNjozODo1NSBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEVsZW1lbnRJbXBvcnQuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMiw2ICsyMiwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBlbGVtZW50IGltcG9ydCBpcyBkZWZpbmVkIGFzIGEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIGJldHdlZW4gYW4gaW1wb3J0aW5nIG5hbWVzcGFjZSBhbmQgYSBwYWNrYWdlYWJsZSBlbGVtZW50LiBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZWFibGUgZWxlbWVudCBvciBpdHMgYWxpYXMgaXMgdG8gYmUgYWRkZWQgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgaW1wb3J0aW5nIG5hbWVzcGFjZS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjb250cm9sIHdoZXRoZXIgdGhlIGltcG9ydGVkIGVsZW1lbnQgY2FuIGJlIGZ1cnRoZXIgaW1wb3J0ZWQuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW5jYXBzdWxhdGVkQ2xhc3NpZmllci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW5jYXBzdWxhdGVkQ2xhc3NpZmllci5qYXZhCmluZGV4IDQ4Y2RlNWEuLjhmMGU0ZjkgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0VuY2Fwc3VsYXRlZENsYXNzaWZpZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbmNhcHN1bGF0ZWRDbGFzc2lmaWVyLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogRW5jYXBzdWxhdGVkQ2xhc3NpZmllci5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkVuY2Fwc3VsYXRlZCBDbGFzc2lmaWVyPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogRXh0ZW5kcyBhIGNsYXNzaWZpZXIgd2l0aCB0aGUgYWJpbGl0eSB0byBvd24gcG9ydHMgYXMgc3BlY2lmaWMgYW5kIHR5cGUgY2hlY2tlZCBpbnRlcmFjdGlvbiBwb2ludHMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW51bWVyYXRpb24uamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0VudW1lcmF0aW9uLmphdmEKaW5kZXggMzM3NzQ5Yy4uMDU1MTVmNCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW51bWVyYXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FbnVtZXJhdGlvbi5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEVudW1lcmF0aW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEVudW1lcmF0aW9uLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkVudW1lcmF0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogRW51bWVyYXRpb24gaXMgYSBraW5kIG9mIGRhdGEgdHlwZSwgd2hvc2UgaW5zdGFuY2VzIG1heSBiZSBhbnkgb2YgYSBudW1iZXIgb2YgdXNlci1kZWZpbmVkIGVudW1lcmF0aW9uIGxpdGVyYWxzLiBJdCBpcyBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHNldCBvZiBhcHBsaWNhYmxlIGVudW1lcmF0aW9uIGxpdGVyYWxzIGluIG90aGVyIHBhY2thZ2VzIG9yIHByb2ZpbGVzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0VudW1lcmF0aW9uTGl0ZXJhbC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW51bWVyYXRpb25MaXRlcmFsLmphdmEKaW5kZXggYTE5ZTQxZi4uYTNmNTFmNSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW51bWVyYXRpb25MaXRlcmFsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRW51bWVyYXRpb25MaXRlcmFsLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogRW51bWVyYXRpb25MaXRlcmFsLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEVudW1lcmF0aW9uTGl0ZXJhbC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5FbnVtZXJhdGlvbiBMaXRlcmFsPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQW4gZW51bWVyYXRpb24gbGl0ZXJhbCBpcyBhIHVzZXItZGVmaW5lZCBkYXRhIHZhbHVlIGZvciBhbiBlbnVtZXJhdGlvbi4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FeHByZXNzaW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FeHByZXNzaW9uLmphdmEKaW5kZXggZWZiOTJlZC4uNjVmYzBmNiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRXhwcmVzc2lvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0V4cHJlc3Npb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBFeHByZXNzaW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEV4cHJlc3Npb24uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMSw2ICsyMSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RXhwcmVzc2lvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEFuIGV4cHJlc3Npb24gcmVwcmVzZW50cyBhIG5vZGUgaW4gYW4gZXhwcmVzc2lvbiB0cmVlLCB3aGljaCBtYXkgYmUgbm9uLXRlcm1pbmFsIG9yIHRlcm1pbmFsLiBJdCBkZWZpbmVzIGEgc3ltYm9sLCBhbmQgaGFzIGEgcG9zc2libHkgZW1wdHkgc2VxdWVuY2Ugb2Ygb3BlcmFuZHMgd2hpY2ggYXJlIHZhbHVlIHNwZWNpZmljYXRpb25zLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0V4dGVuZC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRXh0ZW5kLmphdmEKaW5kZXggNTAwMTliMC4uMGU3NzA1MyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRXh0ZW5kLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRXh0ZW5kLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogRXh0ZW5kLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo0OSBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEV4dGVuZC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5FeHRlbmQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBUaGlzIHJlbGF0aW9uc2hpcCBzcGVjaWZpZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgYSB1c2UgY2FzZSBtYXkgYmUgZXh0ZW5kZWQgYnkgdGhlIGJlaGF2aW9yIG9mIGFub3RoZXIgKHVzdWFsbHkgc3VwcGxlbWVudGFyeSkgdXNlIGNhc2UuIFRoZSBleHRlbnNpb24gdGFrZXMgcGxhY2UgYXQgb25lIG9yIG1vcmUgc3BlY2lmaWMgZXh0ZW5zaW9uIHBvaW50cyBkZWZpbmVkIGluIHRoZSBleHRlbmRlZCB1c2UgY2FzZS4gTm90ZSwgaG93ZXZlciwgdGhhdCB0aGUgZXh0ZW5kZWQgdXNlIGNhc2UgaXMgZGVmaW5lZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbmRpbmcgdXNlIGNhc2UgYW5kIGlzIG1lYW5pbmdmdWwgaW5kZXBlbmRlbnRseSBvZiB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlLiBPbiB0aGUgb3RoZXIgaGFuZCwgdGhlIGV4dGVuZGluZyB1c2UgY2FzZSB0eXBpY2FsbHkgZGVmaW5lcyBiZWhhdmlvciB0aGF0IG1heSBub3QgbmVjZXNzYXJpbHkgYmUgbWVhbmluZ2Z1bCBieSBpdHNlbGYuIEluc3RlYWQsIHRoZSBleHRlbmRpbmcgdXNlIGNhc2UgZGVmaW5lcyBhIHNldCBvZiBtb2R1bGFyIGJlaGF2aW9yIGluY3JlbWVudHMgdGhhdCBhdWdtZW50IGFuIGV4ZWN1dGlvbiBvZiB0aGUgZXh0ZW5kZWQgdXNlIGNhc2UgdW5kZXIgc3BlY2lmaWMgY29uZGl0aW9ucy4gTm90ZSB0aGF0IHRoZSBzYW1lIGV4dGVuZGluZyB1c2UgY2FzZSBjYW4gZXh0ZW5kIG1vcmUgdGhhbiBvbmUgdXNlIGNhc2UuIEZ1cnRoZXJtb3JlLCBhbiBleHRlbmRpbmcgdXNlIGNhc2UgbWF5IGl0c2VsZiBiZSBleHRlbmRlZC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FeHRlbnNpb25Qb2ludC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRXh0ZW5zaW9uUG9pbnQuamF2YQppbmRleCA3MTBjN2M1Li43YjhlZmM5IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9FeHRlbnNpb25Qb2ludC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0V4dGVuc2lvblBvaW50LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogRXh0ZW5zaW9uUG9pbnQuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogRXh0ZW5zaW9uUG9pbnQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RXh0ZW5zaW9uIFBvaW50PC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQW4gRXh0ZW5zaW9uUG9pbnQgaXMgYSBmZWF0dXJlIG9mIGEgdXNlIGNhc2UgdGhhdCBpZGVudGlmaWVzIGEgcG9pbnQgd2hlcmUgdGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgY2FuIGJlIGF1Z21lbnRlZCB3aXRoIGVsZW1lbnRzIG9mIGFub3RoZXIgKGV4dGVuZGluZykgdXNlIGNhc2UuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRmVhdHVyZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvRmVhdHVyZS5qYXZhCmluZGV4IDE5ZTJmYmYuLjVlOTNmZmQgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ZlYXR1cmUuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9GZWF0dXJlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogRmVhdHVyZS5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBGZWF0dXJlLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTksNiArMTksMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGZlYXR1cmUgZGVjbGFyZXMgYSBiZWhhdmlvcmFsIG9yIHN0cnVjdHVyYWwgY2hhcmFjdGVyaXN0aWMgb2YgaW5zdGFuY2VzIG9mIGNsYXNzaWZpZXJzLiBGZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9HZW5lcmFsaXphdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvR2VuZXJhbGl6YXRpb24uamF2YQppbmRleCAxMjY5MzM3Li40Y2ZkY2Q4IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9HZW5lcmFsaXphdGlvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0dlbmVyYWxpemF0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogR2VuZXJhbGl6YXRpb24uamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogR2VuZXJhbGl6YXRpb24uamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+R2VuZXJhbGl6YXRpb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGdlbmVyYWxpemF0aW9uIHJlbGF0ZXMgYSBzcGVjaWZpYyBjbGFzc2lmaWVyIHRvIGEgbW9yZSBnZW5lcmFsIGNsYXNzaWZpZXIsIGFuZCBpcyBvd25lZCBieSB0aGUgc3BlY2lmaWMgY2xhc3NpZmllci4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9HZW5lcmFsaXphdGlvblNldC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvR2VuZXJhbGl6YXRpb25TZXQuamF2YQppbmRleCA3YTY3MDA4Li4yMjMzYzRhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9HZW5lcmFsaXphdGlvblNldC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0dlbmVyYWxpemF0aW9uU2V0LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogR2VuZXJhbGl6YXRpb25TZXQuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogR2VuZXJhbGl6YXRpb25TZXQuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+R2VuZXJhbGl6YXRpb24gU2V0PC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogRWFjaCBHZW5lcmFsaXphdGlvbiBpcyBhIGJpbmFyeSByZWxhdGlvbnNoaXAgdGhhdCByZWxhdGVzIGEgc3BlY2lmaWMgQ2xhc3NpZmllciB0byBhIG1vcmUgZ2VuZXJhbCBDbGFzc2lmaWVyIChpLmUuLCBhIHN1YmNsYXNzKS4gRWFjaCBHZW5lcmFsaXphdGlvblNldCBkZWZpbmVzIGEgcGFydGljdWxhciBzZXQgb2YgR2VuZXJhbGl6YXRpb24gcmVsYXRpb25zaGlwcyB0aGF0IGRlc2NyaWJlIHRoZSB3YXkgaW4gd2hpY2ggYSBzcGVjaWZpYyBDbGFzc2lmaWVyIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW1wbGVtZW50YXRpb24uamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ltcGxlbWVudGF0aW9uLmphdmEKaW5kZXggNDRkNzA1ZS4uYjg4MzFiZiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW1wbGVtZW50YXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbXBsZW1lbnRhdGlvbi5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEltcGxlbWVudGF0aW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEltcGxlbWVudGF0aW9uLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTksNiArMTksMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQW4gSW1wbGVtZW50YXRpb24gaXMgYSBzcGVjaWFsaXplZCBSZWFsaXphdGlvbiByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENsYXNzaWZpZXIgYW5kIGFuIEludGVyZmFjZS4gVGhlIGltcGxlbWVudGF0aW9uIHJlbGF0aW9uc2hpcCBzaWduaWZpZXMgdGhhdCB0aGUgcmVhbGl6aW5nIGNsYXNzaWZpZXIgY29uZm9ybXMgdG8gdGhlIGNvbnRyYWN0IHNwZWNpZmllZCBieSB0aGUgaW50ZXJmYWNlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0luc3RhbmNlU3BlY2lmaWNhdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW5zdGFuY2VTcGVjaWZpY2F0aW9uLmphdmEKaW5kZXggZjk3ODJmYy4uODZjYTllMSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW5zdGFuY2VTcGVjaWZpY2F0aW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW5zdGFuY2VTcGVjaWZpY2F0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogSW5zdGFuY2VTcGVjaWZpY2F0aW9uLmphdmEsdiAxLjQgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEluc3RhbmNlU3BlY2lmaWNhdGlvbi5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTI0LDYgKzI0LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5JbnN0YW5jZSBTcGVjaWZpY2F0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogSW4gdGhlIG1ldGFtb2RlbCwgSW5zdGFuY2VTcGVjaWZpY2F0aW9uIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgRGVwbG95bWVudFRhcmdldCBhbmQgRGVwbG95ZWRBcnRpZmFjdC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnN0YW5jZVZhbHVlLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnN0YW5jZVZhbHVlLmphdmEKaW5kZXggZjRkN2QxNi4uMTAwZmI4NSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW5zdGFuY2VWYWx1ZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0luc3RhbmNlVmFsdWUuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBJbnN0YW5jZVZhbHVlLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEluc3RhbmNlVmFsdWUuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+SW5zdGFuY2UgVmFsdWU8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBpbnN0YW5jZSB2YWx1ZSBzcGVjaWZpZXMgdGhlIHZhbHVlIG1vZGVsZWQgYnkgYW4gaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbi4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnRlcmFjdGlvbk9jY3VycmVuY2UuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVyYWN0aW9uT2NjdXJyZW5jZS5qYXZhCmluZGV4IDA5ZjJiMTUuLjc4ODU1YzggMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVyYWN0aW9uT2NjdXJyZW5jZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVyYWN0aW9uT2NjdXJyZW5jZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEludGVyYWN0aW9uT2NjdXJyZW5jZS5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBJbnRlcmFjdGlvbk9jY3VycmVuY2UuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMiw3ICsyMiw3IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCiAgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KLSAqIEEgcmVmZXJlbmNlIHRvIGFuIGludGVyYWN0aW9uIHdpdGggYWN0dWFsIHZhbHVlcy4gVGhlIGludGVycHJldGF0aW9uIGlzIHRoYXQgdGhlIHNlcXVlbmNlIGRpYWdyYW0gcmVwbGFjZXMgdGhlIHJlZmVyZW5jZSAod2l0aCBhY3R1YWwgcGFyYW1ldGVycyBzdWJzdGl0dXRlZCkKKyAqIEludGVyYWN0aW9uT2NjdXJyZW5jZSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIEludGVyYWN0aW9uRnJhZ21lbnQuIEFuIEludGVyYWN0aW9uT2NjdXJyZW5jZSBoYXMgYSBzZXQgb2YgYWN0dWFsIGdhdGVzIHRoYXQgbXVzdCBtYXRjaCB0aGUgZm9ybWFsIGdhdGVzIG9mIHRoZSByZWZlcmVuY2VkIEludGVyYWN0aW9uLiAKICAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KICAqCiAgKiA8cD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVyZmFjZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW50ZXJmYWNlLmphdmEKaW5kZXggMzlmY2QxMS4uYThkYTVhZiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW50ZXJmYWNlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW50ZXJmYWNlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogSW50ZXJmYWNlLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IEludGVyZmFjZS5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5JbnRlcmZhY2U8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBpbnRlcmZhY2UgaXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgdGhhdCByZXByZXNlbnRzIGEgZGVjbGFyYXRpb24gb2YgYSBzZXQgb2YgY29oZXJlbnQgcHVibGljIGZlYXR1cmVzIGFuZCBvYmxpZ2F0aW9ucy4gSW4gYSBzZW5zZSwgCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnRlcnZhbC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvSW50ZXJ2YWwuamF2YQppbmRleCAyOGRiOGM5Li5jNzE1NDNkIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnRlcnZhbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVydmFsLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogSW50ZXJ2YWwuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogSW50ZXJ2YWwuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+SW50ZXJ2YWw8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBJbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byB2YWx1ZSBzcGVjaWZpY2F0aW9ucy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9JbnRlcnZhbENvbnN0cmFpbnQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVydmFsQ29uc3RyYWludC5qYXZhCmluZGV4IGI5ZmI3MmUuLjExOTZlNTIgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVydmFsQ29uc3RyYWludC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0ludGVydmFsQ29uc3RyYWludC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IEludGVydmFsQ29uc3RyYWludC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBJbnRlcnZhbENvbnN0cmFpbnQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xNyw2ICsxNywxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+SW50ZXJ2YWwgQ29uc3RyYWludDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgSW50ZXJ2YWxDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGFuIEludGVydmFsLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKgogICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLlVNTDJQYWNrYWdlI2dldEludGVydmFsQ29uc3RyYWludCgpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsQm9vbGVhbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbEJvb2xlYW4uamF2YQppbmRleCBkMDQwMWI3Li4zN2ZkMjNjIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsQm9vbGVhbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxCb29sZWFuLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogTGl0ZXJhbEJvb2xlYW4uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogTGl0ZXJhbEJvb2xlYW4uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TGl0ZXJhbCBCb29sZWFuPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBsaXRlcmFsIGJvb2xlYW4gY29udGFpbnMgYSBCb29sZWFuLXZhbHVlZCBhdHRyaWJ1dGUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbEludGVnZXIuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxJbnRlZ2VyLmphdmEKaW5kZXggMTkxMjk4Yi4uZThjYjY2NiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbEludGVnZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsSW50ZWdlci5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IExpdGVyYWxJbnRlZ2VyLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IExpdGVyYWxJbnRlZ2VyLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkxpdGVyYWwgSW50ZWdlcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgbGl0ZXJhbCBpbnRlZ2VyIGNvbnRhaW5zIGFuIEludGVnZXItdmFsdWVkIGF0dHJpYnV0ZS4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsTnVsbC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbE51bGwuamF2YQppbmRleCAwZDZlNWI5Li4xMmRkZjc2IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsTnVsbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxOdWxsLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogTGl0ZXJhbE51bGwuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogTGl0ZXJhbE51bGwuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TGl0ZXJhbCBOdWxsPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBsaXRlcmFsIG51bGwgaXMgdXNlZCB0byByZXByZXNlbnQgbnVsbCwgaS5lLiwgdGhlIGFic2VuY2Ugb2YgYSB2YWx1ZS4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRMaXRlcmFsTnVsbCgpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsU3BlY2lmaWNhdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbFNwZWNpZmljYXRpb24uamF2YQppbmRleCA3YjliYzhiLi5hOWJjYjMwIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsU3BlY2lmaWNhdGlvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxTcGVjaWZpY2F0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogTGl0ZXJhbFNwZWNpZmljYXRpb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogTGl0ZXJhbFNwZWNpZmljYXRpb24uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TGl0ZXJhbCBTcGVjaWZpY2F0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBsaXRlcmFsIHNwZWNpZmljYXRpb24gaXMgYW4gYWJzdHJhY3Qgc3BlY2lhbGl6YXRpb24gb2YgVmFsdWVTcGVjaWZpY2F0aW9uIHRoYXQgaWRlbnRpZmllcyBhIGxpdGVyYWwgY29uc3RhbnQgYmVpbmcgbW9kZWxlZC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRMaXRlcmFsU3BlY2lmaWNhdGlvbigpCiAgKiBAbW9kZWwgYWJzdHJhY3Q9InRydWUiCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsU3RyaW5nLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsU3RyaW5nLmphdmEKaW5kZXggNjE1NTdjYS4uMTIwZDFhZSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbFN0cmluZy5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxTdHJpbmcuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBMaXRlcmFsU3RyaW5nLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IExpdGVyYWxTdHJpbmcuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TGl0ZXJhbCBTdHJpbmc8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGxpdGVyYWwgc3RyaW5nIGNvbnRhaW5zIGEgU3RyaW5nLXZhbHVlZCBhdHRyaWJ1dGUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbFVubGltaXRlZE5hdHVyYWwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL0xpdGVyYWxVbmxpbWl0ZWROYXR1cmFsLmphdmEKaW5kZXggMTcwNjM3Yi4uODI4MTkzMSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTGl0ZXJhbFVubGltaXRlZE5hdHVyYWwuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9MaXRlcmFsVW5saW1pdGVkTmF0dXJhbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IExpdGVyYWxVbmxpbWl0ZWROYXR1cmFsLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IExpdGVyYWxVbmxpbWl0ZWROYXR1cmFsLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkxpdGVyYWwgVW5saW1pdGVkIE5hdHVyYWw8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIGxpdGVyYWwgdW5saW1pdGVkIG5hdHVyYWwgY29udGFpbnMgYSBVbmxpbWl0ZWROYXR1cmFsLXZhbHVlZCBhdHRyaWJ1dGUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTWVzc2FnZVRyaWdnZXIuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL01lc3NhZ2VUcmlnZ2VyLmphdmEKaW5kZXggYzQxMTMxMi4uYjA4MWQxZCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTWVzc2FnZVRyaWdnZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9NZXNzYWdlVHJpZ2dlci5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IE1lc3NhZ2VUcmlnZ2VyLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IE1lc3NhZ2VUcmlnZ2VyLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk1lc3NhZ2UgVHJpZ2dlcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgbWVzc2FnZSB0cmlnZ2VyIHNwZWNpZmllcyB0aGUgYW4gb2JzZXJ2YWJsZSBldmVudCBjYXVzZWQgYnkgYSBlaXRoZXIgYSBjYWxsIG9yIGEgc2lnbmFsLiBNZXNzYWdlVHJpZ2dlciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqCiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0TWVzc2FnZVRyaWdnZXIoKQogICogQG1vZGVsIGFic3RyYWN0PSJ0cnVlIgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTW9kZWwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL01vZGVsLmphdmEKaW5kZXggMDU0MWY5My4uMTdmMjJkMSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTW9kZWwuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Nb2RlbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IE1vZGVsLmphdmEsdiAxLjMgMjAwNC8wNS8xMyAwMzoxNjoyMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IE1vZGVsLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk1vZGVsPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogVGhlIE1vZGVsIGNvbnN0cnVjdCBpcyBkZWZpbmVkIGFzIGEgUGFja2FnZS4gSXQgY29udGFpbnMgYSAoaGllcmFyY2hpY2FsKSBzZXQgb2YgZWxlbWVudHMgdGhhdCB0b2dldGhlciBkZXNjcmliZSB0aGUgcGh5c2ljYWwgc3lzdGVtIGJlaW5nIG1vZGVsZWQuIEEgTW9kZWwgbWF5IGFsc28gY29udGFpbiBhIHNldCBvZiBlbGVtZW50cyB0aGF0IHJlcHJlc2VudHMgdGhlIGVudmlyb25tZW50IG9mIHRoZSBzeXN0ZW0sIHR5cGljYWxseSBBY3RvcnMsIHRvZ2V0aGVyIHdpdGggdGhlaXIgaW50ZXJyZWxhdGlvbnNoaXBzLCBzdWNoIGFzIEFzc29jaWF0aW9ucyBhbmQgRGVwZW5kZW5jaWVzIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTXVsdGlwbGljaXR5RWxlbWVudC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTXVsdGlwbGljaXR5RWxlbWVudC5qYXZhCmluZGV4IDUwYTJmMGEuLmMyY2I2NjggMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL011bHRpcGxpY2l0eUVsZW1lbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9NdWx0aXBsaWNpdHlFbGVtZW50LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogTXVsdGlwbGljaXR5RWxlbWVudC5qYXZhLHYgMS4zIDIwMDQvMDQvMjcgMTY6Mzg6NTUga2h1c3NleSBFeHAgJAorICogJElkOiBNdWx0aXBsaWNpdHlFbGVtZW50LmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjQsNiArMjQsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk11bHRpcGxpY2l0eSBFbGVtZW50PC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBNdWx0aXBsaWNpdHlFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB3aGljaCBpbmNsdWRlcyBvcHRpb25hbCBhdHRyaWJ1dGVzIGZvciBkZWZpbmluZyB0aGUgYm91bmRzIG9mIGEgbXVsdGlwbGljaXR5LiBBIE11bHRpcGxpY2l0eUVsZW1lbnQgYWxzbyBpbmNsdWRlcyBzcGVjaWZpY2F0aW9ucyBvZiB3aGV0aGVyIHRoZSB2YWx1ZXMgaW4gYW4gaW5zdGFudGlhdGlvbiBvZiB0aGlzIGVsZW1lbnQgbXVzdCBiZSB1bmlxdWUgb3Igb3JkZXJlZC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9OYW1lZEVsZW1lbnQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL05hbWVkRWxlbWVudC5qYXZhCmluZGV4IDNjMGFiMjUuLmNjMTMzYzQgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL05hbWVkRWxlbWVudC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL05hbWVkRWxlbWVudC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IE5hbWVkRWxlbWVudC5qYXZhLHYgMS40IDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBOYW1lZEVsZW1lbnQuamF2YSx2IDEuNSAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yNiw2ICsyNiwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TmFtZWQgRWxlbWVudDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgbmFtZWQgZWxlbWVudCByZXByZXNlbnRzIGVsZW1lbnRzIHRoYXQgbWF5IGhhdmUgYSBuYW1lLiBUaGUgbmFtZSBpcyB1c2VkIGZvciBpZGVudGlmaWNhdGlvbiBvZiB0aGUgbmFtZWQgZWxlbWVudCB3aXRoaW4gdGhlIG5hbWVzcGFjZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLiBBIG5hbWVkIGVsZW1lbnQgYWxzbyBoYXMgYSBxdWFsaWZpZWQgbmFtZSB0aGF0IGFsbG93cyBpdCB0byBiZSB1bmFtYmlndW91c2x5IGlkZW50aWZpZWQgd2l0aGluIGEgaGllcmFyY2h5IG9mIG5lc3RlZCBuYW1lc3BhY2VzLiBOYW1lZEVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL05hbWVzcGFjZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTmFtZXNwYWNlLmphdmEKaW5kZXggMDM5NmRkMi4uYmMzZjM4YSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTmFtZXNwYWNlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvTmFtZXNwYWNlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogTmFtZXNwYWNlLmphdmEsdiAxLjQgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IE5hbWVzcGFjZS5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTI1LDYgKzI1LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5OYW1lc3BhY2U8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIG5hbWVzcGFjZSBpcyBhIG5hbWVkIGVsZW1lbnQgdGhhdCBjYW4gb3duIG90aGVyIG5hbWVkIGVsZW1lbnRzLiBFYWNoIG5hbWVkIGVsZW1lbnQgbWF5IGJlIG93bmVkIGJ5IGF0IG1vc3Qgb25lIG5hbWVzcGFjZS4gQSBuYW1lc3BhY2UgcHJvdmlkZXMgYSBtZWFucyBmb3IgaWRlbnRpZnlpbmcgbmFtZWQgZWxlbWVudHMgYnkgbmFtZS4gTmFtZWQgZWxlbWVudHMgY2FuIGJlIGlkZW50aWZpZWQgYnkgbmFtZSBpbiBhIG5hbWVzcGFjZSBlaXRoZXIgYnkgYmVpbmcgZGlyZWN0bHkgb3duZWQgYnkgdGhlIG5hbWVzcGFjZSBvciBieSBiZWluZyBpbnRyb2R1Y2VkIGludG8gdGhlIG5hbWVzcGFjZSBieSBvdGhlciBtZWFucyBlLmcuIGltcG9ydGluZyBvciBpbmhlcml0aW5nLiBOYW1lc3BhY2UgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiBBIG5hbWVzcGFjZSBjYW4gb3duIGNvbnN0cmFpbnRzLiBUaGUgY29uc3RyYWludCBkb2VzIG5vdCBuZWNlc3NhcmlseSBhcHBseSB0byB0aGUgbmFtZXNwYWNlIGl0c2VsZiwgYnV0IG1heSBhbHNvIGFwcGx5IHRvIGVsZW1lbnRzIGluIHRoZSBuYW1lc3BhY2UuIEEgbmFtZXNwYWNlIGhhcyB0aGUgYWJpbGl0eSB0byBpbXBvcnQgZWl0aGVyIGluZGl2aWRpYWwgbWVtYmVycyBvciBhbGwgbWVtYmVycyBvZiBhIHBhY2thZ2UsIHRoZXJlYnkgbWFraW5nIGl0IHBvc3NpYmxlIHRvIHJlZmVyIHRvIHRob3NlIG5hbWVkIGVsZW1lbnRzIHdpdGhvdXQgcXVhbGlmaWNhdGlvbiBpbiB0aGUgaW1wb3J0aW5nIG5hbWVzcGFjZS4gSW4gdGhlIGNhc2Ugb2YgY29uZmxpY3RzLCBpdCBpcyBuZWNlc3NhcnkgdG8gdXNlIHF1YWxpZmllZCBuYW1lcyBvciBhbGlhc2VzIHRvIGRpc2FtYmlndWF0ZSB0aGUgcmVmZXJlbmNlZCBlbGVtZW50cy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGFxdWVFeHByZXNzaW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGFxdWVFeHByZXNzaW9uLmphdmEKaW5kZXggMjZkZGM4Yi4uNmQyMzAyNyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvT3BhcXVlRXhwcmVzc2lvbi5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL09wYXF1ZUV4cHJlc3Npb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBPcGFxdWVFeHByZXNzaW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IE9wYXF1ZUV4cHJlc3Npb24uamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+T3BhcXVlIEV4cHJlc3Npb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBbiBleHByZXNzaW9uIGNvbnRhaW5zIGEgbGFuZ3VhZ2Utc3BlY2lmaWMgdGV4dCBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSBhIHZhbHVlIG9yIHZhbHVlcywgYW5kIGFuIG9wdGlvbmFsIHNwZWNpZmljYXRpb24gb2YgdGhlIGxhbmd1YWdlLiBPbmUgcHJlZGVmaW5lZCBsYW5ndWFnZSBmb3Igc3BlY2lmeWluZyBleHByZXNzaW9ucyBpcyBPQ0wuIE5hdHVyYWwgbGFuZ3VhZ2Ugb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1heSBhbHNvIGJlIHVzZWQuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvT3BlcmF0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGVyYXRpb24uamF2YQppbmRleCAwOGQwMTE4Li4wMDc0ZmE4IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGVyYXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGVyYXRpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBPcGVyYXRpb24uamF2YSx2IDEuNSAyMDA0LzA1LzIwIDAzOjIwOjA0IGtodXNzZXkgRXhwICQKKyAqICRJZDogT3BlcmF0aW9uLmphdmEsdiAxLjYgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjQsNiArMjQsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk9wZXJhdGlvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEFuIG9wZXJhdGlvbiBpcyBhIGJlaGF2aW9yYWwgZmVhdHVyZSBvZiBhIGNsYXNzaWZpZXIgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUsIHR5cGUsIHBhcmFtZXRlcnMsIGFuZCBjb25zdHJhaW50cyBmb3IgaW52b2tpbmcgYW4gYXNzb2NpYXRlZCBiZWhhdmlvci4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIuamF2YQppbmRleCA2ZGQ4ZThlLi4yODk3NTcyIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9PcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlci5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL09wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+T3BlcmF0aW9uIFRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIE9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGFuIE9wZXJhdGlvbi4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRPcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlcigpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlLmphdmEKaW5kZXggNjQzZmY3Ny4uNGU5YjQ4YyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhY2thZ2UuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQYWNrYWdlLmphdmEsdiAxLjcgMjAwNC8wNi8wMiAwNTowMjoyNyBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFBhY2thZ2UuamF2YSx2IDEuOCAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yNSw2ICsyNSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgcGFja2FnZSBpcyBhIG5hbWVzcGFjZSBmb3IgaXRzIG1lbWJlcnMsIGFuZCBtYXkgY29udGFpbiBvdGhlciBwYWNrYWdlcy4gT25seSBwYWNrYWdlYWJsZSBlbGVtZW50cyBjYW4gYmUgb3duZWQgbWVtYmVycyBvZiBhIHBhY2thZ2UuIEJ5IHZpcnR1ZSBvZiBiZWluZyBhIG5hbWVzcGFjZSwgYSBwYWNrYWdlIGNhbiBpbXBvcnQgZWl0aGVyIGluZGl2aWR1YWwgbWVtYmVycyBvZiBvdGhlciBwYWNrYWdlcywgb3IgYWxsIHRoZSBtZW1iZXJzIG9mIG90aGVyIHBhY2thZ2VzLiBJbiBhZGRpdGlvbiBhIHBhY2thZ2UgY2FuIGJlIG1lcmdlZCB3aXRoIG90aGVyIHBhY2thZ2VzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhY2thZ2VJbXBvcnQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhY2thZ2VJbXBvcnQuamF2YQppbmRleCBmMWU5NDk0Li5kOTMzOWI4IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlSW1wb3J0LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZUltcG9ydC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFBhY2thZ2VJbXBvcnQuamF2YSx2IDEuMyAyMDA0LzA0LzI3IDE2OjM4OjU1IGtodXNzZXkgRXhwICQKKyAqICRJZDogUGFja2FnZUltcG9ydC5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIyLDYgKzIyLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgcGFja2FnZSBpbXBvcnQgaXMgZGVmaW5lZCBhcyBhIGRpcmVjdGVkIHJlbGF0aW9uc2hpcCB0aGF0IGlkZW50aWZpZXMgYSBwYWNrYWdlIHdob3NlIG1lbWJlcnMgYXJlIHRvIGJlIGltcG9ydGVkIGJ5IGEgbmFtZXNwYWNlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhY2thZ2VNZXJnZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZU1lcmdlLmphdmEKaW5kZXggM2RiYWRiZC4uNDYyOGEwZCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZU1lcmdlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZU1lcmdlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogUGFja2FnZU1lcmdlLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFBhY2thZ2VNZXJnZS5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5QYWNrYWdlIE1lcmdlPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBwYWNrYWdlIG1lcmdlIGlzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIHBhY2thZ2VzLCB3aGVyZSB0aGUgY29udGVudHMgb2YgdGhlIHRhcmdldCBwYWNrYWdlICh0aGUgb25lIHBvaW50ZWQgYXQpIGlzIG1lcmdlZCB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIHBhY2thZ2UgdGhyb3VnaCBzcGVjaWFsaXphdGlvbiBhbmQgcmVkZWZpbml0aW9uLCB3aGVyZSBhcHBsaWNhYmxlLiBUaGlzIGlzIGEgbWVjaGFuaXNtIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBlbGVtZW50cyBvZiB0aGUgc2FtZSBuYW1lIGFyZSBpbnRlbmRlZCB0byByZXByZXNlbnQgdGhlIHNhbWUgY29uY2VwdCwgcmVnYXJkbGVzcyBvZiB0aGUgcGFja2FnZSBpbiB3aGljaCB0aGV5IGFyZSBkZWZpbmVkLiBBIG1lcmdpbmcgcGFja2FnZSB3aWxsIHRha2UgZWxlbWVudHMgb2YgdGhlIHNhbWUga2luZCB3aXRoIHRoZSBzYW1lIG5hbWUgZnJvbSBvbmUgb3IgbW9yZSBwYWNrYWdlcyBhbmQgbWVyZ2UgdGhlbSB0b2dldGhlciBpbnRvIGEgc2luZ2xlIGVsZW1lbnQgdXNpbmcgZ2VuZXJhbGl6YXRpb24gYW5kIHJlZGVmaW5pdGlvbnMuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IGEgcGFja2FnZSBtZXJnZSBjYW4gYmUgdmlld2VkIGFzIGEgc2hvcnQtaGFuZCB3YXkgb2YgZXhwbGljaXRseSBkZWZpbmluZyB0aG9zZSBnZW5lcmFsaXphdGlvbnMgYW5kIHJlZGVmaW5pdGlvbnMuIFRoZSBtZXJnZWQgcGFja2FnZXMgYXJlIHN0aWxsIGF2YWlsYWJsZSwgYW5kIHRoZSBlbGVtZW50cyBpbiB0aG9zZSBwYWNrYWdlcyBjYW4gYmUgc2VwYXJhdGVseSBxdWFsaWZpZWQuIEZyb20gYW4gWE1JIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVpdGhlciBwb3NzaWJsZSB0byBleGNoYW5nZSBhIG1vZGVsIHdpdGggYWxsIFBhY2thZ2VNZXJnZXMgcmV0YWluZWQgb3IgYSBtb2RlbCB3aGVyZSBhbGwgUGFja2FnZU1lcmdlcyBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgYXdheSAoaW4gd2hpY2ggY2FzZSBwYWNrYWdlIGltcG9ydHMsIGdlbmVyYWxpemF0aW9ucywgYW5kIHJlZGVmaW5pdGlvbnMgYXJlIHVzZWQgaW5zdGVhZCkuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFja2FnZWFibGVFbGVtZW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlYWJsZUVsZW1lbnQuamF2YQppbmRleCAzMTVmYjVmLi4zNGQ0ZTViIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlYWJsZUVsZW1lbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYWNrYWdlYWJsZUVsZW1lbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQYWNrYWdlYWJsZUVsZW1lbnQuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUGFja2FnZWFibGVFbGVtZW50LmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHBhY2thZ2VhYmxlIGVsZW1lbnQgaW5kaWNhdGVzIGEgbmFtZWQgZWxlbWVudCB0aGF0IG1heSBiZSBvd25lZCBkaXJlY3RseSBieSBhIHBhY2thZ2UuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFyYW1ldGVyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYXJhbWV0ZXIuamF2YQppbmRleCBiZmVlNGFhLi4zMGEzNWJlIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYXJhbWV0ZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYXJhbWV0ZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQYXJhbWV0ZXIuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUGFyYW1ldGVyLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlBhcmFtZXRlcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgcGFyYW1ldGVyIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiBhbiBhcmd1bWVudCB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gaW50byBvciBvdXQgb2YgYW4gaW52b2NhdGlvbiBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZS4gSXQgaGFzIGEgdHlwZSwgYW5kIG1heSBoYXZlIGEgbXVsdGlwbGljaXR5IGFuZCBhbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhcmFtZXRlckRpcmVjdGlvbktpbmQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhcmFtZXRlckRpcmVjdGlvbktpbmQuamF2YQppbmRleCBjNTc5YzFlLi4xMGM5OGZhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYXJhbWV0ZXJEaXJlY3Rpb25LaW5kLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFyYW1ldGVyRGlyZWN0aW9uS2luZC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFBhcmFtZXRlckRpcmVjdGlvbktpbmQuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUGFyYW1ldGVyRGlyZWN0aW9uS2luZC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIzLDYgKzIzLDkgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxpdGVyYWxzIG9mIHRoZSBlbnVtZXJhdGlvbiAnPGVtPjxiPlBhcmFtZXRlciBEaXJlY3Rpb24gS2luZDwvYj48L2VtPicsCiAgKiBhbmQgdXRpbGl0eSBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggdGhlbS4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBQYXJhbWV0ZXJEaXJlY3Rpb25LaW5kIGlzIGFuIGVudW1lcmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbCB2YWx1ZXM6IJUgaW4gSW5kaWNhdGVzIHRoYXQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgcGFzc2VkIGludG8gdGhlIGJlaGF2aW9yYWwgZWxlbWVudCBieSB0aGUgY2FsbGVyLiCVIGlub3V0IEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBpbnRvIGEgYmVoYXZpb3JhbCBlbGVtZW50IGJ5IHRoZSBjYWxsZXIgYW5kIHRoZW4gYmFjayBvdXQgdG8gdGhlIGNhbGxlciBmcm9tIHRoZSBiZWhhdmlvcmFsIGVsZW1lbnQuIJUgb3V0IEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBmcm9tIGEgYmVoYXZpb3JhbCBlbGVtZW50IG91dCB0byB0aGUgY2FsbGVyLiCVIHJldHVybiBJbmRpY2F0ZXMgdGhhdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgYXMgcmV0dXJuIHZhbHVlcyBmcm9tIGEgYmVoYXZpb3JhbCBlbGVtZW50IGJhY2sgdG8gdGhlIGNhbGxlci4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0UGFyYW1ldGVyRGlyZWN0aW9uS2luZCgpCiAgKiBAbW9kZWwKICAqIEBnZW5lcmF0ZWQKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhcmFtZXRlcmFibGVFbGVtZW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QYXJhbWV0ZXJhYmxlRWxlbWVudC5qYXZhCmluZGV4IDkyZjYzNzIuLjliN2ZjZGEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BhcmFtZXRlcmFibGVFbGVtZW50LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGFyYW1ldGVyYWJsZUVsZW1lbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQYXJhbWV0ZXJhYmxlRWxlbWVudC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBQYXJhbWV0ZXJhYmxlRWxlbWVudC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5QYXJhbWV0ZXJhYmxlIEVsZW1lbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIFBhcmFtZXRlcmFibGVFbGVtZW50IGNhbiBiZSByZWZlcmVuY2VkIGJ5IGEgVGVtcGxhdGVQYXJhbWV0ZXIgd2hlbiBkZWZpbmluZyBhIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZm9yIGEgdGVtcGxhdGUuIEEgUGFyYW1ldGVyYWJsZUVsZW1lbnQgY2FuIGJlIHJlZmVyZW5jZWQgYnkgYSBUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbiB3aGVuIHVzZWQgYXMgYW4gYWN0dWFsIHBhcmFtZXRlciBpbiBhIGJpbmRpbmcgb2YgYSB0ZW1wbGF0ZS4gUGFyYW1ldGVyYWJsZUVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Blcm1pc3Npb24uamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Blcm1pc3Npb24uamF2YQppbmRleCA2NmNkMTE4Li45NTk2OTg5IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QZXJtaXNzaW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUGVybWlzc2lvbi5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFBlcm1pc3Npb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUGVybWlzc2lvbi5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5QZXJtaXNzaW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBQZXJtaXNzaW9uIHNpZ25pZmllcyBncmFudGluZyBvZiBhY2Nlc3MgcmlnaHRzIGZyb20gdGhlIHN1cHBsaWVyIG1vZGVsIGVsZW1lbnQgdG8gYSBjbGllbnQgbW9kZWwgZWxlbWVudC4gT3IgdG8gcHV0IGl0IGFub3RoZXIgd2F5LCBpdCBzaWduaWZpZXMgdGhhdCB0aGUgY2xpZW50IHJlcXVpcmVzIGFjY2VzcyB0byBzb21lIG9yIGFsbCBvZiB0aGUgY29uc3RpdHVlbnQgZWxlbWVudHMgb2YgdGhlIHN1cHBsaWVyLiBUaGUgc3VwcGxpZXIgZWxlbWVudCBnaXZlcyB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8gYWNjZXNzIHNvbWUgb3IgYWxsIG9mIGl0cyBjb25zdGl0dWVudHMgZWxlbWVudHMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqCiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0UGVybWlzc2lvbigpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Qb3J0LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Qb3J0LmphdmEKaW5kZXggNGVjZDdiMC4uOTAzYzhlNCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUG9ydC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1BvcnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQb3J0LmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFBvcnQuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+UG9ydDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFBvcnRzIHJlcHJlc2VudCBpbnRlcmFjdGlvbiBwb2ludHMgYmV0d2VlbiBhIGNsYXNzaWZpZXIgYW5kIGl0cyBlbnZpcm9ubWVudC4gVGhlIGludGVyZmFjZXMgYXNzb2NpYXRlZCB3aXRoIGEgcG9ydCBzcGVjaWZ5IHRoZSBuYXR1cmUgb2YgdGhlIGludGVyYWN0aW9ucyB0aGF0IG1heSBvY2N1ciBvdmVyIGEgcG9ydC4gVGhlIHJlcXVpcmVkIGludGVyZmFjZXMgb2YgYSBwb3J0IGNoYXJhY3Rlcml6ZSB0aGUgcmVxdWVzdHMgd2hpY2ggbWF5IGJlIG1hZGUgZnJvbSB0aGUgY2xhc3NpZmllciB0byBpdHMgZW52aXJvbm1lbnQgdGhyb3VnaCB0aGlzIHBvcnQuIFRoZSBwcm92aWRlZCBpbnRlcmZhY2VzIG9mIGEgcG9ydCBjaGFyYWN0ZXJpemUgcmVxdWVzdHMgdG8gdGhlIGNsYXNzaWZpZXIgdGhhdCBpdHMgZW52aXJvbm1lbnQgbWF5IG1ha2UgdGhyb3VnaCB0aGlzIHBvcnQuIEEgcG9ydCBoYXMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB0aGF0IGFueSByZXF1ZXN0cyBhcnJpdmluZyBhdCB0aGlzIHBvcnQgYXJlIGhhbmRsZWQgYnkgdGhlIGJlaGF2aW9yIG9mIHRoZSBpbnN0YW5jZSBvZiB0aGUgb3duaW5nIGNsYXNzaWZpZXIsIHJhdGhlciB0aGFuIGJlaW5nIGZvcndhcmRlZCB0byBhbnkgY29udGFpbmVkIGluc3RhbmNlcywgaWYgYW55LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1ByaW1pdGl2ZVR5cGUuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1ByaW1pdGl2ZVR5cGUuamF2YQppbmRleCBjNGZlMzViLi43MDU2YTcyIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9QcmltaXRpdmVUeXBlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUHJpbWl0aXZlVHlwZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFByaW1pdGl2ZVR5cGUuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUHJpbWl0aXZlVHlwZS5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5QcmltaXRpdmUgVHlwZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFRoZSBpbnN0YW5jZXMgb2YgcHJpbWl0aXZlIHR5cGUgdXNlZCBpbiBVTUwgaXRzZWxmIGluY2x1ZGUgQm9vbGVhbiwgSW50ZWdlciwgVW5saW1pdGVkTmF0dXJhbCwgYW5kIFN0cmluZy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRQcmltaXRpdmVUeXBlKCkKICAqIEBtb2RlbCAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Byb3BlcnR5LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Qcm9wZXJ0eS5qYXZhCmluZGV4IDU0MDVmNmYuLjM2NmRlODAgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Byb3BlcnR5LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUHJvcGVydHkuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBQcm9wZXJ0eS5qYXZhLHYgMS40IDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBQcm9wZXJ0eS5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTI1LDYgKzI1LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Qcm9wZXJ0eTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFByb3BlcnR5IHJlcHJlc2VudHMgYSBkZWNsYXJlZCBzdGF0ZSBvZiBvbmUgb3IgbW9yZSBpbnN0YW5jZXMgaW4gdGVybXMgb2YgYSBuYW1lZCByZWxhdGlvbnNoaXAgdG8gYSB2YWx1ZSBvciB2YWx1ZXMuIFdoZW4gYSBwcm9wZXJ0eSBpcyBhbiBhdHRyaWJ1dGUgb2YgYSBjbGFzc2lmaWVyLCB0aGUgdmFsdWUgb3IgdmFsdWVzIGFyZSByZWxhdGVkIHRvIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3NpZmllciBieSBiZWluZyBoZWxkIGluIHNsb3RzIG9mIHRoZSBpbnN0YW5jZS4gV2hlbiBhIHByb3BlcnR5IGlzIGFuIGFzc29jaWF0aW9uIGVuZCwgdGhlIHZhbHVlIG9yIHZhbHVlcyBhcmUgcmVsYXRlZCB0byB0aGUgaW5zdGFuY2Ugb3IgaW5zdGFuY2VzIGF0IHRoZSBvdGhlciBlbmQocykgb2YgdGhlIGFzc29jaWF0aW9uIChzZWUgc2VtYW50aWNzIG9mIEFzc29jaWF0aW9uKS4gUHJvcGVydHkgaXMgaW5kaXJlY3RseSBhIHN1YmNsYXNzIG9mIENvbnN0cnVjdHM6OlR5cGVkRWxlbWVudC4gVGhlIHJhbmdlIG9mIHZhbGlkIHZhbHVlcyByZXByZXNlbnRlZCBieSB0aGUgcHJvcGVydHkgY2FuIGJlIGNvbnRyb2xsZWQgYnkgc2V0dGluZyB0aGUgcHJvcGVydHmScyB0eXBlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Byb3RvY29sVHJhbnNpdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUHJvdG9jb2xUcmFuc2l0aW9uLmphdmEKaW5kZXggMzg3YWI4NS4uODU2NDFlNSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUHJvdG9jb2xUcmFuc2l0aW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUHJvdG9jb2xUcmFuc2l0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogUHJvdG9jb2xUcmFuc2l0aW9uLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFByb3RvY29sVHJhbnNpdGlvbi5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Qcm90b2NvbCBUcmFuc2l0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBwcm90b2NvbCB0cmFuc2l0aW9uICh0cmFuc2l0aW9uIGFzIHNwZWNpYWxpemVkIGluIHRoZSBQcm90b2NvbFN0YXRlTWFjaGluZXMgcGFja2FnZSkgc3BlY2lmaWVzIGEgbGVnYWwgdHJhbnNpdGlvbiBmb3IgYW4gb3BlcmF0aW9uLiBUcmFuc2l0aW9ucyBvZiBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lcyBoYXZlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IGEgcHJlIGNvbmRpdGlvbiAoZ3VhcmQpLCBvbiB0cmlnZ2VyLCBhbmQgYSBwb3N0IGNvbmRpdGlvbi4gRXZlcnkgcHJvdG9jb2wgdHJhbnNpdGlvbiBpcyBhc3NvY2lhdGVkIHRvIHplcm8gb3Igb25lIG9wZXJhdGlvbiAocmVmZXJyZWQgQmVoYXZpb3JhbEZlYXR1cmUpIHRoYXQgYmVsb25ncyB0byB0aGUgY29udGV4dCBjbGFzc2lmaWVyIG9mIHRoZSBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lLiBUaGUgcHJvdG9jb2wgdHJhbnNpdGlvbiBzcGVjaWZpZXMgdGhhdCB0aGUgYXNzb2NpYXRlZCAocmVmZXJyZWQpIG9wZXJhdGlvbiBjYW4gYmUgY2FsbGVkIGZvciBhbiBpbnN0YW5jZSBpbiB0aGUgb3JpZ2luIHN0YXRlIHVuZGVyIHRoZSBpbml0aWFsIGNvbmRpdGlvbiAoZ3VhcmQpLCBhbmQgdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2l0aW9uLCB0aGUgZGVzdGluYXRpb24gc3RhdGUgd2lsbCBiZSByZWFjaGVkIHVuZGVyIHRoZSBmaW5hbCBjb25kaXRpb24gKHBvc3QpLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlYWxpemF0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWFsaXphdGlvbi5qYXZhCmluZGV4IDMyZWEwMTkuLjkxMTczNGEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlYWxpemF0aW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUmVhbGl6YXRpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBSZWFsaXphdGlvbi5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBSZWFsaXphdGlvbi5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE5LDYgKzE5LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5SZWFsaXphdGlvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEluIHRoZSBtZXRhbW9kZWwsIGEgUmVhbGl6YXRpb24gaXMgYSBzdWJ0eXBlIG9mIERlcGVuZGVuY2llczo6UmVhbGl6YXRpb24uIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUmVjZXB0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWNlcHRpb24uamF2YQppbmRleCA5OTBiYjkyLi4xZGQ2NTlhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWNlcHRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWNlcHRpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBSZWNlcHRpb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUmVjZXB0aW9uLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlJlY2VwdGlvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgcmVjZXB0aW9uIGlzIGEgZGVjbGFyYXRpb24gc3RhdGluZyB0aGF0IGEgY2xhc3NpZmllciBpcyBwcmVwYXJlZCB0byByZWFjdCB0byB0aGUgcmVjZWlwdCBvZiBhIHNpZ25hbC4gQSByZWNlcHRpb24gZGVzaWduYXRlcyBhIHNpZ25hbCBhbmQgc3BlY2lmaWVzIHRoZSBleHBlY3RlZCBiZWhhdmlvcmFsIHJlc3BvbnNlLiBUaGUgZGV0YWlscyBvZiBoYW5kbGluZyBhIHNpZ25hbCBhcmUgc3BlY2lmaWVkIGJ5IHRoZSBiZWhhdmlvciBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY2VwdGlvbiBvciB0aGUgY2xhc3NpZmllciBpdHNlbGYuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUmVkZWZpbmFibGVFbGVtZW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWRlZmluYWJsZUVsZW1lbnQuamF2YQppbmRleCA1N2I5MTViLi4zZTFlYjlhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWRlZmluYWJsZUVsZW1lbnQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWRlZmluYWJsZUVsZW1lbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBSZWRlZmluYWJsZUVsZW1lbnQuamF2YSx2IDEuNCAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogUmVkZWZpbmFibGVFbGVtZW50LmphdmEsdiAxLjUgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjIsNiArMjIsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlJlZGVmaW5hYmxlIEVsZW1lbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHJlZGVmaW5hYmxlIGVsZW1lbnQgaXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgY2FuIGJlIHJlZGVmaW5lZCBpbiB0aGUgY29udGV4dCBvZiBhIGdlbmVyYWxpemF0aW9uLiBSZWRlZmluYWJsZUVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmUuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmUuamF2YQppbmRleCBjNTE0N2M0Li44MTI3YmYzIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvUmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFJlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmUuamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjQ5IGtodXNzZXkgRXhwICQKKyAqICRJZDogUmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZS5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5SZWRlZmluYWJsZSBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBSZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlIHNwZWNpYWxpemVzIGJvdGggVGVtcGxhdGVTaWduYXR1cmUgYW5kIFJlZGVmaW5hYmxlRWxlbWVudCBpbiBvcmRlciB0byBhbGxvdyB0aGUgYWRkaXRpb24gb2YgbmV3IGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lhbGl6aW5nIHRlbXBsYXRlIENsYXNzaWZpZXIuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqCiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0UmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZSgpCiAgKiBAbW9kZWwgCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9SZWxhdGlvbnNoaXAuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlbGF0aW9uc2hpcC5qYXZhCmluZGV4IDE5NDczYzQuLjhkMDljY2IgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlbGF0aW9uc2hpcC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1JlbGF0aW9uc2hpcC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFJlbGF0aW9uc2hpcC5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBSZWxhdGlvbnNoaXAuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+UmVsYXRpb25zaGlwPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlcyBvbmUgb3IgbW9yZSByZWxhdGVkIGVsZW1lbnRzLiBSZWxhdGlvbnNoaXAgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1NpZ25hbC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU2lnbmFsLmphdmEKaW5kZXggMjU5YzU0ZS4uN2M3OGI4YyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU2lnbmFsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU2lnbmFsLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogU2lnbmFsLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFNpZ25hbC5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5TaWduYWw8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHNpZ25hbCBpcyBhIHNwZWNpZmljYXRpb24gb2YgdHlwZSBvZiBzZW5kIHJlcXVlc3QgaW5zdGFuY2VzIGNvbW11bmljYXRlZCBiZXR3ZWVuIG9iamVjdHMuIFRoZSByZWNlaXZpbmcgb2JqZWN0IGhhbmRsZXMgdGhlIHNpZ25hbCBpbnN0YW5jZSBhcyBzcGVjaWZpZWQgYnkgaXRzIHJlY2VwdGlvbnMuIFRoZSBkYXRhIGNhcnJpZWQgYnkgYSBzZW5kIHJlcXVlc3QgYW5kIHBhc3NlZCB0byBpdCBieSB0aGUgb2NjdXJyZW5jZSBvZiB0aGUgc2VuZCBpbnZvY2F0aW9uIGV2ZW50IHRoYXQgY2F1c2VkIHRoZSByZXF1ZXN0IGlzIHJlcHJlc2VudGVkIGFzIGF0dHJpYnV0ZXMgb2YgdGhlIHNpZ25hbCBpbnN0YW5jZS4gQSBzaWduYWwgaXMgZGVmaW5lZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjbGFzc2lmaWVycyBoYW5kbGluZyB0aGUgc2lnbmFsLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KQEAgLTMyLDcgKzM2LDcgQEAKICAqIEBtb2RlbCAKICAqIEBnZW5lcmF0ZWQKICAqLwotcHVibGljIGludGVyZmFjZSBTaWduYWwgZXh0ZW5kcyBDbGFzc2lmaWVyIHsKK3B1YmxpYyBpbnRlcmZhY2UgU2lnbmFsIGV4dGVuZHMgQ2xhc3NpZmllcnsKIAkvKioKIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU2xvdC5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU2xvdC5qYXZhCmluZGV4IDM2MWJmMDEuLmYzOWMzMzMgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Nsb3QuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TbG90LmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogU2xvdC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NDkga2h1c3NleSBFeHAgJAorICogJElkOiBTbG90LmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlNsb3Q8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHNsb3QgaXMgb3duZWQgYnkgYW4gaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbi4gSXQgc3BlY2lmaWVzIHRoZSB2YWx1ZSBvciB2YWx1ZXMgZm9yIGl0cyBkZWZpbmluZyBmZWF0dXJlLCB3aGljaCBtdXN0IGJlIGEgc3RydWN0dXJhbCBmZWF0dXJlIG9mIGEgY2xhc3NpZmllciBvZiB0aGUgaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbiBvd25pbmcgdGhlIHNsb3QuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU3RydWN0dXJhbEZlYXR1cmUuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1N0cnVjdHVyYWxGZWF0dXJlLmphdmEKaW5kZXggNTQ1MDRkOS4uZjg0MDNmZCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU3RydWN0dXJhbEZlYXR1cmUuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TdHJ1Y3R1cmFsRmVhdHVyZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFN0cnVjdHVyYWxGZWF0dXJlLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo0OSBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFN0cnVjdHVyYWxGZWF0dXJlLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlN0cnVjdHVyYWwgRmVhdHVyZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgc3RydWN0dXJhbCBmZWF0dXJlIGlzIGEgdHlwZWQgZmVhdHVyZSBvZiBhIGNsYXNzaWZpZXIgdGhhdCBzcGVjaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgaW5zdGFuY2VzIG9mIHRoZSBjbGFzc2lmaWVyLiBTdHJ1Y3R1cmFsIGZlYXR1cmUgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiBCeSBzcGVjaWFsaXppbmcgbXVsdGlwbGljaXR5IGVsZW1lbnQsIGl0IHN1cHBvcnRzIGEgbXVsdGlwbGljaXR5IHRoYXQgc3BlY2lmaWVzIHZhbGlkIGNhcmRpbmFsaXRpZXMgZm9yIHRoZSBzZXQgb2YgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbnN0YW50aWF0aW9uIG9mIHRoZSBzdHJ1Y3R1cmFsIGZlYXR1cmUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU3RydWN0dXJlZENsYXNzaWZpZXIuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1N0cnVjdHVyZWRDbGFzc2lmaWVyLmphdmEKaW5kZXggMGViOWEzNy4uYzhiMzlmZCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU3RydWN0dXJlZENsYXNzaWZpZXIuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TdHJ1Y3R1cmVkQ2xhc3NpZmllci5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFN0cnVjdHVyZWRDbGFzc2lmaWVyLmphdmEsdiAxLjMgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFN0cnVjdHVyZWRDbGFzc2lmaWVyLmphdmEsdiAxLjQgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlN0cnVjdHVyZWQgQ2xhc3NpZmllcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgc3RydWN0dXJlZCBjbGFzc2lmaWVyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB0aGF0IHJlcHJlc2VudHMgYW55IGNsYXNzaWZpZXIgd2hvc2UgYmVoYXZpb3IgY2FuIGJlIGZ1bGx5IG9yIHBhcnRseSBkZXNjcmliZWQgYnkgdGhlIGNvbGxhYm9yYXRpb24gb2Ygb3duZWQgb3IgcmVmZXJlbmNlZCBpbnN0YW5jZXMuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvU3Vic3RpdHV0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TdWJzdGl0dXRpb24uamF2YQppbmRleCA4ZTEwYjg4Li4xZTVlZjM0IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TdWJzdGl0dXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9TdWJzdGl0dXRpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBTdWJzdGl0dXRpb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogU3Vic3RpdHV0aW9uLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTksNiArMTksMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgc3Vic3RpdHV0aW9uIGlzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIGNsYXNzaWZpZXJzIHNpZ25pZmllcyB0aGF0IHRoZSBzdWJzdGl0dXRpbmdDbGFzc2lmaWVyIGNvbXBsaWVzIHdpdGggdGhlIGNvbnRyYWN0IHNwZWNpZmllZCBieSB0aGUgY29udHJhY3QgY2xhc3NpZmllci4gVGhpcyBpbXBsaWVzIHRoYXQgaW5zdGFuY2VzIG9mIHRoZSBzdWJzdGl0dXRpbmdDbGFzc2lmaWVyIGFyZSBydW50aW1lIHN1YnN0aXR1dGFibGUgd2hlcmUgaW5zdGFuY2VzIG9mIHRoZSBjb250cmFjdCBjbGFzc2lmaWVyIGFyZSBleHBlY3RlZC4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZUJpbmRpbmcuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlQmluZGluZy5qYXZhCmluZGV4IDdlYmNmZjIuLjY3MWM5OGEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlQmluZGluZy5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlQmluZGluZy5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFRlbXBsYXRlQmluZGluZy5qYXZhLHYgMS4zIDIwMDQvMDUvMTEgMTU6MjQ6MDAga2h1c3NleSBFeHAgJAorICogJElkOiBUZW1wbGF0ZUJpbmRpbmcuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMSw2ICsyMSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFRlbXBsYXRlQmluZGluZyBpcyBhIGRpcmVjdGVkIHJlbGF0aW9uc2hpcCBmcm9tIGEgYm91bmQgdGVtcGxhdGVhYmxlIGVsZW1lbnQgdG8gdGhlIHRlbXBsYXRlIHNpZ25hdHVyZSBvZiB0aGUgdGFyZ2V0IHRlbXBsYXRlLiBBIFRlbXBsYXRlQmluZGluZyBvd25zIGEgc2V0IG9mIHRlbXBsYXRlIHBhcmFtZXRlciBzdWJzdGl0dXRpb25zLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlUGFyYW1ldGVyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZVBhcmFtZXRlci5qYXZhCmluZGV4IDQyNjQ3YzAuLmExY2MwNGYgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlUGFyYW1ldGVyLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGVtcGxhdGVQYXJhbWV0ZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUZW1wbGF0ZVBhcmFtZXRlci5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBUZW1wbGF0ZVBhcmFtZXRlci5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBUZW1wbGF0ZVBhcmFtZXRlciByZWZlcmVuY2VzIGEgUGFyYW1ldGVyYWJsZUVsZW1lbnQgd2hpY2ggaXMgZXhwb3NlZCBhcyBhIGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgaW4gdGhlIGNvbnRhaW5pbmcgdGVtcGxhdGUuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24uamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uLmphdmEKaW5kZXggYTMyZjgzOC4uYjMyOGFkNCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbi5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uLmphdmEsdiAxLjQgMjAwNC8wNS8xMSAxNToyNDowMCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uLmphdmEsdiAxLjUgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlciBTdWJzdGl0dXRpb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbiBhc3NvY2lhdGVzIG9uZSBvciBtb3JlIGFjdHVhbCBwYXJhbWV0ZXJzIHdpdGggYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhIFRlbXBsYXRlQmluZGluZy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZVNpZ25hdHVyZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGVtcGxhdGVTaWduYXR1cmUuamF2YQppbmRleCA2M2JmMWNmLi4wODlhNzg1IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZVNpZ25hdHVyZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlU2lnbmF0dXJlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogVGVtcGxhdGVTaWduYXR1cmUuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogVGVtcGxhdGVTaWduYXR1cmUuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0yMSw2ICsyMSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBUZW1wbGF0ZVNpZ25hdHVyZSBpcyBvd25lZCBieSBhIFRlbXBsYXRlYWJsZUVsZW1lbnQgYW5kIGhhcyBvbmUgb3IgbW9yZSBUZW1wbGF0ZVBhcmFtZXRlcnMgdGhhdCBkZWZpbmUgdGhlIHNpZ25hdHVyZSBmb3IgYmluZGluZyB0aGlzIHRlbXBsYXRlLiBBIFRlbXBsYXRlU2lnbmF0dXJlIG1heSByZWZlcmVuY2UgYSBzZXQgb2YgbmVzdGVkIHRlbXBsYXRlIHNpZ25hdHVyZXMgdG8gcmVmbGVjdCB0aGUgaGllcmFyY2hpY2FsIG5hdHVyZSBvZiBhIHRlbXBsYXRlLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlYWJsZUVsZW1lbnQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RlbXBsYXRlYWJsZUVsZW1lbnQuamF2YQppbmRleCA2N2UzZjg5Li4xNjUzZTVhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UZW1wbGF0ZWFibGVFbGVtZW50LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGVtcGxhdGVhYmxlRWxlbWVudC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFRlbXBsYXRlYWJsZUVsZW1lbnQuamF2YSx2IDEuMyAyMDA0LzA1LzExIDE1OjI0OjAwIGtodXNzZXkgRXhwICQKKyAqICRJZDogVGVtcGxhdGVhYmxlRWxlbWVudC5qYXZhLHYgMS40IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIzLDYgKzIzLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5UZW1wbGF0ZWFibGUgRWxlbWVudDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFRlbXBsYXRlYWJsZUVsZW1lbnQgbWF5IGNvbnRhaW4gYSB0ZW1wbGF0ZSBzaWduYXR1cmUgd2hpY2ggc3BlY2lmaWVzIHRoZSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVycy4gQSBUZW1wbGF0ZWFibGVFbGVtZW50IHRoYXQgY29udGFpbnMgYSB0ZW1wbGF0ZSBzaWduYXR1cmUgaXMgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSB0ZW1wbGF0ZS4gVGVtcGxhdGVhYmxlRWxlbWVudCBtYXkgY29udGFpbiBiaW5kaW5ncyB0byB0ZW1wbGF0ZXMgdGhhdCBkZXNjcmliZSBob3cgdGhlIHRlbXBsYXRlYWJsZSBlbGVtZW50IGlzIGNvbnN0cnVjdGVkIGJ5IHJlcGxhY2luZyB0aGUgZm9ybWFsIHRlbXBsYXRlIHBhcmFtZXRlcnMgd2l0aCBhY3R1YWwgcGFyYW1ldGVycy4gQSBUZW1wbGF0ZWFibGVFbGVtZW50IGNvbnRhaW5pbmcgYmluZGluZ3MgaXMgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSBib3VuZCBlbGVtZW50LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVDb25zdHJhaW50LmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lQ29uc3RyYWludC5qYXZhCmluZGV4IGNhMjcxMWEuLmU4N2UwYmYgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVDb25zdHJhaW50LmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGltZUNvbnN0cmFpbnQuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUaW1lQ29uc3RyYWludC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBUaW1lQ29uc3RyYWludC5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE3LDYgKzE3LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5UaW1lIENvbnN0cmFpbnQ8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIFRpbWVDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGEgVGltZUludGVydmFsLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKgogICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLlVNTDJQYWNrYWdlI2dldFRpbWVDb25zdHJhaW50KCkKICAqIEBtb2RlbCAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVFeHByZXNzaW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lRXhwcmVzc2lvbi5qYXZhCmluZGV4IDg2MjBiNTcuLmEyNWQ5YWIgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVFeHByZXNzaW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGltZUV4cHJlc3Npb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUaW1lRXhwcmVzc2lvbi5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NDkga2h1c3NleSBFeHAgJAorICogJElkOiBUaW1lRXhwcmVzc2lvbi5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5UaW1lIEV4cHJlc3Npb248L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIFRpbWVFeHByZXNzaW9uIGRlZmluZXMgYSB2YWx1ZSBzcGVjaWZpY2F0aW9uIHRoYXQgcmVwcmVzZW50IGEgdGltZSB2YWx1ZS4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lSW50ZXJ2YWwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVJbnRlcnZhbC5qYXZhCmluZGV4IDQwYjA3OWQuLjQ2ZTIzZDUgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVJbnRlcnZhbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVJbnRlcnZhbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFRpbWVJbnRlcnZhbC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBUaW1lSW50ZXJ2YWwuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VGltZSBJbnRlcnZhbDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgVGltZUludGVydmFsIGRlZmluZXMgdGhlIHJhbmdlIGJldHdlZW4gdHdvIFRpbWVFeHByZXNzaW9ucy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICoKICAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5VTUwyUGFja2FnZSNnZXRUaW1lSW50ZXJ2YWwoKQogICogQG1vZGVsIApkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGltZU9ic2VydmF0aW9uQWN0aW9uLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lT2JzZXJ2YXRpb25BY3Rpb24uamF2YQppbmRleCA0MDVlNTNlLi4xODZjZmFlIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lT2JzZXJ2YXRpb25BY3Rpb24uamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lT2JzZXJ2YXRpb25BY3Rpb24uamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUaW1lT2JzZXJ2YXRpb25BY3Rpb24uamF2YSx2IDEuMiAyMDA0LzA0LzEwIDA0OjA5OjUwIGtodXNzZXkgRXhwICQKKyAqICRJZDogVGltZU9ic2VydmF0aW9uQWN0aW9uLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxNyBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjEsNiArMjEsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlRpbWUgT2JzZXJ2YXRpb24gQWN0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSBUaW1lT2JzZXJ2YXRpb25BY3Rpb24gZGVmaW5lcyBhbiBhY3Rpb24gdGhhdCBvYnNlcnZlcyB0aGUgY3VycmVudCBwb2ludCBpbiB0aW1lLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVUcmlnZ2VyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UaW1lVHJpZ2dlci5qYXZhCmluZGV4IGIxZTdjZWMuLjhmNmUwYTIgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RpbWVUcmlnZ2VyLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVGltZVRyaWdnZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUaW1lVHJpZ2dlci5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBUaW1lVHJpZ2dlci5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5UaW1lIFRyaWdnZXI8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHRpbWUgdHJpZ2dlciBzcGVjaWZpZXMgYSB0aW1lIGV2ZW50LCB3aGljaCBtb2RlbHMgdGhlIGV4cGlyYXRpb24gb2YgYSBzcGVjaWZpYyBkZWFkbGluZS4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UcmlnZ2VyLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UcmlnZ2VyLmphdmEKaW5kZXggYWYzMzkzYy4uMjMwMzRlMyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVHJpZ2dlci5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1RyaWdnZXIuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUcmlnZ2VyLmphdmEsdiAxLjQgMjAwNC8wNS8yMCAwMzoyMDowNCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFRyaWdnZXIuamF2YSx2IDEuNSAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOSw2ICsxOSwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VHJpZ2dlcjwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgdHJpZ2dlciBzcGVjaWZpZXMgdGhlIGFuIGV2ZW50IHRoYXQgbWF5IGNhdXNlIHRoZSBleGVjdXRpb24gb2YgYW4gYXNzb2NpYXRlZCBiZWhhdmlvci4gQW4gZXZlbnQgaXMgb2Z0ZW4gdWx0aW1hdGVseSBjYXVzZWQgYnkgdGhlIGV4ZWN1dGlvbiBvZiBhbiBhY3Rpb24sIGJ1dCBuZWVkIG5vdCBiZS4gVHJpZ2dlciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuIAorICogPCEtLSBlbmQtbW9kZWwtZG9jIC0tPgorICoKICAqIDxwPgogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgogICogPHVsPgpAQCAtMzAsNyArMzQsNyBAQAogICogQG1vZGVsIGFic3RyYWN0PSJ0cnVlIgogICogQGdlbmVyYXRlZAogICovCi1wdWJsaWMgaW50ZXJmYWNlIFRyaWdnZXIgZXh0ZW5kcyBOYW1lZEVsZW1lbnQgeworcHVibGljIGludGVyZmFjZSBUcmlnZ2VyIGV4dGVuZHMgTmFtZWRFbGVtZW50ewogCS8qKgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UeXBlLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UeXBlLmphdmEKaW5kZXggOTBhNzhkNy4uMjk3ZDZlOCAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVHlwZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1R5cGUuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBUeXBlLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFR5cGUuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xNyw2ICsxNywxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VHlwZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgdHlwZSBzZXJ2ZXMgYXMgYSBjb25zdHJhaW50IG9uIHRoZSByYW5nZSBvZiB2YWx1ZXMgcmVwcmVzZW50ZWQgYnkgYSB0eXBlZCBlbGVtZW50LiBUeXBlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9UeXBlZEVsZW1lbnQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1R5cGVkRWxlbWVudC5qYXZhCmluZGV4IDhiNjliNmIuLmQ4NzE0ZTkgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1R5cGVkRWxlbWVudC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1R5cGVkRWxlbWVudC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFR5cGVkRWxlbWVudC5qYXZhLHYgMS4yIDIwMDQvMDQvMTAgMDQ6MDk6NTAga2h1c3NleSBFeHAgJAorICogJElkOiBUeXBlZEVsZW1lbnQuamF2YSx2IDEuMyAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VHlwZWQgRWxlbWVudDwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgdHlwZWQgZWxlbWVudCBpcyBhbiBlbGVtZW50IHRoYXQgaGFzIGEgdHlwZSB0aGF0IHNlcnZlcyBhcyBhIGNvbnN0cmFpbnQgb24gdGhlIHJhbmdlIG9mIHZhbHVlcyB0aGUgZWxlbWVudCBjYW4gcmVwcmVzZW50LiBUeXBlZCBlbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CisgKgogICogPHA+CiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6CiAgKiA8dWw+CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9VTUwyUGFja2FnZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVU1MMlBhY2thZ2UuamF2YQppbmRleCAxZmZiOTk3Li42YmRmZjI4IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9VTUwyUGFja2FnZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1VNTDJQYWNrYWdlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogVU1MMlBhY2thZ2UuamF2YSx2IDEuMTEgMjAwNC8wNi8wMiAwNTowMjoyNiBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFVNTDJQYWNrYWdlLmphdmEsdiAxLjEyIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTI0Niw3ICsyNDYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRUZW1wbGF0ZWFibGVFbGVtZW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRFTVBMQVRFQUJMRV9FTEVNRU5UID0gOTU7CisJaW50IFRFTVBMQVRFQUJMRV9FTEVNRU5UID0gMTEzOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuTmFtZWRFbGVtZW50SW1wbCA8ZW0+TmFtZWQgRWxlbWVudDwvZW0+fScgY2xhc3MuCkBAIC0yNTYsNyArMjU2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0TmFtZWRFbGVtZW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IE5BTUVEX0VMRU1FTlQgPSA4OworCWludCBOQU1FRF9FTEVNRU5UID0gMjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk5hbWVzcGFjZUltcGwgPGVtPk5hbWVzcGFjZTwvZW0+fScgY2xhc3MuCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0TmFtZXNwYWNlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IE5BTUVTUEFDRSA9IDk7CisJaW50IE5BTUVTUEFDRSA9IDM7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5DbGFzc2lmaWVySW1wbCA8ZW0+Q2xhc3NpZmllcjwvZW0+fScgY2xhc3MuCkBAIC0yOTYsNyArMjk2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RW5jYXBzdWxhdGVkQ2xhc3NpZmllcigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUiA9IDEwOTsKKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVIgPSAxMDU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5DbGFzc0ltcGwgPGVtPkNsYXNzPC9lbT59JyBjbGFzcy4KQEAgLTQ1Niw3ICs0NTYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnN0YW5jZVNwZWNpZmljYXRpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5TVEFOQ0VfU1BFQ0lGSUNBVElPTiA9IDM0OworCWludCBJTlNUQU5DRV9TUEVDSUZJQ0FUSU9OID0gMzM7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5FbnVtZXJhdGlvbkxpdGVyYWxJbXBsIDxlbT5FbnVtZXJhdGlvbiBMaXRlcmFsPC9lbT59JyBjbGFzcy4KQEAgLTQ4Niw3ICs0ODYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRWYWx1ZVNwZWNpZmljYXRpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVkFMVUVfU1BFQ0lGSUNBVElPTiA9IDU7CisJaW50IFZBTFVFX1NQRUNJRklDQVRJT04gPSA3OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuT3BhcXVlRXhwcmVzc2lvbkltcGwgPGVtPk9wYXF1ZSBFeHByZXNzaW9uPC9lbT59JyBjbGFzcy4KQEAgLTQ5Niw3ICs0OTYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRPcGFxdWVFeHByZXNzaW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IE9QQVFVRV9FWFBSRVNTSU9OID0gNDsKKwlpbnQgT1BBUVVFX0VYUFJFU1NJT04gPSA2OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXhwcmVzc2lvbkltcGwgPGVtPkV4cHJlc3Npb248L2VtPn0nIGNsYXNzLgpAQCAtNTA2LDcgKzUwNiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEV4cHJlc3Npb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgRVhQUkVTU0lPTiA9IDY7CisJaW50IEVYUFJFU1NJT04gPSA4OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ29tbWVudEltcGwgPGVtPkNvbW1lbnQ8L2VtPn0nIGNsYXNzLgpAQCAtNTE2LDcgKzUxNiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENvbW1lbnQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQ09NTUVOVCA9IDc7CisJaW50IENPTU1FTlQgPSA5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuUmVsYXRpb25zaGlwSW1wbCA8ZW0+UmVsYXRpb25zaGlwPC9lbT59JyBjbGFzcy4KQEAgLTUyNiw3ICs1MjYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRSZWxhdGlvbnNoaXAoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkVMQVRJT05TSElQID0gMzsKKwlpbnQgUkVMQVRJT05TSElQID0gNTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkRpcmVjdGVkUmVsYXRpb25zaGlwSW1wbCA8ZW0+RGlyZWN0ZWQgUmVsYXRpb25zaGlwPC9lbT59JyBjbGFzcy4KQEAgLTUzNiw3ICs1MzYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXREaXJlY3RlZFJlbGF0aW9uc2hpcCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVAgPSAyOworCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVAgPSA0OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuTGl0ZXJhbFNwZWNpZmljYXRpb25JbXBsIDxlbT5MaXRlcmFsIFNwZWNpZmljYXRpb248L2VtPn0nIGNsYXNzLgpAQCAtNjE2LDcgKzYxNiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFNsb3QoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgU0xPVCA9IDM1OworCWludCBTTE9UID0gMzQ7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5JbnN0YW5jZVZhbHVlSW1wbCA8ZW0+SW5zdGFuY2UgVmFsdWU8L2VtPn0nIGNsYXNzLgpAQCAtNjI2LDcgKzYyNiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEluc3RhbmNlVmFsdWUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5TVEFOQ0VfVkFMVUUgPSAzNjsKKwlpbnQgSU5TVEFOQ0VfVkFMVUUgPSAzNTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkdlbmVyYWxpemF0aW9uSW1wbCA8ZW0+R2VuZXJhbGl6YXRpb248L2VtPn0nIGNsYXNzLgpAQCAtNjM2LDcgKzYzNiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEdlbmVyYWxpemF0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEdFTkVSQUxJWkFUSU9OID0gMzM7CisJaW50IEdFTkVSQUxJWkFUSU9OID0gMzY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5FbGVtZW50SW1wb3J0SW1wbCA8ZW0+RWxlbWVudCBJbXBvcnQ8L2VtPn0nIGNsYXNzLgpAQCAtODc1LDEzMiArODc1LDYgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVMQVRJT05TSElQX19FQU5OT1RBVElPTlMgPSBFTEVNRU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVMQVRJT05TSElQX19PV05FRF9FTEVNRU5UID0gRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFTEFUSU9OU0hJUF9fT1dORVIgPSBFTEVNRU5UX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQgPSBFTEVNRU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVMQVRJT05TSElQX19SRUxBVEVEX0VMRU1FTlQgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5SZWxhdGlvbnNoaXA8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19FQU5OT1RBVElPTlMgPSBSRUxBVElPTlNISVBfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVEX0VMRU1FTlQgPSBSRUxBVElPTlNISVBfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVSID0gUkVMQVRJT05TSElQX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQgPSBSRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfX1JFTEFURURfRUxFTUVOVCA9IFJFTEFUSU9OU0hJUF9fUkVMQVRFRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19TT1VSQ0UgPSBSRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfX1RBUkdFVCA9IFJFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RGlyZWN0ZWQgUmVsYXRpb25zaGlwPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UID0gUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KIAlpbnQgVEVNUExBVEVBQkxFX0VMRU1FTlRfX0VBTk5PVEFUSU9OUyA9IEVMRU1FTlRfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgpAQCAtMTE3Miw2ICsxMDQ2LDI4NSBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLworCWludCBOQU1FU1BBQ0VfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOQU1FU1BBQ0VfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOQU1FU1BBQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTkFNRVNQQUNFX19NRU1CRVIgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9fT1dORURfUlVMRSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOQU1FU1BBQ0VfX0lNUE9SVEVEX01FTUJFUiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9fRUxFTUVOVF9JTVBPUlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOQU1FU1BBQ0VfX1BBQ0tBR0VfSU1QT1JUID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+TmFtZXNwYWNlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFTEFUSU9OU0hJUF9fRUFOTk9UQVRJT05TID0gRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFTEFUSU9OU0hJUF9fT1dORURfRUxFTUVOVCA9IEVMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUxBVElPTlNISVBfX09XTkVSID0gRUxFTUVOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVMQVRJT05TSElQX19PV05FRF9DT01NRU5UID0gRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWxhdGVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFTEFUSU9OU0hJUF9fUkVMQVRFRF9FTEVNRU5UID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+UmVsYXRpb25zaGlwPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fRUFOTk9UQVRJT05TID0gUkVMQVRJT05TSElQX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19PV05FRF9FTEVNRU5UID0gUkVMQVRJT05TSElQX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19PV05FUiA9IFJFTEFUSU9OU0hJUF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19PV05FRF9DT01NRU5UID0gUkVMQVRJT05TSElQX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19SRUxBVEVEX0VMRU1FTlQgPSBSRUxBVElPTlNISVBfX1JFTEFURURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Tb3VyY2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fU09VUkNFID0gUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRhcmdldDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRElSRUNURURfUkVMQVRJT05TSElQX19UQVJHRVQgPSBSRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkRpcmVjdGVkIFJlbGF0aW9uc2hpcDwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBESVJFQ1RFRF9SRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCA9IFJFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCiAJaW50IFRZUEVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgpAQCAtMTg3NCwxNTkgKzIwMjcsNiBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBOQU1FU1BBQ0VfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOQU1FU1BBQ0VfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOQU1FU1BBQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTkFNRVNQQUNFX19NRU1CRVIgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9fT1dORURfUlVMRSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOQU1FU1BBQ0VfX0lNUE9SVEVEX01FTUJFUiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9fRUxFTUVOVF9JTVBPUlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOQU1FU1BBQ0VfX1BBQ0tBR0VfSU1QT1JUID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+TmFtZXNwYWNlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCiAJaW50IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUyA9IE5BTUVTUEFDRV9fRUFOTk9UQVRJT05TOwogCiAJLyoqCkBAIC04MDc1LDExNCArODA3NSw2IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEdFTkVSQUxJWkFUSU9OX19FQU5OT1RBVElPTlMgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fT1dORURfRUxFTUVOVCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEdFTkVSQUxJWkFUSU9OX19PV05FUiA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgR0VORVJBTElaQVRJT05fX09XTkVEX0NPTU1FTlQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fUkVMQVRFRF9FTEVNRU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX19SRUxBVEVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fU09VUkNFID0gRElSRUNURURfUkVMQVRJT05TSElQX19TT1VSQ0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fVEFSR0VUID0gRElSRUNURURfUkVMQVRJT05TSElQX19UQVJHRVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWM8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgR0VORVJBTElaQVRJT05fX1NQRUNJRklDID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBTdWJzdGl0dXRhYmxlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgR0VORVJBTElaQVRJT05fX0lTX1NVQlNUSVRVVEFCTEUgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbGl6YXRpb24gU2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTElaQVRJT05fU0VUID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5HZW5lcmFsaXphdGlvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBHRU5FUkFMSVpBVElPTl9GRUFUVVJFX0NPVU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyA0OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KIAlpbnQgU0xPVF9fRUFOTk9UQVRJT05TID0gRUxFTUVOVF9fRUFOTk9UQVRJT05TOwogCiAJLyoqCkBAIC04Mzk5LDYgKzgyOTEsMTE0IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCisJaW50IEdFTkVSQUxJWkFUSU9OX19FQU5OT1RBVElPTlMgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fT1dORURfRUxFTUVOVCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEdFTkVSQUxJWkFUSU9OX19PV05FUiA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgR0VORVJBTElaQVRJT05fX09XTkVEX0NPTU1FTlQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fUkVMQVRFRF9FTEVNRU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX19SRUxBVEVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fU09VUkNFID0gRElSRUNURURfUkVMQVRJT05TSElQX19TT1VSQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fVEFSR0VUID0gRElSRUNURURfUkVMQVRJT05TSElQX19UQVJHRVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWM8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgR0VORVJBTElaQVRJT05fX1NQRUNJRklDID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBTdWJzdGl0dXRhYmxlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgR0VORVJBTElaQVRJT05fX0lTX1NVQlNUSVRVVEFCTEUgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbGl6YXRpb24gU2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTElaQVRJT05fU0VUID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5HZW5lcmFsaXphdGlvbjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBHRU5FUkFMSVpBVElPTl9GRUFUVVJFX0NPVU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyA0OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KIAlpbnQgRUxFTUVOVF9JTVBPUlRfX0VBTk5PVEFUSU9OUyA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fRUFOTk9UQVRJT05TOwogCiAJLyoqCkBAIC0xNDUwMiw3ICsxNDUwMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEFydGlmYWN0KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEFSVElGQUNUID0gODQ7CisJaW50IEFSVElGQUNUID0gNjc7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5NYW5pZmVzdGF0aW9uSW1wbCA8ZW0+TWFuaWZlc3RhdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0xNDUxMiw3ICsxNDUxMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldE1hbmlmZXN0YXRpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTiA9IDg1OworCWludCBNQU5JRkVTVEFUSU9OID0gNjg7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5JbnRlcmZhY2VJbXBsIDxlbT5JbnRlcmZhY2U8L2VtPn0nIGNsYXNzLgpAQCAtMTQ1MjIsNyArMTQ1MjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcmZhY2UoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5URVJGQUNFID0gODY7CisJaW50IElOVEVSRkFDRSA9IDY1OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuSW1wbGVtZW50YXRpb25JbXBsIDxlbT5JbXBsZW1lbnRhdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0xNDUzMiw3ICsxNDUzMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEltcGxlbWVudGF0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IElNUExFTUVOVEFUSU9OID0gODc7CisJaW50IElNUExFTUVOVEFUSU9OID0gNjY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BY3RvckltcGwgPGVtPkFjdG9yPC9lbT59JyBjbGFzcy4KQEAgLTE0NTQyLDcgKzE0NTQyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0QWN0b3IoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQUNUT1IgPSA4ODsKKwlpbnQgQUNUT1IgPSA2OTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkV4dGVuZEltcGwgPGVtPkV4dGVuZDwvZW0+fScgY2xhc3MuCkBAIC0xNDU1Miw3ICsxNDU1Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEV4dGVuZCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWFRFTkQgPSA4OTsKKwlpbnQgRVhURU5EID0gNzA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5Vc2VDYXNlSW1wbCA8ZW0+VXNlIENhc2U8L2VtPn0nIGNsYXNzLgpAQCAtMTQ1NjIsNyArMTQ1NjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRVc2VDYXNlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFVTRV9DQVNFID0gOTA7CisJaW50IFVTRV9DQVNFID0gNzE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5FeHRlbnNpb25Qb2ludEltcGwgPGVtPkV4dGVuc2lvbiBQb2ludDwvZW0+fScgY2xhc3MuCkBAIC0xNDU3Miw3ICsxNDU3Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEV4dGVuc2lvblBvaW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEVYVEVOU0lPTl9QT0lOVCA9IDkxOworCWludCBFWFRFTlNJT05fUE9JTlQgPSA3MjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkluY2x1ZGVJbXBsIDxlbT5JbmNsdWRlPC9lbT59JyBjbGFzcy4KQEAgLTE0NTgyLDcgKzE0NTgyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0SW5jbHVkZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBJTkNMVURFID0gOTI7CisJaW50IElOQ0xVREUgPSA3MzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkFjdGl2aXR5RWRnZUltcGwgPGVtPkFjdGl2aXR5IEVkZ2U8L2VtPn0nIGNsYXNzLgpAQCAtMTQ1OTIsNyArMTQ1OTIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY3Rpdml0eUVkZ2UoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfRURHRSA9IDY1OworCWludCBBQ1RJVklUWV9FREdFID0gNzQ7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BY3Rpdml0eUdyb3VwSW1wbCA8ZW0+QWN0aXZpdHkgR3JvdXA8L2VtPn0nIGNsYXNzLgpAQCAtMTQ2MDIsNyArMTQ2MDIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY3Rpdml0eUdyb3VwKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEFDVElWSVRZX0dST1VQID0gNjY7CisJaW50IEFDVElWSVRZX0dST1VQID0gNzU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BY3Rpdml0eU5vZGVJbXBsIDxlbT5BY3Rpdml0eSBOb2RlPC9lbT59JyBjbGFzcy4KQEAgLTE0NjEyLDcgKzE0NjEyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0QWN0aXZpdHlOb2RlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEFDVElWSVRZX05PREUgPSA2NzsKKwlpbnQgQUNUSVZJVFlfTk9ERSA9IDc2OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXhlY3V0YWJsZU5vZGVJbXBsIDxlbT5FeGVjdXRhYmxlIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ2MjIsNyArMTQ2MjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRFeGVjdXRhYmxlTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWEVDVVRBQkxFX05PREUgPSA3ODsKKwlpbnQgRVhFQ1VUQUJMRV9OT0RFID0gODc7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BY3Rpb25JbXBsIDxlbT5BY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMTQ2MzIsNyArMTQ2MzIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQUNUSU9OID0gNjg7CisJaW50IEFDVElPTiA9IDc3OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuT2JqZWN0Tm9kZUltcGwgPGVtPk9iamVjdCBOb2RlPC9lbT59JyBjbGFzcy4KQEAgLTE0NjQyLDcgKzE0NjQyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0T2JqZWN0Tm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBPQkpFQ1RfTk9ERSA9IDY5OworCWludCBPQkpFQ1RfTk9ERSA9IDc4OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ29udHJvbE5vZGVJbXBsIDxlbT5Db250cm9sIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ2NTIsNyArMTQ2NTIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRDb250cm9sTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBDT05UUk9MX05PREUgPSA3MDsKKwlpbnQgQ09OVFJPTF9OT0RFID0gNzk7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5Db250cm9sRmxvd0ltcGwgPGVtPkNvbnRyb2wgRmxvdzwvZW0+fScgY2xhc3MuCkBAIC0xNDY2Miw3ICsxNDY2Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENvbnRyb2xGbG93KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENPTlRST0xfRkxPVyA9IDcxOworCWludCBDT05UUk9MX0ZMT1cgPSA4MDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk9iamVjdEZsb3dJbXBsIDxlbT5PYmplY3QgRmxvdzwvZW0+fScgY2xhc3MuCkBAIC0xNDY3Miw3ICsxNDY3Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldE9iamVjdEZsb3coKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgT0JKRUNUX0ZMT1cgPSA3MjsKKwlpbnQgT0JKRUNUX0ZMT1cgPSA4MTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkluaXRpYWxOb2RlSW1wbCA8ZW0+SW5pdGlhbCBOb2RlPC9lbT59JyBjbGFzcy4KQEAgLTE0NjgyLDcgKzE0NjgyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0SW5pdGlhbE5vZGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5JVElBTF9OT0RFID0gNzM7CisJaW50IElOSVRJQUxfTk9ERSA9IDgyOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRmluYWxOb2RlSW1wbCA8ZW0+RmluYWwgTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0xNDY5Miw3ICsxNDY5Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEZpbmFsTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBGSU5BTF9OT0RFID0gNzQ7CisJaW50IEZJTkFMX05PREUgPSA4MzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkFjdGl2aXR5RmluYWxOb2RlSW1wbCA8ZW0+QWN0aXZpdHkgRmluYWwgTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0xNDcwMiw3ICsxNDcwMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEFjdGl2aXR5RmluYWxOb2RlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEFDVElWSVRZX0ZJTkFMX05PREUgPSA3NTsKKwlpbnQgQUNUSVZJVFlfRklOQUxfTk9ERSA9IDg0OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRGVjaXNpb25Ob2RlSW1wbCA8ZW0+RGVjaXNpb24gTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0xNDcxMiw3ICsxNDcxMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldERlY2lzaW9uTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBERUNJU0lPTl9OT0RFID0gNzY7CisJaW50IERFQ0lTSU9OX05PREUgPSA4NTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk1lcmdlTm9kZUltcGwgPGVtPk1lcmdlIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ3MjIsNyArMTQ3MjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRNZXJnZU5vZGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVSR0VfTk9ERSA9IDc3OworCWludCBNRVJHRV9OT0RFID0gODY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5QaW5JbXBsIDxlbT5QaW48L2VtPn0nIGNsYXNzLgpAQCAtMTQ3MzIsNyArMTQ3MzIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRQaW4oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUElOID0gODE7CisJaW50IFBJTiA9IDkwOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuT3V0cHV0UGluSW1wbCA8ZW0+T3V0cHV0IFBpbjwvZW0+fScgY2xhc3MuCkBAIC0xNDc0Miw3ICsxNDc0Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldE91dHB1dFBpbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBPVVRQVVRfUElOID0gNzk7CisJaW50IE9VVFBVVF9QSU4gPSA4ODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLklucHV0UGluSW1wbCA8ZW0+SW5wdXQgUGluPC9lbT59JyBjbGFzcy4KQEAgLTE0NzUyLDcgKzE0NzUyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0SW5wdXRQaW4oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5QVVRfUElOID0gODA7CisJaW50IElOUFVUX1BJTiA9IDg5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQWN0aXZpdHlQYXJhbWV0ZXJOb2RlSW1wbCA8ZW0+QWN0aXZpdHkgUGFyYW1ldGVyIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ3NjIsNyArMTQ3NjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY3Rpdml0eVBhcmFtZXRlck5vZGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSQU1FVEVSX05PREUgPSA4MjsKKwlpbnQgQUNUSVZJVFlfUEFSQU1FVEVSX05PREUgPSA5MTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlZhbHVlUGluSW1wbCA8ZW0+VmFsdWUgUGluPC9lbT59JyBjbGFzcy4KQEAgLTE0NzcyLDcgKzE0NzcyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VmFsdWVQaW4oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVkFMVUVfUElOID0gODM7CisJaW50IFZBTFVFX1BJTiA9IDkyOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuVmFyaWFibGVJbXBsIDxlbT5WYXJpYWJsZTwvZW0+fScgY2xhc3MuCkBAIC0xNDc4Miw3ICsxNDc4Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFZhcmlhYmxlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFZBUklBQkxFID0gMTIwOworCWludCBWQVJJQUJMRSA9IDEwNjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlN0cnVjdHVyZWRBY3Rpdml0eU5vZGVJbXBsIDxlbT5TdHJ1Y3R1cmVkIEFjdGl2aXR5IE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ3OTIsNyArMTQ3OTIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERSA9IDEyMTsKKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFID0gMTA3OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ29uZGl0aW9uYWxOb2RlSW1wbCA8ZW0+Q29uZGl0aW9uYWwgTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0xNDgwMiw3ICsxNDgwMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENvbmRpdGlvbmFsTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFID0gMTIyOworCWludCBDT05ESVRJT05BTF9OT0RFID0gMTA4OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ2xhdXNlSW1wbCA8ZW0+Q2xhdXNlPC9lbT59JyBjbGFzcy4KQEAgLTE0ODEyLDcgKzE0ODEyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q2xhdXNlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENMQVVTRSA9IDEyMzsKKwlpbnQgQ0xBVVNFID0gMTA5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuTG9vcE5vZGVJbXBsIDxlbT5Mb29wIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMTQ4MjIsNyArMTQ4MjIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRMb29wTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBMT09QX05PREUgPSAxMjQ7CisJaW50IExPT1BfTk9ERSA9IDExMDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNvbm5lY3RvckVuZEltcGwgPGVtPkNvbm5lY3RvciBFbmQ8L2VtPn0nIGNsYXNzLgpAQCAtMTQ4NTIsNyArMTQ4NTIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRUcmlnZ2VyKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRSSUdHRVIgPSAxMjg7CisJaW50IFRSSUdHRVIgPSA5NjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk1lc3NhZ2VUcmlnZ2VySW1wbCA8ZW0+TWVzc2FnZSBUcmlnZ2VyPC9lbT59JyBjbGFzcy4KQEAgLTE0ODYyLDcgKzE0ODYyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0TWVzc2FnZVRyaWdnZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVTU0FHRV9UUklHR0VSID0gMTI2OworCWludCBNRVNTQUdFX1RSSUdHRVIgPSA5NDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNhbGxUcmlnZ2VySW1wbCA8ZW0+Q2FsbCBUcmlnZ2VyPC9lbT59JyBjbGFzcy4KQEAgLTE0ODcyLDcgKzE0ODcyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q2FsbFRyaWdnZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQ0FMTF9UUklHR0VSID0gMTI1OworCWludCBDQUxMX1RSSUdHRVIgPSA5MzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNoYW5nZVRyaWdnZXJJbXBsIDxlbT5DaGFuZ2UgVHJpZ2dlcjwvZW0+fScgY2xhc3MuCkBAIC0xNDg4Miw3ICsxNDg4Miw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENoYW5nZVRyaWdnZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVIgPSAxMjc7CisJaW50IENIQU5HRV9UUklHR0VSID0gOTU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5SZWNlcHRpb25JbXBsIDxlbT5SZWNlcHRpb248L2VtPn0nIGNsYXNzLgpAQCAtMTQ4OTIsNyArMTQ4OTIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRSZWNlcHRpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkVDRVBUSU9OID0gMTI5OworCWludCBSRUNFUFRJT04gPSA5NzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlNpZ25hbEltcGwgPGVtPlNpZ25hbDwvZW0+fScgY2xhc3MuCkBAIC0xNDkwMiw3ICsxNDkwMiw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFNpZ25hbCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBTSUdOQUwgPSAxMzA7CisJaW50IFNJR05BTCA9IDk4OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuU2lnbmFsVHJpZ2dlckltcGwgPGVtPlNpZ25hbCBUcmlnZ2VyPC9lbT59JyBjbGFzcy4KQEAgLTE0OTEyLDcgKzE0OTEyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0U2lnbmFsVHJpZ2dlcigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBTSUdOQUxfVFJJR0dFUiA9IDEzMTsKKwlpbnQgU0lHTkFMX1RSSUdHRVIgPSA5OTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRpbWVUcmlnZ2VySW1wbCA8ZW0+VGltZSBUcmlnZ2VyPC9lbT59JyBjbGFzcy4KQEAgLTE0OTIyLDcgKzE0OTIyLDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGltZVRyaWdnZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVElNRV9UUklHR0VSID0gMTMyOworCWludCBUSU1FX1RSSUdHRVIgPSAxMDA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BbnlUcmlnZ2VySW1wbCA8ZW0+QW55IFRyaWdnZXI8L2VtPn0nIGNsYXNzLgpAQCAtMTQ5MzIsNyArMTQ5MzIsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBbnlUcmlnZ2VyKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEFOWV9UUklHR0VSID0gMTMzOworCWludCBBTllfVFJJR0dFUiA9IDEwMTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtMTU2MTYsNiArMTU2MTYsMjM2NCBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLworCWludCBJTlRFUkZBQ0VfX0VBTk5PVEFUSU9OUyA9IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX09XTkVEX0VMRU1FTlQgPSBDTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19PV05FUiA9IENMQVNTSUZJRVJfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fT1dORURfQ09NTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19URU1QTEFURV9CSU5ESU5HID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENMQVNTSUZJRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19OQU1FID0gQ0xBU1NJRklFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fUVVBTElGSUVEX05BTUUgPSBDTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19WSVNJQklMSVRZID0gQ0xBU1NJRklFUl9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fTkFNRV9FWFBSRVNTSU9OID0gQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19NRU1CRVIgPSBDTEFTU0lGSUVSX19NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19PV05FRF9SVUxFID0gQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fSU1QT1JURURfTUVNQkVSID0gQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX0VMRU1FTlRfSU1QT1JUID0gQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IENMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fT1dOSU5HX1BBUkFNRVRFUiA9IENMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fUEFDS0FHRSA9IENMQVNTSUZJRVJfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBDTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19JU19MRUFGID0gQ0xBU1NJRklFUl9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX0ZFQVRVUkUgPSBDTEFTU0lGSUVSX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19JU19BQlNUUkFDVCA9IENMQVNTSUZJRVJfX0lTX0FCU1RSQUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19HRU5FUkFMID0gQ0xBU1NJRklFUl9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19HRU5FUkFMSVpBVElPTiA9IENMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19BVFRSSUJVVEUgPSBDTEFTU0lGSUVSX19BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBDTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX1BPV0VSVFlQRV9FWFRFTlQgPSBDTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19TVUJTVElUVVRJT04gPSBDTEFTU0lGSUVSX19TVUJTVElUVVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fT1dORURfVVNFX0NBU0UgPSBDTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19SRVBSRVNFTlRBVElPTiA9IENMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9fT0NDVVJSRU5DRSA9IENMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX09XTkVEX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgT3BlcmF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX09XTkVEX09QRVJBVElPTiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEludGVyZmFjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19SRURFRklORURfSU5URVJGQUNFID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJGQUNFX19ORVNURURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUmVjZXB0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX09XTkVEX1JFQ0VQVElPTiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJvdG9jb2w8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUkZBQ0VfX1BST1RPQ09MID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW50ZXJmYWNlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSRkFDRV9GRUFUVVJFX0NPVU5UID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19FQU5OT1RBVElPTlMgPSBSRUFMSVpBVElPTl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19PV05FRF9FTEVNRU5UID0gUkVBTElaQVRJT05fX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fT1dORVIgPSBSRUFMSVpBVElPTl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX09XTkVEX0NPTU1FTlQgPSBSRUFMSVpBVElPTl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fVEVNUExBVEVfQklORElORyA9IFJFQUxJWkFUSU9OX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBSRUFMSVpBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fTkFNRSA9IFJFQUxJWkFUSU9OX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX1FVQUxJRklFRF9OQU1FID0gUkVBTElaQVRJT05fX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fVklTSUJJTElUWSA9IFJFQUxJWkFUSU9OX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBSRUFMSVpBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IFJFQUxJWkFUSU9OX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFJFQUxJWkFUSU9OX19URU1QTEFURV9QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IFJFQUxJWkFUSU9OX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBSRUFMSVpBVElPTl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX1JFTEFURURfRUxFTUVOVCA9IFJFQUxJWkFUSU9OX19SRUxBVEVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fU09VUkNFID0gUkVBTElaQVRJT05fX1NPVVJDRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19UQVJHRVQgPSBSRUFMSVpBVElPTl9fVEFSR0VUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX0NMSUVOVCA9IFJFQUxJWkFUSU9OX19DTElFTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwcGxpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElNUExFTUVOVEFUSU9OX19TVVBQTElFUiA9IFJFQUxJWkFUSU9OX19TVVBQTElFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NYXBwaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fX01BUFBJTkcgPSBSRUFMSVpBVElPTl9fTUFQUElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BYnN0cmFjdGlvbjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fQUJTVFJBQ1RJT04gPSBSRUFMSVpBVElPTl9fQUJTVFJBQ1RJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVhbGl6aW5nIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fUkVBTElaSU5HX0NMQVNTSUZJRVIgPSBSRUFMSVpBVElPTl9fUkVBTElaSU5HX0NMQVNTSUZJRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udHJhY3Q8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fQ09OVFJBQ1QgPSBSRUFMSVpBVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBsZW1lbnRpbmcgQ2xhc3NpZmllcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTVBMRU1FTlRBVElPTl9fSU1QTEVNRU5USU5HX0NMQVNTSUZJRVIgPSBSRUFMSVpBVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW1wbGVtZW50YXRpb248L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU1QTEVNRU5UQVRJT05fRkVBVFVSRV9DT1VOVCA9IFJFQUxJWkFUSU9OX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX0VBTk5PVEFUSU9OUyA9IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fT1dORURfRUxFTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fT1dORVIgPSBDTEFTU0lGSUVSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fT1dORURfQ09NTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19OQU1FID0gQ0xBU1NJRklFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19RVUFMSUZJRURfTkFNRSA9IENMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fTUVNQkVSID0gQ0xBU1NJRklFUl9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19PV05FRF9SVUxFID0gQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19FTEVNRU5UX0lNUE9SVCA9IENMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX09XTklOR19QQVJBTUVURVIgPSBDTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19QQUNLQUdFID0gQ0xBU1NJRklFUl9fUEFDS0FHRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19JU19MRUFGID0gQ0xBU1NJRklFUl9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fRkVBVFVSRSA9IENMQVNTSUZJRVJfX0ZFQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fSVNfQUJTVFJBQ1QgPSBDTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX0dFTkVSQUwgPSBDTEFTU0lGSUVSX19HRU5FUkFMOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fR0VORVJBTElaQVRJT04gPSBDTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19BVFRSSUJVVEUgPSBDTEFTU0lGSUVSX19BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19QT1dFUlRZUEVfRVhURU5UID0gQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19TVUJTVElUVVRJT04gPSBDTEFTU0lGSUVSX19TVUJTVElUVVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fVVNFX0NBU0UgPSBDTEFTU0lGSUVSX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19SRVBSRVNFTlRBVElPTiA9IENMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19PQ0NVUlJFTkNFID0gQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GaWxlIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBUlRJRkFDVF9fRklMRV9OQU1FID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgQXJ0aWZhY3Q8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19ORVNURURfQVJUSUZBQ1QgPSBDTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1hbmlmZXN0YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19NQU5JRkVTVEFUSU9OID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX19PV05FRF9PUEVSQVRJT04gPSBDTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEF0dHJpYnV0ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQVJUSUZBQ1RfX09XTkVEX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkFydGlmYWN0PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFSVElGQUNUX0ZFQVRVUkVfQ09VTlQgPSBDTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyA1OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fRUFOTk9UQVRJT05TID0gQUJTVFJBQ1RJT05fX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19PV05FRF9FTEVNRU5UID0gQUJTVFJBQ1RJT05fX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19PV05FUiA9IEFCU1RSQUNUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19PV05FRF9DT01NRU5UID0gQUJTVFJBQ1RJT05fX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fVEVNUExBVEVfQklORElORyA9IEFCU1RSQUNUSU9OX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IEFCU1RSQUNUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX05BTUUgPSBBQlNUUkFDVElPTl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX1FVQUxJRklFRF9OQU1FID0gQUJTVFJBQ1RJT05fX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19WSVNJQklMSVRZID0gQUJTVFJBQ1RJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gQUJTVFJBQ1RJT05fX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IEFCU1RSQUNUSU9OX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fVEVNUExBVEVfUEFSQU1FVEVSID0gQUJTVFJBQ1RJT05fX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX09XTklOR19QQVJBTUVURVIgPSBBQlNUUkFDVElPTl9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBBQlNUUkFDVElPTl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fUkVMQVRFRF9FTEVNRU5UID0gQUJTVFJBQ1RJT05fX1JFTEFURURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Tb3VyY2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX1NPVVJDRSA9IEFCU1RSQUNUSU9OX19TT1VSQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNQU5JRkVTVEFUSU9OX19UQVJHRVQgPSBBQlNUUkFDVElPTl9fVEFSR0VUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fQ0xJRU5UID0gQUJTVFJBQ1RJT05fX0NMSUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBwbGllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fU1VQUExJRVIgPSBBQlNUUkFDVElPTl9fU1VQUExJRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWFwcGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fX01BUFBJTkcgPSBBQlNUUkFDVElPTl9fTUFQUElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VdGlsaXplZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUFOSUZFU1RBVElPTl9fVVRJTElaRURfRUxFTUVOVCA9IEFCU1RSQUNUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5NYW5pZmVzdGF0aW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1BTklGRVNUQVRJT05fRkVBVFVSRV9DT1VOVCA9IEFCU1RSQUNUSU9OX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfX0VBTk5PVEFUSU9OUyA9IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fT1dORURfRUxFTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fT1dORVIgPSBDTEFTU0lGSUVSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fT1dORURfQ09NTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19OQU1FID0gQ0xBU1NJRklFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19RVUFMSUZJRURfTkFNRSA9IENMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fTUVNQkVSID0gQ0xBU1NJRklFUl9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19PV05FRF9SVUxFID0gQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19FTEVNRU5UX0lNUE9SVCA9IENMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfX09XTklOR19QQVJBTUVURVIgPSBDTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19QQUNLQUdFID0gQ0xBU1NJRklFUl9fUEFDS0FHRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19JU19MRUFGID0gQ0xBU1NJRklFUl9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fRkVBVFVSRSA9IENMQVNTSUZJRVJfX0ZFQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fSVNfQUJTVFJBQ1QgPSBDTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfX0dFTkVSQUwgPSBDTEFTU0lGSUVSX19HRU5FUkFMOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fR0VORVJBTElaQVRJT04gPSBDTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19BVFRSSUJVVEUgPSBDTEFTU0lGSUVSX19BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19QT1dFUlRZUEVfRVhURU5UID0gQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19TVUJTVElUVVRJT04gPSBDTEFTU0lGSUVSX19TVUJTVElUVVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RPUl9fVVNFX0NBU0UgPSBDTEFTU0lGSUVSX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19SRVBSRVNFTlRBVElPTiA9IENMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVE9SX19PQ0NVUlJFTkNFID0gQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QWN0b3I8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUT1JfRkVBVFVSRV9DT1VOVCA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTkRfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTkRfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVORF9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTkRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVORF9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVORF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19SRUxBVEVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19TT1VSQ0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRhcmdldDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19UQVJHRVQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuZGVkIENhc2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTkRfX0VYVEVOREVEX0NBU0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTkRfX0VYVEVOU0lPTiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19DT05ESVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA1OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbiBMb2NhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX19FWFRFTlNJT05fTE9DQVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2OworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeHRlbmQ8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5EX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA3OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX0VBTk5PVEFUSU9OUyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX09XTkVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fT1dORURfQ09NTUVOVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1ZJU0lCSUxJVFkgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19DTElFTlRfREVQRU5ERU5DWSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX05BTUVfRVhQUkVTU0lPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05FRF9SVUxFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX0lNUE9SVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fRUxFTUVOVF9JTVBPUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fUEFDS0FHRV9JTVBPUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19URU1QTEFURV9QQVJBTUVURVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05JTkdfUEFSQU1FVEVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1BBQ0tBR0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19JU19MRUFGID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19GRUFUVVJFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX0lTX0FCU1RSQUNUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fSU5IRVJJVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fR0VORVJBTCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX0dFTkVSQUxJWkFUSU9OID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19BVFRSSUJVVEUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fUE9XRVJUWVBFX0VYVEVOVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19TVUJTVElUVVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX09XTkVEX1VTRV9DQVNFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1VTRV9DQVNFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19SRVBSRVNFTlRBVElPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX09DQ1VSUkVOQ0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05FRF9CRUhBVklPUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfQkVIQVZJT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3NpZmllciBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19DTEFTU0lGSUVSX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBVU0VfQ0FTRV9fSU1QTEVNRU5UQVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05FRF9UUklHR0VSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9UUklHR0VSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19PV05FRF9TVEFURV9NQUNISU5FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9TVEFURV9NQUNISU5FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY2x1ZGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19JTkNMVURFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX0VYVEVORCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb24gUG9pbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX19FWFRFTlNJT05fUE9JTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3ViamVjdDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVVNFX0NBU0VfX1NVQkpFQ1QgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlVzZSBDYXNlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFVTRV9DQVNFX0ZFQVRVUkVfQ09VTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTlNJT05fUE9JTlRfX0VBTk5PVEFUSU9OUyA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTlNJT05fUE9JTlRfX09XTkVEX0VMRU1FTlQgPSBSRURFRklOQUJMRV9FTEVNRU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19PV05FUiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVOU0lPTl9QT0lOVF9fT1dORURfQ09NTUVOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19URU1QTEFURV9CSU5ESU5HID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTlNJT05fUE9JTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19OQU1FID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVOU0lPTl9QT0lOVF9fUVVBTElGSUVEX05BTUUgPSBSRURFRklOQUJMRV9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19WSVNJQklMSVRZID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19DTElFTlRfREVQRU5ERU5DWSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVOU0lPTl9QT0lOVF9fTkFNRV9FWFBSRVNTSU9OID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTlNJT05fUE9JTlRfX1JFREVGSU5JVElPTl9DT05URVhUID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYVEVOU0lPTl9QT0lOVF9fSVNfTEVBRiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhURU5TSU9OX1BPSU5UX19VU0VfQ0FTRSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkV4dGVuc2lvbiBQb2ludDwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFRFTlNJT05fUE9JTlRfRkVBVFVSRV9DT1VOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOQ0xVREVfX09XTkVEX0NPTU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOQ0xVREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOQ0xVREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FRF9FTEVNRU5UX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTkNMVURFX19SRUxBVEVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fU09VUkNFID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOQ0xVREVfX1RBUkdFVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jbHVkaW5nIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fSU5DTFVESU5HX0NBU0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFkZGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5DTFVERV9fQURESVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA0OworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5JbmNsdWRlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOQ0xVREVfRkVBVFVSRV9DT1VOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLwogCWludCBBQ1RJVklUWV9FREdFX19FQU5OT1RBVElPTlMgPSBSRURFRklOQUJMRV9FTEVNRU5UX19FQU5OT1RBVElPTlM7CiAKIAkvKioKQEAgLTE5OTEyLDIzNjQgKzIyMjcwLDYgQEAKIAlpbnQgVkFMVUVfUElOX0ZFQVRVUkVfQ09VTlQgPSBJTlBVVF9QSU5fRkVBVFVSRV9DT1VOVCArIDE7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fRUFOTk9UQVRJT05TID0gQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19PV05FRF9FTEVNRU5UID0gQ0xBU1NJRklFUl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19PV05FUiA9IENMQVNTSUZJRVJfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19PV05FRF9DT01NRU5UID0gQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fVEVNUExBVEVfQklORElORyA9IENMQVNTSUZJRVJfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENMQVNTSUZJRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX05BTUUgPSBDTEFTU0lGSUVSX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1FVQUxJRklFRF9OQU1FID0gQ0xBU1NJRklFUl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19WSVNJQklMSVRZID0gQ0xBU1NJRklFUl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX05BTUVfRVhQUkVTU0lPTiA9IENMQVNTSUZJRVJfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19NRU1CRVIgPSBDTEFTU0lGSUVSX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX09XTkVEX1JVTEUgPSBDTEFTU0lGSUVSX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX0lNUE9SVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lNUE9SVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX0VMRU1FTlRfSU1QT1JUID0gQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19QQUNLQUdFX0lNUE9SVCA9IENMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19URU1QTEFURV9QQVJBTUVURVIgPSBDTEFTU0lGSUVSX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fT1dOSU5HX1BBUkFNRVRFUiA9IENMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1BBQ0tBR0UgPSBDTEFTU0lGSUVSX19QQUNLQUdFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBDTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX0lTX0xFQUYgPSBDTEFTU0lGSUVSX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19GRUFUVVJFID0gQ0xBU1NJRklFUl9fRkVBVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBBYnN0cmFjdDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19JU19BQlNUUkFDVCA9IENMQVNTSUZJRVJfX0lTX0FCU1RSQUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19JTkhFUklURURfTUVNQkVSID0gQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fR0VORVJBTCA9IENMQVNTSUZJRVJfX0dFTkVSQUw7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbGl6YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19HRU5FUkFMSVpBVElPTiA9IENMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQ0xBU1NJRklFUl9fUkVERUZJTkVEX0NMQVNTSUZJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG93ZXJ0eXBlIEV4dGVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1BPV0VSVFlQRV9FWFRFTlQgPSBDTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1NVQlNUSVRVVElPTiA9IENMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX09XTkVEX1VTRV9DQVNFID0gQ0xBU1NJRklFUl9fT1dORURfVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXNlIENhc2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX1JFUFJFU0VOVEFUSU9OID0gQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX09DQ1VSUkVOQ0UgPSBDTEFTU0lGSUVSX19PQ0NVUlJFTkNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZpbGUgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFSVElGQUNUX19GSUxFX05BTUUgPSBDTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBBcnRpZmFjdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX05FU1RFRF9BUlRJRkFDVCA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWFuaWZlc3RhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX01BTklGRVNUQVRJT04gPSBDTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIE9wZXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfX09XTkVEX09QRVJBVElPTiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBUlRJRkFDVF9fT1dORURfQVRUUklCVVRFID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QXJ0aWZhY3Q8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQVJUSUZBQ1RfRkVBVFVSRV9DT1VOVCA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19FQU5OT1RBVElPTlMgPSBBQlNUUkFDVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX09XTkVEX0VMRU1FTlQgPSBBQlNUUkFDVElPTl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX09XTkVSID0gQUJTVFJBQ1RJT05fX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX09XTkVEX0NPTU1FTlQgPSBBQlNUUkFDVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19URU1QTEFURV9CSU5ESU5HID0gQUJTVFJBQ1RJT05fX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQUJTVFJBQ1RJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fTkFNRSA9IEFCU1RSQUNUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fUVVBTElGSUVEX05BTUUgPSBBQlNUUkFDVElPTl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX1ZJU0lCSUxJVFkgPSBBQlNUUkFDVElPTl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBBQlNUUkFDVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gQUJTVFJBQ1RJT05fX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19URU1QTEFURV9QQVJBTUVURVIgPSBBQlNUUkFDVElPTl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IEFCU1RSQUNUSU9OX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IEFCU1RSQUNUSU9OX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19SRUxBVEVEX0VMRU1FTlQgPSBBQlNUUkFDVElPTl9fUkVMQVRFRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fU09VUkNFID0gQUJTVFJBQ1RJT05fX1NPVVJDRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1BTklGRVNUQVRJT05fX1RBUkdFVCA9IEFCU1RSQUNUSU9OX19UQVJHRVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19DTElFTlQgPSBBQlNUUkFDVElPTl9fQ0xJRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cHBsaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19TVVBQTElFUiA9IEFCU1RSQUNUSU9OX19TVVBQTElFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NYXBwaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9fTUFQUElORyA9IEFCU1RSQUNUSU9OX19NQVBQSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlV0aWxpemVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNQU5JRkVTVEFUSU9OX19VVElMSVpFRF9FTEVNRU5UID0gQUJTVFJBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPk1hbmlmZXN0YXRpb248L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUFOSUZFU1RBVElPTl9GRUFUVVJFX0NPVU5UID0gQUJTVFJBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX0VBTk5PVEFUSU9OUyA9IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX09XTkVEX0VMRU1FTlQgPSBDTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19PV05FUiA9IENMQVNTSUZJRVJfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fT1dORURfQ09NTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19URU1QTEFURV9CSU5ESU5HID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENMQVNTSUZJRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19OQU1FID0gQ0xBU1NJRklFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fUVVBTElGSUVEX05BTUUgPSBDTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19WSVNJQklMSVRZID0gQ0xBU1NJRklFUl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fTkFNRV9FWFBSRVNTSU9OID0gQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19NRU1CRVIgPSBDTEFTU0lGSUVSX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19PV05FRF9SVUxFID0gQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fSU1QT1JURURfTUVNQkVSID0gQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX0VMRU1FTlRfSU1QT1JUID0gQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IENMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fT1dOSU5HX1BBUkFNRVRFUiA9IENMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fUEFDS0FHRSA9IENMQVNTSUZJRVJfX1BBQ0tBR0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBDTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19JU19MRUFGID0gQ0xBU1NJRklFUl9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX0ZFQVRVUkUgPSBDTEFTU0lGSUVSX19GRUFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19JU19BQlNUUkFDVCA9IENMQVNTSUZJRVJfX0lTX0FCU1RSQUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19HRU5FUkFMID0gQ0xBU1NJRklFUl9fR0VORVJBTDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19HRU5FUkFMSVpBVElPTiA9IENMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19BVFRSSUJVVEUgPSBDTEFTU0lGSUVSX19BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBDTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX1BPV0VSVFlQRV9FWFRFTlQgPSBDTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19TVUJTVElUVVRJT04gPSBDTEFTU0lGSUVSX19TVUJTVElUVVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fT1dORURfVVNFX0NBU0UgPSBDTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19SRVBSRVNFTlRBVElPTiA9IENMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9fT0NDVVJSRU5DRSA9IENMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX09XTkVEX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgT3BlcmF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX09XTkVEX09QRVJBVElPTiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEludGVyZmFjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19SRURFRklORURfSU5URVJGQUNFID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJGQUNFX19ORVNURURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUmVjZXB0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX09XTkVEX1JFQ0VQVElPTiA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJvdG9jb2w8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUkZBQ0VfX1BST1RPQ09MID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW50ZXJmYWNlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSRkFDRV9GRUFUVVJFX0NPVU5UID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19FQU5OT1RBVElPTlMgPSBSRUFMSVpBVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19PV05FRF9FTEVNRU5UID0gUkVBTElaQVRJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fT1dORVIgPSBSRUFMSVpBVElPTl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX09XTkVEX0NPTU1FTlQgPSBSRUFMSVpBVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fVEVNUExBVEVfQklORElORyA9IFJFQUxJWkFUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBSRUFMSVpBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fTkFNRSA9IFJFQUxJWkFUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX1FVQUxJRklFRF9OQU1FID0gUkVBTElaQVRJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fVklTSUJJTElUWSA9IFJFQUxJWkFUSU9OX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBSRUFMSVpBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IFJFQUxJWkFUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFJFQUxJWkFUSU9OX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IFJFQUxJWkFUSU9OX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBSRUFMSVpBVElPTl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX1JFTEFURURfRUxFTUVOVCA9IFJFQUxJWkFUSU9OX19SRUxBVEVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fU09VUkNFID0gUkVBTElaQVRJT05fX1NPVVJDRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19UQVJHRVQgPSBSRUFMSVpBVElPTl9fVEFSR0VUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX0NMSUVOVCA9IFJFQUxJWkFUSU9OX19DTElFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwcGxpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElNUExFTUVOVEFUSU9OX19TVVBQTElFUiA9IFJFQUxJWkFUSU9OX19TVVBQTElFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NYXBwaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fX01BUFBJTkcgPSBSRUFMSVpBVElPTl9fTUFQUElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BYnN0cmFjdGlvbjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fQUJTVFJBQ1RJT04gPSBSRUFMSVpBVElPTl9fQUJTVFJBQ1RJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVhbGl6aW5nIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fUkVBTElaSU5HX0NMQVNTSUZJRVIgPSBSRUFMSVpBVElPTl9fUkVBTElaSU5HX0NMQVNTSUZJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udHJhY3Q8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fQ09OVFJBQ1QgPSBSRUFMSVpBVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBsZW1lbnRpbmcgQ2xhc3NpZmllcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTVBMRU1FTlRBVElPTl9fSU1QTEVNRU5USU5HX0NMQVNTSUZJRVIgPSBSRUFMSVpBVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW1wbGVtZW50YXRpb248L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU1QTEVNRU5UQVRJT05fRkVBVFVSRV9DT1VOVCA9IFJFQUxJWkFUSU9OX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfX0VBTk5PVEFUSU9OUyA9IENMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fT1dORURfRUxFTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fT1dORVIgPSBDTEFTU0lGSUVSX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fT1dORURfQ09NTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19OQU1FID0gQ0xBU1NJRklFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19RVUFMSUZJRURfTkFNRSA9IENMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fTUVNQkVSID0gQ0xBU1NJRklFUl9fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19PV05FRF9SVUxFID0gQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19FTEVNRU5UX0lNUE9SVCA9IENMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfX09XTklOR19QQVJBTUVURVIgPSBDTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19QQUNLQUdFID0gQ0xBU1NJRklFUl9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19JU19MRUFGID0gQ0xBU1NJRklFUl9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fRkVBVFVSRSA9IENMQVNTSUZJRVJfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fSVNfQUJTVFJBQ1QgPSBDTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfX0dFTkVSQUwgPSBDTEFTU0lGSUVSX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fR0VORVJBTElaQVRJT04gPSBDTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19BVFRSSUJVVEUgPSBDTEFTU0lGSUVSX19BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19QT1dFUlRZUEVfRVhURU5UID0gQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19TVUJTVElUVVRJT04gPSBDTEFTU0lGSUVSX19TVUJTVElUVVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBQ1RPUl9fVVNFX0NBU0UgPSBDTEFTU0lGSUVSX19VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19SRVBSRVNFTlRBVElPTiA9IENMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFDVE9SX19PQ0NVUlJFTkNFID0gQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QWN0b3I8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQUNUT1JfRkVBVFVSRV9DT1VOVCA9IENMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTkRfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTkRfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVORF9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTkRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVORF9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVORF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19SRUxBVEVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19TT1VSQ0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRhcmdldDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19UQVJHRVQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuZGVkIENhc2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTkRfX0VYVEVOREVEX0NBU0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTkRfX0VYVEVOU0lPTiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19DT05ESVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA1OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbiBMb2NhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX19FWFRFTlNJT05fTE9DQVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2OwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeHRlbmQ8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5EX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA3OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX0VBTk5PVEFUSU9OUyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX09XTkVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fT1dORURfQ09NTUVOVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1ZJU0lCSUxJVFkgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19DTElFTlRfREVQRU5ERU5DWSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX05BTUVfRVhQUkVTU0lPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05FRF9SVUxFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX0lNUE9SVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fRUxFTUVOVF9JTVBPUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fUEFDS0FHRV9JTVBPUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19URU1QTEFURV9QQVJBTUVURVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05JTkdfUEFSQU1FVEVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1BBQ0tBR0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19JU19MRUFGID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19GRUFUVVJFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19GRUFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX0lTX0FCU1RSQUNUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fSU5IRVJJVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fR0VORVJBTCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fR0VORVJBTDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX0dFTkVSQUxJWkFUSU9OID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19BVFRSSUJVVEUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fUE9XRVJUWVBFX0VYVEVOVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19TVUJTVElUVVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX09XTkVEX1VTRV9DQVNFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1VTRV9DQVNFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19SRVBSRVNFTlRBVElPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX09DQ1VSUkVOQ0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05FRF9CRUhBVklPUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3NpZmllciBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19DTEFTU0lGSUVSX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBVU0VfQ0FTRV9fSU1QTEVNRU5UQVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0lNUExFTUVOVEFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05FRF9UUklHR0VSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9UUklHR0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19PV05FRF9TVEFURV9NQUNISU5FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9TVEFURV9NQUNISU5FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY2x1ZGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19JTkNMVURFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX0VYVEVORCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb24gUG9pbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX19FWFRFTlNJT05fUE9JTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3ViamVjdDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVVNFX0NBU0VfX1NVQkpFQ1QgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlVzZSBDYXNlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFVTRV9DQVNFX0ZFQVRVUkVfQ09VTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTlNJT05fUE9JTlRfX0VBTk5PVEFUSU9OUyA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTlNJT05fUE9JTlRfX09XTkVEX0VMRU1FTlQgPSBSRURFRklOQUJMRV9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19PV05FUiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVOU0lPTl9QT0lOVF9fT1dORURfQ09NTUVOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19URU1QTEFURV9CSU5ESU5HID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTlNJT05fUE9JTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19OQU1FID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVOU0lPTl9QT0lOVF9fUVVBTElGSUVEX05BTUUgPSBSRURFRklOQUJMRV9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19WSVNJQklMSVRZID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19DTElFTlRfREVQRU5ERU5DWSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVOU0lPTl9QT0lOVF9fTkFNRV9FWFBSRVNTSU9OID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTlNJT05fUE9JTlRfX1JFREVGSU5JVElPTl9DT05URVhUID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYVEVOU0lPTl9QT0lOVF9fSVNfTEVBRiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhURU5TSU9OX1BPSU5UX19VU0VfQ0FTRSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkV4dGVuc2lvbiBQb2ludDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFRFTlNJT05fUE9JTlRfRkVBVFVSRV9DT1VOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOQ0xVREVfX09XTkVEX0NPTU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOQ0xVREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOQ0xVREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FRF9FTEVNRU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTkNMVURFX19SRUxBVEVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fU09VUkNFID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOQ0xVREVfX1RBUkdFVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jbHVkaW5nIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fSU5DTFVESU5HX0NBU0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFkZGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5DTFVERV9fQURESVRJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA0OwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5JbmNsdWRlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOQ0xVREVfRkVBVFVSRV9DT1VOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5UZW1wbGF0ZVNpZ25hdHVyZUltcGwgPGVtPlRlbXBsYXRlIFNpZ25hdHVyZTwvZW0+fScgY2xhc3MuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KQEAgLTIyMjc3LDcgKzIyMjc3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGVtcGxhdGVTaWduYXR1cmUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVEVNUExBVEVfU0lHTkFUVVJFID0gOTM7CisJaW50IFRFTVBMQVRFX1NJR05BVFVSRSA9IDExMTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRlbXBsYXRlUGFyYW1ldGVySW1wbCA8ZW0+VGVtcGxhdGUgUGFyYW1ldGVyPC9lbT59JyBjbGFzcy4KQEAgLTIyMjg3LDcgKzIyMjg3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGVtcGxhdGVQYXJhbWV0ZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVEVNUExBVEVfUEFSQU1FVEVSID0gOTQ7CisJaW50IFRFTVBMQVRFX1BBUkFNRVRFUiA9IDExMjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlN0cmluZ0V4cHJlc3Npb25JbXBsIDxlbT5TdHJpbmcgRXhwcmVzc2lvbjwvZW0+fScgY2xhc3MuCkBAIC0yMjI5Nyw3ICsyMjI5Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFN0cmluZ0V4cHJlc3Npb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgU1RSSU5HX0VYUFJFU1NJT04gPSA5NjsKKwlpbnQgU1RSSU5HX0VYUFJFU1NJT04gPSAxMTQ7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5QYXJhbWV0ZXJhYmxlRWxlbWVudEltcGwgPGVtPlBhcmFtZXRlcmFibGUgRWxlbWVudDwvZW0+fScgY2xhc3MuCkBAIC0yMjMwNyw3ICsyMjMwNyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFBhcmFtZXRlcmFibGVFbGVtZW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFBBUkFNRVRFUkFCTEVfRUxFTUVOVCA9IDk3OworCWludCBQQVJBTUVURVJBQkxFX0VMRU1FTlQgPSAxMTU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5UZW1wbGF0ZUJpbmRpbmdJbXBsIDxlbT5UZW1wbGF0ZSBCaW5kaW5nPC9lbT59JyBjbGFzcy4KQEAgLTIyMzE3LDcgKzIyMzE3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGVtcGxhdGVCaW5kaW5nKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRFTVBMQVRFX0JJTkRJTkcgPSA5ODsKKwlpbnQgVEVNUExBVEVfQklORElORyA9IDExNjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uSW1wbCA8ZW0+VGVtcGxhdGUgUGFyYW1ldGVyIFN1YnN0aXR1dGlvbjwvZW0+fScgY2xhc3MuCkBAIC0yMjMyNyw3ICsyMjMyNyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRFTVBMQVRFX1BBUkFNRVRFUl9TVUJTVElUVVRJT04gPSA5OTsKKwlpbnQgVEVNUExBVEVfUEFSQU1FVEVSX1NVQlNUSVRVVElPTiA9IDExNzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNvbGxhYm9yYXRpb25JbXBsIDxlbT5Db2xsYWJvcmF0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTIyMzM3LDcgKzIyMzM3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q29sbGFib3JhdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBDT0xMQUJPUkFUSU9OID0gMTAwOworCWludCBDT0xMQUJPUkFUSU9OID0gMTAzOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXJJbXBsIDxlbT5PcGVyYXRpb24gVGVtcGxhdGUgUGFyYW1ldGVyPC9lbT59JyBjbGFzcy4KQEAgLTIyMzQ3LDcgKzIyMzQ3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0T3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgT1BFUkFUSU9OX1RFTVBMQVRFX1BBUkFNRVRFUiA9IDEwMTsKKwlpbnQgT1BFUkFUSU9OX1RFTVBMQVRFX1BBUkFNRVRFUiA9IDExODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlckltcGwgPGVtPkNsYXNzaWZpZXIgVGVtcGxhdGUgUGFyYW1ldGVyPC9lbT59JyBjbGFzcy4KQEAgLTIyMzU3LDcgKzIyMzU3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENMQVNTSUZJRVJfVEVNUExBVEVfUEFSQU1FVEVSID0gMTAyOworCWludCBDTEFTU0lGSUVSX1RFTVBMQVRFX1BBUkFNRVRFUiA9IDExOTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlBhcmFtZXRlcmFibGVDbGFzc2lmaWVySW1wbCA8ZW0+UGFyYW1ldGVyYWJsZSBDbGFzc2lmaWVyPC9lbT59JyBjbGFzcy4KQEAgLTIyMzY3LDcgKzIyMzY3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UGFyYW1ldGVyYWJsZUNsYXNzaWZpZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUEFSQU1FVEVSQUJMRV9DTEFTU0lGSUVSID0gMTAzOworCWludCBQQVJBTUVURVJBQkxFX0NMQVNTSUZJRVIgPSAxMjA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5SZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlSW1wbCA8ZW0+UmVkZWZpbmFibGUgVGVtcGxhdGUgU2lnbmF0dXJlPC9lbT59JyBjbGFzcy4KQEAgLTIyMzc3LDcgKzIyMzc3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UmVkZWZpbmFibGVUZW1wbGF0ZVNpZ25hdHVyZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBSRURFRklOQUJMRV9URU1QTEFURV9TSUdOQVRVUkUgPSAxMDQ7CisJaW50IFJFREVGSU5BQkxFX1RFTVBMQVRFX1NJR05BVFVSRSA9IDEyMTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRlbXBsYXRlYWJsZUNsYXNzaWZpZXJJbXBsIDxlbT5UZW1wbGF0ZWFibGUgQ2xhc3NpZmllcjwvZW0+fScgY2xhc3MuCkBAIC0yMjM4Nyw3ICsyMjM4Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFRlbXBsYXRlYWJsZUNsYXNzaWZpZXIoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVEVNUExBVEVBQkxFX0NMQVNTSUZJRVIgPSAxMDU7CisJaW50IFRFTVBMQVRFQUJMRV9DTEFTU0lGSUVSID0gMTIyOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXJJbXBsIDxlbT5Db25uZWN0YWJsZSBFbGVtZW50IFRlbXBsYXRlIFBhcmFtZXRlcjwvZW0+fScgY2xhc3MuCkBAIC0yMjM5Nyw3ICsyMjM5Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENPTk5FQ1RBQkxFX0VMRU1FTlRfVEVNUExBVEVfUEFSQU1FVEVSID0gMTA2OworCWludCBDT05ORUNUQUJMRV9FTEVNRU5UX1RFTVBMQVRFX1BBUkFNRVRFUiA9IDEyMzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkZvcmtOb2RlSW1wbCA8ZW0+Rm9yayBOb2RlPC9lbT59JyBjbGFzcy4KQEAgLTIyNDA3LDcgKzIyNDA3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Rm9ya05vZGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFID0gMTM3OworCWludCBGT1JLX05PREUgPSAxNzU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5Kb2luTm9kZUltcGwgPGVtPkpvaW4gTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0yMjQxNyw3ICsyMjQxNyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEpvaW5Ob2RlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEpPSU5fTk9ERSA9IDEzODsKKwlpbnQgSk9JTl9OT0RFID0gMTc2OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRmxvd0ZpbmFsTm9kZUltcGwgPGVtPkZsb3cgRmluYWwgTm9kZTwvZW0+fScgY2xhc3MuCkBAIC0yMjQyNyw3ICsyMjQyNyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEZsb3dGaW5hbE5vZGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFID0gMTM5OworCWludCBGTE9XX0ZJTkFMX05PREUgPSAxNzc7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5DZW50cmFsQnVmZmVyTm9kZUltcGwgPGVtPkNlbnRyYWwgQnVmZmVyIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMjI0MzcsNyArMjI0MzcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRDZW50cmFsQnVmZmVyTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFID0gMTQwOworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFID0gMTc4OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQWN0aXZpdHlQYXJ0aXRpb25JbXBsIDxlbT5BY3Rpdml0eSBQYXJ0aXRpb248L2VtPn0nIGNsYXNzLgpAQCAtMjI0NDcsNyArMjI0NDcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY3Rpdml0eVBhcnRpdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT04gPSAxNDE7CisJaW50IEFDVElWSVRZX1BBUlRJVElPTiA9IDE3OTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlBvcnRJbXBsIDxlbT5Qb3J0PC9lbT59JyBjbGFzcy4KQEAgLTIyNDU3LDcgKzIyNDU3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UG9ydCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBQT1JUID0gMTA4OworCWludCBQT1JUID0gMTA0OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXhwYW5zaW9uTm9kZUltcGwgPGVtPkV4cGFuc2lvbiBOb2RlPC9lbT59JyBjbGFzcy4KQEAgLTIyNDY3LDcgKzIyNDY3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RXhwYW5zaW9uTm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWFBBTlNJT05fTk9ERSA9IDEzNDsKKwlpbnQgRVhQQU5TSU9OX05PREUgPSAxODA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5FeHBhbnNpb25SZWdpb25JbXBsIDxlbT5FeHBhbnNpb24gUmVnaW9uPC9lbT59JyBjbGFzcy4KQEAgLTIyNDc3LDcgKzIyNDc3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RXhwYW5zaW9uUmVnaW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT04gPSAxMzU7CisJaW50IEVYUEFOU0lPTl9SRUdJT04gPSAxODE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5FeGNlcHRpb25IYW5kbGVySW1wbCA8ZW0+RXhjZXB0aW9uIEhhbmRsZXI8L2VtPn0nIGNsYXNzLgpAQCAtMjI0ODcsNyArMjI0ODcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRFeGNlcHRpb25IYW5kbGVyKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEVYQ0VQVElPTl9IQU5ETEVSID0gMTM2OworCWludCBFWENFUFRJT05fSEFORExFUiA9IDE4MjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkludGVyYWN0aW9uSW1wbCA8ZW0+SW50ZXJhY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMjI0OTcsNyArMjI0OTcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcmFjdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBJTlRFUkFDVElPTiA9IDExMDsKKwlpbnQgSU5URVJBQ1RJT04gPSAxMjQ7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5JbnRlcmFjdGlvbkZyYWdtZW50SW1wbCA8ZW0+SW50ZXJhY3Rpb24gRnJhZ21lbnQ8L2VtPn0nIGNsYXNzLgpAQCAtMjI1MDcsNyArMjI1MDcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcmFjdGlvbkZyYWdtZW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IElOVEVSQUNUSU9OX0ZSQUdNRU5UID0gMTExOworCWludCBJTlRFUkFDVElPTl9GUkFHTUVOVCA9IDEyNTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkxpZmVsaW5lSW1wbCA8ZW0+TGlmZWxpbmU8L2VtPn0nIGNsYXNzLgpAQCAtMjI1MTcsNyArMjI1MTcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRMaWZlbGluZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBMSUZFTElORSA9IDExMjsKKwlpbnQgTElGRUxJTkUgPSAxMjY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5NZXNzYWdlSW1wbCA8ZW0+TWVzc2FnZTwvZW0+fScgY2xhc3MuCkBAIC0yMjUyNyw3ICsyMjUyNyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldE1lc3NhZ2UoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVTU0FHRSA9IDExMzsKKwlpbnQgTUVTU0FHRSA9IDEyNzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkdlbmVyYWxPcmRlcmluZ0ltcGwgPGVtPkdlbmVyYWwgT3JkZXJpbmc8L2VtPn0nIGNsYXNzLgpAQCAtMjI1MzcsNyArMjI1MzcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRHZW5lcmFsT3JkZXJpbmcoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgR0VORVJBTF9PUkRFUklORyA9IDExNDsKKwlpbnQgR0VORVJBTF9PUkRFUklORyA9IDEyODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk1lc3NhZ2VFbmRJbXBsIDxlbT5NZXNzYWdlIEVuZDwvZW0+fScgY2xhc3MuCkBAIC0yMjU0Nyw3ICsyMjU0Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldE1lc3NhZ2VFbmQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVTU0FHRV9FTkQgPSAxMTU7CisJaW50IE1FU1NBR0VfRU5EID0gMTI5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXZlbnRPY2N1cnJlbmNlSW1wbCA8ZW0+RXZlbnQgT2NjdXJyZW5jZTwvZW0+fScgY2xhc3MuCkBAIC0yMjU1Nyw3ICsyMjU1Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEV2ZW50T2NjdXJyZW5jZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFVkVOVF9PQ0NVUlJFTkNFID0gMTE2OworCWludCBFVkVOVF9PQ0NVUlJFTkNFID0gMTMwOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXhlY3V0aW9uT2NjdXJyZW5jZUltcGwgPGVtPkV4ZWN1dGlvbiBPY2N1cnJlbmNlPC9lbT59JyBjbGFzcy4KQEAgLTIyNTY3LDcgKzIyNTY3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RXhlY3V0aW9uT2NjdXJyZW5jZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWEVDVVRJT05fT0NDVVJSRU5DRSA9IDExNzsKKwlpbnQgRVhFQ1VUSU9OX09DQ1VSUkVOQ0UgPSAxMzE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5TdGF0ZUludmFyaWFudEltcGwgPGVtPlN0YXRlIEludmFyaWFudDwvZW0+fScgY2xhc3MuCkBAIC0yMjU3Nyw3ICsyMjU3Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFN0YXRlSW52YXJpYW50KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFNUQVRFX0lOVkFSSUFOVCA9IDExODsKKwlpbnQgU1RBVEVfSU5WQVJJQU5UID0gMTMyOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuU3RvcEltcGwgPGVtPlN0b3A8L2VtPn0nIGNsYXNzLgpAQCAtMjI1ODcsNyArMjI1ODcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRTdG9wKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFNUT1AgPSAxMTk7CisJaW50IFNUT1AgPSAxMzM7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5Db2xsYWJvcmF0aW9uT2NjdXJyZW5jZUltcGwgPGVtPkNvbGxhYm9yYXRpb24gT2NjdXJyZW5jZTwvZW0+fScgY2xhc3MuCkBAIC0yMjU5Nyw3ICsyMjU5Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldENvbGxhYm9yYXRpb25PY2N1cnJlbmNlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRSA9IDEwNzsKKwlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFID0gMTAyOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ3JlYXRlT2JqZWN0QWN0aW9uSW1wbCA8ZW0+Q3JlYXRlIE9iamVjdCBBY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMjI5MzcsNyArMjI5MzcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRTdGF0ZU1hY2hpbmUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORSA9IDE3NTsKKwlpbnQgU1RBVEVfTUFDSElORSA9IDEzNDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlJlZ2lvbkltcGwgPGVtPlJlZ2lvbjwvZW0+fScgY2xhc3MuCkBAIC0yMjk0Nyw3ICsyMjk0Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFJlZ2lvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBSRUdJT04gPSAxNzY7CisJaW50IFJFR0lPTiA9IDEzNTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlZlcnRleEltcGwgPGVtPlZlcnRleDwvZW0+fScgY2xhc3MuCkBAIC0yMjk1Nyw3ICsyMjk1Nyw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFZlcnRleCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBWRVJURVggPSAxNzk7CisJaW50IFZFUlRFWCA9IDEzODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlBzZXVkb3N0YXRlSW1wbCA8ZW0+UHNldWRvc3RhdGU8L2VtPn0nIGNsYXNzLgpAQCAtMjI5NjcsNyArMjI5NjcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRQc2V1ZG9zdGF0ZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBQU0VVRE9TVEFURSA9IDE3NzsKKwlpbnQgUFNFVURPU1RBVEUgPSAxMzY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5TdGF0ZUltcGwgPGVtPlN0YXRlPC9lbT59JyBjbGFzcy4KQEAgLTIyOTc3LDcgKzIyOTc3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0U3RhdGUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgU1RBVEUgPSAxNzg7CisJaW50IFNUQVRFID0gMTM3OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlSW1wbCA8ZW0+Q29ubmVjdGlvbiBQb2ludCBSZWZlcmVuY2U8L2VtPn0nIGNsYXNzLgpAQCAtMjI5ODcsNyArMjI5ODcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0UgPSAxODA7CisJaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFID0gMTM5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuVHJhbnNpdGlvbkltcGwgPGVtPlRyYW5zaXRpb248L2VtPn0nIGNsYXNzLgpAQCAtMjI5OTcsNyArMjI5OTcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRUcmFuc2l0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRSQU5TSVRJT04gPSAxODE7CisJaW50IFRSQU5TSVRJT04gPSAxNDA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5GaW5hbFN0YXRlSW1wbCA8ZW0+RmluYWwgU3RhdGU8L2VtPn0nIGNsYXNzLgpAQCAtMjMwMDcsNyArMjMwMDcsNDMyNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRGaW5hbFN0YXRlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IEZJTkFMX1NUQVRFID0gMTgyOworCWludCBGSU5BTF9TVEFURSA9IDE0MTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSSUdHRVJfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUklHR0VSX19PV05FRF9FTEVNRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSSUdHRVJfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJJR0dFUl9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUklHR0VSX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSSUdHRVJfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUklHR0VSX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVEX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUklHR0VSX19QT1JUID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VHJpZ2dlcjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUVTU0FHRV9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBUUklHR0VSX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUVTU0FHRV9UUklHR0VSX19PV05FRF9FTEVNRU5UID0gVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1FU1NBR0VfVFJJR0dFUl9fT1dORVIgPSBUUklHR0VSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBUUklHR0VSX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1FU1NBR0VfVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IFRSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUVTU0FHRV9UUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBUUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1FU1NBR0VfVFJJR0dFUl9fTkFNRSA9IFRSSUdHRVJfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNRVNTQUdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1FU1NBR0VfVFJJR0dFUl9fVklTSUJJTElUWSA9IFRSSUdHRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE1FU1NBR0VfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBUUklHR0VSX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBNRVNTQUdFX1RSSUdHRVJfX1BPUlQgPSBUUklHR0VSX19QT1JUOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5NZXNzYWdlIFRyaWdnZXI8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTUVTU0FHRV9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0FMTF9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDQUxMX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDQUxMX1RSSUdHRVJfX09XTkVSID0gTUVTU0FHRV9UUklHR0VSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDQUxMX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0FMTF9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HID0gTUVTU0FHRV9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTUVTU0FHRV9UUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fUVVBTElGSUVEX05BTUUgPSBNRVNTQUdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDQUxMX1RSSUdHRVJfX1ZJU0lCSUxJVFkgPSBNRVNTQUdFX1RSSUdHRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OID0gTUVTU0FHRV9UUklHR0VSX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9ydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0FMTF9UUklHR0VSX19QT1JUID0gTUVTU0FHRV9UUklHR0VSX19QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9wZXJhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENBTExfVFJJR0dFUl9fT1BFUkFUSU9OID0gTUVTU0FHRV9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5DYWxsIFRyaWdnZXI8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0FMTF9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDSEFOR0VfVFJJR0dFUl9fRUFOTk9UQVRJT05TID0gVFJJR0dFUl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENIQU5HRV9UUklHR0VSX19PV05FRF9FTEVNRU5UID0gVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENIQU5HRV9UUklHR0VSX19PV05FUiA9IFRSSUdHRVJfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENIQU5HRV9UUklHR0VSX19PV05FRF9DT01NRU5UID0gVFJJR0dFUl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDSEFOR0VfVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IFRSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0hBTkdFX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFRSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0hBTkdFX1RSSUdHRVJfX05BTUUgPSBUUklHR0VSX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0hBTkdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENIQU5HRV9UUklHR0VSX19WSVNJQklMSVRZID0gVFJJR0dFUl9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0hBTkdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZID0gVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0hBTkdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDSEFOR0VfVFJJR0dFUl9fUE9SVCA9IFRSSUdHRVJfX1BPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2hhbmdlIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDSEFOR0VfVFJJR0dFUl9fQ0hBTkdFX0VYUFJFU1NJT04gPSBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5DaGFuZ2UgVHJpZ2dlcjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDSEFOR0VfVFJJR0dFUl9GRUFUVVJFX0NPVU5UID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fRUFOTk9UQVRJT05TID0gQkVIQVZJT1JBTF9GRUFUVVJFX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JBTF9GRUFUVVJFX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19PV05FUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19PV05FRF9DT01NRU5UID0gQkVIQVZJT1JBTF9GRUFUVVJFX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX05BTUUgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JBTF9GRUFUVVJFX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19WSVNJQklMSVRZID0gQkVIQVZJT1JBTF9GRUFUVVJFX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gQkVIQVZJT1JBTF9GRUFUVVJFX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX05BTUVfRVhQUkVTU0lPTiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19NRU1CRVIgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX09XTkVEX1JVTEUgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX09XTkVEX1JVTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX0lNUE9SVEVEX01FTUJFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX0VMRU1FTlRfSU1QT1JUID0gQkVIQVZJT1JBTF9GRUFUVVJFX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19QQUNLQUdFX0lNUE9SVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fUEFDS0FHRV9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX0lTX0xFQUYgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyaW5nIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fRkVBVFVSSU5HX0NMQVNTSUZJRVIgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX0ZFQVRVUklOR19DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFN0YXRpYzwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fSVNfU1RBVElDID0gQkVIQVZJT1JBTF9GRUFUVVJFX19JU19TVEFUSUM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX1BBUkFNRVRFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZvcm1hbCBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFJFQ0VQVElPTl9fRk9STUFMX1BBUkFNRVRFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fRk9STUFMX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXR1cm4gUmVzdWx0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX1JFVFVSTl9SRVNVTFQgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX1JFVFVSTl9SRVNVTFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmFpc2VkIEV4Y2VwdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19SQUlTRURfRVhDRVBUSU9OID0gQkVIQVZJT1JBTF9GRUFUVVJFX19SQUlTRURfRVhDRVBUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19JU19BQlNUUkFDVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fSVNfQUJTVFJBQ1Q7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWV0aG9kPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fX01FVEhPRCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fTUVUSE9EOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbmN1cnJlbmN5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19DT05DVVJSRU5DWSA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fQ09OQ1VSUkVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U2lnbmFsPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVDRVBUSU9OX19TSUdOQUwgPSBCRUhBVklPUkFMX0ZFQVRVUkVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlJlY2VwdGlvbjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUNFUFRJT05fRkVBVFVSRV9DT1VOVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fRUFOTk9UQVRJT05TID0gQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fT1dORURfRUxFTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX09XTkVSID0gQ0xBU1NJRklFUl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19PV05FRF9DT01NRU5UID0gQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQ0xBU1NJRklFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX05BTUUgPSBDTEFTU0lGSUVSX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19RVUFMSUZJRURfTkFNRSA9IENMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX01FTUJFUiA9IENMQVNTSUZJRVJfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX09XTkVEX1JVTEUgPSBDTEFTU0lGSUVSX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fRUxFTUVOVF9JTVBPUlQgPSBDTEFTU0lGSUVSX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19QQUNLQUdFX0lNUE9SVCA9IENMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19PV05JTkdfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19QQUNLQUdFID0gQ0xBU1NJRklFUl9fUEFDS0FHRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19SRURFRklOSVRJT05fQ09OVEVYVCA9IENMQVNTSUZJRVJfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0lTX0xFQUYgPSBDTEFTU0lGSUVSX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fRkVBVFVSRSA9IENMQVNTSUZJRVJfX0ZFQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0lTX0FCU1RSQUNUID0gQ0xBU1NJRklFUl9fSVNfQUJTVFJBQ1Q7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19JTkhFUklURURfTUVNQkVSID0gQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0dFTkVSQUwgPSBDTEFTU0lGSUVSX19HRU5FUkFMOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0dFTkVSQUxJWkFUSU9OID0gQ0xBU1NJRklFUl9fR0VORVJBTElaQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fUE9XRVJUWVBFX0VYVEVOVCA9IENMQVNTSUZJRVJfX1BPV0VSVFlQRV9FWFRFTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1NVQlNUSVRVVElPTiA9IENMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1VTRV9DQVNFID0gQ0xBU1NJRklFUl9fVVNFX0NBU0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfX1JFUFJFU0VOVEFUSU9OID0gQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX19PQ0NVUlJFTkNFID0gQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9fT1dORURfQVRUUklCVVRFID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+U2lnbmFsPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9GRUFUVVJFX0NPVU5UID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfVFJJR0dFUl9fT1dORURfRUxFTUVOVCA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19PV05FUiA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkcgPSBNRVNTQUdFX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU0lHTkFMX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19RVUFMSUZJRURfTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19WSVNJQklMSVRZID0gTUVTU0FHRV9UUklHR0VSX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19OQU1FX0VYUFJFU1NJT04gPSBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTSUdOQUxfVFJJR0dFUl9fUE9SVCA9IE1FU1NBR0VfVFJJR0dFUl9fUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TaWduYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX19TSUdOQUwgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlNpZ25hbCBUcmlnZ2VyPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNJR05BTF9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX1RSSUdHRVJfX0VBTk5PVEFUSU9OUyA9IFRSSUdHRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQgPSBUUklHR0VSX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19PV05FUiA9IFRSSUdHRVJfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfVFJJR0dFUl9fT1dORURfQ09NTUVOVCA9IFRSSUdHRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HID0gVFJJR0dFUl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFRSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19OQU1FID0gVFJJR0dFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfVFJJR0dFUl9fUVVBTElGSUVEX05BTUUgPSBUUklHR0VSX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19WSVNJQklMSVRZID0gVFJJR0dFUl9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19DTElFTlRfREVQRU5ERU5DWSA9IFRSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OID0gVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfVFJJR0dFUl9fUE9SVCA9IFRSSUdHRVJfX1BPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgUmVsYXRpdmU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX1RSSUdHRVJfX0lTX1JFTEFUSVZFID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5XaGVuPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9UUklHR0VSX19XSEVOID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VGltZSBUcmlnZ2VyPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfVFJJR0dFUl9GRUFUVVJFX0NPVU5UID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFOWV9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBTllfVFJJR0dFUl9fT1dORURfRUxFTUVOVCA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFOWV9UUklHR0VSX19PV05FUiA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQU5ZX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQU5ZX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkcgPSBNRVNTQUdFX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQU5ZX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBTllfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFOWV9UUklHR0VSX19RVUFMSUZJRURfTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFOWV9UUklHR0VSX19WSVNJQklMSVRZID0gTUVTU0FHRV9UUklHR0VSX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBTllfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFOWV9UUklHR0VSX19OQU1FX0VYUFJFU1NJT04gPSBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBTllfVFJJR0dFUl9fUE9SVCA9IE1FU1NBR0VfVFJJR0dFUl9fUE9SVDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QW55IFRyaWdnZXI8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQU5ZX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCA9IE1FU1NBR0VfVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fVFlQRSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1JPTEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNvbGxhYm9yYXRpb24gT2NjdXJyZW5jZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfRkVBVFVSRV9DT1VOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19FQU5OT1RBVElPTlMgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fT1dORVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTkVEX0NPTU1FTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fTkFNRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fVklTSUJJTElUWSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fTUVNQkVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfUlVMRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX0lNUE9SVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19FTEVNRU5UX0lNUE9SVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1BBQ0tBR0VfSU1QT1JUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19URU1QTEFURV9QQVJBTUVURVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTklOR19QQVJBTUVURVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1BBQ0tBR0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1JFREVGSU5JVElPTl9DT05URVhUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fSVNfTEVBRiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19GRUFUVVJFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fSVNfQUJTVFJBQ1QgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0lTX0FCU1RSQUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX0lOSEVSSVRFRF9NRU1CRVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0lOSEVSSVRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fR0VORVJBTCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fR0VORVJBTElaQVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fQVRUUklCVVRFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19QT1dFUlRZUEVfRVhURU5UID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fU1VCU1RJVFVUSU9OID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19TVUJTVElUVVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTkVEX1VTRV9DQVNFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fVVNFX0NBU0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fUkVQUkVTRU5UQVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09DQ1VSUkVOQ0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTkVEX0JFSEFWSU9SID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9CRUhBVklPUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGFzc2lmaWVyIEJlaGF2aW9yPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fQ0xBU1NJRklFUl9CRUhBVklPUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fQ0xBU1NJRklFUl9CRUhBVklPUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBsZW1lbnRhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fSU1QTEVNRU5UQVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTkVEX1RSSUdHRVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX1RSSUdHRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgU3RhdGUgTWFjaGluZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfU1RBVEVfTUFDSElORSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfU1RBVEVfTUFDSElORTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX09XTkVEX0FUVFJJQlVURSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJ0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19QQVJUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJvbGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTExBQk9SQVRJT05fX1JPTEUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19PV05FRF9DT05ORUNUT1IgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29sbGFib3JhdGlvbiBSb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT0xMQUJPUkFUSU9OX19DT0xMQUJPUkFUSU9OX1JPTEUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNvbGxhYm9yYXRpb248L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09MTEFCT1JBVElPTl9GRUFUVVJFX0NPVU5UID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyA1OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fRUFOTk9UQVRJT05TID0gUFJPUEVSVFlfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19PV05FRF9FTEVNRU5UID0gUFJPUEVSVFlfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19PV05FUiA9IFBST1BFUlRZX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19PV05FRF9DT01NRU5UID0gUFJPUEVSVFlfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fVEVNUExBVEVfQklORElORyA9IFBST1BFUlRZX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFBST1BFUlRZX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX05BTUUgPSBQUk9QRVJUWV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1FVQUxJRklFRF9OQU1FID0gUFJPUEVSVFlfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19WSVNJQklMSVRZID0gUFJPUEVSVFlfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0NMSUVOVF9ERVBFTkRFTkNZID0gUFJPUEVSVFlfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX05BTUVfRVhQUkVTU0lPTiA9IFBST1BFUlRZX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1JFREVGSU5JVElPTl9DT05URVhUID0gUFJPUEVSVFlfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19MRUFGID0gUFJPUEVSVFlfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyaW5nIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0ZFQVRVUklOR19DTEFTU0lGSUVSID0gUFJPUEVSVFlfX0ZFQVRVUklOR19DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFN0YXRpYzwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0lTX1NUQVRJQyA9IFBST1BFUlRZX19JU19TVEFUSUM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1RZUEUgPSBQUk9QRVJUWV9fVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBPcmRlcmVkPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fSVNfT1JERVJFRCA9IFBST1BFUlRZX19JU19PUkRFUkVEOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFVuaXF1ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0lTX1VOSVFVRSA9IFBST1BFUlRZX19JU19VTklRVUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXI8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19MT1dFUiA9IFBST1BFUlRZX19MT1dFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VcHBlcjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1VQUEVSID0gUFJPUEVSVFlfX1VQUEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyIFZhbHVlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fVVBQRVJfVkFMVUUgPSBQUk9QRVJUWV9fVVBQRVJfVkFMVUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXIgVmFsdWU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19MT1dFUl9WQUxVRSA9IFBST1BFUlRZX19MT1dFUl9WQUxVRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBSZWFkIE9ubHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19SRUFEX09OTFkgPSBQUk9QRVJUWV9fSVNfUkVBRF9PTkxZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFBST1BFUlRZX19URU1QTEFURV9QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19PV05JTkdfUEFSQU1FVEVSID0gUFJPUEVSVFlfX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RW5kPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19FTkQgPSBQUk9QRVJUWV9fRU5EOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0RFUExPWU1FTlQgPSBQUk9QRVJUWV9fREVQTE9ZTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3llZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19ERVBMT1lFRF9FTEVNRU5UID0gUFJPUEVSVFlfX0RFUExPWUVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVmYXVsdDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0RFRkFVTFQgPSBQUk9QRVJUWV9fREVGQVVMVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBDb21wb3NpdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19DT01QT1NJVEUgPSBQUk9QRVJUWV9fSVNfQ09NUE9TSVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIERlcml2ZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19ERVJJVkVEID0gUFJPUEVSVFlfX0lTX0RFUklWRUQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3MgPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fQ0xBU1NfID0gUFJPUEVSVFlfX0NMQVNTXzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PcHBvc2l0ZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX09QUE9TSVRFID0gUFJPUEVSVFlfX09QUE9TSVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIERlcml2ZWQgVW5pb248L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19ERVJJVkVEX1VOSU9OID0gUFJPUEVSVFlfX0lTX0RFUklWRURfVU5JT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIEFzc29jaWF0aW9uPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX09XTklOR19BU1NPQ0lBVElPTiA9IFBST1BFUlRZX19PV05JTkdfQVNTT0NJQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIFByb3BlcnR5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19SRURFRklORURfUFJPUEVSVFkgPSBQUk9QRVJUWV9fUkVERUZJTkVEX1BST1BFUlRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnNldHRlZCBQcm9wZXJ0eTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fU1VCU0VUVEVEX1BST1BFUlRZID0gUFJPUEVSVFlfX1NVQlNFVFRFRF9QUk9QRVJUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EYXRhdHlwZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19EQVRBVFlQRSA9IFBST1BFUlRZX19EQVRBVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Bc3NvY2lhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0FTU09DSUFUSU9OID0gUFJPUEVSVFlfX0FTU09DSUFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFnZ3JlZ2F0aW9uPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUE9SVF9fQUdHUkVHQVRJT04gPSBQUk9QRVJUWV9fQUdHUkVHQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVmYXVsdCBWYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0RFRkFVTFRfVkFMVUUgPSBQUk9QRVJUWV9fREVGQVVMVF9WQUxVRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1FVQUxJRklFUiA9IFBST1BFUlRZX19RVUFMSUZJRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXNzb2NpYXRpb24gRW5kPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX0FTU09DSUFUSU9OX0VORCA9IFBST1BFUlRZX19BU1NPQ0lBVElPTl9FTkQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQmVoYXZpb3I8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19CRUhBVklPUiA9IFBST1BFUlRZX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFNlcnZpY2U8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19JU19TRVJWSUNFID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVxdWlyZWQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1JFUVVJUkVEID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIFBvcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1JFREVGSU5FRF9QT1JUID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJvdmlkZWQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfX1BST1ZJREVEID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJvdG9jb2w8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQT1JUX19QUk9UT0NPTCA9IFBST1BFUlRZX0ZFQVRVUkVfQ09VTlQgKyA1OworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Qb3J0PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBPUlRfRkVBVFVSRV9DT1VOVCA9IFBST1BFUlRZX0ZFQVRVUkVfQ09VTlQgKyA2OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0VBTk5PVEFUSU9OUyA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTkVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORyA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19OQU1FID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1ZJU0lCSUxJVFkgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19DTElFTlRfREVQRU5ERU5DWSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX05BTUVfRVhQUkVTU0lPTiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX01FTUJFUiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9SVUxFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0lNUE9SVEVEX01FTUJFUiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19URU1QTEFURV9QQVJBTUVURVIgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1BBQ0tBR0UgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19JU19MRUFGID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19GRUFUVVJFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0lTX0FCU1RSQUNUID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fR0VORVJBTCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19BVFRSSUJVVEUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19TVUJTVElUVVRJT04gPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1VTRV9DQVNFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19SRVBSRVNFTlRBVElPTiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09DQ1VSUkVOQ0UgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfQVRUUklCVVRFID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1BBUlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1BBUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1JPTEUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1JPTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfQ09OTkVDVE9SID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9DT05ORUNUT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTkVEX1BPUlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkVuY2Fwc3VsYXRlZCBDbGFzc2lmaWVyPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fRUFOTk9UQVRJT05TID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19PV05FRF9FTEVNRU5UID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19PV05FUiA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19PV05FRF9DT01NRU5UID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fVEVNUExBVEVfQklORElORyA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX05BTUUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX1FVQUxJRklFRF9OQU1FID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19WSVNJQklMSVRZID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX05BTUVfRVhQUkVTU0lPTiA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX09XTklOR19QQVJBTUVURVIgPSBDT05ORUNUQUJMRV9FTEVNRU5UX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVuZDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX0VORCA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX0VORDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX1RZUEUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIE9yZGVyZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fSVNfT1JERVJFRCA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgVW5pcXVlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX0lTX1VOSVFVRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXI8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fTE9XRVIgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVkFSSUFCTEVfX1VQUEVSID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VcHBlciBWYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19VUFBFUl9WQUxVRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXIgVmFsdWU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWQVJJQUJMRV9fTE9XRVJfVkFMVUUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNjb3BlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX19TQ09QRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDc7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlZhcmlhYmxlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZBUklBQkxFX0ZFQVRVUkVfQ09VTlQgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA4OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FQU5OT1RBVElPTlMgPSBBQ1RJT05fX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0VMRU1FTlQgPSBBQ1RJT05fX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSID0gQUNUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0NPTU1FTlQgPSBBQ1RJT05fX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19URU1QTEFURV9CSU5ESU5HID0gQUNUSU9OX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQUNUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRSA9IEFDVElPTl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUVVBTElGSUVEX05BTUUgPSBBQ1RJT05fX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZJU0lCSUxJVFkgPSBBQ1RJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBBQ1RJT05fX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRV9FWFBSRVNTSU9OID0gQUNUSU9OX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBBQ1RJT05fX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lTX0xFQUYgPSBBQ1RJT05fX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1VUR09JTkcgPSBBQ1RJT05fX09VVEdPSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HID0gQUNUSU9OX19JTkNPTUlORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9HUk9VUCA9IEFDVElPTl9fSU5fR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWSA9IEFDVElPTl9fQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQgPSBBQ1RJT05fX1JFREVGSU5FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IEFDVElPTl9fSU5fU1RSVUNUVVJFRF9OT0RFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9QQVJUSVRJT04gPSBBQ1RJT05fX0lOX1BBUlRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IEFDVElPTl9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SGFuZGxlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19IQU5ETEVSID0gQUNUSU9OX19IQU5ETEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVmZmVjdDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUZGRUNUID0gQUNUSU9OX19FRkZFQ1Q7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0cHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09VVFBVVCA9IEFDVElPTl9fT1VUUFVUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklucHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOUFVUID0gQUNUSU9OX19JTlBVVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05URVhUID0gQUNUSU9OX19DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFByZWNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19MT0NBTF9QUkVDT05ESVRJT04gPSBBQ1RJT05fX0xPQ0FMX1BSRUNPTkRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQb3N0Y29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBBQ1RJT05fX0xPQ0FMX1BPU1RDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01FTUJFUiA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1JVTEUgPSBBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lNUE9SVEVEX01FTUJFUiA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FTEVNRU5UX0lNUE9SVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19QQUNLQUdFX0lNUE9SVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fU1VQRVJfR1JPVVAgPSBBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHkgR3JvdXAgYWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYXJpYWJsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19WQVJJQUJMRSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgTm9kZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgODsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgRWRnZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfRURHRSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgOTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NdXN0IElzb2xhdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMTA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlN0cnVjdHVyZWQgQWN0aXZpdHkgTm9kZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMTE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19FQU5OT1RBVElPTlMgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fT1dORVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX09XTkVEX0NPTU1FTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVEVNUExBVEVfQklORElORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fTkFNRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX1FVQUxJRklFRF9OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0lTX0xFQUYgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX09VVEdPSU5HID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU5DT01JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19JTl9HUk9VUCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQUNUSVZJVFkgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0FDVElWSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU5fUEFSVElUSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9QQVJUSVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19IQU5ETEVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19IQU5ETEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVmZmVjdDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0VGRkVDVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUZGRUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fT1VUUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRQVVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0lOUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTlBVVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQcmVjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUFJFQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9SVUxFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU1QT1JURURfTUVNQkVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTVBPUlRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0VMRU1FTlRfSU1QT1JUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fU1VQRVJfR1JPVVAgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1NVUEVSX0dST1VQOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5IEdyb3VwIGFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0FDVElWSVRZX0dST1VQX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYXJpYWJsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVkFSSUFCTEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZBUklBQkxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19DT05UQUlORURfTk9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVkIEVkZ2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0NPTlRBSU5FRF9FREdFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfRURHRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NdXN0IElzb2xhdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19NVVNUX0lTT0xBVEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBEZXRlcm1pbmF0ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfX0lTX0RFVEVSTUlOQVRFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFzc3VyZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ESVRJT05BTF9OT0RFX19JU19BU1NVUkVEID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXVzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ0xBVVNFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlc3VsdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09ORElUSU9OQUxfTk9ERV9fUkVTVUxUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Db25kaXRpb25hbCBOb2RlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTkRJVElPTkFMX05PREVfRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENMQVVTRV9fRUFOTk9UQVRJT05TID0gRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENMQVVTRV9fT1dORURfRUxFTUVOVCA9IEVMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDTEFVU0VfX09XTkVSID0gRUxFTUVOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0xBVVNFX19PV05FRF9DT01NRU5UID0gRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZXN0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDTEFVU0VfX1RFU1QgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkJvZHk8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENMQVVTRV9fQk9EWSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJlZGVjZXNzb3IgQ2xhdXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDTEFVU0VfX1BSRURFQ0VTU09SX0NMQVVTRSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VjY2Vzc29yIENsYXVzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0xBVVNFX19TVUNDRVNTT1JfQ0xBVVNFID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWNpZGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0xBVVNFX19ERUNJREVSID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IE91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0xBVVNFX19CT0RZX09VVFBVVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNsYXVzZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDTEFVU0VfRkVBVFVSRV9DT1VOVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0VBTk5PVEFUSU9OUyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fT1dORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fT1dORVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fT1dORURfQ09NTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19RVUFMSUZJRURfTkFNRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fSVNfTEVBRiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19PVVRHT0lORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1VUR09JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fSU5DT01JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0lOX0dST1VQID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9HUk9VUDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0lOX1BBUlRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fUEFSVElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0hBTkRMRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0hBTkRMRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19FRkZFQ1QgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VGRkVDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRwdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fT1VUUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRQVVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fSU5QVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOUFVUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0NPTlRFWFQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUHJlY29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUFJFQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fTE9DQUxfUE9TVENPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUE9TVENPTkRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fTUVNQkVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19PV05FRF9SVUxFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19JTVBPUlRFRF9NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lNUE9SVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19FTEVNRU5UX0lNUE9SVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUxFTUVOVF9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19TVVBFUl9HUk9VUCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fU1VQRVJfR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHkgR3JvdXAgYWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQUNUSVZJVFlfR1JPVVBfQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmFyaWFibGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fVkFSSUFCTEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZBUklBQkxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0NPTlRBSU5FRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgRWRnZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19DT05UQUlORURfRURHRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX0VER0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TXVzdCBJc29sYXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19NVVNUX0lTT0xBVEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBUZXN0ZWQgRmlyc3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0lTX1RFU1RFRF9GSVJTVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IFBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fQk9EWV9QQVJUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNldHVwIFBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fU0VUVVBfUEFSVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWNpZGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19ERUNJREVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlc3Q8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fVEVTVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXN1bHQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fUkVTVUxUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyA1OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvb3AgVmFyaWFibGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IExPT1BfTk9ERV9fTE9PUF9WQVJJQUJMRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IE91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTE9PUF9OT0RFX19CT0RZX09VVFBVVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb29wIFZhcmlhYmxlIElucHV0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfX0xPT1BfVkFSSUFCTEVfSU5QVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCArIDg7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkxvb3AgTm9kZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBMT09QX05PREVfRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgOTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtMjM1MjAsNDIwICsyNzg0MCw2IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENPTExBQk9SQVRJT05fX0VBTk5PVEFUSU9OUyA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX09XTkVEX0VMRU1FTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19PV05FUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfQ09NTUVOVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19URU1QTEFURV9CSU5ESU5HID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19OQU1FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUVVBTElGSUVEX05BTUUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19WSVNJQklMSVRZID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19DTElFTlRfREVQRU5ERU5DWSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19NRU1CRVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19PV05FRF9SVUxFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fSU1QT1JURURfTUVNQkVSID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX0VMRU1FTlRfSU1QT1JUID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19FTEVNRU5UX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUEFDS0FHRV9JTVBPUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUEFDS0FHRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19JU19MRUFGID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX0ZFQVRVUkUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19JU19BQlNUUkFDVCA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSVNfQUJTVFJBQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fSU5IRVJJVEVEX01FTUJFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19HRU5FUkFMID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19HRU5FUkFMSVpBVElPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fR0VORVJBTElaQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19BVFRSSUJVVEUgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX1BPV0VSVFlQRV9FWFRFTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1BPV0VSVFlQRV9FWFRFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19TVUJTVElUVVRJT04gPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfVVNFX0NBU0UgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19VU0VfQ0FTRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19SRVBSRVNFTlRBVElPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT0NDVVJSRU5DRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBCZWhhdmlvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfQkVIQVZJT1IgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfX09XTkVEX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19DTEFTU0lGSUVSX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19JTVBMRU1FTlRBVElPTiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fSU1QTEVNRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVHJpZ2dlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfVFJJR0dFUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9fT1dORURfVFJJR0dFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX19PV05FRF9TVEFURV9NQUNISU5FID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX19PV05FRF9TVEFURV9NQUNISU5FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEF0dHJpYnV0ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fT1dORURfQVRUUklCVVRFID0gQkVIQVZJT1JFRF9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX1BBUlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9fUk9MRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb25uZWN0b3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX09XTkVEX0NPTk5FQ1RPUiA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db2xsYWJvcmF0aW9uIFJvbGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fX0NPTExBQk9SQVRJT05fUk9MRSA9IEJFSEFWSU9SRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+Q29sbGFib3JhdGlvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX0ZFQVRVUkVfQ09VTlQgPSBCRUhBVklPUkVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwogCWludCBPUEVSQVRJT05fVEVNUExBVEVfUEFSQU1FVEVSX19FQU5OT1RBVElPTlMgPSBURU1QTEFURV9QQVJBTUVURVJfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgpAQCAtMjUwMzIsOTUxICsyODkzOCw2IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fVFlQRSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfX1JPTEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNvbGxhYm9yYXRpb24gT2NjdXJyZW5jZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0VfRkVBVFVSRV9DT1VOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19FQU5OT1RBVElPTlMgPSBQUk9QRVJUWV9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX09XTkVEX0VMRU1FTlQgPSBQUk9QRVJUWV9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX09XTkVSID0gUFJPUEVSVFlfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX09XTkVEX0NPTU1FTlQgPSBQUk9QRVJUWV9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19URU1QTEFURV9CSU5ESU5HID0gUFJPUEVSVFlfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gUFJPUEVSVFlfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fTkFNRSA9IFBST1BFUlRZX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUVVBTElGSUVEX05BTUUgPSBQUk9QRVJUWV9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX1ZJU0lCSUxJVFkgPSBQUk9QRVJUWV9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBQUk9QRVJUWV9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fTkFNRV9FWFBSRVNTSU9OID0gUFJPUEVSVFlfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBQUk9QRVJUWV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX0xFQUYgPSBQUk9QRVJUWV9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJpbmcgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fRkVBVFVSSU5HX0NMQVNTSUZJRVIgPSBQUk9QRVJUWV9fRkVBVFVSSU5HX0NMQVNTSUZJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU3RhdGljPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fSVNfU1RBVElDID0gUFJPUEVSVFlfX0lTX1NUQVRJQzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fVFlQRSA9IFBST1BFUlRZX19UWVBFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIE9yZGVyZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19JU19PUkRFUkVEID0gUFJPUEVSVFlfX0lTX09SREVSRUQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgVW5pcXVlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fSVNfVU5JUVVFID0gUFJPUEVSVFlfX0lTX1VOSVFVRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb3dlcjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0xPV0VSID0gUFJPUEVSVFlfX0xPV0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fVVBQRVIgPSBQUk9QRVJUWV9fVVBQRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXBwZXIgVmFsdWU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19VUFBFUl9WQUxVRSA9IFBST1BFUlRZX19VUFBFUl9WQUxVRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb3dlciBWYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0xPV0VSX1ZBTFVFID0gUFJPUEVSVFlfX0xPV0VSX1ZBTFVFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFJlYWQgT25seTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX1JFQURfT05MWSA9IFBST1BFUlRZX19JU19SRUFEX09OTFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gUFJPUEVSVFlfX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX09XTklOR19QQVJBTUVURVIgPSBQUk9QRVJUWV9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbmQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0VORCA9IFBST1BFUlRZX19FTkQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95bWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fREVQTE9ZTUVOVCA9IFBST1BFUlRZX19ERVBMT1lNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveWVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0RFUExPWUVEX0VMRU1FTlQgPSBQUk9QRVJUWV9fREVQTE9ZRURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWZhdWx0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fREVGQVVMVCA9IFBST1BFUlRZX19ERUZBVUxUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIENvbXBvc2l0ZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX0NPTVBPU0lURSA9IFBST1BFUlRZX19JU19DT01QT1NJVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgRGVyaXZlZDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX0RFUklWRUQgPSBQUk9QRVJUWV9fSVNfREVSSVZFRDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGFzcyA8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19DTEFTU18gPSBQUk9QRVJUWV9fQ0xBU1NfOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9wcG9zaXRlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fT1BQT1NJVEUgPSBQUk9QRVJUWV9fT1BQT1NJVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgRGVyaXZlZCBVbmlvbjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX0RFUklWRURfVU5JT04gPSBQUk9QRVJUWV9fSVNfREVSSVZFRF9VTklPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgQXNzb2NpYXRpb248L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fT1dOSU5HX0FTU09DSUFUSU9OID0gUFJPUEVSVFlfX09XTklOR19BU1NPQ0lBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgUHJvcGVydHk8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX1JFREVGSU5FRF9QUk9QRVJUWSA9IFBST1BFUlRZX19SRURFRklORURfUFJPUEVSVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic2V0dGVkIFByb3BlcnR5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19TVUJTRVRURURfUFJPUEVSVFkgPSBQUk9QRVJUWV9fU1VCU0VUVEVEX1BST1BFUlRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRhdGF0eXBlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0RBVEFUWVBFID0gUFJPUEVSVFlfX0RBVEFUWVBFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFzc29jaWF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fQVNTT0NJQVRJT04gPSBQUk9QRVJUWV9fQVNTT0NJQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWdncmVnYXRpb248L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQT1JUX19BR0dSRUdBVElPTiA9IFBST1BFUlRZX19BR0dSRUdBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWZhdWx0IFZhbHVlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fREVGQVVMVF9WQUxVRSA9IFBST1BFUlRZX19ERUZBVUxUX1ZBTFVFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUVVBTElGSUVSID0gUFJPUEVSVFlfX1FVQUxJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Bc3NvY2lhdGlvbiBFbmQ8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fQVNTT0NJQVRJT05fRU5EID0gUFJPUEVSVFlfX0FTU09DSUFUSU9OX0VORDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBCZWhhdmlvcjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX0JFSEFWSU9SID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU2VydmljZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX0lTX1NFUlZJQ0UgPSBQUk9QRVJUWV9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXF1aXJlZDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUkVRVUlSRUQgPSBQUk9QRVJUWV9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgUG9ydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUkVERUZJTkVEX1BPUlQgPSBQUk9QRVJUWV9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qcm92aWRlZDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9fUFJPVklERUQgPSBQUk9QRVJUWV9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qcm90b2NvbDwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBPUlRfX1BST1RPQ09MID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlBvcnQ8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUE9SVF9GRUFUVVJFX0NPVU5UID0gUFJPUEVSVFlfRkVBVFVSRV9DT1VOVCArIDY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORVIgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9DT01NRU5UID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX05BTUUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUVVBTElGSUVEX05BTUUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0NMSUVOVF9ERVBFTkRFTkNZID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fTkFNRV9FWFBSRVNTSU9OID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fTUVNQkVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTkVEX1JVTEUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX1JVTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fSU1QT1JURURfTUVNQkVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19FTEVNRU5UX0lNUE9SVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19QQUNLQUdFX0lNUE9SVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUEFDS0FHRV9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVIgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUEFDS0FHRSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1JFREVGSU5JVElPTl9DT05URVhUID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0lTX0xFQUYgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0ZFQVRVUkUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fSVNfQUJTVFJBQ1QgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0lTX0FCU1RSQUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19JTkhFUklURURfTUVNQkVSID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19JTkhFUklURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19HRU5FUkFMID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fR0VORVJBTElaQVRJT04gPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX0dFTkVSQUxJWkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX0FUVFJJQlVURSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19QT1dFUlRZUEVfRVhURU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1NVQlNUSVRVVElPTiA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fU1VCU1RJVFVUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfVVNFX0NBU0UgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fVVNFX0NBU0UgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfX1JFUFJFU0VOVEFUSU9OID0gU1RSVUNUVVJFRF9DTEFTU0lGSUVSX19SRVBSRVNFTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT0NDVVJSRU5DRSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9BVFRSSUJVVEUgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJ0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUEFSVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUEFSVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fUk9MRSA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUk9MRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb25uZWN0b3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9DT05ORUNUT1IgPSBTVFJVQ1RVUkVEX0NMQVNTSUZJRVJfX09XTkVEX0NPTk5FQ1RPUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBQb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfUE9SVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RW5jYXBzdWxhdGVkIENsYXNzaWZpZXI8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCiAJaW50IElOVEVSQUNUSU9OX19FQU5OT1RBVElPTlMgPSBCRUhBVklPUl9fRUFOTk9UQVRJT05TOwogCiAJLyoqCkBAIC0yODA1MCwyOTY3ICszMTAxMSw2IEBACiAJaW50IFNUT1BfRkVBVFVSRV9DT1VOVCA9IEVWRU5UX09DQ1VSUkVOQ0VfRkVBVFVSRV9DT1VOVCArIDA7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fRUFOTk9UQVRJT05TID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19PV05FRF9FTEVNRU5UID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19PV05FUiA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19PV05FRF9DT01NRU5UID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fVEVNUExBVEVfQklORElORyA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX05BTUUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX1FVQUxJRklFRF9OQU1FID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19WSVNJQklMSVRZID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX05BTUVfRVhQUkVTU0lPTiA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX09XTklOR19QQVJBTUVURVIgPSBDT05ORUNUQUJMRV9FTEVNRU5UX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVuZDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX0VORCA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfX0VORDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX1RZUEUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIE9yZGVyZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fSVNfT1JERVJFRCA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgVW5pcXVlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX0lTX1VOSVFVRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXI8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fTE9XRVIgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkFSSUFCTEVfX1VQUEVSID0gQ09OTkVDVEFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VcHBlciBWYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19VUFBFUl9WQUxVRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG93ZXIgVmFsdWU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWQVJJQUJMRV9fTE9XRVJfVkFMVUUgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNjb3BlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX19TQ09QRSA9IENPTk5FQ1RBQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDc7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlZhcmlhYmxlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZBUklBQkxFX0ZFQVRVUkVfQ09VTlQgPSBDT05ORUNUQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA4OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FQU5OT1RBVElPTlMgPSBBQ1RJT05fX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0VMRU1FTlQgPSBBQ1RJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSID0gQUNUSU9OX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0NPTU1FTlQgPSBBQ1RJT05fX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19URU1QTEFURV9CSU5ESU5HID0gQUNUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQUNUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRSA9IEFDVElPTl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUVVBTElGSUVEX05BTUUgPSBBQ1RJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZJU0lCSUxJVFkgPSBBQ1RJT05fX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBBQ1RJT05fX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRV9FWFBSRVNTSU9OID0gQUNUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBBQ1RJT05fX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lTX0xFQUYgPSBBQ1RJT05fX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1VUR09JTkcgPSBBQ1RJT05fX09VVEdPSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HID0gQUNUSU9OX19JTkNPTUlORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9HUk9VUCA9IEFDVElPTl9fSU5fR1JPVVA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWSA9IEFDVElPTl9fQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQgPSBBQ1RJT05fX1JFREVGSU5FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IEFDVElPTl9fSU5fU1RSVUNUVVJFRF9OT0RFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9QQVJUSVRJT04gPSBBQ1RJT05fX0lOX1BBUlRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IEFDVElPTl9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SGFuZGxlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19IQU5ETEVSID0gQUNUSU9OX19IQU5ETEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVmZmVjdDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUZGRUNUID0gQUNUSU9OX19FRkZFQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0cHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09VVFBVVCA9IEFDVElPTl9fT1VUUFVUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklucHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOUFVUID0gQUNUSU9OX19JTlBVVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05URVhUID0gQUNUSU9OX19DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFByZWNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19MT0NBTF9QUkVDT05ESVRJT04gPSBBQ1RJT05fX0xPQ0FMX1BSRUNPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQb3N0Y29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBBQ1RJT05fX0xPQ0FMX1BPU1RDT05ESVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01FTUJFUiA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1JVTEUgPSBBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lNUE9SVEVEX01FTUJFUiA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FTEVNRU5UX0lNUE9SVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19QQUNLQUdFX0lNUE9SVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fU1VQRVJfR1JPVVAgPSBBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHkgR3JvdXAgYWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYXJpYWJsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19WQVJJQUJMRSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgNzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgTm9kZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgODsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgRWRnZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfRURHRSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgOTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NdXN0IElzb2xhdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURSA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMTA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlN0cnVjdHVyZWQgQWN0aXZpdHkgTm9kZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCA9IEFDVElPTl9GRUFUVVJFX0NPVU5UICsgMTE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19FQU5OT1RBVElPTlMgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fT1dORVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX09XTkVEX0NPTU1FTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVEVNUExBVEVfQklORElORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fTkFNRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX1FVQUxJRklFRF9OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0lTX0xFQUYgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX09VVEdPSU5HID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRHT0lORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU5DT01JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19JTl9HUk9VUCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fR1JPVVA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQUNUSVZJVFkgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0FDVElWSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU5fUEFSVElUSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9QQVJUSVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19IQU5ETEVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19IQU5ETEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVmZmVjdDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0VGRkVDVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUZGRUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fT1VUUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRQVVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0lOUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTlBVVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQcmVjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUFJFQ09ORElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19PV05FRF9SVUxFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fSU1QT1JURURfTUVNQkVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0VMRU1FTlRfSU1QT1JUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FTEVNRU5UX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fU1VQRVJfR1JPVVAgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1NVUEVSX0dST1VQOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5IEdyb3VwIGFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0FDVElWSVRZX0dST1VQX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYXJpYWJsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fVkFSSUFCTEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZBUklBQkxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19DT05UQUlORURfTk9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVkIEVkZ2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0NPTlRBSU5FRF9FREdFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfRURHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NdXN0IElzb2xhdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19NVVNUX0lTT0xBVEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBEZXRlcm1pbmF0ZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfX0lTX0RFVEVSTUlOQVRFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFzc3VyZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ESVRJT05BTF9OT0RFX19JU19BU1NVUkVEID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXVzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fQ0xBVVNFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlc3VsdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09ORElUSU9OQUxfTk9ERV9fUkVTVUxUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Db25kaXRpb25hbCBOb2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTkRJVElPTkFMX05PREVfRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENMQVVTRV9fRUFOTk9UQVRJT05TID0gRUxFTUVOVF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENMQVVTRV9fT1dORURfRUxFTUVOVCA9IEVMRU1FTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDTEFVU0VfX09XTkVSID0gRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0xBVVNFX19PV05FRF9DT01NRU5UID0gRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZXN0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDTEFVU0VfX1RFU1QgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkJvZHk8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENMQVVTRV9fQk9EWSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJlZGVjZXNzb3IgQ2xhdXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDTEFVU0VfX1BSRURFQ0VTU09SX0NMQVVTRSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VjY2Vzc29yIENsYXVzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0xBVVNFX19TVUNDRVNTT1JfQ0xBVVNFID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWNpZGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0xBVVNFX19ERUNJREVSID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IE91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0xBVVNFX19CT0RZX09VVFBVVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNsYXVzZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDTEFVU0VfRkVBVFVSRV9DT1VOVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0VBTk5PVEFUSU9OUyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fT1dORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fT1dORVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fT1dORURfQ09NTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19RVUFMSUZJRURfTkFNRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fSVNfTEVBRiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19PVVRHT0lORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fSU5DT01JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0lOX0dST1VQID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9HUk9VUDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0lOX1BBUlRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fUEFSVElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0hBTkRMRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0hBTkRMRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19FRkZFQ1QgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VGRkVDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRwdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fT1VUUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRQVVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fSU5QVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOUFVUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0NPTlRFWFQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUHJlY29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUFJFQ09ORElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fTE9DQUxfUE9TVENPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUE9TVENPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fTUVNQkVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19PV05FRF9SVUxFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19JTVBPUlRFRF9NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lNUE9SVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19FTEVNRU5UX0lNUE9SVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19TVVBFUl9HUk9VUCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fU1VQRVJfR1JPVVA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHkgR3JvdXAgYWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQUNUSVZJVFlfR1JPVVBfQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmFyaWFibGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fVkFSSUFCTEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZBUklBQkxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0NPTlRBSU5FRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgRWRnZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19DT05UQUlORURfRURHRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX0VER0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TXVzdCBJc29sYXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19NVVNUX0lTT0xBVEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBUZXN0ZWQgRmlyc3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0lTX1RFU1RFRF9GSVJTVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IFBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fQk9EWV9QQVJUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNldHVwIFBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fU0VUVVBfUEFSVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWNpZGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19ERUNJREVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlc3Q8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fVEVTVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXN1bHQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fUkVTVUxUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyA1OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvb3AgVmFyaWFibGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExPT1BfTk9ERV9fTE9PUF9WQVJJQUJMRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Cb2R5IE91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTE9PUF9OT0RFX19CT0RZX09VVFBVVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgNzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb29wIFZhcmlhYmxlIElucHV0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfX0xPT1BfVkFSSUFCTEVfSU5QVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCArIDg7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkxvb3AgTm9kZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMT09QX05PREVfRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgOTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSSUdHRVJfX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUklHR0VSX19PV05FRF9FTEVNRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSSUdHRVJfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJJR0dFUl9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUklHR0VSX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSSUdHRVJfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUklHR0VSX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVEX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUklHR0VSX19QT1JUID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VHJpZ2dlcjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUVTU0FHRV9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBUUklHR0VSX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUVTU0FHRV9UUklHR0VSX19PV05FRF9FTEVNRU5UID0gVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FU1NBR0VfVFJJR0dFUl9fT1dORVIgPSBUUklHR0VSX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBUUklHR0VSX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FU1NBR0VfVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IFRSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUVTU0FHRV9UUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBUUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FU1NBR0VfVFJJR0dFUl9fTkFNRSA9IFRSSUdHRVJfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRVNTQUdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FU1NBR0VfVFJJR0dFUl9fVklTSUJJTElUWSA9IFRSSUdHRVJfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FU1NBR0VfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBUUklHR0VSX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRVNTQUdFX1RSSUdHRVJfX1BPUlQgPSBUUklHR0VSX19QT1JUOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5NZXNzYWdlIFRyaWdnZXI8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUVTU0FHRV9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0FMTF9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDQUxMX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDQUxMX1RSSUdHRVJfX09XTkVSID0gTUVTU0FHRV9UUklHR0VSX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDQUxMX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0FMTF9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HID0gTUVTU0FHRV9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTUVTU0FHRV9UUklHR0VSX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fUVVBTElGSUVEX05BTUUgPSBNRVNTQUdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDQUxMX1RSSUdHRVJfX1ZJU0lCSUxJVFkgPSBNRVNTQUdFX1RSSUdHRVJfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OID0gTUVTU0FHRV9UUklHR0VSX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9ydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0FMTF9UUklHR0VSX19QT1JUID0gTUVTU0FHRV9UUklHR0VSX19QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9wZXJhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENBTExfVFJJR0dFUl9fT1BFUkFUSU9OID0gTUVTU0FHRV9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5DYWxsIFRyaWdnZXI8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0FMTF9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDSEFOR0VfVFJJR0dFUl9fRUFOTk9UQVRJT05TID0gVFJJR0dFUl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENIQU5HRV9UUklHR0VSX19PV05FRF9FTEVNRU5UID0gVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENIQU5HRV9UUklHR0VSX19PV05FUiA9IFRSSUdHRVJfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENIQU5HRV9UUklHR0VSX19PV05FRF9DT01NRU5UID0gVFJJR0dFUl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDSEFOR0VfVFJJR0dFUl9fVEVNUExBVEVfQklORElORyA9IFRSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFRSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVJfX05BTUUgPSBUUklHR0VSX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVJfX1FVQUxJRklFRF9OQU1FID0gVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENIQU5HRV9UUklHR0VSX19WSVNJQklMSVRZID0gVFJJR0dFUl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZID0gVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ0hBTkdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTiA9IFRSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDSEFOR0VfVFJJR0dFUl9fUE9SVCA9IFRSSUdHRVJfX1BPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2hhbmdlIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDSEFOR0VfVFJJR0dFUl9fQ0hBTkdFX0VYUFJFU1NJT04gPSBUUklHR0VSX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5DaGFuZ2UgVHJpZ2dlcjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDSEFOR0VfVFJJR0dFUl9GRUFUVVJFX0NPVU5UID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fRUFOTk9UQVRJT05TID0gQkVIQVZJT1JBTF9GRUFUVVJFX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JBTF9GRUFUVVJFX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19PV05FUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19PV05FRF9DT01NRU5UID0gQkVIQVZJT1JBTF9GRUFUVVJFX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX05BTUUgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JBTF9GRUFUVVJFX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19WSVNJQklMSVRZID0gQkVIQVZJT1JBTF9GRUFUVVJFX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gQkVIQVZJT1JBTF9GRUFUVVJFX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX05BTUVfRVhQUkVTU0lPTiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19NRU1CRVIgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX09XTkVEX1JVTEUgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX09XTkVEX1JVTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX0lNUE9SVEVEX01FTUJFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fSU1QT1JURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX0VMRU1FTlRfSU1QT1JUID0gQkVIQVZJT1JBTF9GRUFUVVJFX19FTEVNRU5UX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19QQUNLQUdFX0lNUE9SVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fUEFDS0FHRV9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX0lTX0xFQUYgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyaW5nIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fRkVBVFVSSU5HX0NMQVNTSUZJRVIgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX0ZFQVRVUklOR19DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFN0YXRpYzwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fSVNfU1RBVElDID0gQkVIQVZJT1JBTF9GRUFUVVJFX19JU19TVEFUSUM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX1BBUkFNRVRFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZvcm1hbCBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFQ0VQVElPTl9fRk9STUFMX1BBUkFNRVRFUiA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fRk9STUFMX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXR1cm4gUmVzdWx0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX1JFVFVSTl9SRVNVTFQgPSBCRUhBVklPUkFMX0ZFQVRVUkVfX1JFVFVSTl9SRVNVTFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmFpc2VkIEV4Y2VwdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19SQUlTRURfRVhDRVBUSU9OID0gQkVIQVZJT1JBTF9GRUFUVVJFX19SQUlTRURfRVhDRVBUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19JU19BQlNUUkFDVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fSVNfQUJTVFJBQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWV0aG9kPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fX01FVEhPRCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fTUVUSE9EOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbmN1cnJlbmN5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19DT05DVVJSRU5DWSA9IEJFSEFWSU9SQUxfRkVBVFVSRV9fQ09OQ1VSUkVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U2lnbmFsPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVDRVBUSU9OX19TSUdOQUwgPSBCRUhBVklPUkFMX0ZFQVRVUkVfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlJlY2VwdGlvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUNFUFRJT05fRkVBVFVSRV9DT1VOVCA9IEJFSEFWSU9SQUxfRkVBVFVSRV9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fRUFOTk9UQVRJT05TID0gQ0xBU1NJRklFUl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fT1dORURfRUxFTUVOVCA9IENMQVNTSUZJRVJfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX09XTkVSID0gQ0xBU1NJRklFUl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19PV05FRF9DT01NRU5UID0gQ0xBU1NJRklFUl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU0lGSUVSX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQ0xBU1NJRklFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX05BTUUgPSBDTEFTU0lGSUVSX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19RVUFMSUZJRURfTkFNRSA9IENMQVNTSUZJRVJfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1ZJU0lCSUxJVFkgPSBDTEFTU0lGSUVSX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ0xBU1NJRklFUl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU0lGSUVSX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX01FTUJFUiA9IENMQVNTSUZJRVJfX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX09XTkVEX1JVTEUgPSBDTEFTU0lGSUVSX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU0lGSUVSX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fRUxFTUVOVF9JTVBPUlQgPSBDTEFTU0lGSUVSX19FTEVNRU5UX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19QQUNLQUdFX0lNUE9SVCA9IENMQVNTSUZJRVJfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19PV05JTkdfUEFSQU1FVEVSID0gQ0xBU1NJRklFUl9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IENMQVNTSUZJRVJfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19QQUNLQUdFID0gQ0xBU1NJRklFUl9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19SRURFRklOSVRJT05fQ09OVEVYVCA9IENMQVNTSUZJRVJfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0lTX0xFQUYgPSBDTEFTU0lGSUVSX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fRkVBVFVSRSA9IENMQVNTSUZJRVJfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0lTX0FCU1RSQUNUID0gQ0xBU1NJRklFUl9fSVNfQUJTVFJBQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19JTkhFUklURURfTUVNQkVSID0gQ0xBU1NJRklFUl9fSU5IRVJJVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0dFTkVSQUwgPSBDTEFTU0lGSUVSX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0dFTkVSQUxJWkFUSU9OID0gQ0xBU1NJRklFUl9fR0VORVJBTElaQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX0FUVFJJQlVURSA9IENMQVNTSUZJRVJfX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTSUZJRVJfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fUE9XRVJUWVBFX0VYVEVOVCA9IENMQVNTSUZJRVJfX1BPV0VSVFlQRV9FWFRFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1NVQlNUSVRVVElPTiA9IENMQVNTSUZJRVJfX1NVQlNUSVRVVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTSUZJRVJfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1VTRV9DQVNFID0gQ0xBU1NJRklFUl9fVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfX1JFUFJFU0VOVEFUSU9OID0gQ0xBU1NJRklFUl9fUkVQUkVTRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX19PQ0NVUlJFTkNFID0gQ0xBU1NJRklFUl9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9fT1dORURfQVRUUklCVVRFID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+U2lnbmFsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9GRUFUVVJFX0NPVU5UID0gQ0xBU1NJRklFUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfVFJJR0dFUl9fT1dORURfRUxFTUVOVCA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19PV05FUiA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkcgPSBNRVNTQUdFX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0lHTkFMX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19RVUFMSUZJRURfTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19WSVNJQklMSVRZID0gTUVTU0FHRV9UUklHR0VSX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19OQU1FX0VYUFJFU1NJT04gPSBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTSUdOQUxfVFJJR0dFUl9fUE9SVCA9IE1FU1NBR0VfVFJJR0dFUl9fUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TaWduYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX19TSUdOQUwgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlNpZ25hbCBUcmlnZ2VyPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNJR05BTF9UUklHR0VSX0ZFQVRVUkVfQ09VTlQgPSBNRVNTQUdFX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX1RSSUdHRVJfX0VBTk5PVEFUSU9OUyA9IFRSSUdHRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX1RSSUdHRVJfX09XTkVEX0VMRU1FTlQgPSBUUklHR0VSX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19PV05FUiA9IFRSSUdHRVJfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfVFJJR0dFUl9fT1dORURfQ09NTUVOVCA9IFRSSUdHRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19URU1QTEFURV9CSU5ESU5HID0gVFJJR0dFUl9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFRSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19OQU1FID0gVFJJR0dFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfVFJJR0dFUl9fUVVBTElGSUVEX05BTUUgPSBUUklHR0VSX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19WSVNJQklMSVRZID0gVFJJR0dFUl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19DTElFTlRfREVQRU5ERU5DWSA9IFRSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OID0gVFJJR0dFUl9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfVFJJR0dFUl9fUE9SVCA9IFRSSUdHRVJfX1BPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgUmVsYXRpdmU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX1RSSUdHRVJfX0lTX1JFTEFUSVZFID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5XaGVuPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9UUklHR0VSX19XSEVOID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VGltZSBUcmlnZ2VyPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfVFJJR0dFUl9GRUFUVVJFX0NPVU5UID0gVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFOWV9UUklHR0VSX19FQU5OT1RBVElPTlMgPSBNRVNTQUdFX1RSSUdHRVJfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBTllfVFJJR0dFUl9fT1dORURfRUxFTUVOVCA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFOWV9UUklHR0VSX19PV05FUiA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQU5ZX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQgPSBNRVNTQUdFX1RSSUdHRVJfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQU5ZX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkcgPSBNRVNTQUdFX1RSSUdHRVJfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQU5ZX1RSSUdHRVJfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE1FU1NBR0VfVFJJR0dFUl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBTllfVFJJR0dFUl9fTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFOWV9UUklHR0VSX19RVUFMSUZJRURfTkFNRSA9IE1FU1NBR0VfVFJJR0dFUl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFOWV9UUklHR0VSX19WSVNJQklMSVRZID0gTUVTU0FHRV9UUklHR0VSX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBTllfVFJJR0dFUl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBNRVNTQUdFX1RSSUdHRVJfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEFOWV9UUklHR0VSX19OQU1FX0VYUFJFU1NJT04gPSBNRVNTQUdFX1RSSUdHRVJfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3J0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBBTllfVFJJR0dFUl9fUE9SVCA9IE1FU1NBR0VfVFJJR0dFUl9fUE9SVDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QW55IFRyaWdnZXI8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQU5ZX1RSSUdHRVJfRkVBVFVSRV9DT1VOVCA9IE1FU1NBR0VfVFJJR0dFUl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlJlYWRFeHRlbnRBY3Rpb25JbXBsIDxlbT5SZWFkIEV4dGVudCBBY3Rpb248L2VtPn0nIGNsYXNzLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CkBAIC0zMTAxOCw3ICszMTAxOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFJlYWRFeHRlbnRBY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkVBRF9FWFRFTlRfQUNUSU9OID0gMjE0OworCWludCBSRUFEX0VYVEVOVF9BQ1RJT04gPSAxOTE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5SZWNsYXNzaWZ5T2JqZWN0QWN0aW9uSW1wbCA8ZW0+UmVjbGFzc2lmeSBPYmplY3QgQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMDI4LDcgKzMxMDI4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UmVjbGFzc2lmeU9iamVjdEFjdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBSRUNMQVNTSUZZX09CSkVDVF9BQ1RJT04gPSAyMTU7CisJaW50IFJFQ0xBU1NJRllfT0JKRUNUX0FDVElPTiA9IDE5MjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlJlYWRJc0NsYXNzaWZpZWRPYmplY3RBY3Rpb25JbXBsIDxlbT5SZWFkIElzIENsYXNzaWZpZWQgT2JqZWN0IEFjdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0zMTAzOCw3ICszMTAzOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFJlYWRJc0NsYXNzaWZpZWRPYmplY3RBY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkVBRF9JU19DTEFTU0lGSUVEX09CSkVDVF9BQ1RJT04gPSAyMTY7CisJaW50IFJFQURfSVNfQ0xBU1NJRklFRF9PQkpFQ1RfQUNUSU9OID0gMTkzOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuU3RhcnRPd25lZEJlaGF2aW9yQWN0aW9uSW1wbCA8ZW0+U3RhcnQgT3duZWQgQmVoYXZpb3IgQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMDQ4LDcgKzMxMDQ4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0U3RhcnRPd25lZEJlaGF2aW9yQWN0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFNUQVJUX09XTkVEX0JFSEFWSU9SX0FDVElPTiA9IDIxNzsKKwlpbnQgU1RBUlRfT1dORURfQkVIQVZJT1JfQUNUSU9OID0gMTk0OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuUXVhbGlmaWVyVmFsdWVJbXBsIDxlbT5RdWFsaWZpZXIgVmFsdWU8L2VtPn0nIGNsYXNzLgpAQCAtMzEwNTgsNyArMzEwNTgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRRdWFsaWZpZXJWYWx1ZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBRVUFMSUZJRVJfVkFMVUUgPSAyMTg7CisJaW50IFFVQUxJRklFUl9WQUxVRSA9IDE5NTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlJlYWRMaW5rT2JqZWN0RW5kQWN0aW9uSW1wbCA8ZW0+UmVhZCBMaW5rIE9iamVjdCBFbmQgQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMDY4LDcgKzMxMDY4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UmVhZExpbmtPYmplY3RFbmRBY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkVBRF9MSU5LX09CSkVDVF9FTkRfQUNUSU9OID0gMjE5OworCWludCBSRUFEX0xJTktfT0JKRUNUX0VORF9BQ1RJT04gPSAxOTY7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5SZWFkTGlua09iamVjdEVuZFF1YWxpZmllckFjdGlvbkltcGwgPGVtPlJlYWQgTGluayBPYmplY3QgRW5kIFF1YWxpZmllciBBY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMzEwNzgsNyArMzEwNzgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRSZWFkTGlua09iamVjdEVuZFF1YWxpZmllckFjdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBSRUFEX0xJTktfT0JKRUNUX0VORF9RVUFMSUZJRVJfQUNUSU9OID0gMjIwOworCWludCBSRUFEX0xJTktfT0JKRUNUX0VORF9RVUFMSUZJRVJfQUNUSU9OID0gMTk3OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQ3JlYXRlTGlua09iamVjdEFjdGlvbkltcGwgPGVtPkNyZWF0ZSBMaW5rIE9iamVjdCBBY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMzEwODgsNyArMzEwODgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRDcmVhdGVMaW5rT2JqZWN0QWN0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IENSRUFURV9MSU5LX09CSkVDVF9BQ1RJT04gPSAyMjE7CisJaW50IENSRUFURV9MSU5LX09CSkVDVF9BQ1RJT04gPSAxOTg7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5BY2NlcHRFdmVudEFjdGlvbkltcGwgPGVtPkFjY2VwdCBFdmVudCBBY3Rpb248L2VtPn0nIGNsYXNzLgpAQCAtMzEwOTgsNyArMzEwOTgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRBY2NlcHRFdmVudEFjdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBBQ0NFUFRfRVZFTlRfQUNUSU9OID0gMjIyOworCWludCBBQ0NFUFRfRVZFTlRfQUNUSU9OID0gMTk5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuQWNjZXB0Q2FsbEFjdGlvbkltcGwgPGVtPkFjY2VwdCBDYWxsIEFjdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0zMTEwOCw3ICszMTEwOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldEFjY2VwdENhbGxBY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQUNDRVBUX0NBTExfQUNUSU9OID0gMjIzOworCWludCBBQ0NFUFRfQ0FMTF9BQ1RJT04gPSAyMDA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5SZXBseUFjdGlvbkltcGwgPGVtPlJlcGx5IEFjdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0zMTExOCw3ICszMTExOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFJlcGx5QWN0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFJFUExZX0FDVElPTiA9IDIyNDsKKwlpbnQgUkVQTFlfQUNUSU9OID0gMjAxOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuUmFpc2VFeGNlcHRpb25BY3Rpb25JbXBsIDxlbT5SYWlzZSBFeGNlcHRpb24gQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMTI4LDcgKzMxMTI4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UmFpc2VFeGNlcHRpb25BY3Rpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUkFJU0VfRVhDRVBUSU9OX0FDVElPTiA9IDIyNTsKKwlpbnQgUkFJU0VfRVhDRVBUSU9OX0FDVElPTiA9IDIwMjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkRhdGFTdG9yZU5vZGVJbXBsIDxlbT5EYXRhIFN0b3JlIE5vZGU8L2VtPn0nIGNsYXNzLgpAQCAtMzExMzgsNyArMzExMzgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXREYXRhU3RvcmVOb2RlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IERBVEFfU1RPUkVfTk9ERSA9IDIwNDsKKwlpbnQgREFUQV9TVE9SRV9OT0RFID0gMjAzOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uSW1wbCA8ZW0+SW50ZXJydXB0aWJsZSBBY3Rpdml0eSBSZWdpb248L2VtPn0nIGNsYXNzLgpAQCAtMzExNDgsNyArMzExNDgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT04gPSAyMDU7CisJaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OID0gMjA0OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuUGFyYW1ldGVyU2V0SW1wbCA8ZW0+UGFyYW1ldGVyIFNldDwvZW0+fScgY2xhc3MuCkBAIC0zMTE1OCw3ICszMTE1OCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFBhcmFtZXRlclNldCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBQQVJBTUVURVJfU0VUID0gMjA2OworCWludCBQQVJBTUVURVJfU0VUID0gMjA1OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuSW50ZXJhY3Rpb25PY2N1cnJlbmNlSW1wbCA8ZW0+SW50ZXJhY3Rpb24gT2NjdXJyZW5jZTwvZW0+fScgY2xhc3MuCkBAIC0zMTIzOCw3ICszMTIzOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFRpbWVFeHByZXNzaW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRJTUVfRVhQUkVTU0lPTiA9IDE5NDsKKwlpbnQgVElNRV9FWFBSRVNTSU9OID0gMjA2OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRHVyYXRpb25JbXBsIDxlbT5EdXJhdGlvbjwvZW0+fScgY2xhc3MuCkBAIC0zMTI0OCw3ICszMTI0OCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldER1cmF0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IERVUkFUSU9OID0gMTk1OworCWludCBEVVJBVElPTiA9IDIwNzsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRpbWVPYnNlcnZhdGlvbkFjdGlvbkltcGwgPGVtPlRpbWUgT2JzZXJ2YXRpb24gQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMjU4LDcgKzMxMjU4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGltZU9ic2VydmF0aW9uQWN0aW9uKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OID0gMTk2OworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTiA9IDIwODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkludGVydmFsSW1wbCA8ZW0+SW50ZXJ2YWw8L2VtPn0nIGNsYXNzLgpAQCAtMzEyNjgsNyArMzEyNjgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcnZhbCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBJTlRFUlZBTCA9IDE5ODsKKwlpbnQgSU5URVJWQUwgPSAyMTA7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5EdXJhdGlvbkludGVydmFsSW1wbCA8ZW0+RHVyYXRpb24gSW50ZXJ2YWw8L2VtPn0nIGNsYXNzLgpAQCAtMzEyNzgsNyArMzEyNzgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXREdXJhdGlvbkludGVydmFsKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMID0gMTk3OworCWludCBEVVJBVElPTl9JTlRFUlZBTCA9IDIwOTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkludGVydmFsQ29uc3RyYWludEltcGwgPGVtPkludGVydmFsIENvbnN0cmFpbnQ8L2VtPn0nIGNsYXNzLgpAQCAtMzEyODgsNyArMzEyODgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRJbnRlcnZhbENvbnN0cmFpbnQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVCA9IDIwMDsKKwlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVCA9IDIxMjsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlRpbWVDb25zdHJhaW50SW1wbCA8ZW0+VGltZSBDb25zdHJhaW50PC9lbT59JyBjbGFzcy4KQEAgLTMxMjk4LDcgKzMxMjk4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGltZUNvbnN0cmFpbnQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVElNRV9DT05TVFJBSU5UID0gMTk5OworCWludCBUSU1FX0NPTlNUUkFJTlQgPSAyMTE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5UaW1lSW50ZXJ2YWxJbXBsIDxlbT5UaW1lIEludGVydmFsPC9lbT59JyBjbGFzcy4KQEAgLTMxMzA4LDcgKzMxMzA4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VGltZUludGVydmFsKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IFRJTUVfSU5URVJWQUwgPSAyMDE7CisJaW50IFRJTUVfSU5URVJWQUwgPSAyMTM7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5EdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uSW1wbCA8ZW0+RHVyYXRpb24gT2JzZXJ2YXRpb24gQWN0aW9uPC9lbT59JyBjbGFzcy4KQEAgLTMxMzE4LDcgKzMxMzE4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbigpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT04gPSAyMDI7CisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTiA9IDIxNDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkR1cmF0aW9uQ29uc3RyYWludEltcGwgPGVtPkR1cmF0aW9uIENvbnN0cmFpbnQ8L2VtPn0nIGNsYXNzLgpAQCAtMzEzMjgsNyArMzEzMjgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXREdXJhdGlvbkNvbnN0cmFpbnQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVCA9IDIwMzsKKwlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVCA9IDIxNTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlByb3RvY29sQ29uZm9ybWFuY2VJbXBsIDxlbT5Qcm90b2NvbCBDb25mb3JtYW5jZTwvZW0+fScgY2xhc3MuCkBAIC0zMTMzOCw3ICszMTMzOCw3IEBACiAJICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLmltcGwuVU1MMlBhY2thZ2VJbXBsI2dldFByb3RvY29sQ29uZm9ybWFuY2UoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUFJPVE9DT0xfQ09ORk9STUFOQ0UgPSAxOTE7CisJaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFID0gMjIzOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuUHJvdG9jb2xTdGF0ZU1hY2hpbmVJbXBsIDxlbT5Qcm90b2NvbCBTdGF0ZSBNYWNoaW5lPC9lbT59JyBjbGFzcy4KQEAgLTMxMzQ4LDcgKzMxMzQ4LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmUoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORSA9IDE5MjsKKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORSA9IDIyNDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlByb3RvY29sVHJhbnNpdGlvbkltcGwgPGVtPlByb3RvY29sIFRyYW5zaXRpb248L2VtPn0nIGNsYXNzLgpAQCAtMzEzNTgsNyArMzEzNTgsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRQcm90b2NvbFRyYW5zaXRpb24oKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTiA9IDE5MzsKKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTiA9IDIyNTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtMzEzNjcsNyArMzEzNjcsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fRUFOTk9UQVRJT05TID0gT0JKRUNUX05PREVfX0VBTk5PVEFUSU9OUzsKKwlpbnQgU1RBVEVfTUFDSElORV9fRUFOTk9UQVRJT05TID0gQkVIQVZJT1JfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMxMzc2LDcgKzMxMzc2LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX09XTkVEX0VMRU1FTlQgPSBPQkpFQ1RfTk9ERV9fT1dORURfRUxFTUVOVDsKKwlpbnQgU1RBVEVfTUFDSElORV9fT1dORURfRUxFTUVOVCA9IEJFSEFWSU9SX19PV05FRF9FTEVNRU5UOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCkBAIC0zMTM4NSw3ICszMTM4NSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19PV05FUiA9IE9CSkVDVF9OT0RFX19PV05FUjsKKwlpbnQgU1RBVEVfTUFDSElORV9fT1dORVIgPSBCRUhBVklPUl9fT1dORVI7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMTM5NCw3ICszMTM5NCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19PV05FRF9DT01NRU5UID0gT0JKRUNUX05PREVfX09XTkVEX0NPTU1FTlQ7CisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX0NPTU1FTlQgPSBCRUhBVklPUl9fT1dORURfQ09NTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMxNDAzLDcgKzMxNDAzLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBPQkpFQ1RfTk9ERV9fVEVNUExBVEVfQklORElORzsKKwlpbnQgU1RBVEVfTUFDSElORV9fVEVNUExBVEVfQklORElORyA9IEJFSEFWSU9SX19URU1QTEFURV9CSU5ESU5HOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgpAQCAtMzE0MTIsNyArMzE0MTIsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gT0JKRUNUX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKwlpbnQgU1RBVEVfTUFDSElORV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQkVIQVZJT1JfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMTQyMSw3ICszMTQyMSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19OQU1FID0gT0JKRUNUX05PREVfX05BTUU7CisJaW50IFNUQVRFX01BQ0hJTkVfX05BTUUgPSBCRUhBVklPUl9fTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgpAQCAtMzE0MzAsNyArMzE0MzAsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fUVVBTElGSUVEX05BTUUgPSBPQkpFQ1RfTk9ERV9fUVVBTElGSUVEX05BTUU7CisJaW50IFNUQVRFX01BQ0hJTkVfX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JfX1FVQUxJRklFRF9OQU1FOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMxNDM5LDcgKzMxNDM5LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX1ZJU0lCSUxJVFkgPSBPQkpFQ1RfTk9ERV9fVklTSUJJTElUWTsKKwlpbnQgU1RBVEVfTUFDSElORV9fVklTSUJJTElUWSA9IEJFSEFWSU9SX19WSVNJQklMSVRZOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMxNDQ4LDcgKzMxNDQ4LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZID0gT0JKRUNUX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCWludCBTVEFURV9NQUNISU5FX19DTElFTlRfREVQRU5ERU5DWSA9IEJFSEFWSU9SX19DTElFTlRfREVQRU5ERU5DWTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTMxNDU3LDQyMSArMzE0NTcsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fTkFNRV9FWFBSRVNTSU9OID0gT0JKRUNUX05PREVfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gT0JKRUNUX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fSVNfTEVBRiA9IE9CSkVDVF9OT0RFX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fT1VUR09JTkcgPSBPQkpFQ1RfTk9ERV9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19JTkNPTUlORyA9IE9CSkVDVF9OT0RFX19JTkNPTUlORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX0lOX0dST1VQID0gT0JKRUNUX05PREVfX0lOX0dST1VQOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19BQ1RJVklUWSA9IE9CSkVDVF9OT0RFX19BQ1RJVklUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gT0JKRUNUX05PREVfX1JFREVGSU5FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gT0JKRUNUX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19JTl9QQVJUSVRJT04gPSBPQkpFQ1RfTk9ERV9fSU5fUEFSVElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBPQkpFQ1RfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19UWVBFID0gT0JKRUNUX05PREVfX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3JkZXJpbmc8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fT1JERVJJTkcgPSBPQkpFQ1RfTk9ERV9fT1JERVJJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXBwZXIgQm91bmQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fVVBQRVJfQk9VTkQgPSBPQkpFQ1RfTk9ERV9fVVBQRVJfQk9VTkQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX19JTl9TVEFURSA9IE9CSkVDVF9OT0RFX19JTl9TVEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TZWxlY3Rpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fU0VMRUNUSU9OID0gT0JKRUNUX05PREVfX1NFTEVDVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWdpb24gQXMgT3V0cHV0PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX05PREVfX1JFR0lPTl9BU19PVVRQVVQgPSBPQkpFQ1RfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWdpb24gQXMgSW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fTk9ERV9fUkVHSU9OX0FTX0lOUFVUID0gT0JKRUNUX05PREVfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkV4cGFuc2lvbiBOb2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9OT0RFX0ZFQVRVUkVfQ09VTlQgPSBPQkpFQ1RfTk9ERV9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0VBTk5PVEFUSU9OUyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX09XTkVEX0VMRU1FTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19PV05FUiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1dORURfQ09NTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19URU1QTEFURV9CSU5ESU5HID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fUVVBTElGSUVEX05BTUUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19WSVNJQklMSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19DTElFTlRfREVQRU5ERU5DWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTkFNRV9FWFBSRVNTSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX1JFREVGSU5JVElPTl9DT05URVhUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSVNfTEVBRiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1VUR09JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09VVEdPSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19JTkNPTUlORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5DT01JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0lOX0dST1VQID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9HUk9VUDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19BQ1RJVklUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX1JFREVGSU5FRF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19SRURFRklORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSU5fU1RSVUNUVVJFRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19JTl9QQVJUSVRJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOX1BBUlRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkhhbmRsZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0hBTkRMRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0hBTkRMRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fRUZGRUNUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19FRkZFQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0cHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19PVVRQVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09VVFBVVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSU5QVVQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOUFVUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19DT05URVhUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFByZWNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTE9DQUxfUFJFQ09ORElUSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19MT0NBTF9QUkVDT05ESVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUG9zdGNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTE9DQUxfUE9TVENPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUE9TVENPTkRJVElPTjsKKwlpbnQgU1RBVEVfTUFDSElORV9fTkFNRV9FWFBSRVNTSU9OID0gQkVIQVZJT1JfX05BTUVfRVhQUkVTU0lPTjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzE4ODAsNyArMzE0NjYsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01FTUJFUjsKKwlpbnQgU1RBVEVfTUFDSElORV9fTUVNQkVSID0gQkVIQVZJT1JfX01FTUJFUjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMxODg5LDcgKzMxNDc1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1dORURfUlVMRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfUlVMRTsKKwlpbnQgU1RBVEVfTUFDSElORV9fT1dORURfUlVMRSA9IEJFSEFWSU9SX19PV05FRF9SVUxFOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMTg5OCw3ICszMTQ4NCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0lNUE9SVEVEX01FTUJFUiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU1QT1JURURfTUVNQkVSOworCWludCBTVEFURV9NQUNISU5FX19JTVBPUlRFRF9NRU1CRVIgPSBCRUhBVklPUl9fSU1QT1JURURfTUVNQkVSOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMxOTA3LDcgKzMxNDkzLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fRUxFTUVOVF9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VMRU1FTlRfSU1QT1JUOworCWludCBTVEFURV9NQUNISU5FX19FTEVNRU5UX0lNUE9SVCA9IEJFSEFWSU9SX19FTEVNRU5UX0lNUE9SVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMTkxNiwyNzcgKzMxNTAyLDQzIEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX1BBQ0tBR0VfSU1QT1JUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19QQUNLQUdFX0lNUE9SVDsKKwlpbnQgU1RBVEVfTUFDSElORV9fUEFDS0FHRV9JTVBPUlQgPSBCRUhBVklPUl9fUEFDS0FHRV9JTVBPUlQ7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fU1VQRVJfR1JPVVAgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1NVUEVSX0dST1VQOworCWludCBTVEFURV9NQUNISU5FX19URU1QTEFURV9QQVJBTUVURVIgPSBCRUhBVklPUl9fVEVNUExBVEVfUEFSQU1FVEVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5IEdyb3VwIGFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0FDVElWSVRZX0dST1VQX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWTsKKwlpbnQgU1RBVEVfTUFDSElORV9fT1dOSU5HX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19PV05JTkdfUEFSQU1FVEVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZhcmlhYmxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fVkFSSUFCTEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1ZBUklBQkxFOworCWludCBTVEFURV9NQUNISU5FX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBCRUhBVklPUl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX0NPTlRBSU5FRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZWQgRWRnZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fQ09OVEFJTkVEX0VER0UgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NPTlRBSU5FRF9FREdFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk11c3QgSXNvbGF0ZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fX01VU1RfSVNPTEFURSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTVVTVF9JU09MQVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1vZGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19NT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dHB1dCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19PVVRQVVRfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWFBBTlNJT05fUkVHSU9OX19JTlBVVF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeHBhbnNpb24gUmVnaW9uPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYUEFOU0lPTl9SRUdJT05fRkVBVFVSRV9DT1VOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYQ0VQVElPTl9IQU5ETEVSX19FQU5OT1RBVElPTlMgPSBFTEVNRU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX09XTkVEX0VMRU1FTlQgPSBFTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX09XTkVSID0gRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX09XTkVEX0NPTU1FTlQgPSBFTEVNRU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlByb3RlY3RlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYQ0VQVElPTl9IQU5ETEVSX19QUk9URUNURURfTk9ERSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SGFuZGxlciBCb2R5PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX0hBTkRMRVJfQk9EWSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhjZXB0aW9uIElucHV0PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX0VYQ0VQVElPTl9JTlBVVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhjZXB0aW9uIFR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYQ0VQVElPTl9IQU5ETEVSX19FWENFUFRJT05fVFlQRSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDM7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkV4Y2VwdGlvbiBIYW5kbGVyPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYQ0VQVElPTl9IQU5ETEVSX0ZFQVRVUkVfQ09VTlQgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA0OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRk9SS19OT0RFX19FQU5OT1RBVElPTlMgPSBDT05UUk9MX05PREVfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGT1JLX05PREVfX09XTkVEX0VMRU1FTlQgPSBDT05UUk9MX05PREVfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGT1JLX05PREVfX09XTkVSID0gQ09OVFJPTF9OT0RFX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGT1JLX05PREVfX09XTkVEX0NPTU1FTlQgPSBDT05UUk9MX05PREVfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRk9SS19OT0RFX19URU1QTEFURV9CSU5ESU5HID0gQ09OVFJPTF9OT0RFX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZPUktfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQ09OVFJPTF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZPUktfTk9ERV9fTkFNRSA9IENPTlRST0xfTk9ERV9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZPUktfTk9ERV9fUVVBTElGSUVEX05BTUUgPSBDT05UUk9MX05PREVfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGT1JLX05PREVfX1ZJU0lCSUxJVFkgPSBDT05UUk9MX05PREVfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZPUktfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBDT05UUk9MX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZPUktfTk9ERV9fTkFNRV9FWFBSRVNTSU9OID0gQ09OVFJPTF9OT0RFX19OQU1FX0VYUFJFU1NJT047CisJaW50IFNUQVRFX01BQ0hJTkVfX1BBQ0tBR0UgPSBCRUhBVklPUl9fUEFDS0FHRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjE5NSw3ICszMTU0Nyw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZPUktfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBDT05UUk9MX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUOworCWludCBTVEFURV9NQUNISU5FX19SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SX19SRURFRklOSVRJT05fQ09OVEVYVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMjIwNCw4OCArMzE1NTYsNDAzIEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZPUktfTk9ERV9fSVNfTEVBRiA9IENPTlRST0xfTk9ERV9fSVNfTEVBRjsKKwlpbnQgU1RBVEVfTUFDSElORV9fSVNfTEVBRiA9IEJFSEFWSU9SX19JU19MRUFGOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFX19PVVRHT0lORyA9IENPTlRST0xfTk9ERV9fT1VUR09JTkc7CisJaW50IFNUQVRFX01BQ0hJTkVfX0ZFQVRVUkUgPSBCRUhBVklPUl9fRkVBVFVSRTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFX19JTkNPTUlORyA9IENPTlRST0xfTk9ERV9fSU5DT01JTkc7CisJaW50IFNUQVRFX01BQ0hJTkVfX0lTX0FCU1RSQUNUID0gQkVIQVZJT1JfX0lTX0FCU1RSQUNUOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFX19JTl9HUk9VUCA9IENPTlRST0xfTk9ERV9fSU5fR1JPVVA7CisJaW50IFNUQVRFX01BQ0hJTkVfX0lOSEVSSVRFRF9NRU1CRVIgPSBCRUhBVklPUl9fSU5IRVJJVEVEX01FTUJFUjsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFX19BQ1RJVklUWSA9IENPTlRST0xfTk9ERV9fQUNUSVZJVFk7CisJaW50IFNUQVRFX01BQ0hJTkVfX0dFTkVSQUwgPSBCRUhBVklPUl9fR0VORVJBTDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGT1JLX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gQ09OVFJPTF9OT0RFX19SRURFRklORURfRUxFTUVOVDsKKwlpbnQgU1RBVEVfTUFDSElORV9fR0VORVJBTElaQVRJT04gPSBCRUhBVklPUl9fR0VORVJBTElaQVRJT047CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZPUktfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gQ09OVFJPTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisJaW50IFNUQVRFX01BQ0hJTkVfX0FUVFJJQlVURSA9IEJFSEFWSU9SX19BVFRSSUJVVEU7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZPUktfTk9ERV9fSU5fUEFSVElUSU9OID0gQ09OVFJPTF9OT0RFX19JTl9QQVJUSVRJT047CisJaW50IFNUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQkVIQVZJT1JfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG93ZXJ0eXBlIEV4dGVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRk9SS19OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IENPTlRST0xfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisJaW50IFNUQVRFX01BQ0hJTkVfX1BPV0VSVFlQRV9FWFRFTlQgPSBCRUhBVklPUl9fUE9XRVJUWVBFX0VYVEVOVDsKIAogCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+Rm9yayBOb2RlPC9lbT4nIGNsYXNzLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZPUktfTk9ERV9GRUFUVVJFX0NPVU5UID0gQ09OVFJPTF9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCWludCBTVEFURV9NQUNISU5FX19TVUJTVElUVVRJT04gPSBCRUhBVklPUl9fU1VCU1RJVFVUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19PV05FRF9VU0VfQ0FTRSA9IEJFSEFWSU9SX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fVVNFX0NBU0UgPSBCRUhBVklPUl9fVVNFX0NBU0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19SRVBSRVNFTlRBVElPTiA9IEJFSEFWSU9SX19SRVBSRVNFTlRBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19PQ0NVUlJFTkNFID0gQkVIQVZJT1JfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX0JFSEFWSU9SID0gQkVIQVZJT1JfX09XTkVEX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQkVIQVZJT1JfX0NMQVNTSUZJRVJfQkVIQVZJT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wbGVtZW50YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX0lNUExFTUVOVEFUSU9OID0gQkVIQVZJT1JfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1RSSUdHRVIgPSBCRUhBVklPUl9fT1dORURfVFJJR0dFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19PV05FRF9TVEFURV9NQUNISU5FID0gQkVIQVZJT1JfX09XTkVEX1NUQVRFX01BQ0hJTkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19PV05FRF9BVFRSSUJVVEUgPSBCRUhBVklPUl9fT1dORURfQVRUUklCVVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1BBUlQgPSBCRUhBVklPUl9fUEFSVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19ST0xFID0gQkVIQVZJT1JfX1JPTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19PV05FRF9DT05ORUNUT1IgPSBCRUhBVklPUl9fT1dORURfQ09OTkVDVE9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BPUlQgPSBCRUhBVklPUl9fT1dORURfUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX09QRVJBVElPTiA9IEJFSEFWSU9SX19PV05FRF9PUEVSQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgQ2xhc3M8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1NVUEVSX0NMQVNTID0gQkVIQVZJT1JfX1NVUEVSX0NMQVNTOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9NQUNISU5FX19ORVNURURfQ0xBU1NJRklFUiA9IEJFSEFWSU9SX19ORVNURURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX0VYVEVOU0lPTiA9IEJFSEFWSU9SX19FWFRFTlNJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWN0aXZlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fSVNfQUNUSVZFID0gQkVIQVZJT1JfX0lTX0FDVElWRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSZWNlcHRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1JFQ0VQVElPTiA9IEJFSEFWSU9SX19PV05FRF9SRUNFUFRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgUmVlbnRyYW50PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fSVNfUkVFTlRSQU5UID0gQkVIQVZJT1JfX0lTX1JFRU5UUkFOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX0NPTlRFWFQgPSBCRUhBVklPUl9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9CRUhBVklPUiA9IEJFSEFWSU9SX19SRURFRklORURfQkVIQVZJT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWNhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1NQRUNJRklDQVRJT04gPSBCRUhBVklPUl9fU1BFQ0lGSUNBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Rm9ybWFsIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fRk9STUFMX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19GT1JNQUxfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJldHVybiBSZXN1bHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1JFVFVSTl9SRVNVTFQgPSBCRUhBVklPUl9fUkVUVVJOX1JFU1VMVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QcmVjb25kaXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1BSRUNPTkRJVElPTiA9IEJFSEFWSU9SX19QUkVDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9zdGNvbmRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fUE9TVENPTkRJVElPTiA9IEJFSEFWSU9SX19QT1NUQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBhcmFtZXRlciBTZXQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BBUkFNRVRFUl9TRVQgPSBCRUhBVklPUl9fT1dORURfUEFSQU1FVEVSX1NFVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWdpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX1JFR0lPTiA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbm5lY3Rpb24gUG9pbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfX0NPTk5FQ1RJT05fUE9JTlQgPSBCRUhBVklPUl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbmRlZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fRVhURU5ERURfU1RBVEVfTUFDSElORSA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0YXRlIE1hY2hpbmUgcmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfTUFDSElORV9fU1RBVEVfTUFDSElORV9SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAzOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5TdGF0ZSBNYWNoaW5lPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX01BQ0hJTkVfRkVBVFVSRV9DT1VOVCA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyA0OwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjI5NCw3ICszMTk2MSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fRUFOTk9UQVRJT05TID0gQ09OVFJPTF9OT0RFX19FQU5OT1RBVElPTlM7CisJaW50IFJFR0lPTl9fRUFOTk9UQVRJT05TID0gTkFNRVNQQUNFX19FQU5OT1RBVElPTlM7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjMwMyw3ICszMTk3MCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fT1dORURfRUxFTUVOVCA9IENPTlRST0xfTk9ERV9fT1dORURfRUxFTUVOVDsKKwlpbnQgUkVHSU9OX19PV05FRF9FTEVNRU5UID0gTkFNRVNQQUNFX19PV05FRF9FTEVNRU5UOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCkBAIC0zMjMxMiw3ICszMTk3OSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fT1dORVIgPSBDT05UUk9MX05PREVfX09XTkVSOworCWludCBSRUdJT05fX09XTkVSID0gTkFNRVNQQUNFX19PV05FUjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMyMzIxLDcgKzMxOTg4LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgSk9JTl9OT0RFX19PV05FRF9DT01NRU5UID0gQ09OVFJPTF9OT0RFX19PV05FRF9DT01NRU5UOworCWludCBSRUdJT05fX09XTkVEX0NPTU1FTlQgPSBOQU1FU1BBQ0VfX09XTkVEX0NPTU1FTlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjMzMCw3ICszMTk5Nyw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fVEVNUExBVEVfQklORElORyA9IENPTlRST0xfTk9ERV9fVEVNUExBVEVfQklORElORzsKKwlpbnQgUkVHSU9OX19URU1QTEFURV9CSU5ESU5HID0gTkFNRVNQQUNFX19URU1QTEFURV9CSU5ESU5HOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgpAQCAtMzIzMzksNyArMzIwMDYsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENPTlRST0xfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCWludCBSRUdJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVTUEFDRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyMzQ4LDcgKzMyMDE1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgSk9JTl9OT0RFX19OQU1FID0gQ09OVFJPTF9OT0RFX19OQU1FOworCWludCBSRUdJT05fX05BTUUgPSBOQU1FU1BBQ0VfX05BTUU7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyMzU3LDcgKzMyMDI0LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgSk9JTl9OT0RFX19RVUFMSUZJRURfTkFNRSA9IENPTlRST0xfTk9ERV9fUVVBTElGSUVEX05BTUU7CisJaW50IFJFR0lPTl9fUVVBTElGSUVEX05BTUUgPSBOQU1FU1BBQ0VfX1FVQUxJRklFRF9OQU1FOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyMzY2LDcgKzMyMDMzLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgSk9JTl9OT0RFX19WSVNJQklMSVRZID0gQ09OVFJPTF9OT0RFX19WSVNJQklMSVRZOworCWludCBSRUdJT05fX1ZJU0lCSUxJVFkgPSBOQU1FU1BBQ0VfX1ZJU0lCSUxJVFk7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzIzNzUsNyArMzIwNDIsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ09OVFJPTF9OT0RFX19DTElFTlRfREVQRU5ERU5DWTsKKwlpbnQgUkVHSU9OX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVTUEFDRV9fQ0xJRU5UX0RFUEVOREVOQ1k7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCkBAIC0zMjM4NCw3ICszMjA1MSw1MiBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IENPTlRST0xfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCWludCBSRUdJT05fX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVTUEFDRV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVHSU9OX19NRU1CRVIgPSBOQU1FU1BBQ0VfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUdJT05fX09XTkVEX1JVTEUgPSBOQU1FU1BBQ0VfX09XTkVEX1JVTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUdJT05fX0lNUE9SVEVEX01FTUJFUiA9IE5BTUVTUEFDRV9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBSRUdJT05fX0VMRU1FTlRfSU1QT1JUID0gTkFNRVNQQUNFX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUkVHSU9OX19QQUNLQUdFX0lNUE9SVCA9IE5BTUVTUEFDRV9fUEFDS0FHRV9JTVBPUlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzIzOTMsNyArMzIxMDUsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ09OVFJPTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKwlpbnQgUkVHSU9OX19SRURFRklOSVRJT05fQ09OVEVYVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMjQwMiwxMDYgKzMyMTE0LDYxIEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fSVNfTEVBRiA9IENPTlRST0xfTk9ERV9fSVNfTEVBRjsKKwlpbnQgUkVHSU9OX19JU19MRUFGID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VidmVydGV4PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX09VVEdPSU5HID0gQ09OVFJPTF9OT0RFX19PVVRHT0lORzsKKwlpbnQgUkVHSU9OX19TVUJWRVJURVggPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDI7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UcmFuc2l0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX0lOQ09NSU5HID0gQ09OVFJPTF9OT0RFX19JTkNPTUlORzsKKwlpbnQgUkVHSU9OX19UUkFOU0lUSU9OID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAzOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgTWFjaGluZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX0lOX0dST1VQID0gQ09OVFJPTF9OT0RFX19JTl9HUk9VUDsKKwlpbnQgUkVHSU9OX19TVEFURV9NQUNISU5FID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyA0OwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdGF0ZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBKT0lOX05PREVfX0FDVElWSVRZID0gQ09OVFJPTF9OT0RFX19BQ1RJVklUWTsKKwlpbnQgUkVHSU9OX19TVEFURSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuZGVkIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEpPSU5fTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQgPSBDT05UUk9MX05PREVfX1JFREVGSU5FRF9FTEVNRU5UOworCWludCBSRUdJT05fX0VYVEVOREVEX1JFR0lPTiA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNjsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5SZWdpb248L2VtPicgY2xhc3MuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgSk9JTl9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREUgPSBDT05UUk9MX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEpPSU5fTk9ERV9fSU5fUEFSVElUSU9OID0gQ09OVFJPTF9OT0RFX19JTl9QQVJUSVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEpPSU5fTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBDT05UUk9MX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIENvbWJpbmUgRHVwbGljYXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSk9JTl9OT0RFX19JU19DT01CSU5FX0RVUExJQ0FURSA9IENPTlRST0xfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Kb2luIFNwZWM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBKT0lOX05PREVfX0pPSU5fU1BFQyA9IENPTlRST0xfTk9ERV9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+Sm9pbiBOb2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEpPSU5fTk9ERV9GRUFUVVJFX0NPVU5UID0gQ09OVFJPTF9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAyOworCWludCBSRUdJT05fRkVBVFVSRV9DT1VOVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtMzI1MTAsNyArMzIxNzcsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX0VBTk5PVEFUSU9OUyA9IEZJTkFMX05PREVfX0VBTk5PVEFUSU9OUzsKKwlpbnQgVkVSVEVYX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjUxOSw3ICszMjE4Niw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fT1dORURfRUxFTUVOVCA9IEZJTkFMX05PREVfX09XTkVEX0VMRU1FTlQ7CisJaW50IFZFUlRFWF9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KQEAgLTMyNTI4LDcgKzMyMTk1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19PV05FUiA9IEZJTkFMX05PREVfX09XTkVSOworCWludCBWRVJURVhfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjUzNyw3ICszMjIwNCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fT1dORURfQ09NTUVOVCA9IEZJTkFMX05PREVfX09XTkVEX0NPTU1FTlQ7CisJaW50IFZFUlRFWF9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjU0Niw3ICszMjIxMyw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fVEVNUExBVEVfQklORElORyA9IEZJTkFMX05PREVfX1RFTVBMQVRFX0JJTkRJTkc7CisJaW50IFZFUlRFWF9fVEVNUExBVEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCkBAIC0zMjU1NSw3ICszMjIyMiw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gRklOQUxfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCWludCBWRVJURVhfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMjU2NCw3ICszMjIzMSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fTkFNRSA9IEZJTkFMX05PREVfX05BTUU7CisJaW50IFZFUlRFWF9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyNTczLDcgKzMyMjQwLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19RVUFMSUZJRURfTkFNRSA9IEZJTkFMX05PREVfX1FVQUxJRklFRF9OQU1FOworCWludCBWRVJURVhfX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgpAQCAtMzI1ODIsNyArMzIyNDksNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX1ZJU0lCSUxJVFkgPSBGSU5BTF9OT0RFX19WSVNJQklMSVRZOworCWludCBWRVJURVhfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMyNTkxLDcgKzMyMjU4LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IEZJTkFMX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCWludCBWRVJURVhfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCkBAIC0zMjYwMCw3ICszMjI2NywzMzEgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBGSU5BTF9OT0RFX19OQU1FX0VYUFJFU1NJT047CisJaW50IFZFUlRFWF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWRVJURVhfX0NPTlRBSU5FUiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZFUlRFWF9fT1VUR09JTkcgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBWRVJURVhfX0lOQ09NSU5HID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VmVydGV4PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFZFUlRFWF9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBTRVVET1NUQVRFX19FQU5OT1RBVElPTlMgPSBWRVJURVhfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fT1dORURfRUxFTUVOVCA9IFZFUlRFWF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBTRVVET1NUQVRFX19PV05FUiA9IFZFUlRFWF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFNFVURPU1RBVEVfX09XTkVEX0NPTU1FTlQgPSBWRVJURVhfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFNFVURPU1RBVEVfX1RFTVBMQVRFX0JJTkRJTkcgPSBWRVJURVhfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFNFVURPU1RBVEVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFZFUlRFWF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fTkFNRSA9IFZFUlRFWF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBTRVVET1NUQVRFX19RVUFMSUZJRURfTkFNRSA9IFZFUlRFWF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBTRVVET1NUQVRFX19WSVNJQklMSVRZID0gVkVSVEVYX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBWRVJURVhfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBTRVVET1NUQVRFX19OQU1FX0VYUFJFU1NJT04gPSBWRVJURVhfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFNFVURPU1RBVEVfX0NPTlRBSU5FUiA9IFZFUlRFWF9fQ09OVEFJTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fT1VUR09JTkcgPSBWRVJURVhfX09VVEdPSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fSU5DT01JTkcgPSBWRVJURVhfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPktpbmQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQU0VVRE9TVEFURV9fS0lORCA9IFZFUlRFWF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+UHNldWRvc3RhdGU8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFNFVURPU1RBVEVfRkVBVFVSRV9DT1VOVCA9IFZFUlRFWF9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19FQU5OT1RBVElPTlMgPSBOQU1FU1BBQ0VfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fT1dORURfRUxFTUVOVCA9IE5BTUVTUEFDRV9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19PV05FUiA9IE5BTUVTUEFDRV9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX09XTkVEX0NPTU1FTlQgPSBOQU1FU1BBQ0VfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FU1BBQ0VfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVTUEFDRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fTkFNRSA9IE5BTUVTUEFDRV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19RVUFMSUZJRURfTkFNRSA9IE5BTUVTUEFDRV9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19WSVNJQklMSVRZID0gTkFNRVNQQUNFX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FU1BBQ0VfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FU1BBQ0VfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19NRU1CRVIgPSBOQU1FU1BBQ0VfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fT1dORURfUlVMRSA9IE5BTUVTUEFDRV9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19JTVBPUlRFRF9NRU1CRVIgPSBOQU1FU1BBQ0VfX0lNUE9SVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX0VMRU1FTlRfSU1QT1JUID0gTkFNRVNQQUNFX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX1BBQ0tBR0VfSU1QT1JUID0gTkFNRVNQQUNFX19QQUNLQUdFX0lNUE9SVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjYwOSw3ICszMjYwMCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBGSU5BTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKwlpbnQgU1RBVEVfX1JFREVGSU5JVElPTl9DT05URVhUID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAwOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyNjE4LDcgKzMyNjA5LDE2IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fSVNfTEVBRiA9IEZJTkFMX05PREVfX0lTX0xFQUY7CisJaW50IFNUQVRFX19JU19MRUFGID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fQ09OVEFJTkVSID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAyOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMyNjI3LDcgKzMyNjI3LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19PVVRHT0lORyA9IEZJTkFMX05PREVfX09VVEdPSU5HOworCWludCBTVEFURV9fT1VUR09JTkcgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDM7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzI2MzYsNzAgKzMyNjM2LDEzMyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX0lOQ09NSU5HID0gRklOQUxfTk9ERV9fSU5DT01JTkc7CisJaW50IFNUQVRFX19JTkNPTUlORyA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIENvbXBvc2l0ZTwvYj48L2VtPicgYXR0cmlidXRlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fSU5fR1JPVVAgPSBGSU5BTF9OT0RFX19JTl9HUk9VUDsKKwlpbnQgU1RBVEVfX0lTX0NPTVBPU0lURSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgT3J0aG9nb25hbDwvYj48L2VtPicgYXR0cmlidXRlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEZMT1dfRklOQUxfTk9ERV9fQUNUSVZJVFkgPSBGSU5BTF9OT0RFX19BQ1RJVklUWTsKKwlpbnQgU1RBVEVfX0lTX09SVEhPR09OQUwgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDY7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBTaW1wbGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gRklOQUxfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisJaW50IFNUQVRFX19JU19TSU1QTEUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDc7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBTdWJtYWNoaW5lIFN0YXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgRkxPV19GSU5BTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREUgPSBGSU5BTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisJaW50IFNUQVRFX19JU19TVUJNQUNISU5FX1NUQVRFID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyA4OwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1Ym1hY2hpbmU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX0lOX1BBUlRJVElPTiA9IEZJTkFMX05PREVfX0lOX1BBUlRJVElPTjsKKwlpbnQgU1RBVEVfX1NVQk1BQ0hJTkUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDk7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25uZWN0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gRklOQUxfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisJaW50IFNUQVRFX19DT05ORUNUSU9OID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxMDsKIAogCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RmxvdyBGaW5hbCBOb2RlPC9lbT4nIGNsYXNzLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBGTE9XX0ZJTkFMX05PREVfRkVBVFVSRV9DT1VOVCA9IEZJTkFMX05PREVfRkVBVFVSRV9DT1VOVCArIDA7CisJaW50IFNUQVRFX19SRURFRklORURfU1RBVEUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDExOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlZmVycmFibGUgVHJpZ2dlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX0RFRkVSUkFCTEVfVFJJR0dFUiA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVnaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBTVEFURV9fUkVHSU9OID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxMzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbnRyeTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19FTlRSWSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhpdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19FWElUID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxNTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EbyBBY3Rpdml0eTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX19ET19BQ1RJVklUWSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgSW52YXJpYW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgU1RBVEVfX1NUQVRFX0lOVkFSSUFOVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTc7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlN0YXRlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFNUQVRFX0ZFQVRVUkVfQ09VTlQgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDE4OwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjcwOCw3ICszMjc3MSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX0VBTk5PVEFUSU9OUyA9IE9CSkVDVF9OT0RFX19FQU5OT1RBVElPTlM7CisJaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19FQU5OT1RBVElPTlMgPSBWRVJURVhfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMyNzE3LDcgKzMyNzgwLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1dORURfRUxFTUVOVCA9IE9CSkVDVF9OT0RFX19PV05FRF9FTEVNRU5UOworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fT1dORURfRUxFTUVOVCA9IFZFUlRFWF9fT1dORURfRUxFTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgpAQCAtMzI3MjYsNyArMzI3ODksNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FUiA9IE9CSkVDVF9OT0RFX19PV05FUjsKKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX09XTkVSID0gVkVSVEVYX19PV05FUjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMyNzM1LDcgKzMyNzk4LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1dORURfQ09NTUVOVCA9IE9CSkVDVF9OT0RFX19PV05FRF9DT01NRU5UOworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fT1dORURfQ09NTUVOVCA9IFZFUlRFWF9fT1dORURfQ09NTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMyNzQ0LDcgKzMyODA3LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVEVNUExBVEVfQklORElORyA9IE9CSkVDVF9OT0RFX19URU1QTEFURV9CSU5ESU5HOworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fVEVNUExBVEVfQklORElORyA9IFZFUlRFWF9fVEVNUExBVEVfQklORElORzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTMyNzUzLDcgKzMyODE2LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gT0JKRUNUX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFZFUlRFWF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMyNzYyLDcgKzMyODI1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fTkFNRSA9IE9CSkVDVF9OT0RFX19OQU1FOworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fTkFNRSA9IFZFUlRFWF9fTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgpAQCAtMzI3NzEsNyArMzI4MzQsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19RVUFMSUZJRURfTkFNRSA9IE9CSkVDVF9OT0RFX19RVUFMSUZJRURfTkFNRTsKKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX1FVQUxJRklFRF9OQU1FID0gVkVSVEVYX19RVUFMSUZJRURfTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMjc4MCw3ICszMjg0Myw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1ZJU0lCSUxJVFkgPSBPQkpFQ1RfTk9ERV9fVklTSUJJTElUWTsKKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX1ZJU0lCSUxJVFkgPSBWRVJURVhfX1ZJU0lCSUxJVFk7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzI3ODksNyArMzI4NTIsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IE9CSkVDVF9OT0RFX19DTElFTlRfREVQRU5ERU5DWTsKKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0NMSUVOVF9ERVBFTkRFTkNZID0gVkVSVEVYX19DTElFTlRfREVQRU5ERU5DWTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTMyNzk4LDcgKzMyODYxLDE2MCBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBPQkpFQ1RfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fTkFNRV9FWFBSRVNTSU9OID0gVkVSVEVYX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19DT05UQUlORVIgPSBWRVJURVhfX0NPTlRBSU5FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX09VVEdPSU5HID0gVkVSVEVYX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0lOQ09NSU5HID0gVkVSVEVYX19JTkNPTUlORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbnRyeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0VOVFJZID0gVkVSVEVYX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4aXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19FWElUID0gVkVSVEVYX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Db25uZWN0aW9uIFBvaW50IFJlZmVyZW5jZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9GRUFUVVJFX0NPVU5UID0gVkVSVEVYX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJBTlNJVElPTl9fRUFOTk9UQVRJT05TID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSQU5TSVRJT05fX09XTkVEX0VMRU1FTlQgPSBSRURFRklOQUJMRV9FTEVNRU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJBTlNJVElPTl9fT1dORVIgPSBSRURFRklOQUJMRV9FTEVNRU5UX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUkFOU0lUSU9OX19PV05FRF9DT01NRU5UID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUkFOU0lUSU9OX19URU1QTEFURV9CSU5ESU5HID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUUkFOU0lUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBSRURFRklOQUJMRV9FTEVNRU5UX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSQU5TSVRJT05fX05BTUUgPSBSRURFRklOQUJMRV9FTEVNRU5UX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJBTlNJVElPTl9fUVVBTElGSUVEX05BTUUgPSBSRURFRklOQUJMRV9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJBTlNJVElPTl9fVklTSUJJTElUWSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRSQU5TSVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVFJBTlNJVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMyODA3LDcgKzMzMDIzLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBPQkpFQ1RfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisJaW50IFRSQU5TSVRJT05fX1JFREVGSU5JVElPTl9DT05URVhUID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgpAQCAtMzI4MTYsMTMzICszMzAzMiw4OCBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JU19MRUFGID0gT0JKRUNUX05PREVfX0lTX0xFQUY7CisJaW50IFRSQU5TSVRJT05fX0lTX0xFQUYgPSBSRURFRklOQUJMRV9FTEVNRU5UX19JU19MRUFGOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+S2luZDwvYj48L2VtPicgYXR0cmlidXRlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX09VVEdPSU5HID0gT0JKRUNUX05PREVfX09VVEdPSU5HOworCWludCBUUkFOU0lUSU9OX19LSU5EID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTkNPTUlORyA9IE9CSkVDVF9OT0RFX19JTkNPTUlORzsKKwlpbnQgVFJBTlNJVElPTl9fQ09OVEFJTkVSID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX0dST1VQID0gT0JKRUNUX05PREVfX0lOX0dST1VQOworCWludCBUUkFOU0lUSU9OX19TT1VSQ0UgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19BQ1RJVklUWSA9IE9CSkVDVF9OT0RFX19BQ1RJVklUWTsKKwlpbnQgVFJBTlNJVElPTl9fVEFSR0VUID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBUcmFuc2l0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQgPSBPQkpFQ1RfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisJaW50IFRSQU5TSVRJT05fX1JFREVGSU5FRF9UUkFOU0lUSU9OID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRyaWdnZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IE9CSkVDVF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisJaW50IFRSQU5TSVRJT05fX1RSSUdHRVIgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA1OwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkd1YXJkPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fUEFSVElUSU9OID0gT0JKRUNUX05PREVfX0lOX1BBUlRJVElPTjsKKwlpbnQgVFJBTlNJVElPTl9fR1VBUkQgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2OwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBPQkpFQ1RfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisJaW50IFRSQU5TSVRJT05fX0VGRkVDVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDc7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VHJhbnNpdGlvbjwvZW0+JyBjbGFzcy4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19UWVBFID0gT0JKRUNUX05PREVfX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3JkZXJpbmc8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19PUkRFUklORyA9IE9CSkVDVF9OT0RFX19PUkRFUklORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VcHBlciBCb3VuZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1VQUEVSX0JPVU5EID0gT0JKRUNUX05PREVfX1VQUEVSX0JPVU5EOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0YXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTl9TVEFURSA9IE9CSkVDVF9OT0RFX19JTl9TVEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TZWxlY3Rpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19TRUxFQ1RJT04gPSBPQkpFQ1RfTk9ERV9fU0VMRUNUSU9OOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5DZW50cmFsIEJ1ZmZlciBOb2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENFTlRSQUxfQlVGRkVSX05PREVfRkVBVFVSRV9DT1VOVCA9IE9CSkVDVF9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCWludCBUUkFOU0lUSU9OX0ZFQVRVUkVfQ09VTlQgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA4OwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC0zMjk1MSw3ICszMzEyMiw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEFDVElWSVRZX1BBUlRJVElPTl9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCWludCBGSU5BTF9TVEFURV9fRUFOTk9UQVRJT05TID0gU1RBVEVfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTMyOTYwLDcgKzMzMTMxLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19PV05FRF9FTEVNRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKKwlpbnQgRklOQUxfU1RBVEVfX09XTkVEX0VMRU1FTlQgPSBTVEFURV9fT1dORURfRUxFTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgpAQCAtMzI5NjksNyArMzMxNDAsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7CisJaW50IEZJTkFMX1NUQVRFX19PV05FUiA9IFNUQVRFX19PV05FUjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMyOTc4LDcgKzMzMTQ5LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKwlpbnQgRklOQUxfU1RBVEVfX09XTkVEX0NPTU1FTlQgPSBTVEFURV9fT1dORURfQ09NTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTMyOTg3LDcgKzMzMTU4LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKwlpbnQgRklOQUxfU1RBVEVfX1RFTVBMQVRFX0JJTkRJTkcgPSBTVEFURV9fVEVNUExBVEVfQklORElORzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTMyOTk2LDcgKzMzMTY3LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisJaW50IEZJTkFMX1NUQVRFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVEFURV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KQEAgLTMzMDA1LDcgKzMzMTc2LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKKwlpbnQgRklOQUxfU1RBVEVfX05BTUUgPSBTVEFURV9fTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgpAQCAtMzMwMTQsNyArMzMxODUsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CisJaW50IEZJTkFMX1NUQVRFX19RVUFMSUZJRURfTkFNRSA9IFNUQVRFX19RVUFMSUZJRURfTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC0zMzAyMyw3ICszMzE5NCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEFDVElWSVRZX1BBUlRJVElPTl9fVklTSUJJTElUWSA9IE5BTUVEX0VMRU1FTlRfX1ZJU0lCSUxJVFk7CisJaW50IEZJTkFMX1NUQVRFX19WSVNJQklMSVRZID0gU1RBVEVfX1ZJU0lCSUxJVFk7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtMzMwMzIsNyArMzMyMDMsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisJaW50IEZJTkFMX1NUQVRFX19DTElFTlRfREVQRU5ERU5DWSA9IFNUQVRFX19DTElFTlRfREVQRU5ERU5DWTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTMzMDQxLDk3ICszMzIxMiwyMjMgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047CisJaW50IEZJTkFMX1NUQVRFX19OQU1FX0VYUFJFU1NJT04gPSBTVEFURV9fTkFNRV9FWFBSRVNTSU9OOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19TVVBFUl9HUk9VUCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisJaW50IEZJTkFMX1NUQVRFX19NRU1CRVIgPSBTVEFURV9fTUVNQkVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5IEdyb3VwIGFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0FDVElWSVRZX0dST1VQX0FDVElWSVRZID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKKwlpbnQgRklOQUxfU1RBVEVfX09XTkVEX1JVTEUgPSBTVEFURV9fT1dORURfUlVMRTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBEaW1lbnNpb248L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0lTX0RJTUVOU0lPTiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7CisJaW50IEZJTkFMX1NUQVRFX19JTVBPUlRFRF9NRU1CRVIgPSBTVEFURV9fSU1QT1JURURfTUVNQkVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEV4dGVybmFsPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0lTX0VYVEVSTkFMID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKKwlpbnQgRklOQUxfU1RBVEVfX0VMRU1FTlRfSU1QT1JUID0gU1RBVEVfX0VMRU1FTlRfSU1QT1JUOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBFZGdlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEFDVElWSVRZX1BBUlRJVElPTl9fQ09OVEFJTkVEX0VER0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA0OworCWludCBGSU5BTF9TVEFURV9fUEFDS0FHRV9JTVBPUlQgPSBTVEFURV9fUEFDS0FHRV9JTVBPUlQ7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVkIE5vZGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19DT05UQUlORURfTk9ERSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDU7CisJaW50IEZJTkFMX1NUQVRFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUQVRFX19SRURFRklOSVRJT05fQ09OVEVYVDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJncm91cDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX1NVQkdST1VQID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNjsKKwlpbnQgRklOQUxfU1RBVEVfX0lTX0xFQUYgPSBTVEFURV9fSVNfTEVBRjsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBQYXJ0aXRpb248L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX1NVUEVSX1BBUlRJVElPTiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDc7CisJaW50IEZJTkFMX1NUQVRFX19DT05UQUlORVIgPSBTVEFURV9fQ09OVEFJTkVSOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudHM8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IEFDVElWSVRZX1BBUlRJVElPTl9fUkVQUkVTRU5UUyA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDg7CisJaW50IEZJTkFMX1NUQVRFX19PVVRHT0lORyA9IFNUQVRFX19PVVRHT0lORzsKIAogCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QWN0aXZpdHkgUGFydGl0aW9uPC9lbT4nIGNsYXNzLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA5OworCWludCBGSU5BTF9TVEFURV9fSU5DT01JTkcgPSBTVEFURV9fSU5DT01JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQ29tcG9zaXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRklOQUxfU1RBVEVfX0lTX0NPTVBPU0lURSA9IFNUQVRFX19JU19DT01QT1NJVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgT3J0aG9nb25hbDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX19JU19PUlRIT0dPTkFMID0gU1RBVEVfX0lTX09SVEhPR09OQUw7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU2ltcGxlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRklOQUxfU1RBVEVfX0lTX1NJTVBMRSA9IFNUQVRFX19JU19TSU1QTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU3VibWFjaGluZSBTdGF0ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX19JU19TVUJNQUNISU5FX1NUQVRFID0gU1RBVEVfX0lTX1NVQk1BQ0hJTkVfU1RBVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VibWFjaGluZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX19TVUJNQUNISU5FID0gU1RBVEVfX1NVQk1BQ0hJTkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29ubmVjdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRklOQUxfU1RBVEVfX0NPTk5FQ1RJT04gPSBTVEFURV9fQ09OTkVDVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGSU5BTF9TVEFURV9fUkVERUZJTkVEX1NUQVRFID0gU1RBVEVfX1JFREVGSU5FRF9TVEFURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWZlcnJhYmxlIFRyaWdnZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX19ERUZFUlJBQkxFX1RSSUdHRVIgPSBTVEFURV9fREVGRVJSQUJMRV9UUklHR0VSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZ2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRklOQUxfU1RBVEVfX1JFR0lPTiA9IFNUQVRFX19SRUdJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RW50cnk8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGSU5BTF9TVEFURV9fRU5UUlkgPSBTVEFURV9fRU5UUlk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhpdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX19FWElUID0gU1RBVEVfX0VYSVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RG8gQWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGSU5BTF9TVEFURV9fRE9fQUNUSVZJVFkgPSBTVEFURV9fRE9fQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgSW52YXJpYW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRklOQUxfU1RBVEVfX1NUQVRFX0lOVkFSSUFOVCA9IFNUQVRFX19TVEFURV9JTlZBUklBTlQ7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkZpbmFsIFN0YXRlPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZJTkFMX1NUQVRFX0ZFQVRVUkVfQ09VTlQgPSBTVEFURV9GRUFUVVJFX0NPVU5UICsgMDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtNDE5ODcsNyArNDIyODQsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19FQU5OT1RBVElPTlMgPSBCRUhBVklPUl9fRUFOTk9UQVRJT05TOworCWludCBGT1JLX05PREVfX0VBTk5PVEFUSU9OUyA9IENPTlRST0xfTk9ERV9fRUFOTk9UQVRJT05TOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtNDE5OTYsNyArNDIyOTMsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FRF9FTEVNRU5UID0gQkVIQVZJT1JfX09XTkVEX0VMRU1FTlQ7CisJaW50IEZPUktfTk9ERV9fT1dORURfRUxFTUVOVCA9IENPTlRST0xfTk9ERV9fT1dORURfRUxFTUVOVDsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgpAQCAtNDIwMDUsNyArNDIzMDIsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FUiA9IEJFSEFWSU9SX19PV05FUjsKKwlpbnQgRk9SS19OT0RFX19PV05FUiA9IENPTlRST0xfTk9ERV9fT1dORVI7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC00MjAxNCw3ICs0MjMxMSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX0NPTU1FTlQgPSBCRUhBVklPUl9fT1dORURfQ09NTUVOVDsKKwlpbnQgRk9SS19OT0RFX19PV05FRF9DT01NRU5UID0gQ09OVFJPTF9OT0RFX19PV05FRF9DT01NRU5UOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtNDIwMjMsNyArNDIzMjAsNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19URU1QTEFURV9CSU5ESU5HID0gQkVIQVZJT1JfX1RFTVBMQVRFX0JJTkRJTkc7CisJaW50IEZPUktfTk9ERV9fVEVNUExBVEVfQklORElORyA9IENPTlRST0xfTk9ERV9fVEVNUExBVEVfQklORElORzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KQEAgLTQyMDMyLDcgKzQyMzI5LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQkVIQVZJT1JfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKwlpbnQgRk9SS19OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDT05UUk9MX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC00MjA0MSw3ICs0MjMzOCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX05BTUUgPSBCRUhBVklPUl9fTkFNRTsKKwlpbnQgRk9SS19OT0RFX19OQU1FID0gQ09OVFJPTF9OT0RFX19OQU1FOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC00MjA1MCw3ICs0MjM0Nyw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1FVQUxJRklFRF9OQU1FID0gQkVIQVZJT1JfX1FVQUxJRklFRF9OQU1FOworCWludCBGT1JLX05PREVfX1FVQUxJRklFRF9OQU1FID0gQ09OVFJPTF9OT0RFX19RVUFMSUZJRURfTkFNRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCkBAIC00MjA1OSw3ICs0MjM1Niw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1ZJU0lCSUxJVFkgPSBCRUhBVklPUl9fVklTSUJJTElUWTsKKwlpbnQgRk9SS19OT0RFX19WSVNJQklMSVRZID0gQ09OVFJPTF9OT0RFX19WSVNJQklMSVRZOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTQyMDY4LDcgKzQyMzY1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBCRUhBVklPUl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisJaW50IEZPUktfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBDT05UUk9MX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgpAQCAtNDIwNzcsNyArNDIzNzQsMTQ2NSBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19OQU1FX0VYUFJFU1NJT04gPSBCRUhBVklPUl9fTkFNRV9FWFBSRVNTSU9OOworCWludCBGT1JLX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IENPTlRST0xfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGT1JLX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ09OVFJPTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRk9SS19OT0RFX19JU19MRUFGID0gQ09OVFJPTF9OT0RFX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGT1JLX05PREVfX09VVEdPSU5HID0gQ09OVFJPTF9OT0RFX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRk9SS19OT0RFX19JTkNPTUlORyA9IENPTlRST0xfTk9ERV9fSU5DT01JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZPUktfTk9ERV9fSU5fR1JPVVAgPSBDT05UUk9MX05PREVfX0lOX0dST1VQOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZPUktfTk9ERV9fQUNUSVZJVFkgPSBDT05UUk9MX05PREVfX0FDVElWSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGT1JLX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gQ09OVFJPTF9OT0RFX19SRURFRklORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRk9SS19OT0RFX19JTl9TVFJVQ1RVUkVEX05PREUgPSBDT05UUk9MX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZPUktfTk9ERV9fSU5fUEFSVElUSU9OID0gQ09OVFJPTF9OT0RFX19JTl9QQVJUSVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZPUktfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBDT05UUk9MX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Gb3JrIE5vZGU8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRk9SS19OT0RFX0ZFQVRVUkVfQ09VTlQgPSBDT05UUk9MX05PREVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX0VBTk5PVEFUSU9OUyA9IENPTlRST0xfTk9ERV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fT1dORURfRUxFTUVOVCA9IENPTlRST0xfTk9ERV9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fT1dORVIgPSBDT05UUk9MX05PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fT1dORURfQ09NTUVOVCA9IENPTlRST0xfTk9ERV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBDT05UUk9MX05PREVfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDT05UUk9MX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19OQU1FID0gQ09OVFJPTF9OT0RFX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19RVUFMSUZJRURfTkFNRSA9IENPTlRST0xfTk9ERV9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fVklTSUJJTElUWSA9IENPTlRST0xfTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IENPTlRST0xfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBDT05UUk9MX05PREVfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IENPTlRST0xfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fSVNfTEVBRiA9IENPTlRST0xfTk9ERV9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19PVVRHT0lORyA9IENPTlRST0xfTk9ERV9fT1VUR09JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fSU5DT01JTkcgPSBDT05UUk9MX05PREVfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX0lOX0dST1VQID0gQ09OVFJPTF9OT0RFX19JTl9HUk9VUDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX0FDVElWSVRZID0gQ09OVFJPTF9OT0RFX19BQ1RJVklUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IENPTlRST0xfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gQ09OVFJPTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX0lOX1BBUlRJVElPTiA9IENPTlRST0xfTk9ERV9fSU5fUEFSVElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gQ09OVFJPTF9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBDb21iaW5lIER1cGxpY2F0ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEpPSU5fTk9ERV9fSVNfQ09NQklORV9EVVBMSUNBVEUgPSBDT05UUk9MX05PREVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Sm9pbiBTcGVjPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSk9JTl9OT0RFX19KT0lOX1NQRUMgPSBDT05UUk9MX05PREVfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkpvaW4gTm9kZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBKT0lOX05PREVfRkVBVFVSRV9DT1VOVCA9IENPTlRST0xfTk9ERV9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fRUFOTk9UQVRJT05TID0gRklOQUxfTk9ERV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fT1dORURfRUxFTUVOVCA9IEZJTkFMX05PREVfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX09XTkVSID0gRklOQUxfTk9ERV9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19PV05FRF9DT01NRU5UID0gRklOQUxfTk9ERV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBGSU5BTF9OT0RFX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gRklOQUxfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX05BTUUgPSBGSU5BTF9OT0RFX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19RVUFMSUZJRURfTkFNRSA9IEZJTkFMX05PREVfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX1ZJU0lCSUxJVFkgPSBGSU5BTF9OT0RFX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZID0gRklOQUxfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19OQU1FX0VYUFJFU1NJT04gPSBGSU5BTF9OT0RFX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBGSU5BTF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19JU19MRUFGID0gRklOQUxfTk9ERV9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19PVVRHT0lORyA9IEZJTkFMX05PREVfX09VVEdPSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX0lOQ09NSU5HID0gRklOQUxfTk9ERV9fSU5DT01JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fSU5fR1JPVVAgPSBGSU5BTF9OT0RFX19JTl9HUk9VUDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX0FDVElWSVRZID0gRklOQUxfTk9ERV9fQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEZMT1dfRklOQUxfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQgPSBGSU5BTF9OT0RFX19SRURFRklORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREUgPSBGSU5BTF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBGTE9XX0ZJTkFMX05PREVfX0lOX1BBUlRJVElPTiA9IEZJTkFMX05PREVfX0lOX1BBUlRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IEZJTkFMX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5GbG93IEZpbmFsIE5vZGU8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRkxPV19GSU5BTF9OT0RFX0ZFQVRVUkVfQ09VTlQgPSBGSU5BTF9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fRUFOTk9UQVRJT05TID0gT0JKRUNUX05PREVfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FRF9FTEVNRU5UID0gT0JKRUNUX05PREVfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FUiA9IE9CSkVDVF9OT0RFX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FRF9DT01NRU5UID0gT0JKRUNUX05PREVfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVEVNUExBVEVfQklORElORyA9IE9CSkVDVF9OT0RFX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE9CSkVDVF9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX05BTUUgPSBPQkpFQ1RfTk9ERV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1FVQUxJRklFRF9OQU1FID0gT0JKRUNUX05PREVfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19WSVNJQklMSVRZID0gT0JKRUNUX05PREVfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZID0gT0JKRUNUX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IE9CSkVDVF9OT0RFX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gT0JKRUNUX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JU19MRUFGID0gT0JKRUNUX05PREVfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX09VVEdPSU5HID0gT0JKRUNUX05PREVfX09VVEdPSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTkNPTUlORyA9IE9CSkVDVF9OT0RFX19JTkNPTUlORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fR1JPVVAgPSBPQkpFQ1RfTk9ERV9fSU5fR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fQUNUSVZJVFkgPSBPQkpFQ1RfTk9ERV9fQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gT0JKRUNUX05PREVfX1JFREVGSU5FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREUgPSBPQkpFQ1RfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fUEFSVElUSU9OID0gT0JKRUNUX05PREVfX0lOX1BBUlRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBPQkpFQ1RfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1RZUEUgPSBPQkpFQ1RfTk9ERV9fVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PcmRlcmluZzwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX09SREVSSU5HID0gT0JKRUNUX05PREVfX09SREVSSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyIEJvdW5kPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVVBQRVJfQk9VTkQgPSBPQkpFQ1RfTk9ERV9fVVBQRVJfQk9VTkQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX1NUQVRFID0gT0JKRUNUX05PREVfX0lOX1NUQVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNlbGVjdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENFTlRSQUxfQlVGRkVSX05PREVfX1NFTEVDVElPTiA9IE9CSkVDVF9OT0RFX19TRUxFQ1RJT047CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNlbnRyYWwgQnVmZmVyIE5vZGU8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ0VOVFJBTF9CVUZGRVJfTk9ERV9GRUFUVVJFX0NPVU5UID0gT0JKRUNUX05PREVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0VBTk5PVEFUSU9OUyA9IE5BTUVEX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9fT1dORURfQ09NTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19OQU1FID0gTkFNRURfRUxFTUVOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19TVVBFUl9HUk9VUCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHkgR3JvdXAgYWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgRGltZW5zaW9uPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19JU19ESU1FTlNJT04gPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEV4dGVybmFsPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19JU19FWFRFUk5BTCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVkIEVkZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9fQ09OVEFJTkVEX0VER0UgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA0OworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBBQ1RJVklUWV9QQVJUSVRJT05fX0NPTlRBSU5FRF9OT0RFID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJncm91cDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19TVUJHUk9VUCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgUGFydGl0aW9uPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9fU1VQRVJfUEFSVElUSU9OID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRzPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQUNUSVZJVFlfUEFSVElUSU9OX19SRVBSRVNFTlRTID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgODsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+QWN0aXZpdHkgUGFydGl0aW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEFDVElWSVRZX1BBUlRJVElPTl9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgOTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19FQU5OT1RBVElPTlMgPSBPQkpFQ1RfTk9ERV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19PV05FRF9FTEVNRU5UID0gT0JKRUNUX05PREVfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fT1dORVIgPSBPQkpFQ1RfTk9ERV9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX09XTkVEX0NPTU1FTlQgPSBPQkpFQ1RfTk9ERV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fVEVNUExBVEVfQklORElORyA9IE9CSkVDVF9OT0RFX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBPQkpFQ1RfTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fTkFNRSA9IE9CSkVDVF9OT0RFX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX1FVQUxJRklFRF9OQU1FID0gT0JKRUNUX05PREVfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fVklTSUJJTElUWSA9IE9CSkVDVF9OT0RFX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBPQkpFQ1RfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IE9CSkVDVF9OT0RFX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IE9CSkVDVF9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX0lTX0xFQUYgPSBPQkpFQ1RfTk9ERV9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX09VVEdPSU5HID0gT0JKRUNUX05PREVfX09VVEdPSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fSU5DT01JTkcgPSBPQkpFQ1RfTk9ERV9fSU5DT01JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19JTl9HUk9VUCA9IE9CSkVDVF9OT0RFX19JTl9HUk9VUDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fQUNUSVZJVFkgPSBPQkpFQ1RfTk9ERV9fQUNUSVZJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IE9CSkVDVF9OT0RFX19SRURFRklORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IE9CSkVDVF9OT0RFX19JTl9TVFJVQ1RVUkVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fSU5fUEFSVElUSU9OID0gT0JKRUNUX05PREVfX0lOX1BBUlRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gT0JKRUNUX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fVFlQRSA9IE9CSkVDVF9OT0RFX19UWVBFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9yZGVyaW5nPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX09SREVSSU5HID0gT0JKRUNUX05PREVfX09SREVSSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVwcGVyIEJvdW5kPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX1VQUEVSX0JPVU5EID0gT0JKRUNUX05PREVfX1VQUEVSX0JPVU5EOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0YXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9fSU5fU1RBVEUgPSBPQkpFQ1RfTk9ERV9fSU5fU1RBVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U2VsZWN0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX1NFTEVDVElPTiA9IE9CSkVDVF9OT0RFX19TRUxFQ1RJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVnaW9uIEFzIE91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9OT0RFX19SRUdJT05fQVNfT1VUUFVUID0gT0JKRUNUX05PREVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVnaW9uIEFzIElucHV0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX05PREVfX1JFR0lPTl9BU19JTlBVVCA9IE9CSkVDVF9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeHBhbnNpb24gTm9kZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fTk9ERV9GRUFUVVJFX0NPVU5UID0gT0JKRUNUX05PREVfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19FQU5OT1RBVElPTlMgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19PV05FRF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1dORVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX09XTkVEX0NPTU1FTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fVEVNUExBVEVfQklORElORyA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTkFNRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX1FVQUxJRklFRF9OQU1FID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fVklTSUJJTElUWSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX05BTUVfRVhQUkVTU0lPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0lTX0xFQUYgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX09VVEdPSU5HID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSU5DT01JTkcgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19JTl9HUk9VUCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fQUNUSVZJVFkgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0FDVElWSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19SRURFRklORURfRUxFTUVOVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0lOX1NUUlVDVFVSRURfTk9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fSU5fUEFSVElUSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9QQVJUSVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWFBBTlNJT05fUkVHSU9OX19IQU5ETEVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19IQU5ETEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVmZmVjdDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0VGRkVDVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUZGRUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1VUUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19PVVRQVVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0lOUFVUID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19JTlBVVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fQ09OVEVYVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQcmVjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTE9DQUxfUFJFQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0xPQ0FMX1BPU1RDT05ESVRJT047CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTQyMDg2LDcgKzQzODQxLDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fTUVNQkVSID0gQkVIQVZJT1JfX01FTUJFUjsKKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTUVNQkVSID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19NRU1CRVI7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC00MjA5NSw3ICs0Mzg1MCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1JVTEUgPSBCRUhBVklPUl9fT1dORURfUlVMRTsKKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fT1dORURfUlVMRSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fT1dORURfUlVMRTsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgpAQCAtNDIxMDQsNyArNDM4NTksNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19JTVBPUlRFRF9NRU1CRVIgPSBCRUhBVklPUl9fSU1QT1JURURfTUVNQkVSOworCWludCBFWFBBTlNJT05fUkVHSU9OX19JTVBPUlRFRF9NRU1CRVIgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0lNUE9SVEVEX01FTUJFUjsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCkBAIC00MjExMyw3ICs0Mzg2OCw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0VMRU1FTlRfSU1QT1JUID0gQkVIQVZJT1JfX0VMRU1FTlRfSU1QT1JUOworCWludCBFWFBBTlNJT05fUkVHSU9OX19FTEVNRU5UX0lNUE9SVCA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fRUxFTUVOVF9JTVBPUlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtNDIxMjIsNDU3ICs0Mzg3Nyw5NyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19QQUNLQUdFX0lNUE9SVCA9IEJFSEFWSU9SX19QQUNLQUdFX0lNUE9SVDsKKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fUEFDS0FHRV9JTVBPUlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX1BBQ0tBR0VfSU1QT1JUOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19URU1QTEFURV9QQVJBTUVURVI7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX1NVUEVSX0dST1VQID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19TVVBFUl9HUk9VUDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eSBHcm91cCBhY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05JTkdfUEFSQU1FVEVSID0gQkVIQVZJT1JfX09XTklOR19QQVJBTUVURVI7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0FDVElWSVRZX0dST1VQX0FDVElWSVRZID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmFyaWFibGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IEJFSEFWSU9SX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX1ZBUklBQkxFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19WQVJJQUJMRTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19QQUNLQUdFID0gQkVIQVZJT1JfX1BBQ0tBR0U7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0NPTlRBSU5FRF9OT0RFID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX19DT05UQUlORURfTk9ERTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBFZGdlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SX19SRURFRklOSVRJT05fQ09OVEVYVDsKKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fQ09OVEFJTkVEX0VER0UgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX0NPTlRBSU5FRF9FREdFOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TXVzdCBJc29sYXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fSVNfTEVBRiA9IEJFSEFWSU9SX19JU19MRUFGOworCWludCBFWFBBTlNJT05fUkVHSU9OX19NVVNUX0lTT0xBVEUgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfX01VU1RfSVNPTEFURTsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TW9kZTwvYj48L2VtPicgYXR0cmlidXRlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0ZFQVRVUkUgPSBCRUhBVklPUl9fRkVBVFVSRTsKKwlpbnQgRVhQQU5TSU9OX1JFR0lPTl9fTU9ERSA9IFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBBYnN0cmFjdDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRwdXQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fSVNfQUJTVFJBQ1QgPSBCRUhBVklPUl9fSVNfQUJTVFJBQ1Q7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX09VVFBVVF9FTEVNRU5UID0gU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAxOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBTVEFURV9NQUNISU5FX19JTkhFUklURURfTUVNQkVSID0gQkVIQVZJT1JfX0lOSEVSSVRFRF9NRU1CRVI7CisJaW50IEVYUEFOU0lPTl9SRUdJT05fX0lOUFVUX0VMRU1FTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCArIDI7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeHBhbnNpb24gUmVnaW9uPC9lbT4nIGNsYXNzLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0dFTkVSQUwgPSBCRUhBVklPUl9fR0VORVJBTDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fR0VORVJBTElaQVRJT04gPSBCRUhBVklPUl9fR0VORVJBTElaQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19BVFRSSUJVVEUgPSBCRUhBVklPUl9fQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19SRURFRklORURfQ0xBU1NJRklFUiA9IEJFSEFWSU9SX19SRURFRklORURfQ0xBU1NJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19QT1dFUlRZUEVfRVhURU5UID0gQkVIQVZJT1JfX1BPV0VSVFlQRV9FWFRFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19TVUJTVElUVVRJT04gPSBCRUhBVklPUl9fU1VCU1RJVFVUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FRF9VU0VfQ0FTRSA9IEJFSEFWSU9SX19PV05FRF9VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fVVNFX0NBU0UgPSBCRUhBVklPUl9fVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19SRVBSRVNFTlRBVElPTiA9IEJFSEFWSU9SX19SRVBSRVNFTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PQ0NVUlJFTkNFID0gQkVIQVZJT1JfX09DQ1VSUkVOQ0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX0JFSEFWSU9SID0gQkVIQVZJT1JfX09XTkVEX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQkVIQVZJT1JfX0NMQVNTSUZJRVJfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wbGVtZW50YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0lNUExFTUVOVEFUSU9OID0gQkVIQVZJT1JfX0lNUExFTUVOVEFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1RSSUdHRVIgPSBCRUhBVklPUl9fT1dORURfVFJJR0dFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FRF9TVEFURV9NQUNISU5FID0gQkVIQVZJT1JfX09XTkVEX1NUQVRFX01BQ0hJTkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FRF9BVFRSSUJVVEUgPSBCRUhBVklPUl9fT1dORURfQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1BBUlQgPSBCRUhBVklPUl9fUEFSVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19ST0xFID0gQkVIQVZJT1JfX1JPTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19PV05FRF9DT05ORUNUT1IgPSBCRUhBVklPUl9fT1dORURfQ09OTkVDVE9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BPUlQgPSBCRUhBVklPUl9fT1dORURfUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX09QRVJBVElPTiA9IEJFSEFWSU9SX19PV05FRF9PUEVSQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgQ2xhc3M8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1NVUEVSX0NMQVNTID0gQkVIQVZJT1JfX1NVUEVSX0NMQVNTOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9NQUNISU5FX19ORVNURURfQ0xBU1NJRklFUiA9IEJFSEFWSU9SX19ORVNURURfQ0xBU1NJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0VYVEVOU0lPTiA9IEJFSEFWSU9SX19FWFRFTlNJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWN0aXZlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fSVNfQUNUSVZFID0gQkVIQVZJT1JfX0lTX0FDVElWRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSZWNlcHRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1JFQ0VQVElPTiA9IEJFSEFWSU9SX19PV05FRF9SRUNFUFRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgUmVlbnRyYW50PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fSVNfUkVFTlRSQU5UID0gQkVIQVZJT1JfX0lTX1JFRU5UUkFOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0NPTlRFWFQgPSBCRUhBVklPUl9fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9CRUhBVklPUiA9IEJFSEFWSU9SX19SRURFRklORURfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWNhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1NQRUNJRklDQVRJT04gPSBCRUhBVklPUl9fU1BFQ0lGSUNBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Rm9ybWFsIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fRk9STUFMX1BBUkFNRVRFUiA9IEJFSEFWSU9SX19GT1JNQUxfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJldHVybiBSZXN1bHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1JFVFVSTl9SRVNVTFQgPSBCRUhBVklPUl9fUkVUVVJOX1JFU1VMVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QcmVjb25kaXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1BSRUNPTkRJVElPTiA9IEJFSEFWSU9SX19QUkVDT05ESVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9zdGNvbmRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fUE9TVENPTkRJVElPTiA9IEJFSEFWSU9SX19QT1NUQ09ORElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBhcmFtZXRlciBTZXQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BBUkFNRVRFUl9TRVQgPSBCRUhBVklPUl9fT1dORURfUEFSQU1FVEVSX1NFVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWdpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX1JFR0lPTiA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbm5lY3Rpb24gUG9pbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfX0NPTk5FQ1RJT05fUE9JTlQgPSBCRUhBVklPUl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbmRlZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fRVhURU5ERURfU1RBVEVfTUFDSElORSA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0YXRlIE1hY2hpbmUgcmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfTUFDSElORV9fU1RBVEVfTUFDSElORV9SRURFRklOSVRJT05fQ09OVEVYVCA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5TdGF0ZSBNYWNoaW5lPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX01BQ0hJTkVfRkVBVFVSRV9DT1VOVCA9IEJFSEFWSU9SX0ZFQVRVUkVfQ09VTlQgKyA0OworCWludCBFWFBBTlNJT05fUkVHSU9OX0ZFQVRVUkVfQ09VTlQgPSBTVFJVQ1RVUkVEX0FDVElWSVRZX05PREVfRkVBVFVSRV9DT1VOVCArIDM7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTQyNTgxLDcgKzQzOTc2LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVHSU9OX19FQU5OT1RBVElPTlMgPSBOQU1FU1BBQ0VfX0VBTk5PVEFUSU9OUzsKKwlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX0VBTk5PVEFUSU9OUyA9IEVMRU1FTlRfX0VBTk5PVEFUSU9OUzsKIAogCS8qKgogCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KQEAgLTQyNTkwLDcgKzQzOTg1LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVHSU9OX19PV05FRF9FTEVNRU5UID0gTkFNRVNQQUNFX19PV05FRF9FTEVNRU5UOworCWludCBFWENFUFRJT05fSEFORExFUl9fT1dORURfRUxFTUVOVCA9IEVMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KQEAgLTQyNTk5LDcgKzQzOTk0LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVHSU9OX19PV05FUiA9IE5BTUVTUEFDRV9fT1dORVI7CisJaW50IEVYQ0VQVElPTl9IQU5ETEVSX19PV05FUiA9IEVMRU1FTlRfX09XTkVSOwogCiAJLyoqCiAJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgpAQCAtNDI2MDgsMTQ0NyArNDQwMDMsNTIgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVHSU9OX19PV05FRF9DT01NRU5UID0gTkFNRVNQQUNFX19PV05FRF9DT01NRU5UOworCWludCBFWENFUFRJT05fSEFORExFUl9fT1dORURfQ09NTUVOVCA9IEVMRU1FTlRfX09XTkVEX0NPTU1FTlQ7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlByb3RlY3RlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAJICogQGdlbmVyYXRlZAogCSAqIEBvcmRlcmVkCiAJICovCi0JaW50IFJFR0lPTl9fVEVNUExBVEVfQklORElORyA9IE5BTUVTUEFDRV9fVEVNUExBVEVfQklORElORzsKKwlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX1BST1RFQ1RFRF9OT0RFID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SGFuZGxlciBCb2R5PC9iPjwvZW0+JyByZWZlcmVuY2UuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUkVHSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBOQU1FU1BBQ0VfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKwlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX0hBTkRMRVJfQk9EWSA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7CiAKIAkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeGNlcHRpb24gSW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBSRUdJT05fX05BTUUgPSBOQU1FU1BBQ0VfX05BTUU7CisJaW50IEVYQ0VQVElPTl9IQU5ETEVSX19FWENFUFRJT05fSU5QVVQgPSBFTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOwogCiAJLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4Y2VwdGlvbiBUeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBSRUdJT05fX1FVQUxJRklFRF9OQU1FID0gTkFNRVNQQUNFX19RVUFMSUZJRURfTkFNRTsKKwlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfX0VYQ0VQVElPTl9UWVBFID0gRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKIAogCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeGNlcHRpb24gSGFuZGxlcjwvZW0+JyBjbGFzcy4KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogCSAqIEBnZW5lcmF0ZWQKIAkgKiBAb3JkZXJlZAogCSAqLwotCWludCBSRUdJT05fX1ZJU0lCSUxJVFkgPSBOQU1FU1BBQ0VfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FU1BBQ0VfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRVNQQUNFX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUdJT05fX01FTUJFUiA9IE5BTUVTUEFDRV9fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fT1dORURfUlVMRSA9IE5BTUVTUEFDRV9fT1dORURfUlVMRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fSU1QT1JURURfTUVNQkVSID0gTkFNRVNQQUNFX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fRUxFTUVOVF9JTVBPUlQgPSBOQU1FU1BBQ0VfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUdJT05fX1BBQ0tBR0VfSU1QT1JUID0gTkFNRVNQQUNFX19QQUNLQUdFX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19SRURFRklOSVRJT05fQ09OVEVYVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19JU19MRUFGID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnZlcnRleDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19TVUJWRVJURVggPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHJhbnNpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19UUkFOU0lUSU9OID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19TVEFURV9NQUNISU5FID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyA0OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0YXRlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJFR0lPTl9fU1RBVEUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXh0ZW5kZWQgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUkVHSU9OX19FWFRFTkRFRF9SRUdJT04gPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDY7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlJlZ2lvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSRUdJT05fRkVBVFVSRV9DT1VOVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZFUlRFWF9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZFUlRFWF9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWRVJURVhfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkVSVEVYX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWRVJURVhfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZFUlRFWF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWRVJURVhfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkVSVEVYX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWRVJURVhfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBWRVJURVhfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkVSVEVYX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZFUlRFWF9fQ09OVEFJTkVSID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkVSVEVYX19PVVRHT0lORyA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFZFUlRFWF9fSU5DT01JTkcgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5WZXJ0ZXg8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVkVSVEVYX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFNFVURPU1RBVEVfX0VBTk5PVEFUSU9OUyA9IFZFUlRFWF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19PV05FRF9FTEVNRU5UID0gVkVSVEVYX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFNFVURPU1RBVEVfX09XTkVSID0gVkVSVEVYX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQU0VVRE9TVEFURV9fT1dORURfQ09NTUVOVCA9IFZFUlRFWF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQU0VVRE9TVEFURV9fVEVNUExBVEVfQklORElORyA9IFZFUlRFWF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQU0VVRE9TVEFURV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gVkVSVEVYX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19OQU1FID0gVkVSVEVYX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFNFVURPU1RBVEVfX1FVQUxJRklFRF9OQU1FID0gVkVSVEVYX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFNFVURPU1RBVEVfX1ZJU0lCSUxJVFkgPSBWRVJURVhfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19DTElFTlRfREVQRU5ERU5DWSA9IFZFUlRFWF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFNFVURPU1RBVEVfX05BTUVfRVhQUkVTU0lPTiA9IFZFUlRFWF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQU0VVRE9TVEFURV9fQ09OVEFJTkVSID0gVkVSVEVYX19DT05UQUlORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19PVVRHT0lORyA9IFZFUlRFWF9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19JTkNPTUlORyA9IFZFUlRFWF9fSU5DT01JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+S2luZDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBTRVVET1NUQVRFX19LSU5EID0gVkVSVEVYX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Qc2V1ZG9zdGF0ZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQU0VVRE9TVEFURV9GRUFUVVJFX0NPVU5UID0gVkVSVEVYX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX0VBTk5PVEFUSU9OUyA9IE5BTUVTUEFDRV9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19PV05FRF9FTEVNRU5UID0gTkFNRVNQQUNFX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX09XTkVSID0gTkFNRVNQQUNFX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fT1dORURfQ09NTUVOVCA9IE5BTUVTUEFDRV9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fVEVNUExBVEVfQklORElORyA9IE5BTUVTUEFDRV9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRVNQQUNFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19OQU1FID0gTkFNRVNQQUNFX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX1FVQUxJRklFRF9OQU1FID0gTkFNRVNQQUNFX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX1ZJU0lCSUxJVFkgPSBOQU1FU1BBQ0VfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19DTElFTlRfREVQRU5ERU5DWSA9IE5BTUVTUEFDRV9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVTUEFDRV9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX01FTUJFUiA9IE5BTUVTUEFDRV9fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19PV05FRF9SVUxFID0gTkFNRVNQQUNFX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX0lNUE9SVEVEX01FTUJFUiA9IE5BTUVTUEFDRV9fSU1QT1JURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fRUxFTUVOVF9JTVBPUlQgPSBOQU1FU1BBQ0VfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fUEFDS0FHRV9JTVBPUlQgPSBOQU1FU1BBQ0VfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19JU19MRUFGID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fQ09OVEFJTkVSID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fT1VUR09JTkcgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19JTkNPTUlORyA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBDb21wb3NpdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fSVNfQ09NUE9TSVRFID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyA1OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIE9ydGhvZ29uYWw8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fSVNfT1JUSE9HT05BTCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgNjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBTaW1wbGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fSVNfU0lNUExFID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyA3OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFN1Ym1hY2hpbmUgU3RhdGU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fSVNfU1VCTUFDSElORV9TVEFURSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgODsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJtYWNoaW5lPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX1NVQk1BQ0hJTkUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29ubmVjdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX0NPTk5FQ1RJT04gPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDEwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBTdGF0ZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19SRURFRklORURfU1RBVEUgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDExOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlZmVycmFibGUgVHJpZ2dlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX0RFRkVSUkFCTEVfVFJJR0dFUiA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVnaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTVEFURV9fUkVHSU9OID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbnRyeTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19FTlRSWSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhpdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19FWElUID0gTkFNRVNQQUNFX0ZFQVRVUkVfQ09VTlQgKyAxNTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EbyBBY3Rpdml0eTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX19ET19BQ1RJVklUWSA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgSW52YXJpYW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU1RBVEVfX1NUQVRFX0lOVkFSSUFOVCA9IE5BTUVTUEFDRV9GRUFUVVJFX0NPVU5UICsgMTc7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlN0YXRlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNUQVRFX0ZFQVRVUkVfQ09VTlQgPSBOQU1FU1BBQ0VfRkVBVFVSRV9DT1VOVCArIDE4OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0VBTk5PVEFUSU9OUyA9IFZFUlRFWF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19PV05FRF9FTEVNRU5UID0gVkVSVEVYX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX09XTkVSID0gVkVSVEVYX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fT1dORURfQ09NTUVOVCA9IFZFUlRFWF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fVEVNUExBVEVfQklORElORyA9IFZFUlRFWF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gVkVSVEVYX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19OQU1FID0gVkVSVEVYX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX1FVQUxJRklFRF9OQU1FID0gVkVSVEVYX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX1ZJU0lCSUxJVFkgPSBWRVJURVhfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19DTElFTlRfREVQRU5ERU5DWSA9IFZFUlRFWF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX05BTUVfRVhQUkVTU0lPTiA9IFZFUlRFWF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fQ09OVEFJTkVSID0gVkVSVEVYX19DT05UQUlORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19PVVRHT0lORyA9IFZFUlRFWF9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19JTkNPTUlORyA9IFZFUlRFWF9fSU5DT01JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RW50cnk8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19FTlRSWSA9IFZFUlRFWF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeGl0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fRVhJVCA9IFZFUlRFWF9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+Q29ubmVjdGlvbiBQb2ludCBSZWZlcmVuY2U8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfRkVBVFVSRV9DT1VOVCA9IFZFUlRFWF9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX0VBTk5PVEFUSU9OUyA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19PV05FRF9FTEVNRU5UID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX09XTkVSID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fT1dORURfQ09NTUVOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fVEVNUExBVEVfQklORElORyA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19OQU1FID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX1FVQUxJRklFRF9OQU1FID0gUkVERUZJTkFCTEVfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX1ZJU0lCSUxJVFkgPSBSRURFRklOQUJMRV9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19DTElFTlRfREVQRU5ERU5DWSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBSRURFRklOQUJMRV9FTEVNRU5UX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fSVNfTEVBRiA9IFJFREVGSU5BQkxFX0VMRU1FTlRfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+S2luZDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX0tJTkQgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19DT05UQUlORVIgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX1NPVVJDRSA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVFJBTlNJVElPTl9fVEFSR0VUID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgVHJhbnNpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX1JFREVGSU5FRF9UUkFOU0lUSU9OID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UcmlnZ2VyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19UUklHR0VSID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HdWFyZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fX0dVQVJEID0gUkVERUZJTkFCTEVfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgNjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FZmZlY3Q8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUUkFOU0lUSU9OX19FRkZFQ1QgPSBSRURFRklOQUJMRV9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA3OwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5UcmFuc2l0aW9uPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCA9IFJFREVGSU5BQkxFX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDg7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fRUFOTk9UQVRJT05TID0gU1RBVEVfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fT1dORURfRUxFTUVOVCA9IFNUQVRFX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX09XTkVSID0gU1RBVEVfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19PV05FRF9DT01NRU5UID0gU1RBVEVfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX1RFTVBMQVRFX0JJTkRJTkcgPSBTVEFURV9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gU1RBVEVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX05BTUUgPSBTVEFURV9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19RVUFMSUZJRURfTkFNRSA9IFNUQVRFX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX1ZJU0lCSUxJVFkgPSBTVEFURV9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX0NMSUVOVF9ERVBFTkRFTkNZID0gU1RBVEVfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19OQU1FX0VYUFJFU1NJT04gPSBTVEFURV9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX01FTUJFUiA9IFNUQVRFX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX09XTkVEX1JVTEUgPSBTVEFURV9fT1dORURfUlVMRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19JTVBPUlRFRF9NRU1CRVIgPSBTVEFURV9fSU1QT1JURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fRUxFTUVOVF9JTVBPUlQgPSBTVEFURV9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19QQUNLQUdFX0lNUE9SVCA9IFNUQVRFX19QQUNLQUdFX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX1JFREVGSU5JVElPTl9DT05URVhUID0gU1RBVEVfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fSVNfTEVBRiA9IFNUQVRFX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fQ09OVEFJTkVSID0gU1RBVEVfX0NPTlRBSU5FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX09VVEdPSU5HID0gU1RBVEVfX09VVEdPSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fSU5DT01JTkcgPSBTVEFURV9fSU5DT01JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQ29tcG9zaXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX0lTX0NPTVBPU0lURSA9IFNUQVRFX19JU19DT01QT1NJVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgT3J0aG9nb25hbDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19JU19PUlRIT0dPTkFMID0gU1RBVEVfX0lTX09SVEhPR09OQUw7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU2ltcGxlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX0lTX1NJTVBMRSA9IFNUQVRFX19JU19TSU1QTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgU3VibWFjaGluZSBTdGF0ZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19JU19TVUJNQUNISU5FX1NUQVRFID0gU1RBVEVfX0lTX1NVQk1BQ0hJTkVfU1RBVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VibWFjaGluZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19TVUJNQUNISU5FID0gU1RBVEVfX1NVQk1BQ0hJTkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29ubmVjdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX0NPTk5FQ1RJT04gPSBTVEFURV9fQ09OTkVDVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fUkVERUZJTkVEX1NUQVRFID0gU1RBVEVfX1JFREVGSU5FRF9TVEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZWZlcnJhYmxlIFRyaWdnZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19ERUZFUlJBQkxFX1RSSUdHRVIgPSBTVEFURV9fREVGRVJSQUJMRV9UUklHR0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZ2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX1JFR0lPTiA9IFNUQVRFX19SRUdJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RW50cnk8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fRU5UUlkgPSBTVEFURV9fRU5UUlk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhpdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX19FWElUID0gU1RBVEVfX0VYSVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RG8gQWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBGSU5BTF9TVEFURV9fRE9fQUNUSVZJVFkgPSBTVEFURV9fRE9fQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgSW52YXJpYW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRklOQUxfU1RBVEVfX1NUQVRFX0lOVkFSSUFOVCA9IFNUQVRFX19TVEFURV9JTlZBUklBTlQ7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkZpbmFsIFN0YXRlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEZJTkFMX1NUQVRFX0ZFQVRVUkVfQ09VTlQgPSBTVEFURV9GRUFUVVJFX0NPVU5UICsgMDsKKwlpbnQgRVhDRVBUSU9OX0hBTkRMRVJfRkVBVFVSRV9DT1VOVCA9IEVMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDQ7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTQ1MjU2LDcgKzQ1MjU2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RGVwbG95bWVudCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBERVBMT1lNRU5UID0gMjA3OworCWludCBERVBMT1lNRU5UID0gMjE2OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRGVwbG95ZWRBcnRpZmFjdEltcGwgPGVtPkRlcGxveWVkIEFydGlmYWN0PC9lbT59JyBjbGFzcy4KQEAgLTQ1MjY2LDcgKzQ1MjY2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RGVwbG95ZWRBcnRpZmFjdCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVCA9IDIwODsKKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1QgPSAyMTc7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5EZXBsb3ltZW50VGFyZ2V0SW1wbCA8ZW0+RGVwbG95bWVudCBUYXJnZXQ8L2VtPn0nIGNsYXNzLgpAQCAtNDUyNzYsNyArNDUyNzYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXREZXBsb3ltZW50VGFyZ2V0KCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IERFUExPWU1FTlRfVEFSR0VUID0gMjA5OworCWludCBERVBMT1lNRU5UX1RBUkdFVCA9IDIxODsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLk5vZGVJbXBsIDxlbT5Ob2RlPC9lbT59JyBjbGFzcy4KQEAgLTQ1Mjg2LDcgKzQ1Mjg2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Tm9kZSgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBOT0RFID0gMjEwOworCWludCBOT0RFID0gMjE5OwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRGV2aWNlSW1wbCA8ZW0+RGV2aWNlPC9lbT59JyBjbGFzcy4KQEAgLTQ1Mjk2LDcgKzQ1Mjk2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RGV2aWNlKCkKIAkgKiBAZ2VuZXJhdGVkCiAJICovCi0JaW50IERFVklDRSA9IDIxMTsKKwlpbnQgREVWSUNFID0gMjIwOwogCiAJLyoqCiAJICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS51bWwyLmltcGwuRXhlY3V0aW9uRW52aXJvbm1lbnRJbXBsIDxlbT5FeGVjdXRpb24gRW52aXJvbm1lbnQ8L2VtPn0nIGNsYXNzLgpAQCAtNDUzMDYsNyArNDUzMDYsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRFeGVjdXRpb25FbnZpcm9ubWVudCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlQgPSAyMTI7CisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVCA9IDIyMTsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5pbXBsLkNvbW11bmljYXRpb25QYXRoSW1wbCA8ZW0+Q29tbXVuaWNhdGlvbiBQYXRoPC9lbT59JyBjbGFzcy4KQEAgLTQ1MzE2LDcgKzQ1MzE2LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q29tbXVuaWNhdGlvblBhdGgoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIID0gMjEzOworCWludCBDT01NVU5JQ0FUSU9OX1BBVEggPSAyMjI7CiAKIAkvKioKIAkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KQEAgLTQ1ODM4LDU1NDEgKzQ1ODM4LDYgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICogQG9yZGVyZWQKIAkgKi8KLQlpbnQgUFJPVE9DT0xfQ09ORk9STUFOQ0VfX0VBTk5PVEFUSU9OUyA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19PV05FRF9FTEVNRU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfQ09ORk9STUFOQ0VfX09XTkVSID0gRElSRUNURURfUkVMQVRJT05TSElQX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fT1dORURfQ09NTUVOVCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWxhdGVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19SRUxBVEVEX0VMRU1FTlQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX1JFTEFURURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Tb3VyY2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19TT1VSQ0UgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX1NPVVJDRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19UQVJHRVQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX1RBUkdFVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TcGVjaWZpYyBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19TUEVDSUZJQ19NQUNISU5FID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWwgTWFjaGluZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19HRU5FUkFMX01BQ0hJTkUgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlByb3RvY29sIENvbmZvcm1hbmNlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX0ZFQVRVUkVfQ09VTlQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19FQU5OT1RBVElPTlMgPSBTVEFURV9NQUNISU5FX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfRUxFTUVOVCA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FUiA9IFNUQVRFX01BQ0hJTkVfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX0NPTU1FTlQgPSBTVEFURV9NQUNISU5FX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1RFTVBMQVRFX0JJTkRJTkcgPSBTVEFURV9NQUNISU5FX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fTkFNRSA9IFNUQVRFX01BQ0hJTkVfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19RVUFMSUZJRURfTkFNRSA9IFNUQVRFX01BQ0hJTkVfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19WSVNJQklMSVRZID0gU1RBVEVfTUFDSElORV9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBTVEFURV9NQUNISU5FX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19OQU1FX0VYUFJFU1NJT04gPSBTVEFURV9NQUNISU5FX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19NRU1CRVIgPSBTVEFURV9NQUNISU5FX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfUlVMRSA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1JVTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19JTVBPUlRFRF9NRU1CRVIgPSBTVEFURV9NQUNISU5FX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0VMRU1FTlRfSU1QT1JUID0gU1RBVEVfTUFDSElORV9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BBQ0tBR0VfSU1QT1JUID0gU1RBVEVfTUFDSElORV9fUEFDS0FHRV9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fVEVNUExBVEVfUEFSQU1FVEVSID0gU1RBVEVfTUFDSElORV9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dOSU5HX1BBUkFNRVRFUiA9IFNUQVRFX01BQ0hJTkVfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gU1RBVEVfTUFDSElORV9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QQUNLQUdFID0gU1RBVEVfTUFDSElORV9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBTVEFURV9NQUNISU5FX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fSVNfTEVBRiA9IFNUQVRFX01BQ0hJTkVfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fRkVBVFVSRSA9IFNUQVRFX01BQ0hJTkVfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19JU19BQlNUUkFDVCA9IFNUQVRFX01BQ0hJTkVfX0lTX0FCU1RSQUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0lOSEVSSVRFRF9NRU1CRVIgPSBTVEFURV9NQUNISU5FX19JTkhFUklURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0dFTkVSQUwgPSBTVEFURV9NQUNISU5FX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19HRU5FUkFMSVpBVElPTiA9IFNUQVRFX01BQ0hJTkVfX0dFTkVSQUxJWkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fQVRUUklCVVRFID0gU1RBVEVfTUFDSElORV9fQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19SRURFRklORURfQ0xBU1NJRklFUiA9IFNUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BPV0VSVFlQRV9FWFRFTlQgPSBTVEFURV9NQUNISU5FX19QT1dFUlRZUEVfRVhURU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fU1VCU1RJVFVUSU9OID0gU1RBVEVfTUFDSElORV9fU1VCU1RJVFVUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9VU0VfQ0FTRSA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19VU0VfQ0FTRSA9IFNUQVRFX01BQ0hJTkVfX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUkVQUkVTRU5UQVRJT04gPSBTVEFURV9NQUNISU5FX19SRVBSRVNFTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PQ0NVUlJFTkNFID0gU1RBVEVfTUFDSElORV9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBCZWhhdmlvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfQkVIQVZJT1IgPSBTVEFURV9NQUNISU5FX19PV05FRF9CRUhBVklPUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGFzc2lmaWVyIEJlaGF2aW9yPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fQ0xBU1NJRklFUl9CRUhBVklPUiA9IFNUQVRFX01BQ0hJTkVfX0NMQVNTSUZJRVJfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wbGVtZW50YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0lNUExFTUVOVEFUSU9OID0gU1RBVEVfTUFDSElORV9fSU1QTEVNRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVHJpZ2dlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfVFJJR0dFUiA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1RSSUdHRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgU3RhdGUgTWFjaGluZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfU1RBVEVfTUFDSElORSA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1NUQVRFX01BQ0hJTkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9BVFRSSUJVVEUgPSBTVEFURV9NQUNISU5FX19PV05FRF9BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUEFSVCA9IFNUQVRFX01BQ0hJTkVfX1BBUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUk9MRSA9IFNUQVRFX01BQ0hJTkVfX1JPTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9DT05ORUNUT1IgPSBTVEFURV9NQUNISU5FX19PV05FRF9DT05ORUNUT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfUE9SVCA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgT3BlcmF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9PUEVSQVRJT04gPSBTVEFURV9NQUNISU5FX19PV05FRF9PUEVSQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgQ2xhc3M8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1NVUEVSX0NMQVNTID0gU1RBVEVfTUFDSElORV9fU1VQRVJfQ0xBU1M7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmVzdGVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX05FU1RFRF9DTEFTU0lGSUVSID0gU1RBVEVfTUFDSElORV9fTkVTVEVEX0NMQVNTSUZJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXh0ZW5zaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19FWFRFTlNJT04gPSBTVEFURV9NQUNISU5FX19FWFRFTlNJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWN0aXZlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fSVNfQUNUSVZFID0gU1RBVEVfTUFDSElORV9fSVNfQUNUSVZFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJlY2VwdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfUkVDRVBUSU9OID0gU1RBVEVfTUFDSElORV9fT1dORURfUkVDRVBUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIFJlZW50cmFudDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0lTX1JFRU5UUkFOVCA9IFNUQVRFX01BQ0hJTkVfX0lTX1JFRU5UUkFOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0NPTlRFWFQgPSBTVEFURV9NQUNISU5FX19DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUkVERUZJTkVEX0JFSEFWSU9SID0gU1RBVEVfTUFDSElORV9fUkVERUZJTkVEX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNwZWNpZmljYXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19TUEVDSUZJQ0FUSU9OID0gU1RBVEVfTUFDSElORV9fU1BFQ0lGSUNBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BBUkFNRVRFUiA9IFNUQVRFX01BQ0hJTkVfX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Gb3JtYWwgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19GT1JNQUxfUEFSQU1FVEVSID0gU1RBVEVfTUFDSElORV9fRk9STUFMX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXR1cm4gUmVzdWx0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19SRVRVUk5fUkVTVUxUID0gU1RBVEVfTUFDSElORV9fUkVUVVJOX1JFU1VMVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QcmVjb25kaXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BSRUNPTkRJVElPTiA9IFNUQVRFX01BQ0hJTkVfX1BSRUNPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3N0Y29uZGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QT1NUQ09ORElUSU9OID0gU1RBVEVfTUFDSElORV9fUE9TVENPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBQYXJhbWV0ZXIgU2V0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9QQVJBTUVURVJfU0VUID0gU1RBVEVfTUFDSElORV9fT1dORURfUEFSQU1FVEVSX1NFVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWdpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1JFR0lPTiA9IFNUQVRFX01BQ0hJTkVfX1JFR0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25uZWN0aW9uIFBvaW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19DT05ORUNUSU9OX1BPSU5UID0gU1RBVEVfTUFDSElORV9fQ09OTkVDVElPTl9QT0lOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbmRlZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fRVhURU5ERURfU1RBVEVfTUFDSElORSA9IFNUQVRFX01BQ0hJTkVfX0VYVEVOREVEX1NUQVRFX01BQ0hJTkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3RhdGUgTWFjaGluZSByZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19TVEFURV9NQUNISU5FX1JFREVGSU5JVElPTl9DT05URVhUID0gU1RBVEVfTUFDSElORV9fU1RBVEVfTUFDSElORV9SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25mb3JtYW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fQ09ORk9STUFOQ0UgPSBTVEFURV9NQUNISU5FX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Qcm90b2NvbCBTdGF0ZSBNYWNoaW5lPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfRkVBVFVSRV9DT1VOVCA9IFNUQVRFX01BQ0hJTkVfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19FQU5OT1RBVElPTlMgPSBUUkFOU0lUSU9OX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fT1dORURfRUxFTUVOVCA9IFRSQU5TSVRJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19PV05FUiA9IFRSQU5TSVRJT05fX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX09XTkVEX0NPTU1FTlQgPSBUUkFOU0lUSU9OX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1RFTVBMQVRFX0JJTkRJTkcgPSBUUkFOU0lUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFRSQU5TSVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fTkFNRSA9IFRSQU5TSVRJT05fX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19RVUFMSUZJRURfTkFNRSA9IFRSQU5TSVRJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19WSVNJQklMSVRZID0gVFJBTlNJVElPTl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBUUkFOU0lUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19OQU1FX0VYUFJFU1NJT04gPSBUUkFOU0lUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1JFREVGSU5JVElPTl9DT05URVhUID0gVFJBTlNJVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX0lTX0xFQUYgPSBUUkFOU0lUSU9OX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPktpbmQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19LSU5EID0gVFJBTlNJVElPTl9fS0lORDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250YWluZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fQ09OVEFJTkVSID0gVFJBTlNJVElPTl9fQ09OVEFJTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1NPVVJDRSA9IFRSQU5TSVRJT05fX1NPVVJDRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UYXJnZXQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19UQVJHRVQgPSBUUkFOU0lUSU9OX19UQVJHRVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIFRyYW5zaXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19SRURFRklORURfVFJBTlNJVElPTiA9IFRSQU5TSVRJT05fX1JFREVGSU5FRF9UUkFOU0lUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRyaWdnZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1RSSUdHRVIgPSBUUkFOU0lUSU9OX19UUklHR0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkd1YXJkPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fR1VBUkQgPSBUUkFOU0lUSU9OX19HVUFSRDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FZmZlY3Q8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19FRkZFQ1QgPSBUUkFOU0lUSU9OX19FRkZFQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9zdCBDb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19QT1NUX0NPTkRJVElPTiA9IFRSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVmZXJyZWQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1JFRkVSUkVEID0gVFJBTlNJVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QcmUgQ29uZGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fUFJFX0NPTkRJVElPTiA9IFRSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlByb3RvY29sIFRyYW5zaXRpb248L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9GRUFUVVJFX0NPVU5UID0gVFJBTlNJVElPTl9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfRVhQUkVTU0lPTl9fRUFOTk9UQVRJT05TID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfRVhQUkVTU0lPTl9fT1dORURfRUxFTUVOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX09XTkVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9FWFBSRVNTSU9OX19PV05FRF9DT01NRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX1RFTVBMQVRFX0JJTkRJTkcgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfRVhQUkVTU0lPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX05BTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9FWFBSRVNTSU9OX19RVUFMSUZJRURfTkFNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX1ZJU0lCSUxJVFkgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9FWFBSRVNTSU9OX19OQU1FX0VYUFJFU1NJT04gPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfRVhQUkVTU0lPTl9fVFlQRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9FWFBSRVNTSU9OX19URU1QTEFURV9QQVJBTUVURVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX09XTklOR19QQVJBTUVURVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZpcnN0IFRpbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fX0ZJUlNUX1RJTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV2ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9FWFBSRVNTSU9OX19FVkVOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlRpbWUgRXhwcmVzc2lvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0VYUFJFU1NJT05fRkVBVFVSRV9DT1VOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9fRUFOTk9UQVRJT05TID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19PV05FRF9FTEVNRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19PV05FUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19PV05FRF9DT01NRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9fVEVNUExBVEVfQklORElORyA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX05BTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX1FVQUxJRklFRF9OQU1FID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19WSVNJQklMSVRZID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX05BTUVfRVhQUkVTU0lPTiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX1RZUEUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19UWVBFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19URU1QTEFURV9QQVJBTUVURVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Rmlyc3QgVGltZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX19GSVJTVF9USU1FID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FdmVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fX0VWRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RHVyYXRpb248L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fRkVBVFVSRV9DT1VOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fRUFOTk9UQVRJT05TID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19PV05FRF9FTEVNRU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19PV05FUiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19PV05FRF9DT01NRU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fVEVNUExBVEVfQklORElORyA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX05BTUUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX1FVQUxJRklFRF9OQU1FID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19WSVNJQklMSVRZID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX05BTUVfRVhQUkVTU0lPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX1JFREVGSU5JVElPTl9DT05URVhUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JU19MRUFGID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09VVEdPSU5HID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTkNPTUlORyA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOQ09NSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fSU5fR1JPVVAgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9HUk9VUDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fQUNUSVZJVFkgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19BQ1RJVklUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX1JFREVGSU5FRF9FTEVNRU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fUkVERUZJTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTl9TVFJVQ1RVUkVEX05PREUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9TVFJVQ1RVUkVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fSU5fUEFSVElUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5fUEFSVElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5IYW5kbGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fSEFORExFUiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0hBTkRMRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0VGRkVDVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0VGRkVDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRwdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19PVVRQVVQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PVVRQVVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTlBVVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOUFVUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fQ09OVEVYVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUHJlY29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fTE9DQUxfUFJFQ09ORElUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fTE9DQUxfUFJFQ09ORElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFBvc3Rjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19MT0NBTF9QT1NUQ09ORElUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fTE9DQUxfUE9TVENPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdHJ1Y3R1cmFsIEZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fU1RSVUNUVVJBTF9GRUFUVVJFID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fU1RSVUNUVVJBTF9GRUFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9iamVjdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19PQkpFQ1QgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PQkpFQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmFsdWU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fVkFMVUUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19WQUxVRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Ob3c8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19OT1cgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5UaW1lIE9ic2VydmF0aW9uIEFjdGlvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9GRUFUVVJFX0NPVU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX19FQU5OT1RBVElPTlMgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX09XTkVEX0VMRU1FTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX09XTkVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX09XTkVEX0NPTU1FTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX19URU1QTEFURV9CSU5ESU5HID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fTkFNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fUVVBTElGSUVEX05BTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX1ZJU0lCSUxJVFkgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fTkFNRV9FWFBSRVNTSU9OID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9fVFlQRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX19PV05JTkdfUEFSQU1FVEVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NaW48L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX19NSU4gPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1heDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfX01BWCA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkludGVydmFsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX0ZFQVRVUkVfQ09VTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fSU5URVJWQUxfX0VBTk5PVEFUSU9OUyA9IElOVEVSVkFMX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fSU5URVJWQUxfX09XTkVEX0VMRU1FTlQgPSBJTlRFUlZBTF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19PV05FUiA9IElOVEVSVkFMX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9fT1dORURfQ09NTUVOVCA9IElOVEVSVkFMX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19URU1QTEFURV9CSU5ESU5HID0gSU5URVJWQUxfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fSU5URVJWQUxfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IElOVEVSVkFMX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19OQU1FID0gSU5URVJWQUxfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9fUVVBTElGSUVEX05BTUUgPSBJTlRFUlZBTF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19WSVNJQklMSVRZID0gSU5URVJWQUxfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19DTElFTlRfREVQRU5ERU5DWSA9IElOVEVSVkFMX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9fTkFNRV9FWFBSRVNTSU9OID0gSU5URVJWQUxfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fSU5URVJWQUxfX1RZUEUgPSBJTlRFUlZBTF9fVFlQRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9fVEVNUExBVEVfUEFSQU1FVEVSID0gSU5URVJWQUxfX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19PV05JTkdfUEFSQU1FVEVSID0gSU5URVJWQUxfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWluPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9fTUlOID0gSU5URVJWQUxfX01JTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NYXg8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0lOVEVSVkFMX19NQVggPSBJTlRFUlZBTF9fTUFYOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EdXJhdGlvbiBJbnRlcnZhbDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9JTlRFUlZBTF9GRUFUVVJFX0NPVU5UID0gSU5URVJWQUxfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19FQU5OT1RBVElPTlMgPSBDT05TVFJBSU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfRUxFTUVOVCA9IENPTlNUUkFJTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FUiA9IENPTlNUUkFJTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQgPSBDT05TVFJBSU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX1RFTVBMQVRFX0JJTkRJTkcgPSBDT05TVFJBSU5UX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRSA9IENPTlNUUkFJTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19RVUFMSUZJRURfTkFNRSA9IENPTlNUUkFJTlRfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19WSVNJQklMSVRZID0gQ09OU1RSQUlOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBDT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FX0VYUFJFU1NJT04gPSBDT05TVFJBSU5UX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUiA9IENPTlNUUkFJTlRfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gQ09OU1RSQUlOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19DT05URVhUID0gQ09OU1RSQUlOVF9fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lc3BhY2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRVNQQUNFID0gQ09OU1RSQUlOVF9fTkFNRVNQQUNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNwZWNpZmljYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19TUEVDSUZJQ0FUSU9OID0gQ09OU1RSQUlOVF9fU1BFQ0lGSUNBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25zdHJhaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19DT05TVFJBSU5FRF9FTEVNRU5UID0gQ09OU1RSQUlOVF9fQ09OU1RSQUlORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW50ZXJ2YWwgQ29uc3RyYWludDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX0ZFQVRVUkVfQ09VTlQgPSBDT05TVFJBSU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9DT05TVFJBSU5UX19FQU5OT1RBVElPTlMgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9DT05TVFJBSU5UX19PV05FRF9FTEVNRU5UID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fT1dORVIgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fVEVNUExBVEVfQklORElORyA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9DT05TVFJBSU5UX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fTkFNRSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfX1FVQUxJRklFRF9OQU1FID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fVklTSUJJTElUWSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1RFTVBMQVRFX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9DT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fQ09OVEVYVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZXNwYWNlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fTkFNRVNQQUNFID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRVNQQUNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNwZWNpZmljYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfX1NQRUNJRklDQVRJT04gPSBJTlRFUlZBTF9DT05TVFJBSU5UX19TUEVDSUZJQ0FUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnN0cmFpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfQ09OU1RSQUlOVF9fQ09OU1RSQUlORURfRUxFTUVOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NPTlNUUkFJTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlRpbWUgQ29uc3RyYWludDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0NPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0lOVEVSVkFMX19FQU5OT1RBVElPTlMgPSBJTlRFUlZBTF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfSU5URVJWQUxfX09XTkVEX0VMRU1FTlQgPSBJTlRFUlZBTF9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfSU5URVJWQUxfX09XTkVSID0gSU5URVJWQUxfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfSU5URVJWQUxfX09XTkVEX0NPTU1FTlQgPSBJTlRFUlZBTF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0lOVEVSVkFMX19URU1QTEFURV9CSU5ESU5HID0gSU5URVJWQUxfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gSU5URVJWQUxfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fTkFNRSA9IElOVEVSVkFMX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fUVVBTElGSUVEX05BTUUgPSBJTlRFUlZBTF9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfSU5URVJWQUxfX1ZJU0lCSUxJVFkgPSBJTlRFUlZBTF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBJTlRFUlZBTF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fTkFNRV9FWFBSRVNTSU9OID0gSU5URVJWQUxfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fVFlQRSA9IElOVEVSVkFMX19UWVBFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFRJTUVfSU5URVJWQUxfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IElOVEVSVkFMX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0lOVEVSVkFMX19PV05JTkdfUEFSQU1FVEVSID0gSU5URVJWQUxfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWluPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0lOVEVSVkFMX19NSU4gPSBJTlRFUlZBTF9fTUlOOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1heDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgVElNRV9JTlRFUlZBTF9fTUFYID0gSU5URVJWQUxfX01BWDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VGltZSBJbnRlcnZhbDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBUSU1FX0lOVEVSVkFMX0ZFQVRVUkVfQ09VTlQgPSBJTlRFUlZBTF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fRUFOTk9UQVRJT05TID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fT1dORURfRUxFTUVOVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVSID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19PV05FRF9DT01NRU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX1RFTVBMQVRFX0JJTkRJTkcgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX05BTUUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19RVUFMSUZJRURfTkFNRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX1ZJU0lCSUxJVFkgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19OQU1FX0VYUFJFU1NJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19JU19MRUFGID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRnb2luZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19PVVRHT0lORyA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09VVEdPSU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluY29taW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lOQ09NSU5HID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5DT01JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fSU5fR1JPVVAgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9HUk9VUDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0FDVElWSVRZID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fUkVERUZJTkVEX0VMRU1FTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19SRURFRklORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19JTl9TVFJVQ1RVUkVEX05PREUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9TVFJVQ1RVUkVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gUGFydGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lOX1BBUlRJVElPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX1BBUlRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBJbnRlcnJ1cHRpYmxlIFJlZ2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkhhbmRsZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fSEFORExFUiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0hBTkRMRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19FRkZFQ1QgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19FRkZFQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0cHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX09VVFBVVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09VVFBVVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19JTlBVVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOUFVUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0NPTlRFWFQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxvY2FsIFByZWNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19MT0NBTF9QUkVDT05ESVRJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19MT0NBTF9QUkVDT05ESVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUG9zdGNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19MT0NBTF9QT1NUQ09ORElUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fTE9DQUxfUE9TVENPTkRJVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdHJ1Y3R1cmFsIEZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX1NUUlVDVFVSQUxfRkVBVFVSRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1NUUlVDVFVSQUxfRkVBVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PYmplY3Q8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX09CSkVDVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09CSkVDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fVkFMVUUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19WQUxVRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EdXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19EVVJBVElPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkR1cmF0aW9uIE9ic2VydmF0aW9uIEFjdGlvbjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fRkVBVFVSRV9DT1VOVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19FQU5OT1RBVElPTlMgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fT1dORURfRUxFTUVOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19PV05FUiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX1RFTVBMQVRFX0JJTkRJTkcgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fTkFNRSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19RVUFMSUZJRURfTkFNRSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19WSVNJQklMSVRZID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19OQU1FX0VYUFJFU1NJT04gPSBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19DT05URVhUID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lc3BhY2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fTkFNRVNQQUNFID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRVNQQUNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNwZWNpZmljYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19TUEVDSUZJQ0FUSU9OID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fU1BFQ0lGSUNBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25zdHJhaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19DT05TVFJBSU5FRF9FTEVNRU5UID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fQ09OU1RSQUlORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RHVyYXRpb24gQ29uc3RyYWludDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEVVJBVElPTl9DT05TVFJBSU5UX0ZFQVRVUkVfQ09VTlQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19FQU5OT1RBVElPTlMgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19PV05FRF9FTEVNRU5UID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fT1dORVIgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX09XTkVEX0NPTU1FTlQgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fVEVNUExBVEVfQklORElORyA9IENFTlRSQUxfQlVGRkVSX05PREVfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fTkFNRSA9IENFTlRSQUxfQlVGRkVSX05PREVfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX1FVQUxJRklFRF9OQU1FID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fVklTSUJJTElUWSA9IENFTlRSQUxfQlVGRkVSX05PREVfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX05BTUVfRVhQUkVTU0lPTiA9IENFTlRSQUxfQlVGRkVSX05PREVfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IENFTlRSQUxfQlVGRkVSX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX0lTX0xFQUYgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX09VVEdPSU5HID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1VUR09JTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fSU5DT01JTkcgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTkNPTUlORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19JTl9HUk9VUCA9IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX0dST1VQOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fQUNUSVZJVFkgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19BQ1RJVklUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREFUQV9TVE9SRV9OT0RFX19SRURFRklORURfRUxFTUVOVCA9IENFTlRSQUxfQlVGRkVSX05PREVfX1JFREVGSU5FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERSA9IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX1NUUlVDVFVSRURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fSU5fUEFSVElUSU9OID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fUEFSVElUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fVFlQRSA9IENFTlRSQUxfQlVGRkVSX05PREVfX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3JkZXJpbmc8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX09SREVSSU5HID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fT1JERVJJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXBwZXIgQm91bmQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX1VQUEVSX0JPVU5EID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVVBQRVJfQk9VTkQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RhdGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9fSU5fU1RBVEUgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTl9TVEFURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TZWxlY3Rpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBEQVRBX1NUT1JFX05PREVfX1NFTEVDVElPTiA9IENFTlRSQUxfQlVGRkVSX05PREVfX1NFTEVDVElPTjsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RGF0YSBTdG9yZSBOb2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERBVEFfU1RPUkVfTk9ERV9GRUFUVVJFX0NPVU5UID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19FQU5OT1RBVElPTlMgPSBBQ1RJVklUWV9HUk9VUF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19PV05FRF9FTEVNRU5UID0gQUNUSVZJVFlfR1JPVVBfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fT1dORVIgPSBBQ1RJVklUWV9HUk9VUF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX09XTkVEX0NPTU1FTlQgPSBBQ1RJVklUWV9HUk9VUF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19TVVBFUl9HUk9VUCA9IEFDVElWSVRZX0dST1VQX19TVVBFUl9HUk9VUDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BY3Rpdml0eSBHcm91cCBhY3Rpdml0eTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fQUNUSVZJVFlfR1JPVVBfQUNUSVZJVFkgPSBBQ1RJVklUWV9HUk9VUF9fQUNUSVZJVFlfR1JPVVBfQUNUSVZJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW50ZXJydXB0aW5nIEVkZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19JTlRFUlJVUFRJTkdfRURHRSA9IEFDVElWSVRZX0dST1VQX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnRhaW5lZCBOb2RlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fQ09OVEFJTkVEX05PREUgPSBBQ1RJVklUWV9HUk9VUF9GRUFUVVJFX0NPVU5UICsgMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW50ZXJydXB0aWJsZSBBY3Rpdml0eSBSZWdpb248L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fRkVBVFVSRV9DT1VOVCA9IEFDVElWSVRZX0dST1VQX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBBUkFNRVRFUl9TRVRfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fT1dORVIgPSBOQU1FRF9FTEVNRU5UX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQQVJBTUVURVJfU0VUX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQQVJBTUVURVJfU0VUX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBQQVJBTUVURVJfU0VUX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBBUkFNRVRFUl9TRVRfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fVklTSUJJTElUWSA9IE5BTUVEX0VMRU1FTlRfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBBUkFNRVRFUl9TRVRfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9fUEFSQU1FVEVSID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFBBUkFNRVRFUl9TRVRfX0NPTkRJVElPTiA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlBhcmFtZXRlciBTZXQ8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUEFSQU1FVEVSX1NFVF9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX0VBTk5PVEFUSU9OUyA9IERFUEVOREVOQ1lfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19PV05FRF9FTEVNRU5UID0gREVQRU5ERU5DWV9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX09XTkVSID0gREVQRU5ERU5DWV9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9fT1dORURfQ09NTUVOVCA9IERFUEVOREVOQ1lfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9fVEVNUExBVEVfQklORElORyA9IERFUEVOREVOQ1lfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gREVQRU5ERU5DWV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19OQU1FID0gREVQRU5ERU5DWV9fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX1FVQUxJRklFRF9OQU1FID0gREVQRU5ERU5DWV9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX1ZJU0lCSUxJVFkgPSBERVBFTkRFTkNZX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19DTElFTlRfREVQRU5ERU5DWSA9IERFUEVOREVOQ1lfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX05BTUVfRVhQUkVTU0lPTiA9IERFUEVOREVOQ1lfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19URU1QTEFURV9QQVJBTUVURVIgPSBERVBFTkRFTkNZX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19PV05JTkdfUEFSQU1FVEVSID0gREVQRU5ERU5DWV9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBERVBFTkRFTkNZX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19SRUxBVEVEX0VMRU1FTlQgPSBERVBFTkRFTkNZX19SRUxBVEVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19TT1VSQ0UgPSBERVBFTkRFTkNZX19TT1VSQ0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19UQVJHRVQgPSBERVBFTkRFTkNZX19UQVJHRVQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19DTElFTlQgPSBERVBFTkRFTkNZX19DTElFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwcGxpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX1NVUFBMSUVSID0gREVQRU5ERU5DWV9fU1VQUExJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95ZWQgQXJ0aWZhY3Q8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfX0RFUExPWUVEX0FSVElGQUNUID0gREVQRU5ERU5DWV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhdGlvbjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX19MT0NBVElPTiA9IERFUEVOREVOQ1lfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29uZmlndXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9fQ09ORklHVVJBVElPTiA9IERFUEVOREVOQ1lfRkVBVFVSRV9DT1VOVCArIDI7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkRlcGxveW1lbnQ8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9GRUFUVVJFX0NPVU5UID0gREVQRU5ERU5DWV9GRUFUVVJFX0NPVU5UICsgMzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWUVEX0FSVElGQUNUX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX09XTkVEX0NPTU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWUVEX0FSVElGQUNUX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FRF9FTEVNRU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EZXBsb3llZCBBcnRpZmFjdDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lFRF9BUlRJRkFDVF9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfVEFSR0VUX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX09XTkVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX09XTkVSID0gTkFNRURfRUxFTUVOVF9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX09XTkVEX0NPTU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfVEFSR0VUX19URU1QTEFURV9CSU5ESU5HID0gTkFNRURfRUxFTUVOVF9fVEVNUExBVEVfQklORElORzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTkFNRURfRUxFTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fUVVBTElGSUVEX05BTUUgPSBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX1ZJU0lCSUxJVFkgPSBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FRF9FTEVNRU5UX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fTkFNRV9FWFBSRVNTSU9OID0gTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfVEFSR0VUX19ERVBMT1lNRU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3llZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVBMT1lNRU5UX1RBUkdFVF9fREVQTE9ZRURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkRlcGxveW1lbnQgVGFyZ2V0PC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFUExPWU1FTlRfVEFSR0VUX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fRUFOTk9UQVRJT05TID0gQ0xBU1NfX0VBTk5PVEFUSU9OUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19PV05FRF9FTEVNRU5UID0gQ0xBU1NfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19PV05FUiA9IENMQVNTX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19PV05FRF9DT01NRU5UID0gQ0xBU1NfX09XTkVEX0NPTU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fVEVNUExBVEVfQklORElORyA9IENMQVNTX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENMQVNTX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX05BTUUgPSBDTEFTU19fTkFNRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1FVQUxJRklFRF9OQU1FID0gQ0xBU1NfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19WSVNJQklMSVRZID0gQ0xBU1NfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0NMSUVOVF9ERVBFTkRFTkNZID0gQ0xBU1NfX0NMSUVOVF9ERVBFTkRFTkNZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX05BTUVfRVhQUkVTU0lPTiA9IENMQVNTX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19NRU1CRVIgPSBDTEFTU19fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX1JVTEUgPSBDTEFTU19fT1dORURfUlVMRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0lNUE9SVEVEX01FTUJFUiA9IENMQVNTX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0VMRU1FTlRfSU1QT1JUID0gQ0xBU1NfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19QQUNLQUdFX0lNUE9SVCA9IENMQVNTX19QQUNLQUdFX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19URU1QTEFURV9QQVJBTUVURVIgPSBDTEFTU19fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dOSU5HX1BBUkFNRVRFUiA9IENMQVNTX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IENMQVNTX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1BBQ0tBR0UgPSBDTEFTU19fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBDTEFTU19fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0lTX0xFQUYgPSBDTEFTU19fSVNfTEVBRjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19GRUFUVVJFID0gQ0xBU1NfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19JU19BQlNUUkFDVCA9IENMQVNTX19JU19BQlNUUkFDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19JTkhFUklURURfTUVNQkVSID0gQ0xBU1NfX0lOSEVSSVRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fR0VORVJBTCA9IENMQVNTX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19HRU5FUkFMSVpBVElPTiA9IENMQVNTX19HRU5FUkFMSVpBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0FUVFJJQlVURSA9IENMQVNTX19BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQ0xBU1NfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1BPV0VSVFlQRV9FWFRFTlQgPSBDTEFTU19fUE9XRVJUWVBFX0VYVEVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1NVQlNUSVRVVElPTiA9IENMQVNTX19TVUJTVElUVVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX1VTRV9DQVNFID0gQ0xBU1NfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19VU0VfQ0FTRSA9IENMQVNTX19VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1JFUFJFU0VOVEFUSU9OID0gQ0xBU1NfX1JFUFJFU0VOVEFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09DQ1VSUkVOQ0UgPSBDTEFTU19fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBCZWhhdmlvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dORURfQkVIQVZJT1IgPSBDTEFTU19fT1dORURfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3NpZmllciBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX0NMQVNTSUZJRVJfQkVIQVZJT1IgPSBDTEFTU19fQ0xBU1NJRklFUl9CRUhBVklPUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBsZW1lbnRhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fSU1QTEVNRU5UQVRJT04gPSBDTEFTU19fSU1QTEVNRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVHJpZ2dlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dORURfVFJJR0dFUiA9IENMQVNTX19PV05FRF9UUklHR0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX1NUQVRFX01BQ0hJTkUgPSBDTEFTU19fT1dORURfU1RBVEVfTUFDSElORTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX0FUVFJJQlVURSA9IENMQVNTX19PV05FRF9BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fUEFSVCA9IENMQVNTX19QQVJUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJvbGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX1JPTEUgPSBDTEFTU19fUk9MRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb25uZWN0b3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX09XTkVEX0NPTk5FQ1RPUiA9IENMQVNTX19PV05FRF9DT05ORUNUT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dORURfUE9SVCA9IENMQVNTX19PV05FRF9QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIE9wZXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dORURfT1BFUkFUSU9OID0gQ0xBU1NfX09XTkVEX09QRVJBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBDbGFzczwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fU1VQRVJfQ0xBU1MgPSBDTEFTU19fU1VQRVJfQ0xBU1M7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmVzdGVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfX05FU1RFRF9DTEFTU0lGSUVSID0gQ0xBU1NfX05FU1RFRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fRVhURU5TSU9OID0gQ0xBU1NfX0VYVEVOU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBBY3RpdmU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19JU19BQ1RJVkUgPSBDTEFTU19fSVNfQUNUSVZFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJlY2VwdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fT1dORURfUkVDRVBUSU9OID0gQ0xBU1NfX09XTkVEX1JFQ0VQVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3ltZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19ERVBMT1lNRU5UID0gQ0xBU1NfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTk9ERV9fREVQTE9ZRURfRUxFTUVOVCA9IENMQVNTX0ZFQVRVUkVfQ09VTlQgKyAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBOT0RFX19ORVNURURfTk9ERSA9IENMQVNTX0ZFQVRVUkVfQ09VTlQgKyAyOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Ob2RlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE5PREVfRkVBVFVSRV9DT1VOVCA9IENMQVNTX0ZFQVRVUkVfQ09VTlQgKyAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19FQU5OT1RBVElPTlMgPSBOT0RFX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19PV05FRF9FTEVNRU5UID0gTk9ERV9fT1dORURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fT1dORVIgPSBOT0RFX19PV05FUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX0NPTU1FTlQgPSBOT0RFX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fVEVNUExBVEVfQklORElORyA9IE5PREVfX1RFTVBMQVRFX0JJTkRJTkc7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBOT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fTkFNRSA9IE5PREVfX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1FVQUxJRklFRF9OQU1FID0gTk9ERV9fUVVBTElGSUVEX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fVklTSUJJTElUWSA9IE5PREVfX1ZJU0lCSUxJVFk7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOT0RFX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX05BTUVfRVhQUkVTU0lPTiA9IE5PREVfX05BTUVfRVhQUkVTU0lPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fTUVNQkVSID0gTk9ERV9fTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fT1dORURfUlVMRSA9IE5PREVfX09XTkVEX1JVTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX0lNUE9SVEVEX01FTUJFUiA9IE5PREVfX0lNUE9SVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FbGVtZW50IEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19FTEVNRU5UX0lNUE9SVCA9IE5PREVfX0VMRU1FTlRfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1BBQ0tBR0VfSU1QT1JUID0gTk9ERV9fUEFDS0FHRV9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19URU1QTEFURV9QQVJBTUVURVIgPSBOT0RFX19URU1QTEFURV9QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTklOR19QQVJBTUVURVIgPSBOT0RFX19PV05JTkdfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gTk9ERV9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1BBQ0tBR0UgPSBOT0RFX19QQUNLQUdFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1JFREVGSU5JVElPTl9DT05URVhUID0gTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fSVNfTEVBRiA9IE5PREVfX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19GRUFUVVJFID0gTk9ERV9fRkVBVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBBYnN0cmFjdDwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fSVNfQUJTVFJBQ1QgPSBOT0RFX19JU19BQlNUUkFDVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX0lOSEVSSVRFRF9NRU1CRVIgPSBOT0RFX19JTkhFUklURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fR0VORVJBTCA9IE5PREVfX0dFTkVSQUw7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbGl6YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fR0VORVJBTElaQVRJT04gPSBOT0RFX19HRU5FUkFMSVpBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fQVRUUklCVVRFID0gTk9ERV9fQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gTk9ERV9fUkVERUZJTkVEX0NMQVNTSUZJRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG93ZXJ0eXBlIEV4dGVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19QT1dFUlRZUEVfRVhURU5UID0gTk9ERV9fUE9XRVJUWVBFX0VYVEVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fU1VCU1RJVFVUSU9OID0gTk9ERV9fU1VCU1RJVFVUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX1VTRV9DQVNFID0gTk9ERV9fT1dORURfVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VXNlIENhc2U8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fVVNFX0NBU0UgPSBOT0RFX19VU0VfQ0FTRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fUkVQUkVTRU5UQVRJT04gPSBOT0RFX19SRVBSRVNFTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09DQ1VSUkVOQ0UgPSBOT0RFX19PQ0NVUlJFTkNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEJlaGF2aW9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX0JFSEFWSU9SID0gTk9ERV9fT1dORURfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3NpZmllciBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fQ0xBU1NJRklFUl9CRUhBVklPUiA9IE5PREVfX0NMQVNTSUZJRVJfQkVIQVZJT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wbGVtZW50YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fSU1QTEVNRU5UQVRJT04gPSBOT0RFX19JTVBMRU1FTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUcmlnZ2VyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX1RSSUdHRVIgPSBOT0RFX19PV05FRF9UUklHR0VSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fT1dORURfU1RBVEVfTUFDSElORSA9IE5PREVfX09XTkVEX1NUQVRFX01BQ0hJTkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX0FUVFJJQlVURSA9IE5PREVfX09XTkVEX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYXJ0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX1BBUlQgPSBOT0RFX19QQVJUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJvbGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fUk9MRSA9IE5PREVfX1JPTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX0NPTk5FQ1RPUiA9IE5PREVfX09XTkVEX0NPTk5FQ1RPUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBQb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX1BPUlQgPSBOT0RFX19PV05FRF9QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIE9wZXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19PV05FRF9PUEVSQVRJT04gPSBOT0RFX19PV05FRF9PUEVSQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgQ2xhc3M8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fU1VQRVJfQ0xBU1MgPSBOT0RFX19TVVBFUl9DTEFTUzsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19ORVNURURfQ0xBU1NJRklFUiA9IE5PREVfX05FU1RFRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19FWFRFTlNJT04gPSBOT0RFX19FWFRFTlNJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWN0aXZlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgREVWSUNFX19JU19BQ1RJVkUgPSBOT0RFX19JU19BQ1RJVkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUmVjZXB0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX09XTkVEX1JFQ0VQVElPTiA9IE5PREVfX09XTkVEX1JFQ0VQVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3ltZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBERVZJQ0VfX0RFUExPWU1FTlQgPSBOT0RFX19ERVBMT1lNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveWVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fREVQTE9ZRURfRUxFTUVOVCA9IE5PREVfX0RFUExPWUVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmVzdGVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9fTkVTVEVEX05PREUgPSBOT0RFX19ORVNURURfTk9ERTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RGV2aWNlPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IERFVklDRV9GRUFUVVJFX0NPVU5UID0gTk9ERV9GRUFUVVJFX0NPVU5UICsgMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fRUFOTk9UQVRJT05TID0gTk9ERV9fRUFOTk9UQVRJT05TOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfRUxFTUVOVCA9IE5PREVfX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVSID0gTk9ERV9fT1dORVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9DT01NRU5UID0gTk9ERV9fT1dORURfQ09NTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1RFTVBMQVRFX0JJTkRJTkcgPSBOT0RFX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX05BTUUgPSBOT0RFX19OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19RVUFMSUZJRURfTkFNRSA9IE5PREVfX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1ZJU0lCSUxJVFkgPSBOT0RFX19WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZID0gTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19OQU1FX0VYUFJFU1NJT04gPSBOT0RFX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX01FTUJFUiA9IE5PREVfX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVEX1JVTEUgPSBOT0RFX19PV05FRF9SVUxFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19JTVBPUlRFRF9NRU1CRVIgPSBOT0RFX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fRUxFTUVOVF9JTVBPUlQgPSBOT0RFX19FTEVNRU5UX0lNUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19QQUNLQUdFX0lNUE9SVCA9IE5PREVfX1BBQ0tBR0VfSU1QT1JUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gTk9ERV9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05JTkdfUEFSQU1FVEVSID0gTk9ERV9fT1dOSU5HX1BBUkFNRVRFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IE5PREVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19QQUNLQUdFID0gTk9ERV9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19SRURFRklOSVRJT05fQ09OVEVYVCA9IE5PREVfX1JFREVGSU5JVElPTl9DT05URVhUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0lTX0xFQUYgPSBOT0RFX19JU19MRUFGOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fRkVBVFVSRSA9IE5PREVfX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0lTX0FCU1RSQUNUID0gTk9ERV9fSVNfQUJTVFJBQ1Q7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19JTkhFUklURURfTUVNQkVSID0gTk9ERV9fSU5IRVJJVEVEX01FTUJFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0dFTkVSQUwgPSBOT0RFX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0dFTkVSQUxJWkFUSU9OID0gTk9ERV9fR0VORVJBTElaQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0FUVFJJQlVURSA9IE5PREVfX0FUVFJJQlVURTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19SRURFRklORURfQ0xBU1NJRklFUiA9IE5PREVfX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUE9XRVJUWVBFX0VYVEVOVCA9IE5PREVfX1BPV0VSVFlQRV9FWFRFTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1NVQlNUSVRVVElPTiA9IE5PREVfX1NVQlNUSVRVVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9VU0VfQ0FTRSA9IE5PREVfX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1VTRV9DQVNFID0gTk9ERV9fVVNFX0NBU0U7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1JFUFJFU0VOVEFUSU9OID0gTk9ERV9fUkVQUkVTRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PQ0NVUlJFTkNFID0gTk9ERV9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBCZWhhdmlvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9CRUhBVklPUiA9IE5PREVfX09XTkVEX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0NMQVNTSUZJRVJfQkVIQVZJT1IgPSBOT0RFX19DTEFTU0lGSUVSX0JFSEFWSU9SOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0lNUExFTUVOVEFUSU9OID0gTk9ERV9fSU1QTEVNRU5UQVRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVHJpZ2dlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9UUklHR0VSID0gTk9ERV9fT1dORURfVFJJR0dFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVEX1NUQVRFX01BQ0hJTkUgPSBOT0RFX19PV05FRF9TVEFURV9NQUNISU5FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEF0dHJpYnV0ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9BVFRSSUJVVEUgPSBOT0RFX19PV05FRF9BVFRSSUJVVEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19QQVJUID0gTk9ERV9fUEFSVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1JPTEUgPSBOT0RFX19ST0xFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbm5lY3RvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9DT05ORUNUT1IgPSBOT0RFX19PV05FRF9DT05ORUNUT1I7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9QT1JUID0gTk9ERV9fT1dORURfUE9SVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfT1BFUkFUSU9OID0gTk9ERV9fT1dORURfT1BFUkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIENsYXNzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1NVUEVSX0NMQVNTID0gTk9ERV9fU1VQRVJfQ0xBU1M7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmVzdGVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fTkVTVEVEX0NMQVNTSUZJRVIgPSBOT0RFX19ORVNURURfQ0xBU1NJRklFUjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fRVhURU5TSU9OID0gTk9ERV9fRVhURU5TSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFjdGl2ZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fSVNfQUNUSVZFID0gTk9ERV9fSVNfQUNUSVZFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJlY2VwdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9SRUNFUFRJT04gPSBOT0RFX19PV05FRF9SRUNFUFRJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95bWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19ERVBMT1lNRU5UID0gTk9ERV9fREVQTE9ZTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3llZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0RFUExPWUVEX0VMRU1FTlQgPSBOT0RFX19ERVBMT1lFRF9FTEVNRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX05FU1RFRF9OT0RFID0gTk9ERV9fTkVTVEVEX05PREU7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkV4ZWN1dGlvbiBFbnZpcm9ubWVudDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfRkVBVFVSRV9DT1VOVCA9IE5PREVfRkVBVFVSRV9DT1VOVCArIDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0VBTk5PVEFUSU9OUyA9IEFTU09DSUFUSU9OX19FQU5OT1RBVElPTlM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05FRF9FTEVNRU5UID0gQVNTT0NJQVRJT05fX09XTkVEX0VMRU1FTlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09XTkVSID0gQVNTT0NJQVRJT05fX09XTkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fT1dORURfQ09NTUVOVCA9IEFTU09DSUFUSU9OX19PV05FRF9DT01NRU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fVEVNUExBVEVfQklORElORyA9IEFTU09DSUFUSU9OX19URU1QTEFURV9CSU5ESU5HOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQVNTT0NJQVRJT05fX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19OQU1FID0gQVNTT0NJQVRJT05fX05BTUU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1FVQUxJRklFRF9OQU1FID0gQVNTT0NJQVRJT05fX1FVQUxJRklFRF9OQU1FOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1ZJU0lCSUxJVFkgPSBBU1NPQ0lBVElPTl9fVklTSUJJTElUWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19DTElFTlRfREVQRU5ERU5DWSA9IEFTU09DSUFUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX05BTUVfRVhQUkVTU0lPTiA9IEFTU09DSUFUSU9OX19OQU1FX0VYUFJFU1NJT047Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX01FTUJFUiA9IEFTU09DSUFUSU9OX19NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05FRF9SVUxFID0gQVNTT0NJQVRJT05fX09XTkVEX1JVTEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0lNUE9SVEVEX01FTUJFUiA9IEFTU09DSUFUSU9OX19JTVBPUlRFRF9NRU1CRVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fRUxFTUVOVF9JTVBPUlQgPSBBU1NPQ0lBVElPTl9fRUxFTUVOVF9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fUEFDS0FHRV9JTVBPUlQgPSBBU1NPQ0lBVElPTl9fUEFDS0FHRV9JTVBPUlQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19URU1QTEFURV9QQVJBTUVURVIgPSBBU1NPQ0lBVElPTl9fVEVNUExBVEVfUEFSQU1FVEVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05JTkdfUEFSQU1FVEVSID0gQVNTT0NJQVRJT05fX09XTklOR19QQVJBTUVURVI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBBU1NPQ0lBVElPTl9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1BBQ0tBR0UgPSBBU1NPQ0lBVElPTl9fUEFDS0FHRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19SRURFRklOSVRJT05fQ09OVEVYVCA9IEFTU09DSUFUSU9OX19SRURFRklOSVRJT05fQ09OVEVYVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19JU19MRUFGID0gQVNTT0NJQVRJT05fX0lTX0xFQUY7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19GRUFUVVJFID0gQVNTT0NJQVRJT05fX0ZFQVRVUkU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0lTX0FCU1RSQUNUID0gQVNTT0NJQVRJT05fX0lTX0FCU1RSQUNUOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fSU5IRVJJVEVEX01FTUJFUiA9IEFTU09DSUFUSU9OX19JTkhFUklURURfTUVNQkVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fR0VORVJBTCA9IEFTU09DSUFUSU9OX19HRU5FUkFMOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0dFTkVSQUxJWkFUSU9OID0gQVNTT0NJQVRJT05fX0dFTkVSQUxJWkFUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19BVFRSSUJVVEUgPSBBU1NPQ0lBVElPTl9fQVRUUklCVVRFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1JFREVGSU5FRF9DTEFTU0lGSUVSID0gQVNTT0NJQVRJT05fX1JFREVGSU5FRF9DTEFTU0lGSUVSOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fUE9XRVJUWVBFX0VYVEVOVCA9IEFTU09DSUFUSU9OX19QT1dFUlRZUEVfRVhURU5UOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19TVUJTVElUVVRJT04gPSBBU1NPQ0lBVElPTl9fU1VCU1RJVFVUSU9OOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09XTkVEX1VTRV9DQVNFID0gQVNTT0NJQVRJT05fX09XTkVEX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1VTRV9DQVNFID0gQVNTT0NJQVRJT05fX1VTRV9DQVNFOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19SRVBSRVNFTlRBVElPTiA9IEFTU09DSUFUSU9OX19SRVBSRVNFTlRBVElPTjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09DQ1VSUkVOQ0UgPSBBU1NPQ0lBVElPTl9fT0NDVVJSRU5DRTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWxhdGVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fUkVMQVRFRF9FTEVNRU5UID0gQVNTT0NJQVRJT05fX1JFTEFURURfRUxFTUVOVDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBEZXJpdmVkPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19JU19ERVJJVkVEID0gQVNTT0NJQVRJT05fX0lTX0RFUklWRUQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRW5kPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09XTkVEX0VORCA9IEFTU09DSUFUSU9OX19PV05FRF9FTkQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RW5kIFR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IENPTU1VTklDQVRJT05fUEFUSF9fRU5EX1RZUEUgPSBBU1NPQ0lBVElPTl9fRU5EX1RZUEU7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyIEVuZDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19NRU1CRVJfRU5EID0gQVNTT0NJQVRJT05fX01FTUJFUl9FTkQ7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkNvbW11bmljYXRpb24gUGF0aDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfRkVBVFVSRV9DT1VOVCA9IEFTU09DSUFUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KIAlpbnQgUkVBRF9FWFRFTlRfQUNUSU9OX19FQU5OT1RBVElPTlMgPSBBQ1RJT05fX0VBTk5PVEFUSU9OUzsKIAogCS8qKgpAQCAtNTQ1NTMsNiArNDkwMTgsNTU0MSBAQAogCWludCBSQUlTRV9FWENFUFRJT05fQUNUSU9OX0ZFQVRVUkVfQ09VTlQgPSBBQ1RJT05fRkVBVFVSRV9DT1VOVCArIDE7CiAKIAkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX0VBTk5PVEFUSU9OUyA9IENFTlRSQUxfQlVGRkVSX05PREVfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX09XTkVEX0VMRU1FTlQgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19PV05FUiA9IENFTlRSQUxfQlVGRkVSX05PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fT1dORURfQ09NTUVOVCA9IENFTlRSQUxfQlVGRkVSX05PREVfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19URU1QTEFURV9CSU5ESU5HID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IENFTlRSQUxfQlVGRkVSX05PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19OQU1FID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fUVVBTElGSUVEX05BTUUgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19WSVNJQklMSVRZID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IENFTlRSQUxfQlVGRkVSX05PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fTkFNRV9FWFBSRVNTSU9OID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fSVNfTEVBRiA9IENFTlRSQUxfQlVGRkVSX05PREVfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3V0Z29pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fT1VUR09JTkcgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19JTkNPTUlORyA9IENFTlRSQUxfQlVGRkVSX05PREVfX0lOQ09NSU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX0lOX0dST1VQID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fR1JPVVA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QWN0aXZpdHk8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19BQ1RJVklUWSA9IENFTlRSQUxfQlVGRkVSX05PREVfX0FDVElWSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEQVRBX1NUT1JFX05PREVfX1JFREVGSU5FRF9FTEVNRU5UID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fUkVERUZJTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gU3RydWN0dXJlZCBOb2RlPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fSU5fU1RSVUNUVVJFRF9OT0RFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFBhcnRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19JTl9QQVJUSVRJT04gPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTl9QQVJUSVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT04gPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19UWVBFID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PcmRlcmluZzwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fT1JERVJJTkcgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19PUkRFUklORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5VcHBlciBCb3VuZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fVVBQRVJfQk9VTkQgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX19VUFBFUl9CT1VORDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdGF0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX19JTl9TVEFURSA9IENFTlRSQUxfQlVGRkVSX05PREVfX0lOX1NUQVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNlbGVjdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERBVEFfU1RPUkVfTk9ERV9fU0VMRUNUSU9OID0gQ0VOVFJBTF9CVUZGRVJfTk9ERV9fU0VMRUNUSU9OOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EYXRhIFN0b3JlIE5vZGU8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREFUQV9TVE9SRV9OT0RFX0ZFQVRVUkVfQ09VTlQgPSBDRU5UUkFMX0JVRkZFUl9OT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX0VBTk5PVEFUSU9OUyA9IEFDVElWSVRZX0dST1VQX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX09XTkVEX0VMRU1FTlQgPSBBQ1RJVklUWV9HUk9VUF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19PV05FUiA9IEFDVElWSVRZX0dST1VQX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fT1dORURfQ09NTUVOVCA9IEFDVElWSVRZX0dST1VQX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIEdyb3VwPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX1NVUEVSX0dST1VQID0gQUNUSVZJVFlfR1JPVVBfX1NVUEVSX0dST1VQOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5IEdyb3VwIGFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWSA9IEFDVElWSVRZX0dST1VQX19BQ1RJVklUWV9HUk9VUF9BQ1RJVklUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnRlcnJ1cHRpbmcgRWRnZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX0lOVEVSUlVQVElOR19FREdFID0gQUNUSVZJVFlfR1JPVVBfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVkIE5vZGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19DT05UQUlORURfTk9ERSA9IEFDVElWSVRZX0dST1VQX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5JbnRlcnJ1cHRpYmxlIEFjdGl2aXR5IFJlZ2lvbjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9GRUFUVVJFX0NPVU5UID0gQUNUSVZJVFlfR1JPVVBfRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19FQU5OT1RBVElPTlMgPSBOQU1FRF9FTEVNRU5UX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUEFSQU1FVEVSX1NFVF9fT1dORURfRUxFTUVOVCA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBBUkFNRVRFUl9TRVRfX09XTkVEX0NPTU1FTlQgPSBOQU1FRF9FTEVNRU5UX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBBUkFNRVRFUl9TRVRfX1RFTVBMQVRFX0JJTkRJTkcgPSBOQU1FRF9FTEVNRU5UX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBBUkFNRVRFUl9TRVRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUEFSQU1FVEVSX1NFVF9fTkFNRSA9IE5BTUVEX0VMRU1FTlRfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19RVUFMSUZJRURfTkFNRSA9IE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUEFSQU1FVEVSX1NFVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBOQU1FRF9FTEVNRU5UX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19OQU1FX0VYUFJFU1NJT04gPSBOQU1FRF9FTEVNRU5UX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX19QQVJBTUVURVIgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUEFSQU1FVEVSX1NFVF9fQ09ORElUSU9OID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+UGFyYW1ldGVyIFNldDwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQQVJBTUVURVJfU0VUX0ZFQVRVUkVfQ09VTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9FWFBSRVNTSU9OX19FQU5OT1RBVElPTlMgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9FWFBSRVNTSU9OX19PV05FRF9FTEVNRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fT1dORVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0VYUFJFU1NJT05fX09XTkVEX0NPTU1FTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fVEVNUExBVEVfQklORElORyA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9FWFBSRVNTSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fTkFNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0VYUFJFU1NJT05fX1FVQUxJRklFRF9OQU1FID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fVklTSUJJTElUWSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0VYUFJFU1NJT05fX05BTUVfRVhQUkVTU0lPTiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9FWFBSRVNTSU9OX19UWVBFID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0VYUFJFU1NJT05fX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fT1dOSU5HX1BBUkFNRVRFUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Rmlyc3QgVGltZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9fRklSU1RfVElNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXZlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0VYUFJFU1NJT05fX0VWRU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VGltZSBFeHByZXNzaW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfRVhQUkVTU0lPTl9GRUFUVVJFX0NPVU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX19FQU5OT1RBVElPTlMgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX09XTkVEX0VMRU1FTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX09XTkVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX09XTkVEX0NPTU1FTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX19URU1QTEFURV9CSU5ESU5HID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fTkFNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fUVVBTElGSUVEX05BTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX1ZJU0lCSUxJVFkgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fVFlQRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RZUEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX19PV05JTkdfUEFSQU1FVEVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GaXJzdCBUaW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fX0ZJUlNUX1RJTUUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV2ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9fRVZFTlQgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EdXJhdGlvbjwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9GRUFUVVJFX0NPVU5UID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19FQU5OT1RBVElPTlMgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVEX0VMRU1FTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVSID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVEX0NPTU1FTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19URU1QTEFURV9CSU5ESU5HID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fTkFNRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fUVVBTElGSUVEX05BTUUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX1ZJU0lCSUxJVFkgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0lTX0xFQUYgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fT1VUR09JTkcgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PVVRHT0lORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbmNvbWluZzwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0lOQ09NSU5HID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5DT01JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gR3JvdXA8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTl9HUk9VUCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX0dST1VQOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19BQ1RJVklUWSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0FDVElWSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fUkVERUZJTkVEX0VMRU1FTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19SRURFRklORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBTdHJ1Y3R1cmVkIE5vZGU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0lOX1NUUlVDVFVSRURfTk9ERSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX1NUUlVDVFVSRURfTk9ERTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTl9QQVJUSVRJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTl9QQVJUSVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW4gSW50ZXJydXB0aWJsZSBSZWdpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19JTl9JTlRFUlJVUFRJQkxFX1JFR0lPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkhhbmRsZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19IQU5ETEVSID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSEFORExFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FZmZlY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fRUZGRUNUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fRUZGRUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dHB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09VVFBVVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09VVFBVVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0lOUFVUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5QVVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19DT05URVhUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQcmVjb25kaXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19MT0NBTF9QUkVDT05ESVRJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19MT0NBTF9QUkVDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUG9zdGNvbmRpdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19MT0NBTF9QT1NUQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0cnVjdHVyYWwgRmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19TVFJVQ1RVUkFMX0ZFQVRVUkUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19TVFJVQ1RVUkFMX0ZFQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2JqZWN0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX09CSkVDVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX09CSkVDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WYWx1ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX19WQUxVRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1ZBTFVFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5vdzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX05PVyA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPlRpbWUgT2JzZXJ2YXRpb24gQWN0aW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfT0JTRVJWQVRJT05fQUNUSU9OX0ZFQVRVUkVfQ09VTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfX0VBTk5PVEFUSU9OUyA9IFZBTFVFX1NQRUNJRklDQVRJT05fX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fT1dORURfRUxFTUVOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fT1dORVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fT1dORURfQ09NTUVOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfX1RFTVBMQVRFX0JJTkRJTkcgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19OQU1FID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19RVUFMSUZJRURfTkFNRSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fVklTSUJJTElUWSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19DTElFTlRfREVQRU5ERU5DWSA9IFZBTFVFX1NQRUNJRklDQVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19OQU1FX0VYUFJFU1NJT04gPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VHlwZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX19UWVBFID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVFlQRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fVEVNUExBVEVfUEFSQU1FVEVSID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfX09XTklOR19QQVJBTUVURVIgPSBWQUxVRV9TUEVDSUZJQ0FUSU9OX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1pbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfX01JTiA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWF4PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9fTUFYID0gVkFMVUVfU1BFQ0lGSUNBVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+SW50ZXJ2YWw8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfRkVBVFVSRV9DT1VOVCA9IFZBTFVFX1NQRUNJRklDQVRJT05fRkVBVFVSRV9DT1VOVCArIDI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9JTlRFUlZBTF9fRUFOTk9UQVRJT05TID0gSU5URVJWQUxfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9JTlRFUlZBTF9fT1dORURfRUxFTUVOVCA9IElOVEVSVkFMX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX09XTkVSID0gSU5URVJWQUxfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX19PV05FRF9DT01NRU5UID0gSU5URVJWQUxfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX1RFTVBMQVRFX0JJTkRJTkcgPSBJTlRFUlZBTF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9JTlRFUlZBTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gSU5URVJWQUxfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX05BTUUgPSBJTlRFUlZBTF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX19RVUFMSUZJRURfTkFNRSA9IElOVEVSVkFMX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX1ZJU0lCSUxJVFkgPSBJTlRFUlZBTF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX0NMSUVOVF9ERVBFTkRFTkNZID0gSU5URVJWQUxfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX19OQU1FX0VYUFJFU1NJT04gPSBJTlRFUlZBTF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9JTlRFUlZBTF9fVFlQRSA9IElOVEVSVkFMX19UWVBFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX19URU1QTEFURV9QQVJBTUVURVIgPSBJTlRFUlZBTF9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX09XTklOR19QQVJBTUVURVIgPSBJTlRFUlZBTF9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NaW48L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX19NSU4gPSBJTlRFUlZBTF9fTUlOOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1heDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fSU5URVJWQUxfX01BWCA9IElOVEVSVkFMX19NQVg7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkR1cmF0aW9uIEludGVydmFsPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0lOVEVSVkFMX0ZFQVRVUkVfQ09VTlQgPSBJTlRFUlZBTF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUyA9IENPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FRF9FTEVNRU5UID0gQ09OU1RSQUlOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVSID0gQ09OU1RSQUlOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfQ09NTUVOVCA9IENPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fVEVNUExBVEVfQklORElORyA9IENPTlNUUkFJTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gQ09OU1RSQUlOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FID0gQ09OU1RSQUlOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX1FVQUxJRklFRF9OQU1FID0gQ09OU1RSQUlOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX1ZJU0lCSUxJVFkgPSBDT05TVFJBSU5UX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWSA9IENPTlNUUkFJTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTiA9IENPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19URU1QTEFURV9QQVJBTUVURVIgPSBDT05TVFJBSU5UX19URU1QTEFURV9QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05JTkdfUEFSQU1FVEVSID0gQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NPTlRFWFQgPSBDT05TVFJBSU5UX19DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWVzcGFjZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FU1BBQ0UgPSBDT05TVFJBSU5UX19OQU1FU1BBQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWNhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX1NQRUNJRklDQVRJT04gPSBDT05TVFJBSU5UX19TUEVDSUZJQ0FUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnN0cmFpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NPTlNUUkFJTkVEX0VMRU1FTlQgPSBDT05TVFJBSU5UX19DT05TVFJBSU5FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5JbnRlcnZhbCBDb25zdHJhaW50PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IElOVEVSVkFMX0NPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCA9IENPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0NPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUyA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0NPTlNUUkFJTlRfX09XTkVEX0VMRU1FTlQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19PV05FUiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9fT1dORURfQ09NTUVOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19URU1QTEFURV9CSU5ESU5HID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0NPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19OQU1FID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9fUVVBTElGSUVEX05BTUUgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19WSVNJQklMSVRZID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9fTkFNRV9FWFBSRVNTSU9OID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19PV05JTkdfUEFSQU1FVEVSID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0NPTlNUUkFJTlRfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Db250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19DT05URVhUID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lc3BhY2U8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19OQU1FU1BBQ0UgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FU1BBQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWNhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9fU1BFQ0lGSUNBVElPTiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1NQRUNJRklDQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29uc3RyYWluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9DT05TVFJBSU5UX19DT05TVFJBSU5FRF9FTEVNRU5UID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fQ09OU1RSQUlORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+VGltZSBDb25zdHJhaW50PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfQ09OU1RSQUlOVF9GRUFUVVJFX0NPVU5UID0gSU5URVJWQUxfQ09OU1RSQUlOVF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfSU5URVJWQUxfX0VBTk5PVEFUSU9OUyA9IElOVEVSVkFMX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9JTlRFUlZBTF9fT1dORURfRUxFTUVOVCA9IElOVEVSVkFMX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9JTlRFUlZBTF9fT1dORVIgPSBJTlRFUlZBTF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9JTlRFUlZBTF9fT1dORURfQ09NTUVOVCA9IElOVEVSVkFMX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfSU5URVJWQUxfX1RFTVBMQVRFX0JJTkRJTkcgPSBJTlRFUlZBTF9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBJTlRFUlZBTF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19OQU1FID0gSU5URVJWQUxfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19RVUFMSUZJRURfTkFNRSA9IElOVEVSVkFMX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9JTlRFUlZBTF9fVklTSUJJTElUWSA9IElOVEVSVkFMX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19DTElFTlRfREVQRU5ERU5DWSA9IElOVEVSVkFMX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19OQU1FX0VYUFJFU1NJT04gPSBJTlRFUlZBTF9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlR5cGU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19UWVBFID0gSU5URVJWQUxfX1RZUEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgVElNRV9JTlRFUlZBTF9fVEVNUExBVEVfUEFSQU1FVEVSID0gSU5URVJWQUxfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfSU5URVJWQUxfX09XTklOR19QQVJBTUVURVIgPSBJTlRFUlZBTF9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NaW48L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfSU5URVJWQUxfX01JTiA9IElOVEVSVkFMX19NSU47CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWF4PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBUSU1FX0lOVEVSVkFMX19NQVggPSBJTlRFUlZBTF9fTUFYOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5UaW1lIEludGVydmFsPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFRJTUVfSU5URVJWQUxfRkVBVFVSRV9DT1VOVCA9IElOVEVSVkFMX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19FQU5OT1RBVElPTlMgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19PV05FRF9FTEVNRU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fT1dORVIgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX09XTkVEX0NPTU1FTlQgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fVEVNUExBVEVfQklORElORyA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fTkFNRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX1FVQUxJRklFRF9OQU1FID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fVklTSUJJTElUWSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX05BTUVfRVhQUkVTU0lPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lTX0xFQUYgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk91dGdvaW5nPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX09VVEdPSU5HID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1VUR09JTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5jb21pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fSU5DT01JTkcgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19JTkNPTUlORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBHcm91cDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19JTl9HUk9VUCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX0dST1VQOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkFjdGl2aXR5PC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fQUNUSVZJVFkgPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19BQ1RJVklUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19SRURFRklORURfRUxFTUVOVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1JFREVGSU5FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIFN0cnVjdHVyZWQgTm9kZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lOX1NUUlVDVFVSRURfTk9ERSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0lOX1NUUlVDVFVSRURfTk9ERTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbiBQYXJ0aXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fSU5fUEFSVElUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5fUEFSVElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluIEludGVycnVwdGlibGUgUmVnaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lOX0lOVEVSUlVQVElCTEVfUkVHSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5fSU5URVJSVVBUSUJMRV9SRUdJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SGFuZGxlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19IQU5ETEVSID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSEFORExFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FZmZlY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0VGRkVDVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0VGRkVDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PdXRwdXQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fT1VUUFVUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT1VUUFVUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklucHV0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0lOUFVUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fSU5QVVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fQ09OVEVYVCA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYWwgUHJlY29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0xPQ0FMX1BSRUNPTkRJVElPTiA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX0xPQ0FMX1BSRUNPTkRJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Mb2NhbCBQb3N0Y29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0xPQ0FMX1BPU1RDT05ESVRJT04gPSBXUklURV9TVFJVQ1RVUkFMX0ZFQVRVUkVfQUNUSU9OX19MT0NBTF9QT1NUQ09ORElUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0cnVjdHVyYWwgRmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fU1RSVUNUVVJBTF9GRUFUVVJFID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fU1RSVUNUVVJBTF9GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9iamVjdDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fT0JKRUNUID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9fT0JKRUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZhbHVlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OX19WQUxVRSA9IFdSSVRFX1NUUlVDVFVSQUxfRkVBVFVSRV9BQ1RJT05fX1ZBTFVFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkR1cmF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0RVUkFUSU9OID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RHVyYXRpb24gT2JzZXJ2YXRpb24gQWN0aW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9GRUFUVVJFX0NPVU5UID0gV1JJVEVfU1RSVUNUVVJBTF9GRUFUVVJFX0FDVElPTl9GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUyA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19PV05FRF9FTEVNRU5UID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX09XTkVSID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fT1dORURfQ09NTUVOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fVEVNUExBVEVfQklORElORyA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRFVSQVRJT05fQ09OU1RSQUlOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19OQU1FID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX1FVQUxJRklFRF9OQU1FID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX1ZJU0lCSUxJVFkgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19DTElFTlRfREVQRU5ERU5DWSA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTiA9IElOVEVSVkFMX0NPTlNUUkFJTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19URU1QTEFURV9QQVJBTUVURVIgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19URU1QTEFURV9QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duaW5nIFBhcmFtZXRlcjwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19PV05JTkdfUEFSQU1FVEVSID0gSU5URVJWQUxfQ09OU1RSQUlOVF9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX0NPTlRFWFQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWVzcGFjZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBEVVJBVElPTl9DT05TVFJBSU5UX19OQU1FU1BBQ0UgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19OQU1FU1BBQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWNhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX1NQRUNJRklDQVRJT04gPSBJTlRFUlZBTF9DT05TVFJBSU5UX19TUEVDSUZJQ0FUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbnN0cmFpbmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfX0NPTlNUUkFJTkVEX0VMRU1FTlQgPSBJTlRFUlZBTF9DT05TVFJBSU5UX19DT05TVFJBSU5FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EdXJhdGlvbiBDb25zdHJhaW50PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERVUkFUSU9OX0NPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCA9IElOVEVSVkFMX0NPTlNUUkFJTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19FQU5OT1RBVElPTlMgPSBERVBFTkRFTkNZX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fT1dORURfRUxFTUVOVCA9IERFUEVOREVOQ1lfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19PV05FUiA9IERFUEVOREVOQ1lfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfX09XTkVEX0NPTU1FTlQgPSBERVBFTkRFTkNZX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfX1RFTVBMQVRFX0JJTkRJTkcgPSBERVBFTkRFTkNZX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IERFUEVOREVOQ1lfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fTkFNRSA9IERFUEVOREVOQ1lfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19RVUFMSUZJRURfTkFNRSA9IERFUEVOREVOQ1lfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19WSVNJQklMSVRZID0gREVQRU5ERU5DWV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBERVBFTkRFTkNZX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19OQU1FX0VYUFJFU1NJT04gPSBERVBFTkRFTkNZX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fVEVNUExBVEVfUEFSQU1FVEVSID0gREVQRU5ERU5DWV9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fT1dOSU5HX1BBUkFNRVRFUiA9IERFUEVOREVOQ1lfX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gREVQRU5ERU5DWV9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlbGF0ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fUkVMQVRFRF9FTEVNRU5UID0gREVQRU5ERU5DWV9fUkVMQVRFRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fU09VUkNFID0gREVQRU5ERU5DWV9fU09VUkNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRhcmdldDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fVEFSR0VUID0gREVQRU5ERU5DWV9fVEFSR0VUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fQ0xJRU5UID0gREVQRU5ERU5DWV9fQ0xJRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cHBsaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19TVVBQTElFUiA9IERFUEVOREVOQ1lfX1NVUFBMSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveWVkIEFydGlmYWN0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX19ERVBMT1lFRF9BUlRJRkFDVCA9IERFUEVOREVOQ1lfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TG9jYXRpb248L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9fTE9DQVRJT04gPSBERVBFTkRFTkNZX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNvbmZpZ3VyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfX0NPTkZJR1VSQVRJT04gPSBERVBFTkRFTkNZX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EZXBsb3ltZW50PC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfRkVBVFVSRV9DT1VOVCA9IERFUEVOREVOQ1lfRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lFRF9BUlRJRkFDVF9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWUVEX0FSVElGQUNUX19PV05FRF9FTEVNRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWUVEX0FSVElGQUNUX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWUVEX0FSVElGQUNUX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lFRF9BUlRJRkFDVF9fVEVNUExBVEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWUVEX0FSVElGQUNUX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVEX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+RGVwbG95ZWQgQXJ0aWZhY3Q8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZRURfQVJUSUZBQ1RfRkVBVFVSRV9DT1VOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX1RBUkdFVF9fRUFOTk9UQVRJT05TID0gTkFNRURfRUxFTUVOVF9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfVEFSR0VUX19PV05FRF9FTEVNRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfVEFSR0VUX19PV05FUiA9IE5BTUVEX0VMRU1FTlRfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfVEFSR0VUX19PV05FRF9DT01NRU5UID0gTkFNRURfRUxFTUVOVF9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX1RBUkdFVF9fVEVNUExBVEVfQklORElORyA9IE5BTUVEX0VMRU1FTlRfX1RFTVBMQVRFX0JJTkRJTkc7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVGVtcGxhdGUgU2lnbmF0dXJlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5BTUVEX0VMRU1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX05BTUUgPSBOQU1FRF9FTEVNRU5UX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX1FVQUxJRklFRF9OQU1FID0gTkFNRURfRUxFTUVOVF9fUVVBTElGSUVEX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFUExPWU1FTlRfVEFSR0VUX19WSVNJQklMSVRZID0gTkFNRURfRUxFTUVOVF9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX0NMSUVOVF9ERVBFTkRFTkNZID0gTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX05BTUVfRVhQUkVTU0lPTiA9IE5BTUVEX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3ltZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX1RBUkdFVF9fREVQTE9ZTUVOVCA9IE5BTUVEX0VMRU1FTlRfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVQTE9ZTUVOVF9UQVJHRVRfX0RFUExPWUVEX0VMRU1FTlQgPSBOQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5EZXBsb3ltZW50IFRhcmdldDwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVBMT1lNRU5UX1RBUkdFVF9GRUFUVVJFX0NPVU5UID0gTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX0VBTk5PVEFUSU9OUyA9IENMQVNTX19FQU5OT1RBVElPTlM7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fT1dORURfRUxFTUVOVCA9IENMQVNTX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fT1dORVIgPSBDTEFTU19fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fT1dORURfQ09NTUVOVCA9IENMQVNTX19PV05FRF9DT01NRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIEJpbmRpbmc8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX1RFTVBMQVRFX0JJTkRJTkcgPSBDTEFTU19fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBDTEFTU19fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19OQU1FID0gQ0xBU1NfX05BTUU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UXVhbGlmaWVkIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19RVUFMSUZJRURfTkFNRSA9IENMQVNTX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fVklTSUJJTElUWSA9IENMQVNTX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19DTElFTlRfREVQRU5ERU5DWSA9IENMQVNTX19DTElFTlRfREVQRU5ERU5DWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lIEV4cHJlc3Npb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19OQU1FX0VYUFJFU1NJT04gPSBDTEFTU19fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fTUVNQkVSID0gQ0xBU1NfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9SVUxFID0gQ0xBU1NfX09XTkVEX1JVTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wb3J0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19JTVBPUlRFRF9NRU1CRVIgPSBDTEFTU19fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19FTEVNRU5UX0lNUE9SVCA9IENMQVNTX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fUEFDS0FHRV9JTVBPUlQgPSBDTEFTU19fUEFDS0FHRV9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgUGFyYW1ldGVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fVEVNUExBVEVfUEFSQU1FVEVSID0gQ0xBU1NfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTklOR19QQVJBTUVURVIgPSBDTEFTU19fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBDTEFTU19fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19QQUNLQUdFID0gQ0xBU1NfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX1JFREVGSU5JVElPTl9DT05URVhUID0gQ0xBU1NfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19JU19MRUFGID0gQ0xBU1NfX0lTX0xFQUY7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RmVhdHVyZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fRkVBVFVSRSA9IENMQVNTX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fSVNfQUJTVFJBQ1QgPSBDTEFTU19fSVNfQUJTVFJBQ1Q7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fSU5IRVJJVEVEX01FTUJFUiA9IENMQVNTX19JTkhFUklURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWw8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX0dFTkVSQUwgPSBDTEFTU19fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fR0VORVJBTElaQVRJT04gPSBDTEFTU19fR0VORVJBTElaQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19BVFRSSUJVVEUgPSBDTEFTU19fQVRUUklCVVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19SRURFRklORURfQ0xBU1NJRklFUiA9IENMQVNTX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19QT1dFUlRZUEVfRVhURU5UID0gQ0xBU1NfX1BPV0VSVFlQRV9FWFRFTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19TVUJTVElUVVRJT04gPSBDTEFTU19fU1VCU1RJVFVUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFVzZSBDYXNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9VU0VfQ0FTRSA9IENMQVNTX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fVVNFX0NBU0UgPSBDTEFTU19fVVNFX0NBU0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19SRVBSRVNFTlRBVElPTiA9IENMQVNTX19SRVBSRVNFTlRBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5PY2N1cnJlbmNlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PQ0NVUlJFTkNFID0gQ0xBU1NfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTkVEX0JFSEFWSU9SID0gQ0xBU1NfX09XTkVEX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gQ0xBU1NfX0NMQVNTSUZJRVJfQkVIQVZJT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW1wbGVtZW50YXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX0lNUExFTUVOVEFUSU9OID0gQ0xBU1NfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTkVEX1RSSUdHRVIgPSBDTEFTU19fT1dORURfVFJJR0dFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9TVEFURV9NQUNISU5FID0gQ0xBU1NfX09XTkVEX1NUQVRFX01BQ0hJTkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQXR0cmlidXRlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9BVFRSSUJVVEUgPSBDTEFTU19fT1dORURfQVRUUklCVVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX1BBUlQgPSBDTEFTU19fUEFSVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19ST0xFID0gQ0xBU1NfX1JPTEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29ubmVjdG9yPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19PV05FRF9DT05ORUNUT1IgPSBDTEFTU19fT1dORURfQ09OTkVDVE9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTkVEX1BPUlQgPSBDTEFTU19fT1dORURfUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTkVEX09QRVJBVElPTiA9IENMQVNTX19PV05FRF9PUEVSQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3VwZXIgQ2xhc3M8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX1NVUEVSX0NMQVNTID0gQ0xBU1NfX1NVUEVSX0NMQVNTOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX19ORVNURURfQ0xBU1NJRklFUiA9IENMQVNTX19ORVNURURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX0VYVEVOU0lPTiA9IENMQVNTX19FWFRFTlNJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWN0aXZlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fSVNfQUNUSVZFID0gQ0xBU1NfX0lTX0FDVElWRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSZWNlcHRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX09XTkVEX1JFQ0VQVElPTiA9IENMQVNTX19PV05FRF9SRUNFUFRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95bWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fREVQTE9ZTUVOVCA9IENMQVNTX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveWVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IE5PREVfX0RFUExPWUVEX0VMRU1FTlQgPSBDTEFTU19GRUFUVVJFX0NPVU5UICsgMTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgTm9kZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgTk9ERV9fTkVTVEVEX05PREUgPSBDTEFTU19GRUFUVVJFX0NPVU5UICsgMjsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+Tm9kZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBOT0RFX0ZFQVRVUkVfQ09VTlQgPSBDTEFTU19GRUFUVVJFX0NPVU5UICsgMzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fRUFOTk9UQVRJT05TID0gTk9ERV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fT1dORURfRUxFTUVOVCA9IE5PREVfX09XTkVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX09XTkVSID0gTk9ERV9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9DT01NRU5UID0gTk9ERV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1RFTVBMQVRFX0JJTkRJTkcgPSBOT0RFX19URU1QTEFURV9CSU5ESU5HOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRlbXBsYXRlIFNpZ25hdHVyZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFID0gTk9ERV9fT1dORURfVEVNUExBVEVfU0lHTkFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX05BTUUgPSBOT0RFX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19RVUFMSUZJRURfTkFNRSA9IE5PREVfX1FVQUxJRklFRF9OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1ZJU0lCSUxJVFkgPSBOT0RFX19WSVNJQklMSVRZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsaWVudCBEZXBlbmRlbmN5PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0NMSUVOVF9ERVBFTkRFTkNZID0gTk9ERV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19OQU1FX0VYUFJFU1NJT04gPSBOT0RFX19OQU1FX0VYUFJFU1NJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX01FTUJFUiA9IE5PREVfX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSdWxlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX09XTkVEX1JVTEUgPSBOT0RFX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19JTVBPUlRFRF9NRU1CRVIgPSBOT0RFX19JTVBPUlRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWxlbWVudCBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fRUxFTUVOVF9JTVBPUlQgPSBOT0RFX19FTEVNRU5UX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlIEltcG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19QQUNLQUdFX0lNUE9SVCA9IE5PREVfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fVEVNUExBVEVfUEFSQU1FVEVSID0gTk9ERV9fVEVNUExBVEVfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmluZyBQYXJhbWV0ZXI8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05JTkdfUEFSQU1FVEVSID0gTk9ERV9fT1dOSU5HX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlYWJsZSBFbGVtZW50IHZpc2liaWxpdHk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IE5PREVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19QQUNLQUdFID0gTk9ERV9fUEFDS0FHRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluaXRpb24gQ29udGV4dDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19SRURFRklOSVRJT05fQ09OVEVYVCA9IE5PREVfX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0lTX0xFQUYgPSBOT0RFX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fRkVBVFVSRSA9IE5PREVfX0ZFQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgQWJzdHJhY3Q8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0lTX0FCU1RSQUNUID0gTk9ERV9fSVNfQUJTVFJBQ1Q7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5oZXJpdGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19JTkhFUklURURfTUVNQkVSID0gTk9ERV9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0dFTkVSQUwgPSBOT0RFX19HRU5FUkFMOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkdlbmVyYWxpemF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0dFTkVSQUxJWkFUSU9OID0gTk9ERV9fR0VORVJBTElaQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+QXR0cmlidXRlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0FUVFJJQlVURSA9IE5PREVfX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19SRURFRklORURfQ0xBU1NJRklFUiA9IE5PREVfX1JFREVGSU5FRF9DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvd2VydHlwZSBFeHRlbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fUE9XRVJUWVBFX0VYVEVOVCA9IE5PREVfX1BPV0VSVFlQRV9FWFRFTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3Vic3RpdHV0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1NVQlNUSVRVVElPTiA9IE5PREVfX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9VU0VfQ0FTRSA9IE5PREVfX09XTkVEX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlVzZSBDYXNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1VTRV9DQVNFID0gTk9ERV9fVVNFX0NBU0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVwcmVzZW50YXRpb248L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1JFUFJFU0VOVEFUSU9OID0gTk9ERV9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PQ0NVUlJFTkNFID0gTk9ERV9fT0NDVVJSRU5DRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBCZWhhdmlvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9CRUhBVklPUiA9IE5PREVfX09XTkVEX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkNsYXNzaWZpZXIgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0NMQVNTSUZJRVJfQkVIQVZJT1IgPSBOT0RFX19DTEFTU0lGSUVSX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0lNUExFTUVOVEFUSU9OID0gTk9ERV9fSU1QTEVNRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVHJpZ2dlcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9UUklHR0VSID0gTk9ERV9fT1dORURfVFJJR0dFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBTdGF0ZSBNYWNoaW5lPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX09XTkVEX1NUQVRFX01BQ0hJTkUgPSBOT0RFX19PV05FRF9TVEFURV9NQUNISU5FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEF0dHJpYnV0ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9BVFRSSUJVVEUgPSBOT0RFX19PV05FRF9BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFydDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19QQVJUID0gTk9ERV9fUEFSVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Sb2xlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1JPTEUgPSBOT0RFX19ST0xFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbm5lY3RvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9DT05ORUNUT1IgPSBOT0RFX19PV05FRF9DT05ORUNUT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUG9ydDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9QT1JUID0gTk9ERV9fT1dORURfUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBPcGVyYXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fT1dORURfT1BFUkFUSU9OID0gTk9ERV9fT1dORURfT1BFUkFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIENsYXNzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX1NVUEVSX0NMQVNTID0gTk9ERV9fU1VQRVJfQ0xBU1M7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmVzdGVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fTkVTVEVEX0NMQVNTSUZJRVIgPSBOT0RFX19ORVNURURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FeHRlbnNpb248L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fRVhURU5TSU9OID0gTk9ERV9fRVhURU5TSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFjdGl2ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IERFVklDRV9fSVNfQUNUSVZFID0gTk9ERV9fSVNfQUNUSVZFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJlY2VwdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19PV05FRF9SRUNFUFRJT04gPSBOT0RFX19PV05FRF9SRUNFUFRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95bWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgREVWSUNFX19ERVBMT1lNRU5UID0gTk9ERV9fREVQTE9ZTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5EZXBsb3llZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX0RFUExPWUVEX0VMRU1FTlQgPSBOT0RFX19ERVBMT1lFRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBOb2RlPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfX05FU1RFRF9OT0RFID0gTk9ERV9fTkVTVEVEX05PREU7CisKKwkvKioKKwkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlIHRoZSAnPGVtPkRldmljZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBERVZJQ0VfRkVBVFVSRV9DT1VOVCA9IE5PREVfRkVBVFVSRV9DT1VOVCArIDA7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RUFubm90YXRpb25zPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0VBTk5PVEFUSU9OUyA9IE5PREVfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVEX0VMRU1FTlQgPSBOT0RFX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FUiA9IE5PREVfX09XTkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfQ09NTUVOVCA9IE5PREVfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGVtcGxhdGUgQmluZGluZzwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19URU1QTEFURV9CSU5ESU5HID0gTk9ERV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IE5PREVfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19OQU1FID0gTk9ERV9fTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5RdWFsaWZpZWQgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUVVBTElGSUVEX05BTUUgPSBOT0RFX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19WSVNJQklMSVRZID0gTk9ERV9fVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGllbnQgRGVwZW5kZW5jeTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19DTElFTlRfREVQRU5ERU5DWSA9IE5PREVfX0NMSUVOVF9ERVBFTkRFTkNZOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWUgRXhwcmVzc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fTkFNRV9FWFBSRVNTSU9OID0gTk9ERV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19NRU1CRVIgPSBOT0RFX19NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUnVsZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9SVUxFID0gTk9ERV9fT1dORURfUlVMRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBvcnRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fSU1QT1JURURfTUVNQkVSID0gTk9ERV9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0VMRU1FTlRfSU1QT1JUID0gTk9ERV9fRUxFTUVOVF9JTVBPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZSBJbXBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUEFDS0FHRV9JTVBPUlQgPSBOT0RFX19QQUNLQUdFX0lNUE9SVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBQYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IE5PREVfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dOSU5HX1BBUkFNRVRFUiA9IE5PREVfX09XTklOR19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZWFibGUgRWxlbWVudCB2aXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFkgPSBOT0RFX19QQUNLQUdFQUJMRV9FTEVNRU5UX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUEFDS0FHRSA9IE5PREVfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBOT0RFX19SRURFRklOSVRJT05fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBMZWFmPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19JU19MRUFGID0gTk9ERV9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5GZWF0dXJlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0ZFQVRVUkUgPSBOT0RFX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19JU19BQlNUUkFDVCA9IE5PREVfX0lTX0FCU1RSQUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkluaGVyaXRlZCBNZW1iZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fSU5IRVJJVEVEX01FTUJFUiA9IE5PREVfX0lOSEVSSVRFRF9NRU1CRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+R2VuZXJhbDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19HRU5FUkFMID0gTk9ERV9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19HRU5FUkFMSVpBVElPTiA9IE5PREVfX0dFTkVSQUxJWkFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19BVFRSSUJVVEUgPSBOT0RFX19BVFRSSUJVVEU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbmVkIENsYXNzaWZpZXI8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBOT0RFX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX1BPV0VSVFlQRV9FWFRFTlQgPSBOT0RFX19QT1dFUlRZUEVfRVhURU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1YnN0aXR1dGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19TVUJTVElUVVRJT04gPSBOT0RFX19TVUJTVElUVVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgVXNlIENhc2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfVVNFX0NBU0UgPSBOT0RFX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19VU0VfQ0FTRSA9IE5PREVfX1VTRV9DQVNFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlcHJlc2VudGF0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19SRVBSRVNFTlRBVElPTiA9IE5PREVfX1JFUFJFU0VOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk9jY3VycmVuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT0NDVVJSRU5DRSA9IE5PREVfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfQkVIQVZJT1IgPSBOT0RFX19PV05FRF9CRUhBVklPUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5DbGFzc2lmaWVyIEJlaGF2aW9yPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19DTEFTU0lGSUVSX0JFSEFWSU9SID0gTk9ERV9fQ0xBU1NJRklFUl9CRUhBVklPUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbXBsZW1lbnRhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19JTVBMRU1FTlRBVElPTiA9IE5PREVfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfVFJJR0dFUiA9IE5PREVfX09XTkVEX1RSSUdHRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgU3RhdGUgTWFjaGluZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19PV05FRF9TVEFURV9NQUNISU5FID0gTk9ERV9fT1dORURfU1RBVEVfTUFDSElORTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBBdHRyaWJ1dGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfQVRUUklCVVRFID0gTk9ERV9fT1dORURfQVRUUklCVVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fUEFSVCA9IE5PREVfX1BBUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Um9sZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19ST0xFID0gTk9ERV9fUk9MRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb25uZWN0b3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfQ09OTkVDVE9SID0gTk9ERV9fT1dORURfQ09OTkVDVE9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfUE9SVCA9IE5PREVfX09XTkVEX1BPUlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgT3BlcmF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX09XTkVEX09QRVJBVElPTiA9IE5PREVfX09XTkVEX09QRVJBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdXBlciBDbGFzczwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19TVVBFUl9DTEFTUyA9IE5PREVfX1NVUEVSX0NMQVNTOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX05FU1RFRF9DTEFTU0lGSUVSID0gTk9ERV9fTkVTVEVEX0NMQVNTSUZJRVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXh0ZW5zaW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0VYVEVOU0lPTiA9IE5PREVfX0VYVEVOU0lPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBBY3RpdmU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBFWEVDVVRJT05fRU5WSVJPTk1FTlRfX0lTX0FDVElWRSA9IE5PREVfX0lTX0FDVElWRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSZWNlcHRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fT1dORURfUkVDRVBUSU9OID0gTk9ERV9fT1dORURfUkVDRVBUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkRlcGxveW1lbnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IEVYRUNVVElPTl9FTlZJUk9OTUVOVF9fREVQTE9ZTUVOVCA9IE5PREVfX0RFUExPWU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RGVwbG95ZWQgRWxlbWVudDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19ERVBMT1lFRF9FTEVNRU5UID0gTk9ERV9fREVQTE9ZRURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OZXN0ZWQgTm9kZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX19ORVNURURfTk9ERSA9IE5PREVfX05FU1RFRF9OT0RFOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5FeGVjdXRpb24gRW52aXJvbm1lbnQ8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgRVhFQ1VUSU9OX0VOVklST05NRU5UX0ZFQVRVUkVfQ09VTlQgPSBOT0RFX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19FQU5OT1RBVElPTlMgPSBBU1NPQ0lBVElPTl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fT1dORURfRUxFTUVOVCA9IEFTU09DSUFUSU9OX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05FUiA9IEFTU09DSUFUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09XTkVEX0NPTU1FTlQgPSBBU1NPQ0lBVElPTl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1RFTVBMQVRFX0JJTkRJTkcgPSBBU1NPQ0lBVElPTl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX09XTkVEX1RFTVBMQVRFX1NJR05BVFVSRSA9IEFTU09DSUFUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fTkFNRSA9IEFTU09DSUFUSU9OX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19RVUFMSUZJRURfTkFNRSA9IEFTU09DSUFUSU9OX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19WSVNJQklMSVRZID0gQVNTT0NJQVRJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fQ0xJRU5UX0RFUEVOREVOQ1kgPSBBU1NPQ0lBVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19OQU1FX0VYUFJFU1NJT04gPSBBU1NPQ0lBVElPTl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19NRU1CRVIgPSBBU1NPQ0lBVElPTl9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fT1dORURfUlVMRSA9IEFTU09DSUFUSU9OX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19JTVBPUlRFRF9NRU1CRVIgPSBBU1NPQ0lBVElPTl9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0VMRU1FTlRfSU1QT1JUID0gQVNTT0NJQVRJT05fX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1BBQ0tBR0VfSU1QT1JUID0gQVNTT0NJQVRJT05fX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fVEVNUExBVEVfUEFSQU1FVEVSID0gQVNTT0NJQVRJT05fX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fT1dOSU5HX1BBUkFNRVRFUiA9IEFTU09DSUFUSU9OX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZID0gQVNTT0NJQVRJT05fX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19QQUNLQUdFID0gQVNTT0NJQVRJT05fX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fUkVERUZJTklUSU9OX0NPTlRFWFQgPSBBU1NPQ0lBVElPTl9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fSVNfTEVBRiA9IEFTU09DSUFUSU9OX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fRkVBVFVSRSA9IEFTU09DSUFUSU9OX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19JU19BQlNUUkFDVCA9IEFTU09DSUFUSU9OX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0lOSEVSSVRFRF9NRU1CRVIgPSBBU1NPQ0lBVElPTl9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0dFTkVSQUwgPSBBU1NPQ0lBVElPTl9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19HRU5FUkFMSVpBVElPTiA9IEFTU09DSUFUSU9OX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fQVRUUklCVVRFID0gQVNTT0NJQVRJT05fX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19SRURFRklORURfQ0xBU1NJRklFUiA9IEFTU09DSUFUSU9OX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1BPV0VSVFlQRV9FWFRFTlQgPSBBU1NPQ0lBVElPTl9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fU1VCU1RJVFVUSU9OID0gQVNTT0NJQVRJT05fX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05FRF9VU0VfQ0FTRSA9IEFTU09DSUFUSU9OX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19VU0VfQ0FTRSA9IEFTU09DSUFUSU9OX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fUkVQUkVTRU5UQVRJT04gPSBBU1NPQ0lBVElPTl9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PQ0NVUlJFTkNFID0gQVNTT0NJQVRJT05fX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX1JFTEFURURfRUxFTUVOVCA9IEFTU09DSUFUSU9OX19SRUxBVEVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgRGVyaXZlZDwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fSVNfREVSSVZFRCA9IEFTU09DSUFUSU9OX19JU19ERVJJVkVEOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVuZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX19PV05FRF9FTkQgPSBBU1NPQ0lBVElPTl9fT1dORURfRU5EOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVuZCBUeXBlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBDT01NVU5JQ0FUSU9OX1BBVEhfX0VORF9UWVBFID0gQVNTT0NJQVRJT05fX0VORF9UWVBFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlciBFbmQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IENPTU1VTklDQVRJT05fUEFUSF9fTUVNQkVSX0VORCA9IEFTU09DSUFUSU9OX19NRU1CRVJfRU5EOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Db21tdW5pY2F0aW9uIFBhdGg8L2VtPicgY2xhc3MuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgQ09NTVVOSUNBVElPTl9QQVRIX0ZFQVRVUkVfQ09VTlQgPSBBU1NPQ0lBVElPTl9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5FQW5ub3RhdGlvbnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19FQU5OT1RBVElPTlMgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX0VBTk5PVEFUSU9OUzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fT1dORURfRUxFTUVOVCA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORURfRUxFTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX0NPTkZPUk1BTkNFX19PV05FUiA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fT1dORVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQ29tbWVudDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfQ09ORk9STUFOQ0VfX09XTkVEX0NPTU1FTlQgPSBESVJFQ1RFRF9SRUxBVElPTlNISVBfX09XTkVEX0NPTU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVsYXRlZCBFbGVtZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fUkVMQVRFRF9FTEVNRU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX19SRUxBVEVEX0VMRU1FTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U291cmNlPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fU09VUkNFID0gRElSRUNURURfUkVMQVRJT05TSElQX19TT1VSQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fVEFSR0VUID0gRElSRUNURURfUkVMQVRJT05TSElQX19UQVJHRVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U3BlY2lmaWMgTWFjaGluZTwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fU1BFQ0lGSUNfTUFDSElORSA9IERJUkVDVEVEX1JFTEFUSU9OU0hJUF9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsIE1hY2hpbmU8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fR0VORVJBTF9NQUNISU5FID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Qcm90b2NvbCBDb25mb3JtYW5jZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9DT05GT1JNQU5DRV9GRUFUVVJFX0NPVU5UID0gRElSRUNURURfUkVMQVRJT05TSElQX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fRUFOTk9UQVRJT05TID0gU1RBVEVfTUFDSElORV9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX0VMRU1FTlQgPSBTVEFURV9NQUNISU5FX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORVIgPSBTVEFURV9NQUNISU5FX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9DT01NRU5UID0gU1RBVEVfTUFDSElORV9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19URU1QTEFURV9CSU5ESU5HID0gU1RBVEVfTUFDSElORV9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBTVEFURV9NQUNISU5FX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX05BTUUgPSBTVEFURV9NQUNISU5FX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUVVBTElGSUVEX05BTUUgPSBTVEFURV9NQUNISU5FX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fVklTSUJJTElUWSA9IFNUQVRFX01BQ0hJTkVfX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0NMSUVOVF9ERVBFTkRFTkNZID0gU1RBVEVfTUFDSElORV9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fTkFNRV9FWFBSRVNTSU9OID0gU1RBVEVfTUFDSElORV9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fTUVNQkVSID0gU1RBVEVfTUFDSElORV9fTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFJ1bGU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1JVTEUgPSBTVEFURV9NQUNISU5FX19PV05FRF9SVUxFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcG9ydGVkIE1lbWJlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fSU1QT1JURURfTUVNQkVSID0gU1RBVEVfTUFDSElORV9fSU1QT1JURURfTUVNQkVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVsZW1lbnQgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19FTEVNRU5UX0lNUE9SVCA9IFNUQVRFX01BQ0hJTkVfX0VMRU1FTlRfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2UgSW1wb3J0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QQUNLQUdFX0lNUE9SVCA9IFNUQVRFX01BQ0hJTkVfX1BBQ0tBR0VfSU1QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlRlbXBsYXRlIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1RFTVBMQVRFX1BBUkFNRVRFUiA9IFNUQVRFX01BQ0hJTkVfX1RFTVBMQVRFX1BBUkFNRVRFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25pbmcgUGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTklOR19QQVJBTUVURVIgPSBTVEFURV9NQUNISU5FX19PV05JTkdfUEFSQU1FVEVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhY2thZ2VhYmxlIEVsZW1lbnQgdmlzaWJpbGl0eTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWSA9IFNUQVRFX01BQ0hJTkVfX1BBQ0tBR0VBQkxFX0VMRU1FTlRfVklTSUJJTElUWTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5QYWNrYWdlPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUEFDS0FHRSA9IFNUQVRFX01BQ0hJTkVfX1BBQ0tBR0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1JFREVGSU5JVElPTl9DT05URVhUID0gU1RBVEVfTUFDSElORV9fUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SXMgTGVhZjwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0lTX0xFQUYgPSBTVEFURV9NQUNISU5FX19JU19MRUFGOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0ZFQVRVUkUgPSBTVEFURV9NQUNISU5FX19GRUFUVVJFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFic3RyYWN0PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fSVNfQUJTVFJBQ1QgPSBTVEFURV9NQUNISU5FX19JU19BQlNUUkFDVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Jbmhlcml0ZWQgTWVtYmVyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19JTkhFUklURURfTUVNQkVSID0gU1RBVEVfTUFDSElORV9fSU5IRVJJVEVEX01FTUJFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19HRU5FUkFMID0gU1RBVEVfTUFDSElORV9fR0VORVJBTDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HZW5lcmFsaXphdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fR0VORVJBTElaQVRJT04gPSBTVEFURV9NQUNISU5FX19HRU5FUkFMSVpBVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5BdHRyaWJ1dGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0FUVFJJQlVURSA9IFNUQVRFX01BQ0hJTkVfX0FUVFJJQlVURTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQ2xhc3NpZmllcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUkVERUZJTkVEX0NMQVNTSUZJRVIgPSBTVEFURV9NQUNISU5FX19SRURFRklORURfQ0xBU1NJRklFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Qb3dlcnR5cGUgRXh0ZW50PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QT1dFUlRZUEVfRVhURU5UID0gU1RBVEVfTUFDSElORV9fUE9XRVJUWVBFX0VYVEVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TdWJzdGl0dXRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1NVQlNUSVRVVElPTiA9IFNUQVRFX01BQ0hJTkVfX1NVQlNUSVRVVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBVc2UgQ2FzZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfVVNFX0NBU0UgPSBTVEFURV9NQUNISU5FX19PV05FRF9VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fVVNFX0NBU0UgPSBTVEFURV9NQUNISU5FX19VU0VfQ0FTRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZXByZXNlbnRhdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1JFUFJFU0VOVEFUSU9OID0gU1RBVEVfTUFDSElORV9fUkVQUkVTRU5UQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T2NjdXJyZW5jZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT0NDVVJSRU5DRSA9IFNUQVRFX01BQ0hJTkVfX09DQ1VSUkVOQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgQmVoYXZpb3I8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX0JFSEFWSU9SID0gU1RBVEVfTUFDSElORV9fT1dORURfQkVIQVZJT1I7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xhc3NpZmllciBCZWhhdmlvcjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0NMQVNTSUZJRVJfQkVIQVZJT1IgPSBTVEFURV9NQUNISU5FX19DTEFTU0lGSUVSX0JFSEFWSU9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkltcGxlbWVudGF0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19JTVBMRU1FTlRBVElPTiA9IFNUQVRFX01BQ0hJTkVfX0lNUExFTUVOVEFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFRyaWdnZXI8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1RSSUdHRVIgPSBTVEFURV9NQUNISU5FX19PV05FRF9UUklHR0VSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFN0YXRlIE1hY2hpbmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1NUQVRFX01BQ0hJTkUgPSBTVEFURV9NQUNISU5FX19PV05FRF9TVEFURV9NQUNISU5FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEF0dHJpYnV0ZTwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfQVRUUklCVVRFID0gU1RBVEVfTUFDSElORV9fT1dORURfQVRUUklCVVRFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBhcnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1BBUlQgPSBTVEFURV9NQUNISU5FX19QQVJUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJvbGU8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1JPTEUgPSBTVEFURV9NQUNISU5FX19ST0xFOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIENvbm5lY3RvcjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfQ09OTkVDVE9SID0gU1RBVEVfTUFDSElORV9fT1dORURfQ09OTkVDVE9SOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIFBvcnQ8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1BPUlQgPSBTVEFURV9NQUNISU5FX19PV05FRF9QT1JUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIE9wZXJhdGlvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfT1BFUkFUSU9OID0gU1RBVEVfTUFDSElORV9fT1dORURfT1BFUkFUSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN1cGVyIENsYXNzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19TVVBFUl9DTEFTUyA9IFNUQVRFX01BQ0hJTkVfX1NVUEVSX0NMQVNTOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5lc3RlZCBDbGFzc2lmaWVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19ORVNURURfQ0xBU1NJRklFUiA9IFNUQVRFX01BQ0hJTkVfX05FU1RFRF9DTEFTU0lGSUVSOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkV4dGVuc2lvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fRVhURU5TSU9OID0gU1RBVEVfTUFDSElORV9fRVhURU5TSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIEFjdGl2ZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0lTX0FDVElWRSA9IFNUQVRFX01BQ0hJTkVfX0lTX0FDVElWRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBSZWNlcHRpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX09XTkVEX1JFQ0VQVElPTiA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1JFQ0VQVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JcyBSZWVudHJhbnQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19JU19SRUVOVFJBTlQgPSBTVEFURV9NQUNISU5FX19JU19SRUVOVFJBTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGV4dDwvYj48L2VtPicgY29udGFpbmVyIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19DT05URVhUID0gU1RBVEVfTUFDSElORV9fQ09OVEVYVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SZWRlZmluZWQgQmVoYXZpb3I8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9CRUhBVklPUiA9IFNUQVRFX01BQ0hJTkVfX1JFREVGSU5FRF9CRUhBVklPUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TcGVjaWZpY2F0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fU1BFQ0lGSUNBVElPTiA9IFNUQVRFX01BQ0hJTkVfX1NQRUNJRklDQVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UGFyYW1ldGVyPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QQVJBTUVURVIgPSBTVEFURV9NQUNISU5FX19QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Rm9ybWFsIFBhcmFtZXRlcjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fRk9STUFMX1BBUkFNRVRFUiA9IFNUQVRFX01BQ0hJTkVfX0ZPUk1BTF9QQVJBTUVURVI7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmV0dXJuIFJlc3VsdDwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUkVUVVJOX1JFU1VMVCA9IFNUQVRFX01BQ0hJTkVfX1JFVFVSTl9SRVNVTFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJlY29uZGl0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19QUkVDT05ESVRJT04gPSBTVEFURV9NQUNISU5FX19QUkVDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UG9zdGNvbmRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fUE9TVENPTkRJVElPTiA9IFNUQVRFX01BQ0hJTkVfX1BPU1RDT05ESVRJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+T3duZWQgUGFyYW1ldGVyIFNldDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fT1dORURfUEFSQU1FVEVSX1NFVCA9IFNUQVRFX01BQ0hJTkVfX09XTkVEX1BBUkFNRVRFUl9TRVQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UmVnaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19SRUdJT04gPSBTVEFURV9NQUNISU5FX19SRUdJT047CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29ubmVjdGlvbiBQb2ludDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fQ09OTkVDVElPTl9QT0lOVCA9IFNUQVRFX01BQ0hJTkVfX0NPTk5FQ1RJT05fUE9JTlQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXh0ZW5kZWQgU3RhdGUgTWFjaGluZTwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0VYVEVOREVEX1NUQVRFX01BQ0hJTkUgPSBTVEFURV9NQUNISU5FX19FWFRFTkRFRF9TVEFURV9NQUNISU5FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlN0YXRlIE1hY2hpbmUgcmVkZWZpbml0aW9uIENvbnRleHQ8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfU1RBVEVfTUFDSElORV9fU1RBVEVfTUFDSElORV9SRURFRklOSVRJT05fQ09OVEVYVCA9IFNUQVRFX01BQ0hJTkVfX1NUQVRFX01BQ0hJTkVfUkVERUZJTklUSU9OX0NPTlRFWFQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29uZm9ybWFuY2U8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0NPTkZPUk1BTkNFID0gU1RBVEVfTUFDSElORV9GRUFUVVJFX0NPVU5UICsgMDsKKworCS8qKgorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgdGhlICc8ZW0+UHJvdG9jb2wgU3RhdGUgTWFjaGluZTwvZW0+JyBjbGFzcy4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX0ZFQVRVUkVfQ09VTlQgPSBTVEFURV9NQUNISU5FX0ZFQVRVUkVfQ09VTlQgKyAxOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkVBbm5vdGF0aW9uczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fRUFOTk9UQVRJT05TID0gVFJBTlNJVElPTl9fRUFOTk9UQVRJT05TOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVkIEVsZW1lbnQ8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX09XTkVEX0VMRU1FTlQgPSBUUkFOU0lUSU9OX19PV05FRF9FTEVNRU5UOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk93bmVyPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fT1dORVIgPSBUUkFOU0lUSU9OX19PV05FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBDb21tZW50PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19PV05FRF9DT01NRU5UID0gVFJBTlNJVElPTl9fT1dORURfQ09NTUVOVDsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UZW1wbGF0ZSBCaW5kaW5nPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19URU1QTEFURV9CSU5ESU5HID0gVFJBTlNJVElPTl9fVEVNUExBVEVfQklORElORzsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Pd25lZCBUZW1wbGF0ZSBTaWduYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkUgPSBUUkFOU0lUSU9OX19PV05FRF9URU1QTEFURV9TSUdOQVRVUkU7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX05BTUUgPSBUUkFOU0lUSU9OX19OQU1FOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlF1YWxpZmllZCBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fUVVBTElGSUVEX05BTUUgPSBUUkFOU0lUSU9OX19RVUFMSUZJRURfTkFNRTsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5WaXNpYmlsaXR5PC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fVklTSUJJTElUWSA9IFRSQU5TSVRJT05fX1ZJU0lCSUxJVFk7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q2xpZW50IERlcGVuZGVuY3k8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0LgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX0NMSUVOVF9ERVBFTkRFTkNZID0gVFJBTlNJVElPTl9fQ0xJRU5UX0RFUEVOREVOQ1k7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZSBFeHByZXNzaW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fTkFNRV9FWFBSRVNTSU9OID0gVFJBTlNJVElPTl9fTkFNRV9FWFBSRVNTSU9OOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5pdGlvbiBDb250ZXh0PC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19SRURFRklOSVRJT05fQ09OVEVYVCA9IFRSQU5TSVRJT05fX1JFREVGSU5JVElPTl9DT05URVhUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPklzIExlYWY8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19JU19MRUFGID0gVFJBTlNJVElPTl9fSVNfTEVBRjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5LaW5kPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fS0lORCA9IFRSQU5TSVRJT05fX0tJTkQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+Q29udGFpbmVyPC9iPjwvZW0+JyBjb250YWluZXIgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX0NPTlRBSU5FUiA9IFRSQU5TSVRJT05fX0NPTlRBSU5FUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5Tb3VyY2U8L2I+PC9lbT4nIHJlZmVyZW5jZS4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19TT1VSQ0UgPSBUUkFOU0lUSU9OX19TT1VSQ0U7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+VGFyZ2V0PC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fVEFSR0VUID0gVFJBTlNJVElPTl9fVEFSR0VUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZGVmaW5lZCBUcmFuc2l0aW9uPC9iPjwvZW0+JyByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fUkVERUZJTkVEX1RSQU5TSVRJT04gPSBUUkFOU0lUSU9OX19SRURFRklORURfVFJBTlNJVElPTjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5UcmlnZ2VyPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19UUklHR0VSID0gVFJBTlNJVElPTl9fVFJJR0dFUjsKKworCS8qKgorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5HdWFyZDwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX0dVQVJEID0gVFJBTlNJVElPTl9fR1VBUkQ7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RWZmZWN0PC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fRUZGRUNUID0gVFJBTlNJVElPTl9fRUZGRUNUOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlBvc3QgQ29uZGl0aW9uPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UuCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KKwkgKiBAZ2VuZXJhdGVkCisJICogQG9yZGVyZWQKKwkgKi8KKwlpbnQgUFJPVE9DT0xfVFJBTlNJVElPTl9fUE9TVF9DT05ESVRJT04gPSBUUkFOU0lUSU9OX0ZFQVRVUkVfQ09VTlQgKyAwOworCisJLyoqCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJlZmVycmVkPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgorCSAqIEBnZW5lcmF0ZWQKKwkgKiBAb3JkZXJlZAorCSAqLworCWludCBQUk9UT0NPTF9UUkFOU0lUSU9OX19SRUZFUlJFRCA9IFRSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCArIDE7CisKKwkvKioKKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+UHJlIENvbmRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fX1BSRV9DT05ESVRJT04gPSBUUkFOU0lUSU9OX0ZFQVRVUkVfQ09VTlQgKyAyOworCisJLyoqCisJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSB0aGUgJzxlbT5Qcm90b2NvbCBUcmFuc2l0aW9uPC9lbT4nIGNsYXNzLgorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+CisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisJICogQGdlbmVyYXRlZAorCSAqIEBvcmRlcmVkCisJICovCisJaW50IFBST1RPQ09MX1RSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCA9IFRSQU5TSVRJT05fRkVBVFVSRV9DT1VOVCArIDM7CisKKwkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5EZXBsb3ltZW50U3BlY2lmaWNhdGlvbkltcGwgPGVtPkRlcGxveW1lbnQgU3BlY2lmaWNhdGlvbjwvZW0+fScgY2xhc3MuCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KQEAgLTU0OTg3LDcgKzU0OTg3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0Q2FsbENvbmN1cnJlbmN5S2luZCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBDQUxMX0NPTkNVUlJFTkNZX0tJTkQgPSAyMzI7CisJaW50IENBTExfQ09OQ1VSUkVOQ1lfS0lORCA9IDIzMDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5FeHBhbnNpb25LaW5kIDxlbT5FeHBhbnNpb24gS2luZDwvZW0+fScgZW51bS4KQEAgLTU0OTk3LDcgKzU0OTk3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0RXhwYW5zaW9uS2luZCgpCiAJICogQGdlbmVyYXRlZAogCSAqLwotCWludCBFWFBBTlNJT05fS0lORCA9IDIzMzsKKwlpbnQgRVhQQU5TSU9OX0tJTkQgPSAyMzU7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuTWVzc2FnZUtpbmQgPGVtPk1lc3NhZ2UgS2luZDwvZW0+fScgZW51bS4KQEAgLTU1MDA3LDcgKzU1MDA3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0TWVzc2FnZUtpbmQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVTU0FHRV9LSU5EID0gMjMwOworCWludCBNRVNTQUdFX0tJTkQgPSAyMzE7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuTWVzc2FnZVNvcnQgPGVtPk1lc3NhZ2UgU29ydDwvZW0+fScgZW51bS4KQEAgLTU1MDE3LDcgKzU1MDE3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0TWVzc2FnZVNvcnQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgTUVTU0FHRV9TT1JUID0gMjMxOworCWludCBNRVNTQUdFX1NPUlQgPSAyMzI7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuVHJhbnNpdGlvbktpbmQgPGVtPlRyYW5zaXRpb24gS2luZDwvZW0+fScgZW51bS4KQEAgLTU1MDI3LDcgKzU1MDI3LDcgQEAKIAkgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbC5VTUwyUGFja2FnZUltcGwjZ2V0VHJhbnNpdGlvbktpbmQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgVFJBTlNJVElPTl9LSU5EID0gMjM0OworCWludCBUUkFOU0lUSU9OX0tJTkQgPSAyMzM7CiAKIAkvKioKIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLnVtbDIuUHNldWRvc3RhdGVLaW5kIDxlbT5Qc2V1ZG9zdGF0ZSBLaW5kPC9lbT59JyBlbnVtLgpAQCAtNTUwMzcsNyArNTUwMzcsNyBAQAogCSAqIEBzZWUgb3JnLmVjbGlwc2UudW1sMi5pbXBsLlVNTDJQYWNrYWdlSW1wbCNnZXRQc2V1ZG9zdGF0ZUtpbmQoKQogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KLQlpbnQgUFNFVURPU1RBVEVfS0lORCA9IDIzNTsKKwlpbnQgUFNFVURPU1RBVEVfS0lORCA9IDIzNDsKIAogCS8qKgogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UudW1sMi5PYmplY3ROb2RlT3JkZXJpbmdLaW5kIDxlbT5PYmplY3QgTm9kZSBPcmRlcmluZyBLaW5kPC9lbT59JyBlbnVtLgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVXNhZ2UuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1VzYWdlLmphdmEKaW5kZXggOWRkNjNiOC4uNDA4ZmNmYiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVXNhZ2UuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Vc2FnZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFVzYWdlLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFVzYWdlLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMTgsNiArMTgsMTAgQEAKICAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlVzYWdlPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogQSB1c2FnZSBpcyBhIHJlbGF0aW9uc2hpcCBpbiB3aGljaCBvbmUgZWxlbWVudCByZXF1aXJlcyBhbm90aGVyIGVsZW1lbnQgKG9yIHNldCBvZiBlbGVtZW50cykgZm9yIGl0cyBmdWxsIGltcGxlbWVudGF0aW9uIG9yIG9wZXJhdGlvbi4gSW4gdGhlIG1ldGFtb2RlbCwgYSBVc2FnZSBpcyBhIERlcGVuZGVuY3kgaW4gd2hpY2ggdGhlIGNsaWVudCByZXF1aXJlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIHN1cHBsaWVyLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKgogICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLlVNTDJQYWNrYWdlI2dldFVzYWdlKCkKICAqIEBtb2RlbCAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1VzZUNhc2UuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1VzZUNhc2UuamF2YQppbmRleCAwMmZhMDliLi40NWUxZTZhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9Vc2VDYXNlLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVXNlQ2FzZS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFVzZUNhc2UuamF2YSx2IDEuNCAyMDA0LzA1LzIwIDAzOjIwOjA0IGtodXNzZXkgRXhwICQKKyAqICRJZDogVXNlQ2FzZS5qYXZhLHYgMS41IDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTIxLDYgKzIxLDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Vc2UgQ2FzZTwvYj48L2VtPicuCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KICAqCisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIEEgVXNlQ2FzZSBpcyBhIGtpbmQgb2YgYmVoYXZpb3JlZCBjbGFzc2lmaWVyIHRoYXQgcmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIG9mIGFuIG9mZmVyZWQgYmVoYXZpb3IuIEVhY2ggdXNlIGNhc2Ugc3BlY2lmaWVzIHNvbWUgYmVoYXZpb3IsIHBvc3NpYmx5IGluY2x1ZGluZyB2YXJpYW50cywgdGhhdCB0aGUgc3ViamVjdCBjYW4gcGVyZm9ybSBpbiBjb2xsYWJvcmF0aW9uIHdpdGggb25lIG9yIG1vcmUgYWN0b3JzLiBVc2UgY2FzZXMgZGVmaW5lIHRoZSBvZmZlcmVkIGJlaGF2aW9yIG9mIHRoZSBzdWJqZWN0IHdpdGhvdXQgcmVmZXJlbmNlIHRvIGl0cyBpbnRlcm5hbCBzdHJ1Y3R1cmUuIFRoZXNlIGJlaGF2aW9ycywgaW52b2x2aW5nIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBhY3RvciBhbmQgdGhlIHN1YmplY3QsIG1heSByZXN1bHQgaW4gY2hhbmdlcyB0byB0aGUgc3RhdGUgb2YgdGhlIHN1YmplY3QgYW5kIGNvbW11bmljYXRpb25zIHdpdGggaXRzIGVudmlyb25tZW50LiBBIHVzZSBjYXNlIGNhbiBpbmNsdWRlIHBvc3NpYmxlIHZhcmlhdGlvbnMgb2YgaXRzIGJhc2ljIGJlaGF2aW9yLCBpbmNsdWRpbmcgZXhjZXB0aW9uYWwgYmVoYXZpb3IgYW5kIGVycm9yIGhhbmRsaW5nLiBUaGUgc3ViamVjdCBvZiBhIHVzZSBjYXNlIGNvdWxkIGJlIGEgcGh5c2ljYWwgc3lzdGVtIG9yIGFueSBvdGhlciBlbGVtZW50IHRoYXQgbWF5IGhhdmUgYmVoYXZpb3IsIHN1Y2ggYXMgYSBjb21wb25lbnQsIHN1YnN5c3RlbSBvciBjbGFzcy4gRWFjaCB1c2UgY2FzZSBzcGVjaWZpZXMgYSB1bml0IG9mIHVzZWZ1bCBmdW5jdGlvbmFsaXR5IHRoYXQgdGhlIHN1YmplY3QgcHJvdmlkZXMgdG8gaXRzIHVzZXJzLCBpLmUuLCBhIHNwZWNpZmljIHdheSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdWJqZWN0LiBUaGlzIGZ1bmN0aW9uYWxpdHksIHdoaWNoIGlzIGluaXRpYXRlZCBieSBhbiBhY3RvciwgbXVzdCBhbHdheXMgYmUgY29tcGxldGVkIGZvciB0aGUgdXNlIGNhc2UgdG8gY29tcGxldGUuIEl0IGlzIGRlZW1lZCBjb21wbGV0ZSBpZiwgYWZ0ZXIgaXRzIGV4ZWN1dGlvbiwgdGhlIHN1YmplY3Qgd2lsbCBiZSBpbiBhIHN0YXRlIGluIHdoaWNoIG5vIGZ1cnRoZXIgaW5wdXRzIG9yIGFjdGlvbnMgYXJlIGV4cGVjdGVkIGFuZCB0aGUgdXNlIGNhc2UgY2FuIGJlIGluaXRpYXRlZCBhZ2FpbiBvciBpbiBhbiBlcnJvciBzdGF0ZS4gVXNlIGNhc2VzIGNhbiBiZSB1c2VkIGJvdGggZm9yIHNwZWNpZmljYXRpb24gb2YgdGhlIChleHRlcm5hbCkgcmVxdWlyZW1lbnRzIG9uIGEgc3ViamVjdCBhbmQgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IG9mZmVyZWQgYnkgYSBzdWJqZWN0LiBNb3Jlb3ZlciwgdGhlIHVzZSBjYXNlcyBhbHNvIHN0YXRlIHRoZSByZXF1aXJlbWVudHMgdGhlIHNwZWNpZmllZCBzdWJqZWN0IHBvc2VzIG9uIGl0cyBlbnZpcm9ubWVudCBieSBkZWZpbmluZyBob3cgdGhleSBzaG91bGQgaW50ZXJhY3Qgd2l0aCB0aGUgc3ViamVjdCBzbyB0aGF0IGl0IHdpbGwgYmUgYWJsZSB0byBwZXJmb3JtIGl0cyBzZXJ2aWNlcy4gVGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgY2FuIGJlIGRlc2NyaWJlZCBieSBhIHNwZWNpZmljYXRpb24gdGhhdCBpcyBzb21lIGtpbmQgb2YgQmVoYXZpb3IgKHRocm91Z2ggaXRzIG93bmVkQmVoYXZpb3IgcmVsYXRpb25zaGlwKSwgc3VjaCBhcyBpbnRlcmFjdGlvbnMsIGFjdGl2aXRpZXMsIGFuZCBzdGF0ZSBtYWNoaW5lcywgb3IgYnkgcHJlLWNvbmRpdGlvbnMgYW5kIHBvc3QtY29uZGl0aW9ucyBhcyB3ZWxsIGFzIGJ5IG5hdHVyYWwgbGFuZ3VhZ2UgdGV4dCB3aGVyZSBhcHByb3ByaWF0ZS4gSXQgbWF5IGFsc28gYmUgZGVzY3JpYmVkIGluZGlyZWN0bHkgdGhyb3VnaCBhIENvbGxhYm9yYXRpb24gdGhhdCB1c2VzIHRoZSB1c2UgY2FzZSBhbmQgaXRzIGFjdG9ycyBhcyB0aGUgY2xhc3NpZmllcnMgdGhhdCB0eXBlIGl0cyBwYXJ0cy4gV2hpY2ggb2YgdGhlc2UgdGVjaG5pcXVlcyB0byB1c2UgZGVwZW5kcyBvbiB0aGUgbmF0dXJlIG9mIHRoZSB1c2UgY2FzZSBiZWhhdmlvciBhcyB3ZWxsIGFzIG9uIHRoZSBpbnRlbmRlZCByZWFkZXIuIFRoZXNlIGRlc2NyaXB0aW9ucyBjYW4gYmUgY29tYmluZWQuIEFuIGV4YW1wbGUgb2YgYSB1c2UgY2FzZSB3aXRoIGFuIGFzc29jaWF0ZWQgc3RhdGUgbWFjaGluZSBkZXNjcmlwdGlvbiBpcyBzaG93biBpbiBGaWd1cmUgNDA1LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1ZhbHVlU3BlY2lmaWNhdGlvbi5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmFsdWVTcGVjaWZpY2F0aW9uLmphdmEKaW5kZXggMDY5YmQyZC4uZmI3NzI1YSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmFsdWVTcGVjaWZpY2F0aW9uLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmFsdWVTcGVjaWZpY2F0aW9uLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogVmFsdWVTcGVjaWZpY2F0aW9uLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFZhbHVlU3BlY2lmaWNhdGlvbi5qYXZhLHYgMS4zIDIwMDQvMDYvMDMgMDI6NTk6MTcga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDI7CiAKQEAgLTE4LDYgKzE4LDEwIEBACiAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5WYWx1ZSBTcGVjaWZpY2F0aW9uPC9iPjwvZW0+Jy4KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgogICoKKyAqIDwhLS0gYmVnaW4tbW9kZWwtZG9jIC0tPgorICogVmFsdWVTcGVjaWZpY2F0aW9uIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyB1c2VkIHRvIGlkZW50aWZ5IGEgdmFsdWUgb3IgdmFsdWVzIGluIGEgbW9kZWwuIEl0IG1heSByZWZlcmVuY2UgYW4gaW5zdGFuY2Ugb3IgaXQgbWF5IGJlIGFuIGV4cHJlc3Npb24gZGVub3RpbmcgYW4gaW5zdGFuY2Ugb3IgaW5zdGFuY2VzIHdoZW4gZXZhbHVhdGVkLiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKgogICogQHNlZSBvcmcuZWNsaXBzZS51bWwyLlVNTDJQYWNrYWdlI2dldFZhbHVlU3BlY2lmaWNhdGlvbigpCiAgKiBAbW9kZWwgYWJzdHJhY3Q9InRydWUiCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9WYXJpYWJsZS5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmFyaWFibGUuamF2YQppbmRleCBjMGE5Y2Q2Li4yMDNhYmI2IDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9WYXJpYWJsZS5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1ZhcmlhYmxlLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogVmFyaWFibGUuamF2YSx2IDEuMyAyMDA0LzA1LzIwIDAzOjIwOjA0IGtodXNzZXkgRXhwICQKKyAqICRJZDogVmFyaWFibGUuamF2YSx2IDEuNCAyMDA0LzA2LzAzIDAyOjU5OjE3IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyOwogCkBAIC0xOCw2ICsxOCwxMCBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+VmFyaWFibGU8L2I+PC9lbT4nLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CiAgKgorICogPCEtLSBiZWdpbi1tb2RlbC1kb2MgLS0+CisgKiBBIHZhcmlhYmxlIGlzIGNvbnNpZGVyZWQgYSBjb25uZWN0YWJsZSBlbGVtZW50LiAKKyAqIDwhLS0gZW5kLW1vZGVsLWRvYyAtLT4KKyAqCiAgKiA8cD4KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKICAqIDx1bD4KQEAgLTI5LDcgKzMzLDcgQEAKICAqIEBtb2RlbCAKICAqIEBnZW5lcmF0ZWQKICAqLwotcHVibGljIGludGVyZmFjZSBWYXJpYWJsZSBleHRlbmRzIENvbm5lY3RhYmxlRWxlbWVudCwgVHlwZWRFbGVtZW50LCBNdWx0aXBsaWNpdHlFbGVtZW50IHsKK3B1YmxpYyBpbnRlcmZhY2UgVmFyaWFibGUgZXh0ZW5kcyBDb25uZWN0YWJsZUVsZW1lbnQsIFR5cGVkRWxlbWVudCwgTXVsdGlwbGljaXR5RWxlbWVudHsKIAkvKioKIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgpkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmlzaWJpbGl0eUtpbmQuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL1Zpc2liaWxpdHlLaW5kLmphdmEKaW5kZXggMjYxZjhmYS4uZmU1Yzc3NyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvVmlzaWJpbGl0eUtpbmQuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9WaXNpYmlsaXR5S2luZC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFZpc2liaWxpdHlLaW5kLmphdmEsdiAxLjIgMjAwNC8wNC8xMCAwNDowOTo1MCBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFZpc2liaWxpdHlLaW5kLmphdmEsdiAxLjMgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMjsKIApAQCAtMjMsNiArMjMsOSBAQAogICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGl0ZXJhbHMgb2YgdGhlIGVudW1lcmF0aW9uICc8ZW0+PGI+VmlzaWJpbGl0eSBLaW5kPC9iPjwvZW0+JywKICAqIGFuZCB1dGlsaXR5IG1ldGhvZHMgZm9yIHdvcmtpbmcgd2l0aCB0aGVtLgogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+CisgKiA8IS0tIGJlZ2luLW1vZGVsLWRvYyAtLT4KKyAqIFZpc2liaWxpdHlLaW5kIGlzIGFuIGVudW1lcmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbCB2YWx1ZXM6IJUgcHVibGljIJUgcHJpdmF0ZSCVIHByb3RlY3RlZCCVIHBhY2thZ2UgCisgKiA8IS0tIGVuZC1tb2RlbC1kb2MgLS0+CiAgKiBAc2VlIG9yZy5lY2xpcHNlLnVtbDIuVU1MMlBhY2thZ2UjZ2V0VmlzaWJpbGl0eUtpbmQoKQogICogQG1vZGVsCiAgKiBAZ2VuZXJhdGVkCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL0VsZW1lbnRJbXBsLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL0VsZW1lbnRJbXBsLmphdmEKaW5kZXggZDNhZTYwMC4uZTU4MDg4NyAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9FbGVtZW50SW1wbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvRWxlbWVudEltcGwuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBFbGVtZW50SW1wbC5qYXZhLHYgMS4xNCAyMDA0LzA2LzAyIDE5OjUyOjUzIGtodXNzZXkgRXhwICQKKyAqICRJZDogRWxlbWVudEltcGwuamF2YSx2IDEuMTUgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMi5pbXBsOwogCkBAIC0zOTEsNyArMzkxLDcgQEAKIAkJCUdFVF9BUFBMSUNBQkxFX1NURVJFT1RZUEVTX01FVEhPRCA9IEVsZW1lbnRJbXBsLmNsYXNzLmdldE1ldGhvZCgKIAkJCQkiZ2V0QXBwbGljYWJsZVN0ZXJlb3R5cGVzIiwgbnVsbCk7IC8vJE5PTi1OTFMtMSQKIAkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKLQkJCS8vIGRvIG5vdGhpbmcKKwkJCS8vIGlnbm9yZQogCQl9CiAJfQogCQpAQCAtNDMxLDcgKzQzMSw3IEBACiAJCQlHRVRfQVBQTElFRF9TVEVSRU9UWVBFU19NRVRIT0QgPSBFbGVtZW50SW1wbC5jbGFzcy5nZXRNZXRob2QoCiAJCQkJImdldEFwcGxpZWRTdGVyZW90eXBlcyIsIG51bGwpOyAvLyROT04tTkxTLTEkCiAJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkvLyBkbyBub3RoaW5nCisJCQkvLyBpZ25vcmUKIAkJfQogCX0KIAkKQEAgLTU1NCw3ICs1NTQsNyBAQAogCQkJR0VUX0tFWVdPUkRTX01FVEhPRCA9IEVsZW1lbnRJbXBsLmNsYXNzLmdldE1ldGhvZCgKIAkJCQkiZ2V0S2V5d29yZHMiLCBudWxsKTsgLy8kTk9OLU5MUy0xJAogCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewotCQkJLy8gZG8gbm90aGluZworCQkJLy8gaWdub3JlCiAJCX0KIAl9CiAJCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL05hbWVzcGFjZUltcGwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvTmFtZXNwYWNlSW1wbC5qYXZhCmluZGV4IGQyNjg5MzAuLmJlNzlhNjAgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvTmFtZXNwYWNlSW1wbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvTmFtZXNwYWNlSW1wbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IE5hbWVzcGFjZUltcGwuamF2YSx2IDEuMTEgMjAwNC8wNi8wMiAxOTo1Mjo1MyBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IE5hbWVzcGFjZUltcGwuamF2YSx2IDEuMTIgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMi5pbXBsOwogCkBAIC02NjEsNyArNjYxLDcgQEAKIAkJCUdFVF9JTVBPUlRFRF9QQUNLQUdFU19NRVRIT0QgPSBOYW1lc3BhY2VJbXBsLmNsYXNzLmdldE1ldGhvZCgKIAkJCQkiZ2V0SW1wb3J0ZWRQYWNrYWdlcyIsIG51bGwpOyAvLyROT04tTkxTLTEkCiAJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkvLyBkbyBub3RoaW5nCisJCQkvLyBpZ25vcmUKIAkJfQogCX0KIAkKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvUGFja2FnZUltcGwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvUGFja2FnZUltcGwuamF2YQppbmRleCA2MGM1YmQ5Li45MGQ1N2ZmIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1BhY2thZ2VJbXBsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9QYWNrYWdlSW1wbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFBhY2thZ2VJbXBsLmphdmEsdiAxLjE0IDIwMDQvMDYvMDIgMTk6NTI6NTMga2h1c3NleSBFeHAgJAorICogJElkOiBQYWNrYWdlSW1wbC5qYXZhLHYgMS4xNSAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyLmltcGw7CiAKQEAgLTEwOTksNyArMTA5OSw3IEBACiAJCQlHRVRfQUxMX0FQUExJRURfUFJPRklMRVNfTUVUSE9EID0gUGFja2FnZUltcGwuY2xhc3MuZ2V0TWV0aG9kKAogCQkJCSJnZXRBbGxBcHBsaWVkUHJvZmlsZXMiLCBudWxsKTsgLy8kTk9OLU5MUy0xJAogCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewotCQkJLy8gZG8gbm90aGluZworCQkJLy8gaWdub3JlCiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvUHJvZmlsZUltcGwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvUHJvZmlsZUltcGwuamF2YQppbmRleCBhN2I3MzliLi4yYzA2MGVhIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1Byb2ZpbGVJbXBsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9Qcm9maWxlSW1wbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFByb2ZpbGVJbXBsLmphdmEsdiAxLjkgMjAwNC8wNi8wMiAxOTo1Mjo1MyBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFByb2ZpbGVJbXBsLmphdmEsdiAxLjEwIDIwMDQvMDYvMDMgMDI6NTk6MTgga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDIuaW1wbDsKIApAQCAtNjIyLDcgKzYyMiw3IEBACiAJCQlHRVRfUkVGRVJFTkNFRF9NRVRBQ0xBU1NFU19NRVRIT0QgPSBQcm9maWxlSW1wbC5jbGFzcy5nZXRNZXRob2QoCiAJCQkJImdldFJlZmVyZW5jZWRNZXRhY2xhc3NlcyIsIG51bGwpOyAvLyROT04tTkxTLTEkCiAJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkvLyBkbyBub3RoaW5nCisJCQkvLyBpZ25vcmUKIAkJfQogCX0KIApAQCAtNjUyLDcgKzY1Miw3IEBACiAJCQlHRVRfUkVGRVJFTkNFRF9NRVRBTU9ERUxTX01FVEhPRCA9IFByb2ZpbGVJbXBsLmNsYXNzLmdldE1ldGhvZCgKIAkJCQkiZ2V0UmVmZXJlbmNlZE1ldGFtb2RlbHMiLCBudWxsKTsgLy8kTk9OLU5MUy0xJAogCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewotCQkJLy8gZG8gbm90aGluZworCQkJLy8gaWdub3JlCiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvU3RlcmVvdHlwZUltcGwuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvU3RlcmVvdHlwZUltcGwuamF2YQppbmRleCA4YjAyZWQ3Li44MDc1NGIyIDEwMDY0NAotLS0gYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1N0ZXJlb3R5cGVJbXBsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9TdGVyZW90eXBlSW1wbC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFN0ZXJlb3R5cGVJbXBsLmphdmEsdiAxLjE3IDIwMDQvMDYvMDIgMTk6NTI6NTMga2h1c3NleSBFeHAgJAorICogJElkOiBTdGVyZW90eXBlSW1wbC5qYXZhLHYgMS4xOCAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyLmltcGw7CiAKQEAgLTcxMiw3ICs3MTIsNyBAQAogCQkJR0VUX0FMTF9FWFRFTkRFRF9FX0NMQVNTRVNfTUVUSE9EID0gU3RlcmVvdHlwZUltcGwuY2xhc3MuZ2V0TWV0aG9kKAogCQkJCSJnZXRBbGxFeHRlbmRlZEVDbGFzc2VzIiwgbnVsbCk7IC8vJE5PTi1OTFMtMSQKIAkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKLQkJCS8vIGRvIG5vdGhpbmcKKwkJCS8vIGlnbm9yZQogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGVJbXBsLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1N0cnVjdHVyZWRBY3Rpdml0eU5vZGVJbXBsLmphdmEKaW5kZXggN2U5MmQ4ZC4uODgzMTAxNiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9TdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlSW1wbC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvU3RydWN0dXJlZEFjdGl2aXR5Tm9kZUltcGwuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlSW1wbC5qYXZhLHYgMS4xMSAyMDA0LzA2LzAyIDE5OjUyOjUzIGtodXNzZXkgRXhwICQKKyAqICRJZDogU3RydWN0dXJlZEFjdGl2aXR5Tm9kZUltcGwuamF2YSx2IDEuMTIgMjAwNC8wNi8wMyAwMjo1OToxOCBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMi5pbXBsOwogCkBAIC0xMzI3LDcgKzEzMjcsNyBAQAogCQkJR0VUX0lNUE9SVEVEX1BBQ0tBR0VTX01FVEhPRCA9IFN0cnVjdHVyZWRBY3Rpdml0eU5vZGVJbXBsLmNsYXNzCiAJCQkJLmdldE1ldGhvZCgiZ2V0SW1wb3J0ZWRQYWNrYWdlcyIsIG51bGwpOyAvLyROT04tTkxTLTEkCiAJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkvLyBkbyBub3RoaW5nCisJCQkvLyBpZ25vcmUKIAkJfQogCX0KIAkKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvVU1MMkZhY3RvcnlJbXBsLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1VNTDJGYWN0b3J5SW1wbC5qYXZhCmluZGV4IDgwZWU4ZTcuLjJlYWRlYTYgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvVU1MMkZhY3RvcnlJbXBsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9VTUwyRmFjdG9yeUltcGwuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBVTUwyRmFjdG9yeUltcGwuamF2YSx2IDEuMTEgMjAwNC8wNi8wMiAwNTowMjoyNSBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFVNTDJGYWN0b3J5SW1wbC5qYXZhLHYgMS4xMiAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyLmltcGw7CiAKQEAgLTI2MiwxMCArMjYyLDEwIEBACiAJCQljYXNlIFVNTDJQYWNrYWdlLkxJVEVSQUxfSU5URUdFUjogcmV0dXJuIGNyZWF0ZUxpdGVyYWxJbnRlZ2VyKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkxJVEVSQUxfVU5MSU1JVEVEX05BVFVSQUw6IHJldHVybiBjcmVhdGVMaXRlcmFsVW5saW1pdGVkTmF0dXJhbCgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT05TVFJBSU5UOiByZXR1cm4gY3JlYXRlQ29uc3RyYWludCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5HRU5FUkFMSVpBVElPTjogcmV0dXJuIGNyZWF0ZUdlbmVyYWxpemF0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLklOU1RBTkNFX1NQRUNJRklDQVRJT046IHJldHVybiBjcmVhdGVJbnN0YW5jZVNwZWNpZmljYXRpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuU0xPVDogcmV0dXJuIGNyZWF0ZVNsb3QoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuSU5TVEFOQ0VfVkFMVUU6IHJldHVybiBjcmVhdGVJbnN0YW5jZVZhbHVlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkdFTkVSQUxJWkFUSU9OOiByZXR1cm4gY3JlYXRlR2VuZXJhbGl6YXRpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuRUxFTUVOVF9JTVBPUlQ6IHJldHVybiBjcmVhdGVFbGVtZW50SW1wb3J0KCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlBBQ0tBR0VfSU1QT1JUOiByZXR1cm4gY3JlYXRlUGFja2FnZUltcG9ydCgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5BU1NPQ0lBVElPTjogcmV0dXJuIGNyZWF0ZUFzc29jaWF0aW9uKCk7CkBAIC0yODksNiArMjg5LDE1IEBACiAJCQljYXNlIFVNTDJQYWNrYWdlLlNVQlNUSVRVVElPTjogcmV0dXJuIGNyZWF0ZVN1YnN0aXR1dGlvbigpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUT1JfRU5EOiByZXR1cm4gY3JlYXRlQ29ubmVjdG9yRW5kKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNPTk5FQ1RPUjogcmV0dXJuIGNyZWF0ZUNvbm5lY3RvcigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkZBQ0U6IHJldHVybiBjcmVhdGVJbnRlcmZhY2UoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU1QTEVNRU5UQVRJT046IHJldHVybiBjcmVhdGVJbXBsZW1lbnRhdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5BUlRJRkFDVDogcmV0dXJuIGNyZWF0ZUFydGlmYWN0KCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLk1BTklGRVNUQVRJT046IHJldHVybiBjcmVhdGVNYW5pZmVzdGF0aW9uKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkFDVE9SOiByZXR1cm4gY3JlYXRlQWN0b3IoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5EOiByZXR1cm4gY3JlYXRlRXh0ZW5kKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlVTRV9DQVNFOiByZXR1cm4gY3JlYXRlVXNlQ2FzZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTlNJT05fUE9JTlQ6IHJldHVybiBjcmVhdGVFeHRlbnNpb25Qb2ludCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5JTkNMVURFOiByZXR1cm4gY3JlYXRlSW5jbHVkZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJT046IHJldHVybiBjcmVhdGVBY3Rpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ09OVFJPTF9GTE9XOiByZXR1cm4gY3JlYXRlQ29udHJvbEZsb3coKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuT0JKRUNUX0ZMT1c6IHJldHVybiBjcmVhdGVPYmplY3RGbG93KCk7CkBAIC0zMDAsMjcgKzMwOSwzMCBAQAogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlBVVF9QSU46IHJldHVybiBjcmVhdGVJbnB1dFBpbigpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJVklUWV9QQVJBTUVURVJfTk9ERTogcmV0dXJuIGNyZWF0ZUFjdGl2aXR5UGFyYW1ldGVyTm9kZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5WQUxVRV9QSU46IHJldHVybiBjcmVhdGVWYWx1ZVBpbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5BUlRJRkFDVDogcmV0dXJuIGNyZWF0ZUFydGlmYWN0KCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLk1BTklGRVNUQVRJT046IHJldHVybiBjcmVhdGVNYW5pZmVzdGF0aW9uKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSRkFDRTogcmV0dXJuIGNyZWF0ZUludGVyZmFjZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5JTVBMRU1FTlRBVElPTjogcmV0dXJuIGNyZWF0ZUltcGxlbWVudGF0aW9uKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkFDVE9SOiByZXR1cm4gY3JlYXRlQWN0b3IoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5EOiByZXR1cm4gY3JlYXRlRXh0ZW5kKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlVTRV9DQVNFOiByZXR1cm4gY3JlYXRlVXNlQ2FzZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTlNJT05fUE9JTlQ6IHJldHVybiBjcmVhdGVFeHRlbnNpb25Qb2ludCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5JTkNMVURFOiByZXR1cm4gY3JlYXRlSW5jbHVkZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DQUxMX1RSSUdHRVI6IHJldHVybiBjcmVhdGVDYWxsVHJpZ2dlcigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DSEFOR0VfVFJJR0dFUjogcmV0dXJuIGNyZWF0ZUNoYW5nZVRyaWdnZXIoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUkVDRVBUSU9OOiByZXR1cm4gY3JlYXRlUmVjZXB0aW9uKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNJR05BTDogcmV0dXJuIGNyZWF0ZVNpZ25hbCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5TSUdOQUxfVFJJR0dFUjogcmV0dXJuIGNyZWF0ZVNpZ25hbFRyaWdnZXIoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9UUklHR0VSOiByZXR1cm4gY3JlYXRlVGltZVRyaWdnZXIoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQU5ZX1RSSUdHRVI6IHJldHVybiBjcmVhdGVBbnlUcmlnZ2VyKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTExBQk9SQVRJT05fT0NDVVJSRU5DRTogcmV0dXJuIGNyZWF0ZUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTExBQk9SQVRJT046IHJldHVybiBjcmVhdGVDb2xsYWJvcmF0aW9uKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlBPUlQ6IHJldHVybiBjcmVhdGVQb3J0KCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlZBUklBQkxFOiByZXR1cm4gY3JlYXRlVmFyaWFibGUoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFOiByZXR1cm4gY3JlYXRlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ESVRJT05BTF9OT0RFOiByZXR1cm4gY3JlYXRlQ29uZGl0aW9uYWxOb2RlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNMQVVTRTogcmV0dXJuIGNyZWF0ZUNsYXVzZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5MT09QX05PREU6IHJldHVybiBjcmVhdGVMb29wTm9kZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5URU1QTEFURV9TSUdOQVRVUkU6IHJldHVybiBjcmVhdGVUZW1wbGF0ZVNpZ25hdHVyZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5URU1QTEFURV9QQVJBTUVURVI6IHJldHVybiBjcmVhdGVUZW1wbGF0ZVBhcmFtZXRlcigpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5TVFJJTkdfRVhQUkVTU0lPTjogcmV0dXJuIGNyZWF0ZVN0cmluZ0V4cHJlc3Npb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuVEVNUExBVEVfQklORElORzogcmV0dXJuIGNyZWF0ZVRlbXBsYXRlQmluZGluZygpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5URU1QTEFURV9QQVJBTUVURVJfU1VCU1RJVFVUSU9OOiByZXR1cm4gY3JlYXRlVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ09MTEFCT1JBVElPTjogcmV0dXJuIGNyZWF0ZUNvbGxhYm9yYXRpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuT1BFUkFUSU9OX1RFTVBMQVRFX1BBUkFNRVRFUjogcmV0dXJuIGNyZWF0ZU9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNMQVNTSUZJRVJfVEVNUExBVEVfUEFSQU1FVEVSOiByZXR1cm4gY3JlYXRlQ2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJFREVGSU5BQkxFX1RFTVBMQVRFX1NJR05BVFVSRTogcmV0dXJuIGNyZWF0ZVJlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmUoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ09OTkVDVEFCTEVfRUxFTUVOVF9URU1QTEFURV9QQVJBTUVURVI6IHJldHVybiBjcmVhdGVDb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlcigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5DT0xMQUJPUkFUSU9OX09DQ1VSUkVOQ0U6IHJldHVybiBjcmVhdGVDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5QT1JUOiByZXR1cm4gY3JlYXRlUG9ydCgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkFDVElPTjogcmV0dXJuIGNyZWF0ZUludGVyYWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkxJRkVMSU5FOiByZXR1cm4gY3JlYXRlTGlmZWxpbmUoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuTUVTU0FHRTogcmV0dXJuIGNyZWF0ZU1lc3NhZ2UoKTsKQEAgLTMyOSwyNiArMzQxLDEzIEBACiAJCQljYXNlIFVNTDJQYWNrYWdlLkVYRUNVVElPTl9PQ0NVUlJFTkNFOiByZXR1cm4gY3JlYXRlRXhlY3V0aW9uT2NjdXJyZW5jZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5TVEFURV9JTlZBUklBTlQ6IHJldHVybiBjcmVhdGVTdGF0ZUludmFyaWFudCgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5TVE9QOiByZXR1cm4gY3JlYXRlU3RvcCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5WQVJJQUJMRTogcmV0dXJuIGNyZWF0ZVZhcmlhYmxlKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERTogcmV0dXJuIGNyZWF0ZVN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ09ORElUSU9OQUxfTk9ERTogcmV0dXJuIGNyZWF0ZUNvbmRpdGlvbmFsTm9kZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5DTEFVU0U6IHJldHVybiBjcmVhdGVDbGF1c2UoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuTE9PUF9OT0RFOiByZXR1cm4gY3JlYXRlTG9vcE5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0FMTF9UUklHR0VSOiByZXR1cm4gY3JlYXRlQ2FsbFRyaWdnZXIoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0hBTkdFX1RSSUdHRVI6IHJldHVybiBjcmVhdGVDaGFuZ2VUcmlnZ2VyKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0VQVElPTjogcmV0dXJuIGNyZWF0ZVJlY2VwdGlvbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5TSUdOQUw6IHJldHVybiBjcmVhdGVTaWduYWwoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuU0lHTkFMX1RSSUdHRVI6IHJldHVybiBjcmVhdGVTaWduYWxUcmlnZ2VyKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfVFJJR0dFUjogcmV0dXJuIGNyZWF0ZVRpbWVUcmlnZ2VyKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkFOWV9UUklHR0VSOiByZXR1cm4gY3JlYXRlQW55VHJpZ2dlcigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fTk9ERTogcmV0dXJuIGNyZWF0ZUV4cGFuc2lvbk5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX1JFR0lPTjogcmV0dXJuIGNyZWF0ZUV4cGFuc2lvblJlZ2lvbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5FWENFUFRJT05fSEFORExFUjogcmV0dXJuIGNyZWF0ZUV4Y2VwdGlvbkhhbmRsZXIoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRk9SS19OT0RFOiByZXR1cm4gY3JlYXRlRm9ya05vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSk9JTl9OT0RFOiByZXR1cm4gY3JlYXRlSm9pbk5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRkxPV19GSU5BTF9OT0RFOiByZXR1cm4gY3JlYXRlRmxvd0ZpbmFsTm9kZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5DRU5UUkFMX0JVRkZFUl9OT0RFOiByZXR1cm4gY3JlYXRlQ2VudHJhbEJ1ZmZlck5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQUNUSVZJVFlfUEFSVElUSU9OOiByZXR1cm4gY3JlYXRlQWN0aXZpdHlQYXJ0aXRpb24oKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuU1RBVEVfTUFDSElORTogcmV0dXJuIGNyZWF0ZVN0YXRlTWFjaGluZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5SRUdJT046IHJldHVybiBjcmVhdGVSZWdpb24oKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUFNFVURPU1RBVEU6IHJldHVybiBjcmVhdGVQc2V1ZG9zdGF0ZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5TVEFURTogcmV0dXJuIGNyZWF0ZVN0YXRlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFOiByZXR1cm4gY3JlYXRlQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT046IHJldHVybiBjcmVhdGVUcmFuc2l0aW9uKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkZJTkFMX1NUQVRFOiByZXR1cm4gY3JlYXRlRmluYWxTdGF0ZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DUkVBVEVfT0JKRUNUX0FDVElPTjogcmV0dXJuIGNyZWF0ZUNyZWF0ZU9iamVjdEFjdGlvbigpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5ERVNUUk9ZX09CSkVDVF9BQ1RJT046IHJldHVybiBjcmVhdGVEZXN0cm95T2JqZWN0QWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlRFU1RfSURFTlRJVFlfQUNUSU9OOiByZXR1cm4gY3JlYXRlVGVzdElkZW50aXR5QWN0aW9uKCk7CkBAIC0zNzQsMTMgKzM3MywxNCBAQAogCQkJY2FzZSBVTUwyUGFja2FnZS5TRU5EX09CSkVDVF9BQ1RJT046IHJldHVybiBjcmVhdGVTZW5kT2JqZWN0QWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfT1BFUkFUSU9OX0FDVElPTjogcmV0dXJuIGNyZWF0ZUNhbGxPcGVyYXRpb25BY3Rpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ0FMTF9CRUhBVklPUl9BQ1RJT046IHJldHVybiBjcmVhdGVDYWxsQmVoYXZpb3JBY3Rpb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuU1RBVEVfTUFDSElORTogcmV0dXJuIGNyZWF0ZVN0YXRlTWFjaGluZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5SRUdJT046IHJldHVybiBjcmVhdGVSZWdpb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUFNFVURPU1RBVEU6IHJldHVybiBjcmVhdGVQc2V1ZG9zdGF0ZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5TVEFURTogcmV0dXJuIGNyZWF0ZVN0YXRlKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFOiByZXR1cm4gY3JlYXRlQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT046IHJldHVybiBjcmVhdGVUcmFuc2l0aW9uKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkZJTkFMX1NUQVRFOiByZXR1cm4gY3JlYXRlRmluYWxTdGF0ZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5GT1JLX05PREU6IHJldHVybiBjcmVhdGVGb3JrTm9kZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5KT0lOX05PREU6IHJldHVybiBjcmVhdGVKb2luTm9kZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5GTE9XX0ZJTkFMX05PREU6IHJldHVybiBjcmVhdGVGbG93RmluYWxOb2RlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNFTlRSQUxfQlVGRkVSX05PREU6IHJldHVybiBjcmVhdGVDZW50cmFsQnVmZmVyTm9kZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJVklUWV9QQVJUSVRJT046IHJldHVybiBjcmVhdGVBY3Rpdml0eVBhcnRpdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fTk9ERTogcmV0dXJuIGNyZWF0ZUV4cGFuc2lvbk5vZGUoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX1JFR0lPTjogcmV0dXJuIGNyZWF0ZUV4cGFuc2lvblJlZ2lvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWENFUFRJT05fSEFORExFUjogcmV0dXJuIGNyZWF0ZUV4Y2VwdGlvbkhhbmRsZXIoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJBQ1RJT05fT0NDVVJSRU5DRTogcmV0dXJuIGNyZWF0ZUludGVyYWN0aW9uT2NjdXJyZW5jZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5HQVRFOiByZXR1cm4gY3JlYXRlR2F0ZSgpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5QQVJUX0RFQ09NUE9TSVRJT046IHJldHVybiBjcmVhdGVQYXJ0RGVjb21wb3NpdGlvbigpOwpAQCAtMzg5LDI3ICszODksNiBAQAogCQkJY2FzZSBVTUwyUGFja2FnZS5DT01CSU5FRF9GUkFHTUVOVDogcmV0dXJuIGNyZWF0ZUNvbWJpbmVkRnJhZ21lbnQoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ09OVElOVUFUSU9OOiByZXR1cm4gY3JlYXRlQ29udGludWF0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNPTVBPTkVOVDogcmV0dXJuIGNyZWF0ZUNvbXBvbmVudCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9DT05GT1JNQU5DRTogcmV0dXJuIGNyZWF0ZVByb3RvY29sQ29uZm9ybWFuY2UoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUFJPVE9DT0xfU1RBVEVfTUFDSElORTogcmV0dXJuIGNyZWF0ZVByb3RvY29sU3RhdGVNYWNoaW5lKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlBST1RPQ09MX1RSQU5TSVRJT046IHJldHVybiBjcmVhdGVQcm90b2NvbFRyYW5zaXRpb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9FWFBSRVNTSU9OOiByZXR1cm4gY3JlYXRlVGltZUV4cHJlc3Npb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT046IHJldHVybiBjcmVhdGVEdXJhdGlvbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX09CU0VSVkFUSU9OX0FDVElPTjogcmV0dXJuIGNyZWF0ZVRpbWVPYnNlcnZhdGlvbkFjdGlvbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9JTlRFUlZBTDogcmV0dXJuIGNyZWF0ZUR1cmF0aW9uSW50ZXJ2YWwoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUw6IHJldHVybiBjcmVhdGVJbnRlcnZhbCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX0NPTlNUUkFJTlQ6IHJldHVybiBjcmVhdGVUaW1lQ29uc3RyYWludCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTF9DT05TVFJBSU5UOiByZXR1cm4gY3JlYXRlSW50ZXJ2YWxDb25zdHJhaW50KCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfSU5URVJWQUw6IHJldHVybiBjcmVhdGVUaW1lSW50ZXJ2YWwoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OOiByZXR1cm4gY3JlYXRlRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbigpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9DT05TVFJBSU5UOiByZXR1cm4gY3JlYXRlRHVyYXRpb25Db25zdHJhaW50KCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRBVEFfU1RPUkVfTk9ERTogcmV0dXJuIGNyZWF0ZURhdGFTdG9yZU5vZGUoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT046IHJldHVybiBjcmVhdGVJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24oKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUEFSQU1FVEVSX1NFVDogcmV0dXJuIGNyZWF0ZVBhcmFtZXRlclNldCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UOiByZXR1cm4gY3JlYXRlRGVwbG95bWVudCgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5OT0RFOiByZXR1cm4gY3JlYXRlTm9kZSgpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5ERVZJQ0U6IHJldHVybiBjcmVhdGVEZXZpY2UoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhFQ1VUSU9OX0VOVklST05NRU5UOiByZXR1cm4gY3JlYXRlRXhlY3V0aW9uRW52aXJvbm1lbnQoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ09NTVVOSUNBVElPTl9QQVRIOiByZXR1cm4gY3JlYXRlQ29tbXVuaWNhdGlvblBhdGgoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuUkVBRF9FWFRFTlRfQUNUSU9OOiByZXR1cm4gY3JlYXRlUmVhZEV4dGVudEFjdGlvbigpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5SRUNMQVNTSUZZX09CSkVDVF9BQ1RJT046IHJldHVybiBjcmVhdGVSZWNsYXNzaWZ5T2JqZWN0QWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJFQURfSVNfQ0xBU1NJRklFRF9PQkpFQ1RfQUNUSU9OOiByZXR1cm4gY3JlYXRlUmVhZElzQ2xhc3NpZmllZE9iamVjdEFjdGlvbigpOwpAQCAtNDIyLDYgKzQwMSwyNyBAQAogCQkJY2FzZSBVTUwyUGFja2FnZS5BQ0NFUFRfQ0FMTF9BQ1RJT046IHJldHVybiBjcmVhdGVBY2NlcHRDYWxsQWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJFUExZX0FDVElPTjogcmV0dXJuIGNyZWF0ZVJlcGx5QWN0aW9uKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJBSVNFX0VYQ0VQVElPTl9BQ1RJT046IHJldHVybiBjcmVhdGVSYWlzZUV4Y2VwdGlvbkFjdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5EQVRBX1NUT1JFX05PREU6IHJldHVybiBjcmVhdGVEYXRhU3RvcmVOb2RlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OOiByZXR1cm4gY3JlYXRlSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlBBUkFNRVRFUl9TRVQ6IHJldHVybiBjcmVhdGVQYXJhbWV0ZXJTZXQoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9FWFBSRVNTSU9OOiByZXR1cm4gY3JlYXRlVGltZUV4cHJlc3Npb24oKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT046IHJldHVybiBjcmVhdGVEdXJhdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX09CU0VSVkFUSU9OX0FDVElPTjogcmV0dXJuIGNyZWF0ZVRpbWVPYnNlcnZhdGlvbkFjdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9JTlRFUlZBTDogcmV0dXJuIGNyZWF0ZUR1cmF0aW9uSW50ZXJ2YWwoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUw6IHJldHVybiBjcmVhdGVJbnRlcnZhbCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX0NPTlNUUkFJTlQ6IHJldHVybiBjcmVhdGVUaW1lQ29uc3RyYWludCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTF9DT05TVFJBSU5UOiByZXR1cm4gY3JlYXRlSW50ZXJ2YWxDb25zdHJhaW50KCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfSU5URVJWQUw6IHJldHVybiBjcmVhdGVUaW1lSW50ZXJ2YWwoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OOiByZXR1cm4gY3JlYXRlRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbigpOworCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9DT05TVFJBSU5UOiByZXR1cm4gY3JlYXRlRHVyYXRpb25Db25zdHJhaW50KCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkRFUExPWU1FTlQ6IHJldHVybiBjcmVhdGVEZXBsb3ltZW50KCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLk5PREU6IHJldHVybiBjcmVhdGVOb2RlKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkRFVklDRTogcmV0dXJuIGNyZWF0ZURldmljZSgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWEVDVVRJT05fRU5WSVJPTk1FTlQ6IHJldHVybiBjcmVhdGVFeGVjdXRpb25FbnZpcm9ubWVudCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT01NVU5JQ0FUSU9OX1BBVEg6IHJldHVybiBjcmVhdGVDb21tdW5pY2F0aW9uUGF0aCgpOworCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9DT05GT1JNQU5DRTogcmV0dXJuIGNyZWF0ZVByb3RvY29sQ29uZm9ybWFuY2UoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUFJPVE9DT0xfU1RBVEVfTUFDSElORTogcmV0dXJuIGNyZWF0ZVByb3RvY29sU3RhdGVNYWNoaW5lKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlBST1RPQ09MX1RSQU5TSVRJT046IHJldHVybiBjcmVhdGVQcm90b2NvbFRyYW5zaXRpb24oKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuREVQTE9ZTUVOVF9TUEVDSUZJQ0FUSU9OOiByZXR1cm4gY3JlYXRlRGVwbG95bWVudFNwZWNpZmljYXRpb24oKTsKIAkJCWRlZmF1bHQ6CiAJCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIGNsYXNzICciICsgZUNsYXNzLmdldE5hbWUoKSArICInIGlzIG5vdCBhIHZhbGlkIGNsYXNzaWZpZXIiKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCkBAIC00NTAsNiArNDUwLDExIEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUaGUgdmFsdWUgJyIgKyBpbml0aWFsVmFsdWUgKyAiJyBpcyBub3QgYSB2YWxpZCBlbnVtZXJhdG9yIG9mICciICsgZURhdGFUeXBlLmdldE5hbWUoKSArICInIik7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJCAvLyROT04tTkxTLTMkCiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ0FMTF9DT05DVVJSRU5DWV9LSU5EOiB7CisJCQkJQ2FsbENvbmN1cnJlbmN5S2luZCByZXN1bHQgPSBDYWxsQ29uY3VycmVuY3lLaW5kLmdldChpbml0aWFsVmFsdWUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIHZhbHVlICciICsgaW5pdGlhbFZhbHVlICsgIicgaXMgbm90IGEgdmFsaWQgZW51bWVyYXRvciBvZiAnIiArIGVEYXRhVHlwZS5nZXROYW1lKCkgKyAiJyIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQgLy8kTk9OLU5MUy0zJAorCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CiAJCQljYXNlIFVNTDJQYWNrYWdlLk1FU1NBR0VfS0lORDogewogCQkJCU1lc3NhZ2VLaW5kIHJlc3VsdCA9IE1lc3NhZ2VLaW5kLmdldChpbml0aWFsVmFsdWUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIHZhbHVlICciICsgaW5pdGlhbFZhbHVlICsgIicgaXMgbm90IGEgdmFsaWQgZW51bWVyYXRvciBvZiAnIiArIGVEYXRhVHlwZS5nZXROYW1lKCkgKyAiJyIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQgLy8kTk9OLU5MUy0zJApAQCAtNDYwLDE2ICs0NjUsNiBAQAogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIHZhbHVlICciICsgaW5pdGlhbFZhbHVlICsgIicgaXMgbm90IGEgdmFsaWQgZW51bWVyYXRvciBvZiAnIiArIGVEYXRhVHlwZS5nZXROYW1lKCkgKyAiJyIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQgLy8kTk9OLU5MUy0zJAogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfQ09OQ1VSUkVOQ1lfS0lORDogewotCQkJCUNhbGxDb25jdXJyZW5jeUtpbmQgcmVzdWx0ID0gQ2FsbENvbmN1cnJlbmN5S2luZC5nZXQoaW5pdGlhbFZhbHVlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fS0lORDogewotCQkJCUV4cGFuc2lvbktpbmQgcmVzdWx0ID0gRXhwYW5zaW9uS2luZC5nZXQoaW5pdGlhbFZhbHVlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQogCQkJY2FzZSBVTUwyUGFja2FnZS5UUkFOU0lUSU9OX0tJTkQ6IHsKIAkJCQlUcmFuc2l0aW9uS2luZCByZXN1bHQgPSBUcmFuc2l0aW9uS2luZC5nZXQoaW5pdGlhbFZhbHVlKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKQEAgLTQ4MCw2ICs0NzUsMTEgQEAKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fS0lORDogeworCQkJCUV4cGFuc2lvbktpbmQgcmVzdWx0ID0gRXhwYW5zaW9uS2luZC5nZXQoaW5pdGlhbFZhbHVlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkFDVElPTl9PUEVSQVRPUjogewogCQkJCUludGVyYWN0aW9uT3BlcmF0b3IgcmVzdWx0ID0gSW50ZXJhY3Rpb25PcGVyYXRvci5nZXQoaW5pdGlhbFZhbHVlKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSB2YWx1ZSAnIiArIGluaXRpYWxWYWx1ZSArICInIGlzIG5vdCBhIHZhbGlkIGVudW1lcmF0b3Igb2YgJyIgKyBlRGF0YVR5cGUuZ2V0TmFtZSgpICsgIiciKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKQEAgLTUzMCwxOCArNTMwLDE4IEBACiAJCQkJcmV0dXJuIGluc3RhbmNlVmFsdWUgPT0gbnVsbCA/IG51bGwgOiBpbnN0YW5jZVZhbHVlLnRvU3RyaW5nKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkFHR1JFR0FUSU9OX0tJTkQ6CiAJCQkJcmV0dXJuIGluc3RhbmNlVmFsdWUgPT0gbnVsbCA/IG51bGwgOiBpbnN0YW5jZVZhbHVlLnRvU3RyaW5nKCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfQ09OQ1VSUkVOQ1lfS0lORDoKKwkJCQlyZXR1cm4gaW5zdGFuY2VWYWx1ZSA9PSBudWxsID8gbnVsbCA6IGluc3RhbmNlVmFsdWUudG9TdHJpbmcoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuTUVTU0FHRV9LSU5EOgogCQkJCXJldHVybiBpbnN0YW5jZVZhbHVlID09IG51bGwgPyBudWxsIDogaW5zdGFuY2VWYWx1ZS50b1N0cmluZygpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5NRVNTQUdFX1NPUlQ6CiAJCQkJcmV0dXJuIGluc3RhbmNlVmFsdWUgPT0gbnVsbCA/IG51bGwgOiBpbnN0YW5jZVZhbHVlLnRvU3RyaW5nKCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfQ09OQ1VSUkVOQ1lfS0lORDoKLQkJCQlyZXR1cm4gaW5zdGFuY2VWYWx1ZSA9PSBudWxsID8gbnVsbCA6IGluc3RhbmNlVmFsdWUudG9TdHJpbmcoKTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX0tJTkQ6Ci0JCQkJcmV0dXJuIGluc3RhbmNlVmFsdWUgPT0gbnVsbCA/IG51bGwgOiBpbnN0YW5jZVZhbHVlLnRvU3RyaW5nKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT05fS0lORDoKIAkJCQlyZXR1cm4gaW5zdGFuY2VWYWx1ZSA9PSBudWxsID8gbnVsbCA6IGluc3RhbmNlVmFsdWUudG9TdHJpbmcoKTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuUFNFVURPU1RBVEVfS0lORDoKIAkJCQlyZXR1cm4gaW5zdGFuY2VWYWx1ZSA9PSBudWxsID8gbnVsbCA6IGluc3RhbmNlVmFsdWUudG9TdHJpbmcoKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX0tJTkQ6CisJCQkJcmV0dXJuIGluc3RhbmNlVmFsdWUgPT0gbnVsbCA/IG51bGwgOiBpbnN0YW5jZVZhbHVlLnRvU3RyaW5nKCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSQUNUSU9OX09QRVJBVE9SOgogCQkJCXJldHVybiBpbnN0YW5jZVZhbHVlID09IG51bGwgPyBudWxsIDogaW5zdGFuY2VWYWx1ZS50b1N0cmluZygpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUT1JfS0lORDoKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvVU1MMlBhY2thZ2VJbXBsLmphdmEgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi9pbXBsL1VNTDJQYWNrYWdlSW1wbC5qYXZhCmluZGV4IDVlMzQ2MGEuLjIwOWMwMGEgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL2ltcGwvVU1MMlBhY2thZ2VJbXBsLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvaW1wbC9VTUwyUGFja2FnZUltcGwuamF2YQpAQCAtOCw3ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKgotICogJElkOiBVTUwyUGFja2FnZUltcGwuamF2YSx2IDEuMTEgMjAwNC8wNi8wMiAwNTowMjoyNiBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFVNTDJQYWNrYWdlSW1wbC5qYXZhLHYgMS4xMiAyMDA0LzA2LzAzIDAyOjU5OjE4IGtodXNzZXkgRXhwICQKICAqLwogcGFja2FnZSBvcmcuZWNsaXBzZS51bWwyLmltcGw7CiAKQEAgLTkwODYsNiArOTA4NiwyMCBAQAogCQljcmVhdGVFUmVmZXJlbmNlKG11bHRpcGxpY2l0eUVsZW1lbnRFQ2xhc3MsIE1VTFRJUExJQ0lUWV9FTEVNRU5UX19VUFBFUl9WQUxVRSk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UobXVsdGlwbGljaXR5RWxlbWVudEVDbGFzcywgTVVMVElQTElDSVRZX0VMRU1FTlRfX0xPV0VSX1ZBTFVFKTsKIAorCQluYW1lZEVsZW1lbnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoTkFNRURfRUxFTUVOVCk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUobmFtZWRFbGVtZW50RUNsYXNzLCBOQU1FRF9FTEVNRU5UX19OQU1FKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShuYW1lZEVsZW1lbnRFQ2xhc3MsIE5BTUVEX0VMRU1FTlRfX1FVQUxJRklFRF9OQU1FKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShuYW1lZEVsZW1lbnRFQ2xhc3MsIE5BTUVEX0VMRU1FTlRfX1ZJU0lCSUxJVFkpOworCQljcmVhdGVFUmVmZXJlbmNlKG5hbWVkRWxlbWVudEVDbGFzcywgTkFNRURfRUxFTUVOVF9fQ0xJRU5UX0RFUEVOREVOQ1kpOworCQljcmVhdGVFUmVmZXJlbmNlKG5hbWVkRWxlbWVudEVDbGFzcywgTkFNRURfRUxFTUVOVF9fTkFNRV9FWFBSRVNTSU9OKTsKKworCQluYW1lc3BhY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoTkFNRVNQQUNFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShuYW1lc3BhY2VFQ2xhc3MsIE5BTUVTUEFDRV9fTUVNQkVSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShuYW1lc3BhY2VFQ2xhc3MsIE5BTUVTUEFDRV9fT1dORURfUlVMRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UobmFtZXNwYWNlRUNsYXNzLCBOQU1FU1BBQ0VfX0lNUE9SVEVEX01FTUJFUik7CisJCWNyZWF0ZUVSZWZlcmVuY2UobmFtZXNwYWNlRUNsYXNzLCBOQU1FU1BBQ0VfX0VMRU1FTlRfSU1QT1JUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShuYW1lc3BhY2VFQ2xhc3MsIE5BTUVTUEFDRV9fUEFDS0FHRV9JTVBPUlQpOworCiAJCWRpcmVjdGVkUmVsYXRpb25zaGlwRUNsYXNzID0gY3JlYXRlRUNsYXNzKERJUkVDVEVEX1JFTEFUSU9OU0hJUCk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UoZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MsIERJUkVDVEVEX1JFTEFUSU9OU0hJUF9fU09VUkNFKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShkaXJlY3RlZFJlbGF0aW9uc2hpcEVDbGFzcywgRElSRUNURURfUkVMQVRJT05TSElQX19UQVJHRVQpOwpAQCAtOTExMCwyMCArOTEyNCw2IEBACiAJCWNyZWF0ZUVSZWZlcmVuY2UoY29tbWVudEVDbGFzcywgQ09NTUVOVF9fQU5OT1RBVEVEX0VMRU1FTlQpOwogCQljcmVhdGVFUmVmZXJlbmNlKGNvbW1lbnRFQ2xhc3MsIENPTU1FTlRfX0JPRFlfRVhQUkVTU0lPTik7CiAKLQkJbmFtZWRFbGVtZW50RUNsYXNzID0gY3JlYXRlRUNsYXNzKE5BTUVEX0VMRU1FTlQpOwotCQljcmVhdGVFQXR0cmlidXRlKG5hbWVkRWxlbWVudEVDbGFzcywgTkFNRURfRUxFTUVOVF9fTkFNRSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUobmFtZWRFbGVtZW50RUNsYXNzLCBOQU1FRF9FTEVNRU5UX19RVUFMSUZJRURfTkFNRSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUobmFtZWRFbGVtZW50RUNsYXNzLCBOQU1FRF9FTEVNRU5UX19WSVNJQklMSVRZKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShuYW1lZEVsZW1lbnRFQ2xhc3MsIE5BTUVEX0VMRU1FTlRfX0NMSUVOVF9ERVBFTkRFTkNZKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShuYW1lZEVsZW1lbnRFQ2xhc3MsIE5BTUVEX0VMRU1FTlRfX05BTUVfRVhQUkVTU0lPTik7Ci0KLQkJbmFtZXNwYWNlRUNsYXNzID0gY3JlYXRlRUNsYXNzKE5BTUVTUEFDRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobmFtZXNwYWNlRUNsYXNzLCBOQU1FU1BBQ0VfX01FTUJFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobmFtZXNwYWNlRUNsYXNzLCBOQU1FU1BBQ0VfX09XTkVEX1JVTEUpOwotCQljcmVhdGVFUmVmZXJlbmNlKG5hbWVzcGFjZUVDbGFzcywgTkFNRVNQQUNFX19JTVBPUlRFRF9NRU1CRVIpOwotCQljcmVhdGVFUmVmZXJlbmNlKG5hbWVzcGFjZUVDbGFzcywgTkFNRVNQQUNFX19FTEVNRU5UX0lNUE9SVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobmFtZXNwYWNlRUNsYXNzLCBOQU1FU1BBQ0VfX1BBQ0tBR0VfSU1QT1JUKTsKLQogCQljbGFzc0VDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDTEFTUyk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UoY2xhc3NFQ2xhc3MsIENMQVNTX19PV05FRF9PUEVSQVRJT04pOwogCQljcmVhdGVFUmVmZXJlbmNlKGNsYXNzRUNsYXNzLCBDTEFTU19fU1VQRVJfQ0xBU1MpOwpAQCAtOTI1MywxMiArOTI1Myw2IEBACiAJCWNyZWF0ZUVSZWZlcmVuY2UocmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLCBSRURFRklOQUJMRV9FTEVNRU5UX19SRURFRklOSVRJT05fQ09OVEVYVCk7CiAJCWNyZWF0ZUVBdHRyaWJ1dGUocmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLCBSRURFRklOQUJMRV9FTEVNRU5UX19JU19MRUFGKTsKIAotCQlnZW5lcmFsaXphdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhHRU5FUkFMSVpBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZ2VuZXJhbGl6YXRpb25FQ2xhc3MsIEdFTkVSQUxJWkFUSU9OX19TUEVDSUZJQyk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZ2VuZXJhbGl6YXRpb25FQ2xhc3MsIEdFTkVSQUxJWkFUSU9OX19HRU5FUkFMKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShnZW5lcmFsaXphdGlvbkVDbGFzcywgR0VORVJBTElaQVRJT05fX0lTX1NVQlNUSVRVVEFCTEUpOwotCQljcmVhdGVFUmVmZXJlbmNlKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTElaQVRJT05fU0VUKTsKLQogCQlpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5TVEFOQ0VfU1BFQ0lGSUNBVElPTik7CiAJCWNyZWF0ZUVSZWZlcmVuY2UoaW5zdGFuY2VTcGVjaWZpY2F0aW9uRUNsYXNzLCBJTlNUQU5DRV9TUEVDSUZJQ0FUSU9OX19TTE9UKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MsIElOU1RBTkNFX1NQRUNJRklDQVRJT05fX0NMQVNTSUZJRVIpOwpAQCAtOTI3Miw2ICs5MjY2LDEyIEBACiAJCWluc3RhbmNlVmFsdWVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5TVEFOQ0VfVkFMVUUpOwogCQljcmVhdGVFUmVmZXJlbmNlKGluc3RhbmNlVmFsdWVFQ2xhc3MsIElOU1RBTkNFX1ZBTFVFX19JTlNUQU5DRSk7CiAKKwkJZ2VuZXJhbGl6YXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoR0VORVJBTElaQVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBHRU5FUkFMSVpBVElPTl9fU1BFQ0lGSUMpOworCQljcmVhdGVFUmVmZXJlbmNlKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBHRU5FUkFMSVpBVElPTl9fR0VORVJBTCk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoZ2VuZXJhbGl6YXRpb25FQ2xhc3MsIEdFTkVSQUxJWkFUSU9OX19JU19TVUJTVElUVVRBQkxFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShnZW5lcmFsaXphdGlvbkVDbGFzcywgR0VORVJBTElaQVRJT05fX0dFTkVSQUxJWkFUSU9OX1NFVCk7CisKIAkJcGFja2FnZWFibGVFbGVtZW50RUNsYXNzID0gY3JlYXRlRUNsYXNzKFBBQ0tBR0VBQkxFX0VMRU1FTlQpOwogCQljcmVhdGVFQXR0cmlidXRlKHBhY2thZ2VhYmxlRWxlbWVudEVDbGFzcywgUEFDS0FHRUFCTEVfRUxFTUVOVF9fUEFDS0FHRUFCTEVfRUxFTUVOVF9WSVNJQklMSVRZKTsKIApAQCAtOTQwMCw2ICs5NDAwLDQ5IEBACiAJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RydWN0dXJlZENsYXNzaWZpZXJFQ2xhc3MsIFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fUk9MRSk7CiAJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RydWN0dXJlZENsYXNzaWZpZXJFQ2xhc3MsIFNUUlVDVFVSRURfQ0xBU1NJRklFUl9fT1dORURfQ09OTkVDVE9SKTsKIAorCQlpbnRlcmZhY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5URVJGQUNFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcmZhY2VFQ2xhc3MsIElOVEVSRkFDRV9fT1dORURfQVRUUklCVVRFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcmZhY2VFQ2xhc3MsIElOVEVSRkFDRV9fT1dORURfT1BFUkFUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcmZhY2VFQ2xhc3MsIElOVEVSRkFDRV9fUkVERUZJTkVEX0lOVEVSRkFDRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX05FU1RFRF9DTEFTU0lGSUVSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcmZhY2VFQ2xhc3MsIElOVEVSRkFDRV9fT1dORURfUkVDRVBUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcmZhY2VFQ2xhc3MsIElOVEVSRkFDRV9fUFJPVE9DT0wpOworCisJCWltcGxlbWVudGF0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKElNUExFTUVOVEFUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbXBsZW1lbnRhdGlvbkVDbGFzcywgSU1QTEVNRU5UQVRJT05fX0NPTlRSQUNUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbXBsZW1lbnRhdGlvbkVDbGFzcywgSU1QTEVNRU5UQVRJT05fX0lNUExFTUVOVElOR19DTEFTU0lGSUVSKTsKKworCQlhcnRpZmFjdEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhBUlRJRkFDVCk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoYXJ0aWZhY3RFQ2xhc3MsIEFSVElGQUNUX19GSUxFX05BTUUpOworCQljcmVhdGVFUmVmZXJlbmNlKGFydGlmYWN0RUNsYXNzLCBBUlRJRkFDVF9fTkVTVEVEX0FSVElGQUNUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShhcnRpZmFjdEVDbGFzcywgQVJUSUZBQ1RfX01BTklGRVNUQVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGFydGlmYWN0RUNsYXNzLCBBUlRJRkFDVF9fT1dORURfT1BFUkFUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShhcnRpZmFjdEVDbGFzcywgQVJUSUZBQ1RfX09XTkVEX0FUVFJJQlVURSk7CisKKwkJbWFuaWZlc3RhdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhNQU5JRkVTVEFUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShtYW5pZmVzdGF0aW9uRUNsYXNzLCBNQU5JRkVTVEFUSU9OX19VVElMSVpFRF9FTEVNRU5UKTsKKworCQlhY3RvckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhBQ1RPUik7CisKKwkJZXh0ZW5kRUNsYXNzID0gY3JlYXRlRUNsYXNzKEVYVEVORCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZXh0ZW5kRUNsYXNzLCBFWFRFTkRfX0VYVEVOREVEX0NBU0UpOworCQljcmVhdGVFUmVmZXJlbmNlKGV4dGVuZEVDbGFzcywgRVhURU5EX19FWFRFTlNJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGV4dGVuZEVDbGFzcywgRVhURU5EX19DT05ESVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGV4dGVuZEVDbGFzcywgRVhURU5EX19FWFRFTlNJT05fTE9DQVRJT04pOworCisJCXVzZUNhc2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVVNFX0NBU0UpOworCQljcmVhdGVFUmVmZXJlbmNlKHVzZUNhc2VFQ2xhc3MsIFVTRV9DQVNFX19JTkNMVURFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fRVhURU5EKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fRVhURU5TSU9OX1BPSU5UKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fU1VCSkVDVCk7CisKKwkJZXh0ZW5zaW9uUG9pbnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRVhURU5TSU9OX1BPSU5UKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShleHRlbnNpb25Qb2ludEVDbGFzcywgRVhURU5TSU9OX1BPSU5UX19VU0VfQ0FTRSk7CisKKwkJaW5jbHVkZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhJTkNMVURFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbmNsdWRlRUNsYXNzLCBJTkNMVURFX19JTkNMVURJTkdfQ0FTRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoaW5jbHVkZUVDbGFzcywgSU5DTFVERV9fQURESVRJT04pOworCiAJCWFjdGl2aXR5RWRnZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhBQ1RJVklUWV9FREdFKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eUVkZ2VFQ2xhc3MsIEFDVElWSVRZX0VER0VfX0FDVElWSVRZKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eUVkZ2VFQ2xhc3MsIEFDVElWSVRZX0VER0VfX1NPVVJDRSk7CkBAIC05NDc2LDQ4ICs5NTE5LDgzIEBACiAJCXZhbHVlUGluRUNsYXNzID0gY3JlYXRlRUNsYXNzKFZBTFVFX1BJTik7CiAJCWNyZWF0ZUVSZWZlcmVuY2UodmFsdWVQaW5FQ2xhc3MsIFZBTFVFX1BJTl9fVkFMVUUpOwogCi0JCWFydGlmYWN0RUNsYXNzID0gY3JlYXRlRUNsYXNzKEFSVElGQUNUKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShhcnRpZmFjdEVDbGFzcywgQVJUSUZBQ1RfX0ZJTEVfTkFNRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoYXJ0aWZhY3RFQ2xhc3MsIEFSVElGQUNUX19ORVNURURfQVJUSUZBQ1QpOwotCQljcmVhdGVFUmVmZXJlbmNlKGFydGlmYWN0RUNsYXNzLCBBUlRJRkFDVF9fTUFOSUZFU1RBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoYXJ0aWZhY3RFQ2xhc3MsIEFSVElGQUNUX19PV05FRF9PUEVSQVRJT04pOwotCQljcmVhdGVFUmVmZXJlbmNlKGFydGlmYWN0RUNsYXNzLCBBUlRJRkFDVF9fT1dORURfQVRUUklCVVRFKTsKKwkJY2FsbFRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ0FMTF9UUklHR0VSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShjYWxsVHJpZ2dlckVDbGFzcywgQ0FMTF9UUklHR0VSX19PUEVSQVRJT04pOwogCi0JCW1hbmlmZXN0YXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoTUFOSUZFU1RBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobWFuaWZlc3RhdGlvbkVDbGFzcywgTUFOSUZFU1RBVElPTl9fVVRJTElaRURfRUxFTUVOVCk7CisJCW1lc3NhZ2VUcmlnZ2VyRUNsYXNzID0gY3JlYXRlRUNsYXNzKE1FU1NBR0VfVFJJR0dFUik7CiAKLQkJaW50ZXJmYWNlRUNsYXNzID0gY3JlYXRlRUNsYXNzKElOVEVSRkFDRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX09XTkVEX0FUVFJJQlVURSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX09XTkVEX09QRVJBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX1JFREVGSU5FRF9JTlRFUkZBQ0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKGludGVyZmFjZUVDbGFzcywgSU5URVJGQUNFX19ORVNURURfQ0xBU1NJRklFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX09XTkVEX1JFQ0VQVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJmYWNlRUNsYXNzLCBJTlRFUkZBQ0VfX1BST1RPQ09MKTsKKwkJY2hhbmdlVHJpZ2dlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDSEFOR0VfVFJJR0dFUik7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY2hhbmdlVHJpZ2dlckVDbGFzcywgQ0hBTkdFX1RSSUdHRVJfX0NIQU5HRV9FWFBSRVNTSU9OKTsKIAotCQlpbXBsZW1lbnRhdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhJTVBMRU1FTlRBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW1wbGVtZW50YXRpb25FQ2xhc3MsIElNUExFTUVOVEFUSU9OX19DT05UUkFDVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW1wbGVtZW50YXRpb25FQ2xhc3MsIElNUExFTUVOVEFUSU9OX19JTVBMRU1FTlRJTkdfQ0xBU1NJRklFUik7CisJCXRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVFJJR0dFUik7CisJCWNyZWF0ZUVSZWZlcmVuY2UodHJpZ2dlckVDbGFzcywgVFJJR0dFUl9fUE9SVCk7CiAKLQkJYWN0b3JFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQUNUT1IpOworCQlyZWNlcHRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUkVDRVBUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShyZWNlcHRpb25FQ2xhc3MsIFJFQ0VQVElPTl9fU0lHTkFMKTsKIAotCQlleHRlbmRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRVhURU5EKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShleHRlbmRFQ2xhc3MsIEVYVEVORF9fRVhURU5ERURfQ0FTRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXh0ZW5kRUNsYXNzLCBFWFRFTkRfX0VYVEVOU0lPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXh0ZW5kRUNsYXNzLCBFWFRFTkRfX0NPTkRJVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXh0ZW5kRUNsYXNzLCBFWFRFTkRfX0VYVEVOU0lPTl9MT0NBVElPTik7CisJCXNpZ25hbEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTSUdOQUwpOworCQljcmVhdGVFUmVmZXJlbmNlKHNpZ25hbEVDbGFzcywgU0lHTkFMX19PV05FRF9BVFRSSUJVVEUpOwogCi0JCXVzZUNhc2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVVNFX0NBU0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKHVzZUNhc2VFQ2xhc3MsIFVTRV9DQVNFX19JTkNMVURFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fRVhURU5EKTsKLQkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fRVhURU5TSU9OX1BPSU5UKTsKLQkJY3JlYXRlRVJlZmVyZW5jZSh1c2VDYXNlRUNsYXNzLCBVU0VfQ0FTRV9fU1VCSkVDVCk7CisJCXNpZ25hbFRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoU0lHTkFMX1RSSUdHRVIpOworCQljcmVhdGVFUmVmZXJlbmNlKHNpZ25hbFRyaWdnZXJFQ2xhc3MsIFNJR05BTF9UUklHR0VSX19TSUdOQUwpOwogCi0JCWV4dGVuc2lvblBvaW50RUNsYXNzID0gY3JlYXRlRUNsYXNzKEVYVEVOU0lPTl9QT0lOVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXh0ZW5zaW9uUG9pbnRFQ2xhc3MsIEVYVEVOU0lPTl9QT0lOVF9fVVNFX0NBU0UpOworCQl0aW1lVHJpZ2dlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhUSU1FX1RSSUdHRVIpOworCQljcmVhdGVFQXR0cmlidXRlKHRpbWVUcmlnZ2VyRUNsYXNzLCBUSU1FX1RSSUdHRVJfX0lTX1JFTEFUSVZFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh0aW1lVHJpZ2dlckVDbGFzcywgVElNRV9UUklHR0VSX19XSEVOKTsKIAotCQlpbmNsdWRlRUNsYXNzID0gY3JlYXRlRUNsYXNzKElOQ0xVREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKGluY2x1ZGVFQ2xhc3MsIElOQ0xVREVfX0lOQ0xVRElOR19DQVNFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShpbmNsdWRlRUNsYXNzLCBJTkNMVURFX19BRERJVElPTik7CisJCWFueVRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQU5ZX1RSSUdHRVIpOworCisJCWNvbGxhYm9yYXRpb25PY2N1cnJlbmNlRUNsYXNzID0gY3JlYXRlRUNsYXNzKENPTExBQk9SQVRJT05fT0NDVVJSRU5DRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MsIENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fVFlQRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MsIENPTExBQk9SQVRJT05fT0NDVVJSRU5DRV9fUk9MRV9CSU5ESU5HKTsKKworCQljb2xsYWJvcmF0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKENPTExBQk9SQVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGNvbGxhYm9yYXRpb25FQ2xhc3MsIENPTExBQk9SQVRJT05fX0NPTExBQk9SQVRJT05fUk9MRSk7CisKKwkJcG9ydEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhQT1JUKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShwb3J0RUNsYXNzLCBQT1JUX19JU19CRUhBVklPUik7CisJCWNyZWF0ZUVBdHRyaWJ1dGUocG9ydEVDbGFzcywgUE9SVF9fSVNfU0VSVklDRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UocG9ydEVDbGFzcywgUE9SVF9fUkVRVUlSRUQpOworCQljcmVhdGVFUmVmZXJlbmNlKHBvcnRFQ2xhc3MsIFBPUlRfX1JFREVGSU5FRF9QT1JUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShwb3J0RUNsYXNzLCBQT1JUX19QUk9WSURFRCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UocG9ydEVDbGFzcywgUE9SVF9fUFJPVE9DT0wpOworCisJCWVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVIpOworCQljcmVhdGVFUmVmZXJlbmNlKGVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MsIEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSX19PV05FRF9QT1JUKTsKKworCQl2YXJpYWJsZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhWQVJJQUJMRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UodmFyaWFibGVFQ2xhc3MsIFZBUklBQkxFX19TQ09QRSk7CisKKwkJc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTVFJVQ1RVUkVEX0FDVElWSVRZX05PREUpOworCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVkFSSUFCTEUpOworCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX05PREUpOworCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX0VER0UpOworCQljcmVhdGVFQXR0cmlidXRlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTVVTVF9JU09MQVRFKTsKKworCQljb25kaXRpb25hbE5vZGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ09ORElUSU9OQUxfTk9ERSk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoY29uZGl0aW9uYWxOb2RlRUNsYXNzLCBDT05ESVRJT05BTF9OT0RFX19JU19ERVRFUk1JTkFURSk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoY29uZGl0aW9uYWxOb2RlRUNsYXNzLCBDT05ESVRJT05BTF9OT0RFX19JU19BU1NVUkVEKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShjb25kaXRpb25hbE5vZGVFQ2xhc3MsIENPTkRJVElPTkFMX05PREVfX0NMQVVTRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY29uZGl0aW9uYWxOb2RlRUNsYXNzLCBDT05ESVRJT05BTF9OT0RFX19SRVNVTFQpOworCisJCWNsYXVzZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDTEFVU0UpOworCQljcmVhdGVFUmVmZXJlbmNlKGNsYXVzZUVDbGFzcywgQ0xBVVNFX19URVNUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShjbGF1c2VFQ2xhc3MsIENMQVVTRV9fQk9EWSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY2xhdXNlRUNsYXNzLCBDTEFVU0VfX1BSRURFQ0VTU09SX0NMQVVTRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoY2xhdXNlRUNsYXNzLCBDTEFVU0VfX1NVQ0NFU1NPUl9DTEFVU0UpOworCQljcmVhdGVFUmVmZXJlbmNlKGNsYXVzZUVDbGFzcywgQ0xBVVNFX19ERUNJREVSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShjbGF1c2VFQ2xhc3MsIENMQVVTRV9fQk9EWV9PVVRQVVQpOworCisJCWxvb3BOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKExPT1BfTk9ERSk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fSVNfVEVTVEVEX0ZJUlNUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShsb29wTm9kZUVDbGFzcywgTE9PUF9OT0RFX19CT0RZX1BBUlQpOworCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1NFVFVQX1BBUlQpOworCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX0RFQ0lERVIpOworCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1RFU1QpOworCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1JFU1VMVCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fTE9PUF9WQVJJQUJMRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fQk9EWV9PVVRQVVQpOworCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX0xPT1BfVkFSSUFCTEVfSU5QVVQpOwogCiAJCXRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzID0gY3JlYXRlRUNsYXNzKFRFTVBMQVRFX1NJR05BVFVSRSk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UodGVtcGxhdGVTaWduYXR1cmVFQ2xhc3MsIFRFTVBMQVRFX1NJR05BVFVSRV9fUEFSQU1FVEVSKTsKQEAgLTk1NTYsOSArOTYzNCw2IEBACiAJCWNyZWF0ZUVSZWZlcmVuY2UodGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb25FQ2xhc3MsIFRFTVBMQVRFX1BBUkFNRVRFUl9TVUJTVElUVVRJT05fX0FDVFVBTCk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UodGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb25FQ2xhc3MsIFRFTVBMQVRFX1BBUkFNRVRFUl9TVUJTVElUVVRJT05fX09XTkVEX0FDVFVBTCk7CiAKLQkJY29sbGFib3JhdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDT0xMQUJPUkFUSU9OKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjb2xsYWJvcmF0aW9uRUNsYXNzLCBDT0xMQUJPUkFUSU9OX19DT0xMQUJPUkFUSU9OX1JPTEUpOwotCiAJCW9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzID0gY3JlYXRlRUNsYXNzKE9QRVJBVElPTl9URU1QTEFURV9QQVJBTUVURVIpOwogCiAJCWNsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDTEFTU0lGSUVSX1RFTVBMQVRFX1BBUkFNRVRFUik7CkBAIC05NTcyLDIxICs5NjQ3LDYgQEAKIAogCQljb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDT05ORUNUQUJMRV9FTEVNRU5UX1RFTVBMQVRFX1BBUkFNRVRFUik7CiAKLQkJY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUVDbGFzcywgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19UWVBFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUVDbGFzcywgQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFX19ST0xFX0JJTkRJTkcpOwotCi0JCXBvcnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUE9SVCk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUocG9ydEVDbGFzcywgUE9SVF9fSVNfQkVIQVZJT1IpOwotCQljcmVhdGVFQXR0cmlidXRlKHBvcnRFQ2xhc3MsIFBPUlRfX0lTX1NFUlZJQ0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKHBvcnRFQ2xhc3MsIFBPUlRfX1JFUVVJUkVEKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShwb3J0RUNsYXNzLCBQT1JUX19SRURFRklORURfUE9SVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocG9ydEVDbGFzcywgUE9SVF9fUFJPVklERUQpOwotCQljcmVhdGVFUmVmZXJlbmNlKHBvcnRFQ2xhc3MsIFBPUlRfX1BST1RPQ09MKTsKLQotCQllbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzID0gY3JlYXRlRUNsYXNzKEVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShlbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLCBFTkNBUFNVTEFURURfQ0xBU1NJRklFUl9fT1dORURfUE9SVCk7Ci0KIAkJaW50ZXJhY3Rpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5URVJBQ1RJT04pOwogCQljcmVhdGVFUmVmZXJlbmNlKGludGVyYWN0aW9uRUNsYXNzLCBJTlRFUkFDVElPTl9fTElGRUxJTkUpOwogCQljcmVhdGVFUmVmZXJlbmNlKGludGVyYWN0aW9uRUNsYXNzLCBJTlRFUkFDVElPTl9fTUVTU0FHRSk7CkBAIC05NjQwLDk5ICs5NzAwLDU3IEBACiAKIAkJc3RvcEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTVE9QKTsKIAotCQl2YXJpYWJsZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhWQVJJQUJMRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodmFyaWFibGVFQ2xhc3MsIFZBUklBQkxFX19TQ09QRSk7CisJCXN0YXRlTWFjaGluZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTVEFURV9NQUNISU5FKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZU1hY2hpbmVFQ2xhc3MsIFNUQVRFX01BQ0hJTkVfX1JFR0lPTik7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVNYWNoaW5lRUNsYXNzLCBTVEFURV9NQUNISU5FX19DT05ORUNUSU9OX1BPSU5UKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZU1hY2hpbmVFQ2xhc3MsIFNUQVRFX01BQ0hJTkVfX0VYVEVOREVEX1NUQVRFX01BQ0hJTkUpOworCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlTWFjaGluZUVDbGFzcywgU1RBVEVfTUFDSElORV9fU1RBVEVfTUFDSElORV9SRURFRklOSVRJT05fQ09OVEVYVCk7CiAKLQkJc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTVFJVQ1RVUkVEX0FDVElWSVRZX05PREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fVkFSSUFCTEUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX05PREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fQ09OVEFJTkVEX0VER0UpOwotCQljcmVhdGVFQXR0cmlidXRlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERV9fTVVTVF9JU09MQVRFKTsKKwkJcmVnaW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKFJFR0lPTik7CisJCWNyZWF0ZUVSZWZlcmVuY2UocmVnaW9uRUNsYXNzLCBSRUdJT05fX1NVQlZFUlRFWCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UocmVnaW9uRUNsYXNzLCBSRUdJT05fX1RSQU5TSVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKHJlZ2lvbkVDbGFzcywgUkVHSU9OX19TVEFURV9NQUNISU5FKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShyZWdpb25FQ2xhc3MsIFJFR0lPTl9fU1RBVEUpOworCQljcmVhdGVFUmVmZXJlbmNlKHJlZ2lvbkVDbGFzcywgUkVHSU9OX19FWFRFTkRFRF9SRUdJT04pOwogCi0JCWNvbmRpdGlvbmFsTm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDT05ESVRJT05BTF9OT0RFKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShjb25kaXRpb25hbE5vZGVFQ2xhc3MsIENPTkRJVElPTkFMX05PREVfX0lTX0RFVEVSTUlOQVRFKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShjb25kaXRpb25hbE5vZGVFQ2xhc3MsIENPTkRJVElPTkFMX05PREVfX0lTX0FTU1VSRUQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGNvbmRpdGlvbmFsTm9kZUVDbGFzcywgQ09ORElUSU9OQUxfTk9ERV9fQ0xBVVNFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjb25kaXRpb25hbE5vZGVFQ2xhc3MsIENPTkRJVElPTkFMX05PREVfX1JFU1VMVCk7CisJCXBzZXVkb3N0YXRlRUNsYXNzID0gY3JlYXRlRUNsYXNzKFBTRVVET1NUQVRFKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShwc2V1ZG9zdGF0ZUVDbGFzcywgUFNFVURPU1RBVEVfX0tJTkQpOwogCi0JCWNsYXVzZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDTEFVU0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKGNsYXVzZUVDbGFzcywgQ0xBVVNFX19URVNUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjbGF1c2VFQ2xhc3MsIENMQVVTRV9fQk9EWSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoY2xhdXNlRUNsYXNzLCBDTEFVU0VfX1BSRURFQ0VTU09SX0NMQVVTRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoY2xhdXNlRUNsYXNzLCBDTEFVU0VfX1NVQ0NFU1NPUl9DTEFVU0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKGNsYXVzZUVDbGFzcywgQ0xBVVNFX19ERUNJREVSKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjbGF1c2VFQ2xhc3MsIENMQVVTRV9fQk9EWV9PVVRQVVQpOworCQlzdGF0ZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTVEFURSk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoc3RhdGVFQ2xhc3MsIFNUQVRFX19JU19DT01QT1NJVEUpOworCQljcmVhdGVFQXR0cmlidXRlKHN0YXRlRUNsYXNzLCBTVEFURV9fSVNfT1JUSE9HT05BTCk7CisJCWNyZWF0ZUVBdHRyaWJ1dGUoc3RhdGVFQ2xhc3MsIFNUQVRFX19JU19TSU1QTEUpOworCQljcmVhdGVFQXR0cmlidXRlKHN0YXRlRUNsYXNzLCBTVEFURV9fSVNfU1VCTUFDSElORV9TVEFURSk7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19TVUJNQUNISU5FKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX0NPTk5FQ1RJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlRUNsYXNzLCBTVEFURV9fUkVERUZJTkVEX1NUQVRFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX0RFRkVSUkFCTEVfVFJJR0dFUik7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19SRUdJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlRUNsYXNzLCBTVEFURV9fRU5UUlkpOworCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlRUNsYXNzLCBTVEFURV9fRVhJVCk7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19ET19BQ1RJVklUWSk7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19TVEFURV9JTlZBUklBTlQpOwogCi0JCWxvb3BOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKExPT1BfTk9ERSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fSVNfVEVTVEVEX0ZJUlNUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShsb29wTm9kZUVDbGFzcywgTE9PUF9OT0RFX19CT0RZX1BBUlQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1NFVFVQX1BBUlQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX0RFQ0lERVIpOwotCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1RFU1QpOwotCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX1JFU1VMVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fTE9PUF9WQVJJQUJMRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobG9vcE5vZGVFQ2xhc3MsIExPT1BfTk9ERV9fQk9EWV9PVVRQVVQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGxvb3BOb2RlRUNsYXNzLCBMT09QX05PREVfX0xPT1BfVkFSSUFCTEVfSU5QVVQpOworCQl2ZXJ0ZXhFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVkVSVEVYKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh2ZXJ0ZXhFQ2xhc3MsIFZFUlRFWF9fQ09OVEFJTkVSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh2ZXJ0ZXhFQ2xhc3MsIFZFUlRFWF9fT1VUR09JTkcpOworCQljcmVhdGVFUmVmZXJlbmNlKHZlcnRleEVDbGFzcywgVkVSVEVYX19JTkNPTUlORyk7CiAKLQkJY2FsbFRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ0FMTF9UUklHR0VSKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjYWxsVHJpZ2dlckVDbGFzcywgQ0FMTF9UUklHR0VSX19PUEVSQVRJT04pOworCQljb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0UpOworCQljcmVhdGVFUmVmZXJlbmNlKGNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZUVDbGFzcywgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0VOVFJZKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VFQ2xhc3MsIENPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFX19FWElUKTsKIAotCQltZXNzYWdlVHJpZ2dlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhNRVNTQUdFX1RSSUdHRVIpOworCQl0cmFuc2l0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKFRSQU5TSVRJT04pOworCQljcmVhdGVFQXR0cmlidXRlKHRyYW5zaXRpb25FQ2xhc3MsIFRSQU5TSVRJT05fX0tJTkQpOworCQljcmVhdGVFUmVmZXJlbmNlKHRyYW5zaXRpb25FQ2xhc3MsIFRSQU5TSVRJT05fX0NPTlRBSU5FUik7CisJCWNyZWF0ZUVSZWZlcmVuY2UodHJhbnNpdGlvbkVDbGFzcywgVFJBTlNJVElPTl9fU09VUkNFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19UQVJHRVQpOworCQljcmVhdGVFUmVmZXJlbmNlKHRyYW5zaXRpb25FQ2xhc3MsIFRSQU5TSVRJT05fX1JFREVGSU5FRF9UUkFOU0lUSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19UUklHR0VSKTsKKwkJY3JlYXRlRVJlZmVyZW5jZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19HVUFSRCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UodHJhbnNpdGlvbkVDbGFzcywgVFJBTlNJVElPTl9fRUZGRUNUKTsKIAotCQljaGFuZ2VUcmlnZ2VyRUNsYXNzID0gY3JlYXRlRUNsYXNzKENIQU5HRV9UUklHR0VSKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShjaGFuZ2VUcmlnZ2VyRUNsYXNzLCBDSEFOR0VfVFJJR0dFUl9fQ0hBTkdFX0VYUFJFU1NJT04pOwotCi0JCXRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVFJJR0dFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodHJpZ2dlckVDbGFzcywgVFJJR0dFUl9fUE9SVCk7Ci0KLQkJcmVjZXB0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKFJFQ0VQVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocmVjZXB0aW9uRUNsYXNzLCBSRUNFUFRJT05fX1NJR05BTCk7Ci0KLQkJc2lnbmFsRUNsYXNzID0gY3JlYXRlRUNsYXNzKFNJR05BTCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc2lnbmFsRUNsYXNzLCBTSUdOQUxfX09XTkVEX0FUVFJJQlVURSk7Ci0KLQkJc2lnbmFsVHJpZ2dlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhTSUdOQUxfVFJJR0dFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc2lnbmFsVHJpZ2dlckVDbGFzcywgU0lHTkFMX1RSSUdHRVJfX1NJR05BTCk7Ci0KLQkJdGltZVRyaWdnZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVElNRV9UUklHR0VSKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZSh0aW1lVHJpZ2dlckVDbGFzcywgVElNRV9UUklHR0VSX19JU19SRUxBVElWRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodGltZVRyaWdnZXJFQ2xhc3MsIFRJTUVfVFJJR0dFUl9fV0hFTik7Ci0KLQkJYW55VHJpZ2dlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhBTllfVFJJR0dFUik7Ci0KLQkJZXhwYW5zaW9uTm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWFBBTlNJT05fTk9ERSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXhwYW5zaW9uTm9kZUVDbGFzcywgRVhQQU5TSU9OX05PREVfX1JFR0lPTl9BU19PVVRQVVQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGV4cGFuc2lvbk5vZGVFQ2xhc3MsIEVYUEFOU0lPTl9OT0RFX19SRUdJT05fQVNfSU5QVVQpOwotCi0JCWV4cGFuc2lvblJlZ2lvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWFBBTlNJT05fUkVHSU9OKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShleHBhbnNpb25SZWdpb25FQ2xhc3MsIEVYUEFOU0lPTl9SRUdJT05fX01PREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKGV4cGFuc2lvblJlZ2lvbkVDbGFzcywgRVhQQU5TSU9OX1JFR0lPTl9fT1VUUFVUX0VMRU1FTlQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGV4cGFuc2lvblJlZ2lvbkVDbGFzcywgRVhQQU5TSU9OX1JFR0lPTl9fSU5QVVRfRUxFTUVOVCk7Ci0KLQkJZXhjZXB0aW9uSGFuZGxlckVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWENFUFRJT05fSEFORExFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZXhjZXB0aW9uSGFuZGxlckVDbGFzcywgRVhDRVBUSU9OX0hBTkRMRVJfX1BST1RFQ1RFRF9OT0RFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShleGNlcHRpb25IYW5kbGVyRUNsYXNzLCBFWENFUFRJT05fSEFORExFUl9fSEFORExFUl9CT0RZKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShleGNlcHRpb25IYW5kbGVyRUNsYXNzLCBFWENFUFRJT05fSEFORExFUl9fRVhDRVBUSU9OX0lOUFVUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShleGNlcHRpb25IYW5kbGVyRUNsYXNzLCBFWENFUFRJT05fSEFORExFUl9fRVhDRVBUSU9OX1RZUEUpOwotCi0JCWZvcmtOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKEZPUktfTk9ERSk7Ci0KLQkJam9pbk5vZGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSk9JTl9OT0RFKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShqb2luTm9kZUVDbGFzcywgSk9JTl9OT0RFX19JU19DT01CSU5FX0RVUExJQ0FURSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoam9pbk5vZGVFQ2xhc3MsIEpPSU5fTk9ERV9fSk9JTl9TUEVDKTsKLQotCQlmbG93RmluYWxOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKEZMT1dfRklOQUxfTk9ERSk7Ci0KLQkJY2VudHJhbEJ1ZmZlck5vZGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ0VOVFJBTF9CVUZGRVJfTk9ERSk7Ci0KLQkJYWN0aXZpdHlQYXJ0aXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQUNUSVZJVFlfUEFSVElUSU9OKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19JU19ESU1FTlNJT04pOwotCQljcmVhdGVFQXR0cmlidXRlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX0lTX0VYVEVSTkFMKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19DT05UQUlORURfRURHRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoYWN0aXZpdHlQYXJ0aXRpb25FQ2xhc3MsIEFDVElWSVRZX1BBUlRJVElPTl9fQ09OVEFJTkVEX05PREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX1NVQkdST1VQKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19TVVBFUl9QQVJUSVRJT04pOwotCQljcmVhdGVFUmVmZXJlbmNlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX1JFUFJFU0VOVFMpOworCQlmaW5hbFN0YXRlRUNsYXNzID0gY3JlYXRlRUNsYXNzKEZJTkFMX1NUQVRFKTsKIAogCQljcmVhdGVPYmplY3RBY3Rpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ1JFQVRFX09CSkVDVF9BQ1RJT04pOwogCQljcmVhdGVFUmVmZXJlbmNlKGNyZWF0ZU9iamVjdEFjdGlvbkVDbGFzcywgQ1JFQVRFX09CSkVDVF9BQ1RJT05fX0NMQVNTSUZJRVIpOwpAQCAtOTg0Niw1NyArOTg2NCwzOSBAQAogCQljYWxsQmVoYXZpb3JBY3Rpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQ0FMTF9CRUhBVklPUl9BQ1RJT04pOwogCQljcmVhdGVFUmVmZXJlbmNlKGNhbGxCZWhhdmlvckFjdGlvbkVDbGFzcywgQ0FMTF9CRUhBVklPUl9BQ1RJT05fX0JFSEFWSU9SKTsKIAotCQlzdGF0ZU1hY2hpbmVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoU1RBVEVfTUFDSElORSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVNYWNoaW5lRUNsYXNzLCBTVEFURV9NQUNISU5FX19SRUdJT04pOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlTWFjaGluZUVDbGFzcywgU1RBVEVfTUFDSElORV9fQ09OTkVDVElPTl9QT0lOVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVNYWNoaW5lRUNsYXNzLCBTVEFURV9NQUNISU5FX19FWFRFTkRFRF9TVEFURV9NQUNISU5FKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZU1hY2hpbmVFQ2xhc3MsIFNUQVRFX01BQ0hJTkVfX1NUQVRFX01BQ0hJTkVfUkVERUZJTklUSU9OX0NPTlRFWFQpOworCQlmb3JrTm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhGT1JLX05PREUpOwogCi0JCXJlZ2lvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhSRUdJT04pOwotCQljcmVhdGVFUmVmZXJlbmNlKHJlZ2lvbkVDbGFzcywgUkVHSU9OX19TVUJWRVJURVgpOwotCQljcmVhdGVFUmVmZXJlbmNlKHJlZ2lvbkVDbGFzcywgUkVHSU9OX19UUkFOU0lUSU9OKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShyZWdpb25FQ2xhc3MsIFJFR0lPTl9fU1RBVEVfTUFDSElORSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocmVnaW9uRUNsYXNzLCBSRUdJT05fX1NUQVRFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShyZWdpb25FQ2xhc3MsIFJFR0lPTl9fRVhURU5ERURfUkVHSU9OKTsKKwkJam9pbk5vZGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSk9JTl9OT0RFKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShqb2luTm9kZUVDbGFzcywgSk9JTl9OT0RFX19JU19DT01CSU5FX0RVUExJQ0FURSk7CisJCWNyZWF0ZUVSZWZlcmVuY2Uoam9pbk5vZGVFQ2xhc3MsIEpPSU5fTk9ERV9fSk9JTl9TUEVDKTsKIAotCQlwc2V1ZG9zdGF0ZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhQU0VVRE9TVEFURSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUocHNldWRvc3RhdGVFQ2xhc3MsIFBTRVVET1NUQVRFX19LSU5EKTsKKwkJZmxvd0ZpbmFsTm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhGTE9XX0ZJTkFMX05PREUpOwogCi0JCXN0YXRlRUNsYXNzID0gY3JlYXRlRUNsYXNzKFNUQVRFKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShzdGF0ZUVDbGFzcywgU1RBVEVfX0lTX0NPTVBPU0lURSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUoc3RhdGVFQ2xhc3MsIFNUQVRFX19JU19PUlRIT0dPTkFMKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShzdGF0ZUVDbGFzcywgU1RBVEVfX0lTX1NJTVBMRSk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUoc3RhdGVFQ2xhc3MsIFNUQVRFX19JU19TVUJNQUNISU5FX1NUQVRFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX1NVQk1BQ0hJTkUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlRUNsYXNzLCBTVEFURV9fQ09OTkVDVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19SRURFRklORURfU1RBVEUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHN0YXRlRUNsYXNzLCBTVEFURV9fREVGRVJSQUJMRV9UUklHR0VSKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX1JFR0lPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19FTlRSWSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2Uoc3RhdGVFQ2xhc3MsIFNUQVRFX19FWElUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX0RPX0FDVElWSVRZKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShzdGF0ZUVDbGFzcywgU1RBVEVfX1NUQVRFX0lOVkFSSUFOVCk7CisJCWNlbnRyYWxCdWZmZXJOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKENFTlRSQUxfQlVGRkVSX05PREUpOwogCi0JCXZlcnRleEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhWRVJURVgpOwotCQljcmVhdGVFUmVmZXJlbmNlKHZlcnRleEVDbGFzcywgVkVSVEVYX19DT05UQUlORVIpOwotCQljcmVhdGVFUmVmZXJlbmNlKHZlcnRleEVDbGFzcywgVkVSVEVYX19PVVRHT0lORyk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodmVydGV4RUNsYXNzLCBWRVJURVhfX0lOQ09NSU5HKTsKKwkJYWN0aXZpdHlQYXJ0aXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQUNUSVZJVFlfUEFSVElUSU9OKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19JU19ESU1FTlNJT04pOworCQljcmVhdGVFQXR0cmlidXRlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX0lTX0VYVEVSTkFMKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19DT05UQUlORURfRURHRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoYWN0aXZpdHlQYXJ0aXRpb25FQ2xhc3MsIEFDVElWSVRZX1BBUlRJVElPTl9fQ09OVEFJTkVEX05PREUpOworCQljcmVhdGVFUmVmZXJlbmNlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX1NVQkdST1VQKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcywgQUNUSVZJVFlfUEFSVElUSU9OX19TVVBFUl9QQVJUSVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBQ1RJVklUWV9QQVJUSVRJT05fX1JFUFJFU0VOVFMpOwogCi0JCWNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlRUNsYXNzLCBDT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRV9fRU5UUlkpOwotCQljcmVhdGVFUmVmZXJlbmNlKGNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZUVDbGFzcywgQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0VfX0VYSVQpOworCQlleHBhbnNpb25Ob2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKEVYUEFOU0lPTl9OT0RFKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShleHBhbnNpb25Ob2RlRUNsYXNzLCBFWFBBTlNJT05fTk9ERV9fUkVHSU9OX0FTX09VVFBVVCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZXhwYW5zaW9uTm9kZUVDbGFzcywgRVhQQU5TSU9OX05PREVfX1JFR0lPTl9BU19JTlBVVCk7CiAKLQkJdHJhbnNpdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhUUkFOU0lUSU9OKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19LSU5EKTsKLQkJY3JlYXRlRVJlZmVyZW5jZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19DT05UQUlORVIpOwotCQljcmVhdGVFUmVmZXJlbmNlKHRyYW5zaXRpb25FQ2xhc3MsIFRSQU5TSVRJT05fX1NPVVJDRSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodHJhbnNpdGlvbkVDbGFzcywgVFJBTlNJVElPTl9fVEFSR0VUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZSh0cmFuc2l0aW9uRUNsYXNzLCBUUkFOU0lUSU9OX19SRURFRklORURfVFJBTlNJVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodHJhbnNpdGlvbkVDbGFzcywgVFJBTlNJVElPTl9fVFJJR0dFUik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UodHJhbnNpdGlvbkVDbGFzcywgVFJBTlNJVElPTl9fR1VBUkQpOwotCQljcmVhdGVFUmVmZXJlbmNlKHRyYW5zaXRpb25FQ2xhc3MsIFRSQU5TSVRJT05fX0VGRkVDVCk7CisJCWV4cGFuc2lvblJlZ2lvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWFBBTlNJT05fUkVHSU9OKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShleHBhbnNpb25SZWdpb25FQ2xhc3MsIEVYUEFOU0lPTl9SRUdJT05fX01PREUpOworCQljcmVhdGVFUmVmZXJlbmNlKGV4cGFuc2lvblJlZ2lvbkVDbGFzcywgRVhQQU5TSU9OX1JFR0lPTl9fT1VUUFVUX0VMRU1FTlQpOworCQljcmVhdGVFUmVmZXJlbmNlKGV4cGFuc2lvblJlZ2lvbkVDbGFzcywgRVhQQU5TSU9OX1JFR0lPTl9fSU5QVVRfRUxFTUVOVCk7CiAKLQkJZmluYWxTdGF0ZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhGSU5BTF9TVEFURSk7CisJCWV4Y2VwdGlvbkhhbmRsZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRVhDRVBUSU9OX0hBTkRMRVIpOworCQljcmVhdGVFUmVmZXJlbmNlKGV4Y2VwdGlvbkhhbmRsZXJFQ2xhc3MsIEVYQ0VQVElPTl9IQU5ETEVSX19QUk9URUNURURfTk9ERSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZXhjZXB0aW9uSGFuZGxlckVDbGFzcywgRVhDRVBUSU9OX0hBTkRMRVJfX0hBTkRMRVJfQk9EWSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZXhjZXB0aW9uSGFuZGxlckVDbGFzcywgRVhDRVBUSU9OX0hBTkRMRVJfX0VYQ0VQVElPTl9JTlBVVCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZXhjZXB0aW9uSGFuZGxlckVDbGFzcywgRVhDRVBUSU9OX0hBTkRMRVJfX0VYQ0VQVElPTl9UWVBFKTsKIAogCQlpbnRlcmFjdGlvbk9jY3VycmVuY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5URVJBQ1RJT05fT0NDVVJSRU5DRSk7CiAJCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJhY3Rpb25PY2N1cnJlbmNlRUNsYXNzLCBJTlRFUkFDVElPTl9PQ0NVUlJFTkNFX19SRUZFUlNfVE8pOwpAQCAtOTkzMCw3NiArOTkzMCw2IEBACiAJCWNyZWF0ZUVSZWZlcmVuY2UoY29tcG9uZW50RUNsYXNzLCBDT01QT05FTlRfX1JFQUxJWkFUSU9OKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShjb21wb25lbnRFQ2xhc3MsIENPTVBPTkVOVF9fT1dORURfTUVNQkVSKTsKIAotCQlwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzID0gY3JlYXRlRUNsYXNzKFBST1RPQ09MX0NPTkZPUk1BTkNFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLCBQUk9UT0NPTF9DT05GT1JNQU5DRV9fU1BFQ0lGSUNfTUFDSElORSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcywgUFJPVE9DT0xfQ09ORk9STUFOQ0VfX0dFTkVSQUxfTUFDSElORSk7Ci0KLQkJcHJvdG9jb2xTdGF0ZU1hY2hpbmVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUFJPVE9DT0xfU1RBVEVfTUFDSElORSk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xTdGF0ZU1hY2hpbmVFQ2xhc3MsIFBST1RPQ09MX1NUQVRFX01BQ0hJTkVfX0NPTkZPUk1BTkNFKTsKLQotCQlwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUFJPVE9DT0xfVFJBTlNJVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLCBQUk9UT0NPTF9UUkFOU0lUSU9OX19QT1NUX0NPTkRJVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLCBQUk9UT0NPTF9UUkFOU0lUSU9OX19SRUZFUlJFRCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLCBQUk9UT0NPTF9UUkFOU0lUSU9OX19QUkVfQ09ORElUSU9OKTsKLQotCQl0aW1lRXhwcmVzc2lvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhUSU1FX0VYUFJFU1NJT04pOwotCQljcmVhdGVFQXR0cmlidXRlKHRpbWVFeHByZXNzaW9uRUNsYXNzLCBUSU1FX0VYUFJFU1NJT05fX0ZJUlNUX1RJTUUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHRpbWVFeHByZXNzaW9uRUNsYXNzLCBUSU1FX0VYUFJFU1NJT05fX0VWRU5UKTsKLQotCQlkdXJhdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhEVVJBVElPTik7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUoZHVyYXRpb25FQ2xhc3MsIERVUkFUSU9OX19GSVJTVF9USU1FKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShkdXJhdGlvbkVDbGFzcywgRFVSQVRJT05fX0VWRU5UKTsKLQotCQl0aW1lT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVElNRV9PQlNFUlZBVElPTl9BQ1RJT04pOwotCQljcmVhdGVFUmVmZXJlbmNlKHRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgVElNRV9PQlNFUlZBVElPTl9BQ1RJT05fX05PVyk7Ci0KLQkJZHVyYXRpb25JbnRlcnZhbEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhEVVJBVElPTl9JTlRFUlZBTCk7Ci0KLQkJaW50ZXJ2YWxFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5URVJWQUwpOwotCQljcmVhdGVFUmVmZXJlbmNlKGludGVydmFsRUNsYXNzLCBJTlRFUlZBTF9fTUlOKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcnZhbEVDbGFzcywgSU5URVJWQUxfX01BWCk7Ci0KLQkJdGltZUNvbnN0cmFpbnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVElNRV9DT05TVFJBSU5UKTsKLQotCQlpbnRlcnZhbENvbnN0cmFpbnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoSU5URVJWQUxfQ09OU1RSQUlOVCk7Ci0KLQkJdGltZUludGVydmFsRUNsYXNzID0gY3JlYXRlRUNsYXNzKFRJTUVfSU5URVJWQUwpOwotCi0JCWR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLCBEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT05fX0RVUkFUSU9OKTsKLQotCQlkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoRFVSQVRJT05fQ09OU1RSQUlOVCk7Ci0KLQkJZGF0YVN0b3JlTm9kZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhEQVRBX1NUT1JFX05PREUpOwotCi0JCWludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uRUNsYXNzLCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fSU5URVJSVVBUSU5HX0VER0UpOwotCQljcmVhdGVFUmVmZXJlbmNlKGludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbkVDbGFzcywgSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT05fX0NPTlRBSU5FRF9OT0RFKTsKLQotCQlwYXJhbWV0ZXJTZXRFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUEFSQU1FVEVSX1NFVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UocGFyYW1ldGVyU2V0RUNsYXNzLCBQQVJBTUVURVJfU0VUX19QQVJBTUVURVIpOwotCQljcmVhdGVFUmVmZXJlbmNlKHBhcmFtZXRlclNldEVDbGFzcywgUEFSQU1FVEVSX1NFVF9fQ09ORElUSU9OKTsKLQotCQlkZXBsb3ltZW50RUNsYXNzID0gY3JlYXRlRUNsYXNzKERFUExPWU1FTlQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGRlcGxveW1lbnRFQ2xhc3MsIERFUExPWU1FTlRfX0RFUExPWUVEX0FSVElGQUNUKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShkZXBsb3ltZW50RUNsYXNzLCBERVBMT1lNRU5UX19MT0NBVElPTik7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZGVwbG95bWVudEVDbGFzcywgREVQTE9ZTUVOVF9fQ09ORklHVVJBVElPTik7Ci0KLQkJZGVwbG95ZWRBcnRpZmFjdEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhERVBMT1lFRF9BUlRJRkFDVCk7Ci0KLQkJZGVwbG95bWVudFRhcmdldEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhERVBMT1lNRU5UX1RBUkdFVCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UoZGVwbG95bWVudFRhcmdldEVDbGFzcywgREVQTE9ZTUVOVF9UQVJHRVRfX0RFUExPWU1FTlQpOwotCQljcmVhdGVFUmVmZXJlbmNlKGRlcGxveW1lbnRUYXJnZXRFQ2xhc3MsIERFUExPWU1FTlRfVEFSR0VUX19ERVBMT1lFRF9FTEVNRU5UKTsKLQotCQlub2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKE5PREUpOwotCQljcmVhdGVFUmVmZXJlbmNlKG5vZGVFQ2xhc3MsIE5PREVfX05FU1RFRF9OT0RFKTsKLQotCQlkZXZpY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoREVWSUNFKTsKLQotCQlleGVjdXRpb25FbnZpcm9ubWVudEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWEVDVVRJT05fRU5WSVJPTk1FTlQpOwotCi0JCWNvbW11bmljYXRpb25QYXRoRUNsYXNzID0gY3JlYXRlRUNsYXNzKENPTU1VTklDQVRJT05fUEFUSCk7Ci0KIAkJcmVhZEV4dGVudEFjdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhSRUFEX0VYVEVOVF9BQ1RJT04pOwogCQljcmVhdGVFUmVmZXJlbmNlKHJlYWRFeHRlbnRBY3Rpb25FQ2xhc3MsIFJFQURfRVhURU5UX0FDVElPTl9fUkVTVUxUKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShyZWFkRXh0ZW50QWN0aW9uRUNsYXNzLCBSRUFEX0VYVEVOVF9BQ1RJT05fX0NMQVNTSUZJRVIpOwpAQCAtMTAwNTEsNiArOTk4MSw3NiBAQAogCQlyYWlzZUV4Y2VwdGlvbkFjdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhSQUlTRV9FWENFUFRJT05fQUNUSU9OKTsKIAkJY3JlYXRlRVJlZmVyZW5jZShyYWlzZUV4Y2VwdGlvbkFjdGlvbkVDbGFzcywgUkFJU0VfRVhDRVBUSU9OX0FDVElPTl9fRVhDRVBUSU9OKTsKIAorCQlkYXRhU3RvcmVOb2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKERBVEFfU1RPUkVfTk9ERSk7CisKKwkJaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25FQ2xhc3MsIElOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OX19JTlRFUlJVUFRJTkdfRURHRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uRUNsYXNzLCBJTlRFUlJVUFRJQkxFX0FDVElWSVRZX1JFR0lPTl9fQ09OVEFJTkVEX05PREUpOworCisJCXBhcmFtZXRlclNldEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhQQVJBTUVURVJfU0VUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShwYXJhbWV0ZXJTZXRFQ2xhc3MsIFBBUkFNRVRFUl9TRVRfX1BBUkFNRVRFUik7CisJCWNyZWF0ZUVSZWZlcmVuY2UocGFyYW1ldGVyU2V0RUNsYXNzLCBQQVJBTUVURVJfU0VUX19DT05ESVRJT04pOworCisJCXRpbWVFeHByZXNzaW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKFRJTUVfRVhQUkVTU0lPTik7CisJCWNyZWF0ZUVBdHRyaWJ1dGUodGltZUV4cHJlc3Npb25FQ2xhc3MsIFRJTUVfRVhQUkVTU0lPTl9fRklSU1RfVElNRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UodGltZUV4cHJlc3Npb25FQ2xhc3MsIFRJTUVfRVhQUkVTU0lPTl9fRVZFTlQpOworCisJCWR1cmF0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKERVUkFUSU9OKTsKKwkJY3JlYXRlRUF0dHJpYnV0ZShkdXJhdGlvbkVDbGFzcywgRFVSQVRJT05fX0ZJUlNUX1RJTUUpOworCQljcmVhdGVFUmVmZXJlbmNlKGR1cmF0aW9uRUNsYXNzLCBEVVJBVElPTl9fRVZFTlQpOworCisJCXRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhUSU1FX09CU0VSVkFUSU9OX0FDVElPTik7CisJCWNyZWF0ZUVSZWZlcmVuY2UodGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLCBUSU1FX09CU0VSVkFUSU9OX0FDVElPTl9fTk9XKTsKKworCQlkdXJhdGlvbkludGVydmFsRUNsYXNzID0gY3JlYXRlRUNsYXNzKERVUkFUSU9OX0lOVEVSVkFMKTsKKworCQlpbnRlcnZhbEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhJTlRFUlZBTCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoaW50ZXJ2YWxFQ2xhc3MsIElOVEVSVkFMX19NSU4pOworCQljcmVhdGVFUmVmZXJlbmNlKGludGVydmFsRUNsYXNzLCBJTlRFUlZBTF9fTUFYKTsKKworCQl0aW1lQ29uc3RyYWludEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhUSU1FX0NPTlNUUkFJTlQpOworCisJCWludGVydmFsQ29uc3RyYWludEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhJTlRFUlZBTF9DT05TVFJBSU5UKTsKKworCQl0aW1lSW50ZXJ2YWxFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoVElNRV9JTlRFUlZBTCk7CisKKwkJZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbkVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhEVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIERVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTl9fRFVSQVRJT04pOworCisJCWR1cmF0aW9uQ29uc3RyYWludEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhEVVJBVElPTl9DT05TVFJBSU5UKTsKKworCQlkZXBsb3ltZW50RUNsYXNzID0gY3JlYXRlRUNsYXNzKERFUExPWU1FTlQpOworCQljcmVhdGVFUmVmZXJlbmNlKGRlcGxveW1lbnRFQ2xhc3MsIERFUExPWU1FTlRfX0RFUExPWUVEX0FSVElGQUNUKTsKKwkJY3JlYXRlRVJlZmVyZW5jZShkZXBsb3ltZW50RUNsYXNzLCBERVBMT1lNRU5UX19MT0NBVElPTik7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZGVwbG95bWVudEVDbGFzcywgREVQTE9ZTUVOVF9fQ09ORklHVVJBVElPTik7CisKKwkJZGVwbG95ZWRBcnRpZmFjdEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhERVBMT1lFRF9BUlRJRkFDVCk7CisKKwkJZGVwbG95bWVudFRhcmdldEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhERVBMT1lNRU5UX1RBUkdFVCk7CisJCWNyZWF0ZUVSZWZlcmVuY2UoZGVwbG95bWVudFRhcmdldEVDbGFzcywgREVQTE9ZTUVOVF9UQVJHRVRfX0RFUExPWU1FTlQpOworCQljcmVhdGVFUmVmZXJlbmNlKGRlcGxveW1lbnRUYXJnZXRFQ2xhc3MsIERFUExPWU1FTlRfVEFSR0VUX19ERVBMT1lFRF9FTEVNRU5UKTsKKworCQlub2RlRUNsYXNzID0gY3JlYXRlRUNsYXNzKE5PREUpOworCQljcmVhdGVFUmVmZXJlbmNlKG5vZGVFQ2xhc3MsIE5PREVfX05FU1RFRF9OT0RFKTsKKworCQlkZXZpY2VFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoREVWSUNFKTsKKworCQlleGVjdXRpb25FbnZpcm9ubWVudEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWEVDVVRJT05fRU5WSVJPTk1FTlQpOworCisJCWNvbW11bmljYXRpb25QYXRoRUNsYXNzID0gY3JlYXRlRUNsYXNzKENPTU1VTklDQVRJT05fUEFUSCk7CisKKwkJcHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhQUk9UT0NPTF9DT05GT1JNQU5DRSk7CisJCWNyZWF0ZUVSZWZlcmVuY2UocHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcywgUFJPVE9DT0xfQ09ORk9STUFOQ0VfX1NQRUNJRklDX01BQ0hJTkUpOworCQljcmVhdGVFUmVmZXJlbmNlKHByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MsIFBST1RPQ09MX0NPTkZPUk1BTkNFX19HRU5FUkFMX01BQ0hJTkUpOworCisJCXByb3RvY29sU3RhdGVNYWNoaW5lRUNsYXNzID0gY3JlYXRlRUNsYXNzKFBST1RPQ09MX1NUQVRFX01BQ0hJTkUpOworCQljcmVhdGVFUmVmZXJlbmNlKHByb3RvY29sU3RhdGVNYWNoaW5lRUNsYXNzLCBQUk9UT0NPTF9TVEFURV9NQUNISU5FX19DT05GT1JNQU5DRSk7CisKKwkJcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzID0gY3JlYXRlRUNsYXNzKFBST1RPQ09MX1RSQU5TSVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKHByb3RvY29sVHJhbnNpdGlvbkVDbGFzcywgUFJPVE9DT0xfVFJBTlNJVElPTl9fUE9TVF9DT05ESVRJT04pOworCQljcmVhdGVFUmVmZXJlbmNlKHByb3RvY29sVHJhbnNpdGlvbkVDbGFzcywgUFJPVE9DT0xfVFJBTlNJVElPTl9fUkVGRVJSRUQpOworCQljcmVhdGVFUmVmZXJlbmNlKHByb3RvY29sVHJhbnNpdGlvbkVDbGFzcywgUFJPVE9DT0xfVFJBTlNJVElPTl9fUFJFX0NPTkRJVElPTik7CisKIAkJZGVwbG95bWVudFNwZWNpZmljYXRpb25FQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoREVQTE9ZTUVOVF9TUEVDSUZJQ0FUSU9OKTsKIAkJY3JlYXRlRUF0dHJpYnV0ZShkZXBsb3ltZW50U3BlY2lmaWNhdGlvbkVDbGFzcywgREVQTE9ZTUVOVF9TUEVDSUZJQ0FUSU9OX19ERVBMT1lNRU5UX0xPQ0FUSU9OKTsKIAkJY3JlYXRlRUF0dHJpYnV0ZShkZXBsb3ltZW50U3BlY2lmaWNhdGlvbkVDbGFzcywgREVQTE9ZTUVOVF9TUEVDSUZJQ0FUSU9OX19FWEVDVVRJT05fTE9DQVRJT04pOwpAQCAtMTAwNTksMTIgKzEwMDU5LDEyIEBACiAJCXZpc2liaWxpdHlLaW5kRUVudW0gPSBjcmVhdGVFRW51bShWSVNJQklMSVRZX0tJTkQpOwogCQlwYXJhbWV0ZXJEaXJlY3Rpb25LaW5kRUVudW0gPSBjcmVhdGVFRW51bShQQVJBTUVURVJfRElSRUNUSU9OX0tJTkQpOwogCQlhZ2dyZWdhdGlvbktpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKEFHR1JFR0FUSU9OX0tJTkQpOworCQljYWxsQ29uY3VycmVuY3lLaW5kRUVudW0gPSBjcmVhdGVFRW51bShDQUxMX0NPTkNVUlJFTkNZX0tJTkQpOwogCQltZXNzYWdlS2luZEVFbnVtID0gY3JlYXRlRUVudW0oTUVTU0FHRV9LSU5EKTsKIAkJbWVzc2FnZVNvcnRFRW51bSA9IGNyZWF0ZUVFbnVtKE1FU1NBR0VfU09SVCk7Ci0JCWNhbGxDb25jdXJyZW5jeUtpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKENBTExfQ09OQ1VSUkVOQ1lfS0lORCk7Ci0JCWV4cGFuc2lvbktpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKEVYUEFOU0lPTl9LSU5EKTsKIAkJdHJhbnNpdGlvbktpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKFRSQU5TSVRJT05fS0lORCk7CiAJCXBzZXVkb3N0YXRlS2luZEVFbnVtID0gY3JlYXRlRUVudW0oUFNFVURPU1RBVEVfS0lORCk7CisJCWV4cGFuc2lvbktpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKEVYUEFOU0lPTl9LSU5EKTsKIAkJaW50ZXJhY3Rpb25PcGVyYXRvckVFbnVtID0gY3JlYXRlRUVudW0oSU5URVJBQ1RJT05fT1BFUkFUT1IpOwogCQljb25uZWN0b3JLaW5kRUVudW0gPSBjcmVhdGVFRW51bShDT05ORUNUT1JfS0lORCk7CiAJCXBhcmFtZXRlckVmZmVjdEtpbmRFRW51bSA9IGNyZWF0ZUVFbnVtKFBBUkFNRVRFUl9FRkZFQ1RfS0lORCk7CkBAIC0xMDEwOCw2ICsxMDEwOCw4IEBACiAJCS8vIEFkZCBzdXBlcnR5cGVzIHRvIGNsYXNzZXMKIAkJZWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGVFY29yZVBhY2thZ2UuZ2V0RU1vZGVsRWxlbWVudCgpKTsKIAkJbXVsdGlwbGljaXR5RWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CisJCW5hbWVkRWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRlbXBsYXRlYWJsZUVsZW1lbnQoKSk7CisJCW5hbWVzcGFjZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKIAkJZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRSZWxhdGlvbnNoaXAoKSk7CiAJCXJlbGF0aW9uc2hpcEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CiAJCW9wYXF1ZUV4cHJlc3Npb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSk7CkBAIC0xMDExNSw4ICsxMDExNyw2IEBACiAJCXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFBhcmFtZXRlcmFibGVFbGVtZW50KCkpOwogCQlleHByZXNzaW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0T3BhcXVlRXhwcmVzc2lvbigpKTsKIAkJY29tbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRlbXBsYXRlYWJsZUVsZW1lbnQoKSk7Ci0JCW5hbWVkRWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRlbXBsYXRlYWJsZUVsZW1lbnQoKSk7Ci0JCW5hbWVzcGFjZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKIAkJY2xhc3NFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcigpKTsKIAkJY2xhc3NFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyKCkpOwogCQl0eXBlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UGFja2FnZWFibGVFbGVtZW50KCkpOwpAQCAtMTAxNTQsMTIgKzEwMTU0LDEyIEBACiAJCXN0cnVjdHVyYWxGZWF0dXJlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VHlwZWRFbGVtZW50KCkpOwogCQlzdHJ1Y3R1cmFsRmVhdHVyZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE11bHRpcGxpY2l0eUVsZW1lbnQoKSk7CiAJCXJlZGVmaW5hYmxlRWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKLQkJZ2VuZXJhbGl6YXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREaXJlY3RlZFJlbGF0aW9uc2hpcCgpKTsKIAkJaW5zdGFuY2VTcGVjaWZpY2F0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UGFja2FnZWFibGVFbGVtZW50KCkpOwogCQlpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREZXBsb3ltZW50VGFyZ2V0KCkpOwogCQlpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREZXBsb3llZEFydGlmYWN0KCkpOwogCQlzbG90RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKIAkJaW5zdGFuY2VWYWx1ZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpKTsKKwkJZ2VuZXJhbGl6YXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREaXJlY3RlZFJlbGF0aW9uc2hpcCgpKTsKIAkJcGFja2FnZWFibGVFbGVtZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwogCQlwYWNrYWdlYWJsZUVsZW1lbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRQYXJhbWV0ZXJhYmxlRWxlbWVudCgpKTsKIAkJZWxlbWVudEltcG9ydEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERpcmVjdGVkUmVsYXRpb25zaGlwKCkpOwpAQCAtMTAxOTQsNiArMTAxOTQsMTggQEAKIAkJY29ubmVjdGFibGVFbGVtZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UGFyYW1ldGVyYWJsZUVsZW1lbnQoKSk7CiAJCWNvbm5lY3RvckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEZlYXR1cmUoKSk7CiAJCXN0cnVjdHVyZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2xhc3NpZmllcigpKTsKKwkJaW50ZXJmYWNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2xhc3NpZmllcigpKTsKKwkJaW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRSZWFsaXphdGlvbigpKTsKKwkJYXJ0aWZhY3RFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDbGFzc2lmaWVyKCkpOworCQlhcnRpZmFjdEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERlcGxveWVkQXJ0aWZhY3QoKSk7CisJCW1hbmlmZXN0YXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBYnN0cmFjdGlvbigpKTsKKwkJYWN0b3JFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDbGFzc2lmaWVyKCkpOworCQlleHRlbmRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lZEVsZW1lbnQoKSk7CisJCWV4dGVuZEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERpcmVjdGVkUmVsYXRpb25zaGlwKCkpOworCQl1c2VDYXNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QmVoYXZpb3JlZENsYXNzaWZpZXIoKSk7CisJCWV4dGVuc2lvblBvaW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UmVkZWZpbmFibGVFbGVtZW50KCkpOworCQlpbmNsdWRlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOworCQlpbmNsdWRlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXAoKSk7CiAJCWFjdGl2aXR5RWRnZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFJlZGVmaW5hYmxlRWxlbWVudCgpKTsKIAkJYWN0aXZpdHlHcm91cEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CiAJCWFjdGl2aXR5Tm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFJlZGVmaW5hYmxlRWxlbWVudCgpKTsKQEAgLTEwMjE1LDE4ICsxMDIyNywyOSBAQAogCQlwaW5FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNdWx0aXBsaWNpdHlFbGVtZW50KCkpOwogCQlhY3Rpdml0eVBhcmFtZXRlck5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRPYmplY3ROb2RlKCkpOwogCQl2YWx1ZVBpbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldElucHV0UGluKCkpOwotCQlhcnRpZmFjdEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzaWZpZXIoKSk7Ci0JCWFydGlmYWN0RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RGVwbG95ZWRBcnRpZmFjdCgpKTsKLQkJbWFuaWZlc3RhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFic3RyYWN0aW9uKCkpOwotCQlpbnRlcmZhY2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDbGFzc2lmaWVyKCkpOwotCQlpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFJlYWxpemF0aW9uKCkpOwotCQlhY3RvckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzaWZpZXIoKSk7Ci0JCWV4dGVuZEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKLQkJZXh0ZW5kRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXAoKSk7Ci0JCXVzZUNhc2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcigpKTsKLQkJZXh0ZW5zaW9uUG9pbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRSZWRlZmluYWJsZUVsZW1lbnQoKSk7Ci0JCWluY2x1ZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lZEVsZW1lbnQoKSk7Ci0JCWluY2x1ZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREaXJlY3RlZFJlbGF0aW9uc2hpcCgpKTsKKwkJY2FsbFRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNZXNzYWdlVHJpZ2dlcigpKTsKKwkJbWVzc2FnZVRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRUcmlnZ2VyKCkpOworCQljaGFuZ2VUcmlnZ2VyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VHJpZ2dlcigpKTsKKwkJdHJpZ2dlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKKwkJcmVjZXB0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QmVoYXZpb3JhbEZlYXR1cmUoKSk7CisJCXNpZ25hbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzaWZpZXIoKSk7CisJCXNpZ25hbFRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNZXNzYWdlVHJpZ2dlcigpKTsKKwkJdGltZVRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRUcmlnZ2VyKCkpOworCQlhbnlUcmlnZ2VyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TWVzc2FnZVRyaWdnZXIoKSk7CisJCWNvbGxhYm9yYXRpb25PY2N1cnJlbmNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOworCQljb2xsYWJvcmF0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QmVoYXZpb3JlZENsYXNzaWZpZXIoKSk7CisJCWNvbGxhYm9yYXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdHJ1Y3R1cmVkQ2xhc3NpZmllcigpKTsKKwkJcG9ydEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFByb3BlcnR5KCkpOworCQllbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RydWN0dXJlZENsYXNzaWZpZXIoKSk7CisJCXZhcmlhYmxlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q29ubmVjdGFibGVFbGVtZW50KCkpOworCQl2YXJpYWJsZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFR5cGVkRWxlbWVudCgpKTsKKwkJdmFyaWFibGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNdWx0aXBsaWNpdHlFbGVtZW50KCkpOworCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aW9uKCkpOworCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZXNwYWNlKCkpOworCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aXZpdHlHcm91cCgpKTsKKwkJY29uZGl0aW9uYWxOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZSgpKTsKKwkJY2xhdXNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKKwkJbG9vcE5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKCkpOwogCQl0ZW1wbGF0ZVNpZ25hdHVyZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CiAJCXRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKIAkJdGVtcGxhdGVhYmxlRWxlbWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CkBAIC0xMDIzNCw4ICsxMDI1Nyw2IEBACiAJCXBhcmFtZXRlcmFibGVFbGVtZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKIAkJdGVtcGxhdGVCaW5kaW5nRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXAoKSk7CiAJCXRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKLQkJY29sbGFib3JhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEJlaGF2aW9yZWRDbGFzc2lmaWVyKCkpOwotCQljb2xsYWJvcmF0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RydWN0dXJlZENsYXNzaWZpZXIoKSk7CiAJCW9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VGVtcGxhdGVQYXJhbWV0ZXIoKSk7CiAJCWNsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRlbXBsYXRlUGFyYW1ldGVyKCkpOwogCQlwYXJhbWV0ZXJhYmxlQ2xhc3NpZmllckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzaWZpZXIoKSk7CkBAIC0xMDI0Myw5ICsxMDI2NCw2IEBACiAJCXJlZGVmaW5hYmxlVGVtcGxhdGVTaWduYXR1cmVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRUZW1wbGF0ZVNpZ25hdHVyZSgpKTsKIAkJdGVtcGxhdGVhYmxlQ2xhc3NpZmllckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzaWZpZXIoKSk7CiAJCWNvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VGVtcGxhdGVQYXJhbWV0ZXIoKSk7Ci0JCWNvbGxhYm9yYXRpb25PY2N1cnJlbmNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwotCQlwb3J0RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UHJvcGVydHkoKSk7Ci0JCWVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdHJ1Y3R1cmVkQ2xhc3NpZmllcigpKTsKIAkJaW50ZXJhY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRCZWhhdmlvcigpKTsKIAkJaW50ZXJhY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcmFjdGlvbkZyYWdtZW50KCkpOwogCQlpbnRlcmFjdGlvbkZyYWdtZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwpAQCAtMTAyNTgsMzMgKzEwMjc2LDE3IEBACiAJCWV4ZWN1dGlvbk9jY3VycmVuY2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcmFjdGlvbkZyYWdtZW50KCkpOwogCQlzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVyYWN0aW9uRnJhZ21lbnQoKSk7CiAJCXN0b3BFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRFdmVudE9jY3VycmVuY2UoKSk7Ci0JCXZhcmlhYmxlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q29ubmVjdGFibGVFbGVtZW50KCkpOwotCQl2YXJpYWJsZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFR5cGVkRWxlbWVudCgpKTsKLQkJdmFyaWFibGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNdWx0aXBsaWNpdHlFbGVtZW50KCkpOwotCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aW9uKCkpOwotCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZXNwYWNlKCkpOwotCQlzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aXZpdHlHcm91cCgpKTsKLQkJY29uZGl0aW9uYWxOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZSgpKTsKLQkJY2xhdXNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RWxlbWVudCgpKTsKLQkJbG9vcE5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKCkpOwotCQljYWxsVHJpZ2dlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE1lc3NhZ2VUcmlnZ2VyKCkpOwotCQltZXNzYWdlVHJpZ2dlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRyaWdnZXIoKSk7Ci0JCWNoYW5nZVRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRUcmlnZ2VyKCkpOwotCQl0cmlnZ2VyRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwotCQlyZWNlcHRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRCZWhhdmlvcmFsRmVhdHVyZSgpKTsKLQkJc2lnbmFsRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2xhc3NpZmllcigpKTsKLQkJc2lnbmFsVHJpZ2dlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE1lc3NhZ2VUcmlnZ2VyKCkpOwotCQl0aW1lVHJpZ2dlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRyaWdnZXIoKSk7Ci0JCWFueVRyaWdnZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNZXNzYWdlVHJpZ2dlcigpKTsKLQkJZXhwYW5zaW9uTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE9iamVjdE5vZGUoKSk7Ci0JCWV4cGFuc2lvblJlZ2lvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoKSk7Ci0JCWV4Y2VwdGlvbkhhbmRsZXJFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRFbGVtZW50KCkpOwotCQlmb3JrTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENvbnRyb2xOb2RlKCkpOwotCQlqb2luTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENvbnRyb2xOb2RlKCkpOwotCQlmbG93RmluYWxOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RmluYWxOb2RlKCkpOwotCQljZW50cmFsQnVmZmVyTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE9iamVjdE5vZGUoKSk7Ci0JCWFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwotCQlhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFjdGl2aXR5R3JvdXAoKSk7CisJCXN0YXRlTWFjaGluZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEJlaGF2aW9yKCkpOworCQlyZWdpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lc3BhY2UoKSk7CisJCXJlZ2lvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFJlZGVmaW5hYmxlRWxlbWVudCgpKTsKKwkJcHNldWRvc3RhdGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRWZXJ0ZXgoKSk7CisJCXN0YXRlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZXNwYWNlKCkpOworCQlzdGF0ZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFJlZGVmaW5hYmxlRWxlbWVudCgpKTsKKwkJc3RhdGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRWZXJ0ZXgoKSk7CisJCXZlcnRleEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKKwkJY29ubmVjdGlvblBvaW50UmVmZXJlbmNlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VmVydGV4KCkpOworCQl0cmFuc2l0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UmVkZWZpbmFibGVFbGVtZW50KCkpOworCQlmaW5hbFN0YXRlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RhdGUoKSk7CiAJCWNyZWF0ZU9iamVjdEFjdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFjdGlvbigpKTsKIAkJZGVzdHJveU9iamVjdEFjdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFjdGlvbigpKTsKIAkJdGVzdElkZW50aXR5QWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aW9uKCkpOwpAQCAtMTAzMTgsMTcgKzEwMzIwLDE1IEBACiAJCXNlbmRPYmplY3RBY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnZvY2F0aW9uQWN0aW9uKCkpOwogCQljYWxsT3BlcmF0aW9uQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2FsbEFjdGlvbigpKTsKIAkJY2FsbEJlaGF2aW9yQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2FsbEFjdGlvbigpKTsKLQkJc3RhdGVNYWNoaW5lRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QmVoYXZpb3IoKSk7Ci0JCXJlZ2lvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVzcGFjZSgpKTsKLQkJcmVnaW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UmVkZWZpbmFibGVFbGVtZW50KCkpOwotCQlwc2V1ZG9zdGF0ZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZlcnRleCgpKTsKLQkJc3RhdGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lc3BhY2UoKSk7Ci0JCXN0YXRlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0UmVkZWZpbmFibGVFbGVtZW50KCkpOwotCQlzdGF0ZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZlcnRleCgpKTsKLQkJdmVydGV4RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0TmFtZWRFbGVtZW50KCkpOwotCQljb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRWZXJ0ZXgoKSk7Ci0JCXRyYW5zaXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRSZWRlZmluYWJsZUVsZW1lbnQoKSk7Ci0JCWZpbmFsU3RhdGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdGF0ZSgpKTsKKwkJZm9ya05vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDb250cm9sTm9kZSgpKTsKKwkJam9pbk5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDb250cm9sTm9kZSgpKTsKKwkJZmxvd0ZpbmFsTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEZpbmFsTm9kZSgpKTsKKwkJY2VudHJhbEJ1ZmZlck5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRPYmplY3ROb2RlKCkpOworCQlhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKKwkJYWN0aXZpdHlQYXJ0aXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBY3Rpdml0eUdyb3VwKCkpOworCQlleHBhbnNpb25Ob2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0T2JqZWN0Tm9kZSgpKTsKKwkJZXhwYW5zaW9uUmVnaW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZSgpKTsKKwkJZXhjZXB0aW9uSGFuZGxlckVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEVsZW1lbnQoKSk7CiAJCWludGVyYWN0aW9uT2NjdXJyZW5jZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVyYWN0aW9uRnJhZ21lbnQoKSk7CiAJCWdhdGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRNZXNzYWdlRW5kKCkpOwogCQlwYXJ0RGVjb21wb3NpdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVyYWN0aW9uT2NjdXJyZW5jZSgpKTsKQEAgLTEwMzM4LDMwICsxMDMzOCw2IEBACiAJCWNvbWJpbmVkRnJhZ21lbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcmFjdGlvbkZyYWdtZW50KCkpOwogCQljb250aW51YXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcmFjdGlvbkZyYWdtZW50KCkpOwogCQljb21wb25lbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDbGFzc18oKSk7Ci0JCXByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREaXJlY3RlZFJlbGF0aW9uc2hpcCgpKTsKLQkJcHJvdG9jb2xTdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRTdGF0ZU1hY2hpbmUoKSk7Ci0JCXByb3RvY29sVHJhbnNpdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFRyYW5zaXRpb24oKSk7Ci0JCXRpbWVFeHByZXNzaW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCkpOwotCQlkdXJhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpKTsKLQkJdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0V3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbigpKTsKLQkJZHVyYXRpb25JbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVydmFsKCkpOwotCQlpbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpKTsKLQkJdGltZUNvbnN0cmFpbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcnZhbENvbnN0cmFpbnQoKSk7Ci0JCWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENvbnN0cmFpbnQoKSk7Ci0JCXRpbWVJbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVydmFsKCkpOwotCQlkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0V3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbigpKTsKLQkJZHVyYXRpb25Db25zdHJhaW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0SW50ZXJ2YWxDb25zdHJhaW50KCkpOwotCQlkYXRhU3RvcmVOb2RlRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Q2VudHJhbEJ1ZmZlck5vZGUoKSk7Ci0JCWludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFjdGl2aXR5R3JvdXAoKSk7Ci0JCXBhcmFtZXRlclNldEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKLQkJZGVwbG95bWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERlcGVuZGVuY3koKSk7Ci0JCWRlcGxveWVkQXJ0aWZhY3RFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lZEVsZW1lbnQoKSk7Ci0JCWRlcGxveW1lbnRUYXJnZXRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lZEVsZW1lbnQoKSk7Ci0JCW5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRDbGFzc18oKSk7Ci0JCW5vZGVFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXREZXBsb3ltZW50VGFyZ2V0KCkpOwotCQlkZXZpY2VFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROb2RlKCkpOwotCQlleGVjdXRpb25FbnZpcm9ubWVudEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5vZGUoKSk7Ci0JCWNvbW11bmljYXRpb25QYXRoRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QXNzb2NpYXRpb24oKSk7CiAJCXJlYWRFeHRlbnRBY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBY3Rpb24oKSk7CiAJCXJlY2xhc3NpZnlPYmplY3RBY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBY3Rpb24oKSk7CiAJCXJlYWRJc0NsYXNzaWZpZWRPYmplY3RBY3Rpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBY3Rpb24oKSk7CkBAIC0xMDM3NCw2ICsxMDM1MCwzMCBAQAogCQlhY2NlcHRDYWxsQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWNjZXB0RXZlbnRBY3Rpb24oKSk7CiAJCXJlcGx5QWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0QWN0aW9uKCkpOwogCQlyYWlzZUV4Y2VwdGlvbkFjdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEFjdGlvbigpKTsKKwkJZGF0YVN0b3JlTm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENlbnRyYWxCdWZmZXJOb2RlKCkpOworCQlpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBY3Rpdml0eUdyb3VwKCkpOworCQlwYXJhbWV0ZXJTZXRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXROYW1lZEVsZW1lbnQoKSk7CisJCXRpbWVFeHByZXNzaW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCkpOworCQlkdXJhdGlvbkVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpKTsKKwkJdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0V3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbigpKTsKKwkJZHVyYXRpb25JbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVydmFsKCkpOworCQlpbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpKTsKKwkJdGltZUNvbnN0cmFpbnRFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRJbnRlcnZhbENvbnN0cmFpbnQoKSk7CisJCWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENvbnN0cmFpbnQoKSk7CisJCXRpbWVJbnRlcnZhbEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldEludGVydmFsKCkpOworCQlkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0V3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbigpKTsKKwkJZHVyYXRpb25Db25zdHJhaW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0SW50ZXJ2YWxDb25zdHJhaW50KCkpOworCQlkZXBsb3ltZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0RGVwZW5kZW5jeSgpKTsKKwkJZGVwbG95ZWRBcnRpZmFjdEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKKwkJZGVwbG95bWVudFRhcmdldEVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5hbWVkRWxlbWVudCgpKTsKKwkJbm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldENsYXNzXygpKTsKKwkJbm9kZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERlcGxveW1lbnRUYXJnZXQoKSk7CisJCWRldmljZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldE5vZGUoKSk7CisJCWV4ZWN1dGlvbkVudmlyb25tZW50RUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0Tm9kZSgpKTsKKwkJY29tbXVuaWNhdGlvblBhdGhFQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBc3NvY2lhdGlvbigpKTsKKwkJcHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldERpcmVjdGVkUmVsYXRpb25zaGlwKCkpOworCQlwcm90b2NvbFN0YXRlTWFjaGluZUVDbGFzcy5nZXRFU3VwZXJUeXBlcygpLmFkZCh0aGlzLmdldFN0YXRlTWFjaGluZSgpKTsKKwkJcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVTdXBlclR5cGVzKCkuYWRkKHRoaXMuZ2V0VHJhbnNpdGlvbigpKTsKIAkJZGVwbG95bWVudFNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RVN1cGVyVHlwZXMoKS5hZGQodGhpcy5nZXRBcnRpZmFjdCgpKTsKIAogCQkvLyBJbml0aWFsaXplIGNsYXNzZXMgYW5kIGZlYXR1cmVzOyBhZGQgb3BlcmF0aW9ucyBhbmQgcGFyYW1ldGVycwpAQCAtMTA0NDAsNDggKzEwNDQwLDYgQEAKIAogCQlhZGRFT3BlcmF0aW9uKG11bHRpcGxpY2l0eUVsZW1lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MoZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MsIERpcmVjdGVkUmVsYXRpb25zaGlwLmNsYXNzLCAiRGlyZWN0ZWRSZWxhdGlvbnNoaXAiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXBfU291cmNlKCksIHRoaXMuZ2V0RWxlbWVudCgpLCBudWxsLCAic291cmNlIiwgbnVsbCwgMSwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXREaXJlY3RlZFJlbGF0aW9uc2hpcF9UYXJnZXQoKSwgdGhpcy5nZXRFbGVtZW50KCksIG51bGwsICJ0YXJnZXQiLCBudWxsLCAxLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihkaXJlY3RlZFJlbGF0aW9uc2hpcEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVsYXRlZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHJlbGF0aW9uc2hpcEVDbGFzcywgUmVsYXRpb25zaGlwLmNsYXNzLCAiUmVsYXRpb25zaGlwIiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFJlbGF0aW9uc2hpcF9SZWxhdGVkRWxlbWVudCgpLCB0aGlzLmdldEVsZW1lbnQoKSwgbnVsbCwgInJlbGF0ZWRFbGVtZW50IiwgbnVsbCwgMSwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3Mob3BhcXVlRXhwcmVzc2lvbkVDbGFzcywgT3BhcXVlRXhwcmVzc2lvbi5jbGFzcywgIk9wYXF1ZUV4cHJlc3Npb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldE9wYXF1ZUV4cHJlc3Npb25fQm9keSgpLCB0aGlzLmdldFN0cmluZygpLCAiYm9keSIsICIiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0T3BhcXVlRXhwcmVzc2lvbl9MYW5ndWFnZSgpLCB0aGlzLmdldFN0cmluZygpLCAibGFuZ3VhZ2UiLCAiIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCWluaXRFUmVmZXJlbmNlKGdldE9wYXF1ZUV4cHJlc3Npb25fUmVzdWx0KCksIHRoaXMuZ2V0UGFyYW1ldGVyKCksIG51bGwsICJyZXN1bHQiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCAhSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCBJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRPcGFxdWVFeHByZXNzaW9uX0JlaGF2aW9yKCksIHRoaXMuZ2V0QmVoYXZpb3IoKSwgbnVsbCwgImJlaGF2aW9yIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3ModmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLCBWYWx1ZVNwZWNpZmljYXRpb24uY2xhc3MsICJWYWx1ZVNwZWNpZmljYXRpb24iLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRCb29sZWFuKCksICJpc0NvbXB1dGFibGUiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24odmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLCB0aGlzLmdldEludGVnZXIoKSwgImludGVnZXJWYWx1ZSIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MsIHRoaXMuZ2V0Qm9vbGVhbigpLCAiYm9vbGVhblZhbHVlIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRTdHJpbmcoKSwgInN0cmluZ1ZhbHVlIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRVbmxpbWl0ZWROYXR1cmFsKCksICJ1bmxpbWl0ZWRWYWx1ZSIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MsIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNOdWxsIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKGV4cHJlc3Npb25FQ2xhc3MsIEV4cHJlc3Npb24uY2xhc3MsICJFeHByZXNzaW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRFeHByZXNzaW9uX1N5bWJvbCgpLCB0aGlzLmdldFN0cmluZygpLCAic3ltYm9sIiwgIiIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHByZXNzaW9uX09wZXJhbmQoKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgIm9wZXJhbmQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZXhwcmVzc2lvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhjb21tZW50RUNsYXNzLCBDb21tZW50LmNsYXNzLCAiQ29tbWVudCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0Q29tbWVudF9Cb2R5KCksIHRoaXMuZ2V0U3RyaW5nKCksICJib2R5IiwgIiIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQlpbml0RVJlZmVyZW5jZShnZXRDb21tZW50X0Fubm90YXRlZEVsZW1lbnQoKSwgdGhpcy5nZXRFbGVtZW50KCksIG51bGwsICJhbm5vdGF0ZWRFbGVtZW50IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENvbW1lbnRfQm9keUV4cHJlc3Npb24oKSwgdGhpcy5nZXRTdHJpbmdFeHByZXNzaW9uKCksIG51bGwsICJib2R5RXhwcmVzc2lvbiIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGNvbW1lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCiAJCWluaXRFQ2xhc3MobmFtZWRFbGVtZW50RUNsYXNzLCBOYW1lZEVsZW1lbnQuY2xhc3MsICJOYW1lZEVsZW1lbnQiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAkJaW5pdEVBdHRyaWJ1dGUoZ2V0TmFtZWRFbGVtZW50X05hbWUoKSwgdGhpcy5nZXRTdHJpbmcoKSwgIm5hbWUiLCAiIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCWluaXRFQXR0cmlidXRlKGdldE5hbWVkRWxlbWVudF9RdWFsaWZpZWROYW1lKCksIHRoaXMuZ2V0U3RyaW5nKCksICJxdWFsaWZpZWROYW1lIiwgIiIsIDAsIDEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsIElTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKQEAgLTEwNTQ5LDYgKzEwNTA3LDQ4IEBACiAKIAkJYWRkRU9wZXJhdGlvbihuYW1lc3BhY2VFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAogCisJCWluaXRFQ2xhc3MoZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MsIERpcmVjdGVkUmVsYXRpb25zaGlwLmNsYXNzLCAiRGlyZWN0ZWRSZWxhdGlvbnNoaXAiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXBfU291cmNlKCksIHRoaXMuZ2V0RWxlbWVudCgpLCBudWxsLCAic291cmNlIiwgbnVsbCwgMSwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXREaXJlY3RlZFJlbGF0aW9uc2hpcF9UYXJnZXQoKSwgdGhpcy5nZXRFbGVtZW50KCksIG51bGwsICJ0YXJnZXQiLCBudWxsLCAxLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkaXJlY3RlZFJlbGF0aW9uc2hpcEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVsYXRlZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKHJlbGF0aW9uc2hpcEVDbGFzcywgUmVsYXRpb25zaGlwLmNsYXNzLCAiUmVsYXRpb25zaGlwIiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFJlbGF0aW9uc2hpcF9SZWxhdGVkRWxlbWVudCgpLCB0aGlzLmdldEVsZW1lbnQoKSwgbnVsbCwgInJlbGF0ZWRFbGVtZW50IiwgbnVsbCwgMSwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3Mob3BhcXVlRXhwcmVzc2lvbkVDbGFzcywgT3BhcXVlRXhwcmVzc2lvbi5jbGFzcywgIk9wYXF1ZUV4cHJlc3Npb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldE9wYXF1ZUV4cHJlc3Npb25fQm9keSgpLCB0aGlzLmdldFN0cmluZygpLCAiYm9keSIsICIiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0T3BhcXVlRXhwcmVzc2lvbl9MYW5ndWFnZSgpLCB0aGlzLmdldFN0cmluZygpLCAibGFuZ3VhZ2UiLCAiIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFUmVmZXJlbmNlKGdldE9wYXF1ZUV4cHJlc3Npb25fUmVzdWx0KCksIHRoaXMuZ2V0UGFyYW1ldGVyKCksIG51bGwsICJyZXN1bHQiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCAhSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCBJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRPcGFxdWVFeHByZXNzaW9uX0JlaGF2aW9yKCksIHRoaXMuZ2V0QmVoYXZpb3IoKSwgbnVsbCwgImJlaGF2aW9yIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3ModmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLCBWYWx1ZVNwZWNpZmljYXRpb24uY2xhc3MsICJWYWx1ZVNwZWNpZmljYXRpb24iLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRCb29sZWFuKCksICJpc0NvbXB1dGFibGUiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24odmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLCB0aGlzLmdldEludGVnZXIoKSwgImludGVnZXJWYWx1ZSIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbih2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MsIHRoaXMuZ2V0Qm9vbGVhbigpLCAiYm9vbGVhblZhbHVlIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRTdHJpbmcoKSwgInN0cmluZ1ZhbHVlIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcywgdGhpcy5nZXRVbmxpbWl0ZWROYXR1cmFsKCksICJ1bmxpbWl0ZWRWYWx1ZSIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbih2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MsIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNOdWxsIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGV4cHJlc3Npb25FQ2xhc3MsIEV4cHJlc3Npb24uY2xhc3MsICJFeHByZXNzaW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRFeHByZXNzaW9uX1N5bWJvbCgpLCB0aGlzLmdldFN0cmluZygpLCAic3ltYm9sIiwgIiIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeHByZXNzaW9uX09wZXJhbmQoKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgIm9wZXJhbmQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oZXhwcmVzc2lvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhjb21tZW50RUNsYXNzLCBDb21tZW50LmNsYXNzLCAiQ29tbWVudCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0Q29tbWVudF9Cb2R5KCksIHRoaXMuZ2V0U3RyaW5nKCksICJib2R5IiwgIiIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQlpbml0RVJlZmVyZW5jZShnZXRDb21tZW50X0Fubm90YXRlZEVsZW1lbnQoKSwgdGhpcy5nZXRFbGVtZW50KCksIG51bGwsICJhbm5vdGF0ZWRFbGVtZW50IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENvbW1lbnRfQm9keUV4cHJlc3Npb24oKSwgdGhpcy5nZXRTdHJpbmdFeHByZXNzaW9uKCksIG51bGwsICJib2R5RXhwcmVzc2lvbiIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGNvbW1lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCiAJCWluaXRFQ2xhc3MoY2xhc3NFQ2xhc3MsIG9yZy5lY2xpcHNlLnVtbDIuQ2xhc3MuY2xhc3MsICJDbGFzcyIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhc3NfT3duZWRPcGVyYXRpb24oKSwgdGhpcy5nZXRPcGVyYXRpb24oKSwgdGhpcy5nZXRPcGVyYXRpb25fQ2xhc3NfKCksICJvd25lZE9wZXJhdGlvbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldENsYXNzX1N1cGVyQ2xhc3MoKSwgdGhpcy5nZXRDbGFzc18oKSwgbnVsbCwgInN1cGVyQ2xhc3MiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCkBAIC0xMDkzOCwxOCArMTA5MzgsNiBAQAogCiAJCWFkZEVPcGVyYXRpb24ocmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhnZW5lcmFsaXphdGlvbkVDbGFzcywgR2VuZXJhbGl6YXRpb24uY2xhc3MsICJHZW5lcmFsaXphdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0R2VuZXJhbGl6YXRpb25fU3BlY2lmaWMoKSwgdGhpcy5nZXRDbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcl9HZW5lcmFsaXphdGlvbigpLCAic3BlY2lmaWMiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEdlbmVyYWxpemF0aW9uX0dlbmVyYWwoKSwgdGhpcy5nZXRDbGFzc2lmaWVyKCksIG51bGwsICJnZW5lcmFsIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRHZW5lcmFsaXphdGlvbl9Jc1N1YnN0aXR1dGFibGUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc1N1YnN0aXR1dGFibGUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEdlbmVyYWxpemF0aW9uX0dlbmVyYWxpemF0aW9uU2V0KCksIHRoaXMuZ2V0R2VuZXJhbGl6YXRpb25TZXQoKSwgdGhpcy5nZXRHZW5lcmFsaXphdGlvblNldF9HZW5lcmFsaXphdGlvbigpLCAiZ2VuZXJhbGl6YXRpb25TZXQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCB0aGlzLmdldEVsZW1lbnQoKSwgImdldE93bmVyIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKLQogCQlpbml0RUNsYXNzKGluc3RhbmNlU3BlY2lmaWNhdGlvbkVDbGFzcywgSW5zdGFuY2VTcGVjaWZpY2F0aW9uLmNsYXNzLCAiSW5zdGFuY2VTcGVjaWZpY2F0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRJbnN0YW5jZVNwZWNpZmljYXRpb25fU2xvdCgpLCB0aGlzLmdldFNsb3QoKSwgdGhpcy5nZXRTbG90X093bmluZ0luc3RhbmNlKCksICJzbG90IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldEluc3RhbmNlU3BlY2lmaWNhdGlvbl9DbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcigpLCBudWxsLCAiY2xhc3NpZmllciIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJApAQCAtMTA5NzcsNiArMTA5NjUsMTggQEAKIAkJaW5pdEVDbGFzcyhpbnN0YW5jZVZhbHVlRUNsYXNzLCBJbnN0YW5jZVZhbHVlLmNsYXNzLCAiSW5zdGFuY2VWYWx1ZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAkJaW5pdEVSZWZlcmVuY2UoZ2V0SW5zdGFuY2VWYWx1ZV9JbnN0YW5jZSgpLCB0aGlzLmdldEluc3RhbmNlU3BlY2lmaWNhdGlvbigpLCBudWxsLCAiaW5zdGFuY2UiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKKwkJaW5pdEVDbGFzcyhnZW5lcmFsaXphdGlvbkVDbGFzcywgR2VuZXJhbGl6YXRpb24uY2xhc3MsICJHZW5lcmFsaXphdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0R2VuZXJhbGl6YXRpb25fU3BlY2lmaWMoKSwgdGhpcy5nZXRDbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcl9HZW5lcmFsaXphdGlvbigpLCAic3BlY2lmaWMiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEdlbmVyYWxpemF0aW9uX0dlbmVyYWwoKSwgdGhpcy5nZXRDbGFzc2lmaWVyKCksIG51bGwsICJnZW5lcmFsIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRHZW5lcmFsaXphdGlvbl9Jc1N1YnN0aXR1dGFibGUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc1N1YnN0aXR1dGFibGUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEdlbmVyYWxpemF0aW9uX0dlbmVyYWxpemF0aW9uU2V0KCksIHRoaXMuZ2V0R2VuZXJhbGl6YXRpb25TZXQoKSwgdGhpcy5nZXRHZW5lcmFsaXphdGlvblNldF9HZW5lcmFsaXphdGlvbigpLCAiZ2VuZXJhbGl6YXRpb25TZXQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCB0aGlzLmdldEVsZW1lbnQoKSwgImdldE93bmVyIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGdlbmVyYWxpemF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKwogCQlpbml0RUNsYXNzKHBhY2thZ2VhYmxlRWxlbWVudEVDbGFzcywgUGFja2FnZWFibGVFbGVtZW50LmNsYXNzLCAiUGFja2FnZWFibGVFbGVtZW50IiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFQXR0cmlidXRlKGdldFBhY2thZ2VhYmxlRWxlbWVudF9QYWNrYWdlYWJsZUVsZW1lbnRfdmlzaWJpbGl0eSgpLCB0aGlzLmdldFZpc2liaWxpdHlLaW5kKCksICJwYWNrYWdlYWJsZUVsZW1lbnRfdmlzaWJpbGl0eSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCkBAIC0xMTIxMCw2ICsxMTIxMCw5MSBAQAogCiAJCWFkZEVPcGVyYXRpb24oc3RydWN0dXJlZENsYXNzaWZpZXJFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldEZlYXR1cmVzIik7IC8vJE5PTi1OTFMtMSQKIAorCQlpbml0RUNsYXNzKGludGVyZmFjZUVDbGFzcywgSW50ZXJmYWNlLmNsYXNzLCAiSW50ZXJmYWNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcmZhY2VfT3duZWRBdHRyaWJ1dGUoKSwgdGhpcy5nZXRQcm9wZXJ0eSgpLCBudWxsLCAib3duZWRBdHRyaWJ1dGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcmZhY2VfT3duZWRPcGVyYXRpb24oKSwgdGhpcy5nZXRPcGVyYXRpb24oKSwgbnVsbCwgIm93bmVkT3BlcmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJmYWNlX1JlZGVmaW5lZEludGVyZmFjZSgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicmVkZWZpbmVkSW50ZXJmYWNlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEludGVyZmFjZV9OZXN0ZWRDbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcigpLCBudWxsLCAibmVzdGVkQ2xhc3NpZmllciIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEludGVyZmFjZV9Pd25lZFJlY2VwdGlvbigpLCB0aGlzLmdldFJlY2VwdGlvbigpLCBudWxsLCAib3duZWRSZWNlcHRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJmYWNlX1Byb3RvY29sKCksIHRoaXMuZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmUoKSwgbnVsbCwgInByb3RvY29sIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oaW50ZXJmYWNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRBdHRyaWJ1dGVzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGludGVyZmFjZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGludGVyZmFjZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0RmVhdHVyZXMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oaW50ZXJmYWNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhpbXBsZW1lbnRhdGlvbkVDbGFzcywgSW1wbGVtZW50YXRpb24uY2xhc3MsICJJbXBsZW1lbnRhdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW1wbGVtZW50YXRpb25fQ29udHJhY3QoKSwgdGhpcy5nZXRJbnRlcmZhY2UoKSwgbnVsbCwgImNvbnRyYWN0IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEltcGxlbWVudGF0aW9uX0ltcGxlbWVudGluZ0NsYXNzaWZpZXIoKSwgdGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcigpLCB0aGlzLmdldEJlaGF2aW9yZWRDbGFzc2lmaWVyX0ltcGxlbWVudGF0aW9uKCksICJpbXBsZW1lbnRpbmdDbGFzc2lmaWVyIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihpbXBsZW1lbnRhdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U3VwcGxpZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGltcGxlbWVudGF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGltcGxlbWVudGF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRDbGllbnRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGltcGxlbWVudGF0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGFydGlmYWN0RUNsYXNzLCBBcnRpZmFjdC5jbGFzcywgIkFydGlmYWN0IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRBcnRpZmFjdF9GaWxlTmFtZSgpLCB0aGlzLmdldFN0cmluZygpLCAiZmlsZU5hbWUiLCAiIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFUmVmZXJlbmNlKGdldEFydGlmYWN0X05lc3RlZEFydGlmYWN0KCksIHRoaXMuZ2V0QXJ0aWZhY3QoKSwgbnVsbCwgIm5lc3RlZEFydGlmYWN0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEFydGlmYWN0X01hbmlmZXN0YXRpb24oKSwgdGhpcy5nZXRNYW5pZmVzdGF0aW9uKCksIG51bGwsICJtYW5pZmVzdGF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0QXJ0aWZhY3RfT3duZWRPcGVyYXRpb24oKSwgdGhpcy5nZXRPcGVyYXRpb24oKSwgbnVsbCwgIm93bmVkT3BlcmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0QXJ0aWZhY3RfT3duZWRBdHRyaWJ1dGUoKSwgdGhpcy5nZXRQcm9wZXJ0eSgpLCBudWxsLCAib3duZWRBdHRyaWJ1dGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oYXJ0aWZhY3RFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oYXJ0aWZhY3RFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldENsaWVudERlcGVuZGVuY2llcyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihhcnRpZmFjdEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0RmVhdHVyZXMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oYXJ0aWZhY3RFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkTWVtYmVycyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihhcnRpZmFjdEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0QXR0cmlidXRlcyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhtYW5pZmVzdGF0aW9uRUNsYXNzLCBNYW5pZmVzdGF0aW9uLmNsYXNzLCAiTWFuaWZlc3RhdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0TWFuaWZlc3RhdGlvbl9VdGlsaXplZEVsZW1lbnQoKSwgdGhpcy5nZXRQYWNrYWdlYWJsZUVsZW1lbnQoKSwgbnVsbCwgInV0aWxpemVkRWxlbWVudCIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24obWFuaWZlc3RhdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U3VwcGxpZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKG1hbmlmZXN0YXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFRhcmdldHMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoYWN0b3JFQ2xhc3MsIEFjdG9yLmNsYXNzLCAiQWN0b3IiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhleHRlbmRFQ2xhc3MsIEV4dGVuZC5jbGFzcywgIkV4dGVuZCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXh0ZW5kX0V4dGVuZGVkQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2UoKSwgbnVsbCwgImV4dGVuZGVkQ2FzZSIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXh0ZW5kX0V4dGVuc2lvbigpLCB0aGlzLmdldFVzZUNhc2UoKSwgdGhpcy5nZXRVc2VDYXNlX0V4dGVuZCgpLCAiZXh0ZW5zaW9uIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbmRfQ29uZGl0aW9uKCksIHRoaXMuZ2V0Q29uc3RyYWludCgpLCBudWxsLCAiY29uZGl0aW9uIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbmRfRXh0ZW5zaW9uTG9jYXRpb24oKSwgdGhpcy5nZXRFeHRlbnNpb25Qb2ludCgpLCBudWxsLCAiZXh0ZW5zaW9uTG9jYXRpb24iLCBudWxsLCAxLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oZXh0ZW5kRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGV4dGVuZEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U291cmNlcyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihleHRlbmRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3ModXNlQ2FzZUVDbGFzcywgVXNlQ2FzZS5jbGFzcywgIlVzZUNhc2UiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFVzZUNhc2VfSW5jbHVkZSgpLCB0aGlzLmdldEluY2x1ZGUoKSwgdGhpcy5nZXRJbmNsdWRlX0luY2x1ZGluZ0Nhc2UoKSwgImluY2x1ZGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VXNlQ2FzZV9FeHRlbmQoKSwgdGhpcy5nZXRFeHRlbmQoKSwgdGhpcy5nZXRFeHRlbmRfRXh0ZW5zaW9uKCksICJleHRlbmQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VXNlQ2FzZV9FeHRlbnNpb25Qb2ludCgpLCB0aGlzLmdldEV4dGVuc2lvblBvaW50KCksIHRoaXMuZ2V0RXh0ZW5zaW9uUG9pbnRfVXNlQ2FzZSgpLCAiZXh0ZW5zaW9uUG9pbnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VXNlQ2FzZV9TdWJqZWN0KCksIHRoaXMuZ2V0Q2xhc3NpZmllcigpLCB0aGlzLmdldENsYXNzaWZpZXJfVXNlQ2FzZSgpLCAic3ViamVjdCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24odXNlQ2FzZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGV4dGVuc2lvblBvaW50RUNsYXNzLCBFeHRlbnNpb25Qb2ludC5jbGFzcywgIkV4dGVuc2lvblBvaW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbnNpb25Qb2ludF9Vc2VDYXNlKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2VfRXh0ZW5zaW9uUG9pbnQoKSwgInVzZUNhc2UiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhpbmNsdWRlRUNsYXNzLCBJbmNsdWRlLmNsYXNzLCAiSW5jbHVkZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW5jbHVkZV9JbmNsdWRpbmdDYXNlKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2VfSW5jbHVkZSgpLCAiaW5jbHVkaW5nQ2FzZSIsIG51bGwsIDEsIDEsIElTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW5jbHVkZV9BZGRpdGlvbigpLCB0aGlzLmdldFVzZUNhc2UoKSwgbnVsbCwgImFkZGl0aW9uIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oaW5jbHVkZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U291cmNlcyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihpbmNsdWRlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKwogCQlpbml0RUNsYXNzKGFjdGl2aXR5RWRnZUVDbGFzcywgQWN0aXZpdHlFZGdlLmNsYXNzLCAiQWN0aXZpdHlFZGdlIiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldEFjdGl2aXR5RWRnZV9BY3Rpdml0eSgpLCB0aGlzLmdldEFjdGl2aXR5KCksIHRoaXMuZ2V0QWN0aXZpdHlfRWRnZSgpLCAiYWN0aXZpdHkiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldEFjdGl2aXR5RWRnZV9Tb3VyY2UoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGVfT3V0Z29pbmcoKSwgInNvdXJjZSIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKQEAgLTExMzEzLDkwICsxMTM5OCwxMjUgQEAKIAkJaW5pdEVDbGFzcyh2YWx1ZVBpbkVDbGFzcywgVmFsdWVQaW4uY2xhc3MsICJWYWx1ZVBpbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAkJaW5pdEVSZWZlcmVuY2UoZ2V0VmFsdWVQaW5fVmFsdWUoKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgInZhbHVlIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MoYXJ0aWZhY3RFQ2xhc3MsIEFydGlmYWN0LmNsYXNzLCAiQXJ0aWZhY3QiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldEFydGlmYWN0X0ZpbGVOYW1lKCksIHRoaXMuZ2V0U3RyaW5nKCksICJmaWxlTmFtZSIsICIiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0QXJ0aWZhY3RfTmVzdGVkQXJ0aWZhY3QoKSwgdGhpcy5nZXRBcnRpZmFjdCgpLCBudWxsLCAibmVzdGVkQXJ0aWZhY3QiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0QXJ0aWZhY3RfTWFuaWZlc3RhdGlvbigpLCB0aGlzLmdldE1hbmlmZXN0YXRpb24oKSwgbnVsbCwgIm1hbmlmZXN0YXRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRBcnRpZmFjdF9Pd25lZE9wZXJhdGlvbigpLCB0aGlzLmdldE9wZXJhdGlvbigpLCBudWxsLCAib3duZWRPcGVyYXRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRBcnRpZmFjdF9Pd25lZEF0dHJpYnV0ZSgpLCB0aGlzLmdldFByb3BlcnR5KCksIG51bGwsICJvd25lZEF0dHJpYnV0ZSIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3MoY2FsbFRyaWdnZXJFQ2xhc3MsIENhbGxUcmlnZ2VyLmNsYXNzLCAiQ2FsbFRyaWdnZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENhbGxUcmlnZ2VyX09wZXJhdGlvbigpLCB0aGlzLmdldE9wZXJhdGlvbigpLCBudWxsLCAib3BlcmF0aW9uIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oYXJ0aWZhY3RFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKG1lc3NhZ2VUcmlnZ2VyRUNsYXNzLCBNZXNzYWdlVHJpZ2dlci5jbGFzcywgIk1lc3NhZ2VUcmlnZ2VyIiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihhcnRpZmFjdEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0Q2xpZW50RGVwZW5kZW5jaWVzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhjaGFuZ2VUcmlnZ2VyRUNsYXNzLCBDaGFuZ2VUcmlnZ2VyLmNsYXNzLCAiQ2hhbmdlVHJpZ2dlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2hhbmdlVHJpZ2dlcl9DaGFuZ2VFeHByZXNzaW9uKCksIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksIG51bGwsICJjaGFuZ2VFeHByZXNzaW9uIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oYXJ0aWZhY3RFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldEZlYXR1cmVzIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihjaGFuZ2VUcmlnZ2VyRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGFydGlmYWN0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZE1lbWJlcnMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKHRyaWdnZXJFQ2xhc3MsIFRyaWdnZXIuY2xhc3MsICJUcmlnZ2VyIiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFRyaWdnZXJfUG9ydCgpLCB0aGlzLmdldFBvcnQoKSwgbnVsbCwgInBvcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGFydGlmYWN0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRBdHRyaWJ1dGVzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhyZWNlcHRpb25FQ2xhc3MsIFJlY2VwdGlvbi5jbGFzcywgIlJlY2VwdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0UmVjZXB0aW9uX1NpZ25hbCgpLCB0aGlzLmdldFNpZ25hbCgpLCBudWxsLCAic2lnbmFsIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MobWFuaWZlc3RhdGlvbkVDbGFzcywgTWFuaWZlc3RhdGlvbi5jbGFzcywgIk1hbmlmZXN0YXRpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldE1hbmlmZXN0YXRpb25fVXRpbGl6ZWRFbGVtZW50KCksIHRoaXMuZ2V0UGFja2FnZWFibGVFbGVtZW50KCksIG51bGwsICJ1dGlsaXplZEVsZW1lbnQiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhzaWduYWxFQ2xhc3MsIFNpZ25hbC5jbGFzcywgIlNpZ25hbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U2lnbmFsX093bmVkQXR0cmlidXRlKCksIHRoaXMuZ2V0UHJvcGVydHkoKSwgbnVsbCwgIm93bmVkQXR0cmlidXRlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKG1hbmlmZXN0YXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFN1cHBsaWVycyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oc2lnbmFsRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRBdHRyaWJ1dGVzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKG1hbmlmZXN0YXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFRhcmdldHMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHNpZ25hbEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKGludGVyZmFjZUVDbGFzcywgSW50ZXJmYWNlLmNsYXNzLCAiSW50ZXJmYWNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcmZhY2VfT3duZWRBdHRyaWJ1dGUoKSwgdGhpcy5nZXRQcm9wZXJ0eSgpLCBudWxsLCAib3duZWRBdHRyaWJ1dGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcmZhY2VfT3duZWRPcGVyYXRpb24oKSwgdGhpcy5nZXRPcGVyYXRpb24oKSwgbnVsbCwgIm93bmVkT3BlcmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJmYWNlX1JlZGVmaW5lZEludGVyZmFjZSgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicmVkZWZpbmVkSW50ZXJmYWNlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEludGVyZmFjZV9OZXN0ZWRDbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcigpLCBudWxsLCAibmVzdGVkQ2xhc3NpZmllciIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEludGVyZmFjZV9Pd25lZFJlY2VwdGlvbigpLCB0aGlzLmdldFJlY2VwdGlvbigpLCBudWxsLCAib3duZWRSZWNlcHRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJmYWNlX1Byb3RvY29sKCksIHRoaXMuZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmUoKSwgbnVsbCwgInByb3RvY29sIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKHNpZ25hbFRyaWdnZXJFQ2xhc3MsIFNpZ25hbFRyaWdnZXIuY2xhc3MsICJTaWduYWxUcmlnZ2VyIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRTaWduYWxUcmlnZ2VyX1NpZ25hbCgpLCB0aGlzLmdldFNpZ25hbCgpLCBudWxsLCAic2lnbmFsIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGludGVyZmFjZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0QXR0cmlidXRlcyIpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3ModGltZVRyaWdnZXJFQ2xhc3MsIFRpbWVUcmlnZ2VyLmNsYXNzLCAiVGltZVRyaWdnZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldFRpbWVUcmlnZ2VyX0lzUmVsYXRpdmUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc1JlbGF0aXZlIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRUaW1lVHJpZ2dlcl9XaGVuKCksIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksIG51bGwsICJ3aGVuIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW50ZXJmYWNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZE1lbWJlcnMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHRpbWVUcmlnZ2VyRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGludGVyZmFjZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0RmVhdHVyZXMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKGFueVRyaWdnZXJFQ2xhc3MsIEFueVRyaWdnZXIuY2xhc3MsICJBbnlUcmlnZ2VyIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW50ZXJmYWNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3MoY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MsIENvbGxhYm9yYXRpb25PY2N1cnJlbmNlLmNsYXNzLCAiQ29sbGFib3JhdGlvbk9jY3VycmVuY2UiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENvbGxhYm9yYXRpb25PY2N1cnJlbmNlX1R5cGUoKSwgdGhpcy5nZXRDb2xsYWJvcmF0aW9uKCksIG51bGwsICJ0eXBlIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZV9Sb2xlQmluZGluZygpLCB0aGlzLmdldERlcGVuZGVuY3koKSwgbnVsbCwgInJvbGVCaW5kaW5nIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhpbXBsZW1lbnRhdGlvbkVDbGFzcywgSW1wbGVtZW50YXRpb24uY2xhc3MsICJJbXBsZW1lbnRhdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW1wbGVtZW50YXRpb25fQ29udHJhY3QoKSwgdGhpcy5nZXRJbnRlcmZhY2UoKSwgbnVsbCwgImNvbnRyYWN0IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEltcGxlbWVudGF0aW9uX0ltcGxlbWVudGluZ0NsYXNzaWZpZXIoKSwgdGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcigpLCB0aGlzLmdldEJlaGF2aW9yZWRDbGFzc2lmaWVyX0ltcGxlbWVudGF0aW9uKCksICJpbXBsZW1lbnRpbmdDbGFzc2lmaWVyIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW1wbGVtZW50YXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFN1cHBsaWVycyIpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3MoY29sbGFib3JhdGlvbkVDbGFzcywgQ29sbGFib3JhdGlvbi5jbGFzcywgIkNvbGxhYm9yYXRpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENvbGxhYm9yYXRpb25fQ29sbGFib3JhdGlvblJvbGUoKSwgdGhpcy5nZXRDb25uZWN0YWJsZUVsZW1lbnQoKSwgbnVsbCwgImNvbGxhYm9yYXRpb25Sb2xlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihpbXBsZW1lbnRhdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0VGFyZ2V0cyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oY29sbGFib3JhdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0Um9sZXMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW1wbGVtZW50YXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldENsaWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKHBvcnRFQ2xhc3MsIFBvcnQuY2xhc3MsICJQb3J0IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRQb3J0X0lzQmVoYXZpb3IoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0JlaGF2aW9yIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFQXR0cmlidXRlKGdldFBvcnRfSXNTZXJ2aWNlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNTZXJ2aWNlIiwgInRydWUiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0UG9ydF9SZXF1aXJlZCgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicmVxdWlyZWQiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFBvcnRfUmVkZWZpbmVkUG9ydCgpLCB0aGlzLmdldFBvcnQoKSwgbnVsbCwgInJlZGVmaW5lZFBvcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0UG9ydF9Qcm92aWRlZCgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicHJvdmlkZWQiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFBvcnRfUHJvdG9jb2woKSwgdGhpcy5nZXRQcm90b2NvbFN0YXRlTWFjaGluZSgpLCBudWxsLCAicHJvdG9jb2wiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihpbXBsZW1lbnRhdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U291cmNlcyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24ocG9ydEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MoYWN0b3JFQ2xhc3MsIEFjdG9yLmNsYXNzLCAiQWN0b3IiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3MoZW5jYXBzdWxhdGVkQ2xhc3NpZmllckVDbGFzcywgRW5jYXBzdWxhdGVkQ2xhc3NpZmllci5jbGFzcywgIkVuY2Fwc3VsYXRlZENsYXNzaWZpZXIiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RW5jYXBzdWxhdGVkQ2xhc3NpZmllcl9Pd25lZFBvcnQoKSwgdGhpcy5nZXRQb3J0KCksIG51bGwsICJvd25lZFBvcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKGV4dGVuZEVDbGFzcywgRXh0ZW5kLmNsYXNzLCAiRXh0ZW5kIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbmRfRXh0ZW5kZWRDYXNlKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCBudWxsLCAiZXh0ZW5kZWRDYXNlIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbmRfRXh0ZW5zaW9uKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2VfRXh0ZW5kKCksICJleHRlbnNpb24iLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEV4dGVuZF9Db25kaXRpb24oKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJjb25kaXRpb24iLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEV4dGVuZF9FeHRlbnNpb25Mb2NhdGlvbigpLCB0aGlzLmdldEV4dGVuc2lvblBvaW50KCksIG51bGwsICJleHRlbnNpb25Mb2NhdGlvbiIsIG51bGwsIDEsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oZW5jYXBzdWxhdGVkQ2xhc3NpZmllckVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0RmVhdHVyZXMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oZXh0ZW5kRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihlbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZE1lbWJlcnMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oZXh0ZW5kRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyh2YXJpYWJsZUVDbGFzcywgVmFyaWFibGUuY2xhc3MsICJWYXJpYWJsZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VmFyaWFibGVfU2NvcGUoKSwgdGhpcy5nZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKCksIHRoaXMuZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9WYXJpYWJsZSgpLCAic2NvcGUiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihleHRlbmRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHZhcmlhYmxlRUNsYXNzLCB0aGlzLmdldEVsZW1lbnQoKSwgImdldE93bmVyIik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKHVzZUNhc2VFQ2xhc3MsIFVzZUNhc2UuY2xhc3MsICJVc2VDYXNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRVc2VDYXNlX0luY2x1ZGUoKSwgdGhpcy5nZXRJbmNsdWRlKCksIHRoaXMuZ2V0SW5jbHVkZV9JbmNsdWRpbmdDYXNlKCksICJpbmNsdWRlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFVzZUNhc2VfRXh0ZW5kKCksIHRoaXMuZ2V0RXh0ZW5kKCksIHRoaXMuZ2V0RXh0ZW5kX0V4dGVuc2lvbigpLCAiZXh0ZW5kIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFVzZUNhc2VfRXh0ZW5zaW9uUG9pbnQoKSwgdGhpcy5nZXRFeHRlbnNpb25Qb2ludCgpLCB0aGlzLmdldEV4dGVuc2lvblBvaW50X1VzZUNhc2UoKSwgImV4dGVuc2lvblBvaW50IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFVzZUNhc2VfU3ViamVjdCgpLCB0aGlzLmdldENsYXNzaWZpZXIoKSwgdGhpcy5nZXRDbGFzc2lmaWVyX1VzZUNhc2UoKSwgInN1YmplY3QiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLCBTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlLmNsYXNzLCAiU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9WYXJpYWJsZSgpLCB0aGlzLmdldFZhcmlhYmxlKCksIHRoaXMuZ2V0VmFyaWFibGVfU2NvcGUoKSwgInZhcmlhYmxlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFN0cnVjdHVyZWRBY3Rpdml0eU5vZGVfQ29udGFpbmVkTm9kZSgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZSgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZV9JblN0cnVjdHVyZWROb2RlKCksICJjb250YWluZWROb2RlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9Db250YWluZWRFZGdlKCksIHRoaXMuZ2V0QWN0aXZpdHlFZGdlKCksIHRoaXMuZ2V0QWN0aXZpdHlFZGdlX0luU3RydWN0dXJlZE5vZGUoKSwgImNvbnRhaW5lZEVkZ2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlX011c3RJc29sYXRlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAibXVzdElzb2xhdGUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbih1c2VDYXNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZE1lbWJlcnMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIHRoaXMuZ2V0QWN0aXZpdHkoKSwgImdldEFjdGl2aXR5Iik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKGV4dGVuc2lvblBvaW50RUNsYXNzLCBFeHRlbnNpb25Qb2ludC5jbGFzcywgIkV4dGVuc2lvblBvaW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHRlbnNpb25Qb2ludF9Vc2VDYXNlKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2VfRXh0ZW5zaW9uUG9pbnQoKSwgInVzZUNhc2UiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCW9wID0gYWRkRU9wZXJhdGlvbihzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLCBudWxsLCAic2V0QWN0aXZpdHkiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldEFjdGl2aXR5KCksICJuZXdBY3Rpdml0eSIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhpbmNsdWRlRUNsYXNzLCBJbmNsdWRlLmNsYXNzLCAiSW5jbHVkZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW5jbHVkZV9JbmNsdWRpbmdDYXNlKCksIHRoaXMuZ2V0VXNlQ2FzZSgpLCB0aGlzLmdldFVzZUNhc2VfSW5jbHVkZSgpLCAiaW5jbHVkaW5nQ2FzZSIsIG51bGwsIDEsIDEsIElTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW5jbHVkZV9BZGRpdGlvbigpLCB0aGlzLmdldFVzZUNhc2UoKSwgbnVsbCwgImFkZGl0aW9uIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIHRoaXMuZ2V0QWN0aXZpdHkoKSwgImdldEFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW5jbHVkZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0U291cmNlcyIpOyAvLyROT04tTkxTLTEkCisJCW9wID0gYWRkRU9wZXJhdGlvbihzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLCBudWxsLCAic2V0QWN0aXZpdHlHcm91cF9hY3Rpdml0eSIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0QWN0aXZpdHkoKSwgIm5ld0FjdGl2aXR5R3JvdXBfYWN0aXZpdHkiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oaW5jbHVkZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0VGFyZ2V0cyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGNvbmRpdGlvbmFsTm9kZUVDbGFzcywgQ29uZGl0aW9uYWxOb2RlLmNsYXNzLCAiQ29uZGl0aW9uYWxOb2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRDb25kaXRpb25hbE5vZGVfSXNEZXRlcm1pbmF0ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzRGV0ZXJtaW5hdGUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldENvbmRpdGlvbmFsTm9kZV9Jc0Fzc3VyZWQoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0Fzc3VyZWQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENvbmRpdGlvbmFsTm9kZV9DbGF1c2UoKSwgdGhpcy5nZXRDbGF1c2UoKSwgbnVsbCwgImNsYXVzZSIsIG51bGwsIDEsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRDb25kaXRpb25hbE5vZGVfUmVzdWx0KCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJyZXN1bHQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oY29uZGl0aW9uYWxOb2RlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGNvbmRpdGlvbmFsTm9kZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3V0cHV0cyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhjbGF1c2VFQ2xhc3MsIENsYXVzZS5jbGFzcywgIkNsYXVzZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1Rlc3QoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgbnVsbCwgInRlc3QiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX0JvZHkoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgbnVsbCwgImJvZHkiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1ByZWRlY2Vzc29yQ2xhdXNlKCksIHRoaXMuZ2V0Q2xhdXNlKCksIHRoaXMuZ2V0Q2xhdXNlX1N1Y2Nlc3NvckNsYXVzZSgpLCAicHJlZGVjZXNzb3JDbGF1c2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1N1Y2Nlc3NvckNsYXVzZSgpLCB0aGlzLmdldENsYXVzZSgpLCB0aGlzLmdldENsYXVzZV9QcmVkZWNlc3NvckNsYXVzZSgpLCAic3VjY2Vzc29yQ2xhdXNlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldENsYXVzZV9EZWNpZGVyKCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJkZWNpZGVyIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRDbGF1c2VfQm9keU91dHB1dCgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAiYm9keU91dHB1dCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MobG9vcE5vZGVFQ2xhc3MsIExvb3BOb2RlLmNsYXNzLCAiTG9vcE5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldExvb3BOb2RlX0lzVGVzdGVkRmlyc3QoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc1Rlc3RlZEZpcnN0IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9Cb2R5UGFydCgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZSgpLCBudWxsLCAiYm9keVBhcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0TG9vcE5vZGVfU2V0dXBQYXJ0KCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIG51bGwsICJzZXR1cFBhcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0TG9vcE5vZGVfRGVjaWRlcigpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAiZGVjaWRlciIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0TG9vcE5vZGVfVGVzdCgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZSgpLCBudWxsLCAidGVzdCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9SZXN1bHQoKSwgdGhpcy5nZXRPdXRwdXRQaW4oKSwgbnVsbCwgInJlc3VsdCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldExvb3BOb2RlX0xvb3BWYXJpYWJsZSgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAibG9vcFZhcmlhYmxlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0TG9vcE5vZGVfQm9keU91dHB1dCgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAiYm9keU91dHB1dCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9Mb29wVmFyaWFibGVJbnB1dCgpLCB0aGlzLmdldElucHV0UGluKCksIG51bGwsICJsb29wVmFyaWFibGVJbnB1dCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihsb29wTm9kZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3V0cHV0cyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihsb29wTm9kZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihsb29wTm9kZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0SW5wdXRzIik7IC8vJE5PTi1OTFMtMSQKIAogCQlpbml0RUNsYXNzKHRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLCBUZW1wbGF0ZVNpZ25hdHVyZS5jbGFzcywgIlRlbXBsYXRlU2lnbmF0dXJlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRUZW1wbGF0ZVNpZ25hdHVyZV9QYXJhbWV0ZXIoKSwgdGhpcy5nZXRUZW1wbGF0ZVBhcmFtZXRlcigpLCBudWxsLCAicGFyYW1ldGVyIiwgbnVsbCwgMSwgLTEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKQEAgLTExNDY1LDExICsxMTU4NSw2IEBACiAKIAkJYWRkRU9wZXJhdGlvbih0ZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhjb2xsYWJvcmF0aW9uRUNsYXNzLCBDb2xsYWJvcmF0aW9uLmNsYXNzLCAiQ29sbGFib3JhdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q29sbGFib3JhdGlvbl9Db2xsYWJvcmF0aW9uUm9sZSgpLCB0aGlzLmdldENvbm5lY3RhYmxlRWxlbWVudCgpLCBudWxsLCAiY29sbGFib3JhdGlvblJvbGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGNvbGxhYm9yYXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJvbGVzIik7IC8vJE5PTi1OTFMtMSQKLQogCQlpbml0RUNsYXNzKG9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLCBPcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlci5jbGFzcywgIk9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCiAJCWluaXRFQ2xhc3MoY2xhc3NpZmllclRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLCBDbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIuY2xhc3MsICJDbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCkBAIC0xMTQ4MywyOSArMTE1OTgsNiBAQAogCiAJCWluaXRFQ2xhc3MoY29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MsIENvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyLmNsYXNzLCAiQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhjb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUVDbGFzcywgQ29sbGFib3JhdGlvbk9jY3VycmVuY2UuY2xhc3MsICJDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q29sbGFib3JhdGlvbk9jY3VycmVuY2VfVHlwZSgpLCB0aGlzLmdldENvbGxhYm9yYXRpb24oKSwgbnVsbCwgInR5cGUiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENvbGxhYm9yYXRpb25PY2N1cnJlbmNlX1JvbGVCaW5kaW5nKCksIHRoaXMuZ2V0RGVwZW5kZW5jeSgpLCBudWxsLCAicm9sZUJpbmRpbmciLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHBvcnRFQ2xhc3MsIFBvcnQuY2xhc3MsICJQb3J0IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRQb3J0X0lzQmVoYXZpb3IoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0JlaGF2aW9yIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCWluaXRFQXR0cmlidXRlKGdldFBvcnRfSXNTZXJ2aWNlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNTZXJ2aWNlIiwgInRydWUiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UG9ydF9SZXF1aXJlZCgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicmVxdWlyZWQiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFBvcnRfUmVkZWZpbmVkUG9ydCgpLCB0aGlzLmdldFBvcnQoKSwgbnVsbCwgInJlZGVmaW5lZFBvcnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UG9ydF9Qcm92aWRlZCgpLCB0aGlzLmdldEludGVyZmFjZSgpLCBudWxsLCAicHJvdmlkZWQiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFBvcnRfUHJvdG9jb2woKSwgdGhpcy5nZXRQcm90b2NvbFN0YXRlTWFjaGluZSgpLCBudWxsLCAicHJvdG9jb2wiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihwb3J0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhlbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLCBFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyLmNsYXNzLCAiRW5jYXBzdWxhdGVkQ2xhc3NpZmllciIsIElTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyX093bmVkUG9ydCgpLCB0aGlzLmdldFBvcnQoKSwgbnVsbCwgIm93bmVkUG9ydCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZW5jYXBzdWxhdGVkQ2xhc3NpZmllckVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0RmVhdHVyZXMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZW5jYXBzdWxhdGVkQ2xhc3NpZmllckVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKLQogCQlpbml0RUNsYXNzKGludGVyYWN0aW9uRUNsYXNzLCBJbnRlcmFjdGlvbi5jbGFzcywgIkludGVyYWN0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcmFjdGlvbl9MaWZlbGluZSgpLCB0aGlzLmdldExpZmVsaW5lKCksIHRoaXMuZ2V0TGlmZWxpbmVfSW50ZXJhY3Rpb24oKSwgImxpZmVsaW5lIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldEludGVyYWN0aW9uX01lc3NhZ2UoKSwgdGhpcy5nZXRNZXNzYWdlKCksIHRoaXMuZ2V0TWVzc2FnZV9JbnRlcmFjdGlvbigpLCAibWVzc2FnZSIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJApAQCAtMTE1NzksMTM3ICsxMTY3MSw4OSBAQAogCiAJCWluaXRFQ2xhc3Moc3RvcEVDbGFzcywgU3RvcC5jbGFzcywgIlN0b3AiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyh2YXJpYWJsZUVDbGFzcywgVmFyaWFibGUuY2xhc3MsICJWYXJpYWJsZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0VmFyaWFibGVfU2NvcGUoKSwgdGhpcy5nZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKCksIHRoaXMuZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9WYXJpYWJsZSgpLCAic2NvcGUiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3Moc3RhdGVNYWNoaW5lRUNsYXNzLCBTdGF0ZU1hY2hpbmUuY2xhc3MsICJTdGF0ZU1hY2hpbmUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlTWFjaGluZV9SZWdpb24oKSwgdGhpcy5nZXRSZWdpb24oKSwgdGhpcy5nZXRSZWdpb25fU3RhdGVNYWNoaW5lKCksICJyZWdpb24iLCBudWxsLCAxLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVNYWNoaW5lX0Nvbm5lY3Rpb25Qb2ludCgpLCB0aGlzLmdldFBzZXVkb3N0YXRlKCksIG51bGwsICJjb25uZWN0aW9uUG9pbnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVNYWNoaW5lX0V4dGVuZGVkU3RhdGVNYWNoaW5lKCksIHRoaXMuZ2V0U3RhdGVNYWNoaW5lKCksIG51bGwsICJleHRlbmRlZFN0YXRlTWFjaGluZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVNYWNoaW5lX1N0YXRlTWFjaGluZV9yZWRlZmluaXRpb25Db250ZXh0KCksIHRoaXMuZ2V0QmVoYXZpb3JlZENsYXNzaWZpZXIoKSwgdGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcl9Pd25lZFN0YXRlTWFjaGluZSgpLCAic3RhdGVNYWNoaW5lX3JlZGVmaW5pdGlvbkNvbnRleHQiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHZhcmlhYmxlRUNsYXNzLCB0aGlzLmdldEVsZW1lbnQoKSwgImdldE93bmVyIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihzdGF0ZU1hY2hpbmVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJlZGVmaW5lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIFN0cnVjdHVyZWRBY3Rpdml0eU5vZGUuY2xhc3MsICJTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlX1ZhcmlhYmxlKCksIHRoaXMuZ2V0VmFyaWFibGUoKSwgdGhpcy5nZXRWYXJpYWJsZV9TY29wZSgpLCAidmFyaWFibGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9Db250YWluZWROb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlX0luU3RydWN0dXJlZE5vZGUoKSwgImNvbnRhaW5lZE5vZGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlX0NvbnRhaW5lZEVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2VfSW5TdHJ1Y3R1cmVkTm9kZSgpLCAiY29udGFpbmVkRWRnZSIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldFN0cnVjdHVyZWRBY3Rpdml0eU5vZGVfTXVzdElzb2xhdGUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJtdXN0SXNvbGF0ZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihzdGF0ZU1hY2hpbmVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJlZGVmaW5pdGlvbkNvbnRleHRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIHRoaXMuZ2V0QWN0aXZpdHkoKSwgImdldEFjdGl2aXR5Iik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihzdGF0ZU1hY2hpbmVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkTWVtYmVycyIpOyAvLyROT04tTkxTLTEkCiAKLQkJb3AgPSBhZGRFT3BlcmF0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIG51bGwsICJzZXRBY3Rpdml0eSIpOyAvLyROT04tTkxTLTEkCi0JCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0QWN0aXZpdHkoKSwgIm5ld0FjdGl2aXR5Iik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhyZWdpb25FQ2xhc3MsIFJlZ2lvbi5jbGFzcywgIlJlZ2lvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0UmVnaW9uX1N1YnZlcnRleCgpLCB0aGlzLmdldFZlcnRleCgpLCB0aGlzLmdldFZlcnRleF9Db250YWluZXIoKSwgInN1YnZlcnRleCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRSZWdpb25fVHJhbnNpdGlvbigpLCB0aGlzLmdldFRyYW5zaXRpb24oKSwgdGhpcy5nZXRUcmFuc2l0aW9uX0NvbnRhaW5lcigpLCAidHJhbnNpdGlvbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRSZWdpb25fU3RhdGVNYWNoaW5lKCksIHRoaXMuZ2V0U3RhdGVNYWNoaW5lKCksIHRoaXMuZ2V0U3RhdGVNYWNoaW5lX1JlZ2lvbigpLCAic3RhdGVNYWNoaW5lIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRSZWdpb25fU3RhdGUoKSwgdGhpcy5nZXRTdGF0ZSgpLCB0aGlzLmdldFN0YXRlX1JlZ2lvbigpLCAic3RhdGUiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFJlZ2lvbl9FeHRlbmRlZFJlZ2lvbigpLCB0aGlzLmdldFJlZ2lvbigpLCBudWxsLCAiZXh0ZW5kZWRSZWdpb24iLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLCB0aGlzLmdldEFjdGl2aXR5KCksICJnZXRBY3Rpdml0eUdyb3VwX2FjdGl2aXR5Iik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihyZWdpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJlZGVmaW5pdGlvbkNvbnRleHRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlvcCA9IGFkZEVPcGVyYXRpb24oc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcywgbnVsbCwgInNldEFjdGl2aXR5R3JvdXBfYWN0aXZpdHkiKTsgLy8kTk9OLU5MUy0xJAotCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldEFjdGl2aXR5KCksICJuZXdBY3Rpdml0eUdyb3VwX2FjdGl2aXR5Iik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihyZWdpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJlZGVmaW5lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkTWVtYmVycyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24ocmVnaW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKGNvbmRpdGlvbmFsTm9kZUVDbGFzcywgQ29uZGl0aW9uYWxOb2RlLmNsYXNzLCAiQ29uZGl0aW9uYWxOb2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRDb25kaXRpb25hbE5vZGVfSXNEZXRlcm1pbmF0ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzRGV0ZXJtaW5hdGUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldENvbmRpdGlvbmFsTm9kZV9Jc0Fzc3VyZWQoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0Fzc3VyZWQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENvbmRpdGlvbmFsTm9kZV9DbGF1c2UoKSwgdGhpcy5nZXRDbGF1c2UoKSwgbnVsbCwgImNsYXVzZSIsIG51bGwsIDEsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRDb25kaXRpb25hbE5vZGVfUmVzdWx0KCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJyZXN1bHQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHJlZ2lvbkVDbGFzcywgdGhpcy5nZXROYW1lc3BhY2UoKSwgImdldE5hbWVzcGFjZSIpOyAvLyROT04tTkxTLTEkCiAKLQkJYWRkRU9wZXJhdGlvbihjb25kaXRpb25hbE5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKHBzZXVkb3N0YXRlRUNsYXNzLCBQc2V1ZG9zdGF0ZS5jbGFzcywgIlBzZXVkb3N0YXRlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRQc2V1ZG9zdGF0ZV9LaW5kKCksIHRoaXMuZ2V0UHNldWRvc3RhdGVLaW5kKCksICJraW5kIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oY29uZGl0aW9uYWxOb2RlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPdXRwdXRzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhzdGF0ZUVDbGFzcywgU3RhdGUuY2xhc3MsICJTdGF0ZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0U3RhdGVfSXNDb21wb3NpdGUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0NvbXBvc2l0ZSIsIG51bGwsIDAsIDEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsIElTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldFN0YXRlX0lzT3J0aG9nb25hbCgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzT3J0aG9nb25hbCIsIG51bGwsIDAsIDEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsIElTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldFN0YXRlX0lzU2ltcGxlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNTaW1wbGUiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCAhSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCBJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRTdGF0ZV9Jc1N1Ym1hY2hpbmVTdGF0ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzU3VibWFjaGluZVN0YXRlIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVfU3VibWFjaGluZSgpLCB0aGlzLmdldFN0YXRlTWFjaGluZSgpLCBudWxsLCAic3VibWFjaGluZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVfQ29ubmVjdGlvbigpLCB0aGlzLmdldENvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSgpLCBudWxsLCAiY29ubmVjdGlvbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9SZWRlZmluZWRTdGF0ZSgpLCB0aGlzLmdldFN0YXRlKCksIG51bGwsICJyZWRlZmluZWRTdGF0ZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVfRGVmZXJyYWJsZVRyaWdnZXIoKSwgdGhpcy5nZXRUcmlnZ2VyKCksIG51bGwsICJkZWZlcnJhYmxlVHJpZ2dlciIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9SZWdpb24oKSwgdGhpcy5nZXRSZWdpb24oKSwgdGhpcy5nZXRSZWdpb25fU3RhdGUoKSwgInJlZ2lvbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9FbnRyeSgpLCB0aGlzLmdldEFjdGl2aXR5KCksIG51bGwsICJlbnRyeSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVfRXhpdCgpLCB0aGlzLmdldEFjdGl2aXR5KCksIG51bGwsICJleGl0IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9Eb0FjdGl2aXR5KCksIHRoaXMuZ2V0QWN0aXZpdHkoKSwgbnVsbCwgImRvQWN0aXZpdHkiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlX1N0YXRlSW52YXJpYW50KCksIHRoaXMuZ2V0Q29uc3RyYWludCgpLCBudWxsLCAic3RhdGVJbnZhcmlhbnQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhjbGF1c2VFQ2xhc3MsIENsYXVzZS5jbGFzcywgIkNsYXVzZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1Rlc3QoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgbnVsbCwgInRlc3QiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX0JvZHkoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgbnVsbCwgImJvZHkiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1ByZWRlY2Vzc29yQ2xhdXNlKCksIHRoaXMuZ2V0Q2xhdXNlKCksIHRoaXMuZ2V0Q2xhdXNlX1N1Y2Nlc3NvckNsYXVzZSgpLCAicHJlZGVjZXNzb3JDbGF1c2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q2xhdXNlX1N1Y2Nlc3NvckNsYXVzZSgpLCB0aGlzLmdldENsYXVzZSgpLCB0aGlzLmdldENsYXVzZV9QcmVkZWNlc3NvckNsYXVzZSgpLCAic3VjY2Vzc29yQ2xhdXNlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENsYXVzZV9EZWNpZGVyKCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJkZWNpZGVyIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRDbGF1c2VfQm9keU91dHB1dCgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAiYm9keU91dHB1dCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHN0YXRlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhsb29wTm9kZUVDbGFzcywgTG9vcE5vZGUuY2xhc3MsICJMb29wTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0TG9vcE5vZGVfSXNUZXN0ZWRGaXJzdCgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzVGVzdGVkRmlyc3QiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldExvb3BOb2RlX0JvZHlQYXJ0KCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIG51bGwsICJib2R5UGFydCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9TZXR1cFBhcnQoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgbnVsbCwgInNldHVwUGFydCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9EZWNpZGVyKCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJkZWNpZGVyIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9UZXN0KCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIG51bGwsICJ0ZXN0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldExvb3BOb2RlX1Jlc3VsdCgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAicmVzdWx0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0TG9vcE5vZGVfTG9vcFZhcmlhYmxlKCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJsb29wVmFyaWFibGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRMb29wTm9kZV9Cb2R5T3V0cHV0KCksIHRoaXMuZ2V0T3V0cHV0UGluKCksIG51bGwsICJib2R5T3V0cHV0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldExvb3BOb2RlX0xvb3BWYXJpYWJsZUlucHV0KCksIHRoaXMuZ2V0SW5wdXRQaW4oKSwgbnVsbCwgImxvb3BWYXJpYWJsZUlucHV0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihzdGF0ZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24obG9vcE5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE91dHB1dHMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHN0YXRlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGxvb3BOb2RlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbihzdGF0ZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKGxvb3BOb2RlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRJbnB1dHMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKHZlcnRleEVDbGFzcywgVmVydGV4LmNsYXNzLCAiVmVydGV4IiwgSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFZlcnRleF9Db250YWluZXIoKSwgdGhpcy5nZXRSZWdpb24oKSwgdGhpcy5nZXRSZWdpb25fU3VidmVydGV4KCksICJjb250YWluZXIiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFZlcnRleF9PdXRnb2luZygpLCB0aGlzLmdldFRyYW5zaXRpb24oKSwgdGhpcy5nZXRUcmFuc2l0aW9uX1NvdXJjZSgpLCAib3V0Z29pbmciLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VmVydGV4X0luY29taW5nKCksIHRoaXMuZ2V0VHJhbnNpdGlvbigpLCB0aGlzLmdldFRyYW5zaXRpb25fVGFyZ2V0KCksICJpbmNvbWluZyIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MoY2FsbFRyaWdnZXJFQ2xhc3MsIENhbGxUcmlnZ2VyLmNsYXNzLCAiQ2FsbFRyaWdnZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENhbGxUcmlnZ2VyX09wZXJhdGlvbigpLCB0aGlzLmdldE9wZXJhdGlvbigpLCBudWxsLCAib3BlcmF0aW9uIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHZlcnRleEVDbGFzcywgdGhpcy5nZXRFbGVtZW50KCksICJnZXRPd25lciIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhtZXNzYWdlVHJpZ2dlckVDbGFzcywgTWVzc2FnZVRyaWdnZXIuY2xhc3MsICJNZXNzYWdlVHJpZ2dlciIsIElTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKGNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZUVDbGFzcywgQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlLmNsYXNzLCAiQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VfRW50cnkoKSwgdGhpcy5nZXRQc2V1ZG9zdGF0ZSgpLCBudWxsLCAiZW50cnkiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0Q29ubmVjdGlvblBvaW50UmVmZXJlbmNlX0V4aXQoKSwgdGhpcy5nZXRQc2V1ZG9zdGF0ZSgpLCBudWxsLCAiZXhpdCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3MoY2hhbmdlVHJpZ2dlckVDbGFzcywgQ2hhbmdlVHJpZ2dlci5jbGFzcywgIkNoYW5nZVRyaWdnZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENoYW5nZVRyaWdnZXJfQ2hhbmdlRXhwcmVzc2lvbigpLCB0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpLCBudWxsLCAiY2hhbmdlRXhwcmVzc2lvbiIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyh0cmFuc2l0aW9uRUNsYXNzLCBUcmFuc2l0aW9uLmNsYXNzLCAiVHJhbnNpdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0VHJhbnNpdGlvbl9LaW5kKCksIHRoaXMuZ2V0VHJhbnNpdGlvbktpbmQoKSwgImtpbmQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFRyYW5zaXRpb25fQ29udGFpbmVyKCksIHRoaXMuZ2V0UmVnaW9uKCksIHRoaXMuZ2V0UmVnaW9uX1RyYW5zaXRpb24oKSwgImNvbnRhaW5lciIsIG51bGwsIDEsIDEsIElTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9Tb3VyY2UoKSwgdGhpcy5nZXRWZXJ0ZXgoKSwgdGhpcy5nZXRWZXJ0ZXhfT3V0Z29pbmcoKSwgInNvdXJjZSIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9UYXJnZXQoKSwgdGhpcy5nZXRWZXJ0ZXgoKSwgdGhpcy5nZXRWZXJ0ZXhfSW5jb21pbmcoKSwgInRhcmdldCIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9SZWRlZmluZWRUcmFuc2l0aW9uKCksIHRoaXMuZ2V0VHJhbnNpdGlvbigpLCBudWxsLCAicmVkZWZpbmVkVHJhbnNpdGlvbiIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9UcmlnZ2VyKCksIHRoaXMuZ2V0VHJpZ2dlcigpLCBudWxsLCAidHJpZ2dlciIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX0d1YXJkKCksIHRoaXMuZ2V0Q29uc3RyYWludCgpLCBudWxsLCAiZ3VhcmQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9FZmZlY3QoKSwgdGhpcy5nZXRBY3Rpdml0eSgpLCBudWxsLCAiZWZmZWN0IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oY2hhbmdlVHJpZ2dlckVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24odHJhbnNpdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWluaXRFQ2xhc3ModHJpZ2dlckVDbGFzcywgVHJpZ2dlci5jbGFzcywgIlRyaWdnZXIiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJpZ2dlcl9Qb3J0KCksIHRoaXMuZ2V0UG9ydCgpLCBudWxsLCAicG9ydCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKHRyYW5zaXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFJlZGVmaW5lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKHJlY2VwdGlvbkVDbGFzcywgUmVjZXB0aW9uLmNsYXNzLCAiUmVjZXB0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRSZWNlcHRpb25fU2lnbmFsKCksIHRoaXMuZ2V0U2lnbmFsKCksIG51bGwsICJzaWduYWwiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24odHJhbnNpdGlvbkVDbGFzcywgdGhpcy5nZXRFbGVtZW50KCksICJnZXRPd25lciIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhzaWduYWxFQ2xhc3MsIFNpZ25hbC5jbGFzcywgIlNpZ25hbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0U2lnbmFsX093bmVkQXR0cmlidXRlKCksIHRoaXMuZ2V0UHJvcGVydHkoKSwgbnVsbCwgIm93bmVkQXR0cmlidXRlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRU9wZXJhdGlvbih0cmFuc2l0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHNpZ25hbEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0QXR0cmlidXRlcyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihzaWduYWxFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkTWVtYmVycyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhzaWduYWxUcmlnZ2VyRUNsYXNzLCBTaWduYWxUcmlnZ2VyLmNsYXNzLCAiU2lnbmFsVHJpZ2dlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0U2lnbmFsVHJpZ2dlcl9TaWduYWwoKSwgdGhpcy5nZXRTaWduYWwoKSwgbnVsbCwgInNpZ25hbCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyh0aW1lVHJpZ2dlckVDbGFzcywgVGltZVRyaWdnZXIuY2xhc3MsICJUaW1lVHJpZ2dlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0VGltZVRyaWdnZXJfSXNSZWxhdGl2ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzUmVsYXRpdmUiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFRpbWVUcmlnZ2VyX1doZW4oKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgIndoZW4iLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0aW1lVHJpZ2dlckVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhhbnlUcmlnZ2VyRUNsYXNzLCBBbnlUcmlnZ2VyLmNsYXNzLCAiQW55VHJpZ2dlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKGV4cGFuc2lvbk5vZGVFQ2xhc3MsIEV4cGFuc2lvbk5vZGUuY2xhc3MsICJFeHBhbnNpb25Ob2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHBhbnNpb25Ob2RlX1JlZ2lvbkFzT3V0cHV0KCksIHRoaXMuZ2V0RXhwYW5zaW9uUmVnaW9uKCksIHRoaXMuZ2V0RXhwYW5zaW9uUmVnaW9uX091dHB1dEVsZW1lbnQoKSwgInJlZ2lvbkFzT3V0cHV0IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHBhbnNpb25Ob2RlX1JlZ2lvbkFzSW5wdXQoKSwgdGhpcy5nZXRFeHBhbnNpb25SZWdpb24oKSwgdGhpcy5nZXRFeHBhbnNpb25SZWdpb25fSW5wdXRFbGVtZW50KCksICJyZWdpb25Bc0lucHV0IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZXhwYW5zaW9uUmVnaW9uRUNsYXNzLCBFeHBhbnNpb25SZWdpb24uY2xhc3MsICJFeHBhbnNpb25SZWdpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldEV4cGFuc2lvblJlZ2lvbl9Nb2RlKCksIHRoaXMuZ2V0RXhwYW5zaW9uS2luZCgpLCAibW9kZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhwYW5zaW9uUmVnaW9uX091dHB1dEVsZW1lbnQoKSwgdGhpcy5nZXRFeHBhbnNpb25Ob2RlKCksIHRoaXMuZ2V0RXhwYW5zaW9uTm9kZV9SZWdpb25Bc091dHB1dCgpLCAib3V0cHV0RWxlbWVudCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeHBhbnNpb25SZWdpb25fSW5wdXRFbGVtZW50KCksIHRoaXMuZ2V0RXhwYW5zaW9uTm9kZSgpLCB0aGlzLmdldEV4cGFuc2lvbk5vZGVfUmVnaW9uQXNJbnB1dCgpLCAiaW5wdXRFbGVtZW50IiwgbnVsbCwgMSwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhleGNlcHRpb25IYW5kbGVyRUNsYXNzLCBFeGNlcHRpb25IYW5kbGVyLmNsYXNzLCAiRXhjZXB0aW9uSGFuZGxlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhjZXB0aW9uSGFuZGxlcl9Qcm90ZWN0ZWROb2RlKCksIHRoaXMuZ2V0RXhlY3V0YWJsZU5vZGUoKSwgdGhpcy5nZXRFeGVjdXRhYmxlTm9kZV9IYW5kbGVyKCksICJwcm90ZWN0ZWROb2RlIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeGNlcHRpb25IYW5kbGVyX0hhbmRsZXJCb2R5KCksIHRoaXMuZ2V0RXhlY3V0YWJsZU5vZGUoKSwgbnVsbCwgImhhbmRsZXJCb2R5IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRFeGNlcHRpb25IYW5kbGVyX0V4Y2VwdGlvbklucHV0KCksIHRoaXMuZ2V0T2JqZWN0Tm9kZSgpLCBudWxsLCAiZXhjZXB0aW9uSW5wdXQiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEV4Y2VwdGlvbkhhbmRsZXJfRXhjZXB0aW9uVHlwZSgpLCB0aGlzLmdldENsYXNzaWZpZXIoKSwgbnVsbCwgImV4Y2VwdGlvblR5cGUiLCBudWxsLCAxLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGV4Y2VwdGlvbkhhbmRsZXJFQ2xhc3MsIHRoaXMuZ2V0RWxlbWVudCgpLCAiZ2V0T3duZXIiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZm9ya05vZGVFQ2xhc3MsIEZvcmtOb2RlLmNsYXNzLCAiRm9ya05vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhqb2luTm9kZUVDbGFzcywgSm9pbk5vZGUuY2xhc3MsICJKb2luTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0Sm9pbk5vZGVfSXNDb21iaW5lRHVwbGljYXRlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNDb21iaW5lRHVwbGljYXRlIiwgInRydWUiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Sm9pbk5vZGVfSm9pblNwZWMoKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgImpvaW5TcGVjIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oam9pbk5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZmxvd0ZpbmFsTm9kZUVDbGFzcywgRmxvd0ZpbmFsTm9kZS5jbGFzcywgIkZsb3dGaW5hbE5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhjZW50cmFsQnVmZmVyTm9kZUVDbGFzcywgQ2VudHJhbEJ1ZmZlck5vZGUuY2xhc3MsICJDZW50cmFsQnVmZmVyTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBY3Rpdml0eVBhcnRpdGlvbi5jbGFzcywgIkFjdGl2aXR5UGFydGl0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9Jc0RpbWVuc2lvbigpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzRGltZW5zaW9uIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCWluaXRFQXR0cmlidXRlKGdldEFjdGl2aXR5UGFydGl0aW9uX0lzRXh0ZXJuYWwoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0V4dGVybmFsIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCWluaXRFUmVmZXJlbmNlKGdldEFjdGl2aXR5UGFydGl0aW9uX0NvbnRhaW5lZEVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2VfSW5QYXJ0aXRpb24oKSwgImNvbnRhaW5lZEVkZ2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9Db250YWluZWROb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlX0luUGFydGl0aW9uKCksICJjb250YWluZWROb2RlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0QWN0aXZpdHlQYXJ0aXRpb25fU3ViZ3JvdXAoKSwgdGhpcy5nZXRBY3Rpdml0eVBhcnRpdGlvbigpLCB0aGlzLmdldEFjdGl2aXR5UGFydGl0aW9uX1N1cGVyUGFydGl0aW9uKCksICJzdWJncm91cCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9TdXBlclBhcnRpdGlvbigpLCB0aGlzLmdldEFjdGl2aXR5UGFydGl0aW9uKCksIHRoaXMuZ2V0QWN0aXZpdHlQYXJ0aXRpb25fU3ViZ3JvdXAoKSwgInN1cGVyUGFydGl0aW9uIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9SZXByZXNlbnRzKCksIHRoaXMuZ2V0RWxlbWVudCgpLCBudWxsLCAicmVwcmVzZW50cyIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCB0aGlzLmdldEFjdGl2aXR5R3JvdXAoKSwgImdldFN1cGVyR3JvdXAiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKGZpbmFsU3RhdGVFQ2xhc3MsIEZpbmFsU3RhdGUuY2xhc3MsICJGaW5hbFN0YXRlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCiAJCWluaXRFQ2xhc3MoY3JlYXRlT2JqZWN0QWN0aW9uRUNsYXNzLCBDcmVhdGVPYmplY3RBY3Rpb24uY2xhc3MsICJDcmVhdGVPYmplY3RBY3Rpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFUmVmZXJlbmNlKGdldENyZWF0ZU9iamVjdEFjdGlvbl9DbGFzc2lmaWVyKCksIHRoaXMuZ2V0Q2xhc3NpZmllcigpLCBudWxsLCAiY2xhc3NpZmllciIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKQEAgLTExODcxLDg5ICsxMTkxNSw0NSBAQAogCQlpbml0RUNsYXNzKGNhbGxCZWhhdmlvckFjdGlvbkVDbGFzcywgQ2FsbEJlaGF2aW9yQWN0aW9uLmNsYXNzLCAiQ2FsbEJlaGF2aW9yQWN0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRDYWxsQmVoYXZpb3JBY3Rpb25fQmVoYXZpb3IoKSwgdGhpcy5nZXRCZWhhdmlvcigpLCBudWxsLCAiYmVoYXZpb3IiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhzdGF0ZU1hY2hpbmVFQ2xhc3MsIFN0YXRlTWFjaGluZS5jbGFzcywgIlN0YXRlTWFjaGluZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVNYWNoaW5lX1JlZ2lvbigpLCB0aGlzLmdldFJlZ2lvbigpLCB0aGlzLmdldFJlZ2lvbl9TdGF0ZU1hY2hpbmUoKSwgInJlZ2lvbiIsIG51bGwsIDEsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZU1hY2hpbmVfQ29ubmVjdGlvblBvaW50KCksIHRoaXMuZ2V0UHNldWRvc3RhdGUoKSwgbnVsbCwgImNvbm5lY3Rpb25Qb2ludCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZU1hY2hpbmVfRXh0ZW5kZWRTdGF0ZU1hY2hpbmUoKSwgdGhpcy5nZXRTdGF0ZU1hY2hpbmUoKSwgbnVsbCwgImV4dGVuZGVkU3RhdGVNYWNoaW5lIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZU1hY2hpbmVfU3RhdGVNYWNoaW5lX3JlZGVmaW5pdGlvbkNvbnRleHQoKSwgdGhpcy5nZXRCZWhhdmlvcmVkQ2xhc3NpZmllcigpLCB0aGlzLmdldEJlaGF2aW9yZWRDbGFzc2lmaWVyX093bmVkU3RhdGVNYWNoaW5lKCksICJzdGF0ZU1hY2hpbmVfcmVkZWZpbml0aW9uQ29udGV4dCIsIG51bGwsIDAsIDEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKGZvcmtOb2RlRUNsYXNzLCBGb3JrTm9kZS5jbGFzcywgIkZvcmtOb2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24oc3RhdGVNYWNoaW5lRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3Moam9pbk5vZGVFQ2xhc3MsIEpvaW5Ob2RlLmNsYXNzLCAiSm9pbk5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldEpvaW5Ob2RlX0lzQ29tYmluZUR1cGxpY2F0ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzQ29tYmluZUR1cGxpY2F0ZSIsICJ0cnVlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFUmVmZXJlbmNlKGdldEpvaW5Ob2RlX0pvaW5TcGVjKCksIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksIG51bGwsICJqb2luU3BlYyIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHN0YXRlTWFjaGluZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKGpvaW5Ob2RlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHN0YXRlTWFjaGluZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRNZW1iZXJzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhmbG93RmluYWxOb2RlRUNsYXNzLCBGbG93RmluYWxOb2RlLmNsYXNzLCAiRmxvd0ZpbmFsTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKHJlZ2lvbkVDbGFzcywgUmVnaW9uLmNsYXNzLCAiUmVnaW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRSZWdpb25fU3VidmVydGV4KCksIHRoaXMuZ2V0VmVydGV4KCksIHRoaXMuZ2V0VmVydGV4X0NvbnRhaW5lcigpLCAic3VidmVydGV4IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFJlZ2lvbl9UcmFuc2l0aW9uKCksIHRoaXMuZ2V0VHJhbnNpdGlvbigpLCB0aGlzLmdldFRyYW5zaXRpb25fQ29udGFpbmVyKCksICJ0cmFuc2l0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFJlZ2lvbl9TdGF0ZU1hY2hpbmUoKSwgdGhpcy5nZXRTdGF0ZU1hY2hpbmUoKSwgdGhpcy5nZXRTdGF0ZU1hY2hpbmVfUmVnaW9uKCksICJzdGF0ZU1hY2hpbmUiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFJlZ2lvbl9TdGF0ZSgpLCB0aGlzLmdldFN0YXRlKCksIHRoaXMuZ2V0U3RhdGVfUmVnaW9uKCksICJzdGF0ZSIsIG51bGwsIDAsIDEsIElTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UmVnaW9uX0V4dGVuZGVkUmVnaW9uKCksIHRoaXMuZ2V0UmVnaW9uKCksIG51bGwsICJleHRlbmRlZFJlZ2lvbiIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhjZW50cmFsQnVmZmVyTm9kZUVDbGFzcywgQ2VudHJhbEJ1ZmZlck5vZGUuY2xhc3MsICJDZW50cmFsQnVmZmVyTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHJlZ2lvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbml0aW9uQ29udGV4dHMiKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUNsYXNzKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCBBY3Rpdml0eVBhcnRpdGlvbi5jbGFzcywgIkFjdGl2aXR5UGFydGl0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RUF0dHJpYnV0ZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9Jc0RpbWVuc2lvbigpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzRGltZW5zaW9uIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFQXR0cmlidXRlKGdldEFjdGl2aXR5UGFydGl0aW9uX0lzRXh0ZXJuYWwoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc0V4dGVybmFsIiwgImZhbHNlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFUmVmZXJlbmNlKGdldEFjdGl2aXR5UGFydGl0aW9uX0NvbnRhaW5lZEVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2VfSW5QYXJ0aXRpb24oKSwgImNvbnRhaW5lZEVkZ2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9Db250YWluZWROb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlKCksIHRoaXMuZ2V0QWN0aXZpdHlOb2RlX0luUGFydGl0aW9uKCksICJjb250YWluZWROb2RlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0QWN0aXZpdHlQYXJ0aXRpb25fU3ViZ3JvdXAoKSwgdGhpcy5nZXRBY3Rpdml0eVBhcnRpdGlvbigpLCB0aGlzLmdldEFjdGl2aXR5UGFydGl0aW9uX1N1cGVyUGFydGl0aW9uKCksICJzdWJncm91cCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9TdXBlclBhcnRpdGlvbigpLCB0aGlzLmdldEFjdGl2aXR5UGFydGl0aW9uKCksIHRoaXMuZ2V0QWN0aXZpdHlQYXJ0aXRpb25fU3ViZ3JvdXAoKSwgInN1cGVyUGFydGl0aW9uIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRBY3Rpdml0eVBhcnRpdGlvbl9SZXByZXNlbnRzKCksIHRoaXMuZ2V0RWxlbWVudCgpLCBudWxsLCAicmVwcmVzZW50cyIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHJlZ2lvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFT3BlcmF0aW9uKGFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLCB0aGlzLmdldEFjdGl2aXR5R3JvdXAoKSwgImdldFN1cGVyR3JvdXAiKTsgLy8kTk9OLU5MUy0xJAogCi0JCWFkZEVPcGVyYXRpb24ocmVnaW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhleHBhbnNpb25Ob2RlRUNsYXNzLCBFeHBhbnNpb25Ob2RlLmNsYXNzLCAiRXhwYW5zaW9uTm9kZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhwYW5zaW9uTm9kZV9SZWdpb25Bc091dHB1dCgpLCB0aGlzLmdldEV4cGFuc2lvblJlZ2lvbigpLCB0aGlzLmdldEV4cGFuc2lvblJlZ2lvbl9PdXRwdXRFbGVtZW50KCksICJyZWdpb25Bc091dHB1dCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhwYW5zaW9uTm9kZV9SZWdpb25Bc0lucHV0KCksIHRoaXMuZ2V0RXhwYW5zaW9uUmVnaW9uKCksIHRoaXMuZ2V0RXhwYW5zaW9uUmVnaW9uX0lucHV0RWxlbWVudCgpLCAicmVnaW9uQXNJbnB1dCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlhZGRFT3BlcmF0aW9uKHJlZ2lvbkVDbGFzcywgdGhpcy5nZXROYW1lc3BhY2UoKSwgImdldE5hbWVzcGFjZSIpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQ2xhc3MoZXhwYW5zaW9uUmVnaW9uRUNsYXNzLCBFeHBhbnNpb25SZWdpb24uY2xhc3MsICJFeHBhbnNpb25SZWdpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldEV4cGFuc2lvblJlZ2lvbl9Nb2RlKCksIHRoaXMuZ2V0RXhwYW5zaW9uS2luZCgpLCAibW9kZSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhwYW5zaW9uUmVnaW9uX091dHB1dEVsZW1lbnQoKSwgdGhpcy5nZXRFeHBhbnNpb25Ob2RlKCksIHRoaXMuZ2V0RXhwYW5zaW9uTm9kZV9SZWdpb25Bc091dHB1dCgpLCAib3V0cHV0RWxlbWVudCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeHBhbnNpb25SZWdpb25fSW5wdXRFbGVtZW50KCksIHRoaXMuZ2V0RXhwYW5zaW9uTm9kZSgpLCB0aGlzLmdldEV4cGFuc2lvbk5vZGVfUmVnaW9uQXNJbnB1dCgpLCAiaW5wdXRFbGVtZW50IiwgbnVsbCwgMSwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhwc2V1ZG9zdGF0ZUVDbGFzcywgUHNldWRvc3RhdGUuY2xhc3MsICJQc2V1ZG9zdGF0ZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0UHNldWRvc3RhdGVfS2luZCgpLCB0aGlzLmdldFBzZXVkb3N0YXRlS2luZCgpLCAia2luZCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVDbGFzcyhleGNlcHRpb25IYW5kbGVyRUNsYXNzLCBFeGNlcHRpb25IYW5kbGVyLmNsYXNzLCAiRXhjZXB0aW9uSGFuZGxlciIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RXhjZXB0aW9uSGFuZGxlcl9Qcm90ZWN0ZWROb2RlKCksIHRoaXMuZ2V0RXhlY3V0YWJsZU5vZGUoKSwgdGhpcy5nZXRFeGVjdXRhYmxlTm9kZV9IYW5kbGVyKCksICJwcm90ZWN0ZWROb2RlIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeGNlcHRpb25IYW5kbGVyX0hhbmRsZXJCb2R5KCksIHRoaXMuZ2V0RXhlY3V0YWJsZU5vZGUoKSwgbnVsbCwgImhhbmRsZXJCb2R5IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRFeGNlcHRpb25IYW5kbGVyX0V4Y2VwdGlvbklucHV0KCksIHRoaXMuZ2V0T2JqZWN0Tm9kZSgpLCBudWxsLCAiZXhjZXB0aW9uSW5wdXQiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEV4Y2VwdGlvbkhhbmRsZXJfRXhjZXB0aW9uVHlwZSgpLCB0aGlzLmdldENsYXNzaWZpZXIoKSwgbnVsbCwgImV4Y2VwdGlvblR5cGUiLCBudWxsLCAxLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKIAotCQlpbml0RUNsYXNzKHN0YXRlRUNsYXNzLCBTdGF0ZS5jbGFzcywgIlN0YXRlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRTdGF0ZV9Jc0NvbXBvc2l0ZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImlzQ29tcG9zaXRlIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0U3RhdGVfSXNPcnRob2dvbmFsKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNPcnRob2dvbmFsIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0U3RhdGVfSXNTaW1wbGUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJpc1NpbXBsZSIsIG51bGwsIDAsIDEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsIElTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFQXR0cmlidXRlKGdldFN0YXRlX0lzU3VibWFjaGluZVN0YXRlKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiaXNTdWJtYWNoaW5lU3RhdGUiLCBudWxsLCAwLCAxLCBJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCAhSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCBJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9TdWJtYWNoaW5lKCksIHRoaXMuZ2V0U3RhdGVNYWNoaW5lKCksIG51bGwsICJzdWJtYWNoaW5lIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9Db25uZWN0aW9uKCksIHRoaXMuZ2V0Q29ubmVjdGlvblBvaW50UmVmZXJlbmNlKCksIG51bGwsICJjb25uZWN0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlX1JlZGVmaW5lZFN0YXRlKCksIHRoaXMuZ2V0U3RhdGUoKSwgbnVsbCwgInJlZGVmaW5lZFN0YXRlIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9EZWZlcnJhYmxlVHJpZ2dlcigpLCB0aGlzLmdldFRyaWdnZXIoKSwgbnVsbCwgImRlZmVycmFibGVUcmlnZ2VyIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlX1JlZ2lvbigpLCB0aGlzLmdldFJlZ2lvbigpLCB0aGlzLmdldFJlZ2lvbl9TdGF0ZSgpLCAicmVnaW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlX0VudHJ5KCksIHRoaXMuZ2V0QWN0aXZpdHkoKSwgbnVsbCwgImVudHJ5IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRTdGF0ZV9FeGl0KCksIHRoaXMuZ2V0QWN0aXZpdHkoKSwgbnVsbCwgImV4aXQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFN0YXRlX0RvQWN0aXZpdHkoKSwgdGhpcy5nZXRBY3Rpdml0eSgpLCBudWxsLCAiZG9BY3Rpdml0eSIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0U3RhdGVfU3RhdGVJbnZhcmlhbnQoKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJzdGF0ZUludmFyaWFudCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHN0YXRlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihzdGF0ZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0UmVkZWZpbmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oc3RhdGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oc3RhdGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkTWVtYmVycyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyh2ZXJ0ZXhFQ2xhc3MsIFZlcnRleC5jbGFzcywgIlZlcnRleCIsIElTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRWZXJ0ZXhfQ29udGFpbmVyKCksIHRoaXMuZ2V0UmVnaW9uKCksIHRoaXMuZ2V0UmVnaW9uX1N1YnZlcnRleCgpLCAiY29udGFpbmVyIiwgbnVsbCwgMCwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRWZXJ0ZXhfT3V0Z29pbmcoKSwgdGhpcy5nZXRUcmFuc2l0aW9uKCksIHRoaXMuZ2V0VHJhbnNpdGlvbl9Tb3VyY2UoKSwgIm91dGdvaW5nIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFZlcnRleF9JbmNvbWluZygpLCB0aGlzLmdldFRyYW5zaXRpb24oKSwgdGhpcy5nZXRUcmFuc2l0aW9uX1RhcmdldCgpLCAiaW5jb21pbmciLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHZlcnRleEVDbGFzcywgdGhpcy5nZXRFbGVtZW50KCksICJnZXRPd25lciIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VFQ2xhc3MsIENvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZS5jbGFzcywgIkNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0Q29ubmVjdGlvblBvaW50UmVmZXJlbmNlX0VudHJ5KCksIHRoaXMuZ2V0UHNldWRvc3RhdGUoKSwgbnVsbCwgImVudHJ5IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldENvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZV9FeGl0KCksIHRoaXMuZ2V0UHNldWRvc3RhdGUoKSwgbnVsbCwgImV4aXQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHRyYW5zaXRpb25FQ2xhc3MsIFRyYW5zaXRpb24uY2xhc3MsICJUcmFuc2l0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRUcmFuc2l0aW9uX0tpbmQoKSwgdGhpcy5nZXRUcmFuc2l0aW9uS2luZCgpLCAia2luZCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0VHJhbnNpdGlvbl9Db250YWluZXIoKSwgdGhpcy5nZXRSZWdpb24oKSwgdGhpcy5nZXRSZWdpb25fVHJhbnNpdGlvbigpLCAiY29udGFpbmVyIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX1NvdXJjZSgpLCB0aGlzLmdldFZlcnRleCgpLCB0aGlzLmdldFZlcnRleF9PdXRnb2luZygpLCAic291cmNlIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX1RhcmdldCgpLCB0aGlzLmdldFZlcnRleCgpLCB0aGlzLmdldFZlcnRleF9JbmNvbWluZygpLCAidGFyZ2V0IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX1JlZGVmaW5lZFRyYW5zaXRpb24oKSwgdGhpcy5nZXRUcmFuc2l0aW9uKCksIG51bGwsICJyZWRlZmluZWRUcmFuc2l0aW9uIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX1RyaWdnZXIoKSwgdGhpcy5nZXRUcmlnZ2VyKCksIG51bGwsICJ0cmlnZ2VyIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFRyYW5zaXRpb25fR3VhcmQoKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJndWFyZCIsIG51bGwsIDAsIDEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUcmFuc2l0aW9uX0VmZmVjdCgpLCB0aGlzLmdldEFjdGl2aXR5KCksIG51bGwsICJlZmZlY3QiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0cmFuc2l0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluaXRpb25Db250ZXh0cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0cmFuc2l0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRSZWRlZmluZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0cmFuc2l0aW9uRUNsYXNzLCB0aGlzLmdldEVsZW1lbnQoKSwgImdldE93bmVyIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHRyYW5zaXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZmluYWxTdGF0ZUVDbGFzcywgRmluYWxTdGF0ZS5jbGFzcywgIkZpbmFsU3RhdGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWFkZEVPcGVyYXRpb24oZXhjZXB0aW9uSGFuZGxlckVDbGFzcywgdGhpcy5nZXRFbGVtZW50KCksICJnZXRPd25lciIpOyAvLyROT04tTkxTLTEkCiAKIAkJaW5pdEVDbGFzcyhpbnRlcmFjdGlvbk9jY3VycmVuY2VFQ2xhc3MsIEludGVyYWN0aW9uT2NjdXJyZW5jZS5jbGFzcywgIkludGVyYWN0aW9uT2NjdXJyZW5jZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKIAkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJhY3Rpb25PY2N1cnJlbmNlX1JlZmVyc1RvKCksIHRoaXMuZ2V0SW50ZXJhY3Rpb24oKSwgbnVsbCwgInJlZmVyc1RvIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJApAQCAtMTE5OTksMTQwICsxMTk5OSw2IEBACiAKIAkJYWRkRU9wZXJhdGlvbihjb21wb25lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldENsaWVudERlcGVuZGVuY2llcyIpOyAvLyROT04tTkxTLTEkCiAKLQkJaW5pdEVDbGFzcyhwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLCBQcm90b2NvbENvbmZvcm1hbmNlLmNsYXNzLCAiUHJvdG9jb2xDb25mb3JtYW5jZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UHJvdG9jb2xDb25mb3JtYW5jZV9TcGVjaWZpY01hY2hpbmUoKSwgdGhpcy5nZXRQcm90b2NvbFN0YXRlTWFjaGluZSgpLCB0aGlzLmdldFByb3RvY29sU3RhdGVNYWNoaW5lX0NvbmZvcm1hbmNlKCksICJzcGVjaWZpY01hY2hpbmUiLCBudWxsLCAxLCAxLCBJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFByb3RvY29sQ29uZm9ybWFuY2VfR2VuZXJhbE1hY2hpbmUoKSwgdGhpcy5nZXRQcm90b2NvbFN0YXRlTWFjaGluZSgpLCBudWxsLCAiZ2VuZXJhbE1hY2hpbmUiLCBudWxsLCAxLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKHByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MsIHRoaXMuZ2V0RWxlbWVudCgpLCAiZ2V0T3duZXIiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24ocHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0VGFyZ2V0cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhwcm90b2NvbFN0YXRlTWFjaGluZUVDbGFzcywgUHJvdG9jb2xTdGF0ZU1hY2hpbmUuY2xhc3MsICJQcm90b2NvbFN0YXRlTWFjaGluZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmVfQ29uZm9ybWFuY2UoKSwgdGhpcy5nZXRQcm90b2NvbENvbmZvcm1hbmNlKCksIHRoaXMuZ2V0UHJvdG9jb2xDb25mb3JtYW5jZV9TcGVjaWZpY01hY2hpbmUoKSwgImNvbmZvcm1hbmNlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihwcm90b2NvbFN0YXRlTWFjaGluZUVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MsIFByb3RvY29sVHJhbnNpdGlvbi5jbGFzcywgIlByb3RvY29sVHJhbnNpdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UHJvdG9jb2xUcmFuc2l0aW9uX1Bvc3RDb25kaXRpb24oKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJwb3N0Q29uZGl0aW9uIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRQcm90b2NvbFRyYW5zaXRpb25fUmVmZXJyZWQoKSwgdGhpcy5nZXRPcGVyYXRpb24oKSwgbnVsbCwgInJlZmVycmVkIiwgbnVsbCwgMCwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRQcm90b2NvbFRyYW5zaXRpb25fUHJlQ29uZGl0aW9uKCksIHRoaXMuZ2V0Q29uc3RyYWludCgpLCBudWxsLCAicHJlQ29uZGl0aW9uIiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24ocHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlvcCA9IGFkZEVPcGVyYXRpb24ocHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLCBudWxsLCAic2V0R3VhcmQiKTsgLy8kTk9OLU5MUy0xJAotCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldENvbnN0cmFpbnQoKSwgIm5ld0d1YXJkIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHRpbWVFeHByZXNzaW9uRUNsYXNzLCBUaW1lRXhwcmVzc2lvbi5jbGFzcywgIlRpbWVFeHByZXNzaW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RUF0dHJpYnV0ZShnZXRUaW1lRXhwcmVzc2lvbl9GaXJzdFRpbWUoKSwgdGhpcy5nZXRCb29sZWFuKCksICJmaXJzdFRpbWUiLCAiVHJ1ZSIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQlpbml0RVJlZmVyZW5jZShnZXRUaW1lRXhwcmVzc2lvbl9FdmVudCgpLCB0aGlzLmdldE5hbWVkRWxlbWVudCgpLCBudWxsLCAiZXZlbnQiLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhkdXJhdGlvbkVDbGFzcywgRHVyYXRpb24uY2xhc3MsICJEdXJhdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0RHVyYXRpb25fRmlyc3RUaW1lKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiZmlyc3RUaW1lIiwgIlRydWUiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RHVyYXRpb25fRXZlbnQoKSwgdGhpcy5nZXROYW1lZEVsZW1lbnQoKSwgbnVsbCwgImV2ZW50IiwgbnVsbCwgMCwgMiwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgVGltZU9ic2VydmF0aW9uQWN0aW9uLmNsYXNzLCAiVGltZU9ic2VydmF0aW9uQWN0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRUaW1lT2JzZXJ2YXRpb25BY3Rpb25fTm93KCksIHRoaXMuZ2V0VGltZUV4cHJlc3Npb24oKSwgbnVsbCwgIm5vdyIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0aW1lT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIHRoaXMuZ2V0SW5wdXRQaW4oKSwgImdldFZhbHVlIik7IC8vJE5PTi1OTFMtMSQKLQotCQlvcCA9IGFkZEVPcGVyYXRpb24odGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLCBudWxsLCAic2V0VmFsdWUiKTsgLy8kTk9OLU5MUy0xJAotCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldElucHV0UGluKCksICJuZXdWYWx1ZSIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhkdXJhdGlvbkludGVydmFsRUNsYXNzLCBEdXJhdGlvbkludGVydmFsLmNsYXNzLCAiRHVyYXRpb25JbnRlcnZhbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE1pbnMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZHVyYXRpb25JbnRlcnZhbEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0TWF4ZXMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoaW50ZXJ2YWxFQ2xhc3MsIEludGVydmFsLmNsYXNzLCAiSW50ZXJ2YWwiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldEludGVydmFsX01pbigpLCB0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpLCBudWxsLCAibWluIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcnZhbF9NYXgoKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgIm1heCIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHRpbWVDb25zdHJhaW50RUNsYXNzLCBUaW1lQ29uc3RyYWludC5jbGFzcywgIlRpbWVDb25zdHJhaW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24odGltZUNvbnN0cmFpbnRFQ2xhc3MsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJnZXRTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKLQotCQlvcCA9IGFkZEVPcGVyYXRpb24odGltZUNvbnN0cmFpbnRFQ2xhc3MsIG51bGwsICJzZXRTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKLQkJYWRkRVBhcmFtZXRlcihvcCwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgIm5ld1NwZWNpZmljYXRpb24iKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoaW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLCBJbnRlcnZhbENvbnN0cmFpbnQuY2xhc3MsICJJbnRlcnZhbENvbnN0cmFpbnQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihpbnRlcnZhbENvbnN0cmFpbnRFQ2xhc3MsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJnZXRTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKLQotCQlvcCA9IGFkZEVPcGVyYXRpb24oaW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLCBudWxsLCAic2V0U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCi0JCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJuZXdTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKHRpbWVJbnRlcnZhbEVDbGFzcywgVGltZUludGVydmFsLmNsYXNzLCAiVGltZUludGVydmFsIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24odGltZUludGVydmFsRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRNYXhlcyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbih0aW1lSW50ZXJ2YWxFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE1pbnMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbi5jbGFzcywgIkR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25fRHVyYXRpb24oKSwgdGhpcy5nZXREdXJhdGlvbigpLCBudWxsLCAiZHVyYXRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgdGhpcy5nZXRJbnB1dFBpbigpLCAiZ2V0VmFsdWUiKTsgLy8kTk9OLU5MUy0xJAotCi0JCW9wID0gYWRkRU9wZXJhdGlvbihkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLCBudWxsLCAic2V0VmFsdWUiKTsgLy8kTk9OLU5MUy0xJAotCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldElucHV0UGluKCksICJuZXdWYWx1ZSIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MsIER1cmF0aW9uQ29uc3RyYWludC5jbGFzcywgIkR1cmF0aW9uQ29uc3RyYWludCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGR1cmF0aW9uQ29uc3RyYWludEVDbGFzcywgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgImdldFNwZWNpZmljYXRpb24iKTsgLy8kTk9OLU5MUy0xJAotCi0JCW9wID0gYWRkRU9wZXJhdGlvbihkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MsIG51bGwsICJzZXRTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKLQkJYWRkRVBhcmFtZXRlcihvcCwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgIm5ld1NwZWNpZmljYXRpb24iKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZGF0YVN0b3JlTm9kZUVDbGFzcywgRGF0YVN0b3JlTm9kZS5jbGFzcywgIkRhdGFTdG9yZU5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25FQ2xhc3MsIEludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbi5jbGFzcywgIkludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uX0ludGVycnVwdGluZ0VkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2UoKSwgdGhpcy5nZXRBY3Rpdml0eUVkZ2VfSW50ZXJydXB0cygpLCAiaW50ZXJydXB0aW5nRWRnZSIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25fQ29udGFpbmVkTm9kZSgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZSgpLCB0aGlzLmdldEFjdGl2aXR5Tm9kZV9JbkludGVycnVwdGlibGVSZWdpb24oKSwgImNvbnRhaW5lZE5vZGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MocGFyYW1ldGVyU2V0RUNsYXNzLCBQYXJhbWV0ZXJTZXQuY2xhc3MsICJQYXJhbWV0ZXJTZXQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldFBhcmFtZXRlclNldF9QYXJhbWV0ZXIoKSwgdGhpcy5nZXRQYXJhbWV0ZXIoKSwgdGhpcy5nZXRQYXJhbWV0ZXJfUGFyYW1ldGVyU2V0KCksICJwYXJhbWV0ZXIiLCBudWxsLCAxLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UGFyYW1ldGVyU2V0X0NvbmRpdGlvbigpLCB0aGlzLmdldENvbnN0cmFpbnQoKSwgbnVsbCwgImNvbmRpdGlvbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24ocGFyYW1ldGVyU2V0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKGRlcGxveW1lbnRFQ2xhc3MsIERlcGxveW1lbnQuY2xhc3MsICJEZXBsb3ltZW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXREZXBsb3ltZW50X0RlcGxveWVkQXJ0aWZhY3QoKSwgdGhpcy5nZXREZXBsb3llZEFydGlmYWN0KCksIG51bGwsICJkZXBsb3llZEFydGlmYWN0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RGVwbG95bWVudF9Mb2NhdGlvbigpLCB0aGlzLmdldERlcGxveW1lbnRUYXJnZXQoKSwgdGhpcy5nZXREZXBsb3ltZW50VGFyZ2V0X0RlcGxveW1lbnQoKSwgImxvY2F0aW9uIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldERlcGxveW1lbnRfQ29uZmlndXJhdGlvbigpLCB0aGlzLmdldERlcGxveW1lbnRTcGVjaWZpY2F0aW9uKCksIG51bGwsICJjb25maWd1cmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTdXBwbGllcnMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0VGFyZ2V0cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKGRlcGxveW1lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldENsaWVudHMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhkZXBsb3llZEFydGlmYWN0RUNsYXNzLCBEZXBsb3llZEFydGlmYWN0LmNsYXNzLCAiRGVwbG95ZWRBcnRpZmFjdCIsIElTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZGVwbG95bWVudFRhcmdldEVDbGFzcywgRGVwbG95bWVudFRhcmdldC5jbGFzcywgIkRlcGxveW1lbnRUYXJnZXQiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0RGVwbG95bWVudFRhcmdldF9EZXBsb3ltZW50KCksIHRoaXMuZ2V0RGVwbG95bWVudCgpLCB0aGlzLmdldERlcGxveW1lbnRfTG9jYXRpb24oKSwgImRlcGxveW1lbnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCQlpbml0RVJlZmVyZW5jZShnZXREZXBsb3ltZW50VGFyZ2V0X0RlcGxveWVkRWxlbWVudCgpLCB0aGlzLmdldFBhY2thZ2VhYmxlRWxlbWVudCgpLCBudWxsLCAiZGVwbG95ZWRFbGVtZW50IiwgbnVsbCwgMCwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAotCi0JCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudFRhcmdldEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCi0KLQkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50VGFyZ2V0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRDbGllbnREZXBlbmRlbmNpZXMiKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3Mobm9kZUVDbGFzcywgTm9kZS5jbGFzcywgIk5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0JCWluaXRFUmVmZXJlbmNlKGdldE5vZGVfTmVzdGVkTm9kZSgpLCB0aGlzLmdldE5vZGUoKSwgbnVsbCwgIm5lc3RlZE5vZGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKLQotCQlhZGRFT3BlcmF0aW9uKG5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE5lc3RlZENsYXNzaWZpZXJzIik7IC8vJE5PTi1OTFMtMSQKLQotCQlpbml0RUNsYXNzKGRldmljZUVDbGFzcywgRGV2aWNlLmNsYXNzLCAiRGV2aWNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAotCi0JCWluaXRFQ2xhc3MoZXhlY3V0aW9uRW52aXJvbm1lbnRFQ2xhc3MsIEV4ZWN1dGlvbkVudmlyb25tZW50LmNsYXNzLCAiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCi0KLQkJaW5pdEVDbGFzcyhjb21tdW5pY2F0aW9uUGF0aEVDbGFzcywgQ29tbXVuaWNhdGlvblBhdGguY2xhc3MsICJDb21tdW5pY2F0aW9uUGF0aCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKLQogCQlpbml0RUNsYXNzKHJlYWRFeHRlbnRBY3Rpb25FQ2xhc3MsIFJlYWRFeHRlbnRBY3Rpb24uY2xhc3MsICJSZWFkRXh0ZW50QWN0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRSZWFkRXh0ZW50QWN0aW9uX1Jlc3VsdCgpLCB0aGlzLmdldE91dHB1dFBpbigpLCBudWxsLCAicmVzdWx0IiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAogCQlpbml0RVJlZmVyZW5jZShnZXRSZWFkRXh0ZW50QWN0aW9uX0NsYXNzaWZpZXIoKSwgdGhpcy5nZXRDbGFzc2lmaWVyKCksIG51bGwsICJjbGFzc2lmaWVyIiwgbnVsbCwgMSwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJApAQCAtMTIyMTYsNiArMTIwODIsMTQwIEBACiAKIAkJYWRkRU9wZXJhdGlvbihyYWlzZUV4Y2VwdGlvbkFjdGlvbkVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0SW5wdXRzIik7IC8vJE5PTi1OTFMtMSQKIAorCQlpbml0RUNsYXNzKGRhdGFTdG9yZU5vZGVFQ2xhc3MsIERhdGFTdG9yZU5vZGUuY2xhc3MsICJEYXRhU3RvcmVOb2RlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uRUNsYXNzLCBJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24uY2xhc3MsICJJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldEludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbl9JbnRlcnJ1cHRpbmdFZGdlKCksIHRoaXMuZ2V0QWN0aXZpdHlFZGdlKCksIHRoaXMuZ2V0QWN0aXZpdHlFZGdlX0ludGVycnVwdHMoKSwgImludGVycnVwdGluZ0VkZ2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uX0NvbnRhaW5lZE5vZGUoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGUoKSwgdGhpcy5nZXRBY3Rpdml0eU5vZGVfSW5JbnRlcnJ1cHRpYmxlUmVnaW9uKCksICJjb250YWluZWROb2RlIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKHBhcmFtZXRlclNldEVDbGFzcywgUGFyYW1ldGVyU2V0LmNsYXNzLCAiUGFyYW1ldGVyU2V0IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRQYXJhbWV0ZXJTZXRfUGFyYW1ldGVyKCksIHRoaXMuZ2V0UGFyYW1ldGVyKCksIHRoaXMuZ2V0UGFyYW1ldGVyX1BhcmFtZXRlclNldCgpLCAicGFyYW1ldGVyIiwgbnVsbCwgMSwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFBhcmFtZXRlclNldF9Db25kaXRpb24oKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJjb25kaXRpb24iLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHBhcmFtZXRlclNldEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyh0aW1lRXhwcmVzc2lvbkVDbGFzcywgVGltZUV4cHJlc3Npb24uY2xhc3MsICJUaW1lRXhwcmVzc2lvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0VGltZUV4cHJlc3Npb25fRmlyc3RUaW1lKCksIHRoaXMuZ2V0Qm9vbGVhbigpLCAiZmlyc3RUaW1lIiwgIlRydWUiLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VGltZUV4cHJlc3Npb25fRXZlbnQoKSwgdGhpcy5nZXROYW1lZEVsZW1lbnQoKSwgbnVsbCwgImV2ZW50IiwgbnVsbCwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoZHVyYXRpb25FQ2xhc3MsIER1cmF0aW9uLmNsYXNzLCAiRHVyYXRpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFQXR0cmlidXRlKGdldER1cmF0aW9uX0ZpcnN0VGltZSgpLCB0aGlzLmdldEJvb2xlYW4oKSwgImZpcnN0VGltZSIsICJUcnVlIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCWluaXRFUmVmZXJlbmNlKGdldER1cmF0aW9uX0V2ZW50KCksIHRoaXMuZ2V0TmFtZWRFbGVtZW50KCksIG51bGwsICJldmVudCIsIG51bGwsIDAsIDIsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyh0aW1lT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIFRpbWVPYnNlcnZhdGlvbkFjdGlvbi5jbGFzcywgIlRpbWVPYnNlcnZhdGlvbkFjdGlvbiIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0VGltZU9ic2VydmF0aW9uQWN0aW9uX05vdygpLCB0aGlzLmdldFRpbWVFeHByZXNzaW9uKCksIG51bGwsICJub3ciLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24odGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLCB0aGlzLmdldElucHV0UGluKCksICJnZXRWYWx1ZSIpOyAvLyROT04tTkxTLTEkCisKKwkJb3AgPSBhZGRFT3BlcmF0aW9uKHRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgbnVsbCwgInNldFZhbHVlIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRVBhcmFtZXRlcihvcCwgdGhpcy5nZXRJbnB1dFBpbigpLCAibmV3VmFsdWUiKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoZHVyYXRpb25JbnRlcnZhbEVDbGFzcywgRHVyYXRpb25JbnRlcnZhbC5jbGFzcywgIkR1cmF0aW9uSW50ZXJ2YWwiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkdXJhdGlvbkludGVydmFsRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRNaW5zIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE1heGVzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGludGVydmFsRUNsYXNzLCBJbnRlcnZhbC5jbGFzcywgIkludGVydmFsIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRJbnRlcnZhbF9NaW4oKSwgdGhpcy5nZXRWYWx1ZVNwZWNpZmljYXRpb24oKSwgbnVsbCwgIm1pbiIsIG51bGwsIDAsIC0xLCAhSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0SW50ZXJ2YWxfTWF4KCksIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksIG51bGwsICJtYXgiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyh0aW1lQ29uc3RyYWludEVDbGFzcywgVGltZUNvbnN0cmFpbnQuY2xhc3MsICJUaW1lQ29uc3RyYWludCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHRpbWVDb25zdHJhaW50RUNsYXNzLCB0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpLCAiZ2V0U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCisKKwkJb3AgPSBhZGRFT3BlcmF0aW9uKHRpbWVDb25zdHJhaW50RUNsYXNzLCBudWxsLCAic2V0U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJuZXdTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGludGVydmFsQ29uc3RyYWludEVDbGFzcywgSW50ZXJ2YWxDb25zdHJhaW50LmNsYXNzLCAiSW50ZXJ2YWxDb25zdHJhaW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oaW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLCB0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpLCAiZ2V0U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCisKKwkJb3AgPSBhZGRFT3BlcmF0aW9uKGludGVydmFsQ29uc3RyYWludEVDbGFzcywgbnVsbCwgInNldFNwZWNpZmljYXRpb24iKTsgLy8kTk9OLU5MUy0xJAorCQlhZGRFUGFyYW1ldGVyKG9wLCB0aGlzLmdldFZhbHVlU3BlY2lmaWNhdGlvbigpLCAibmV3U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyh0aW1lSW50ZXJ2YWxFQ2xhc3MsIFRpbWVJbnRlcnZhbC5jbGFzcywgIlRpbWVJbnRlcnZhbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHRpbWVJbnRlcnZhbEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0TWF4ZXMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24odGltZUludGVydmFsRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRNaW5zIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24uY2xhc3MsICJEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXREdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uX0R1cmF0aW9uKCksIHRoaXMuZ2V0RHVyYXRpb24oKSwgbnVsbCwgImR1cmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIHRoaXMuZ2V0SW5wdXRQaW4oKSwgImdldFZhbHVlIik7IC8vJE5PTi1OTFMtMSQKKworCQlvcCA9IGFkZEVPcGVyYXRpb24oZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgbnVsbCwgInNldFZhbHVlIik7IC8vJE5PTi1OTFMtMSQKKwkJYWRkRVBhcmFtZXRlcihvcCwgdGhpcy5nZXRJbnB1dFBpbigpLCAibmV3VmFsdWUiKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoZHVyYXRpb25Db25zdHJhaW50RUNsYXNzLCBEdXJhdGlvbkNvbnN0cmFpbnQuY2xhc3MsICJEdXJhdGlvbkNvbnN0cmFpbnQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJnZXRTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKKworCQlvcCA9IGFkZEVPcGVyYXRpb24oZHVyYXRpb25Db25zdHJhaW50RUNsYXNzLCBudWxsLCAic2V0U3BlY2lmaWNhdGlvbiIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0VmFsdWVTcGVjaWZpY2F0aW9uKCksICJuZXdTcGVjaWZpY2F0aW9uIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGRlcGxveW1lbnRFQ2xhc3MsIERlcGxveW1lbnQuY2xhc3MsICJEZXBsb3ltZW50IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXREZXBsb3ltZW50X0RlcGxveWVkQXJ0aWZhY3QoKSwgdGhpcy5nZXREZXBsb3llZEFydGlmYWN0KCksIG51bGwsICJkZXBsb3llZEFydGlmYWN0IiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsIElTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RGVwbG95bWVudF9Mb2NhdGlvbigpLCB0aGlzLmdldERlcGxveW1lbnRUYXJnZXQoKSwgdGhpcy5nZXREZXBsb3ltZW50VGFyZ2V0X0RlcGxveW1lbnQoKSwgImxvY2F0aW9uIiwgbnVsbCwgMSwgMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldERlcGxveW1lbnRfQ29uZmlndXJhdGlvbigpLCB0aGlzLmdldERlcGxveW1lbnRTcGVjaWZpY2F0aW9uKCksIG51bGwsICJjb25maWd1cmF0aW9uIiwgbnVsbCwgMCwgLTEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTdXBwbGllcnMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0VGFyZ2V0cyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRTb3VyY2VzIik7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKGRlcGxveW1lbnRFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldENsaWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhkZXBsb3llZEFydGlmYWN0RUNsYXNzLCBEZXBsb3llZEFydGlmYWN0LmNsYXNzLCAiRGVwbG95ZWRBcnRpZmFjdCIsIElTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoZGVwbG95bWVudFRhcmdldEVDbGFzcywgRGVwbG95bWVudFRhcmdldC5jbGFzcywgIkRlcGxveW1lbnRUYXJnZXQiLCBJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0RGVwbG95bWVudFRhcmdldF9EZXBsb3ltZW50KCksIHRoaXMuZ2V0RGVwbG95bWVudCgpLCB0aGlzLmdldERlcGxveW1lbnRfTG9jYXRpb24oKSwgImRlcGxveW1lbnQiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXREZXBsb3ltZW50VGFyZ2V0X0RlcGxveWVkRWxlbWVudCgpLCB0aGlzLmdldFBhY2thZ2VhYmxlRWxlbWVudCgpLCBudWxsLCAiZGVwbG95ZWRFbGVtZW50IiwgbnVsbCwgMCwgLTEsIElTX1RSQU5TSUVOVCwgSVNfVk9MQVRJTEUsICFJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsIElTX0RFUklWRUQsICFJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24oZGVwbG95bWVudFRhcmdldEVDbGFzcywgZWNvcmVQYWNrYWdlLmdldEVFTGlzdCgpLCAiZ2V0T3duZWRFbGVtZW50cyIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihkZXBsb3ltZW50VGFyZ2V0RUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRDbGllbnREZXBlbmRlbmNpZXMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3Mobm9kZUVDbGFzcywgTm9kZS5jbGFzcywgIk5vZGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldE5vZGVfTmVzdGVkTm9kZSgpLCB0aGlzLmdldE5vZGUoKSwgbnVsbCwgIm5lc3RlZE5vZGUiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKG5vZGVFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE5lc3RlZENsYXNzaWZpZXJzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKGRldmljZUVDbGFzcywgRGV2aWNlLmNsYXNzLCAiRGV2aWNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCisJCWluaXRFQ2xhc3MoZXhlY3V0aW9uRW52aXJvbm1lbnRFQ2xhc3MsIEV4ZWN1dGlvbkVudmlyb25tZW50LmNsYXNzLCAiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCisKKwkJaW5pdEVDbGFzcyhjb21tdW5pY2F0aW9uUGF0aEVDbGFzcywgQ29tbXVuaWNhdGlvblBhdGguY2xhc3MsICJDb21tdW5pY2F0aW9uUGF0aCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSk7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKHByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MsIFByb3RvY29sQ29uZm9ybWFuY2UuY2xhc3MsICJQcm90b2NvbENvbmZvcm1hbmNlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRQcm90b2NvbENvbmZvcm1hbmNlX1NwZWNpZmljTWFjaGluZSgpLCB0aGlzLmdldFByb3RvY29sU3RhdGVNYWNoaW5lKCksIHRoaXMuZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmVfQ29uZm9ybWFuY2UoKSwgInNwZWNpZmljTWFjaGluZSIsIG51bGwsIDEsIDEsIElTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKwkJaW5pdEVSZWZlcmVuY2UoZ2V0UHJvdG9jb2xDb25mb3JtYW5jZV9HZW5lcmFsTWFjaGluZSgpLCB0aGlzLmdldFByb3RvY29sU3RhdGVNYWNoaW5lKCksIG51bGwsICJnZW5lcmFsTWFjaGluZSIsIG51bGwsIDEsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldFNvdXJjZXMiKTsgLy8kTk9OLU5MUy0xJAorCisJCWFkZEVPcGVyYXRpb24ocHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcywgdGhpcy5nZXRFbGVtZW50KCksICJnZXRPd25lciIpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRUYXJnZXRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKHByb3RvY29sU3RhdGVNYWNoaW5lRUNsYXNzLCBQcm90b2NvbFN0YXRlTWFjaGluZS5jbGFzcywgIlByb3RvY29sU3RhdGVNYWNoaW5lIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRQcm90b2NvbFN0YXRlTWFjaGluZV9Db25mb3JtYW5jZSgpLCB0aGlzLmdldFByb3RvY29sQ29uZm9ybWFuY2UoKSwgdGhpcy5nZXRQcm90b2NvbENvbmZvcm1hbmNlX1NwZWNpZmljTWFjaGluZSgpLCAiY29uZm9ybWFuY2UiLCBudWxsLCAwLCAtMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCAhSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQKKworCQlhZGRFT3BlcmF0aW9uKHByb3RvY29sU3RhdGVNYWNoaW5lRUNsYXNzLCBlY29yZVBhY2thZ2UuZ2V0RUVMaXN0KCksICJnZXRPd25lZEVsZW1lbnRzIik7IC8vJE5PTi1OTFMtMSQKKworCQlpbml0RUNsYXNzKHByb3RvY29sVHJhbnNpdGlvbkVDbGFzcywgUHJvdG9jb2xUcmFuc2l0aW9uLmNsYXNzLCAiUHJvdG9jb2xUcmFuc2l0aW9uIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFKTsgLy8kTk9OLU5MUy0xJAorCQlpbml0RVJlZmVyZW5jZShnZXRQcm90b2NvbFRyYW5zaXRpb25fUG9zdENvbmRpdGlvbigpLCB0aGlzLmdldENvbnN0cmFpbnQoKSwgbnVsbCwgInBvc3RDb25kaXRpb24iLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFByb3RvY29sVHJhbnNpdGlvbl9SZWZlcnJlZCgpLCB0aGlzLmdldE9wZXJhdGlvbigpLCBudWxsLCAicmVmZXJyZWQiLCBudWxsLCAwLCAtMSwgSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgIUlTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgSVNfREVSSVZFRCwgIUlTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisJCWluaXRFUmVmZXJlbmNlKGdldFByb3RvY29sVHJhbnNpdGlvbl9QcmVDb25kaXRpb24oKSwgdGhpcy5nZXRDb25zdHJhaW50KCksIG51bGwsICJwcmVDb25kaXRpb24iLCBudWxsLCAwLCAxLCAhSVNfVFJBTlNJRU5ULCBJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOyAvLyROT04tTkxTLTEkCisKKwkJYWRkRU9wZXJhdGlvbihwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MsIGVjb3JlUGFja2FnZS5nZXRFRUxpc3QoKSwgImdldE93bmVkRWxlbWVudHMiKTsgLy8kTk9OLU5MUy0xJAorCisJCW9wID0gYWRkRU9wZXJhdGlvbihwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MsIG51bGwsICJzZXRHdWFyZCIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVQYXJhbWV0ZXIob3AsIHRoaXMuZ2V0Q29uc3RyYWludCgpLCAibmV3R3VhcmQiKTsgLy8kTk9OLU5MUy0xJAorCiAJCWluaXRFQ2xhc3MoZGVwbG95bWVudFNwZWNpZmljYXRpb25FQ2xhc3MsIERlcGxveW1lbnRTcGVjaWZpY2F0aW9uLmNsYXNzLCAiRGVwbG95bWVudFNwZWNpZmljYXRpb24iLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UpOyAvLyROT04tTkxTLTEkCiAJCWluaXRFQXR0cmlidXRlKGdldERlcGxveW1lbnRTcGVjaWZpY2F0aW9uX0RlcGxveW1lbnRMb2NhdGlvbigpLCB0aGlzLmdldFN0cmluZygpLCAiZGVwbG95bWVudExvY2F0aW9uIiwgIiIsIDAsIDEsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQlpbml0RUF0dHJpYnV0ZShnZXREZXBsb3ltZW50U3BlY2lmaWNhdGlvbl9FeGVjdXRpb25Mb2NhdGlvbigpLCB0aGlzLmdldFN0cmluZygpLCAiZXhlY3V0aW9uTG9jYXRpb24iLCAiIiwgMCwgMSwgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCkBAIC0xMjIzOCw2ICsxMjIzOCwxMSBAQAogCQlhZGRFRW51bUxpdGVyYWwoYWdncmVnYXRpb25LaW5kRUVudW0sIEFnZ3JlZ2F0aW9uS2luZC5TSEFSRURfTElURVJBTCk7CiAJCWFkZEVFbnVtTGl0ZXJhbChhZ2dyZWdhdGlvbktpbmRFRW51bSwgQWdncmVnYXRpb25LaW5kLkNPTVBPU0lURV9MSVRFUkFMKTsKIAorCQlpbml0RUVudW0oY2FsbENvbmN1cnJlbmN5S2luZEVFbnVtLCBDYWxsQ29uY3VycmVuY3lLaW5kLmNsYXNzLCAiQ2FsbENvbmN1cnJlbmN5S2luZCIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVFbnVtTGl0ZXJhbChjYWxsQ29uY3VycmVuY3lLaW5kRUVudW0sIENhbGxDb25jdXJyZW5jeUtpbmQuU0VRVUVOVElBTF9MSVRFUkFMKTsKKwkJYWRkRUVudW1MaXRlcmFsKGNhbGxDb25jdXJyZW5jeUtpbmRFRW51bSwgQ2FsbENvbmN1cnJlbmN5S2luZC5HVUFSREVEX0xJVEVSQUwpOworCQlhZGRFRW51bUxpdGVyYWwoY2FsbENvbmN1cnJlbmN5S2luZEVFbnVtLCBDYWxsQ29uY3VycmVuY3lLaW5kLkNPTkNVUlJFTlRfTElURVJBTCk7CisKIAkJaW5pdEVFbnVtKG1lc3NhZ2VLaW5kRUVudW0sIE1lc3NhZ2VLaW5kLmNsYXNzLCAiTWVzc2FnZUtpbmQiKTsgLy8kTk9OLU5MUy0xJAogCQlhZGRFRW51bUxpdGVyYWwobWVzc2FnZUtpbmRFRW51bSwgTWVzc2FnZUtpbmQuQ09NUExFVEVfTElURVJBTCk7CiAJCWFkZEVFbnVtTGl0ZXJhbChtZXNzYWdlS2luZEVFbnVtLCBNZXNzYWdlS2luZC5MT1NUX0xJVEVSQUwpOwpAQCAtMTIyNTAsMTYgKzEyMjU1LDYgQEAKIAkJYWRkRUVudW1MaXRlcmFsKG1lc3NhZ2VTb3J0RUVudW0sIE1lc3NhZ2VTb3J0LkFTWU5DSF9DQUxMX0xJVEVSQUwpOwogCQlhZGRFRW51bUxpdGVyYWwobWVzc2FnZVNvcnRFRW51bSwgTWVzc2FnZVNvcnQuQVNZTkNIX1NJR05BTF9MSVRFUkFMKTsKIAotCQlpbml0RUVudW0oY2FsbENvbmN1cnJlbmN5S2luZEVFbnVtLCBDYWxsQ29uY3VycmVuY3lLaW5kLmNsYXNzLCAiQ2FsbENvbmN1cnJlbmN5S2luZCIpOyAvLyROT04tTkxTLTEkCi0JCWFkZEVFbnVtTGl0ZXJhbChjYWxsQ29uY3VycmVuY3lLaW5kRUVudW0sIENhbGxDb25jdXJyZW5jeUtpbmQuU0VRVUVOVElBTF9MSVRFUkFMKTsKLQkJYWRkRUVudW1MaXRlcmFsKGNhbGxDb25jdXJyZW5jeUtpbmRFRW51bSwgQ2FsbENvbmN1cnJlbmN5S2luZC5HVUFSREVEX0xJVEVSQUwpOwotCQlhZGRFRW51bUxpdGVyYWwoY2FsbENvbmN1cnJlbmN5S2luZEVFbnVtLCBDYWxsQ29uY3VycmVuY3lLaW5kLkNPTkNVUlJFTlRfTElURVJBTCk7Ci0KLQkJaW5pdEVFbnVtKGV4cGFuc2lvbktpbmRFRW51bSwgRXhwYW5zaW9uS2luZC5jbGFzcywgIkV4cGFuc2lvbktpbmQiKTsgLy8kTk9OLU5MUy0xJAotCQlhZGRFRW51bUxpdGVyYWwoZXhwYW5zaW9uS2luZEVFbnVtLCBFeHBhbnNpb25LaW5kLlBBUkFMTEVMX0xJVEVSQUwpOwotCQlhZGRFRW51bUxpdGVyYWwoZXhwYW5zaW9uS2luZEVFbnVtLCBFeHBhbnNpb25LaW5kLklURVJBVElWRV9MSVRFUkFMKTsKLQkJYWRkRUVudW1MaXRlcmFsKGV4cGFuc2lvbktpbmRFRW51bSwgRXhwYW5zaW9uS2luZC5TVFJFQU1fTElURVJBTCk7Ci0KIAkJaW5pdEVFbnVtKHRyYW5zaXRpb25LaW5kRUVudW0sIFRyYW5zaXRpb25LaW5kLmNsYXNzLCAiVHJhbnNpdGlvbktpbmQiKTsgLy8kTk9OLU5MUy0xJAogCQlhZGRFRW51bUxpdGVyYWwodHJhbnNpdGlvbktpbmRFRW51bSwgVHJhbnNpdGlvbktpbmQuSU5URVJOQUxfTElURVJBTCk7CiAJCWFkZEVFbnVtTGl0ZXJhbCh0cmFuc2l0aW9uS2luZEVFbnVtLCBUcmFuc2l0aW9uS2luZC5MT0NBTF9MSVRFUkFMKTsKQEAgLTEyMjc3LDYgKzEyMjcyLDExIEBACiAJCWFkZEVFbnVtTGl0ZXJhbChwc2V1ZG9zdGF0ZUtpbmRFRW51bSwgUHNldWRvc3RhdGVLaW5kLkVYSVRfUE9JTlRfTElURVJBTCk7CiAJCWFkZEVFbnVtTGl0ZXJhbChwc2V1ZG9zdGF0ZUtpbmRFRW51bSwgUHNldWRvc3RhdGVLaW5kLlRFUk1JTkFURV9MSVRFUkFMKTsKIAorCQlpbml0RUVudW0oZXhwYW5zaW9uS2luZEVFbnVtLCBFeHBhbnNpb25LaW5kLmNsYXNzLCAiRXhwYW5zaW9uS2luZCIpOyAvLyROT04tTkxTLTEkCisJCWFkZEVFbnVtTGl0ZXJhbChleHBhbnNpb25LaW5kRUVudW0sIEV4cGFuc2lvbktpbmQuUEFSQUxMRUxfTElURVJBTCk7CisJCWFkZEVFbnVtTGl0ZXJhbChleHBhbnNpb25LaW5kRUVudW0sIEV4cGFuc2lvbktpbmQuSVRFUkFUSVZFX0xJVEVSQUwpOworCQlhZGRFRW51bUxpdGVyYWwoZXhwYW5zaW9uS2luZEVFbnVtLCBFeHBhbnNpb25LaW5kLlNUUkVBTV9MSVRFUkFMKTsKKwogCQlpbml0RUVudW0oaW50ZXJhY3Rpb25PcGVyYXRvckVFbnVtLCBJbnRlcmFjdGlvbk9wZXJhdG9yLmNsYXNzLCAiSW50ZXJhY3Rpb25PcGVyYXRvciIpOyAvLyROT04tTkxTLTEkCiAJCWFkZEVFbnVtTGl0ZXJhbChpbnRlcmFjdGlvbk9wZXJhdG9yRUVudW0sIEludGVyYWN0aW9uT3BlcmF0b3IuU0VRX0xJVEVSQUwpOwogCQlhZGRFRW51bUxpdGVyYWwoaW50ZXJhY3Rpb25PcGVyYXRvckVFbnVtLCBJbnRlcmFjdGlvbk9wZXJhdG9yLkFMVF9MSVRFUkFMKTsKQEAgLTEyMzQ2LDYgKzEyMzQ2LDEyIEBACiAJcHJvdGVjdGVkIHZvaWQgY3JlYXRlR2VuTW9kZWxBbm5vdGF0aW9ucygpIHsKIAkJU3RyaW5nIHNvdXJjZSA9ICJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIjsgLy8kTk9OLU5MUy0xJAkJCiAJCWFkZEFubm90YXRpb24KKwkJICAoZWxlbWVudEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiRWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3Mgd2l0aCBubyBzdXBlcmNsYXNzLiBJdCBpcyB1c2VkIGFzIHRoZSBjb21tb24gc3VwZXJjbGFzcyBmb3IgYWxsIG1ldGFjbGFzc2VzIGluIHRoZSBpbmZyYXN0cnVjdHVyZSBsaWJyYXJ5LiBFbGVtZW50IGhhcyBhIGRlcml2ZWQgY29tcG9zaXRpb24gYXNzb2NpYXRpb24gdG8gaXRzZWxmIHRvIHN1cHBvcnQgdGhlIGdlbmVyYWwgY2FwYWJpbGl0eSBmb3IgZWxlbWVudHMgdG8gb3duIG90aGVyIGVsZW1lbnRzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTIzNzQsNiArMTIzODAsMTIgQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG50cnVlXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKG11bHRpcGxpY2l0eUVsZW1lbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgTXVsdGlwbGljaXR5RWxlbWVudCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3Mgd2hpY2ggaW5jbHVkZXMgb3B0aW9uYWwgYXR0cmlidXRlcyBmb3IgZGVmaW5pbmcgdGhlIGJvdW5kcyBvZiBhIG11bHRpcGxpY2l0eS4gQSBNdWx0aXBsaWNpdHlFbGVtZW50IGFsc28gaW5jbHVkZXMgc3BlY2lmaWNhdGlvbnMgb2Ygd2hldGhlciB0aGUgdmFsdWVzIGluIGFuIGluc3RhbnRpYXRpb24gb2YgdGhpcyBlbGVtZW50IG11c3QgYmUgdW5pcXVlIG9yIG9yZGVyZWQuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pbXVsdGlwbGljaXR5RWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjQ1Niw1MCArMTI0NjgsMTQgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uTXVsdGlwbGljaXR5RWxlbWVudE9wZXJhdGlvbnMudXBwZXIodGhpcyk7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxudXBwZXJCb3VuZCgpXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKG5hbWVkRWxlbWVudEVDbGFzcywgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuaXNDb21wdXRhYmxlKHRoaXMpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbmZhbHNlXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgbmFtZWQgZWxlbWVudCByZXByZXNlbnRzIGVsZW1lbnRzIHRoYXQgbWF5IGhhdmUgYSBuYW1lLiBUaGUgbmFtZSBpcyB1c2VkIGZvciBpZGVudGlmaWNhdGlvbiBvZiB0aGUgbmFtZWQgZWxlbWVudCB3aXRoaW4gdGhlIG5hbWVzcGFjZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLiBBIG5hbWVkIGVsZW1lbnQgYWxzbyBoYXMgYSBxdWFsaWZpZWQgbmFtZSB0aGF0IGFsbG93cyBpdCB0byBiZSB1bmFtYmlndW91c2x5IGlkZW50aWZpZWQgd2l0aGluIGEgaGllcmFyY2h5IG9mIG5lc3RlZCBuYW1lc3BhY2VzLiBOYW1lZEVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuaW50ZWdlclZhbHVlKHRoaXMpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcblNldHt9XHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuYm9vbGVhblZhbHVlKHRoaXMpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcblNldHt9XHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMuc3RyaW5nVmFsdWUodGhpcyk7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuU2V0e31cclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVmFsdWVTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy51bmxpbWl0ZWRWYWx1ZSh0aGlzKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5TZXR7fVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmlzTnVsbCh0aGlzKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5mYWxzZVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lZEVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI1NDksNiArMTI1MjUsMTIgQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBpbnZhcmlhbnQgY29uc3RyYWludCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxubmFtZXNwYWNlLT5pc0VtcHR5KCkgaW1wbGllcyB2aXNpYmlsaXR5LT5pc0VtcHR5KClcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KKwkJICAobmFtZXNwYWNlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIG5hbWVzcGFjZSBpcyBhIG5hbWVkIGVsZW1lbnQgdGhhdCBjYW4gb3duIG90aGVyIG5hbWVkIGVsZW1lbnRzLiBFYWNoIG5hbWVkIGVsZW1lbnQgbWF5IGJlIG93bmVkIGJ5IGF0IG1vc3Qgb25lIG5hbWVzcGFjZS4gQSBuYW1lc3BhY2UgcHJvdmlkZXMgYSBtZWFucyBmb3IgaWRlbnRpZnlpbmcgbmFtZWQgZWxlbWVudHMgYnkgbmFtZS4gTmFtZWQgZWxlbWVudHMgY2FuIGJlIGlkZW50aWZpZWQgYnkgbmFtZSBpbiBhIG5hbWVzcGFjZSBlaXRoZXIgYnkgYmVpbmcgZGlyZWN0bHkgb3duZWQgYnkgdGhlIG5hbWVzcGFjZSBvciBieSBiZWluZyBpbnRyb2R1Y2VkIGludG8gdGhlIG5hbWVzcGFjZSBieSBvdGhlciBtZWFucyBlLmcuIGltcG9ydGluZyBvciBpbmhlcml0aW5nLiBOYW1lc3BhY2UgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiBBIG5hbWVzcGFjZSBjYW4gb3duIGNvbnN0cmFpbnRzLiBUaGUgY29uc3RyYWludCBkb2VzIG5vdCBuZWNlc3NhcmlseSBhcHBseSB0byB0aGUgbmFtZXNwYWNlIGl0c2VsZiwgYnV0IG1heSBhbHNvIGFwcGx5IHRvIGVsZW1lbnRzIGluIHRoZSBuYW1lc3BhY2UuIEEgbmFtZXNwYWNlIGhhcyB0aGUgYWJpbGl0eSB0byBpbXBvcnQgZWl0aGVyIGluZGl2aWRpYWwgbWVtYmVycyBvciBhbGwgbWVtYmVycyBvZiBhIHBhY2thZ2UsIHRoZXJlYnkgbWFraW5nIGl0IHBvc3NpYmxlIHRvIHJlZmVyIHRvIHRob3NlIG5hbWVkIGVsZW1lbnRzIHdpdGhvdXQgcXVhbGlmaWNhdGlvbiBpbiB0aGUgaW1wb3J0aW5nIG5hbWVzcGFjZS4gSW4gdGhlIGNhc2Ugb2YgY29uZmxpY3RzLCBpdCBpcyBuZWNlc3NhcnkgdG8gdXNlIHF1YWxpZmllZCBuYW1lcyBvciBhbGlhc2VzIHRvIGRpc2FtYmlndWF0ZSB0aGUgcmVmZXJlbmNlZCBlbGVtZW50cy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lc3BhY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI1OTgsNiArMTI1ODAsOTAgQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5pbXBzLT5yZWplY3QoaW1wMSB8IGltcHMuZXhpc3RzKGltcDIgfCBub3QgaW1wMS5pc0Rpc3Rpbmd1aXNoYWJsZUZyb20oaW1wMiwgc2VsZikpKVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KKwkJICAoZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgZGlyZWN0ZWQgcmVsYXRpb25zaGlwIHJlZmVyZW5jZXMgb25lIG9yIG1vcmUgc291cmNlIGVsZW1lbnRzIGFuZCBvbmUgb3IgbW9yZSB0YXJnZXQgZWxlbWVudHMuIERpcmVjdGVkIHJlbGF0aW9uc2hpcCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAocmVsYXRpb25zaGlwRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIG9uZSBvciBtb3JlIHJlbGF0ZWQgZWxlbWVudHMuIFJlbGF0aW9uc2hpcCBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKG9wYXF1ZUV4cHJlc3Npb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIGV4cHJlc3Npb24gY29udGFpbnMgYSBsYW5ndWFnZS1zcGVjaWZpYyB0ZXh0IHN0cmluZyB1c2VkIHRvIGRlc2NyaWJlIGEgdmFsdWUgb3IgdmFsdWVzLCBhbmQgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgbGFuZ3VhZ2UuIE9uZSBwcmVkZWZpbmVkIGxhbmd1YWdlIGZvciBzcGVjaWZ5aW5nIGV4cHJlc3Npb25zIGlzIE9DTC4gTmF0dXJhbCBsYW5ndWFnZSBvciBwcm9ncmFtbWluZyBsYW5ndWFnZXMgbWF5IGFsc28gYmUgdXNlZC4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICh2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIlZhbHVlU3BlY2lmaWNhdGlvbiBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgdXNlZCB0byBpZGVudGlmeSBhIHZhbHVlIG9yIHZhbHVlcyBpbiBhIG1vZGVsLiBJdCBtYXkgcmVmZXJlbmNlIGFuIGluc3RhbmNlIG9yIGl0IG1heSBiZSBhbiBleHByZXNzaW9uIGRlbm90aW5nIGFuIGluc3RhbmNlIG9yIGluc3RhbmNlcyB3aGVuIGV2YWx1YXRlZC4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmlzQ29tcHV0YWJsZSh0aGlzKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5mYWxzZVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmludGVnZXJWYWx1ZSh0aGlzKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5TZXR7fVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLmJvb2xlYW5WYWx1ZSh0aGlzKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5TZXR7fVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil2YWx1ZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5WYWx1ZVNwZWNpZmljYXRpb25PcGVyYXRpb25zLnN0cmluZ1ZhbHVlKHRoaXMpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcblNldHt9XHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXZhbHVlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLlZhbHVlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMudW5saW1pdGVkVmFsdWUodGhpcyk7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuU2V0e31cclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdmFsdWVTcGVjaWZpY2F0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDUpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVmFsdWVTcGVjaWZpY2F0aW9uT3BlcmF0aW9ucy5pc051bGwodGhpcyk7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuZmFsc2VcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZXhwcmVzc2lvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gZXhwcmVzc2lvbiByZXByZXNlbnRzIGEgbm9kZSBpbiBhbiBleHByZXNzaW9uIHRyZWUsIHdoaWNoIG1heSBiZSBub24tdGVybWluYWwgb3IgdGVybWluYWwuIEl0IGRlZmluZXMgYSBzeW1ib2wsIGFuZCBoYXMgYSBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiBvcGVyYW5kcyB3aGljaCBhcmUgdmFsdWUgc3BlY2lmaWNhdGlvbnMuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY29tbWVudEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBjb21tZW50IGdpdmVzIHRoZSBhYmlsaXR5IHRvIGF0dGFjaCB2YXJpb3VzIHJlbWFya3MgdG8gZWxlbWVudHMuIEEgY29tbWVudCBjYXJyaWVzIG5vIHNlbWFudGljIGZvcmNlLCBidXQgbWF5IGNvbnRhaW4gaW5mb3JtYXRpb24gdGhhdCBpcyB1c2VmdWwgdG8gYSBtb2RlbGVyLiBBIGNvbW1lbnQgY2FuIGJlIG93bmVkIGJ5IGFueSBlbGVtZW50LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGNsYXNzRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJDbGFzcyBpcyBhIGtpbmQgb2YgY2xhc3NpZmllciB3aG9zZSBmZWF0dXJlcyBhcmUgYXR0cmlidXRlcyBhbmQgb3BlcmF0aW9ucy4gQXR0cmlidXRlcyBvZiBhIGNsYXNzIGFyZSByZXByZXNlbnRlZCBieSBpbnN0YW5jZXMgb2YgUHJvcGVydHkgdGhhdCBhcmUgb3duZWQgYnkgdGhlIGNsYXNzLiBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgbWF5IHJlcHJlc2VudCB0aGUgbmF2aWdhYmxlIGVuZHMgb2YgYmluYXJ5IGFzc29jaWF0aW9ucy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjYwNSw2ICsxMjY3MSwxMiBAQAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbmluaHMtPmV4Y2x1ZGluZyhpbmggfCBvd25lZE1lbWJlci0+c2VsZWN0KG9jbElzS2luZE9mKFJlZGVmaW5hYmxlRWxlbWVudCkpLT5zZWxlY3QocmVkZWZpbmVkRWxlbWVudC0+aW5jbHVkZXMoaW5oKSkpXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgICh0eXBlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHR5cGUgc2VydmVzIGFzIGEgY29uc3RyYWludCBvbiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJlcHJlc2VudGVkIGJ5IGEgdHlwZWQgZWxlbWVudC4gVHlwZSBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pdHlwZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjYxMiw2ICsxMjY4NCwxMiBAQAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbmZhbHNlXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKHByb3BlcnR5RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJQcm9wZXJ0eSByZXByZXNlbnRzIGEgZGVjbGFyZWQgc3RhdGUgb2Ygb25lIG9yIG1vcmUgaW5zdGFuY2VzIGluIHRlcm1zIG9mIGEgbmFtZWQgcmVsYXRpb25zaGlwIHRvIGEgdmFsdWUgb3IgdmFsdWVzLiBXaGVuIGEgcHJvcGVydHkgaXMgYW4gYXR0cmlidXRlIG9mIGEgY2xhc3NpZmllciwgdGhlIHZhbHVlIG9yIHZhbHVlcyBhcmUgcmVsYXRlZCB0byB0aGUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzaWZpZXIgYnkgYmVpbmcgaGVsZCBpbiBzbG90cyBvZiB0aGUgaW5zdGFuY2UuIFdoZW4gYSBwcm9wZXJ0eSBpcyBhbiBhc3NvY2lhdGlvbiBlbmQsIHRoZSB2YWx1ZSBvciB2YWx1ZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIGluc3RhbmNlIG9yIGluc3RhbmNlcyBhdCB0aGUgb3RoZXIgZW5kKHMpIG9mIHRoZSBhc3NvY2lhdGlvbiAoc2VlIHNlbWFudGljcyBvZiBBc3NvY2lhdGlvbikuIFByb3BlcnR5IGlzIGluZGlyZWN0bHkgYSBzdWJjbGFzcyBvZiBDb25zdHJ1Y3RzOjpUeXBlZEVsZW1lbnQuIFRoZSByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgcmVwcmVzZW50ZWQgYnkgdGhlIHByb3BlcnR5IGNhbiBiZSBjb250cm9sbGVkIGJ5IHNldHRpbmcgdGhlIHByb3BlcnR5XHUyMDE5cyB0eXBlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXByb3BlcnR5RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKQEAgLTEyNjgyLDYgKzEyNzYwLDEyIEBACiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuaWYgYXNzb2NpYXRpb24tPm5vdEVtcHR5KClcclxudGhlbiBhc3NvY2lhdGlvbi5lbmRUeXBlLXR5cGUgXHJcbmVsc2UgaWYgY2xhc3NpZmllci0+bm90RW1wdHkgdGhlbiBTZXR7Y2xhc3NpZmllcn0gZWxzZSBTZXR7fSBlbmRpZlxyXG5lbmRpZlxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKG9wZXJhdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gb3BlcmF0aW9uIGlzIGEgYmVoYXZpb3JhbCBmZWF0dXJlIG9mIGEgY2xhc3NpZmllciB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSwgdHlwZSwgcGFyYW1ldGVycywgYW5kIGNvbnN0cmFpbnRzIGZvciBpbnZva2luZyBhbiBhc3NvY2lhdGVkIGJlaGF2aW9yLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW9wZXJhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjczNiw3ICsxMjgyMCwyNSBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJib2R5IiwgInJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5PcGVyYXRpb25PcGVyYXRpb25zLmlzQ29uc2lzdGVudFdpdGgodGhpcywgcmVkZWZpbmVlKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG4ocmVkZWZpbmVlLm9jbElzS2luZE9mKE9wZXJhdGlvbikgYW5kXHJcbiAgICBsZXQgb3A6IE9wZXJhdGlvbiA9IHJlZGVmaW5lZS5vY2xBc1R5cGUoT3BlcmF0aW9uKSBpblxyXG4gICAgICAgIHNlbGYuZm9ybWFsUGFyYW1ldGVyLnNpemUoKSA9IG9wLmZvcm1hbFBhcmFtZXRlci5zaXplKCkgYW5kXHJcbiAgICAgICAgc2VsZi5yZXR1cm5SZXN1bHQuc2l6ZSgpID0gb3AucmV0dXJuUmVzdWx0LnNpemUoKSBhbmRcclxuICAgICAgICBmb3JBbGwoaSB8IG9wLmZvcm1hbFBhcmFtZXRlcltpXS50eXBlLmNvbmZvcm1zVG8oc2VsZi5mb3JtYWxQYXJhbWV0ZXJbaV0udHlwZSkpIGFuZFxyXG4gICAgICAgIGZvckFsbChpIHwgb3AucmV0dXJuUmVzdWx0W2ldLnR5cGUuY29uZm9ybXNUbyhzZWxmLnJldHVyblJlc3VsdFtpXS50eXBlKSlcclxuKVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHR5cGVkRWxlbWVudEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSB0eXBlZCBlbGVtZW50IGlzIGFuIGVsZW1lbnQgdGhhdCBoYXMgYSB0eXBlIHRoYXQgc2VydmVzIGFzIGEgY29uc3RyYWludCBvbiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHRoZSBlbGVtZW50IGNhbiByZXByZXNlbnQuIFR5cGVkIGVsZW1lbnQgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHBhcmFtZXRlckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBwYXJhbWV0ZXIgaXMgYSBzcGVjaWZpY2F0aW9uIG9mIGFuIGFyZ3VtZW50IHVzZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiBpbnRvIG9yIG91dCBvZiBhbiBpbnZvY2F0aW9uIG9mIGEgYmVoYXZpb3JhbCBmZWF0dXJlLiBJdCBoYXMgYSB0eXBlLCBhbmQgbWF5IGhhdmUgYSBtdWx0aXBsaWNpdHkgYW5kIGFuIG9wdGlvbmFsIGRlZmF1bHQgdmFsdWUuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAocGFja2FnZUVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBwYWNrYWdlIGlzIGEgbmFtZXNwYWNlIGZvciBpdHMgbWVtYmVycywgYW5kIG1heSBjb250YWluIG90aGVyIHBhY2thZ2VzLiBPbmx5IHBhY2thZ2VhYmxlIGVsZW1lbnRzIGNhbiBiZSBvd25lZCBtZW1iZXJzIG9mIGEgcGFja2FnZS4gQnkgdmlydHVlIG9mIGJlaW5nIGEgbmFtZXNwYWNlLCBhIHBhY2thZ2UgY2FuIGltcG9ydCBlaXRoZXIgaW5kaXZpZHVhbCBtZW1iZXJzIG9mIG90aGVyIHBhY2thZ2VzLCBvciBhbGwgdGhlIG1lbWJlcnMgb2Ygb3RoZXIgcGFja2FnZXMuIEluIGFkZGl0aW9uIGEgcGFja2FnZSBjYW4gYmUgbWVyZ2VkIHdpdGggb3RoZXIgcGFja2FnZXMuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMjc2NCwxNCArMTI4NjYsNDQgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uUGFja2FnZU9wZXJhdGlvbnMubWFrZXNWaXNpYmxlKHRoaXMsIGVsKTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5lbC52aXNpYmlsaXR5LT5pc0VtcHR5KCkgb3IgZWwudmlzaWJpbGl0eSA9ICNwdWJsaWNcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChlbnVtZXJhdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiRW51bWVyYXRpb24gaXMgYSBraW5kIG9mIGRhdGEgdHlwZSwgd2hvc2UgaW5zdGFuY2VzIG1heSBiZSBhbnkgb2YgYSBudW1iZXIgb2YgdXNlci1kZWZpbmVkIGVudW1lcmF0aW9uIGxpdGVyYWxzLiBJdCBpcyBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHNldCBvZiBhcHBsaWNhYmxlIGVudW1lcmF0aW9uIGxpdGVyYWxzIGluIG90aGVyIHBhY2thZ2VzIG9yIHByb2ZpbGVzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGRhdGFUeXBlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJEYXRhVHlwZSBkZWZpbmVzIGEga2luZCBvZiBjbGFzc2lmaWVyIGluIHdoaWNoIG9wZXJhdGlvbnMgYXJlIGFsbCBwdXJlIGZ1bmN0aW9ucyAoaS5lLiwgdGhleSBjYW4gcmV0dXJuIGRhdGEgdmFsdWVzIGJ1dCB0aGV5IGNhbm5vdCBjaGFuZ2UgZGF0YSB2YWx1ZXMsIGJlY2F1c2UgdGhleSBoYXZlIG5vIGlkZW50aXR5KS4gRm9yIGV4YW1wbGUsIGFuIFx1MjAxY2FkZFx1MjAxZCBvcGVyYXRpb24gb24gYSBudW1iZXIgd2l0aCBhbm90aGVyIG51bWJlciBhcyBhbiBhcmd1bWVudCB5aWVsZHMgYSB0aGlyZCBudW1iZXIgYXMgYSByZXN1bHQ7IHRoZSB0YXJnZXQgYW5kIGFyZ3VtZW50IGFyZSB1bmNoYW5nZWQuIEEgRGF0YVR5cGUgbWF5IGFsc28gY29udGFpbiBhdHRyaWJ1dGVzIHRvIHN1cHBvcnQgdGhlIG1vZGVsaW5nIG9mIHN0cnVjdHVyZWQgZGF0YSB0eXBlcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilkYXRhVHlwZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkRhdGFUeXBlT3BlcmF0aW9ucy5pbmhlcml0KHRoaXMsIGluaHMpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbmluaHMtPmV4Y2x1ZGluZyhpbmggfFxyXG5cdG93bmVkTWVtYmVyLT5zZWxlY3Qob2NsSXNLaW5kT2YoUmVkZWZpbmFibGVFbGVtZW50KSktPnNlbGVjdChyZWRlZmluZWRFbGVtZW50LT5pbmNsdWRlcyhpbmgpKSlcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGVudW1lcmF0aW9uTGl0ZXJhbEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gZW51bWVyYXRpb24gbGl0ZXJhbCBpcyBhIHVzZXItZGVmaW5lZCBkYXRhIHZhbHVlIGZvciBhbiBlbnVtZXJhdGlvbi4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChwcmltaXRpdmVUeXBlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJUaGUgaW5zdGFuY2VzIG9mIHByaW1pdGl2ZSB0eXBlIHVzZWQgaW4gVU1MIGl0c2VsZiBpbmNsdWRlIEJvb2xlYW4sIEludGVnZXIsIFVubGltaXRlZE5hdHVyYWwsIGFuZCBTdHJpbmcuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAobGl0ZXJhbEJvb2xlYW5FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgbGl0ZXJhbCBib29sZWFuIGNvbnRhaW5zIGEgQm9vbGVhbi12YWx1ZWQgYXR0cmlidXRlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWxpdGVyYWxCb29sZWFuRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEyNzg3LDYgKzEyOTE5LDE4IEBACiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxudmFsdWVcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KKwkJICAobGl0ZXJhbFNwZWNpZmljYXRpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgbGl0ZXJhbCBzcGVjaWZpY2F0aW9uIGlzIGFuIGFic3RyYWN0IHNwZWNpYWxpemF0aW9uIG9mIFZhbHVlU3BlY2lmaWNhdGlvbiB0aGF0IGlkZW50aWZpZXMgYSBsaXRlcmFsIGNvbnN0YW50IGJlaW5nIG1vZGVsZWQuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAobGl0ZXJhbFN0cmluZ0VDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBsaXRlcmFsIHN0cmluZyBjb250YWlucyBhIFN0cmluZy12YWx1ZWQgYXR0cmlidXRlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWxpdGVyYWxTdHJpbmdFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI4MDEsNiArMTI5NDUsMTIgQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG52YWx1ZVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgIChsaXRlcmFsTnVsbEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBsaXRlcmFsIG51bGwgaXMgdXNlZCB0byByZXByZXNlbnQgbnVsbCwgaS5lLiwgdGhlIGFic2VuY2Ugb2YgYSB2YWx1ZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilsaXRlcmFsTnVsbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjgxNSw2ICsxMjk2NSwxMiBAQAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbnRydWVcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KKwkJICAobGl0ZXJhbEludGVnZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgbGl0ZXJhbCBpbnRlZ2VyIGNvbnRhaW5zIGFuIEludGVnZXItdmFsdWVkIGF0dHJpYnV0ZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilsaXRlcmFsSW50ZWdlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xMjgyOSw2ICsxMjk4NSwxMiBAQAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcXVlcnkgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBPQ0wgZXhwcmVzc2lvbjpcclxuPGNvZGU+XHJcbnZhbHVlXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKGxpdGVyYWxVbmxpbWl0ZWROYXR1cmFsRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIGxpdGVyYWwgdW5saW1pdGVkIG5hdHVyYWwgY29udGFpbnMgYSBVbmxpbWl0ZWROYXR1cmFsLXZhbHVlZCBhdHRyaWJ1dGUuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pbGl0ZXJhbFVubGltaXRlZE5hdHVyYWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI4NDMsNiArMTMwMDUsMTggQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG52YWx1ZVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgICh2aXNpYmlsaXR5S2luZEVFbnVtLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJWaXNpYmlsaXR5S2luZCBpcyBhbiBlbnVtZXJhdGlvbiBvZiB0aGUgZm9sbG93aW5nIGxpdGVyYWwgdmFsdWVzOiBcdTIwMjIgcHVibGljIFx1MjAyMiBwcml2YXRlIFx1MjAyMiBwcm90ZWN0ZWQgXHUyMDIyIHBhY2thZ2UgIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChjbGFzc2lmaWVyRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIGNsYXNzaWZpZXIgaXMgYSBuYW1lc3BhY2Ugd2hvc2UgbWVtYmVycyBjYW4gaW5jbHVkZSBmZWF0dXJlcy4gQ2xhc3NpZmllciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuIEEgY2xhc3NpZmllciBpcyBhIHR5cGUgYW5kIGNhbiBvd24gZ2VuZXJhbGl6YXRpb25zLCB0aGVyZWJ5IG1ha2luZyBpdCBwb3NzaWJsZSB0byBkZWZpbmUgZ2VuZXJhbGl6YXRpb24gcmVsYXRpb25zaGlwcyB0byBvdGhlciBjbGFzc2lmaWVycy4gQSBjbGFzc2lmaWVyIGNhbiBzcGVjaWZ5IGEgZ2VuZXJhbGl6YXRpb24gaGllcmFyY2h5IGJ5IHJlZmVyZW5jaW5nIGl0cyBnZW5lcmFsIGNsYXNzaWZpZXJzLiBBIGNsYXNzaWZpZXIgaXMgYSByZWRlZmluYWJsZSBlbGVtZW50LCBtZWFuaW5nIHRoYXQgaXQgaXMgcG9zc2libGUgdG8gcmVkZWZpbmUgbmVzdGVkIGNsYXNzaWZpZXJzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI5MzksNyArMTMxMTMsMTkgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uQ2xhc3NpZmllck9wZXJhdGlvbnMuY29uZm9ybXNUbyh0aGlzLCBvdGhlcik7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuKHNlbGY9b3RoZXIpIG9yIChzZWxmLmFsbFBhcmVudHMoKS0+aW5jbHVkZXMob3RoZXIpKVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChmZWF0dXJlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIGZlYXR1cmUgZGVjbGFyZXMgYSBiZWhhdmlvcmFsIG9yIHN0cnVjdHVyYWwgY2hhcmFjdGVyaXN0aWMgb2YgaW5zdGFuY2VzIG9mIGNsYXNzaWZpZXJzLiBGZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY29uc3RyYWludEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQ29uc3RyYWludCBjb250YWlucyBhIFZhbHVlU3BlY2lmaWNhdGlvbiB0aGF0IHNwZWNpZmllcyBhZGRpdGlvbmFsIHNlbWFudGljcyBmb3Igb25lIG9yIG1vcmUgZWxlbWVudHMuIENlcnRhaW4ga2luZHMgb2YgY29uc3RyYWludHMgKHN1Y2ggYXMgYW4gYXNzb2NpYXRpb24gXHUyMDFjeG9yXHUyMDFkIGNvbnN0cmFpbnQpIGFyZSBwcmVkZWZpbmVkIGluIFVNTCwgb3RoZXJzIG1heSBiZSB1c2VyLWRlZmluZWQuIEEgdXNlci1kZWZpbmVkIENvbnN0cmFpbnQgaXMgZGVzY3JpYmVkIHVzaW5nIGEgc3BlY2lmaWVkIGxhbmd1YWdlLCB3aG9zZSBzeW50YXggYW5kIGludGVycHJldGF0aW9uIGlzIGEgdG9vbCByZXNwb25zaWJpbGl0eS4gT25lIHByZWRlZmluZWQgbGFuZ3VhZ2UgZm9yIHdyaXRpbmcgY29uc3RyYWludHMgaXMgT0NMLiBJbiBzb21lIHNpdHVhdGlvbnMsIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugc3VjaCBhcyBKYXZhIG1heSBiZSBhcHByb3ByaWF0ZSBmb3IgZXhwcmVzc2luZyBhIGNvbnN0cmFpbnQuIEluIG90aGVyIHNpdHVhdGlvbnMgbmF0dXJhbCBsYW5ndWFnZSBtYXkgYmUgdXNlZC4gQ29uc3RyYWludCBpcyBhIGNvbmRpdGlvbiAoYSBCb29sZWFuIGV4cHJlc3Npb24pIHRoYXQgcmVzdHJpY3RzIHRoZSBleHRlbnNpb24gb2YgdGhlIGFzc29jaWF0ZWQgZWxlbWVudCBiZXlvbmQgd2hhdCBpcyBpbXBvc2VkIGJ5IHRoZSBvdGhlciBsYW5ndWFnZSBjb25zdHJ1Y3RzIGFwcGxpZWQgdG8gdGhhdCBlbGVtZW50LiBDb25zdHJhaW50IGNvbnRhaW5zIGFuIG9wdGlvbmFsIG5hbWUsIGFsdGhvdWdoIHRoZXkgYXJlIGNvbW1vbmx5IHVubmFtZWQuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pY29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMjk0OCw2ICsxMzEzNCwxMiBAQAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIGludmFyaWFudCBjb25zdHJhaW50IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5ub3QgY29uc3RyYWluZWRFbGVtZW50LT5pbmNsdWRlcyhzZWxmKVxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KKwkJICAoYmVoYXZpb3JhbEZlYXR1cmVFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgYmVoYXZpb3JhbCBmZWF0dXJlIHNwZWNpZmllcyB0aGF0IGFuIGluc3RhbmNlIG9mIGEgY2xhc3NpZmllciB3aWxsIHJlc3BvbmQgdG8gYSBkZXNpZ25hdGVkIHJlcXVlc3QgYnkgaW52b2tpbmcgYSBiZWhhdmlvci4gQmVoYXZpb3JhbEZlYXR1cmUgaXMgYW4gYWJzdHJhY3QgbWV0YWNsYXNzIHNwZWNpYWxpemluZyBGZWF0dXJlIGFuZCBOYW1lc3BhY2UuIEtpbmRzIG9mIGJlaGF2aW9yYWwgYXNwZWN0cyBhcmUgbW9kZWxlZCBieSBzdWJjbGFzc2VzIG9mIEJlaGF2aW9yYWxGZWF0dXJlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWJlaGF2aW9yYWxGZWF0dXJlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKQEAgLTEyOTU1LDYgKzEzMTQ3LDE4IEBACiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuaWYgbi5vY2xJc0tpbmRPZihCZWhhdmlvcmFsRmVhdHVyZSlcclxudGhlblxyXG4gICAgaWYgbnMuZ2V0TmFtZXNPZk1lbWJlcihzZWxmKS0+aW50ZXJzZWN0aW9uKG5zLmdldE5hbWVzT2ZNZW1iZXIobikpLT5ub3RFbXB0eSgpXHJcbiAgICB0aGVuIFNldHt9LT5pbmNsdWRlKHNlbGYpLT5pbmNsdWRlKG4pLT5pc1VuaXF1ZSggYmYgfCBiZi5wYXJhbWV0ZXItPmNvbGxlY3QodHlwZSkpXHJcbiAgICBlbHNlIHRydWVcclxuICAgIGVuZGlmXHJcbmVsc2UgdHJ1ZVxyXG5lbmRpZlxyXG48L2NvZGU+IiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKHN0cnVjdHVyYWxGZWF0dXJlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHN0cnVjdHVyYWwgZmVhdHVyZSBpcyBhIHR5cGVkIGZlYXR1cmUgb2YgYSBjbGFzc2lmaWVyIHRoYXQgc3BlY2lmeSB0aGUgc3RydWN0dXJlIG9mIGluc3RhbmNlcyBvZiB0aGUgY2xhc3NpZmllci4gU3RydWN0dXJhbCBmZWF0dXJlIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gQnkgc3BlY2lhbGl6aW5nIG11bHRpcGxpY2l0eSBlbGVtZW50LCBpdCBzdXBwb3J0cyBhIG11bHRpcGxpY2l0eSB0aGF0IHNwZWNpZmllcyB2YWxpZCBjYXJkaW5hbGl0aWVzIGZvciB0aGUgc2V0IG9mIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggYW4gaW5zdGFudGlhdGlvbiBvZiB0aGUgc3RydWN0dXJhbCBmZWF0dXJlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHJlZGVmaW5hYmxlRWxlbWVudEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSByZWRlZmluYWJsZSBlbGVtZW50IGlzIGEgbmFtZWQgZWxlbWVudCB0aGF0IGNhbiBiZSByZWRlZmluZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBnZW5lcmFsaXphdGlvbi4gUmVkZWZpbmFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilyZWRlZmluYWJsZUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTI5ODEsNyArMTMxODUsMTMgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uUmVkZWZpbmFibGVFbGVtZW50T3BlcmF0aW9ucy5pc1JlZGVmaW5pdGlvbkNvbnRleHRWYWxpZCh0aGlzLCByZWRlZmluYWJsZSk7IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImRvY3VtZW50YXRpb24iLCAiQSBxdWVyeSBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuc2VsZi5yZWRlZmluaXRpb25Db250ZXh0LT5leGlzdHMoYyB8IHJlZGVmaW5hYmxlLnJlZGVmaW5pdGlvbkNvbnRleHQtPmV4aXN0cyhyIHwgYy5hbGxQYXJlbnRzKCktPmluY2x1ZGVzKHIpKSlcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkluIHRoZSBtZXRhbW9kZWwsIEluc3RhbmNlU3BlY2lmaWNhdGlvbiBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIERlcGxveW1lbnRUYXJnZXQgYW5kIERlcGxveWVkQXJ0aWZhY3QuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24paW5zdGFuY2VTcGVjaWZpY2F0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEyOTk1LDcgKzEzMjA1LDM3IEBACiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImJvZHkiLCAicmV0dXJuIG9yZy5lY2xpcHNlLnVtbDIuaW50ZXJuYWwub3BlcmF0aW9uLkluc3RhbmNlU3BlY2lmaWNhdGlvbk9wZXJhdGlvbnMudmFsaWRhdGVOb0R1cGxpY2F0ZVNsb3RzKHRoaXMsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBpbnZhcmlhbnQgY29uc3RyYWludCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIE9DTCBleHByZXNzaW9uOlxyXG48Y29kZT5cclxuY2xhc3NpZmllci0+Zm9yQWxsKGMgfFxyXG5cdChjLmFsbEZlYXR1cmVzKCktPmZvckFsbChmIHwgc2xvdC0+c2VsZWN0KHMgfCBzLmRlZmluaW5nRmVhdHVyZSA9IGYpLT5zaXplKCkgPD0gMSlcclxuXHQpXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHNsb3RFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgc2xvdCBpcyBvd25lZCBieSBhbiBpbnN0YW5jZSBzcGVjaWZpY2F0aW9uLiBJdCBzcGVjaWZpZXMgdGhlIHZhbHVlIG9yIHZhbHVlcyBmb3IgaXRzIGRlZmluaW5nIGZlYXR1cmUsIHdoaWNoIG11c3QgYmUgYSBzdHJ1Y3R1cmFsIGZlYXR1cmUgb2YgYSBjbGFzc2lmaWVyIG9mIHRoZSBpbnN0YW5jZSBzcGVjaWZpY2F0aW9uIG93bmluZyB0aGUgc2xvdC4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChpbnN0YW5jZVZhbHVlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBpbnN0YW5jZSB2YWx1ZSBzcGVjaWZpZXMgdGhlIHZhbHVlIG1vZGVsZWQgYnkgYW4gaW5zdGFuY2Ugc3BlY2lmaWNhdGlvbi4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZW5lcmFsaXphdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBnZW5lcmFsaXphdGlvbiByZWxhdGVzIGEgc3BlY2lmaWMgY2xhc3NpZmllciB0byBhIG1vcmUgZ2VuZXJhbCBjbGFzc2lmaWVyLCBhbmQgaXMgb3duZWQgYnkgdGhlIHNwZWNpZmljIGNsYXNzaWZpZXIuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChwYWNrYWdlYWJsZUVsZW1lbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcGFja2FnZWFibGUgZWxlbWVudCBpbmRpY2F0ZXMgYSBuYW1lZCBlbGVtZW50IHRoYXQgbWF5IGJlIG93bmVkIGRpcmVjdGx5IGJ5IGEgcGFja2FnZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGVsZW1lbnRJbXBvcnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIGVsZW1lbnQgaW1wb3J0IGlzIGRlZmluZWQgYXMgYSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgYmV0d2VlbiBhbiBpbXBvcnRpbmcgbmFtZXNwYWNlIGFuZCBhIHBhY2thZ2VhYmxlIGVsZW1lbnQuIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlYWJsZSBlbGVtZW50IG9yIGl0cyBhbGlhcyBpcyB0byBiZSBhZGRlZCB0byB0aGUgbmFtZXNwYWNlIG9mIHRoZSBpbXBvcnRpbmcgbmFtZXNwYWNlLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNvbnRyb2wgd2hldGhlciB0aGUgaW1wb3J0ZWQgZWxlbWVudCBjYW4gYmUgZnVydGhlciBpbXBvcnRlZC4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbillbGVtZW50SW1wb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMDE4LDE4ICsxMzI1OCwzMTggQEAKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHF1ZXJ5IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5pZiBzZWxmLmFsaWFzLT5ub3RFbXB0eSgpIHRoZW4gXHJcbiAgICBzZWxmLmFsaWFzXHJcbmVsc2VcclxuICAgIHNlbGYuaW1wb3J0ZWRFbGVtZW50Lm5hbWVcclxuZW5kaWZcclxuPC9jb2RlPiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgIChwYWNrYWdlSW1wb3J0RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHBhY2thZ2UgaW1wb3J0IGlzIGRlZmluZWQgYXMgYSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgdGhhdCBpZGVudGlmaWVzIGEgcGFja2FnZSB3aG9zZSBtZW1iZXJzIGFyZSB0byBiZSBpbXBvcnRlZCBieSBhIG5hbWVzcGFjZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYWNrYWdlSW1wb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiYm9keSIsICJyZXR1cm4gb3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uUGFja2FnZUltcG9ydE9wZXJhdGlvbnMudmFsaWRhdGVQdWJsaWNPclByaXZhdGUodGhpcywgZGlhZ25vc3RpY3MsIGNvbnRleHQpOyIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIGludmFyaWFudCBjb25zdHJhaW50IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgT0NMIGV4cHJlc3Npb246XHJcbjxjb2RlPlxyXG5zZWxmLnZpc2liaWxpdHkgPSAjcHVibGljIG9yIHNlbGYudmlzaWJpbGl0eSA9ICNwcml2YXRlXHJcbjwvY29kZT4iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChhc3NvY2lhdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gYXNzb2NpYXRpb24gc3BlY2lmaWVzIGEgc2VtYW50aWMgcmVsYXRpb25zaGlwIHRoYXQgY2FuIG9jY3VyIGJldHdlZW4gdHlwZWQgaW5zdGFuY2VzLiBJdCBoYXMgYXQgbGVhc3QgdHdvIGVuZHMgcmVwcmVzZW50ZWQgYnkgcHJvcGVydGllcywgZWFjaCBvZiB3aGljaCBpcyBjb25uZWN0ZWQgdG8gdGhlIHR5cGUgb2YgdGhlIGVuZC4gTW9yZSB0aGFuIG9uZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uIG1heSBoYXZlIHRoZSBzYW1lIHR5cGUuIFdoZW4gYSBwcm9wZXJ0eSBpcyBvd25lZCBieSBhbiBhc3NvY2lhdGlvbiBpdCByZXByZXNlbnRzIGEgbm9uLW5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgbmFtZXNwYWNlIG9mIGFueSBvZiB0aGUgYXNzb2NpYXRlZCBjbGFzc2lmaWVycy4gV2hlbiBhIHByb3BlcnR5IGF0IGFuIGVuZCBvZiBhbiBhc3NvY2lhdGlvbiBpcyBvd25lZCBieSBvbmUgb2YgdGhlIGFzc29jaWF0ZWQgY2xhc3NpZmllcnMgaXQgcmVwcmVzZW50cyBhIG5hdmlnYWJsZSBlbmQgb2YgdGhlIGFzc29jaWF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIHByb3BlcnR5IGlzIGFsc28gYW4gYXR0cmlidXRlIG9mIHRoZSBhc3NvY2lhdGVkIGNsYXNzaWZpZXIuIE9ubHkgYmluYXJ5IGFzc29jaWF0aW9ucyBtYXkgaGF2ZSBuYXZpZ2FibGUgZW5kcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChwYWNrYWdlTWVyZ2VFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcGFja2FnZSBtZXJnZSBpcyBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBwYWNrYWdlcywgd2hlcmUgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YXJnZXQgcGFja2FnZSAodGhlIG9uZSBwb2ludGVkIGF0KSBpcyBtZXJnZWQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIHNvdXJjZSBwYWNrYWdlIHRocm91Z2ggc3BlY2lhbGl6YXRpb24gYW5kIHJlZGVmaW5pdGlvbiwgd2hlcmUgYXBwbGljYWJsZS4gVGhpcyBpcyBhIG1lY2hhbmlzbSB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gZWxlbWVudHMgb2YgdGhlIHNhbWUgbmFtZSBhcmUgaW50ZW5kZWQgdG8gcmVwcmVzZW50IHRoZSBzYW1lIGNvbmNlcHQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHBhY2thZ2UgaW4gd2hpY2ggdGhleSBhcmUgZGVmaW5lZC4gQSBtZXJnaW5nIHBhY2thZ2Ugd2lsbCB0YWtlIGVsZW1lbnRzIG9mIHRoZSBzYW1lIGtpbmQgd2l0aCB0aGUgc2FtZSBuYW1lIGZyb20gb25lIG9yIG1vcmUgcGFja2FnZXMgYW5kIG1lcmdlIHRoZW0gdG9nZXRoZXIgaW50byBhIHNpbmdsZSBlbGVtZW50IHVzaW5nIGdlbmVyYWxpemF0aW9uIGFuZCByZWRlZmluaXRpb25zLiBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBhIHBhY2thZ2UgbWVyZ2UgY2FuIGJlIHZpZXdlZCBhcyBhIHNob3J0LWhhbmQgd2F5IG9mIGV4cGxpY2l0bHkgZGVmaW5pbmcgdGhvc2UgZ2VuZXJhbGl6YXRpb25zIGFuZCByZWRlZmluaXRpb25zLiBUaGUgbWVyZ2VkIHBhY2thZ2VzIGFyZSBzdGlsbCBhdmFpbGFibGUsIGFuZCB0aGUgZWxlbWVudHMgaW4gdGhvc2UgcGFja2FnZXMgY2FuIGJlIHNlcGFyYXRlbHkgcXVhbGlmaWVkLiBGcm9tIGFuIFhNSSBwb2ludCBvZiB2aWV3LCBpdCBpcyBlaXRoZXIgcG9zc2libGUgdG8gZXhjaGFuZ2UgYSBtb2RlbCB3aXRoIGFsbCBQYWNrYWdlTWVyZ2VzIHJldGFpbmVkIG9yIGEgbW9kZWwgd2hlcmUgYWxsIFBhY2thZ2VNZXJnZXMgaGF2ZSBiZWVuIHRyYW5zZm9ybWVkIGF3YXkgKGluIHdoaWNoIGNhc2UgcGFja2FnZSBpbXBvcnRzLCBnZW5lcmFsaXphdGlvbnMsIGFuZCByZWRlZmluaXRpb25zIGFyZSB1c2VkIGluc3RlYWQpLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAocGFyYW1ldGVyRGlyZWN0aW9uS2luZEVFbnVtLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJQYXJhbWV0ZXJEaXJlY3Rpb25LaW5kIGlzIGFuIGVudW1lcmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbCB2YWx1ZXM6IFx1MjAyMiBpbiBJbmRpY2F0ZXMgdGhhdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgaW50byB0aGUgYmVoYXZpb3JhbCBlbGVtZW50IGJ5IHRoZSBjYWxsZXIuIFx1MjAyMiBpbm91dCBJbmRpY2F0ZXMgdGhhdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgaW50byBhIGJlaGF2aW9yYWwgZWxlbWVudCBieSB0aGUgY2FsbGVyIGFuZCB0aGVuIGJhY2sgb3V0IHRvIHRoZSBjYWxsZXIgZnJvbSB0aGUgYmVoYXZpb3JhbCBlbGVtZW50LiBcdTIwMjIgb3V0IEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBmcm9tIGEgYmVoYXZpb3JhbCBlbGVtZW50IG91dCB0byB0aGUgY2FsbGVyLiBcdTIwMjIgcmV0dXJuIEluZGljYXRlcyB0aGF0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIHBhc3NlZCBhcyByZXR1cm4gdmFsdWVzIGZyb20gYSBiZWhhdmlvcmFsIGVsZW1lbnQgYmFjayB0byB0aGUgY2FsbGVyLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGFnZ3JlZ2F0aW9uS2luZEVFbnVtLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBZ2dyZWdhdGlvbktpbmQgaXMgYW4gZW51bWVyYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsIHZhbHVlczogXHUyMDIyIG5vbmUgSW5kaWNhdGVzIHRoYXQgdGhlIHByb3BlcnR5IGhhcyBubyBhZ2dyZWdhdGlvbi4gXHUyMDIyIHNoYXJlZCBJbmRpY2F0ZXMgdGhhdCB0aGUgcHJvcGVydHkgaGFzIGEgc2hhcmVkIGFnZ3JlZ2F0aW9uLiBcdTIwMjIgY29tcG9zaXRlIEluZGljYXRlcyB0aGF0IHRoZSBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGVkIGNvbXBvc2l0ZWx5LCBpLmUuLCB0aGUgY29tcG9zaXRlIG9iamVjdCBoYXMgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBleGlzdGVuY2UgYW5kIHN0b3JhZ2Ugb2YgdGhlIGNvbXBvc2VkIG9iamVjdHMgKHBhcnRzKS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoYmVoYXZpb3JFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkJlaGF2aW9yIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiBob3cgaXRzIGNvbnRleHQgY2xhc3NpZmllciBjaGFuZ2VzIHN0YXRlIG92ZXIgdGltZS4gVGhpcyBzcGVjaWZpY2F0aW9uIG1heSBiZSBlaXRoZXIgYSBkZWZpbml0aW9uIG9mIHBvc3NpYmxlIGJlaGF2aW9yIGV4ZWN1dGlvbiBvciBlbWVyZ2VudCBiZWhhdmlvciwgb3IgYSBzZWxlY3RpdmUgaWxsdXN0cmF0aW9uIG9mIGFuIGludGVyZXN0aW5nIHN1YnNldCBvZiBwb3NzaWJsZSBleGVjdXRpb25zLiBUaGUgbGF0dGVyIGZvcm0gaXMgdHlwaWNhbGx5IHVzZWQgZm9yIGNhcHR1cmluZyBleGFtcGxlcywgc3VjaCBhcyBhIHRyYWNlIG9mIGEgcGFydGljdWxhciBleGVjdXRpb24uIEEgY2xhc3NpZmllciBiZWhhdmlvciBpcyBhbHdheXMgYSBkZWZpbml0aW9uIG9mIGJlaGF2aW9yIGFuZCBub3QgYW4gaWxsdXN0cmF0aW9uLiBJdCBkZXNjcmliZXMgdGhlIHNlcXVlbmNlIG9mIHN0YXRlIGNoYW5nZXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzc2lmaWVyIG1heSB1bmRlcmdvIGluIHRoZSBjb3Vyc2Ugb2YgaXRzIGxpZmV0aW1lLiBJdHMgcHJlY2lzZSBzZW1hbnRpY3MgZGVwZW5kcyBvbiB0aGUga2luZCBvZiBjbGFzc2lmaWVyLiBGb3IgZXhhbXBsZSwgdGhlIGNsYXNzaWZpZXIgYmVoYXZpb3Igb2YgYSBjb2xsYWJvcmF0aW9uIHJlcHJlc2VudHMgZW1lcmdlbnQgYmVoYXZpb3Igb2YgYWxsIHRoZSBwYXJ0cywgd2hlcmVhcyB0aGUgY2xhc3NpZmllciBiZWhhdmlvciBvZiBhIGNsYXNzIGlzIGp1c3QgdGhlIGJlaGF2aW9yIG9mIGluc3RhbmNlcyBvZiB0aGUgY2xhc3Mgc2VwYXJhdGVkIGZyb20gdGhlIGJlaGF2aW9ycyBvZiBhbnkgb2YgaXRzIHBhcnRzLiBXaGVuIGEgYmVoYXZpb3IgaXMgYXNzb2NpYXRlZCBhcyB0aGUgbWV0aG9kIG9mIGEgYmVoYXZpb3JhbCBmZWF0dXJlLCBpdCBkZWZpbmVzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGF0IGZlYXR1cmU7IGkuZS4sIHRoZSBjb21wdXRhdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgZWZmZWN0cyBvZiB0aGUgYmVoYXZpb3JhbCBmZWF0dXJlLiBBcyBhIGNsYXNzaWZpZXIsIGEgYmVoYXZpb3IgY2FuIGJlIHNwZWNpYWxpemVkLiBJbnN0YW50aWF0aW5nIGEgYmVoYXZpb3IgaXMgcmVmZXJyZWQgdG8gYXMgXHUyMDFjaW52b2NhdGluZ1x1MjAxZCB0aGUgYmVoYXZpb3IsIGFuIGluc3RhbnRpYXRlZCBiZWhhdmlvciBpcyBhbHNvIGNhbGxlZCBhIGJlaGF2aW9yIFx1MjAxY2V4ZWN1dGlvbi5cdTIwMWQgQSBiZWhhdmlvciBtYXkgYmUgaW52b2tlZCBkaXJlY3RseSBvciBpdHMgaW52b2NhdGlvbiBtYXkgYmUgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgYmVoYXZpb3JhbCBmZWF0dXJlIHRoYXQgc3BlY2lmaWVzIHRoaXMgYmVoYXZpb3IuIEEgYmVoYXZpb3IgY2FuIGFsc28gYmUgaW5zdGFudGlhdGVkIGFzIGFuIG9iamVjdCBpbiB2aXJ0dWUgb2YgaXQgYmVpbmcgYSBjbGFzcy4gVGhlIHNwZWNpZmljYXRpb24gb2YgYSBiZWhhdmlvciBjYW4gdGFrZSBhIG51bWJlciBvZiBmb3JtcywgYXMgZGVzY3JpYmVkIGluIHRoZSBzdWJjbGFzc2VzIG9mIEJlaGF2aW9yLiBCZWhhdmlvciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgZmFjdG9yaW5nIG91dCB0aGUgY29tbW9uYWxpdGllcyBvZiB0aGVzZSBkaWZmZXJlbnQgc3BlY2lmaWNhdGlvbiBtZWNoYW5pc21zLiBXaGVuIGEgYmVoYXZpb3IgaXMgaW52b2tlZCwgaXRzIGV4ZWN1dGlvbiByZWNlaXZlcyBhIHNldCBvZiBpbnB1dCB2YWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBhZmZlY3QgdGhlIGNvdXJzZSBvZiBleGVjdXRpb24gYW5kIGFzIGEgcmVzdWx0IG9mIGl0cyBleGVjdXRpb24gaXQgcHJvZHVjZXMgYSBzZXQgb2Ygb3V0cHV0IHZhbHVlcyB3aGljaCBhcmUgcmV0dXJuZWQsIGFzIHNwZWNpZmllZCBieSBpdHMgcGFyYW1ldGVycy4gVGhlIG9ic2VydmFibGUgZWZmZWN0cyBvZiBhIGJlaGF2aW9yIGV4ZWN1dGlvbiBtYXkgaW5jbHVkZSBjaGFuZ2VzIG9mIHZhbHVlcyBvZiB2YXJpb3VzIG9iamVjdHMgaW52b2x2ZWQgaW4gdGhlIGV4ZWN1dGlvbiwgdGhlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiBvYmplY3RzLCBnZW5lcmF0aW9uIG9mIGNvbW11bmljYXRpb25zIGJldHdlZW4gb2JqZWN0cywgYXMgd2VsbCBhcyBhbiBleHBsaWNpdCBzZXQgb2Ygb3V0cHV0IHZhbHVlcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoYmVoYXZpb3JlZENsYXNzaWZpZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgY2xhc3NpZmllciBjYW4gaGF2ZSBiZWhhdmlvciBzcGVjaWZpY2F0aW9ucyBkZWZpbmVkIGluIGl0cyBuYW1lc3BhY2UuIE9uZSBvZiB0aGVzZSBtYXkgc3BlY2lmeSB0aGUgYmVoYXZpb3Igb2YgdGhlIGNsYXNzaWZpZXIgaXRzZWxmLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGFjdGl2aXR5RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBhY3Rpdml0eSBjb250YWlucyBhIGxhbmd1YWdlLXNwZWNpZmljIHRleHQgc3RyaW5nIHVzZWQgdG8gZGVzY3JpYmUgYSBjb21wdXRhdGlvbiwgYW5kIGFuIG9wdGlvbmFsIHNwZWNpZmljYXRpb24gb2YgdGhlIGxhbmd1YWdlLiBPQ0wsIG5hdHVyYWwgbGFuZ3VhZ2UsIG9yIHByb2dyYW1taW5nIGxhbmd1YWdlcyBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5IGFuIGFjdGl2aXR5LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdlbmVyYWxpemF0aW9uU2V0RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJFYWNoIEdlbmVyYWxpemF0aW9uIGlzIGEgYmluYXJ5IHJlbGF0aW9uc2hpcCB0aGF0IHJlbGF0ZXMgYSBzcGVjaWZpYyBDbGFzc2lmaWVyIHRvIGEgbW9yZSBnZW5lcmFsIENsYXNzaWZpZXIgKGkuZS4sIGEgc3ViY2xhc3MpLiBFYWNoIEdlbmVyYWxpemF0aW9uU2V0IGRlZmluZXMgYSBwYXJ0aWN1bGFyIHNldCBvZiBHZW5lcmFsaXphdGlvbiByZWxhdGlvbnNoaXBzIHRoYXQgZGVzY3JpYmUgdGhlIHdheSBpbiB3aGljaCBhIHNwZWNpZmljIENsYXNzaWZpZXIgIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChtb2RlbEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiVGhlIE1vZGVsIGNvbnN0cnVjdCBpcyBkZWZpbmVkIGFzIGEgUGFja2FnZS4gSXQgY29udGFpbnMgYSAoaGllcmFyY2hpY2FsKSBzZXQgb2YgZWxlbWVudHMgdGhhdCB0b2dldGhlciBkZXNjcmliZSB0aGUgcGh5c2ljYWwgc3lzdGVtIGJlaW5nIG1vZGVsZWQuIEEgTW9kZWwgbWF5IGFsc28gY29udGFpbiBhIHNldCBvZiBlbGVtZW50cyB0aGF0IHJlcHJlc2VudHMgdGhlIGVudmlyb25tZW50IG9mIHRoZSBzeXN0ZW0sIHR5cGljYWxseSBBY3RvcnMsIHRvZ2V0aGVyIHdpdGggdGhlaXIgaW50ZXJyZWxhdGlvbnNoaXBzLCBzdWNoIGFzIEFzc29jaWF0aW9ucyBhbmQgRGVwZW5kZW5jaWVzICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoYXNzb2NpYXRpb25DbGFzc0VDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiSW4gdGhlIG1ldGFtb2RlbCwgYW4gQXNzb2NpYXRpb25DbGFzcyBpcyBhIGRlY2xhcmF0aW9uIG9mIGEgc2VtYW50aWMgcmVsYXRpb25zaGlwIGJldHdlZW4gQ2xhc3NpZmllcnMsIHdoaWNoIGhhcyBhIHNldCBvZiBmZWF0dXJlcyBvZiBpdHMgb3duLiBBc3NvY2lhdGlvbkNsYXNzIGlzIGJvdGggYW4gQXNzb2NpYXRpb24gYW5kIGEgQ2xhc3MuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAocGVybWlzc2lvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBQZXJtaXNzaW9uIHNpZ25pZmllcyBncmFudGluZyBvZiBhY2Nlc3MgcmlnaHRzIGZyb20gdGhlIHN1cHBsaWVyIG1vZGVsIGVsZW1lbnQgdG8gYSBjbGllbnQgbW9kZWwgZWxlbWVudC4gT3IgdG8gcHV0IGl0IGFub3RoZXIgd2F5LCBpdCBzaWduaWZpZXMgdGhhdCB0aGUgY2xpZW50IHJlcXVpcmVzIGFjY2VzcyB0byBzb21lIG9yIGFsbCBvZiB0aGUgY29uc3RpdHVlbnQgZWxlbWVudHMgb2YgdGhlIHN1cHBsaWVyLiBUaGUgc3VwcGxpZXIgZWxlbWVudCBnaXZlcyB0aGUgY2xpZW50IHBlcm1pc3Npb24gdG8gYWNjZXNzIHNvbWUgb3IgYWxsIG9mIGl0cyBjb25zdGl0dWVudHMgZWxlbWVudHMuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZGVwZW5kZW5jeUVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBkZXBlbmRlbmN5IGlzIGEgcmVsYXRpb25zaGlwIHRoYXQgc2lnbmlmaWVzIHRoYXQgYSBzaW5nbGUgb3IgYSBzZXQgb2YgbW9kZWwgZWxlbWVudHMgcmVxdWlyZXMgb3RoZXIgbW9kZWwgZWxlbWVudHMgZm9yIHRoZWlyIHNwZWNpZmljYXRpb24gb3IgaW1wbGVtZW50YXRpb24uIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29tcGxldGUgc2VtYW50aWNzIG9mIHRoZSBkZXBlbmRpbmcgZWxlbWVudHMgaXMgZWl0aGVyIHNlbWFudGljYWxseSBvciBzdHJ1Y3R1cmFsbHkgZGVwZW5kZW50IG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzdXBwbGllciBlbGVtZW50KHMpLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHVzYWdlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHVzYWdlIGlzIGEgcmVsYXRpb25zaGlwIGluIHdoaWNoIG9uZSBlbGVtZW50IHJlcXVpcmVzIGFub3RoZXIgZWxlbWVudCAob3Igc2V0IG9mIGVsZW1lbnRzKSBmb3IgaXRzIGZ1bGwgaW1wbGVtZW50YXRpb24gb3Igb3BlcmF0aW9uLiBJbiB0aGUgbWV0YW1vZGVsLCBhIFVzYWdlIGlzIGEgRGVwZW5kZW5jeSBpbiB3aGljaCB0aGUgY2xpZW50IHJlcXVpcmVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgc3VwcGxpZXIuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoYWJzdHJhY3Rpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIGFic3RyYWN0aW9uIGlzIGEgcmVsYXRpb25zaGlwIHRoYXQgcmVsYXRlcyB0d28gZWxlbWVudHMgb3Igc2V0cyBvZiBlbGVtZW50cyB0aGF0IHJlcHJlc2VudCB0aGUgc2FtZSBjb25jZXB0IGF0IGRpZmZlcmVudCBsZXZlbHMgb2YgYWJzdHJhY3Rpb24gb3IgZnJvbSBkaWZmZXJlbnQgdmlld3BvaW50cy4gKFNlZSBhbHNvLCB0aGUgZGVmaW5pdGlvbiBvZiBhYnN0cmF0aW9uIGluIHRoZSBHbG9zc2FyeS4pIEluIHRoZSBtZXRhbW9kZWwsIGFuIEFic3RyYWN0aW9uIGlzIGEgRGVwZW5kZW5jeSBpbiB3aGljaCB0aGVyZSBpcyBhIG1hcHBpbmcgYmV0d2VlbiB0aGUgc3VwcGxpZXIgYW5kIHRoZSBjbGllbnQuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAocmVhbGl6YXRpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkluIHRoZSBtZXRhbW9kZWwsIGEgUmVhbGl6YXRpb24gaXMgYSBzdWJ0eXBlIG9mIERlcGVuZGVuY2llczo6UmVhbGl6YXRpb24uICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoc3Vic3RpdHV0aW9uRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHN1YnN0aXR1dGlvbiBpcyBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBjbGFzc2lmaWVycyBzaWduaWZpZXMgdGhhdCB0aGUgc3Vic3RpdHV0aW5nQ2xhc3NpZmllciBjb21wbGllcyB3aXRoIHRoZSBjb250cmFjdCBzcGVjaWZpZWQgYnkgdGhlIGNvbnRyYWN0IGNsYXNzaWZpZXIuIFRoaXMgaW1wbGllcyB0aGF0IGluc3RhbmNlcyBvZiB0aGUgc3Vic3RpdHV0aW5nQ2xhc3NpZmllciBhcmUgcnVudGltZSBzdWJzdGl0dXRhYmxlIHdoZXJlIGluc3RhbmNlcyBvZiB0aGUgY29udHJhY3QgY2xhc3NpZmllciBhcmUgZXhwZWN0ZWQuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGNvbm5lY3RvckVuZEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBjb25uZWN0b3IgZW5kIGlzIGFuIGVuZHBvaW50IG9mIGEgY29ubmVjdG9yLCB3aGljaCBhdHRhY2hlcyB0aGUgY29ubmVjdG9yIHRvIGEgY29ubmVjdGFibGUgZWxlbWVudC4gRWFjaCBjb25uZWN0b3IgZW5kIGlzIHBhcnQgb2Ygb25lIGNvbm5lY3Rvci4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChjb25uZWN0YWJsZUVsZW1lbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgQ29ubmVjdGFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcyByZXByZXNlbnRpbmcgYSBzZXQgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIG93bmVkIGJ5IGEgY29udGFpbmluZyBjbGFzc2lmaWVyIGluc3RhbmNlLiBDb25uZWN0YWJsZSBlbGVtZW50cyBtYXkgYmUgam9pbmVkIGJ5IGF0dGFjaGVkIGNvbm5lY3RvcnMgYW5kIHNwZWNpZnkgY29uZmlndXJhdGlvbnMgb2YgbGlua2VkIGluc3RhbmNlcyB0byBiZSBjcmVhdGVkIHdpdGhpbiBhbiBpbnN0YW5jZSBvZiB0aGUgY29udGFpbmluZyBjbGFzc2lmaWVyLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGNvbm5lY3RvckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiRWFjaCBjb25uZWN0b3IgbWF5IGJlIGF0dGFjaGVkIHRvIHR3byBvciBtb3JlIGNvbm5lY3RhYmxlIGVsZW1lbnRzLCBlYWNoIHJlcHJlc2VudGluZyBhIHNldCBvZiBpbnN0YW5jZXMuIEVhY2ggY29ubmVjdG9yIGVuZCAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHN0cnVjdHVyZWRDbGFzc2lmaWVyRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHN0cnVjdHVyZWQgY2xhc3NpZmllciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MgdGhhdCByZXByZXNlbnRzIGFueSBjbGFzc2lmaWVyIHdob3NlIGJlaGF2aW9yIGNhbiBiZSBmdWxseSBvciBwYXJ0bHkgZGVzY3JpYmVkIGJ5IHRoZSBjb2xsYWJvcmF0aW9uIG9mIG93bmVkIG9yIHJlZmVyZW5jZWQgaW5zdGFuY2VzLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGludGVyZmFjZUVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gaW50ZXJmYWNlIGlzIGEga2luZCBvZiBjbGFzc2lmaWVyIHRoYXQgcmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIG9mIGEgc2V0IG9mIGNvaGVyZW50IHB1YmxpYyBmZWF0dXJlcyBhbmQgb2JsaWdhdGlvbnMuIEluIGEgc2Vuc2UsICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChpbXBsZW1lbnRhdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gSW1wbGVtZW50YXRpb24gaXMgYSBzcGVjaWFsaXplZCBSZWFsaXphdGlvbiByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIENsYXNzaWZpZXIgYW5kIGFuIEludGVyZmFjZS4gVGhlIGltcGxlbWVudGF0aW9uIHJlbGF0aW9uc2hpcCBzaWduaWZpZXMgdGhhdCB0aGUgcmVhbGl6aW5nIGNsYXNzaWZpZXIgY29uZm9ybXMgdG8gdGhlIGNvbnRyYWN0IHNwZWNpZmllZCBieSB0aGUgaW50ZXJmYWNlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChhY3RvckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQW4gQWN0b3IgbW9kZWxzIGEgdHlwZSBvZiByb2xlIHBsYXllZCBieSBhbiBlbnRpdHkgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3ViamVjdCAoZS5nLiwgYnkgZXhjaGFuZ2luZyBzaWduYWxzIGFuZCBkYXRhKSwgIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChleHRlbmRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIlRoaXMgcmVsYXRpb25zaGlwIHNwZWNpZmllcyB0aGF0IHRoZSBiZWhhdmlvciBvZiBhIHVzZSBjYXNlIG1heSBiZSBleHRlbmRlZCBieSB0aGUgYmVoYXZpb3Igb2YgYW5vdGhlciAodXN1YWxseSBzdXBwbGVtZW50YXJ5KSB1c2UgY2FzZS4gVGhlIGV4dGVuc2lvbiB0YWtlcyBwbGFjZSBhdCBvbmUgb3IgbW9yZSBzcGVjaWZpYyBleHRlbnNpb24gcG9pbnRzIGRlZmluZWQgaW4gdGhlIGV4dGVuZGVkIHVzZSBjYXNlLiBOb3RlLCBob3dldmVyLCB0aGF0IHRoZSBleHRlbmRlZCB1c2UgY2FzZSBpcyBkZWZpbmVkIGluZGVwZW5kZW50bHkgb2YgdGhlIGV4dGVuZGluZyB1c2UgY2FzZSBhbmQgaXMgbWVhbmluZ2Z1bCBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbmRpbmcgdXNlIGNhc2UuIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgZXh0ZW5kaW5nIHVzZSBjYXNlIHR5cGljYWxseSBkZWZpbmVzIGJlaGF2aW9yIHRoYXQgbWF5IG5vdCBuZWNlc3NhcmlseSBiZSBtZWFuaW5nZnVsIGJ5IGl0c2VsZi4gSW5zdGVhZCwgdGhlIGV4dGVuZGluZyB1c2UgY2FzZSBkZWZpbmVzIGEgc2V0IG9mIG1vZHVsYXIgYmVoYXZpb3IgaW5jcmVtZW50cyB0aGF0IGF1Z21lbnQgYW4gZXhlY3V0aW9uIG9mIHRoZSBleHRlbmRlZCB1c2UgY2FzZSB1bmRlciBzcGVjaWZpYyBjb25kaXRpb25zLiBOb3RlIHRoYXQgdGhlIHNhbWUgZXh0ZW5kaW5nIHVzZSBjYXNlIGNhbiBleHRlbmQgbW9yZSB0aGFuIG9uZSB1c2UgY2FzZS4gRnVydGhlcm1vcmUsIGFuIGV4dGVuZGluZyB1c2UgY2FzZSBtYXkgaXRzZWxmIGJlIGV4dGVuZGVkLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHVzZUNhc2VFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgVXNlQ2FzZSBpcyBhIGtpbmQgb2YgYmVoYXZpb3JlZCBjbGFzc2lmaWVyIHRoYXQgcmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIG9mIGFuIG9mZmVyZWQgYmVoYXZpb3IuIEVhY2ggdXNlIGNhc2Ugc3BlY2lmaWVzIHNvbWUgYmVoYXZpb3IsIHBvc3NpYmx5IGluY2x1ZGluZyB2YXJpYW50cywgdGhhdCB0aGUgc3ViamVjdCBjYW4gcGVyZm9ybSBpbiBjb2xsYWJvcmF0aW9uIHdpdGggb25lIG9yIG1vcmUgYWN0b3JzLiBVc2UgY2FzZXMgZGVmaW5lIHRoZSBvZmZlcmVkIGJlaGF2aW9yIG9mIHRoZSBzdWJqZWN0IHdpdGhvdXQgcmVmZXJlbmNlIHRvIGl0cyBpbnRlcm5hbCBzdHJ1Y3R1cmUuIFRoZXNlIGJlaGF2aW9ycywgaW52b2x2aW5nIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBhY3RvciBhbmQgdGhlIHN1YmplY3QsIG1heSByZXN1bHQgaW4gY2hhbmdlcyB0byB0aGUgc3RhdGUgb2YgdGhlIHN1YmplY3QgYW5kIGNvbW11bmljYXRpb25zIHdpdGggaXRzIGVudmlyb25tZW50LiBBIHVzZSBjYXNlIGNhbiBpbmNsdWRlIHBvc3NpYmxlIHZhcmlhdGlvbnMgb2YgaXRzIGJhc2ljIGJlaGF2aW9yLCBpbmNsdWRpbmcgZXhjZXB0aW9uYWwgYmVoYXZpb3IgYW5kIGVycm9yIGhhbmRsaW5nLiBUaGUgc3ViamVjdCBvZiBhIHVzZSBjYXNlIGNvdWxkIGJlIGEgcGh5c2ljYWwgc3lzdGVtIG9yIGFueSBvdGhlciBlbGVtZW50IHRoYXQgbWF5IGhhdmUgYmVoYXZpb3IsIHN1Y2ggYXMgYSBjb21wb25lbnQsIHN1YnN5c3RlbSBvciBjbGFzcy4gRWFjaCB1c2UgY2FzZSBzcGVjaWZpZXMgYSB1bml0IG9mIHVzZWZ1bCBmdW5jdGlvbmFsaXR5IHRoYXQgdGhlIHN1YmplY3QgcHJvdmlkZXMgdG8gaXRzIHVzZXJzLCBpLmUuLCBhIHNwZWNpZmljIHdheSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdWJqZWN0LiBUaGlzIGZ1bmN0aW9uYWxpdHksIHdoaWNoIGlzIGluaXRpYXRlZCBieSBhbiBhY3RvciwgbXVzdCBhbHdheXMgYmUgY29tcGxldGVkIGZvciB0aGUgdXNlIGNhc2UgdG8gY29tcGxldGUuIEl0IGlzIGRlZW1lZCBjb21wbGV0ZSBpZiwgYWZ0ZXIgaXRzIGV4ZWN1dGlvbiwgdGhlIHN1YmplY3Qgd2lsbCBiZSBpbiBhIHN0YXRlIGluIHdoaWNoIG5vIGZ1cnRoZXIgaW5wdXRzIG9yIGFjdGlvbnMgYXJlIGV4cGVjdGVkIGFuZCB0aGUgdXNlIGNhc2UgY2FuIGJlIGluaXRpYXRlZCBhZ2FpbiBvciBpbiBhbiBlcnJvciBzdGF0ZS4gVXNlIGNhc2VzIGNhbiBiZSB1c2VkIGJvdGggZm9yIHNwZWNpZmljYXRpb24gb2YgdGhlIChleHRlcm5hbCkgcmVxdWlyZW1lbnRzIG9uIGEgc3ViamVjdCBhbmQgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IG9mZmVyZWQgYnkgYSBzdWJqZWN0LiBNb3Jlb3ZlciwgdGhlIHVzZSBjYXNlcyBhbHNvIHN0YXRlIHRoZSByZXF1aXJlbWVudHMgdGhlIHNwZWNpZmllZCBzdWJqZWN0IHBvc2VzIG9uIGl0cyBlbnZpcm9ubWVudCBieSBkZWZpbmluZyBob3cgdGhleSBzaG91bGQgaW50ZXJhY3Qgd2l0aCB0aGUgc3ViamVjdCBzbyB0aGF0IGl0IHdpbGwgYmUgYWJsZSB0byBwZXJmb3JtIGl0cyBzZXJ2aWNlcy4gVGhlIGJlaGF2aW9yIG9mIGEgdXNlIGNhc2UgY2FuIGJlIGRlc2NyaWJlZCBieSBhIHNwZWNpZmljYXRpb24gdGhhdCBpcyBzb21lIGtpbmQgb2YgQmVoYXZpb3IgKHRocm91Z2ggaXRzIG93bmVkQmVoYXZpb3IgcmVsYXRpb25zaGlwKSwgc3VjaCBhcyBpbnRlcmFjdGlvbnMsIGFjdGl2aXRpZXMsIGFuZCBzdGF0ZSBtYWNoaW5lcywgb3IgYnkgcHJlLWNvbmRpdGlvbnMgYW5kIHBvc3QtY29uZGl0aW9ucyBhcyB3ZWxsIGFzIGJ5IG5hdHVyYWwgbGFuZ3VhZ2UgdGV4dCB3aGVyZSBhcHByb3ByaWF0ZS4gSXQgbWF5IGFsc28gYmUgZGVzY3JpYmVkIGluZGlyZWN0bHkgdGhyb3VnaCBhIENvbGxhYm9yYXRpb24gdGhhdCB1c2VzIHRoZSB1c2UgY2FzZSBhbmQgaXRzIGFjdG9ycyBhcyB0aGUgY2xhc3NpZmllcnMgdGhhdCB0eXBlIGl0cyBwYXJ0cy4gV2hpY2ggb2YgdGhlc2UgdGVjaG5pcXVlcyB0byB1c2UgZGVwZW5kcyBvbiB0aGUgbmF0dXJlIG9mIHRoZSB1c2UgY2FzZSBiZWhhdmlvciBhcyB3ZWxsIGFzIG9uIHRoZSBpbnRlbmRlZCByZWFkZXIuIFRoZXNlIGRlc2NyaXB0aW9ucyBjYW4gYmUgY29tYmluZWQuIEFuIGV4YW1wbGUgb2YgYSB1c2UgY2FzZSB3aXRoIGFuIGFzc29jaWF0ZWQgc3RhdGUgbWFjaGluZSBkZXNjcmlwdGlvbiBpcyBzaG93biBpbiBGaWd1cmUgNDA1LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZXh0ZW5zaW9uUG9pbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIEV4dGVuc2lvblBvaW50IGlzIGEgZmVhdHVyZSBvZiBhIHVzZSBjYXNlIHRoYXQgaWRlbnRpZmllcyBhIHBvaW50IHdoZXJlIHRoZSBiZWhhdmlvciBvZiBhIHVzZSBjYXNlIGNhbiBiZSBhdWdtZW50ZWQgd2l0aCBlbGVtZW50cyBvZiBhbm90aGVyIChleHRlbmRpbmcpIHVzZSBjYXNlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY2FsbENvbmN1cnJlbmN5S2luZEVFbnVtLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJDYWxsQ29uY3VycmVuY3lLaW5kIGlzIGFuIGVudW1lcmF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBsaXRlcmFsczogXHUyMDIyIHNlcXVlbnRpYWwgTm8gY29uY3VycmVuY3kgbWFuYWdlbWVudCBtZWNoYW5pc20gaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVyYXRpb24gYW5kLCB0aGVyZWZvcmUsIGNvbmN1cnJlbmN5IGNvbmZsaWN0cyBtYXkgb2NjdXIuIEluc3RhbmNlcyB0aGF0IGludm9rZSBhIGJlaGF2aW9yYWwgZmVhdHVyZSBuZWVkIHRvIGNvb3JkaW5hdGUgc28gdGhhdCBvbmx5IG9uZSBpbnZvY2F0aW9uIHRvIGEgdGFyZ2V0IG9uIGFueSBiZWhhdmlvcmFsIGZlYXR1cmUgb2NjdXJzIGF0IG9uY2UuIFx1MjAyMiBndWFyZGVkIE11bHRpcGxlIGludm9jYXRpb25zIG9mIGEgYmVoYXZpb3JhbCBmZWF0dXJlIG1heSBvY2N1ciBzaW11bHRhbmVvdXNseSB0byBvbmUgaW5zdGFuY2UsIGJ1dCBvbmx5IG9uZSBpcyBhbGxvd2VkIHRvIGNvbW1lbmNlLiBUaGUgb3RoZXJzIGFyZSBibG9ja2VkIHVudGlsIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgZmlyc3QgYmVoYXZpb3JhbCBmZWF0dXJlIGlzIGNvbXBsZXRlLiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHN5c3RlbSBkZXNpZ25lciB0byBlbnN1cmUgdGhhdCBkZWFkbG9ja3MgZG8gbm90IG9jY3VyIGR1ZSB0byBzaW11bHRhbmVvdXMgYmxvY2tzLiBcdTIwMjIgY29uY3VycmVudCBNdWx0aXBsZSBpbnZvY2F0aW9ucyBvZiBhIGJlaGF2aW9yYWwgZmVhdHVyZSBtYXkgb2NjdXIgc2ltdWx0YW5lb3VzbHkgdG8gb25lIGluc3RhbmNlIGFuZCBhbGwgb2YgdGhlbSBtYXkgcHJvY2VlZCBjb25jdXJyZW50bHkuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAobWVzc2FnZVRyaWdnZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgbWVzc2FnZSB0cmlnZ2VyIHNwZWNpZmllcyB0aGUgYW4gb2JzZXJ2YWJsZSBldmVudCBjYXVzZWQgYnkgYSBlaXRoZXIgYSBjYWxsIG9yIGEgc2lnbmFsLiBNZXNzYWdlVHJpZ2dlciBpcyBhbiBhYnN0cmFjdCBtZXRhY2xhc3MuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY2hhbmdlVHJpZ2dlckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBjaGFuZ2UgdHJpZ2dlciBzcGVjaWZpZXMgYW4gZXZlbnQgdGhhdCBvY2N1cnMgd2hlbiBhIEJvb2xlYW4tdmFsdWVkIGV4cHJlc3Npb24gYmVjb21lcyB0cnVlIGFzIGEgcmVzdWx0IG9mIGEgY2hhbmdlIGluICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAodHJpZ2dlckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSB0cmlnZ2VyIHNwZWNpZmllcyB0aGUgYW4gZXZlbnQgdGhhdCBtYXkgY2F1c2UgdGhlIGV4ZWN1dGlvbiBvZiBhbiBhc3NvY2lhdGVkIGJlaGF2aW9yLiBBbiBldmVudCBpcyBvZnRlbiB1bHRpbWF0ZWx5IGNhdXNlZCBieSB0aGUgZXhlY3V0aW9uIG9mIGFuIGFjdGlvbiwgYnV0IG5lZWQgbm90IGJlLiBUcmlnZ2VyIGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChyZWNlcHRpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcmVjZXB0aW9uIGlzIGEgZGVjbGFyYXRpb24gc3RhdGluZyB0aGF0IGEgY2xhc3NpZmllciBpcyBwcmVwYXJlZCB0byByZWFjdCB0byB0aGUgcmVjZWlwdCBvZiBhIHNpZ25hbC4gQSByZWNlcHRpb24gZGVzaWduYXRlcyBhIHNpZ25hbCBhbmQgc3BlY2lmaWVzIHRoZSBleHBlY3RlZCBiZWhhdmlvcmFsIHJlc3BvbnNlLiBUaGUgZGV0YWlscyBvZiBoYW5kbGluZyBhIHNpZ25hbCBhcmUgc3BlY2lmaWVkIGJ5IHRoZSBiZWhhdmlvciBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY2VwdGlvbiBvciB0aGUgY2xhc3NpZmllciBpdHNlbGYuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoc2lnbmFsRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHNpZ25hbCBpcyBhIHNwZWNpZmljYXRpb24gb2YgdHlwZSBvZiBzZW5kIHJlcXVlc3QgaW5zdGFuY2VzIGNvbW11bmljYXRlZCBiZXR3ZWVuIG9iamVjdHMuIFRoZSByZWNlaXZpbmcgb2JqZWN0IGhhbmRsZXMgdGhlIHNpZ25hbCBpbnN0YW5jZSBhcyBzcGVjaWZpZWQgYnkgaXRzIHJlY2VwdGlvbnMuIFRoZSBkYXRhIGNhcnJpZWQgYnkgYSBzZW5kIHJlcXVlc3QgYW5kIHBhc3NlZCB0byBpdCBieSB0aGUgb2NjdXJyZW5jZSBvZiB0aGUgc2VuZCBpbnZvY2F0aW9uIGV2ZW50IHRoYXQgY2F1c2VkIHRoZSByZXF1ZXN0IGlzIHJlcHJlc2VudGVkIGFzIGF0dHJpYnV0ZXMgb2YgdGhlIHNpZ25hbCBpbnN0YW5jZS4gQSBzaWduYWwgaXMgZGVmaW5lZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjbGFzc2lmaWVycyBoYW5kbGluZyB0aGUgc2lnbmFsLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAodGltZVRyaWdnZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgdGltZSB0cmlnZ2VyIHNwZWNpZmllcyBhIHRpbWUgZXZlbnQsIHdoaWNoIG1vZGVscyB0aGUgZXhwaXJhdGlvbiBvZiBhIHNwZWNpZmljIGRlYWRsaW5lLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGFueVRyaWdnZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkFuIEFueVRyaWdnZXIgZm9yIGEgZ2l2ZW4gc3RhdGUgc3BlY2lmaWVzIHRoYXQgdGhlIHRyYW5zaXRpb24gaXMgdHJpZ2dlcmVkIGZvciBhbGwgYXBwbGljYWJsZSBtZXNzYWdlIHRyaWdnZXJzIGV4Y2VwdCBmb3IgdGhvc2Ugc3BlY2lmaWVkIGV4cGxpY2l0bHkgb24gb3RoZXIgdHJhbnNpdGlvbnMgZm9yIHRoaXMgc3RhdGUuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY29sbGFib3JhdGlvbk9jY3VycmVuY2VFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgY29sbGFib3JhdGlvbiBvY2N1cnJlbmNlIHJlcHJlc2VudHMgb25lIHBhcnRpY3VsYXIgdXNlIG9mIGEgY29sbGFib3JhdGlvbiB0byBleHBsYWluIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIHByb3BlcnRpZXMgb2YgYSBjbGFzc2lmaWVyLiBBIGNvbGxhYm9yYXRpb24gb2NjdXJyZW5jZSBpbmRpY2F0ZXMgYSBzZXQgb2Ygcm9sZXMgYW5kIGNvbm5lY3RvcnMgdGhhdCBjb29wZXJhdGUgd2l0aGluIHRoZSBjbGFzc2lmaWVyIGFjY29yZGluZyB0byBhIGdpdmVuIGNvbGxhYm9yYXRpb24sIGluZGljYXRlZCBieSB0aGUgdHlwZSBvZiB0aGUgY29sbGFib3JhdGlvbiBvY2N1cnJlbmNlLiBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgYSBnaXZlbiBjb2xsYWJvcmF0aW9uIHdpdGhpbiBhIGNsYXNzaWZpZXIsIGVhY2ggaW52b2x2aW5nIGEgZGlmZmVyZW50IHNldCBvZiByb2xlcyBhbmQgY29ubmVjdG9ycy4gQSBnaXZlbiByb2xlIG9yIGNvbm5lY3RvciBtYXkgYmUgaW52b2x2ZWQgaW4gbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdGhlIHNhbWUgb3IgZGlmZmVyZW50IGNvbGxhYm9yYXRpb25zLiBBc3NvY2lhdGVkIGRlcGVuZGVuY2llcyBtYXAgZmVhdHVyZXMgb2YgdGhlIGNvbGxhYm9yYXRpb24gdHlwZSB0byBmZWF0dXJlcyBpbiB0aGUgY2xhc3NpZmllci4gVGhlc2UgZGVwZW5kZW5jaWVzIGluZGljYXRlIHdoaWNoIHJvbGUgaW4gdGhlIGNsYXNzaWZpZXIgcGxheXMgd2hpY2ggcm9sZSBpbiB0aGUgY29sbGFib3JhdGlvbi4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChjb2xsYWJvcmF0aW9uRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIGNvbGxhYm9yYXRpb24gaXMgcmVwcmVzZW50ZWQgYXMgYSBraW5kIG9mIGNsYXNzaWZpZXIgYW5kIGRlZmluZXMgYSBzZXQgb2YgY29vcGVyYXRpbmcgZW50aXRpZXMgdG8gYmUgcGxheWVkIGJ5IGluc3RhbmNlcyAoaXRzIHJvbGVzKSwgYXMgd2VsbCBhcyBhIHNldCBvZiBjb25uZWN0b3JzIHRoYXQgZGVmaW5lIGNvbW11bmljYXRpb24gcGF0aHMgYmV0d2VlbiB0aGUgcGFydGljaXBhdGluZyBpbnN0YW5jZXMuIFRoZSBjb29wZXJhdGluZyBlbnRpdGllcyBhcmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNvbGxhYm9yYXRpb24gKHNlZSBcdTIwMWNQcm9wZXJ0eVx1MjAxZCBvbiBwYWdlIDE2MSkuIEEgY29sbGFib3JhdGlvbiBzcGVjaWZpZXMgYSB2aWV3IChvciBwcm9qZWN0aW9uKSBvZiBhIHNldCBvZiBjb29wZXJhdGluZyBjbGFzc2lmaWVycy4gSXQgZGVzY3JpYmVzIHRoZSByZXF1aXJlZCBsaW5rcyBiZXR3ZWVuIGluc3RhbmNlcyB0aGF0IHBsYXkgdGhlIHJvbGVzIG9mIHRoZSBjb2xsYWJvcmF0aW9uLCBhcyB3ZWxsIGFzIHRoZSBmZWF0dXJlcyByZXF1aXJlZCBvZiB0aGUgY2xhc3NpZmllcnMgdGhhdCBzcGVjaWZ5IHRoZSBwYXJ0aWNpcGF0aW5nIGluc3RhbmNlcy4gU2V2ZXJhbCBjb2xsYWJvcmF0aW9ucyBtYXkgZGVzY3JpYmUgZGlmZmVyZW50IHByb2plY3Rpb25zIG9mIHRoZSBzYW1lIHNldCBvZiBjbGFzc2lmaWVycy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChwb3J0RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJQb3J0cyByZXByZXNlbnQgaW50ZXJhY3Rpb24gcG9pbnRzIGJldHdlZW4gYSBjbGFzc2lmaWVyIGFuZCBpdHMgZW52aXJvbm1lbnQuIFRoZSBpbnRlcmZhY2VzIGFzc29jaWF0ZWQgd2l0aCBhIHBvcnQgc3BlY2lmeSB0aGUgbmF0dXJlIG9mIHRoZSBpbnRlcmFjdGlvbnMgdGhhdCBtYXkgb2NjdXIgb3ZlciBhIHBvcnQuIFRoZSByZXF1aXJlZCBpbnRlcmZhY2VzIG9mIGEgcG9ydCBjaGFyYWN0ZXJpemUgdGhlIHJlcXVlc3RzIHdoaWNoIG1heSBiZSBtYWRlIGZyb20gdGhlIGNsYXNzaWZpZXIgdG8gaXRzIGVudmlyb25tZW50IHRocm91Z2ggdGhpcyBwb3J0LiBUaGUgcHJvdmlkZWQgaW50ZXJmYWNlcyBvZiBhIHBvcnQgY2hhcmFjdGVyaXplIHJlcXVlc3RzIHRvIHRoZSBjbGFzc2lmaWVyIHRoYXQgaXRzIGVudmlyb25tZW50IG1heSBtYWtlIHRocm91Z2ggdGhpcyBwb3J0LiBBIHBvcnQgaGFzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgdGhhdCBhbnkgcmVxdWVzdHMgYXJyaXZpbmcgYXQgdGhpcyBwb3J0IGFyZSBoYW5kbGVkIGJ5IHRoZSBiZWhhdmlvciBvZiB0aGUgaW5zdGFuY2Ugb2YgdGhlIG93bmluZyBjbGFzc2lmaWVyLCByYXRoZXIgdGhhbiBiZWluZyBmb3J3YXJkZWQgdG8gYW55IGNvbnRhaW5lZCBpbnN0YW5jZXMsIGlmIGFueS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChlbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJFeHRlbmRzIGEgY2xhc3NpZmllciB3aXRoIHRoZSBhYmlsaXR5IHRvIG93biBwb3J0cyBhcyBzcGVjaWZpYyBhbmQgdHlwZSBjaGVja2VkIGludGVyYWN0aW9uIHBvaW50cy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHZhcmlhYmxlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIHZhcmlhYmxlIGlzIGNvbnNpZGVyZWQgYSBjb25uZWN0YWJsZSBlbGVtZW50LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICh0ZW1wbGF0ZVNpZ25hdHVyZUVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBUZW1wbGF0ZVNpZ25hdHVyZSBpcyBvd25lZCBieSBhIFRlbXBsYXRlYWJsZUVsZW1lbnQgYW5kIGhhcyBvbmUgb3IgbW9yZSBUZW1wbGF0ZVBhcmFtZXRlcnMgdGhhdCBkZWZpbmUgdGhlIHNpZ25hdHVyZSBmb3IgYmluZGluZyB0aGlzIHRlbXBsYXRlLiBBIFRlbXBsYXRlU2lnbmF0dXJlIG1heSByZWZlcmVuY2UgYSBzZXQgb2YgbmVzdGVkIHRlbXBsYXRlIHNpZ25hdHVyZXMgdG8gcmVmbGVjdCB0aGUgaGllcmFyY2hpY2FsIG5hdHVyZSBvZiBhIHRlbXBsYXRlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICh0ZW1wbGF0ZVBhcmFtZXRlckVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiVGVtcGxhdGVQYXJhbWV0ZXIgcmVmZXJlbmNlcyBhIFBhcmFtZXRlcmFibGVFbGVtZW50IHdoaWNoIGlzIGV4cG9zZWQgYXMgYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIGluIHRoZSBjb250YWluaW5nIHRlbXBsYXRlLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHRlbXBsYXRlYWJsZUVsZW1lbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIlRlbXBsYXRlYWJsZUVsZW1lbnQgbWF5IGNvbnRhaW4gYSB0ZW1wbGF0ZSBzaWduYXR1cmUgd2hpY2ggc3BlY2lmaWVzIHRoZSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVycy4gQSBUZW1wbGF0ZWFibGVFbGVtZW50IHRoYXQgY29udGFpbnMgYSB0ZW1wbGF0ZSBzaWduYXR1cmUgaXMgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSB0ZW1wbGF0ZS4gVGVtcGxhdGVhYmxlRWxlbWVudCBtYXkgY29udGFpbiBiaW5kaW5ncyB0byB0ZW1wbGF0ZXMgdGhhdCBkZXNjcmliZSBob3cgdGhlIHRlbXBsYXRlYWJsZSBlbGVtZW50IGlzIGNvbnN0cnVjdGVkIGJ5IHJlcGxhY2luZyB0aGUgZm9ybWFsIHRlbXBsYXRlIHBhcmFtZXRlcnMgd2l0aCBhY3R1YWwgcGFyYW1ldGVycy4gQSBUZW1wbGF0ZWFibGVFbGVtZW50IGNvbnRhaW5pbmcgYmluZGluZ3MgaXMgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSBib3VuZCBlbGVtZW50LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlYWJsZUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJib2R5IiwgInRyeSB7XHJcblx0amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIG1ldGhvZCA9IGdldENsYXNzKCkuZ2V0TWV0aG9kKFwicGFyYW1ldGVyYWJsZUVsZW1lbnRzXCIsIG51bGwpOyAvLyROT04tTkxTLTEkXHJcblx0U2V0IHJlc3VsdCA9IChTZXQpIGdldENhY2hlQWRhcHRlcigpLmdldCh0aGlzLCBtZXRob2QpO1xyXG5cclxuXHRpZiAobnVsbCA9PSByZXN1bHQpIHtcclxuXHRcdHJlc3VsdCA9IGphdmEudXRpbC5Db2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQob3JnLmVjbGlwc2UudW1sMi5pbnRlcm5hbC5vcGVyYXRpb24uVGVtcGxhdGVhYmxlRWxlbWVudE9wZXJhdGlvbnMucGFyYW1ldGVyYWJsZUVsZW1lbnRzKHRoaXMpKTtcclxuXHRcdGdldENhY2hlQWRhcHRlcigpLnB1dCh0aGlzLCBtZXRob2QsIHJlc3VsdCk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59IGNhdGNoIChFeGNlcHRpb24gZSkge1xyXG5cdHJldHVybiBvcmcuZWNsaXBzZS51bWwyLmludGVybmFsLm9wZXJhdGlvbi5UZW1wbGF0ZWFibGVFbGVtZW50T3BlcmF0aW9ucy5wYXJhbWV0ZXJhYmxlRWxlbWVudHModGhpcyk7XHJcbn0iIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJCAvLyROT04tTkxTLTMkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChwYXJhbWV0ZXJhYmxlRWxlbWVudEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBQYXJhbWV0ZXJhYmxlRWxlbWVudCBjYW4gYmUgcmVmZXJlbmNlZCBieSBhIFRlbXBsYXRlUGFyYW1ldGVyIHdoZW4gZGVmaW5pbmcgYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIGZvciBhIHRlbXBsYXRlLiBBIFBhcmFtZXRlcmFibGVFbGVtZW50IGNhbiBiZSByZWZlcmVuY2VkIGJ5IGEgVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24gd2hlbiB1c2VkIGFzIGFuIGFjdHVhbCBwYXJhbWV0ZXIgaW4gYSBiaW5kaW5nIG9mIGEgdGVtcGxhdGUuIFBhcmFtZXRlcmFibGVFbGVtZW50IGlzIGFuIGFic3RyYWN0IG1ldGFjbGFzcy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAodGVtcGxhdGVCaW5kaW5nRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJUZW1wbGF0ZUJpbmRpbmcgaXMgYSBkaXJlY3RlZCByZWxhdGlvbnNoaXAgZnJvbSBhIGJvdW5kIHRlbXBsYXRlYWJsZSBlbGVtZW50IHRvIHRoZSB0ZW1wbGF0ZSBzaWduYXR1cmUgb2YgdGhlIHRhcmdldCB0ZW1wbGF0ZS4gQSBUZW1wbGF0ZUJpbmRpbmcgb3ducyBhIHNldCBvZiB0ZW1wbGF0ZSBwYXJhbWV0ZXIgc3Vic3RpdHV0aW9ucy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbiBhc3NvY2lhdGVzIG9uZSBvciBtb3JlIGFjdHVhbCBwYXJhbWV0ZXJzIHdpdGggYSBmb3JtYWwgdGVtcGxhdGUgcGFyYW1ldGVyIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhIFRlbXBsYXRlQmluZGluZy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAob3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIk9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGFuIE9wZXJhdGlvbi4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChjbGFzc2lmaWVyVGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkNsYXNzaWZpZXJUZW1wbGF0ZVBhcmFtZXRlciBpcyBhIHRlbXBsYXRlIHBhcmFtZXRlciB3aGVyZSB0aGUgcGFyYW1ldGVyZWQgZWxlbWVudCBpcyBhIENsYXNzaWZpZXIgaW4gaXRzIGNhcGFjaXR5IG9mIGJlaW5nIGEga2luZCBvZiBQYXJhbWV0ZXJhYmxlRWxlbWVudC4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChyZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJSZWRlZmluYWJsZVRlbXBsYXRlU2lnbmF0dXJlIHNwZWNpYWxpemVzIGJvdGggVGVtcGxhdGVTaWduYXR1cmUgYW5kIFJlZGVmaW5hYmxlRWxlbWVudCBpbiBvcmRlciB0byBhbGxvdyB0aGUgYWRkaXRpb24gb2YgbmV3IGZvcm1hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lhbGl6aW5nIHRlbXBsYXRlIENsYXNzaWZpZXIuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkNvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBwYXJhbWV0ZXJlZCBlbGVtZW50IGlzIGEgQ29ubmVjdGFibGVFbGVtZW50LiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGludGVyYWN0aW9uRUNsYXNzLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMDQ3LDEyICsxMzU4NywxOCBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgTGlmZWxpbmVpcyB0aGUgY29uY2VwdCBiZWhpbmQgYSBsaWZlbGluZSBpbiBhIFNlcXVlbmNlIFxyXG5EaWFncmFtLiBBIFBhcnRpY2lwYW50IG1heSBiZSBhIFBhcnQgb3IgaXQgbWF5IGJlIGEgcGFyYW1ldGVyIHJlcHJlc2VudGluZyBhIHBhcnQuIEl0cyBxdWFsaWZpY2F0aW9uIGlzIGEgQ2xhc3NpZmllciB3aGljaCBpbiB0dXJuIG1heSBiZSBhbiBJbnRlcmZhY2UgKG9yIENsYXNzaWZpZXJSb2xlPykiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJDb25uZWN0aW9uIHBvaW50IHJlZmVyZW5jZXMgb2YgYSBzdWJtYWNoaW5lIHN0YXRlIGNhbiBiZSB1c2VkIGFzIHNvdXJjZXMvdGFyZ2V0cyBvZiB0cmFuc2l0aW9ucy4gVGhleSByZXByZXNlbnQgZW50cmllcyBpbnRvIG9yIGV4aXRzIG91dCBvZiB0aGUgc3VibWFjaGluZSBzdGF0ZSBtYWNoaW5lIHJlZmVyZW5jZWQgYnkgdGhlIHN1Ym1hY2hpbmUgc3RhdGUuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChpbnRlcmFjdGlvbk9jY3VycmVuY2VFQ2xhc3MsIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgcmVmZXJlbmNlIHRvIGFuIGludGVyYWN0aW9uIHdpdGggYWN0dWFsIHZhbHVlcy4gVGhlIGludGVycHJldGF0aW9uIGlzIHRoYXQgdGhlIHNlcXVlbmNlIGRpYWdyYW0gcmVwbGFjZXMgdGhlIHJlZmVyZW5jZSAod2l0aCBhY3R1YWwgcGFyYW1ldGVycyBzdWJzdGl0dXRlZCkiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkb2N1bWVudGF0aW9uIiwgIkludGVyYWN0aW9uT2NjdXJyZW5jZSBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIEludGVyYWN0aW9uRnJhZ21lbnQuIEFuIEludGVyYWN0aW9uT2NjdXJyZW5jZSBoYXMgYSBzZXQgb2YgYWN0dWFsIGdhdGVzIHRoYXQgbXVzdCBtYXRjaCB0aGUgZm9ybWFsIGdhdGVzIG9mIHRoZSByZWZlcmVuY2VkIEludGVyYWN0aW9uLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdhdGVFQ2xhc3MsIApAQCAtMTMwNzcsNyArMTM2MjMsNzMgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBpbnRlcmFjdGlvbiBmcmFnbWVudCB0aGF0IGRlY29tcG9zZXMgaW50byBhIHNldCBvZiBvdGhlciBpbnRlcmFjdGlvbiBmcmFnbWVudHMgdW5kZXIgc29tZSBvcGVyYXRvci5cclxuSW4gcHJpbmNpcGxlIHRoZSB3aG9sZSBzZXF1ZW5jZSBkaWFncmFtIGlzIGFuIGNvbWJpbmVkIGludGVyYWN0aW9uLiBTeW50YWN0aWNhbGx5LCBob3dldmVyLCB3ZSB3aWxsIGhhdmUgc3BlY2lhbCBub3RhdGlvbiBmb3IgY29tYmluZWF0aW9ucyBzdWNoIHRoYXQgb3BlcmFuZHMgbWF5IGJlIGVhc2lseSBkaXN0aW5ndWlzaGVkLlxyXG5Db21iaW5lZCBpbnRlcmFjdGlvbnMgY29uc2lzdCBvZiBvcGVyYW5kcyBhbmQgYW4gaW1wbGljaXQgb3IgZXhwbGljaXQgb3BlcmF0b3IiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHRpbWVFeHByZXNzaW9uRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIFRpbWVFeHByZXNzaW9uIGRlZmluZXMgYSB2YWx1ZSBzcGVjaWZpY2F0aW9uIHRoYXQgcmVwcmVzZW50IGEgdGltZSB2YWx1ZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChkdXJhdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBkdXJhdGlvbiBkZWZpbmVzIGEgdmFsdWUgc3BlY2lmaWNhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgdGVtcG9yYWwgZGlzdGFuY2UgYmV0d2VlbiB0d28gdGltZSBleHByZXNzaW9ucyB0aGF0IHNwZWNpZnkgdGltZSBpbnN0YW50cy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICh0aW1lT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgVGltZU9ic2VydmF0aW9uQWN0aW9uIGRlZmluZXMgYW4gYWN0aW9uIHRoYXQgb2JzZXJ2ZXMgdGhlIGN1cnJlbnQgcG9pbnQgaW4gdGltZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgRHVyYXRpb25JbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byBEdXJhdGlvbnMuICIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGludGVydmFsRUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBbiBJbnRlcnZhbCBkZWZpbmVzIHRoZSByYW5nZSBiZXR3ZWVuIHR3byB2YWx1ZSBzcGVjaWZpY2F0aW9ucy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHRpbWVDb25zdHJhaW50RUNsYXNzLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZG9jdW1lbnRhdGlvbiIsICJBIFRpbWVDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGEgVGltZUludGVydmFsLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChpbnRlcnZhbENvbnN0cmFpbnRFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgSW50ZXJ2YWxDb25zdHJhaW50IGRlZmluZXMgYSBDb25zdHJhaW50IHRoYXQgcmVmZXJzIHRvIGFuIEludGVydmFsLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICh0aW1lSW50ZXJ2YWxFQ2xhc3MsIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkb2N1bWVudGF0aW9uIiwgIkEgVGltZUludGVydmFsIGRlZmluZXMgdGhlIHJhbmdlIGJldHdlZW4gdHdvIFRpbWVFeHByZXNzaW9ucy4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uIGRlZmluZXMgYW4gYWN0aW9uIHRoYXQgb2JzZXJ2ZXMgZHVyYXRpb24gaW4gdGltZS4gIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGR1cmF0aW9uQ29uc3RyYWludEVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBEdXJhdGlvbkNvbnN0cmFpbnQgZGVmaW5lcyBhIENvbnN0cmFpbnQgdGhhdCByZWZlcnMgdG8gYSBEdXJhdGlvbkludGVydmFsLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKHByb3RvY29sVHJhbnNpdGlvbkVDbGFzcywgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRvY3VtZW50YXRpb24iLCAiQSBwcm90b2NvbCB0cmFuc2l0aW9uICh0cmFuc2l0aW9uIGFzIHNwZWNpYWxpemVkIGluIHRoZSBQcm90b2NvbFN0YXRlTWFjaGluZXMgcGFja2FnZSkgc3BlY2lmaWVzIGEgbGVnYWwgdHJhbnNpdGlvbiBmb3IgYW4gb3BlcmF0aW9uLiBUcmFuc2l0aW9ucyBvZiBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lcyBoYXZlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IGEgcHJlIGNvbmRpdGlvbiAoZ3VhcmQpLCBvbiB0cmlnZ2VyLCBhbmQgYSBwb3N0IGNvbmRpdGlvbi4gRXZlcnkgcHJvdG9jb2wgdHJhbnNpdGlvbiBpcyBhc3NvY2lhdGVkIHRvIHplcm8gb3Igb25lIG9wZXJhdGlvbiAocmVmZXJyZWQgQmVoYXZpb3JhbEZlYXR1cmUpIHRoYXQgYmVsb25ncyB0byB0aGUgY29udGV4dCBjbGFzc2lmaWVyIG9mIHRoZSBwcm90b2NvbCBzdGF0ZSBtYWNoaW5lLiBUaGUgcHJvdG9jb2wgdHJhbnNpdGlvbiBzcGVjaWZpZXMgdGhhdCB0aGUgYXNzb2NpYXRlZCAocmVmZXJyZWQpIG9wZXJhdGlvbiBjYW4gYmUgY2FsbGVkIGZvciBhbiBpbnN0YW5jZSBpbiB0aGUgb3JpZ2luIHN0YXRlIHVuZGVyIHRoZSBpbml0aWFsIGNvbmRpdGlvbiAoZ3VhcmQpLCBhbmQgdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2l0aW9uLCB0aGUgZGVzdGluYXRpb24gc3RhdGUgd2lsbCBiZSByZWFjaGVkIHVuZGVyIHRoZSBmaW5hbCBjb25kaXRpb24gKHBvc3QpLiAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKIAl9CiAKIAkvKioKQEAgLTEzMDg3LDcgKzEzNjk5LDcgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICovCiAgICAgcHJvdGVjdGVkIHZvaWQgY3JlYXRlQ29uc3RyYWludEFubm90YXRpb25zKCkgewotCQlTdHJpbmcgc291cmNlID0gImNvbnN0cmFpbnQiOyAvLyROT04tTkxTLTEkCQkJCisJCVN0cmluZyBzb3VyY2UgPSAiY29uc3RyYWludCI7IC8vJE5PTi1OTFMtMSQJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pZWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzA5Nyw3ICsxMzcwOSw3IEBACiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pbXVsdGlwbGljaXR5RWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg1KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzEyMiw3ICsxMzczNCw3IEBACiAJCSAgKChFT3BlcmF0aW9uKW11bHRpcGxpY2l0eUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoOSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lZEVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMxMzcsNyArMTM3NDksNyBAQAogCQkgICgoRU9wZXJhdGlvbiluYW1lZEVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNiksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lc3BhY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMxNDcsNyArMTM3NTksNyBAQAogCQkgICgoRU9wZXJhdGlvbiluYW1lc3BhY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcHJvcGVydHlFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMxODIsNyArMTM3OTQsNyBAQAogCQkgICgoRU9wZXJhdGlvbilwcm9wZXJ0eUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilvcGVyYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMxOTIsMTIgKzEzODA0LDEyIEBACiAJCSAgKChFT3BlcmF0aW9uKW9wZXJhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg2KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMjE3LDEyICsxMzgyOSwxMiBAQAogCQkgICgoRU9wZXJhdGlvbiljbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEyKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMjMyLDcgKzEzODQ0LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pcmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMyNDIsNyArMTM4NTQsNyBAQAogCQkgICgoRU9wZXJhdGlvbilpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTMyNTIsMTIgKzEzODY0LDEyIEBACiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCX0KIAogCS8qKgpAQCAtMTMyNjcsNyArMTM4NzksNyBAQAogCSAqIEBnZW5lcmF0ZWQKIAkgKi8KIAlwcm90ZWN0ZWQgdm9pZCBjcmVhdGVVbmlvbkFubm90YXRpb25zKCkgewotCQlTdHJpbmcgc291cmNlID0gInVuaW9uIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCisJCVN0cmluZyBzb3VyY2UgPSAidW5pb24iOyAvLyROT04tTkxTLTEkCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0RWxlbWVudF9Pd25lZEVsZW1lbnQoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzI3Nyw0MiArMTM4ODksMTIgQEAKIAkJICAoZ2V0RWxlbWVudF9Pd25lcigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiltdWx0aXBsaWNpdHlFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEyKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldERpcmVjdGVkUmVsYXRpb25zaGlwX1NvdXJjZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXBfVGFyZ2V0KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRSZWxhdGlvbnNoaXBfUmVsYXRlZEVsZW1lbnQoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWV4cHJlc3Npb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pY29tbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW5hbWVkRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzMyNyw3ICsxMzkwOSw3IEBACiAJCSAgKChFT3BlcmF0aW9uKW5hbWVkRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg5KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW5hbWVzcGFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzM0Miw3ICsxMzkyNCwzNyBAQAogCQkgIChnZXROYW1lc3BhY2VfTWVtYmVyKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWRpcmVjdGVkUmVsYXRpb25zaGlwRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXREaXJlY3RlZFJlbGF0aW9uc2hpcF9Tb3VyY2UoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldERpcmVjdGVkUmVsYXRpb25zaGlwX1RhcmdldCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFJlbGF0aW9uc2hpcF9SZWxhdGVkRWxlbWVudCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZXhwcmVzc2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pY29tbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNsYXNzRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDUpLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMzU3LDEyICsxMzk2OSwxMiBAQAogCQkgICgoRU9wZXJhdGlvbiljbGFzc0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXR5cGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcHJvcGVydHlFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTIpLCAKIAkJICAgc291cmNlLCAKQEAgLTEzMzg3LDcgKzEzOTk5LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pcHJvcGVydHlFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTYpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pb3BlcmF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDE2KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzQxMiw3ICsxNDAyNCw3IEBACiAJCSAgKChFT3BlcmF0aW9uKW9wZXJhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM0MjIsNyArMTQwMzQsNyBAQAogCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzQzMiwxMiArMTQwNDQsMTIgQEAKIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg1KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pZW51bWVyYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilkYXRhVHlwZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzQ1MiwxMiArMTQwNjQsMTIgQEAKIAkJICAoKEVPcGVyYXRpb24pZGF0YVR5cGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbillbnVtZXJhdGlvbkxpdGVyYWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTQpLCAKIAkJICAgc291cmNlLCAKQEAgLTEzNDg3LDEyICsxNDA5OSwxMiBAQAogCQkgIChnZXRDbGFzc2lmaWVyX0F0dHJpYnV0ZSgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRGZWF0dXJlX0ZlYXR1cmluZ0NsYXNzaWZpZXIoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTM1MDIsNyArMTQxMTQsNyBAQAogCQkgIChnZXRDb25zdHJhaW50X0NvbnRleHQoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiliZWhhdmlvcmFsRmVhdHVyZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzUxNyw3ICsxNDEyOSw3IEBACiAJCSAgKGdldEJlaGF2aW9yYWxGZWF0dXJlX1BhcmFtZXRlcigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcmVkZWZpbmFibGVFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKIAkJICAgc291cmNlLCAKQEAgLTEzNTI3LDggKzE0MTM5LDIzIEBACiAJCSAgKGdldFJlZGVmaW5hYmxlRWxlbWVudF9SZWRlZmluaXRpb25Db250ZXh0KCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWluc3RhbmNlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXNsb3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10gewogCQkgICB9KTsJCQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWdlbmVyYWxpemF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKQEAgLTEzNTQyLDIyICsxNDE2OSw3IEBACiAJCSAgKChFT3BlcmF0aW9uKWdlbmVyYWxpemF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW5zdGFuY2VTcGVjaWZpY2F0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc2xvdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIApAQCAtMTM1NzIsNyArMTQxODQsNyBAQAogCQkgICgoRU9wZXJhdGlvbillbGVtZW50SW1wb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDUpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTM1ODcsNyArMTQxOTksNyBAQAogCQkgICgoRU9wZXJhdGlvbilwYWNrYWdlSW1wb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkKKwkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYXNzb2NpYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2MDcsNyArMTQyMTksNyBAQAogCQkgICgoRU9wZXJhdGlvbilhc3NvY2lhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYWNrYWdlTWVyZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2MjIsNyArMTQyMzQsNyBAQAogCQkgICgoRU9wZXJhdGlvbilwYWNrYWdlTWVyZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYmVoYXZpb3JFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2MzIsNyArMTQyNDQsNyBAQAogCQkgICgoRU9wZXJhdGlvbiliZWhhdmlvckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYmVoYXZpb3JlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2NDIsMTcgKzE0MjU0LDE3IEBACiAJCSAgKChFT3BlcmF0aW9uKWJlaGF2aW9yZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYWN0aXZpdHlFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYWJzdHJhY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcmVhbGl6YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2NjcsNyArMTQyNzksNyBAQAogCQkgICgoRU9wZXJhdGlvbilyZWFsaXphdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTM2NzcsNyArMTQyODksNyBAQAogCQkgICgoRU9wZXJhdGlvbilzdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNvbm5lY3RvckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzY4Nyw3ICsxNDI5OSw3IEBACiAJCSAgKChFT3BlcmF0aW9uKWNvbm5lY3RvckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXN0cnVjdHVyZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEzNzEyLDYgKzE0MzI0LDkxIEBACiAJCSAgKGdldFN0cnVjdHVyZWRDbGFzc2lmaWVyX1JvbGUoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWltcGxlbWVudGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWFydGlmYWN0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pbWFuaWZlc3RhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWV4dGVuZEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWV4dGVuZEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWV4dGVuZEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil1c2VDYXNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWluY2x1ZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilpbmNsdWRlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKIAkJICAgfSk7CQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilhY3Rpdml0eUVkZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIApAQCAtMTM3ODIsOTMgKzE0NDc5LDg4IEBACiAJCSAgKChFT3BlcmF0aW9uKWV4ZWN1dGFibGVOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICgoRU9wZXJhdGlvbiljaGFuZ2VUcmlnZ2VyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXNpZ25hbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXNpZ25hbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCSAgIH0pOwkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWFydGlmYWN0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbiltYW5pZmVzdGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWltcGxlbWVudGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilleHRlbmRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilleHRlbmRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilleHRlbmRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICgoRU9wZXJhdGlvbil0aW1lVHJpZ2dlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXVzZUNhc2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICgoRU9wZXJhdGlvbiljb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQorCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWluY2x1ZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICgoRU9wZXJhdGlvbiljb2xsYWJvcmF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbillbmNhcHN1bGF0ZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJICAgfSk7CQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW5jbHVkZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgKChFT3BlcmF0aW9uKWVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXZhcmlhYmxlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWNvbmRpdGlvbmFsTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWNvbmRpdGlvbmFsTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pbG9vcE5vZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilsb29wTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWxvb3BOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKQEAgLTEzODc3LDcgKzE0NTY5LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVTaWduYXR1cmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTEzODg3LDcgKzE0NTc5LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlYWJsZUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTM5MDIsMTIgKzE0NTk0LDEyIEBACiAJCSAgKChFT3BlcmF0aW9uKXN0cmluZ0V4cHJlc3Npb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJhYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlQmluZGluZ0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xMzkyNyw3ICsxNDYxOSw3IEBACiAJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlQmluZGluZ0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQorCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTM5MzcsMzIgKzE0NjI5LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbiljb2xsYWJvcmF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWNvbGxhYm9yYXRpb25PY2N1cnJlbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZW5jYXBzdWxhdGVkQ2xhc3NpZmllckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWludGVyYWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE0MDAyLDc0ICsxNDY2OSwzOSBAQAogCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil2YXJpYWJsZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXN0YXRlTWFjaGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcmVnaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcmVnaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJICAgfSk7CQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RydWN0dXJlZEFjdGl2aXR5Tm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWNvbmRpdGlvbmFsTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXN0YXRlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJICAgfSk7CQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pY29uZGl0aW9uYWxOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilsb29wTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkgICB9KTsJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilsb29wTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWxvb3BOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pY2hhbmdlVHJpZ2dlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzaWduYWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzaWduYWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGltZVRyaWdnZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZXhjZXB0aW9uSGFuZGxlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilqb2luTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkgICB9KTsJCQkJCQkJCkBAIC0xNDE3Nyw0MiArMTQ4MDksMjIgQEAKIAkJICAoKEVPcGVyYXRpb24pY2FsbE9wZXJhdGlvbkFjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCisJCSAgIH0pOwkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICgoRU9wZXJhdGlvbilqb2luTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilyZWdpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICgoRU9wZXJhdGlvbilhY3Rpdml0eVBhcnRpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQorCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcmVnaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKKwkJICAoKEVPcGVyYXRpb24pZXhjZXB0aW9uSGFuZGxlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXN0YXRlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0cmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilpbnRlcmFjdGlvbk9jY3VycmVuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQyMzksNTYgKzE0ODUxLDYgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xTdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXBhcmFtZXRlclNldEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudFRhcmdldEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXJlYWRFeHRlbnRBY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTQzNTcsNyArMTQ5MTksNTcgQEAKIAkJICAoKEVPcGVyYXRpb24pcmFpc2VFeGNlcHRpb25BY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcGFyYW1ldGVyU2V0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50VGFyZ2V0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbFN0YXRlTWFjaGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQogCX0KIAogCS8qKgpAQCAtMTQzNjcsMTMgKzE0OTc5LDEzIEBACiAJICogQGdlbmVyYXRlZAogCSAqLwogCXByb3RlY3RlZCB2b2lkIGNyZWF0ZVN1YnNldHNBbm5vdGF0aW9ucygpIHsKLQkJU3RyaW5nIHNvdXJjZSA9ICJzdWJzZXRzIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCQkKKwkJU3RyaW5nIHNvdXJjZSA9ICJzdWJzZXRzIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0RWxlbWVudF9Pd25lZENvbW1lbnQoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0TXVsdGlwbGljaXR5RWxlbWVudF9VcHBlclZhbHVlKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQzODUsMzEgKzE0OTk3LDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXREaXJlY3RlZFJlbGF0aW9uc2hpcF9Tb3VyY2UoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuUmVsYXRpb25zaGlwI2dldFJlbGF0ZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXREaXJlY3RlZFJlbGF0aW9uc2hpcF9UYXJnZXQoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuUmVsYXRpb25zaGlwI2dldFJlbGF0ZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEV4cHJlc3Npb25fT3BlcmFuZCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldENvbW1lbnRfQm9keUV4cHJlc3Npb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lZEVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNyksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ0MjEsNyArMTUwMDksNyBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW5hbWVzcGFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDQ1Miw3ICsxNTA0MCwzMSBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXBfU291cmNlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLlJlbGF0aW9uc2hpcCNnZXRSZWxhdGVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0RGlyZWN0ZWRSZWxhdGlvbnNoaXBfVGFyZ2V0KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLlJlbGF0aW9uc2hpcCNnZXRSZWxhdGVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0RXhwcmVzc2lvbl9PcGVyYW5kKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldENvbW1lbnRfQm9keUV4cHJlc3Npb24oKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDQ3OSwxMyArMTUwOTEsMTMgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKKwkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0VHlwZV9QYWNrYWdlKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXROYW1lc3BhY2UiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQcm9wZXJ0eV9DbGFzc18oKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDUzMSw3ICsxNTE0Myw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0T3BlcmF0aW9uX0NsYXNzXygpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0NTc0LDcgKzE1MTg2LDcgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZFJ1bGVzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFBhcmFtZXRlcl9PcGVyYXRpb24oKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDU4Niw3ICsxNTE5OCw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQYWNrYWdlX05lc3RlZFBhY2thZ2UoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDYyMiwxMyArMTUyMzQsMTMgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0UGFja2FnZUltcG9ydHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldEVudW1lcmF0aW9uX093bmVkTGl0ZXJhbCgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0RGF0YVR5cGVfT3duZWRBdHRyaWJ1dGUoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDY0MiwxMyArMTUyNTQsMTMgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldEVudW1lcmF0aW9uTGl0ZXJhbF9FbnVtZXJhdGlvbigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0TmFtZXNwYWNlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0Q2xhc3NpZmllcl9GZWF0dXJlKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ3MDMsNyArMTUzMTUsNyBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRDb25zdHJhaW50X05hbWVzcGFjZSgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0NzE1LDcgKzE1MzI3LDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QmVoYXZpb3JhbEZlYXR1cmVfUGFyYW1ldGVyKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ3MzUsNyArMTUzNDcsMzEgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5CZWhhdmlvcmFsRmVhdHVyZSNnZXRQYXJhbWV0ZXJzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRJbnN0YW5jZVNwZWNpZmljYXRpb25fU2xvdCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRJbnN0YW5jZVNwZWNpZmljYXRpb25fU3BlY2lmaWNhdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFNsb3RfT3duaW5nSW5zdGFuY2UoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFNsb3RfVmFsdWUoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRHZW5lcmFsaXphdGlvbl9TcGVjaWZpYygpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0NzQ4LDMxICsxNTM4NCw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEluc3RhbmNlU3BlY2lmaWNhdGlvbl9TbG90KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEluc3RhbmNlU3BlY2lmaWNhdGlvbl9TcGVjaWZpY2F0aW9uKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTbG90X093bmluZ0luc3RhbmNlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTbG90X1ZhbHVlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRFbGVtZW50SW1wb3J0X0ltcG9ydGVkRWxlbWVudCgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0Nzg1LDcgKzE1Mzk3LDcgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFBhY2thZ2VJbXBvcnRfSW1wb3J0ZWRQYWNrYWdlKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ3OTgsNyArMTU0MTAsNyBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QXNzb2NpYXRpb25fT3duZWRFbmQoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDgxOCw3ICsxNTQzMCw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQYWNrYWdlTWVyZ2VfTWVyZ2luZ1BhY2thZ2UoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNDgzMSw3ICsxNTQ0Myw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQcm9maWxlX093bmVkU3RlcmVvdHlwZSgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0ODU1LDcgKzE1NDY3LDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5QYWNrYWdlSW1wb3J0I2dldEltcG9ydGVkUGFja2FnZSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRCZWhhdmlvcl9SZWRlZmluZWRCZWhhdmlvcigpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0ODc5LDcgKzE1NDkxLDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRSdWxlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRCZWhhdmlvcmVkQ2xhc3NpZmllcl9Pd25lZEJlaGF2aW9yKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ5MDQsNyArMTU1MTYsNyBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKKwkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QWN0aXZpdHlfRWRnZSgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0OTM1LDEzICsxNTU0NywxMyBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5I2dldE5vZGVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5I2dldEdyb3VwcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRBYnN0cmFjdGlvbl9NYXBwaW5nKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFJlYWxpemF0aW9uX0Fic3RyYWN0aW9uKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTQ5NTYsNyArMTU1NjgsNyBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0U3VwcGxpZXJzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFN1YnN0aXR1dGlvbl9Db250cmFjdCgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0OTcwLDcgKzE1NTgyLDcgQEAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldENsaWVudHMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0Q29ubmVjdG9yX1JlZGVmaW5lZENvbm5lY3RvcigpLCAKIAkJICAgc291cmNlLCAKQEAgLTE0OTgyLDcgKzE1NTk0LDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFN0cnVjdHVyZWRDbGFzc2lmaWVyX093bmVkQXR0cmlidXRlKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTUwMDMsNiArMTU2MTUsMTM1IEBACiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRGZWF0dXJlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0SW50ZXJmYWNlX093bmVkQXR0cmlidXRlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0QXR0cmlidXRlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0SW50ZXJmYWNlX093bmVkT3BlcmF0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEludGVyZmFjZV9SZWRlZmluZWRJbnRlcmZhY2UoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50I2dldFJlZGVmaW5lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0SW50ZXJmYWNlX05lc3RlZENsYXNzaWZpZXIoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEludGVyZmFjZV9Pd25lZFJlY2VwdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRJbnRlcmZhY2VfUHJvdG9jb2woKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEltcGxlbWVudGF0aW9uX0NvbnRyYWN0KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0U3VwcGxpZXJzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRJbXBsZW1lbnRhdGlvbl9JbXBsZW1lbnRpbmdDbGFzc2lmaWVyKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kjZ2V0Q2xpZW50cyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEFydGlmYWN0X01hbmlmZXN0YXRpb24oKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXRDbGllbnREZXBlbmRlbmNpZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRBcnRpZmFjdF9Pd25lZE9wZXJhdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRBcnRpZmFjdF9Pd25lZEF0dHJpYnV0ZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEF0dHJpYnV0ZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRNYW5pZmVzdGF0aW9uX1V0aWxpemVkRWxlbWVudCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRUYXJnZXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRFeHRlbmRfRXh0ZW5kZWRDYXNlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRFeHRlbmRfRXh0ZW5zaW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRFeHRlbmRfQ29uZGl0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFVzZUNhc2VfSW5jbHVkZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0VXNlQ2FzZV9FeHRlbmQoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFVzZUNhc2VfRXh0ZW5zaW9uUG9pbnQoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0SW5jbHVkZV9JbmNsdWRpbmdDYXNlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRJbmNsdWRlX0FkZGl0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QWN0aXZpdHlFZGdlX0FjdGl2aXR5KCksIApAQCAtMTUxMTEsMTM2ICsxNTg1Miw5MyBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEFydGlmYWN0X01hbmlmZXN0YXRpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXRDbGllbnREZXBlbmRlbmNpZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBcnRpZmFjdF9Pd25lZE9wZXJhdGlvbigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEZlYXR1cmVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBcnRpZmFjdF9Pd25lZEF0dHJpYnV0ZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEF0dHJpYnV0ZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRNYW5pZmVzdGF0aW9uX1V0aWxpemVkRWxlbWVudCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRUYXJnZXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRJbnRlcmZhY2VfT3duZWRBdHRyaWJ1dGUoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRBdHRyaWJ1dGVzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRJbnRlcmZhY2VfT3duZWRPcGVyYXRpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRGZWF0dXJlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0SW50ZXJmYWNlX1JlZGVmaW5lZEludGVyZmFjZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRJbnRlcmZhY2VfTmVzdGVkQ2xhc3NpZmllcigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0SW50ZXJmYWNlX093bmVkUmVjZXB0aW9uKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEludGVyZmFjZV9Qcm90b2NvbCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRJbXBsZW1lbnRhdGlvbl9Db250cmFjdCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldFN1cHBsaWVycyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRUYXJnZXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0SW1wbGVtZW50YXRpb25fSW1wbGVtZW50aW5nQ2xhc3NpZmllcigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldENsaWVudHMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEV4dGVuZF9FeHRlbmRlZENhc2UoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEV4dGVuZF9FeHRlbnNpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEV4dGVuZF9Db25kaXRpb24oKSwgCisJCSAgKGdldENoYW5nZVRyaWdnZXJfQ2hhbmdlRXhwcmVzc2lvbigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRVc2VDYXNlX0luY2x1ZGUoKSwgCisJCSAgKGdldFNpZ25hbF9Pd25lZEF0dHJpYnV0ZSgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyI2dldEF0dHJpYnV0ZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQorCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFVzZUNhc2VfRXh0ZW5kKCksIAorCQkgIChnZXRUaW1lVHJpZ2dlcl9XaGVuKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRVc2VDYXNlX0V4dGVuc2lvblBvaW50KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoZ2V0SW5jbHVkZV9JbmNsdWRpbmdDYXNlKCksIAorCQkgIChnZXRDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZV9Sb2xlQmluZGluZygpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRTb3VyY2VzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0Q29sbGFib3JhdGlvbl9Db2xsYWJvcmF0aW9uUm9sZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5TdHJ1Y3R1cmVkQ2xhc3NpZmllciNnZXRSb2xlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFBvcnRfUmVkZWZpbmVkUG9ydCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEVuY2Fwc3VsYXRlZENsYXNzaWZpZXJfT3duZWRQb3J0KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0RmVhdHVyZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFZhcmlhYmxlX1Njb3BlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0U3RydWN0dXJlZEFjdGl2aXR5Tm9kZV9WYXJpYWJsZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0Q29uZGl0aW9uYWxOb2RlX0NsYXVzZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRJbmNsdWRlX0FkZGl0aW9uKCksIAorCQkgIChnZXRDb25kaXRpb25hbE5vZGVfUmVzdWx0KCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFRhcmdldHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQorCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0TG9vcE5vZGVfUmVzdWx0KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0TG9vcE5vZGVfTG9vcFZhcmlhYmxlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldExvb3BOb2RlX0xvb3BWYXJpYWJsZUlucHV0KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRJbnB1dHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRUZW1wbGF0ZVNpZ25hdHVyZV9Pd25lZFBhcmFtZXRlcigpLCAKIAkJICAgc291cmNlLCAKQEAgLTE1MjUzLDcgKzE1OTUxLDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVyIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQorCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0VGVtcGxhdGVQYXJhbWV0ZXJfU2lnbmF0dXJlKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTUyNzMsNyArMTU5NzEsNyBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLlRlbXBsYXRlUGFyYW1ldGVyI2dldERlZmF1bHQiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFRlbXBsYXRlYWJsZUVsZW1lbnRfVGVtcGxhdGVCaW5kaW5nKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTUyOTcsMTQgKzE1OTk1LDE0IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQYXJhbWV0ZXJhYmxlRWxlbWVudF9Pd25pbmdQYXJhbWV0ZXIoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5QYXJhbWV0ZXJhYmxlRWxlbWVudCNnZXRUZW1wbGF0ZVBhcmFtZXRlciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0VGVtcGxhdGVCaW5kaW5nX0JvdW5kRWxlbWVudCgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE1MzIzLDcgKzE2MDIxLDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCisJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbl9UZW1wbGF0ZUJpbmRpbmcoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNTMzNiwzMiArMTYwMzQsNyBAQAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLlRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uI2dldEFjdHVhbHMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRDb2xsYWJvcmF0aW9uX0NvbGxhYm9yYXRpb25Sb2xlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLlN0cnVjdHVyZWRDbGFzc2lmaWVyI2dldFJvbGVzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZV9Sb2xlQmluZGluZygpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFBvcnRfUmVkZWZpbmVkUG9ydCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQjZ2V0UmVkZWZpbmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0RW5jYXBzdWxhdGVkQ2xhc3NpZmllcl9Pd25lZFBvcnQoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRGZWF0dXJlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldEludGVyYWN0aW9uX0xpZmVsaW5lKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTU0MjEsODUgKzE2MDk0LDk2IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRWYXJpYWJsZV9TY29wZSgpLCAKKwkJICAoZ2V0U3RhdGVNYWNoaW5lX1JlZ2lvbigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVyIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFN0YXRlTWFjaGluZV9Db25uZWN0aW9uUG9pbnQoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlX1ZhcmlhYmxlKCksIAorCQkgIChnZXRSZWdpb25fU3VidmVydGV4KCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFJlZ2lvbl9UcmFuc2l0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFJlZ2lvbl9TdGF0ZU1hY2hpbmUoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50I2dldE5hbWVzcGFjZSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFJlZ2lvbl9TdGF0ZSgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0TmFtZXNwYWNlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0U3RhdGVfQ29ubmVjdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0U3RhdGVfUmVnaW9uKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRDb25kaXRpb25hbE5vZGVfQ2xhdXNlKCksIAorCQkgIChnZXRTdGF0ZV9FbnRyeSgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRDb25kaXRpb25hbE5vZGVfUmVzdWx0KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0TG9vcE5vZGVfUmVzdWx0KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRPdXRwdXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0TG9vcE5vZGVfTG9vcFZhcmlhYmxlKCksIAorCQkgIChnZXRTdGF0ZV9FeGl0KCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldExvb3BOb2RlX0xvb3BWYXJpYWJsZUlucHV0KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRJbnB1dHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldENoYW5nZVRyaWdnZXJfQ2hhbmdlRXhwcmVzc2lvbigpLCAKKwkJICAoZ2V0U3RhdGVfRG9BY3Rpdml0eSgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCisJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoZ2V0U2lnbmFsX093bmVkQXR0cmlidXRlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIjZ2V0QXR0cmlidXRlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRUaW1lVHJpZ2dlcl9XaGVuKCksIAorCQkgIChnZXRTdGF0ZV9TdGF0ZUludmFyaWFudCgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEV4Y2VwdGlvbkhhbmRsZXJfUHJvdGVjdGVkTm9kZSgpLCAKKwkJICAoZ2V0VHJhbnNpdGlvbl9Db250YWluZXIoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldEpvaW5Ob2RlX0pvaW5TcGVjKCksIAorCQkgIChnZXRUcmFuc2l0aW9uX0d1YXJkKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCisJCSAgIH0pOwkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoZ2V0QWN0aXZpdHlQYXJ0aXRpb25fU3VwZXJQYXJ0aXRpb24oKSwgCisJCSAgKGdldFRyYW5zaXRpb25fRWZmZWN0KCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0U3VwZXJHcm91cCIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0Q3JlYXRlT2JqZWN0QWN0aW9uX1Jlc3VsdCgpLCAKQEAgLTE1NjMyLDk2ICsxNjMxNiwyNCBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRJbnB1dHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFN0YXRlTWFjaGluZV9SZWdpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFN0YXRlTWFjaGluZV9Db25uZWN0aW9uUG9pbnQoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZXNwYWNlI2dldE93bmVkTWVtYmVycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRSZWdpb25fU3VidmVydGV4KCksIAorCQkgIChnZXRKb2luTm9kZV9Kb2luU3BlYygpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFJlZ2lvbl9UcmFuc2l0aW9uKCksIAorCQkgIChnZXRBY3Rpdml0eVBhcnRpdGlvbl9TdXBlclBhcnRpdGlvbigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldFN1cGVyR3JvdXAiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFJlZ2lvbl9TdGF0ZU1hY2hpbmUoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50I2dldE5hbWVzcGFjZSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFJlZ2lvbl9TdGF0ZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0TmFtZXNwYWNlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0U3RhdGVfQ29ubmVjdGlvbigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0U3RhdGVfUmVnaW9uKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTdGF0ZV9FbnRyeSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTdGF0ZV9FeGl0KCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldFN0YXRlX0RvQWN0aXZpdHkoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0U3RhdGVfU3RhdGVJbnZhcmlhbnQoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRUcmFuc2l0aW9uX0NvbnRhaW5lcigpLCAKKwkJICAoZ2V0RXhjZXB0aW9uSGFuZGxlcl9Qcm90ZWN0ZWROb2RlKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZXIiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0VHJhbnNpdGlvbl9HdWFyZCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRUcmFuc2l0aW9uX0VmZmVjdCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRJbnRlcmFjdGlvbk9jY3VycmVuY2VfQWN0dWFsR2F0ZSgpLCAKQEAgLTE1NzY1LDcxICsxNjM3Nyw3IEBACiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXRDbGllbnREZXBlbmRlbmNpZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0UHJvdG9jb2xDb25mb3JtYW5jZV9TcGVjaWZpY01hY2hpbmUoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVyIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0UHJvdG9jb2xDb25mb3JtYW5jZV9HZW5lcmFsTWFjaGluZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EaXJlY3RlZFJlbGF0aW9uc2hpcCNnZXRUYXJnZXRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRQcm90b2NvbFN0YXRlTWFjaGluZV9Db25mb3JtYW5jZSgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0UHJvdG9jb2xUcmFuc2l0aW9uX1Bvc3RDb25kaXRpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0UHJvdG9jb2xUcmFuc2l0aW9uX1ByZUNvbmRpdGlvbigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5UcmFuc2l0aW9uI2dldEd1YXJkIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRQYXJhbWV0ZXJTZXRfQ29uZGl0aW9uKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXREZXBsb3ltZW50X0RlcGxveWVkQXJ0aWZhY3QoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSNnZXRTdXBwbGllcnMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldERlcGxveW1lbnRfTG9jYXRpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldENsaWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXREZXBsb3ltZW50X0NvbmZpZ3VyYXRpb24oKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKGdldERlcGxveW1lbnRUYXJnZXRfRGVwbG95bWVudCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50I2dldENsaWVudERlcGVuZGVuY2llcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCisJCSAgIH0pOwkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0UmVhZEV4dGVudEFjdGlvbl9SZXN1bHQoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNTkxOSw2ICsxNjQ2Nyw3MCBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGlvbiNnZXRJbnB1dHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRQYXJhbWV0ZXJTZXRfQ29uZGl0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQjZ2V0T3duZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXREZXBsb3ltZW50X0RlcGxveWVkQXJ0aWZhY3QoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSNnZXRTdXBwbGllcnMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldERlcGxveW1lbnRfTG9jYXRpb24oKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0U291cmNlcyIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5I2dldENsaWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXREZXBsb3ltZW50X0NvbmZpZ3VyYXRpb24oKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldERlcGxveW1lbnRUYXJnZXRfRGVwbG95bWVudCgpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50I2dldENsaWVudERlcGVuZGVuY2llcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFByb3RvY29sQ29uZm9ybWFuY2VfU3BlY2lmaWNNYWNoaW5lKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkRpcmVjdGVkUmVsYXRpb25zaGlwI2dldFNvdXJjZXMiLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldFByb3RvY29sQ29uZm9ybWFuY2VfR2VuZXJhbE1hY2hpbmUoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRGlyZWN0ZWRSZWxhdGlvbnNoaXAjZ2V0VGFyZ2V0cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0UHJvdG9jb2xTdGF0ZU1hY2hpbmVfQ29uZm9ybWFuY2UoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lZEVsZW1lbnRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRQcm90b2NvbFRyYW5zaXRpb25fUG9zdENvbmRpdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50I2dldE93bmVkRWxlbWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRQcm90b2NvbFRyYW5zaXRpb25fUHJlQ29uZGl0aW9uKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLlRyYW5zaXRpb24jZ2V0R3VhcmQiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CiAJfQogCkBAIC0xNTkyOSw3ICsxNjU0MSw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqLwogCXByb3RlY3RlZCB2b2lkIGNyZWF0ZUZlYXR1cmVBbm5vdGF0aW9ucygpIHsKLQkJU3RyaW5nIHNvdXJjZSA9ICJmZWF0dXJlIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJU3RyaW5nIHNvdXJjZSA9ICJmZWF0dXJlIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW11bHRpcGxpY2l0eUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTIpLCAKIAkJICAgc291cmNlLCAKQEAgLTE1OTQyLDQyICsxNjU1NCw3IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWRpcmVjdGVkUmVsYXRpb25zaGlwRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAicmVsYXRlZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilleHByZXNzaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbiljb21tZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiluYW1lZEVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNyksIAogCQkgICBzb3VyY2UsIApAQCAtMTYwMTYsNyArMTY1OTMsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW5hbWVzcGFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg3KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjA0NCw2ICsxNjYyMSw0MSBAQAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZGlyZWN0ZWRSZWxhdGlvbnNoaXBFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWxhdGVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilleHByZXNzaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pY29tbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xNjExNyw3ICsxNjcyOSw3IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRmVhdHVyZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pdHlwZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjEzMCw3ICsxNjc0Miw3IEBACiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwcm9wZXJ0eUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTYyMDksNyArMTY4MjEsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilvcGVyYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoOCksIAogCQkgICBzb3VyY2UsIApAQCAtMTYzNDcsNyArMTY5NTksNyBAQAogCQkJICJuYW1lIiwgInJlZGVmaW5lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTYzNzMsNyArMTY5ODUsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNCksIAogCQkgICBzb3VyY2UsIApAQCAtMTY0MTIsNyArMTcwMjQsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUGFja2FnZUltcG9ydCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIxIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVudW1lcmF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE2NDI1LDcgKzE3MDM3LDcgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKKwkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pZGF0YVR5cGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTY0NjAsNyArMTcwNzIsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkZlYXR1cmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVudW1lcmF0aW9uTGl0ZXJhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjQ3Myw3ICsxNzA4NSw3IEBACiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDE0KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjUzMCw3ICsxNzE0Miw3IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTY1NDMsNyArMTcxNTUsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYmVoYXZpb3JhbEZlYXR1cmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIApAQCAtMTY1NjUsNyArMTcxNzcsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXJlZGVmaW5hYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjU3NCw3ICsxNzE4Niw0NiBAQAogCQkJICJuYW1lIiwgInJlZGVmaW5lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWluc3RhbmNlU3BlY2lmaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilnZW5lcmFsaXphdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjYwNSw0NiArMTcyNTYsNyBAQAogCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilpbnN0YW5jZVNwZWNpZmljYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzbG90RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VhYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjY2MCw3ICsxNzI3Miw3IEBACiAJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAibmFtZSIsICJ2aXNpYmlsaXR5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuVmlzaWJpbGl0eUtpbmQiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVsZW1lbnRJbXBvcnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIApAQCAtMTY2OTEsNyArMTczMDMsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwYWNrYWdlSW1wb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKQEAgLTE2NzIyLDcgKzE3MzM0LDcgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilhc3NvY2lhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjc2Niw3ICsxNzM3OCw3IEBACiAJCQkgIm5hbWUiLCAibWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VNZXJnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjc5Nyw3ICsxNzQwOSw3IEBACiAJCQkgIm5hbWUiLCAidGFyZ2V0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCisJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwcm9maWxlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE2ODU5LDcgKzE3NDcxLDcgQEAKIAkJCSAibmFtZSIsICJ0eXBlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuU3RlcmVvdHlwZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQorCQkgICB9KTsJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYmVoYXZpb3JFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTY4OTQsNyArMTc1MDYsNyBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWJlaGF2aW9yZWRDbGFzc2lmaWVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE2OTMzLDcgKzE3NTQ1LDcgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWFjdGl2aXR5RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE2OTQ2LDcgKzE3NTU4LDcgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilhYnN0cmFjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNjk1OSw3ICsxNzU3MSw3IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcmVhbGl6YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTcwMTIsNyArMTc2MjQsNyBAQAogCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTcwNTIsNyArMTc2NjQsNyBAQAogCQkJICJuYW1lIiwgInNvdXJjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNvbm5lY3RvckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNzA3NCw3ICsxNzY4Niw3IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQorCQkgICB9KTsJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdHJ1Y3R1cmVkQ2xhc3NpZmllckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xNzExOCw4ICsxNzczMCwyMzMgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5GZWF0dXJlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgImF0dHJpYnV0ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLlByb3BlcnR5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW50ZXJmYWNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW50ZXJmYWNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAiZmVhdHVyZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAiZmVhdHVyaW5nQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5GZWF0dXJlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilpbnRlcmZhY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWltcGxlbWVudGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInN1cHBsaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJ0YXJnZXQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJjbGllbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgImNsaWVudERlcGVuZGVuY3kiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgImNsaWVudERlcGVuZGVuY3kiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgImNsaWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIxIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJmZWF0dXJlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJmZWF0dXJpbmdDbGFzc2lmaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkZlYXR1cmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWFydGlmYWN0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJhdHRyaWJ1dGUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5Qcm9wZXJ0eSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKW1hbmlmZXN0YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic3VwcGxpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbiltYW5pZmVzdGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAidGFyZ2V0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWV4dGVuZEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilleHRlbmRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZXh0ZW5kRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil1c2VDYXNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWluY2x1ZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW5jbHVkZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWFjdGl2aXR5RWRnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xNzI4Nyw5ICsxODEyNCw5IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKWNoYW5nZVRyaWdnZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKQEAgLTE3MzAwLDc1ICsxODEzNyw5IEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWFydGlmYWN0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAiY2xpZW50RGVwZW5kZW5jeSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAiY2xpZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5EZXBlbmRlbmN5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgImZlYXR1cmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgImZlYXR1cmluZ0NsYXNzaWZpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRmVhdHVyZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZE1lbWJlciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAibmFtZXNwYWNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgImF0dHJpYnV0ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLlByb3BlcnR5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pbWFuaWZlc3RhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzdXBwbGllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKW1hbmlmZXN0YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJ0YXJnZXQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXNpZ25hbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTczNzcsNyArMTgxNDgsNyBAQAogCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyZmFjZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgKChFT3BlcmF0aW9uKXNpZ25hbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTczODgsODkgKzE4MTU5LDkgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW50ZXJmYWNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAiZmVhdHVyZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAiZmVhdHVyaW5nQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5GZWF0dXJlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilpbnRlcmZhY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAic3VwcGxpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgImNsaWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAiY2xpZW50RGVwZW5kZW5jeSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInNvdXJjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWV4dGVuZEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilleHRlbmRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZXh0ZW5kRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAoKEVPcGVyYXRpb24pdGltZVRyaWdnZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKQEAgLTE3NDgzLDIyMCArMTgxNzQsNiBAQAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdXNlQ2FzZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWluY2x1ZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW5jbHVkZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZVBhcmFtZXRlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVQYXJhbWV0ZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVhYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXN0cmluZ0V4cHJlc3Npb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RyaW5nRXhwcmVzc2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJhYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZUJpbmRpbmdFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlQmluZGluZ0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInNvdXJjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZUJpbmRpbmdFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJ0YXJnZXQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVCaW5kaW5nRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbiljb2xsYWJvcmF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAicm9sZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkNvbm5lY3RhYmxlRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CkBAIC0xNzcwOCw3ICsxODE4NSwxNiBAQAogCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWNvbGxhYm9yYXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyb2xlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ29ubmVjdGFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilwb3J0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE3NzE3LDcgKzE4MjAzLDcgQEAKIAkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQorCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWVuY2Fwc3VsYXRlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTc3NDUsMTI4ICsxODIzMSw2IEBACiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyYWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVyYWN0aW9uRnJhZ21lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW50ZXJhY3Rpb25GcmFnbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilsaWZlbGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilsaWZlbGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKW1lc3NhZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pbWVzc2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWV2ZW50T2NjdXJyZW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJjb3ZlcmVkIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTGlmZWxpbmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJjb3ZlcmVkIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTGlmZWxpbmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pdmFyaWFibGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewpAQCAtMTc5OTYsOSArMTgzNjAsOSBAQAogCQkJICJuYW1lIiwgImlucHV0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWNoYW5nZVRyaWdnZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZVNpZ25hdHVyZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTgwMDksNDQgKzE4MzczLDkgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzaWduYWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJhdHRyaWJ1dGUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5Qcm9wZXJ0eSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXNpZ25hbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lVHJpZ2dlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZXhjZXB0aW9uSGFuZGxlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlU2lnbmF0dXJlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCkBAIC0xODA1Nyw5ICsxODM4NiwyNjYgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCisJCSAgIH0pOwkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilqb2luTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlUGFyYW1ldGVyRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZVBhcmFtZXRlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVhYmxlRWxlbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXN0cmluZ0V4cHJlc3Npb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RyaW5nRXhwcmVzc2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcGFyYW1ldGVyYWJsZUVsZW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlQmluZGluZ0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdGVtcGxhdGVCaW5kaW5nRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic291cmNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlQmluZGluZ0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZUJpbmRpbmdFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0ZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyYWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVyYWN0aW9uRnJhZ21lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24paW50ZXJhY3Rpb25GcmFnbWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilsaWZlbGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilsaWZlbGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKW1lc3NhZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pbWVzc2FnZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWV2ZW50T2NjdXJyZW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJjb3ZlcmVkIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTGlmZWxpbmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJjb3ZlcmVkIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTGlmZWxpbmUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTgwNzIsMTcgKzE4NjU4LDE4MCBAQAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAoKEVPcGVyYXRpb24pc3RhdGVNYWNoaW5lRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAic3VwZXJHcm91cCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RhdGVNYWNoaW5lRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAicmVkZWZpbml0aW9uQ29udGV4dCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgInN1Ymdyb3VwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRNZW1iZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm5hbWVzcGFjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXJlZ2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInJlZGVmaW5pdGlvbkNvbnRleHQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcmVnaW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAicmVkZWZpbmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXJlZ2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilyZWdpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilzdGF0ZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInJlZGVmaW5pdGlvbkNvbnRleHQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZE1lbWJlciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAibmFtZXNwYWNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdmVydGV4RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWRlZmluaXRpb25Db250ZXh0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdHJhbnNpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdHJhbnNpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pY3JlYXRlT2JqZWN0QWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKQEAgLTE4MzAxLDU2ICsxOTA1MCw3IEBACiAJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXN0YXRlTWFjaGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInJlZGVmaW5lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJyZWRlZmluaXRpb25Db250ZXh0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXN0YXRlTWFjaGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilyZWdpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJyZWRlZmluaXRpb25Db250ZXh0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXJlZ2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInJlZGVmaW5lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilyZWdpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAorCQkgICgoRU9wZXJhdGlvbilqb2luTm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTgzNjEsOTcgKzE5MDYxLDIyIEBACiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilyZWdpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJuYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkTWVtYmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzdGF0ZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInJlZGVmaW5pdGlvbkNvbnRleHQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJyZWRlZmluZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuUmVkZWZpbmFibGVFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RhdGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZE1lbWJlciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAibmFtZXNwYWNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdmVydGV4RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkgICB9KTsJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdHJhbnNpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgKChFT3BlcmF0aW9uKWFjdGl2aXR5UGFydGl0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAicmVkZWZpbml0aW9uQ29udGV4dCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKKwkJCSAibmFtZSIsICJzdXBlckdyb3VwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAic3ViZ3JvdXAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdHJhbnNpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInJlZGVmaW5lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5SZWRlZmluYWJsZUVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0cmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAoKEVPcGVyYXRpb24pZXhjZXB0aW9uSGFuZGxlckVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJApAQCAtMTg0NjIsMjAgKzE5MDg3LDcgQEAKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0cmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDMpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24paW50ZXJhY3Rpb25PY2N1cnJlbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE4NTU1LDI5OSArMTkxNjcsNiBAQAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIxIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJICAgfSk7CQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAic291cmNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXByb3RvY29sQ29uZm9ybWFuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJ0YXJnZXQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbFN0YXRlTWFjaGluZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXByb3RvY29sVHJhbnNpdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJndWFyZCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInZhbHVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJ2YWx1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLklucHV0UGluIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgInRydWUiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZHVyYXRpb25JbnRlcnZhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJtaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5EdXJhdGlvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAibWF4IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRpbWVDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInNwZWNpZmljYXRpb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5UaW1lSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInNwZWNpZmljYXRpb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAibWF4IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuVGltZUV4cHJlc3Npb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAibWluIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuVGltZUV4cHJlc3Npb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgInZhbHVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAidmFsdWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5JbnB1dFBpbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJ0cnVlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb25JbnRlcnZhbCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb25JbnRlcnZhbCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilwYXJhbWV0ZXJTZXRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAic3VwcGxpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAidGFyZ2V0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJzb3VyY2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgImNsaWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUiLCAiY2xpZW50RGVwZW5kZW5jeSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRUYXJnZXRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudFRhcmdldEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJuYW1lIiwgImNsaWVudERlcGVuZGVuY3kiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiZU9wcG9zaXRlIiwgImNsaWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRGVwZW5kZW5jeSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIxIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKW5vZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm5hbWUiLCAibmVzdGVkQ2xhc3NpZmllciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzaWZpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkKLQkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilyZWFkRXh0ZW50QWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKQEAgLTE4OTkwLDcgKzE5MzA5LDMwMCBAQAogCQkJICJuYW1lIiwgImlucHV0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXBhcmFtZXRlclNldEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInZhbHVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVPYnNlcnZhdGlvbkFjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJ2YWx1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLklucHV0UGluIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgInRydWUiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAibWluIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRHVyYXRpb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkludGVydmFsRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm1heCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInNwZWNpZmljYXRpb24iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5UaW1lSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0aW1lQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuVGltZUludGVydmFsIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJzcGVjaWZpY2F0aW9uIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilpbnRlcnZhbENvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic3BlY2lmaWNhdGlvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVJbnRlcnZhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJtYXgiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5UaW1lRXhwcmVzc2lvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVJbnRlcnZhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJtaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5UaW1lRXhwcmVzc2lvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInZhbHVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuSW5wdXRQaW4iLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAidHJ1ZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAidmFsdWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5JbnB1dFBpbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJ0cnVlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic3BlY2lmaWNhdGlvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJkZXJpdmVkIiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic3BlY2lmaWNhdGlvbiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkR1cmF0aW9uSW50ZXJ2YWwiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInN1cHBsaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuTmFtZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInRhcmdldCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAic291cmNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJjbGllbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgImNsaWVudERlcGVuZGVuY3kiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg0KSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImVPcHBvc2l0ZS5jb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50VGFyZ2V0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZWRFbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJvd25lciIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMCIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWRlcGxveW1lbnRUYXJnZXRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJjbGllbnREZXBlbmRlbmN5IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZSIsICJjbGllbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICItMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkRlcGVuZGVuY3kiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLmxvd2VyQm91bmQiLCAiMSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilub2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgIm5lc3RlZENsYXNzaWZpZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5DbGFzc2lmaWVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgInRydWUiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xDb25mb3JtYW5jZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgInNvdXJjZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlVHlwZSIsICJvcmcuZWNsaXBzZS51bWwyLkVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAib3duZXIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVkRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJkZXJpdmVkIiwgInRydWUiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZVR5cGUiLCAib3JnLmVjbGlwc2UudW1sMi5FbGVtZW50IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbENvbmZvcm1hbmNlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJ0cnVlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm5hbWUiLCAidGFyZ2V0IiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJmYWxzZSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xTdGF0ZU1hY2hpbmVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiY29udGFpbm1lbnQiLCAiZmFsc2UiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAibmFtZSIsICJvd25lZEVsZW1lbnQiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAiZU9wcG9zaXRlIiwgIm93bmVyIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImRlcml2ZWQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUudXBwZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAiZGVyaXZlZCIsICJmYWxzZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJuYW1lIiwgImd1YXJkIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgImVUeXBlIiwgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJjb250YWlubWVudCIsICJ0cnVlIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCiAJfQogCiAJLyoqCkBAIC0xOTAwMCw3ICsxOTYxMiw3IEBACiAJICogQGdlbmVyYXRlZAogCSAqLwogCXByb3RlY3RlZCB2b2lkIGNyZWF0ZVJlZGVmaW5lc0Fubm90YXRpb25zKCkgewotCQlTdHJpbmcgc291cmNlID0gInJlZGVmaW5lcyI7IC8vJE5PTi1OTFMtMSQJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJU3RyaW5nIHNvdXJjZSA9ICJyZWRlZmluZXMiOyAvLyROT04tTkxTLTEkCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbiljbGFzc0VDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTAyNCw3ICsxOTYzNiw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ2xhc3NpZmllciNnZXRHZW5lcmFscyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcHJvcGVydHlFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTApLCAKIAkJICAgc291cmNlLCAKQEAgLTE5MDM2LDcgKzE5NjQ4LDcgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5TdHJ1Y3R1cmFsRmVhdHVyZSNpc1JlYWRPbmx5IiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW9wZXJhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCg4KSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTA4NSwyNSArMTk2OTcsMjUgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5UeXBlZEVsZW1lbnQjZ2V0VHlwZSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQYWNrYWdlX093bmVkTWVtYmVyKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVzcGFjZSNnZXRPd25lZE1lbWJlcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldENvbnN0cmFpbnRfTmFtZXNwYWNlKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLk5hbWVkRWxlbWVudCNnZXROYW1lc3BhY2UiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFBhY2thZ2VhYmxlRWxlbWVudF9QYWNrYWdlYWJsZUVsZW1lbnRfdmlzaWJpbGl0eSgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lZEVsZW1lbnQjZ2V0VmlzaWJpbGl0eSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWV4dGVuc2lvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTEyMSwxMyArMTk3MzMsMTMgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5UeXBlZEVsZW1lbnQjZ2V0VHlwZSIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QmVoYXZpb3JlZENsYXNzaWZpZXJfT3duZWRTdGF0ZU1hY2hpbmUoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQmVoYXZpb3JlZENsYXNzaWZpZXIjZ2V0T3duZWRCZWhhdmlvcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QWN0aXZpdHlFZGdlX1JlZGVmaW5lZEVsZW1lbnQoKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTE0NSwxOSArMTk3NTcsNyBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCNnZXRSZWRlZmluZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilldmVudE9jY3VycmVuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVyYWN0aW9uRnJhZ21lbnQjZ2V0Q292ZXJlZHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pc3RhdGVJbnZhcmlhbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVyYWN0aW9uRnJhZ21lbnQjZ2V0Q292ZXJlZHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE5MTgzLDQyICsxOTc4MywxOCBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkRWRnZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBY3Rpdml0eVBhcnRpdGlvbl9Db250YWluZWRFZGdlKCksIAorCQkgICgoRU9wZXJhdGlvbilldmVudE9jY3VycmVuY2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkRWRnZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBY3Rpdml0eVBhcnRpdGlvbl9Db250YWluZWROb2RlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkTm9kZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBY3Rpdml0eVBhcnRpdGlvbl9TdWJncm91cCgpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5BY3Rpdml0eUdyb3VwI2dldFN1Ymdyb3VwcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWxpbmtFbmRDcmVhdGlvbkRhdGFFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkxpbmtFbmREYXRhI2dldFF1YWxpZmllcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcmFjdGlvbkZyYWdtZW50I2dldENvdmVyZWRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQogCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWNyZWF0ZUxpbmtBY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICgoRU9wZXJhdGlvbilzdGF0ZUludmFyaWFudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuTGlua0FjdGlvbiNnZXRFbmREYXRhIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRTZW5kT2JqZWN0QWN0aW9uX1JlcXVlc3QoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW52b2NhdGlvbkFjdGlvbiNnZXRBcmd1bWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcmFjdGlvbkZyYWdtZW50I2dldENvdmVyZWRzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRTdGF0ZU1hY2hpbmVfRXh0ZW5kZWRTdGF0ZU1hY2hpbmUoKSwgCkBAIC0xOTI2MSw3ICsxOTgzNyw3IEBACiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgIm9yZy5lY2xpcHNlLnVtbDIuRWxlbWVudCNnZXRPd25lciIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKKwkJICAgfSk7CQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTkyNzMsMTAwICsxOTg0OSw0OCBAQAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewogCQkJICJvcmcuZWNsaXBzZS51bWwyLlJlZGVmaW5hYmxlRWxlbWVudCNnZXRSZWRlZmluZWRFbGVtZW50cyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWxpbmtFbmRDcmVhdGlvbkRhdGFFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkxpbmtFbmREYXRhI2dldFF1YWxpZmllcnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pY3JlYXRlTGlua0FjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuTGlua0FjdGlvbiNnZXRFbmREYXRhIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgIChnZXRTZW5kT2JqZWN0QWN0aW9uX1JlcXVlc3QoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW52b2NhdGlvbkFjdGlvbiNnZXRBcmd1bWVudHMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEFjdGl2aXR5UGFydGl0aW9uX0NvbnRhaW5lZEVkZ2UoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWRFZGdlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEFjdGl2aXR5UGFydGl0aW9uX0NvbnRhaW5lZE5vZGUoKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWROb2RlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEFjdGl2aXR5UGFydGl0aW9uX1N1Ymdyb3VwKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0U3ViZ3JvdXBzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldENvbXBvbmVudF9Pd25lZE1lbWJlcigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5OYW1lc3BhY2UjZ2V0T3duZWRNZW1iZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0VGltZU9ic2VydmF0aW9uQWN0aW9uX05vdygpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1pbnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pZHVyYXRpb25JbnRlcnZhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwjZ2V0TWF4ZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKXRpbWVDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWxDb25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24paW50ZXJ2YWxDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pdGltZUludGVydmFsRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCNnZXRNYXhlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbil0aW1lSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1pbnMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0RHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbl9EdXJhdGlvbigpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJCSAib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0SW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uX0NvbnRhaW5lZE5vZGUoKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCQkgIm9yZy5lY2xpcHNlLnVtbDIuQWN0aXZpdHlHcm91cCNnZXRDb250YWluZWROb2RlcyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoZ2V0Tm9kZV9OZXN0ZWROb2RlKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzI2dldE5lc3RlZENsYXNzaWZpZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNyZWF0ZUxpbmtPYmplY3RBY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIApAQCAtMTkzODAsNyArMTk5MDQsOTUgQEAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKIAkJCSAib3JnLmVjbGlwc2UudW1sMi5BY2NlcHRFdmVudEFjdGlvbiNnZXRUcmlnZ2VycyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKGdldEludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbl9Db250YWluZWROb2RlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkFjdGl2aXR5R3JvdXAjZ2V0Q29udGFpbmVkTm9kZXMiLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0VGltZU9ic2VydmF0aW9uQWN0aW9uX05vdygpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkludGVydmFsRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbCNnZXRNaW5zIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1heGVzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0aW1lQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVDb25zdHJhaW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5Db25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWxDb25zdHJhaW50I2dldFNwZWNpZmljYXRpb24iLCAiIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJICAgfSk7CQkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKWludGVydmFsQ29uc3RyYWludEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuQ29uc3RyYWludCNnZXRTcGVjaWZpY2F0aW9uIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbil0aW1lSW50ZXJ2YWxFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkludGVydmFsI2dldE1heGVzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQorCQlhZGRBbm5vdGF0aW9uCisJCSAgKChFT3BlcmF0aW9uKXRpbWVJbnRlcnZhbEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCQkgIm9yZy5lY2xpcHNlLnVtbDIuSW50ZXJ2YWwjZ2V0TWlucyIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0RHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbl9EdXJhdGlvbigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5Xcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uI2dldFZhbHVlIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbENvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilkdXJhdGlvbkNvbnN0cmFpbnRFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIsICIiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKKwkJCSAib3JnLmVjbGlwc2UudW1sMi5JbnRlcnZhbENvbnN0cmFpbnQjZ2V0U3BlY2lmaWNhdGlvbiIsICIiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0Tm9kZV9OZXN0ZWROb2RlKCksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkJICJvcmcuZWNsaXBzZS51bWwyLkNsYXNzI2dldE5lc3RlZENsYXNzaWZpZXJzIiwgIiIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQogCX0KIAogCS8qKgpAQCAtMTkzOTAsMTIgKzIwMDAyLDEyIEBACiAJICogQGdlbmVyYXRlZAogCSAqLwogCXByb3RlY3RlZCB2b2lkIGNyZWF0ZVJlZGVmaW5lZEFubm90YXRpb25zKCkgewotCQlTdHJpbmcgc291cmNlID0gInJlZGVmaW5lZCI7IC8vJE5PTi1OTFMtMSQJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCVN0cmluZyBzb3VyY2UgPSAicmVkZWZpbmVkIjsgLy8kTk9OLU5MUy0xJAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNsYXNzRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDQpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0UHJvcGVydHlfQ2xhc3NfKCksIAogCQkgICBzb3VyY2UsIApAQCAtMTk0MDQsNyArMjAwMTYsNyBAQAogCQkJICJlT3Bwb3NpdGUuY29udGFpbm1lbnQiLCAidHJ1ZSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJlT3Bwb3NpdGUubG93ZXJCb3VuZCIsICIwIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS51cHBlckJvdW5kIiwgIi0xIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZWFibGVFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NDE0LDcgKzIwMDI2LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pcGFja2FnZWFibGVFbGVtZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRBY3Rpdml0eV9TdHJ1Y3R1cmVkTm9kZSgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NDIzLDcgKzIwMDM1LDcgQEAKIAkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiMSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCi0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRBY3Rpdml0eUVkZ2VfSW5Hcm91cCgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NDYwLDcgKzIwMDcyLDcgQEAKIAkJCSAiZU9wcG9zaXRlLmNvbnRhaW5tZW50IiwgImZhbHNlIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCiAJCQkgImVPcHBvc2l0ZS5sb3dlckJvdW5kIiwgIjAiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKIAkJCSAiZU9wcG9zaXRlLnVwcGVyQm91bmQiLCAiLTEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NDcwLDEyICsyMDA4Miw3IEBACiAJCSAgKChFT3BlcmF0aW9uKXN0cnVjdHVyZWRBY3Rpdml0eU5vZGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMyksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilzZW5kT2JqZWN0QWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pc3RhdGVNYWNoaW5lRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NTAwLDEyICsyMDEwNywyNCBAQAogCQkgICgoRU9wZXJhdGlvbil2ZXJ0ZXhFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pc2VuZE9iamVjdEFjdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCisJCSAgIHNvdXJjZSwgCisJCSAgIG5ldyBTdHJpbmdbXSB7CisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoZ2V0QWNjZXB0RXZlbnRBY3Rpb25fVHJpZ2dlcigpLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJCSAibG93ZXJCb3VuZCIsICIxIiwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCQkgInVwcGVyQm91bmQiLCAiMSIgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NTE1LDcgKzIwMTM0LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pdGltZU9ic2VydmF0aW9uQWN0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRJbnRlcnZhbF9NaW4oKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTUyOSw3ICsyMDE0OCw3IEBACiAJCSAgIG5ldyBTdHJpbmdbXSB7CiAJCQkgImxvd2VyQm91bmQiLCAiMSIsIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAogCQkJICJ1cHBlckJvdW5kIiwgIjEiIC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJAotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTk1MzksMTkgKzIwMTU4LDEyIEBACiAJCSAgKChFT3BlcmF0aW9uKWR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pbm9kZUVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgIChnZXRBY2NlcHRFdmVudEFjdGlvbl9UcmlnZ2VyKCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkJICJsb3dlckJvdW5kIiwgIjEiLCAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJCSAidXBwZXJCb3VuZCIsICIxIiAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCiAJfQogCiAJLyoqCkBAIC0xOTU2MSwyMiArMjAxNzMsMjIgQEAKIAkgKiBAZ2VuZXJhdGVkCiAJICovCiAJcHJvdGVjdGVkIHZvaWQgY3JlYXRlU3VwZXJzZXRBbm5vdGF0aW9ucygpIHsKLQkJU3RyaW5nIHNvdXJjZSA9ICJzdXBlcnNldCI7IC8vJE5PTi1OTFMtMSQJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCisJCVN0cmluZyBzb3VyY2UgPSAic3VwZXJzZXQiOyAvLyROT04tTkxTLTEkCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgIChnZXRQcm9wZXJ0eV9Bc3NvY2lhdGlvbigpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKW9wZXJhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgyMCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXBhY2thZ2VFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoNiksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWNsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMTcpLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NTg2LDEyICsyMDE5OCwxMiBAQAogCQkgIChnZXRDbGFzc2lmaWVyX09jY3VycmVuY2UoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0QXNzb2NpYXRpb25fTWVtYmVyRW5kKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKXByb2ZpbGVFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTk2MDYsMTIgKzIwMjE4LDEyIEBACiAJCSAgKChFT3BlcmF0aW9uKXByb2ZpbGVBcHBsaWNhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKChFT3BlcmF0aW9uKWJlaGF2aW9yRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pYmVoYXZpb3JlZENsYXNzaWZpZXJFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAogCQkgICBzb3VyY2UsIApAQCAtMTk2MjEsMTIgKzIwMjMzLDEyIEBACiAJCSAgKGdldEJlaGF2aW9yZWRDbGFzc2lmaWVyX093bmVkQmVoYXZpb3IoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldEFjdGl2aXR5X05vZGUoKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pcmVhbGl6YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAogCQkgICBzb3VyY2UsIApAQCAtMTk2MzYsNyArMjAyNDgsNyBAQAogCQkgICgoRU9wZXJhdGlvbilyZWFsaXphdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgzKSwgCiAJCSAgIHNvdXJjZSwgCiAJCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilzdWJzdGl0dXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAogCQkgICBzb3VyY2UsIApAQCAtMTk2NDYsMTcgKzIwMjU4LDcgQEAKIAkJICAoKEVPcGVyYXRpb24pc3Vic3RpdHV0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDIpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKLQkJYWRkQW5ub3RhdGlvbgotCQkgICgoRU9wZXJhdGlvbilhcnRpZmFjdEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgxKSwgCi0JCSAgIHNvdXJjZSwgCi0JCSAgIG5ldyBTdHJpbmdbXSB7Ci0JCSAgIH0pOwkJCQkJCQkJCQkJCQotCQlhZGRBbm5vdGF0aW9uCi0JCSAgKChFT3BlcmF0aW9uKW1hbmlmZXN0YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMCksIAotCQkgICBzb3VyY2UsIAotCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKIAkJYWRkQW5ub3RhdGlvbgogCQkgICgoRU9wZXJhdGlvbilpbXBsZW1lbnRhdGlvbkVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTY2NiwxMiArMjAyNjgsMjIgQEAKIAkJICAoKEVPcGVyYXRpb24paW1wbGVtZW50YXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMiksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCisJCWFkZEFubm90YXRpb24KKwkJICAoKEVPcGVyYXRpb24pYXJ0aWZhY3RFQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbiltYW5pZmVzdGF0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDApLCAKKwkJICAgc291cmNlLCAKKwkJICAgbmV3IFN0cmluZ1tdIHsKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoZ2V0VGVtcGxhdGVTaWduYXR1cmVfUGFyYW1ldGVyKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFRlbXBsYXRlUGFyYW1ldGVyX1BhcmFtZXRlcmVkRWxlbWVudCgpLCAKIAkJICAgc291cmNlLCAKQEAgLTE5NjgxLDI3ICsyMDI5MywyMiBAQAogCQkgIChnZXRUZW1wbGF0ZVBhcmFtZXRlcl9EZWZhdWx0KCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFBhcmFtZXRlcmFibGVFbGVtZW50X1RlbXBsYXRlUGFyYW1ldGVyKCksIAogCQkgICBzb3VyY2UsIAogCQkgICBuZXcgU3RyaW5nW10gewotCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCisJCSAgIH0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQogCQlhZGRBbm5vdGF0aW9uCiAJCSAgKGdldFRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uX0FjdHVhbCgpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pY29tcG9uZW50RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCi0JCWFkZEFubm90YXRpb24KLQkJICAoKEVPcGVyYXRpb24pcHJvdG9jb2xUcmFuc2l0aW9uRUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKLQkJICAgc291cmNlLCAKLQkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCiAJCWFkZEFubm90YXRpb24KIAkJICAoKEVPcGVyYXRpb24pZGVwbG95bWVudEVDbGFzcy5nZXRFT3BlcmF0aW9ucygpLmdldCgwKSwgCiAJCSAgIHNvdXJjZSwgCkBAIC0xOTcxNiw3ICsyMDMyMywxMiBAQAogCQkgICgoRU9wZXJhdGlvbilkZXBsb3ltZW50VGFyZ2V0RUNsYXNzLmdldEVPcGVyYXRpb25zKCkuZ2V0KDEpLCAKIAkJICAgc291cmNlLCAKIAkJICAgbmV3IFN0cmluZ1tdIHsKLQkJICAgfSk7CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQorCQkgICB9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkKKwkJYWRkQW5ub3RhdGlvbgorCQkgICgoRU9wZXJhdGlvbilwcm90b2NvbFRyYW5zaXRpb25FQ2xhc3MuZ2V0RU9wZXJhdGlvbnMoKS5nZXQoMSksIAorCQkgICBzb3VyY2UsIAorCQkgICBuZXcgU3RyaW5nW10geworCQkgICB9KTsJCQogCX0KIAogfSAvL1VNTDJQYWNrYWdlSW1wbApkaWZmIC0tZ2l0IGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvdXRpbC9VTUwyQWRhcHRlckZhY3RvcnkuamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL3V0aWwvVU1MMkFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggMTlhNDQxMS4uMzc1NmE0NiAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvdXRpbC9VTUwyQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi91dGlsL1VNTDJBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFVNTDJBZGFwdGVyRmFjdG9yeS5qYXZhLHYgMS4xMSAyMDA0LzA2LzAyIDA1OjAyOjI3IGtodXNzZXkgRXhwICQKKyAqICRJZDogVU1MMkFkYXB0ZXJGYWN0b3J5LmphdmEsdiAxLjEyIDIwMDQvMDYvMDMgMDI6NTk6MTkga2h1c3NleSBFeHAgJAogICovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLnVtbDIudXRpbDsKIApAQCAtMzEzLDYgKzMxMywxMiBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlTXVsdGlwbGljaXR5RWxlbWVudChNdWx0aXBsaWNpdHlFbGVtZW50IG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVNdWx0aXBsaWNpdHlFbGVtZW50QWRhcHRlcigpOwogCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlTmFtZWRFbGVtZW50KE5hbWVkRWxlbWVudCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlTmFtZWRFbGVtZW50QWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlTmFtZXNwYWNlKE5hbWVzcGFjZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlTmFtZXNwYWNlQWRhcHRlcigpOworCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoRGlyZWN0ZWRSZWxhdGlvbnNoaXAgb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZURpcmVjdGVkUmVsYXRpb25zaGlwQWRhcHRlcigpOwogCQkJfQpAQCAtMzMxLDEyICszMzcsNiBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlQ29tbWVudChDb21tZW50IG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVDb21tZW50QWRhcHRlcigpOwogCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlTmFtZWRFbGVtZW50KE5hbWVkRWxlbWVudCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlTmFtZWRFbGVtZW50QWRhcHRlcigpOwotCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlTmFtZXNwYWNlKE5hbWVzcGFjZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlTmFtZXNwYWNlQWRhcHRlcigpOwotCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlQ2xhc3Mob3JnLmVjbGlwc2UudW1sMi5DbGFzcyBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlQ2xhc3NBZGFwdGVyKCk7CiAJCQl9CkBAIC00MDYsOSArNDA2LDYgQEAKIAkJCXB1YmxpYyBPYmplY3QgY2FzZVJlZGVmaW5hYmxlRWxlbWVudChSZWRlZmluYWJsZUVsZW1lbnQgb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZVJlZGVmaW5hYmxlRWxlbWVudEFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUdlbmVyYWxpemF0aW9uKEdlbmVyYWxpemF0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVHZW5lcmFsaXphdGlvbkFkYXB0ZXIoKTsKLQkJCX0KIAkJCXB1YmxpYyBPYmplY3QgY2FzZUluc3RhbmNlU3BlY2lmaWNhdGlvbihJbnN0YW5jZVNwZWNpZmljYXRpb24gb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZUluc3RhbmNlU3BlY2lmaWNhdGlvbkFkYXB0ZXIoKTsKIAkJCX0KQEAgLTQxOCw2ICs0MTUsOSBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlSW5zdGFuY2VWYWx1ZShJbnN0YW5jZVZhbHVlIG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVJbnN0YW5jZVZhbHVlQWRhcHRlcigpOwogCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlR2VuZXJhbGl6YXRpb24oR2VuZXJhbGl6YXRpb24gb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUdlbmVyYWxpemF0aW9uQWRhcHRlcigpOworCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlUGFja2FnZWFibGVFbGVtZW50KFBhY2thZ2VhYmxlRWxlbWVudCBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlUGFja2FnZWFibGVFbGVtZW50QWRhcHRlcigpOwogCQkJfQpAQCAtNTAyLDYgKzUwMiwzMyBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlU3RydWN0dXJlZENsYXNzaWZpZXIoU3RydWN0dXJlZENsYXNzaWZpZXIgb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZVN0cnVjdHVyZWRDbGFzc2lmaWVyQWRhcHRlcigpOwogCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlSW50ZXJmYWNlKEludGVyZmFjZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlSW50ZXJmYWNlQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlSW1wbGVtZW50YXRpb24oSW1wbGVtZW50YXRpb24gb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUltcGxlbWVudGF0aW9uQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlQXJ0aWZhY3QoQXJ0aWZhY3Qgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUFydGlmYWN0QWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlTWFuaWZlc3RhdGlvbihNYW5pZmVzdGF0aW9uIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVNYW5pZmVzdGF0aW9uQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlQWN0b3IoQWN0b3Igb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUFjdG9yQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlRXh0ZW5kKEV4dGVuZCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRXh0ZW5kQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlVXNlQ2FzZShVc2VDYXNlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVVc2VDYXNlQWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlRXh0ZW5zaW9uUG9pbnQoRXh0ZW5zaW9uUG9pbnQgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUV4dGVuc2lvblBvaW50QWRhcHRlcigpOworCQkJfQorCQkJcHVibGljIE9iamVjdCBjYXNlSW5jbHVkZShJbmNsdWRlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVJbmNsdWRlQWRhcHRlcigpOworCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlQWN0aXZpdHlFZGdlKEFjdGl2aXR5RWRnZSBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlQWN0aXZpdHlFZGdlQWRhcHRlcigpOwogCQkJfQpAQCAtNTU5LDMyICs1ODYsNTkgQEAKIAkJCXB1YmxpYyBPYmplY3QgY2FzZVZhbHVlUGluKFZhbHVlUGluIG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVWYWx1ZVBpbkFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUFydGlmYWN0KEFydGlmYWN0IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVBcnRpZmFjdEFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNhbGxUcmlnZ2VyKENhbGxUcmlnZ2VyIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVDYWxsVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZU1hbmlmZXN0YXRpb24oTWFuaWZlc3RhdGlvbiBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlTWFuaWZlc3RhdGlvbkFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZU1lc3NhZ2VUcmlnZ2VyKE1lc3NhZ2VUcmlnZ2VyIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVNZXNzYWdlVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUludGVyZmFjZShJbnRlcmZhY2Ugb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUludGVyZmFjZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNoYW5nZVRyaWdnZXIoQ2hhbmdlVHJpZ2dlciBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQ2hhbmdlVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUltcGxlbWVudGF0aW9uKEltcGxlbWVudGF0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVJbXBsZW1lbnRhdGlvbkFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVRyaWdnZXIoVHJpZ2dlciBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUFjdG9yKEFjdG9yIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVBY3RvckFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVJlY2VwdGlvbihSZWNlcHRpb24gb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVJlY2VwdGlvbkFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUV4dGVuZChFeHRlbmQgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUV4dGVuZEFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVNpZ25hbChTaWduYWwgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVNpZ25hbEFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVVzZUNhc2UoVXNlQ2FzZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlVXNlQ2FzZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVNpZ25hbFRyaWdnZXIoU2lnbmFsVHJpZ2dlciBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlU2lnbmFsVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUV4dGVuc2lvblBvaW50KEV4dGVuc2lvblBvaW50IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVFeHRlbnNpb25Qb2ludEFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVRpbWVUcmlnZ2VyKFRpbWVUcmlnZ2VyIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVUaW1lVHJpZ2dlckFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUluY2x1ZGUoSW5jbHVkZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlSW5jbHVkZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZUFueVRyaWdnZXIoQW55VHJpZ2dlciBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQW55VHJpZ2dlckFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKENvbGxhYm9yYXRpb25PY2N1cnJlbmNlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZUFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNvbGxhYm9yYXRpb24oQ29sbGFib3JhdGlvbiBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQ29sbGFib3JhdGlvbkFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZVBvcnQoUG9ydCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlUG9ydEFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIoRW5jYXBzdWxhdGVkQ2xhc3NpZmllciBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRW5jYXBzdWxhdGVkQ2xhc3NpZmllckFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZVZhcmlhYmxlKFZhcmlhYmxlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVWYXJpYWJsZUFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZVN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZUFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNvbmRpdGlvbmFsTm9kZShDb25kaXRpb25hbE5vZGUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUNvbmRpdGlvbmFsTm9kZUFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNsYXVzZShDbGF1c2Ugb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUNsYXVzZUFkYXB0ZXIoKTsKKwkJCX0KKwkJCXB1YmxpYyBPYmplY3QgY2FzZUxvb3BOb2RlKExvb3BOb2RlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVMb29wTm9kZUFkYXB0ZXIoKTsKIAkJCX0KIAkJCXB1YmxpYyBPYmplY3QgY2FzZVRlbXBsYXRlU2lnbmF0dXJlKFRlbXBsYXRlU2lnbmF0dXJlIG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVUZW1wbGF0ZVNpZ25hdHVyZUFkYXB0ZXIoKTsKQEAgLTYwNyw5ICs2NjEsNiBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24oVGVtcGxhdGVQYXJhbWV0ZXJTdWJzdGl0dXRpb24gb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZVRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uQWRhcHRlcigpOwogCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlQ29sbGFib3JhdGlvbihDb2xsYWJvcmF0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVDb2xsYWJvcmF0aW9uQWRhcHRlcigpOwotCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIoT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIgb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZU9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyQWRhcHRlcigpOwogCQkJfQpAQCAtNjI4LDE1ICs2NzksNiBAQAogCQkJcHVibGljIE9iamVjdCBjYXNlQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIoQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIgb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZUNvbm5lY3RhYmxlRWxlbWVudFRlbXBsYXRlUGFyYW1ldGVyQWRhcHRlcigpOwogCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlQ29sbGFib3JhdGlvbk9jY3VycmVuY2UoQ29sbGFib3JhdGlvbk9jY3VycmVuY2Ugb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlQWRhcHRlcigpOwotCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlUG9ydChQb3J0IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVQb3J0QWRhcHRlcigpOwotCQkJfQotCQkJcHVibGljIE9iamVjdCBjYXNlRW5jYXBzdWxhdGVkQ2xhc3NpZmllcihFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyQWRhcHRlcigpOwotCQkJfQogCQkJcHVibGljIE9iamVjdCBjYXNlSW50ZXJhY3Rpb24oSW50ZXJhY3Rpb24gb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZUludGVyYWN0aW9uQWRhcHRlcigpOwogCQkJfQpAQCAtNjY3LDcxICs3MDksMjkgQEAKIAkJCXB1YmxpYyBPYmplY3QgY2FzZVN0b3AoU3RvcCBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlU3RvcEFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVZhcmlhYmxlKFZhcmlhYmxlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVWYXJpYWJsZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVN0YXRlTWFjaGluZShTdGF0ZU1hY2hpbmUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVN0YXRlTWFjaGluZUFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVJlZ2lvbihSZWdpb24gb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVJlZ2lvbkFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUNvbmRpdGlvbmFsTm9kZShDb25kaXRpb25hbE5vZGUgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUNvbmRpdGlvbmFsTm9kZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVBzZXVkb3N0YXRlKFBzZXVkb3N0YXRlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVQc2V1ZG9zdGF0ZUFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUNsYXVzZShDbGF1c2Ugb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUNsYXVzZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVN0YXRlKFN0YXRlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVTdGF0ZUFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUxvb3BOb2RlKExvb3BOb2RlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVMb29wTm9kZUFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVZlcnRleChWZXJ0ZXggb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVZlcnRleEFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUNhbGxUcmlnZ2VyKENhbGxUcmlnZ2VyIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVDYWxsVHJpZ2dlckFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZUNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZShDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2Ugb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZUFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZU1lc3NhZ2VUcmlnZ2VyKE1lc3NhZ2VUcmlnZ2VyIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVNZXNzYWdlVHJpZ2dlckFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZVRyYW5zaXRpb24oVHJhbnNpdGlvbiBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlVHJhbnNpdGlvbkFkYXB0ZXIoKTsKIAkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUNoYW5nZVRyaWdnZXIoQ2hhbmdlVHJpZ2dlciBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlQ2hhbmdlVHJpZ2dlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVRyaWdnZXIoVHJpZ2dlciBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlVHJpZ2dlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVJlY2VwdGlvbihSZWNlcHRpb24gb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZVJlY2VwdGlvbkFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVNpZ25hbChTaWduYWwgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZVNpZ25hbEFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVNpZ25hbFRyaWdnZXIoU2lnbmFsVHJpZ2dlciBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlU2lnbmFsVHJpZ2dlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZVRpbWVUcmlnZ2VyKFRpbWVUcmlnZ2VyIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVUaW1lVHJpZ2dlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUFueVRyaWdnZXIoQW55VHJpZ2dlciBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlQW55VHJpZ2dlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUV4cGFuc2lvbk5vZGUoRXhwYW5zaW9uTm9kZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRXhwYW5zaW9uTm9kZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUV4cGFuc2lvblJlZ2lvbihFeHBhbnNpb25SZWdpb24gb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUV4cGFuc2lvblJlZ2lvbkFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUV4Y2VwdGlvbkhhbmRsZXIoRXhjZXB0aW9uSGFuZGxlciBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRXhjZXB0aW9uSGFuZGxlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUZvcmtOb2RlKEZvcmtOb2RlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVGb3JrTm9kZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUpvaW5Ob2RlKEpvaW5Ob2RlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVKb2luTm9kZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUZsb3dGaW5hbE5vZGUoRmxvd0ZpbmFsTm9kZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRmxvd0ZpbmFsTm9kZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUNlbnRyYWxCdWZmZXJOb2RlKENlbnRyYWxCdWZmZXJOb2RlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVDZW50cmFsQnVmZmVyTm9kZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCXB1YmxpYyBPYmplY3QgY2FzZUFjdGl2aXR5UGFydGl0aW9uKEFjdGl2aXR5UGFydGl0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVBY3Rpdml0eVBhcnRpdGlvbkFkYXB0ZXIoKTsKKwkJCXB1YmxpYyBPYmplY3QgY2FzZUZpbmFsU3RhdGUoRmluYWxTdGF0ZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRmluYWxTdGF0ZUFkYXB0ZXIoKTsKIAkJCX0KIAkJCXB1YmxpYyBPYmplY3QgY2FzZUNyZWF0ZU9iamVjdEFjdGlvbihDcmVhdGVPYmplY3RBY3Rpb24gb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZUNyZWF0ZU9iamVjdEFjdGlvbkFkYXB0ZXIoKTsKQEAgLTgzMiwyOSArODMyLDI5IEBACiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VDYWxsQmVoYXZpb3JBY3Rpb24oQ2FsbEJlaGF2aW9yQWN0aW9uIG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVDYWxsQmVoYXZpb3JBY3Rpb25BZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VTdGF0ZU1hY2hpbmUoU3RhdGVNYWNoaW5lIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVTdGF0ZU1hY2hpbmVBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VGb3JrTm9kZShGb3JrTm9kZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRm9ya05vZGVBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VSZWdpb24oUmVnaW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVSZWdpb25BZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VKb2luTm9kZShKb2luTm9kZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlSm9pbk5vZGVBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VQc2V1ZG9zdGF0ZShQc2V1ZG9zdGF0ZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlUHNldWRvc3RhdGVBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VGbG93RmluYWxOb2RlKEZsb3dGaW5hbE5vZGUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUZsb3dGaW5hbE5vZGVBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VTdGF0ZShTdGF0ZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlU3RhdGVBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VDZW50cmFsQnVmZmVyTm9kZShDZW50cmFsQnVmZmVyTm9kZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQ2VudHJhbEJ1ZmZlck5vZGVBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VWZXJ0ZXgoVmVydGV4IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVWZXJ0ZXhBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VBY3Rpdml0eVBhcnRpdGlvbihBY3Rpdml0eVBhcnRpdGlvbiBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQWN0aXZpdHlQYXJ0aXRpb25BZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UoQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2VBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VFeHBhbnNpb25Ob2RlKEV4cGFuc2lvbk5vZGUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUV4cGFuc2lvbk5vZGVBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VUcmFuc2l0aW9uKFRyYW5zaXRpb24gb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZVRyYW5zaXRpb25BZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VFeHBhbnNpb25SZWdpb24oRXhwYW5zaW9uUmVnaW9uIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVFeHBhbnNpb25SZWdpb25BZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VGaW5hbFN0YXRlKEZpbmFsU3RhdGUgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUZpbmFsU3RhdGVBZGFwdGVyKCk7CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VFeGNlcHRpb25IYW5kbGVyKEV4Y2VwdGlvbkhhbmRsZXIgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUV4Y2VwdGlvbkhhbmRsZXJBZGFwdGVyKCk7CiAJCQl9CiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcmFjdGlvbk9jY3VycmVuY2UoSW50ZXJhY3Rpb25PY2N1cnJlbmNlIG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVJbnRlcmFjdGlvbk9jY3VycmVuY2VBZGFwdGVyKCk7CkBAIC04ODAsNzUgKzg4MCw2IEBACiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VDb21wb25lbnQoQ29tcG9uZW50IG9iamVjdCkgewogCQkJCXJldHVybiBjcmVhdGVDb21wb25lbnRBZGFwdGVyKCk7CiAJCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbENvbmZvcm1hbmNlKFByb3RvY29sQ29uZm9ybWFuY2Ugb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZVByb3RvY29sQ29uZm9ybWFuY2VBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbFN0YXRlTWFjaGluZShQcm90b2NvbFN0YXRlTWFjaGluZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlUHJvdG9jb2xTdGF0ZU1hY2hpbmVBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbFRyYW5zaXRpb24oUHJvdG9jb2xUcmFuc2l0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVQcm90b2NvbFRyYW5zaXRpb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lRXhwcmVzc2lvbihUaW1lRXhwcmVzc2lvbiBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlVGltZUV4cHJlc3Npb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbihEdXJhdGlvbiBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRHVyYXRpb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lT2JzZXJ2YXRpb25BY3Rpb24oVGltZU9ic2VydmF0aW9uQWN0aW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVUaW1lT2JzZXJ2YXRpb25BY3Rpb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbkludGVydmFsKER1cmF0aW9uSW50ZXJ2YWwgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUR1cmF0aW9uSW50ZXJ2YWxBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnZhbChJbnRlcnZhbCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlSW50ZXJ2YWxBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lQ29uc3RyYWludChUaW1lQ29uc3RyYWludCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlVGltZUNvbnN0cmFpbnRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnZhbENvbnN0cmFpbnQoSW50ZXJ2YWxDb25zdHJhaW50IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVJbnRlcnZhbENvbnN0cmFpbnRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lSW50ZXJ2YWwoVGltZUludGVydmFsIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVUaW1lSW50ZXJ2YWxBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24gb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbkNvbnN0cmFpbnQoRHVyYXRpb25Db25zdHJhaW50IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVEdXJhdGlvbkNvbnN0cmFpbnRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEYXRhU3RvcmVOb2RlKERhdGFTdG9yZU5vZGUgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZURhdGFTdG9yZU5vZGVBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24oSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25BZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VQYXJhbWV0ZXJTZXQoUGFyYW1ldGVyU2V0IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVQYXJhbWV0ZXJTZXRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3ltZW50KERlcGxveW1lbnQgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZURlcGxveW1lbnRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3llZEFydGlmYWN0KERlcGxveWVkQXJ0aWZhY3Qgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZURlcGxveWVkQXJ0aWZhY3RBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3ltZW50VGFyZ2V0KERlcGxveW1lbnRUYXJnZXQgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZURlcGxveW1lbnRUYXJnZXRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VOb2RlKE5vZGUgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZU5vZGVBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXZpY2UoRGV2aWNlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVEZXZpY2VBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VFeGVjdXRpb25FbnZpcm9ubWVudChFeGVjdXRpb25FbnZpcm9ubWVudCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRXhlY3V0aW9uRW52aXJvbm1lbnRBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlwdWJsaWMgT2JqZWN0IGNhc2VDb21tdW5pY2F0aW9uUGF0aChDb21tdW5pY2F0aW9uUGF0aCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlQ29tbXVuaWNhdGlvblBhdGhBZGFwdGVyKCk7Ci0JCQl9CiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VSZWFkRXh0ZW50QWN0aW9uKFJlYWRFeHRlbnRBY3Rpb24gb2JqZWN0KSB7CiAJCQkJcmV0dXJuIGNyZWF0ZVJlYWRFeHRlbnRBY3Rpb25BZGFwdGVyKCk7CiAJCQl9CkBAIC05ODUsNiArOTE2LDc1IEBACiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VSYWlzZUV4Y2VwdGlvbkFjdGlvbihSYWlzZUV4Y2VwdGlvbkFjdGlvbiBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlUmFpc2VFeGNlcHRpb25BY3Rpb25BZGFwdGVyKCk7CiAJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEYXRhU3RvcmVOb2RlKERhdGFTdG9yZU5vZGUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZURhdGFTdG9yZU5vZGVBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24oSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb25BZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VQYXJhbWV0ZXJTZXQoUGFyYW1ldGVyU2V0IG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVQYXJhbWV0ZXJTZXRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lRXhwcmVzc2lvbihUaW1lRXhwcmVzc2lvbiBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlVGltZUV4cHJlc3Npb25BZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbihEdXJhdGlvbiBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRHVyYXRpb25BZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lT2JzZXJ2YXRpb25BY3Rpb24oVGltZU9ic2VydmF0aW9uQWN0aW9uIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVUaW1lT2JzZXJ2YXRpb25BY3Rpb25BZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbkludGVydmFsKER1cmF0aW9uSW50ZXJ2YWwgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUR1cmF0aW9uSW50ZXJ2YWxBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnZhbChJbnRlcnZhbCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlSW50ZXJ2YWxBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lQ29uc3RyYWludChUaW1lQ29uc3RyYWludCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlVGltZUNvbnN0cmFpbnRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VJbnRlcnZhbENvbnN0cmFpbnQoSW50ZXJ2YWxDb25zdHJhaW50IG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVJbnRlcnZhbENvbnN0cmFpbnRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VUaW1lSW50ZXJ2YWwoVGltZUludGVydmFsIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVUaW1lSW50ZXJ2YWxBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24gb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZUR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb25BZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEdXJhdGlvbkNvbnN0cmFpbnQoRHVyYXRpb25Db25zdHJhaW50IG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVEdXJhdGlvbkNvbnN0cmFpbnRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3ltZW50KERlcGxveW1lbnQgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZURlcGxveW1lbnRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3llZEFydGlmYWN0KERlcGxveWVkQXJ0aWZhY3Qgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZURlcGxveWVkQXJ0aWZhY3RBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3ltZW50VGFyZ2V0KERlcGxveW1lbnRUYXJnZXQgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZURlcGxveW1lbnRUYXJnZXRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VOb2RlKE5vZGUgb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZU5vZGVBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXZpY2UoRGV2aWNlIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVEZXZpY2VBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VFeGVjdXRpb25FbnZpcm9ubWVudChFeGVjdXRpb25FbnZpcm9ubWVudCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlRXhlY3V0aW9uRW52aXJvbm1lbnRBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VDb21tdW5pY2F0aW9uUGF0aChDb21tdW5pY2F0aW9uUGF0aCBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlQ29tbXVuaWNhdGlvblBhdGhBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbENvbmZvcm1hbmNlKFByb3RvY29sQ29uZm9ybWFuY2Ugb2JqZWN0KSB7CisJCQkJcmV0dXJuIGNyZWF0ZVByb3RvY29sQ29uZm9ybWFuY2VBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbFN0YXRlTWFjaGluZShQcm90b2NvbFN0YXRlTWFjaGluZSBvYmplY3QpIHsKKwkJCQlyZXR1cm4gY3JlYXRlUHJvdG9jb2xTdGF0ZU1hY2hpbmVBZGFwdGVyKCk7CisJCQl9CisJCQlwdWJsaWMgT2JqZWN0IGNhc2VQcm90b2NvbFRyYW5zaXRpb24oUHJvdG9jb2xUcmFuc2l0aW9uIG9iamVjdCkgeworCQkJCXJldHVybiBjcmVhdGVQcm90b2NvbFRyYW5zaXRpb25BZGFwdGVyKCk7CisJCQl9CiAJCQlwdWJsaWMgT2JqZWN0IGNhc2VEZXBsb3ltZW50U3BlY2lmaWNhdGlvbihEZXBsb3ltZW50U3BlY2lmaWNhdGlvbiBvYmplY3QpIHsKIAkJCQlyZXR1cm4gY3JlYXRlRGVwbG95bWVudFNwZWNpZmljYXRpb25BZGFwdGVyKCk7CiAJCQl9CmRpZmYgLS1naXQgYS9kZXByZWNhdGVkL3BsdWdpbnMvb3JnLmVjbGlwc2UudW1sMi9zcmMvb3JnL2VjbGlwc2UvdW1sMi91dGlsL1VNTDJTd2l0Y2guamF2YSBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL3V0aWwvVU1MMlN3aXRjaC5qYXZhCmluZGV4IGM3MmJiY2UuLjZjNDUxZTQgMTAwNjQ0Ci0tLSBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL3V0aWwvVU1MMlN3aXRjaC5qYXZhCisrKyBiL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL3V0aWwvVU1MMlN3aXRjaC5qYXZhCkBAIC04LDcgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICAqCi0gKiAkSWQ6IFVNTDJTd2l0Y2guamF2YSx2IDEuMTEgMjAwNC8wNi8wMiAwNTowMjoyNyBraHVzc2V5IEV4cCAkCisgKiAkSWQ6IFVNTDJTd2l0Y2guamF2YSx2IDEuMTIgMjAwNC8wNi8wMyAwMjo1OToxOSBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMi51dGlsOwogCkBAIC01OTAsMTYgKzU5MCw2IEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5HRU5FUkFMSVpBVElPTjogewotCQkJCUdlbmVyYWxpemF0aW9uIGdlbmVyYWxpemF0aW9uID0gKEdlbmVyYWxpemF0aW9uKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VHZW5lcmFsaXphdGlvbihnZW5lcmFsaXphdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoZ2VuZXJhbGl6YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChnZW5lcmFsaXphdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChnZW5lcmFsaXphdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChnZW5lcmFsaXphdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlNUQU5DRV9TUEVDSUZJQ0FUSU9OOiB7CiAJCQkJSW5zdGFuY2VTcGVjaWZpY2F0aW9uIGluc3RhbmNlU3BlY2lmaWNhdGlvbiA9IChJbnN0YW5jZVNwZWNpZmljYXRpb24pdGhlRU9iamVjdDsKIAkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUluc3RhbmNlU3BlY2lmaWNhdGlvbihpbnN0YW5jZVNwZWNpZmljYXRpb24pOwpAQCAtNjM1LDYgKzYyNSwxNiBAQAogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuR0VORVJBTElaQVRJT046IHsKKwkJCQlHZW5lcmFsaXphdGlvbiBnZW5lcmFsaXphdGlvbiA9IChHZW5lcmFsaXphdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlR2VuZXJhbGl6YXRpb24oZ2VuZXJhbGl6YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURpcmVjdGVkUmVsYXRpb25zaGlwKGdlbmVyYWxpemF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWxhdGlvbnNoaXAoZ2VuZXJhbGl6YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZ2VuZXJhbGl6YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZ2VuZXJhbGl6YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KIAkJCWNhc2UgVU1MMlBhY2thZ2UuRUxFTUVOVF9JTVBPUlQ6IHsKIAkJCQlFbGVtZW50SW1wb3J0IGVsZW1lbnRJbXBvcnQgPSAoRWxlbWVudEltcG9ydCl0aGVFT2JqZWN0OwogCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRWxlbWVudEltcG9ydChlbGVtZW50SW1wb3J0KTsKQEAgLTk3Niw2ICs5NzYsMTQwIEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkZBQ0U6IHsKKwkJCQlJbnRlcmZhY2UgaW50ZXJmYWNlXyA9IChJbnRlcmZhY2UpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUludGVyZmFjZShpbnRlcmZhY2VfKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKGludGVyZmFjZV8pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShpbnRlcmZhY2VfKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGludGVyZmFjZV8pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChpbnRlcmZhY2VfKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoaW50ZXJmYWNlXyk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGludGVyZmFjZV8pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoaW50ZXJmYWNlXyk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoaW50ZXJmYWNlXyk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChpbnRlcmZhY2VfKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGludGVyZmFjZV8pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU1QTEVNRU5UQVRJT046IHsKKwkJCQlJbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRhdGlvbiA9IChJbXBsZW1lbnRhdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSW1wbGVtZW50YXRpb24oaW1wbGVtZW50YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlYWxpemF0aW9uKGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBYnN0cmFjdGlvbihpbXBsZW1lbnRhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwZW5kZW5jeShpbXBsZW1lbnRhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEaXJlY3RlZFJlbGF0aW9uc2hpcChpbXBsZW1lbnRhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChpbXBsZW1lbnRhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVsYXRpb25zaGlwKGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGltcGxlbWVudGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLkFSVElGQUNUOiB7CisJCQkJQXJ0aWZhY3QgYXJ0aWZhY3QgPSAoQXJ0aWZhY3QpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUFydGlmYWN0KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEZXBsb3llZEFydGlmYWN0KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UoYXJ0aWZhY3QpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUoYXJ0aWZhY3QpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChhcnRpZmFjdCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoYXJ0aWZhY3QpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoYXJ0aWZhY3QpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGFydGlmYWN0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLk1BTklGRVNUQVRJT046IHsKKwkJCQlNYW5pZmVzdGF0aW9uIG1hbmlmZXN0YXRpb24gPSAoTWFuaWZlc3RhdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlTWFuaWZlc3RhdGlvbihtYW5pZmVzdGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBYnN0cmFjdGlvbihtYW5pZmVzdGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEZXBlbmRlbmN5KG1hbmlmZXN0YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChtYW5pZmVzdGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEaXJlY3RlZFJlbGF0aW9uc2hpcChtYW5pZmVzdGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQobWFuaWZlc3RhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQobWFuaWZlc3RhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVsYXRpb25zaGlwKG1hbmlmZXN0YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQobWFuaWZlc3RhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChtYW5pZmVzdGF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KG1hbmlmZXN0YXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuQUNUT1I6IHsKKwkJCQlBY3RvciBhY3RvciA9IChBY3Rvcil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQWN0b3IoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShhY3Rvcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShhY3Rvcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGFjdG9yKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChhY3Rvcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChhY3Rvcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoYWN0b3IpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5EOiB7CisJCQkJRXh0ZW5kIGV4dGVuZCA9IChFeHRlbmQpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4dGVuZChleHRlbmQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChleHRlbmQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURpcmVjdGVkUmVsYXRpb25zaGlwKGV4dGVuZCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChleHRlbmQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChleHRlbmQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZXh0ZW5kKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGV4dGVuZCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5VU0VfQ0FTRTogeworCQkJCVVzZUNhc2UgdXNlQ2FzZSA9IChVc2VDYXNlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VVc2VDYXNlKHVzZUNhc2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yZWRDbGFzc2lmaWVyKHVzZUNhc2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIodXNlQ2FzZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHVzZUNhc2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUodXNlQ2FzZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHVzZUNhc2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudCh1c2VDYXNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQodXNlQ2FzZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudCh1c2VDYXNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudCh1c2VDYXNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHVzZUNhc2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodXNlQ2FzZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTlNJT05fUE9JTlQ6IHsKKwkJCQlFeHRlbnNpb25Qb2ludCBleHRlbnNpb25Qb2ludCA9IChFeHRlbnNpb25Qb2ludCl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRXh0ZW5zaW9uUG9pbnQoZXh0ZW5zaW9uUG9pbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChleHRlbnNpb25Qb2ludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGV4dGVuc2lvblBvaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGV4dGVuc2lvblBvaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGV4dGVuc2lvblBvaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGV4dGVuc2lvblBvaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLklOQ0xVREU6IHsKKwkJCQlJbmNsdWRlIGluY2x1ZGUgPSAoSW5jbHVkZSl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSW5jbHVkZShpbmNsdWRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoaW5jbHVkZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoaW5jbHVkZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChpbmNsdWRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWxhdGlvbnNoaXAoaW5jbHVkZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChpbmNsdWRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGluY2x1ZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KIAkJCWNhc2UgVU1MMlBhY2thZ2UuQUNUSU9OOiB7CiAJCQkJQWN0aW9uIGFjdGlvbiA9IChBY3Rpb24pdGhlRU9iamVjdDsKIAkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUFjdGlvbihhY3Rpb24pOwpAQCAtMTEyOSwxMzcgKzEyNjMsMjEwIEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5BUlRJRkFDVDogewotCQkJCUFydGlmYWN0IGFydGlmYWN0ID0gKEFydGlmYWN0KXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VBcnRpZmFjdChhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95ZWRBcnRpZmFjdChhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGFydGlmYWN0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGFydGlmYWN0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoYXJ0aWZhY3QpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGFydGlmYWN0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGFydGlmYWN0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChhcnRpZmFjdCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChhcnRpZmFjdCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfVFJJR0dFUjogeworCQkJCUNhbGxUcmlnZ2VyIGNhbGxUcmlnZ2VyID0gKENhbGxUcmlnZ2VyKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDYWxsVHJpZ2dlcihjYWxsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTWVzc2FnZVRyaWdnZXIoY2FsbFRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRyaWdnZXIoY2FsbFRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjYWxsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChjYWxsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjYWxsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjYWxsVHJpZ2dlcik7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5NQU5JRkVTVEFUSU9OOiB7Ci0JCQkJTWFuaWZlc3RhdGlvbiBtYW5pZmVzdGF0aW9uID0gKE1hbmlmZXN0YXRpb24pdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZU1hbmlmZXN0YXRpb24obWFuaWZlc3RhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWJzdHJhY3Rpb24obWFuaWZlc3RhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwZW5kZW5jeShtYW5pZmVzdGF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQobWFuaWZlc3RhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAobWFuaWZlc3RhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KG1hbmlmZXN0YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KG1hbmlmZXN0YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChtYW5pZmVzdGF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KG1hbmlmZXN0YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQobWFuaWZlc3RhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChtYW5pZmVzdGF0aW9uKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ0hBTkdFX1RSSUdHRVI6IHsKKwkJCQlDaGFuZ2VUcmlnZ2VyIGNoYW5nZVRyaWdnZXIgPSAoQ2hhbmdlVHJpZ2dlcil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ2hhbmdlVHJpZ2dlcihjaGFuZ2VUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUcmlnZ2VyKGNoYW5nZVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjaGFuZ2VUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNoYW5nZVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY2hhbmdlVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjaGFuZ2VUcmlnZ2VyKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSRkFDRTogewotCQkJCUludGVyZmFjZSBpbnRlcmZhY2VfID0gKEludGVyZmFjZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSW50ZXJmYWNlKGludGVyZmFjZV8pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIoaW50ZXJmYWNlXyk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGludGVyZmFjZV8pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUoaW50ZXJmYWNlXyk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGludGVyZmFjZV8pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChpbnRlcmZhY2VfKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoaW50ZXJmYWNlXyk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChpbnRlcmZhY2VfKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChpbnRlcmZhY2VfKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGludGVyZmFjZV8pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoaW50ZXJmYWNlXyk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0VQVElPTjogeworCQkJCVJlY2VwdGlvbiByZWNlcHRpb24gPSAoUmVjZXB0aW9uKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VSZWNlcHRpb24ocmVjZXB0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmFsRmVhdHVyZShyZWNlcHRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShyZWNlcHRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUZlYXR1cmUocmVjZXB0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocmVjZXB0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQocmVjZXB0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHJlY2VwdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChyZWNlcHRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocmVjZXB0aW9uKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklNUExFTUVOVEFUSU9OOiB7Ci0JCQkJSW1wbGVtZW50YXRpb24gaW1wbGVtZW50YXRpb24gPSAoSW1wbGVtZW50YXRpb24pdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUltcGxlbWVudGF0aW9uKGltcGxlbWVudGF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWFsaXphdGlvbihpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWJzdHJhY3Rpb24oaW1wbGVtZW50YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURlcGVuZGVuY3koaW1wbGVtZW50YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoaW1wbGVtZW50YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoaW1wbGVtZW50YXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChpbXBsZW1lbnRhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChpbXBsZW1lbnRhdGlvbik7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNJR05BTDogeworCQkJCVNpZ25hbCBzaWduYWwgPSAoU2lnbmFsKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VTaWduYWwoc2lnbmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKHNpZ25hbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHNpZ25hbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShzaWduYWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChzaWduYWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChzaWduYWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChzaWduYWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc2lnbmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChzaWduYWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoc2lnbmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHNpZ25hbCk7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RPUjogewotCQkJCUFjdG9yIGFjdG9yID0gKEFjdG9yKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VBY3RvcihhY3Rvcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihhY3Rvcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGFjdG9yKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGFjdG9yKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoYWN0b3IpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChhY3Rvcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGFjdG9yKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGFjdG9yKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChhY3Rvcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChhY3Rvcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChhY3Rvcik7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNJR05BTF9UUklHR0VSOiB7CisJCQkJU2lnbmFsVHJpZ2dlciBzaWduYWxUcmlnZ2VyID0gKFNpZ25hbFRyaWdnZXIpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVNpZ25hbFRyaWdnZXIoc2lnbmFsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTWVzc2FnZVRyaWdnZXIoc2lnbmFsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHJpZ2dlcihzaWduYWxUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoc2lnbmFsVHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChzaWduYWxUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHNpZ25hbFRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoc2lnbmFsVHJpZ2dlcik7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTkQ6IHsKLQkJCQlFeHRlbmQgZXh0ZW5kID0gKEV4dGVuZCl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRXh0ZW5kKGV4dGVuZCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGV4dGVuZCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoZXh0ZW5kKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGV4dGVuZCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVsYXRpb25zaGlwKGV4dGVuZCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChleHRlbmQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZXh0ZW5kKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9UUklHR0VSOiB7CisJCQkJVGltZVRyaWdnZXIgdGltZVRyaWdnZXIgPSAoVGltZVRyaWdnZXIpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVRpbWVUcmlnZ2VyKHRpbWVUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUcmlnZ2VyKHRpbWVUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodGltZVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodGltZVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodGltZVRyaWdnZXIpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVVNFX0NBU0U6IHsKLQkJCQlVc2VDYXNlIHVzZUNhc2UgPSAoVXNlQ2FzZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlVXNlQ2FzZSh1c2VDYXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmVkQ2xhc3NpZmllcih1c2VDYXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKHVzZUNhc2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZSh1c2VDYXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKHVzZUNhc2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudCh1c2VDYXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodXNlQ2FzZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KHVzZUNhc2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodXNlQ2FzZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQodXNlQ2FzZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh1c2VDYXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHVzZUNhc2UpOworCQkJY2FzZSBVTUwyUGFja2FnZS5BTllfVFJJR0dFUjogeworCQkJCUFueVRyaWdnZXIgYW55VHJpZ2dlciA9IChBbnlUcmlnZ2VyKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VBbnlUcmlnZ2VyKGFueVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU1lc3NhZ2VUcmlnZ2VyKGFueVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRyaWdnZXIoYW55VHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGFueVRyaWdnZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoYW55VHJpZ2dlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChhbnlUcmlnZ2VyKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGFueVRyaWdnZXIpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5TSU9OX1BPSU5UOiB7Ci0JCQkJRXh0ZW5zaW9uUG9pbnQgZXh0ZW5zaW9uUG9pbnQgPSAoRXh0ZW5zaW9uUG9pbnQpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4dGVuc2lvblBvaW50KGV4dGVuc2lvblBvaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZXh0ZW5zaW9uUG9pbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChleHRlbnNpb25Qb2ludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChleHRlbnNpb25Qb2ludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChleHRlbnNpb25Qb2ludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChleHRlbnNpb25Qb2ludCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTExBQk9SQVRJT05fT0NDVVJSRU5DRTogeworCQkJCUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlIGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlID0gKENvbGxhYm9yYXRpb25PY2N1cnJlbmNlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZShjb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklOQ0xVREU6IHsKLQkJCQlJbmNsdWRlIGluY2x1ZGUgPSAoSW5jbHVkZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSW5jbHVkZShpbmNsdWRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoaW5jbHVkZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGlyZWN0ZWRSZWxhdGlvbnNoaXAoaW5jbHVkZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChpbmNsdWRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWxhdGlvbnNoaXAoaW5jbHVkZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChpbmNsdWRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGluY2x1ZGUpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT0xMQUJPUkFUSU9OOiB7CisJCQkJQ29sbGFib3JhdGlvbiBjb2xsYWJvcmF0aW9uID0gKENvbGxhYm9yYXRpb24pdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUNvbGxhYm9yYXRpb24oY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIoY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZENsYXNzaWZpZXIoY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihjb2xsYWJvcmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UoY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShjb2xsYWJvcmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGNvbGxhYm9yYXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChjb2xsYWJvcmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbGxhYm9yYXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGNvbGxhYm9yYXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY29sbGFib3JhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjb2xsYWJvcmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlBPUlQ6IHsKKwkJCQlQb3J0IHBvcnQgPSAoUG9ydCl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUG9ydChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQcm9wZXJ0eShwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmFsRmVhdHVyZShwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb25uZWN0YWJsZUVsZW1lbnQocG9ydCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95bWVudFRhcmdldChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VGZWF0dXJlKHBvcnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGVkRWxlbWVudChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VNdWx0aXBsaWNpdHlFbGVtZW50KHBvcnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQocG9ydCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChwb3J0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHBvcnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocG9ydCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5WQVJJQUJMRTogeworCQkJCVZhcmlhYmxlIHZhcmlhYmxlID0gKFZhcmlhYmxlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VWYXJpYWJsZSh2YXJpYWJsZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ29ubmVjdGFibGVFbGVtZW50KHZhcmlhYmxlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU11bHRpcGxpY2l0eUVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudCh2YXJpYWJsZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodmFyaWFibGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuU1RSVUNUVVJFRF9BQ1RJVklUWV9OT0RFOiB7CisJCQkJU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSBzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlID0gKFN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aW9uKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eUdyb3VwKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUV4ZWN1dGFibGVOb2RlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ09ORElUSU9OQUxfTk9ERTogeworCQkJCUNvbmRpdGlvbmFsTm9kZSBjb25kaXRpb25hbE5vZGUgPSAoQ29uZGl0aW9uYWxOb2RlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb25kaXRpb25hbE5vZGUoY29uZGl0aW9uYWxOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aW9uKGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlHcm91cChjb25kaXRpb25hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUV4ZWN1dGFibGVOb2RlKGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjb25kaXRpb25hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShjb25kaXRpb25hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoY29uZGl0aW9uYWxOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGNvbmRpdGlvbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5DTEFVU0U6IHsKKwkJCQlDbGF1c2UgY2xhdXNlID0gKENsYXVzZSl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ2xhdXNlKGNsYXVzZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjbGF1c2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoY2xhdXNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLkxPT1BfTk9ERTogeworCQkJCUxvb3BOb2RlIGxvb3BOb2RlID0gKExvb3BOb2RlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VMb29wTm9kZShsb29wTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZShsb29wTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aW9uKGxvb3BOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UobG9vcE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAobG9vcE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUV4ZWN1dGFibGVOb2RlKGxvb3BOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQobG9vcE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQobG9vcE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShsb29wTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChsb29wTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChsb29wTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGxvb3BOb2RlKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9CkBAIC0xMzA2LDI0ICsxNTEzLDYgQEAKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTExBQk9SQVRJT046IHsKLQkJCQlDb2xsYWJvcmF0aW9uIGNvbGxhYm9yYXRpb24gPSAoQ29sbGFib3JhdGlvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ29sbGFib3JhdGlvbihjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmVkQ2xhc3NpZmllcihjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQ2xhc3NpZmllcihjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKGNvbGxhYm9yYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGNvbGxhYm9yYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoY29sbGFib3JhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGNvbGxhYm9yYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoY29sbGFib3JhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoY29sbGFib3JhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjb2xsYWJvcmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNvbGxhYm9yYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KIAkJCWNhc2UgVU1MMlBhY2thZ2UuT1BFUkFUSU9OX1RFTVBMQVRFX1BBUkFNRVRFUjogewogCQkJCU9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyIG9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyID0gKE9wZXJhdGlvblRlbXBsYXRlUGFyYW1ldGVyKXRoZUVPYmplY3Q7CiAJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VPcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlcihvcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlcik7CkBAIC0xMzYzLDM1ICsxNTUyLDYgQEAKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTExBQk9SQVRJT05fT0NDVVJSRU5DRTogewotCQkJCUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlIGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlID0gKENvbGxhYm9yYXRpb25PY2N1cnJlbmNlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZShjb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlBPUlQ6IHsKLQkJCQlQb3J0IHBvcnQgPSAoUG9ydCl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUG9ydChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQcm9wZXJ0eShwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmFsRmVhdHVyZShwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb25uZWN0YWJsZUVsZW1lbnQocG9ydCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95bWVudFRhcmdldChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VGZWF0dXJlKHBvcnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGVkRWxlbWVudChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VNdWx0aXBsaWNpdHlFbGVtZW50KHBvcnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQocG9ydCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChwb3J0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHBvcnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocG9ydCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkFDVElPTjogewogCQkJCUludGVyYWN0aW9uIGludGVyYWN0aW9uID0gKEludGVyYWN0aW9uKXRoZUVPYmplY3Q7CiAJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VJbnRlcmFjdGlvbihpbnRlcmFjdGlvbik7CkBAIC0xNDkxLDI2NyArMTY1MSw5NiBAQAogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVkFSSUFCTEU6IHsKLQkJCQlWYXJpYWJsZSB2YXJpYWJsZSA9IChWYXJpYWJsZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlVmFyaWFibGUodmFyaWFibGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbm5lY3RhYmxlRWxlbWVudCh2YXJpYWJsZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KHZhcmlhYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VNdWx0aXBsaWNpdHlFbGVtZW50KHZhcmlhYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodmFyaWFibGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHZhcmlhYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHZhcmlhYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHZhcmlhYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHZhcmlhYmxlKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuU1RBVEVfTUFDSElORTogeworCQkJCVN0YXRlTWFjaGluZSBzdGF0ZU1hY2hpbmUgPSAoU3RhdGVNYWNoaW5lKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VTdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcihzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzKHN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIoc3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyKHN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRDbGFzc2lmaWVyKHN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChzdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoc3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHN0YXRlTWFjaGluZSk7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5TVFJVQ1RVUkVEX0FDVElWSVRZX05PREU6IHsKLQkJCQlTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlIHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUgPSAoU3RydWN0dXJlZEFjdGl2aXR5Tm9kZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZShzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpb24oc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRXhlY3V0YWJsZU5vZGUoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKHN0cnVjdHVyZWRBY3Rpdml0eU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChzdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoc3RydWN0dXJlZEFjdGl2aXR5Tm9kZSk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlJFR0lPTjogeworCQkJCVJlZ2lvbiByZWdpb24gPSAoUmVnaW9uKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VSZWdpb24ocmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UocmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQocmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChyZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocmVnaW9uKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTkRJVElPTkFMX05PREU6IHsKLQkJCQlDb25kaXRpb25hbE5vZGUgY29uZGl0aW9uYWxOb2RlID0gKENvbmRpdGlvbmFsTm9kZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ29uZGl0aW9uYWxOb2RlKGNvbmRpdGlvbmFsTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZEFjdGl2aXR5Tm9kZShjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGlvbihjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAoY29uZGl0aW9uYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFeGVjdXRhYmxlTm9kZShjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY29uZGl0aW9uYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoY29uZGl0aW9uYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbmRpdGlvbmFsTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjb25kaXRpb25hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChjb25kaXRpb25hbE5vZGUpOworCQkJY2FzZSBVTUwyUGFja2FnZS5QU0VVRE9TVEFURTogeworCQkJCVBzZXVkb3N0YXRlIHBzZXVkb3N0YXRlID0gKFBzZXVkb3N0YXRlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VQc2V1ZG9zdGF0ZShwc2V1ZG9zdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmVydGV4KHBzZXVkb3N0YXRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocHNldWRvc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQocHNldWRvc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQocHNldWRvc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocHNldWRvc3RhdGUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0xBVVNFOiB7Ci0JCQkJQ2xhdXNlIGNsYXVzZSA9IChDbGF1c2UpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUNsYXVzZShjbGF1c2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY2xhdXNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNsYXVzZSk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNUQVRFOiB7CisJCQkJU3RhdGUgc3RhdGUgPSAoU3RhdGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVN0YXRlKHN0YXRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2Uoc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChzdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmVydGV4KHN0YXRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoc3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoc3RhdGUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuTE9PUF9OT0RFOiB7Ci0JCQkJTG9vcE5vZGUgbG9vcE5vZGUgPSAoTG9vcE5vZGUpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUxvb3BOb2RlKGxvb3BOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKGxvb3BOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpb24obG9vcE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShsb29wTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlHcm91cChsb29wTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRXhlY3V0YWJsZU5vZGUobG9vcE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChsb29wTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChsb29wTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKGxvb3BOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGxvb3BOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGxvb3BOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQobG9vcE5vZGUpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRTogeworCQkJCUNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSBjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UgPSAoQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWZXJ0ZXgoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfVFJJR0dFUjogewotCQkJCUNhbGxUcmlnZ2VyIGNhbGxUcmlnZ2VyID0gKENhbGxUcmlnZ2VyKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDYWxsVHJpZ2dlcihjYWxsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTWVzc2FnZVRyaWdnZXIoY2FsbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRyaWdnZXIoY2FsbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjYWxsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChjYWxsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjYWxsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjYWxsVHJpZ2dlcik7CisJCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT046IHsKKwkJCQlUcmFuc2l0aW9uIHRyYW5zaXRpb24gPSAoVHJhbnNpdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlVHJhbnNpdGlvbih0cmFuc2l0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQodHJhbnNpdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHRyYW5zaXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodHJhbnNpdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh0cmFuc2l0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHRyYW5zaXRpb24pOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0hBTkdFX1RSSUdHRVI6IHsKLQkJCQlDaGFuZ2VUcmlnZ2VyIGNoYW5nZVRyaWdnZXIgPSAoQ2hhbmdlVHJpZ2dlcil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ2hhbmdlVHJpZ2dlcihjaGFuZ2VUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUcmlnZ2VyKGNoYW5nZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjaGFuZ2VUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNoYW5nZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY2hhbmdlVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjaGFuZ2VUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0VQVElPTjogewotCQkJCVJlY2VwdGlvbiByZWNlcHRpb24gPSAoUmVjZXB0aW9uKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VSZWNlcHRpb24ocmVjZXB0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmFsRmVhdHVyZShyZWNlcHRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShyZWNlcHRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUZlYXR1cmUocmVjZXB0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocmVjZXB0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQocmVjZXB0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHJlY2VwdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChyZWNlcHRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocmVjZXB0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlNJR05BTDogewotCQkJCVNpZ25hbCBzaWduYWwgPSAoU2lnbmFsKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VTaWduYWwoc2lnbmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKHNpZ25hbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHNpZ25hbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShzaWduYWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChzaWduYWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChzaWduYWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChzaWduYWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc2lnbmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChzaWduYWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoc2lnbmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHNpZ25hbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5TSUdOQUxfVFJJR0dFUjogewotCQkJCVNpZ25hbFRyaWdnZXIgc2lnbmFsVHJpZ2dlciA9IChTaWduYWxUcmlnZ2VyKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VTaWduYWxUcmlnZ2VyKHNpZ25hbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU1lc3NhZ2VUcmlnZ2VyKHNpZ25hbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRyaWdnZXIoc2lnbmFsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHNpZ25hbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoc2lnbmFsVHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChzaWduYWxUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHNpZ25hbFRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9UUklHR0VSOiB7Ci0JCQkJVGltZVRyaWdnZXIgdGltZVRyaWdnZXIgPSAoVGltZVRyaWdnZXIpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVRpbWVUcmlnZ2VyKHRpbWVUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUcmlnZ2VyKHRpbWVUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodGltZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodGltZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodGltZVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuQU5ZX1RSSUdHRVI6IHsKLQkJCQlBbnlUcmlnZ2VyIGFueVRyaWdnZXIgPSAoQW55VHJpZ2dlcil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQW55VHJpZ2dlcihhbnlUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VNZXNzYWdlVHJpZ2dlcihhbnlUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUcmlnZ2VyKGFueVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChhbnlUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGFueVRyaWdnZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoYW55VHJpZ2dlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChhbnlUcmlnZ2VyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkVYUEFOU0lPTl9OT0RFOiB7Ci0JCQkJRXhwYW5zaW9uTm9kZSBleHBhbnNpb25Ob2RlID0gKEV4cGFuc2lvbk5vZGUpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4cGFuc2lvbk5vZGUoZXhwYW5zaW9uTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlT2JqZWN0Tm9kZShleHBhbnNpb25Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoZXhwYW5zaW9uTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGV4cGFuc2lvbk5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChleHBhbnNpb25Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZXhwYW5zaW9uTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChleHBhbnNpb25Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGV4cGFuc2lvbk5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZXhwYW5zaW9uTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fUkVHSU9OOiB7Ci0JCQkJRXhwYW5zaW9uUmVnaW9uIGV4cGFuc2lvblJlZ2lvbiA9IChFeHBhbnNpb25SZWdpb24pdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4cGFuc2lvblJlZ2lvbihleHBhbnNpb25SZWdpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRBY3Rpdml0eU5vZGUoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpb24oZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eUdyb3VwKGV4cGFuc2lvblJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRXhlY3V0YWJsZU5vZGUoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGV4cGFuc2lvblJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKGV4cGFuc2lvblJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChleHBhbnNpb25SZWdpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZXhwYW5zaW9uUmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkVYQ0VQVElPTl9IQU5ETEVSOiB7Ci0JCQkJRXhjZXB0aW9uSGFuZGxlciBleGNlcHRpb25IYW5kbGVyID0gKEV4Y2VwdGlvbkhhbmRsZXIpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4Y2VwdGlvbkhhbmRsZXIoZXhjZXB0aW9uSGFuZGxlcik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChleGNlcHRpb25IYW5kbGVyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGV4Y2VwdGlvbkhhbmRsZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuRk9SS19OT0RFOiB7Ci0JCQkJRm9ya05vZGUgZm9ya05vZGUgPSAoRm9ya05vZGUpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUZvcmtOb2RlKGZvcmtOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb250cm9sTm9kZShmb3JrTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKGZvcmtOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZm9ya05vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChmb3JrTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChmb3JrTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChmb3JrTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChmb3JrTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5KT0lOX05PREU6IHsKLQkJCQlKb2luTm9kZSBqb2luTm9kZSA9IChKb2luTm9kZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSm9pbk5vZGUoam9pbk5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbnRyb2xOb2RlKGpvaW5Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoam9pbk5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChqb2luTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGpvaW5Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGpvaW5Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGpvaW5Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGpvaW5Ob2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkZMT1dfRklOQUxfTk9ERTogewotCQkJCUZsb3dGaW5hbE5vZGUgZmxvd0ZpbmFsTm9kZSA9IChGbG93RmluYWxOb2RlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VGbG93RmluYWxOb2RlKGZsb3dGaW5hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUZpbmFsTm9kZShmbG93RmluYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb250cm9sTm9kZShmbG93RmluYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoZmxvd0ZpbmFsTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGZsb3dGaW5hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChmbG93RmluYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGZsb3dGaW5hbE5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZmxvd0ZpbmFsTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChmbG93RmluYWxOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNFTlRSQUxfQlVGRkVSX05PREU6IHsKLQkJCQlDZW50cmFsQnVmZmVyTm9kZSBjZW50cmFsQnVmZmVyTm9kZSA9IChDZW50cmFsQnVmZmVyTm9kZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ2VudHJhbEJ1ZmZlck5vZGUoY2VudHJhbEJ1ZmZlck5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU9iamVjdE5vZGUoY2VudHJhbEJ1ZmZlck5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShjZW50cmFsQnVmZmVyTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGNlbnRyYWxCdWZmZXJOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoY2VudHJhbEJ1ZmZlck5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJVklUWV9QQVJUSVRJT046IHsKLQkJCQlBY3Rpdml0eVBhcnRpdGlvbiBhY3Rpdml0eVBhcnRpdGlvbiA9IChBY3Rpdml0eVBhcnRpdGlvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQWN0aXZpdHlQYXJ0aXRpb24oYWN0aXZpdHlQYXJ0aXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChhY3Rpdml0eVBhcnRpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlHcm91cChhY3Rpdml0eVBhcnRpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChhY3Rpdml0eVBhcnRpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChhY3Rpdml0eVBhcnRpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChhY3Rpdml0eVBhcnRpdGlvbik7CisJCQljYXNlIFVNTDJQYWNrYWdlLkZJTkFMX1NUQVRFOiB7CisJCQkJRmluYWxTdGF0ZSBmaW5hbFN0YXRlID0gKEZpbmFsU3RhdGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUZpbmFsU3RhdGUoZmluYWxTdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RhdGUoZmluYWxTdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGZpbmFsU3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChmaW5hbFN0YXRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWZXJ0ZXgoZmluYWxTdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGZpbmFsU3RhdGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZmluYWxTdGF0ZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChmaW5hbFN0YXRlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGZpbmFsU3RhdGUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KQEAgLTIxMTYsOTYgKzIxMDUsMTA3IEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5TVEFURV9NQUNISU5FOiB7Ci0JCQkJU3RhdGVNYWNoaW5lIHN0YXRlTWFjaGluZSA9IChTdGF0ZU1hY2hpbmUpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yKHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3Moc3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmVkQ2xhc3NpZmllcihzdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIoc3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZENsYXNzaWZpZXIoc3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2Uoc3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChzdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChzdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoc3RhdGVNYWNoaW5lKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRk9SS19OT0RFOiB7CisJCQkJRm9ya05vZGUgZm9ya05vZGUgPSAoRm9ya05vZGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUZvcmtOb2RlKGZvcmtOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb250cm9sTm9kZShmb3JrTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKGZvcmtOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZm9ya05vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChmb3JrTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChmb3JrTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChmb3JrTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChmb3JrTm9kZSk7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5SRUdJT046IHsKLQkJCQlSZWdpb24gcmVnaW9uID0gKFJlZ2lvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUmVnaW9uKHJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKHJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChyZWdpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQocmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHJlZ2lvbik7CisJCQljYXNlIFVNTDJQYWNrYWdlLkpPSU5fTk9ERTogeworCQkJCUpvaW5Ob2RlIGpvaW5Ob2RlID0gKEpvaW5Ob2RlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VKb2luTm9kZShqb2luTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ29udHJvbE5vZGUoam9pbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShqb2luTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGpvaW5Ob2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoam9pbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoam9pbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoam9pbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoam9pbk5vZGUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuUFNFVURPU1RBVEU6IHsKLQkJCQlQc2V1ZG9zdGF0ZSBwc2V1ZG9zdGF0ZSA9IChQc2V1ZG9zdGF0ZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUHNldWRvc3RhdGUocHNldWRvc3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVZlcnRleChwc2V1ZG9zdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHBzZXVkb3N0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHBzZXVkb3N0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHBzZXVkb3N0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHBzZXVkb3N0YXRlKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRkxPV19GSU5BTF9OT0RFOiB7CisJCQkJRmxvd0ZpbmFsTm9kZSBmbG93RmluYWxOb2RlID0gKEZsb3dGaW5hbE5vZGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUZsb3dGaW5hbE5vZGUoZmxvd0ZpbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRmluYWxOb2RlKGZsb3dGaW5hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbnRyb2xOb2RlKGZsb3dGaW5hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShmbG93RmluYWxOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZmxvd0ZpbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGZsb3dGaW5hbE5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZmxvd0ZpbmFsTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChmbG93RmluYWxOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGZsb3dGaW5hbE5vZGUpOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuU1RBVEU6IHsKLQkJCQlTdGF0ZSBzdGF0ZSA9IChTdGF0ZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlU3RhdGUoc3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShzdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHN0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWZXJ0ZXgoc3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChzdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChzdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChzdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChzdGF0ZSk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNFTlRSQUxfQlVGRkVSX05PREU6IHsKKwkJCQlDZW50cmFsQnVmZmVyTm9kZSBjZW50cmFsQnVmZmVyTm9kZSA9IChDZW50cmFsQnVmZmVyTm9kZSl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ2VudHJhbEJ1ZmZlck5vZGUoY2VudHJhbEJ1ZmZlck5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU9iamVjdE5vZGUoY2VudHJhbEJ1ZmZlck5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShjZW50cmFsQnVmZmVyTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGNlbnRyYWxCdWZmZXJOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoY2VudHJhbEJ1ZmZlck5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjZW50cmFsQnVmZmVyTm9kZSk7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUSU9OX1BPSU5UX1JFRkVSRU5DRTogewotCQkJCUNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSBjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UgPSAoQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWZXJ0ZXgoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChjb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoY29ubmVjdGlvblBvaW50UmVmZXJlbmNlKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQUNUSVZJVFlfUEFSVElUSU9OOiB7CisJCQkJQWN0aXZpdHlQYXJ0aXRpb24gYWN0aXZpdHlQYXJ0aXRpb24gPSAoQWN0aXZpdHlQYXJ0aXRpb24pdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUFjdGl2aXR5UGFydGl0aW9uKGFjdGl2aXR5UGFydGl0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoYWN0aXZpdHlQYXJ0aXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAoYWN0aXZpdHlQYXJ0aXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoYWN0aXZpdHlQYXJ0aXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoYWN0aXZpdHlQYXJ0aXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoYWN0aXZpdHlQYXJ0aXRpb24pOwogCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CiAJCQkJcmV0dXJuIHJlc3VsdDsKIAkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVFJBTlNJVElPTjogewotCQkJCVRyYW5zaXRpb24gdHJhbnNpdGlvbiA9IChUcmFuc2l0aW9uKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VUcmFuc2l0aW9uKHRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudCh0cmFuc2l0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodHJhbnNpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudCh0cmFuc2l0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodHJhbnNpdGlvbik7CisJCQljYXNlIFVNTDJQYWNrYWdlLkVYUEFOU0lPTl9OT0RFOiB7CisJCQkJRXhwYW5zaW9uTm9kZSBleHBhbnNpb25Ob2RlID0gKEV4cGFuc2lvbk5vZGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4cGFuc2lvbk5vZGUoZXhwYW5zaW9uTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlT2JqZWN0Tm9kZShleHBhbnNpb25Ob2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoZXhwYW5zaW9uTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGV4cGFuc2lvbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChleHBhbnNpb25Ob2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZXhwYW5zaW9uTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChleHBhbnNpb25Ob2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGV4cGFuc2lvbk5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZXhwYW5zaW9uTm9kZSk7CiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5GSU5BTF9TVEFURTogewotCQkJCUZpbmFsU3RhdGUgZmluYWxTdGF0ZSA9IChGaW5hbFN0YXRlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VGaW5hbFN0YXRlKGZpbmFsU3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0YXRlKGZpbmFsU3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShmaW5hbFN0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoZmluYWxTdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmVydGV4KGZpbmFsU3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChmaW5hbFN0YXRlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGZpbmFsU3RhdGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZmluYWxTdGF0ZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChmaW5hbFN0YXRlKTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX1JFR0lPTjogeworCQkJCUV4cGFuc2lvblJlZ2lvbiBleHBhbnNpb25SZWdpb24gPSAoRXhwYW5zaW9uUmVnaW9uKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VFeHBhbnNpb25SZWdpb24oZXhwYW5zaW9uUmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aW9uKGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlHcm91cChleHBhbnNpb25SZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUV4ZWN1dGFibGVOb2RlKGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChleHBhbnNpb25SZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShleHBhbnNpb25SZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZXhwYW5zaW9uUmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGV4cGFuc2lvblJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5FWENFUFRJT05fSEFORExFUjogeworCQkJCUV4Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlciA9IChFeGNlcHRpb25IYW5kbGVyKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VFeGNlcHRpb25IYW5kbGVyKGV4Y2VwdGlvbkhhbmRsZXIpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZXhjZXB0aW9uSGFuZGxlcik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChleGNlcHRpb25IYW5kbGVyKTsKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwogCQkJCXJldHVybiByZXN1bHQ7CiAJCQl9CkBAIC0yMzEwLDMyMiArMjMxMCw2IEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9DT05GT1JNQU5DRTogewotCQkJCVByb3RvY29sQ29uZm9ybWFuY2UgcHJvdG9jb2xDb25mb3JtYW5jZSA9IChQcm90b2NvbENvbmZvcm1hbmNlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VQcm90b2NvbENvbmZvcm1hbmNlKHByb3RvY29sQ29uZm9ybWFuY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURpcmVjdGVkUmVsYXRpb25zaGlwKHByb3RvY29sQ29uZm9ybWFuY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChwcm90b2NvbENvbmZvcm1hbmNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sQ29uZm9ybWFuY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocHJvdG9jb2xDb25mb3JtYW5jZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9TVEFURV9NQUNISU5FOiB7Ci0JCQkJUHJvdG9jb2xTdGF0ZU1hY2hpbmUgcHJvdG9jb2xTdGF0ZU1hY2hpbmUgPSAoUHJvdG9jb2xTdGF0ZU1hY2hpbmUpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVByb3RvY29sU3RhdGVNYWNoaW5lKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdGF0ZU1hY2hpbmUocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzcyhwcm90b2NvbFN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRDbGFzc2lmaWVyKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChwcm90b2NvbFN0YXRlTWFjaGluZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlBST1RPQ09MX1RSQU5TSVRJT046IHsKLQkJCQlQcm90b2NvbFRyYW5zaXRpb24gcHJvdG9jb2xUcmFuc2l0aW9uID0gKFByb3RvY29sVHJhbnNpdGlvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUHJvdG9jb2xUcmFuc2l0aW9uKHByb3RvY29sVHJhbnNpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHJhbnNpdGlvbihwcm90b2NvbFRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQocHJvdG9jb2xUcmFuc2l0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sVHJhbnNpdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9FWFBSRVNTSU9OOiB7Ci0JCQkJVGltZUV4cHJlc3Npb24gdGltZUV4cHJlc3Npb24gPSAoVGltZUV4cHJlc3Npb24pdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVRpbWVFeHByZXNzaW9uKHRpbWVFeHByZXNzaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWYWx1ZVNwZWNpZmljYXRpb24odGltZUV4cHJlc3Npb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGVkRWxlbWVudCh0aW1lRXhwcmVzc2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQodGltZUV4cHJlc3Npb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudCh0aW1lRXhwcmVzc2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh0aW1lRXhwcmVzc2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudCh0aW1lRXhwcmVzc2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudCh0aW1lRXhwcmVzc2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTjogewotCQkJCUR1cmF0aW9uIGR1cmF0aW9uID0gKER1cmF0aW9uKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VEdXJhdGlvbihkdXJhdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmFsdWVTcGVjaWZpY2F0aW9uKGR1cmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQoZHVyYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGR1cmF0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZHVyYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZHVyYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZHVyYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZHVyYXRpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9PQlNFUlZBVElPTl9BQ1RJT046IHsKLQkJCQlUaW1lT2JzZXJ2YXRpb25BY3Rpb24gdGltZU9ic2VydmF0aW9uQWN0aW9uID0gKFRpbWVPYnNlcnZhdGlvbkFjdGlvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlVGltZU9ic2VydmF0aW9uQWN0aW9uKHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlV3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbih0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uKHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aW9uKHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRXhlY3V0YWJsZU5vZGUodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRVUkFUSU9OX0lOVEVSVkFMOiB7Ci0JCQkJRHVyYXRpb25JbnRlcnZhbCBkdXJhdGlvbkludGVydmFsID0gKER1cmF0aW9uSW50ZXJ2YWwpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUR1cmF0aW9uSW50ZXJ2YWwoZHVyYXRpb25JbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlSW50ZXJ2YWwoZHVyYXRpb25JbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmFsdWVTcGVjaWZpY2F0aW9uKGR1cmF0aW9uSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGVkRWxlbWVudChkdXJhdGlvbkludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChkdXJhdGlvbkludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZHVyYXRpb25JbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChkdXJhdGlvbkludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGR1cmF0aW9uSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZHVyYXRpb25JbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTDogewotCQkJCUludGVydmFsIGludGVydmFsID0gKEludGVydmFsKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VJbnRlcnZhbChpbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmFsdWVTcGVjaWZpY2F0aW9uKGludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQoaW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoaW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoaW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoaW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoaW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9DT05TVFJBSU5UOiB7Ci0JCQkJVGltZUNvbnN0cmFpbnQgdGltZUNvbnN0cmFpbnQgPSAoVGltZUNvbnN0cmFpbnQpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVRpbWVDb25zdHJhaW50KHRpbWVDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VJbnRlcnZhbENvbnN0cmFpbnQodGltZUNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbnN0cmFpbnQodGltZUNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudCh0aW1lQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHRpbWVDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudCh0aW1lQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudCh0aW1lQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh0aW1lQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudCh0aW1lQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTF9DT05TVFJBSU5UOiB7Ci0JCQkJSW50ZXJ2YWxDb25zdHJhaW50IGludGVydmFsQ29uc3RyYWludCA9IChJbnRlcnZhbENvbnN0cmFpbnQpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUludGVydmFsQ29uc3RyYWludChpbnRlcnZhbENvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbnN0cmFpbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChpbnRlcnZhbENvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGludGVydmFsQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChpbnRlcnZhbENvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9JTlRFUlZBTDogewotCQkJCVRpbWVJbnRlcnZhbCB0aW1lSW50ZXJ2YWwgPSAoVGltZUludGVydmFsKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VUaW1lSW50ZXJ2YWwodGltZUludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VJbnRlcnZhbCh0aW1lSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVZhbHVlU3BlY2lmaWNhdGlvbih0aW1lSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGVkRWxlbWVudCh0aW1lSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHRpbWVJbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHRpbWVJbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudCh0aW1lSW50ZXJ2YWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodGltZUludGVydmFsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHRpbWVJbnRlcnZhbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9PQlNFUlZBVElPTl9BQ1RJT046IHsKLQkJCQlEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uIGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24gPSAoRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbil0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbihkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VXcml0ZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyYWxGZWF0dXJlQWN0aW9uKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGlvbihkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFeGVjdXRhYmxlTm9kZShkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpdml0eU5vZGUoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRVUkFUSU9OX0NPTlNUUkFJTlQ6IHsKLQkJCQlEdXJhdGlvbkNvbnN0cmFpbnQgZHVyYXRpb25Db25zdHJhaW50ID0gKER1cmF0aW9uQ29uc3RyYWludCl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRHVyYXRpb25Db25zdHJhaW50KGR1cmF0aW9uQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlSW50ZXJ2YWxDb25zdHJhaW50KGR1cmF0aW9uQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ29uc3RyYWludChkdXJhdGlvbkNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChkdXJhdGlvbkNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkdXJhdGlvbkNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGR1cmF0aW9uQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChkdXJhdGlvbkNvbnN0cmFpbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZHVyYXRpb25Db25zdHJhaW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGR1cmF0aW9uQ29uc3RyYWludCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5EQVRBX1NUT1JFX05PREU6IHsKLQkJCQlEYXRhU3RvcmVOb2RlIGRhdGFTdG9yZU5vZGUgPSAoRGF0YVN0b3JlTm9kZSl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRGF0YVN0b3JlTm9kZShkYXRhU3RvcmVOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDZW50cmFsQnVmZmVyTm9kZShkYXRhU3RvcmVOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VPYmplY3ROb2RlKGRhdGFTdG9yZU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShkYXRhU3RvcmVOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQoZGF0YVN0b3JlTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGRhdGFTdG9yZU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkYXRhU3RvcmVOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGRhdGFTdG9yZU5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZGF0YVN0b3JlTm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChkYXRhU3RvcmVOb2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OOiB7Ci0JCQkJSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIGludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbiA9IChJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbihpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAoaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbik7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuUEFSQU1FVEVSX1NFVDogewotCQkJCVBhcmFtZXRlclNldCBwYXJhbWV0ZXJTZXQgPSAoUGFyYW1ldGVyU2V0KXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJTZXQocGFyYW1ldGVyU2V0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocGFyYW1ldGVyU2V0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHBhcmFtZXRlclNldCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChwYXJhbWV0ZXJTZXQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocGFyYW1ldGVyU2V0KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRFUExPWU1FTlQ6IHsKLQkJCQlEZXBsb3ltZW50IGRlcGxveW1lbnQgPSAoRGVwbG95bWVudCl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRGVwbG95bWVudChkZXBsb3ltZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEZXBlbmRlbmN5KGRlcGxveW1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChkZXBsb3ltZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VEaXJlY3RlZFJlbGF0aW9uc2hpcChkZXBsb3ltZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZGVwbG95bWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoZGVwbG95bWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVsYXRpb25zaGlwKGRlcGxveW1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZGVwbG95bWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChkZXBsb3ltZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGRlcGxveW1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuTk9ERTogewotCQkJCU5vZGUgbm9kZSA9IChOb2RlKXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VOb2RlKG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzKG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURlcGxveW1lbnRUYXJnZXQobm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIobm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRW5jYXBzdWxhdGVkQ2xhc3NpZmllcihub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQobm9kZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQ2xhc3NpZmllcihub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChub2RlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KG5vZGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgVU1MMlBhY2thZ2UuREVWSUNFOiB7Ci0JCQkJRGV2aWNlIGRldmljZSA9IChEZXZpY2UpdGhlRU9iamVjdDsKLQkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZURldmljZShkZXZpY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5vZGUoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzcyhkZXZpY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURlcGxveW1lbnRUYXJnZXQoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmVkQ2xhc3NpZmllcihkZXZpY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKGRldmljZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZENsYXNzaWZpZXIoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGRldmljZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGRldmljZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShkZXZpY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChkZXZpY2UpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGRldmljZSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoZGV2aWNlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkVYRUNVVElPTl9FTlZJUk9OTUVOVDogewotCQkJCUV4ZWN1dGlvbkVudmlyb25tZW50IGV4ZWN1dGlvbkVudmlyb25tZW50ID0gKEV4ZWN1dGlvbkVudmlyb25tZW50KXRoZUVPYmplY3Q7Ci0JCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VFeGVjdXRpb25FbnZpcm9ubWVudChleGVjdXRpb25FbnZpcm9ubWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTm9kZShleGVjdXRpb25FbnZpcm9ubWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3MoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURlcGxveW1lbnRUYXJnZXQoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yZWRDbGFzc2lmaWVyKGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyKGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRDbGFzc2lmaWVyKGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUoZXhlY3V0aW9uRW52aXJvbm1lbnQpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChleGVjdXRpb25FbnZpcm9ubWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChleGVjdXRpb25FbnZpcm9ubWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChleGVjdXRpb25FbnZpcm9ubWVudCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBVTUwyUGFja2FnZS5DT01NVU5JQ0FUSU9OX1BBVEg6IHsKLQkJCQlDb21tdW5pY2F0aW9uUGF0aCBjb21tdW5pY2F0aW9uUGF0aCA9IChDb21tdW5pY2F0aW9uUGF0aCl0aGVFT2JqZWN0OwotCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlQ29tbXVuaWNhdGlvblBhdGgoY29tbXVuaWNhdGlvblBhdGgpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFzc29jaWF0aW9uKGNvbW11bmljYXRpb25QYXRoKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKGNvbW11bmljYXRpb25QYXRoKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWxhdGlvbnNoaXAoY29tbXVuaWNhdGlvblBhdGgpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShjb21tdW5pY2F0aW9uUGF0aCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShjb21tdW5pY2F0aW9uUGF0aCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGNvbW11bmljYXRpb25QYXRoKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGNvbW11bmljYXRpb25QYXRoKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoY29tbXVuaWNhdGlvblBhdGgpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChjb21tdW5pY2F0aW9uUGF0aCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChjb21tdW5pY2F0aW9uUGF0aCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChjb21tdW5pY2F0aW9uUGF0aCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoY29tbXVuaWNhdGlvblBhdGgpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KIAkJCWNhc2UgVU1MMlBhY2thZ2UuUkVBRF9FWFRFTlRfQUNUSU9OOiB7CiAJCQkJUmVhZEV4dGVudEFjdGlvbiByZWFkRXh0ZW50QWN0aW9uID0gKFJlYWRFeHRlbnRBY3Rpb24pdGhlRU9iamVjdDsKIAkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVJlYWRFeHRlbnRBY3Rpb24ocmVhZEV4dGVudEFjdGlvbik7CkBAIC0yNzkyLDYgKzI0NzYsMzIyIEBACiAJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5EQVRBX1NUT1JFX05PREU6IHsKKwkJCQlEYXRhU3RvcmVOb2RlIGRhdGFTdG9yZU5vZGUgPSAoRGF0YVN0b3JlTm9kZSl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRGF0YVN0b3JlTm9kZShkYXRhU3RvcmVOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDZW50cmFsQnVmZmVyTm9kZShkYXRhU3RvcmVOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VPYmplY3ROb2RlKGRhdGFTdG9yZU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5Tm9kZShkYXRhU3RvcmVOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQoZGF0YVN0b3JlTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGRhdGFTdG9yZU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkYXRhU3RvcmVOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGRhdGFTdG9yZU5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZGF0YVN0b3JlTm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChkYXRhU3RvcmVOb2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OOiB7CisJCQkJSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uIGludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbiA9IChJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbihpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGl2aXR5R3JvdXAoaW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChpbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuUEFSQU1FVEVSX1NFVDogeworCQkJCVBhcmFtZXRlclNldCBwYXJhbWV0ZXJTZXQgPSAoUGFyYW1ldGVyU2V0KXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJTZXQocGFyYW1ldGVyU2V0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQocGFyYW1ldGVyU2V0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHBhcmFtZXRlclNldCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChwYXJhbWV0ZXJTZXQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocGFyYW1ldGVyU2V0KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfRVhQUkVTU0lPTjogeworCQkJCVRpbWVFeHByZXNzaW9uIHRpbWVFeHByZXNzaW9uID0gKFRpbWVFeHByZXNzaW9uKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VUaW1lRXhwcmVzc2lvbih0aW1lRXhwcmVzc2lvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVmFsdWVTcGVjaWZpY2F0aW9uKHRpbWVFeHByZXNzaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQodGltZUV4cHJlc3Npb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHRpbWVFeHByZXNzaW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQodGltZUV4cHJlc3Npb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZUV4cHJlc3Npb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodGltZUV4cHJlc3Npb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodGltZUV4cHJlc3Npb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT046IHsKKwkJCQlEdXJhdGlvbiBkdXJhdGlvbiA9IChEdXJhdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRHVyYXRpb24oZHVyYXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVZhbHVlU3BlY2lmaWNhdGlvbihkdXJhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGR1cmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChkdXJhdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGR1cmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGR1cmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGR1cmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGR1cmF0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfT0JTRVJWQVRJT05fQUNUSU9OOiB7CisJCQkJVGltZU9ic2VydmF0aW9uQWN0aW9uIHRpbWVPYnNlcnZhdGlvbkFjdGlvbiA9IChUaW1lT2JzZXJ2YXRpb25BY3Rpb24pdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVRpbWVPYnNlcnZhdGlvbkFjdGlvbih0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVdyaXRlU3RydWN0dXJhbEZlYXR1cmVBY3Rpb24odGltZU9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbih0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUFjdGlvbih0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUV4ZWN1dGFibGVOb2RlKHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudCh0aW1lT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZU9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHRpbWVPYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9JTlRFUlZBTDogeworCQkJCUR1cmF0aW9uSW50ZXJ2YWwgZHVyYXRpb25JbnRlcnZhbCA9IChEdXJhdGlvbkludGVydmFsKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VEdXJhdGlvbkludGVydmFsKGR1cmF0aW9uSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUludGVydmFsKGR1cmF0aW9uSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVZhbHVlU3BlY2lmaWNhdGlvbihkdXJhdGlvbkludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQoZHVyYXRpb25JbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoZHVyYXRpb25JbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGR1cmF0aW9uSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoZHVyYXRpb25JbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChkdXJhdGlvbkludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGR1cmF0aW9uSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUw6IHsKKwkJCQlJbnRlcnZhbCBpbnRlcnZhbCA9IChJbnRlcnZhbCl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlSW50ZXJ2YWwoaW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVZhbHVlU3BlY2lmaWNhdGlvbihpbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZWRFbGVtZW50KGludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChpbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfQ09OU1RSQUlOVDogeworCQkJCVRpbWVDb25zdHJhaW50IHRpbWVDb25zdHJhaW50ID0gKFRpbWVDb25zdHJhaW50KXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VUaW1lQ29uc3RyYWludCh0aW1lQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlSW50ZXJ2YWxDb25zdHJhaW50KHRpbWVDb25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb25zdHJhaW50KHRpbWVDb25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQodGltZUNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudCh0aW1lQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQodGltZUNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQodGltZUNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZUNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQodGltZUNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUxfQ09OU1RSQUlOVDogeworCQkJCUludGVydmFsQ29uc3RyYWludCBpbnRlcnZhbENvbnN0cmFpbnQgPSAoSW50ZXJ2YWxDb25zdHJhaW50KXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VJbnRlcnZhbENvbnN0cmFpbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDb25zdHJhaW50KGludGVydmFsQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGludGVydmFsQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KGludGVydmFsQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGludGVydmFsQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChpbnRlcnZhbENvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoaW50ZXJ2YWxDb25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfSU5URVJWQUw6IHsKKwkJCQlUaW1lSW50ZXJ2YWwgdGltZUludGVydmFsID0gKFRpbWVJbnRlcnZhbCl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlVGltZUludGVydmFsKHRpbWVJbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlSW50ZXJ2YWwodGltZUludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VWYWx1ZVNwZWNpZmljYXRpb24odGltZUludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlZEVsZW1lbnQodGltZUludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudCh0aW1lSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudCh0aW1lSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQodGltZUludGVydmFsKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KHRpbWVJbnRlcnZhbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudCh0aW1lSW50ZXJ2YWwpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OOiB7CisJCQkJRHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbiBkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uID0gKER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24oZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlV3JpdGVTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbihkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmFsRmVhdHVyZUFjdGlvbihkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VBY3Rpb24oZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRXhlY3V0YWJsZU5vZGUoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQWN0aXZpdHlOb2RlKGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChkdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZHVyYXRpb25PYnNlcnZhdGlvbkFjdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTl9DT05TVFJBSU5UOiB7CisJCQkJRHVyYXRpb25Db25zdHJhaW50IGR1cmF0aW9uQ29uc3RyYWludCA9IChEdXJhdGlvbkNvbnN0cmFpbnQpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUR1cmF0aW9uQ29uc3RyYWludChkdXJhdGlvbkNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUludGVydmFsQ29uc3RyYWludChkdXJhdGlvbkNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNvbnN0cmFpbnQoZHVyYXRpb25Db25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoZHVyYXRpb25Db25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lZEVsZW1lbnQoZHVyYXRpb25Db25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChkdXJhdGlvbkNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZHVyYXRpb25Db25zdHJhaW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGR1cmF0aW9uQ29uc3RyYWludCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChkdXJhdGlvbkNvbnN0cmFpbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuREVQTE9ZTUVOVDogeworCQkJCURlcGxveW1lbnQgZGVwbG95bWVudCA9IChEZXBsb3ltZW50KXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VEZXBsb3ltZW50KGRlcGxveW1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURlcGVuZGVuY3koZGVwbG95bWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGRlcGxveW1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURpcmVjdGVkUmVsYXRpb25zaGlwKGRlcGxveW1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkZXBsb3ltZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChkZXBsb3ltZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWxhdGlvbnNoaXAoZGVwbG95bWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVGVtcGxhdGVhYmxlRWxlbWVudChkZXBsb3ltZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGRlcGxveW1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZGVwbG95bWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5OT0RFOiB7CisJCQkJTm9kZSBub2RlID0gKE5vZGUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZU5vZGUobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3Mobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95bWVudFRhcmdldChub2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VCZWhhdmlvcmVkQ2xhc3NpZmllcihub2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbmNhcHN1bGF0ZWRDbGFzc2lmaWVyKG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChub2RlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzc2lmaWVyKG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRDbGFzc2lmaWVyKG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KG5vZGUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFyYW1ldGVyYWJsZUVsZW1lbnQobm9kZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5ERVZJQ0U6IHsKKwkJCQlEZXZpY2UgZGV2aWNlID0gKERldmljZSl0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlRGV2aWNlKGRldmljZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTm9kZShkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzKGRldmljZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95bWVudFRhcmdldChkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yZWRDbGFzc2lmaWVyKGRldmljZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRW5jYXBzdWxhdGVkQ2xhc3NpZmllcihkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIoZGV2aWNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdHJ1Y3R1cmVkQ2xhc3NpZmllcihkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZGV2aWNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UoZGV2aWNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGRldmljZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGRldmljZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRWxlbWVudChkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhY2thZ2VhYmxlRWxlbWVudChkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZGV2aWNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChkZXZpY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhFQ1VUSU9OX0VOVklST05NRU5UOiB7CisJCQkJRXhlY3V0aW9uRW52aXJvbm1lbnQgZXhlY3V0aW9uRW52aXJvbm1lbnQgPSAoRXhlY3V0aW9uRW52aXJvbm1lbnQpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZUV4ZWN1dGlvbkVudmlyb25tZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOb2RlKGV4ZWN1dGlvbkVudmlyb25tZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzcyhleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRGVwbG95bWVudFRhcmdldChleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQ2xhc3NpZmllcihleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlU3RydWN0dXJlZENsYXNzaWZpZXIoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVzcGFjZShleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHlwZShleGVjdXRpb25FbnZpcm9ubWVudCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUmVkZWZpbmFibGVFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQoZXhlY3V0aW9uRW52aXJvbm1lbnQpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KGV4ZWN1dGlvbkVudmlyb25tZW50KTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTU1VTklDQVRJT05fUEFUSDogeworCQkJCUNvbW11bmljYXRpb25QYXRoIGNvbW11bmljYXRpb25QYXRoID0gKENvbW11bmljYXRpb25QYXRoKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VDb21tdW5pY2F0aW9uUGF0aChjb21tdW5pY2F0aW9uUGF0aCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQXNzb2NpYXRpb24oY29tbXVuaWNhdGlvblBhdGgpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIoY29tbXVuaWNhdGlvblBhdGgpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChjb21tdW5pY2F0aW9uUGF0aCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZXNwYWNlKGNvbW11bmljYXRpb25QYXRoKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUeXBlKGNvbW11bmljYXRpb25QYXRoKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VSZWRlZmluYWJsZUVsZW1lbnQoY29tbXVuaWNhdGlvblBhdGgpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVsZW1lbnQoY29tbXVuaWNhdGlvblBhdGgpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChjb21tdW5pY2F0aW9uUGF0aCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlUGFja2FnZWFibGVFbGVtZW50KGNvbW11bmljYXRpb25QYXRoKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KGNvbW11bmljYXRpb25QYXRoKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VUZW1wbGF0ZWFibGVFbGVtZW50KGNvbW11bmljYXRpb25QYXRoKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYXJhbWV0ZXJhYmxlRWxlbWVudChjb21tdW5pY2F0aW9uUGF0aCk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9DT05GT1JNQU5DRTogeworCQkJCVByb3RvY29sQ29uZm9ybWFuY2UgcHJvdG9jb2xDb25mb3JtYW5jZSA9IChQcm90b2NvbENvbmZvcm1hbmNlKXRoZUVPYmplY3Q7CisJCQkJT2JqZWN0IHJlc3VsdCA9IGNhc2VQcm90b2NvbENvbmZvcm1hbmNlKHByb3RvY29sQ29uZm9ybWFuY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZURpcmVjdGVkUmVsYXRpb25zaGlwKHByb3RvY29sQ29uZm9ybWFuY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlbGF0aW9uc2hpcChwcm90b2NvbENvbmZvcm1hbmNlKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sQ29uZm9ybWFuY2UpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVNb2RlbEVsZW1lbnQocHJvdG9jb2xDb25mb3JtYW5jZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9TVEFURV9NQUNISU5FOiB7CisJCQkJUHJvdG9jb2xTdGF0ZU1hY2hpbmUgcHJvdG9jb2xTdGF0ZU1hY2hpbmUgPSAoUHJvdG9jb2xTdGF0ZU1hY2hpbmUpdGhlRU9iamVjdDsKKwkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZVByb3RvY29sU3RhdGVNYWNoaW5lKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VTdGF0ZU1hY2hpbmUocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUJlaGF2aW9yKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VDbGFzcyhwcm90b2NvbFN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlQmVoYXZpb3JlZENsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZUNsYXNzaWZpZXIocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVN0cnVjdHVyZWRDbGFzc2lmaWVyKHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VOYW1lc3BhY2UocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVR5cGUocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChwcm90b2NvbFN0YXRlTWFjaGluZSk7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlTmFtZWRFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VQYWNrYWdlYWJsZUVsZW1lbnQocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQocHJvdG9jb2xTdGF0ZU1hY2hpbmUpOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVBhcmFtZXRlcmFibGVFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFTW9kZWxFbGVtZW50KHByb3RvY29sU3RhdGVNYWNoaW5lKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCQljYXNlIFVNTDJQYWNrYWdlLlBST1RPQ09MX1RSQU5TSVRJT046IHsKKwkJCQlQcm90b2NvbFRyYW5zaXRpb24gcHJvdG9jb2xUcmFuc2l0aW9uID0gKFByb3RvY29sVHJhbnNpdGlvbil0aGVFT2JqZWN0OworCQkJCU9iamVjdCByZXN1bHQgPSBjYXNlUHJvdG9jb2xUcmFuc2l0aW9uKHByb3RvY29sVHJhbnNpdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlVHJhbnNpdGlvbihwcm90b2NvbFRyYW5zaXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVJlZGVmaW5hYmxlRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZU5hbWVkRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gY2FzZVRlbXBsYXRlYWJsZUVsZW1lbnQocHJvdG9jb2xUcmFuc2l0aW9uKTsKKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGNhc2VFbGVtZW50KHByb3RvY29sVHJhbnNpdGlvbik7CisJCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBjYXNlRU1vZGVsRWxlbWVudChwcm90b2NvbFRyYW5zaXRpb24pOworCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7CisJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCX0KIAkJCWNhc2UgVU1MMlBhY2thZ2UuREVQTE9ZTUVOVF9TUEVDSUZJQ0FUSU9OOiB7CiAJCQkJRGVwbG95bWVudFNwZWNpZmljYXRpb24gZGVwbG95bWVudFNwZWNpZmljYXRpb24gPSAoRGVwbG95bWVudFNwZWNpZmljYXRpb24pdGhlRU9iamVjdDsKIAkJCQlPYmplY3QgcmVzdWx0ID0gY2FzZURlcGxveW1lbnRTcGVjaWZpY2F0aW9uKGRlcGxveW1lbnRTcGVjaWZpY2F0aW9uKTsKZGlmZiAtLWdpdCBhL2RlcHJlY2F0ZWQvcGx1Z2lucy9vcmcuZWNsaXBzZS51bWwyL3NyYy9vcmcvZWNsaXBzZS91bWwyL3V0aWwvVU1MMlZhbGlkYXRvci5qYXZhIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvdXRpbC9VTUwyVmFsaWRhdG9yLmphdmEKaW5kZXggYTllNDkzOC4uNGM2NjM1MSAxMDA2NDQKLS0tIGEvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvdXRpbC9VTUwyVmFsaWRhdG9yLmphdmEKKysrIGIvZGVwcmVjYXRlZC9wbHVnaW5zL29yZy5lY2xpcHNlLnVtbDIvc3JjL29yZy9lY2xpcHNlL3VtbDIvdXRpbC9VTUwyVmFsaWRhdG9yLmphdmEKQEAgLTgsNyArOCw3IEBACiAgKiBDb250cmlidXRvcnM6CiAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogICoKLSAqICRJZDogVU1MMlZhbGlkYXRvci5qYXZhLHYgMS43IDIwMDQvMDYvMDIgMDU6MDI6Mjcga2h1c3NleSBFeHAgJAorICogJElkOiBVTUwyVmFsaWRhdG9yLmphdmEsdiAxLjggMjAwNC8wNi8wMyAwMjo1OToxOSBraHVzc2V5IEV4cCAkCiAgKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UudW1sMi51dGlsOwogCkBAIC01OTMsNiArNTkzLDEwIEBACiAJCQkJcmV0dXJuIHZhbGlkYXRlRWxlbWVudCgoRWxlbWVudCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5NVUxUSVBMSUNJVFlfRUxFTUVOVDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVNdWx0aXBsaWNpdHlFbGVtZW50KChNdWx0aXBsaWNpdHlFbGVtZW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLk5BTUVEX0VMRU1FTlQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlTmFtZWRFbGVtZW50KChOYW1lZEVsZW1lbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuTkFNRVNQQUNFOgorCQkJCXJldHVybiB2YWxpZGF0ZU5hbWVzcGFjZSgoTmFtZXNwYWNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkRJUkVDVEVEX1JFTEFUSU9OU0hJUDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVEaXJlY3RlZFJlbGF0aW9uc2hpcCgoRGlyZWN0ZWRSZWxhdGlvbnNoaXApdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuUkVMQVRJT05TSElQOgpAQCAtNjA1LDEwICs2MDksNiBAQAogCQkJCXJldHVybiB2YWxpZGF0ZUV4cHJlc3Npb24oKEV4cHJlc3Npb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ09NTUVOVDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVDb21tZW50KChDb21tZW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLk5BTUVEX0VMRU1FTlQ6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlTmFtZWRFbGVtZW50KChOYW1lZEVsZW1lbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuTkFNRVNQQUNFOgotCQkJCXJldHVybiB2YWxpZGF0ZU5hbWVzcGFjZSgoTmFtZXNwYWNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNMQVNTOgogCQkJCXJldHVybiB2YWxpZGF0ZUNsYXNzKChvcmcuZWNsaXBzZS51bWwyLkNsYXNzKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlRZUEU6CkBAIC02NTUsMTQgKzY1NSwxNCBAQAogCQkJCXJldHVybiB2YWxpZGF0ZVN0cnVjdHVyYWxGZWF0dXJlKChTdHJ1Y3R1cmFsRmVhdHVyZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5SRURFRklOQUJMRV9FTEVNRU5UOgogCQkJCXJldHVybiB2YWxpZGF0ZVJlZGVmaW5hYmxlRWxlbWVudCgoUmVkZWZpbmFibGVFbGVtZW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkdFTkVSQUxJWkFUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZUdlbmVyYWxpemF0aW9uKChHZW5lcmFsaXphdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlNUQU5DRV9TUEVDSUZJQ0FUSU9OOgogCQkJCXJldHVybiB2YWxpZGF0ZUluc3RhbmNlU3BlY2lmaWNhdGlvbigoSW5zdGFuY2VTcGVjaWZpY2F0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlNMT1Q6CiAJCQkJcmV0dXJuIHZhbGlkYXRlU2xvdCgoU2xvdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlNUQU5DRV9WQUxVRToKIAkJCQlyZXR1cm4gdmFsaWRhdGVJbnN0YW5jZVZhbHVlKChJbnN0YW5jZVZhbHVlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkdFTkVSQUxJWkFUSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZUdlbmVyYWxpemF0aW9uKChHZW5lcmFsaXphdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5QQUNLQUdFQUJMRV9FTEVNRU5UOgogCQkJCXJldHVybiB2YWxpZGF0ZVBhY2thZ2VhYmxlRWxlbWVudCgoUGFja2FnZWFibGVFbGVtZW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkVMRU1FTlRfSU1QT1JUOgpAQCAtNzE5LDYgKzcxOSwyNCBAQAogCQkJCXJldHVybiB2YWxpZGF0ZUNvbm5lY3RvcigoQ29ubmVjdG9yKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlNUUlVDVFVSRURfQ0xBU1NJRklFUjoKIAkJCQlyZXR1cm4gdmFsaWRhdGVTdHJ1Y3R1cmVkQ2xhc3NpZmllcigoU3RydWN0dXJlZENsYXNzaWZpZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJGQUNFOgorCQkJCXJldHVybiB2YWxpZGF0ZUludGVyZmFjZSgoSW50ZXJmYWNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLklNUExFTUVOVEFUSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZUltcGxlbWVudGF0aW9uKChJbXBsZW1lbnRhdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5BUlRJRkFDVDoKKwkJCQlyZXR1cm4gdmFsaWRhdGVBcnRpZmFjdCgoQXJ0aWZhY3QpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuTUFOSUZFU1RBVElPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVNYW5pZmVzdGF0aW9uKChNYW5pZmVzdGF0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkFDVE9SOgorCQkJCXJldHVybiB2YWxpZGF0ZUFjdG9yKChBY3Rvcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTkQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlRXh0ZW5kKChFeHRlbmQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVVNFX0NBU0U6CisJCQkJcmV0dXJuIHZhbGlkYXRlVXNlQ2FzZSgoVXNlQ2FzZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWFRFTlNJT05fUE9JTlQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlRXh0ZW5zaW9uUG9pbnQoKEV4dGVuc2lvblBvaW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLklOQ0xVREU6CisJCQkJcmV0dXJuIHZhbGlkYXRlSW5jbHVkZSgoSW5jbHVkZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJVklUWV9FREdFOgogCQkJCXJldHVybiB2YWxpZGF0ZUFjdGl2aXR5RWRnZSgoQWN0aXZpdHlFZGdlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkFDVElWSVRZX0dST1VQOgpAQCAtNzU3LDI0ICs3NzUsNDIgQEAKIAkJCQlyZXR1cm4gdmFsaWRhdGVBY3Rpdml0eVBhcmFtZXRlck5vZGUoKEFjdGl2aXR5UGFyYW1ldGVyTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5WQUxVRV9QSU46CiAJCQkJcmV0dXJuIHZhbGlkYXRlVmFsdWVQaW4oKFZhbHVlUGluKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkFSVElGQUNUOgotCQkJCXJldHVybiB2YWxpZGF0ZUFydGlmYWN0KChBcnRpZmFjdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5NQU5JRkVTVEFUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZU1hbmlmZXN0YXRpb24oKE1hbmlmZXN0YXRpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJGQUNFOgotCQkJCXJldHVybiB2YWxpZGF0ZUludGVyZmFjZSgoSW50ZXJmYWNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLklNUExFTUVOVEFUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZUltcGxlbWVudGF0aW9uKChJbXBsZW1lbnRhdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RPUjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVBY3RvcigoQWN0b3IpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5EOgotCQkJCXJldHVybiB2YWxpZGF0ZUV4dGVuZCgoRXh0ZW5kKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlVTRV9DQVNFOgotCQkJCXJldHVybiB2YWxpZGF0ZVVzZUNhc2UoKFVzZUNhc2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhURU5TSU9OX1BPSU5UOgotCQkJCXJldHVybiB2YWxpZGF0ZUV4dGVuc2lvblBvaW50KChFeHRlbnNpb25Qb2ludCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5JTkNMVURFOgotCQkJCXJldHVybiB2YWxpZGF0ZUluY2x1ZGUoKEluY2x1ZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ0FMTF9UUklHR0VSOgorCQkJCXJldHVybiB2YWxpZGF0ZUNhbGxUcmlnZ2VyKChDYWxsVHJpZ2dlcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5NRVNTQUdFX1RSSUdHRVI6CisJCQkJcmV0dXJuIHZhbGlkYXRlTWVzc2FnZVRyaWdnZXIoKE1lc3NhZ2VUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNIQU5HRV9UUklHR0VSOgorCQkJCXJldHVybiB2YWxpZGF0ZUNoYW5nZVRyaWdnZXIoKENoYW5nZVRyaWdnZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVFJJR0dFUjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVUcmlnZ2VyKChUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0VQVElPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVSZWNlcHRpb24oKFJlY2VwdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5TSUdOQUw6CisJCQkJcmV0dXJuIHZhbGlkYXRlU2lnbmFsKChTaWduYWwpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuU0lHTkFMX1RSSUdHRVI6CisJCQkJcmV0dXJuIHZhbGlkYXRlU2lnbmFsVHJpZ2dlcigoU2lnbmFsVHJpZ2dlcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX1RSSUdHRVI6CisJCQkJcmV0dXJuIHZhbGlkYXRlVGltZVRyaWdnZXIoKFRpbWVUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkFOWV9UUklHR0VSOgorCQkJCXJldHVybiB2YWxpZGF0ZUFueVRyaWdnZXIoKEFueVRyaWdnZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFOgorCQkJCXJldHVybiB2YWxpZGF0ZUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKChDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT0xMQUJPUkFUSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZUNvbGxhYm9yYXRpb24oKENvbGxhYm9yYXRpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUE9SVDoKKwkJCQlyZXR1cm4gdmFsaWRhdGVQb3J0KChQb3J0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkVOQ0FQU1VMQVRFRF9DTEFTU0lGSUVSOgorCQkJCXJldHVybiB2YWxpZGF0ZUVuY2Fwc3VsYXRlZENsYXNzaWZpZXIoKEVuY2Fwc3VsYXRlZENsYXNzaWZpZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVkFSSUFCTEU6CisJCQkJcmV0dXJuIHZhbGlkYXRlVmFyaWFibGUoKFZhcmlhYmxlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERToKKwkJCQlyZXR1cm4gdmFsaWRhdGVTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKChTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkNPTkRJVElPTkFMX05PREU6CisJCQkJcmV0dXJuIHZhbGlkYXRlQ29uZGl0aW9uYWxOb2RlKChDb25kaXRpb25hbE5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ0xBVVNFOgorCQkJCXJldHVybiB2YWxpZGF0ZUNsYXVzZSgoQ2xhdXNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkxPT1BfTk9ERToKKwkJCQlyZXR1cm4gdmFsaWRhdGVMb29wTm9kZSgoTG9vcE5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuVEVNUExBVEVfU0lHTkFUVVJFOgogCQkJCXJldHVybiB2YWxpZGF0ZVRlbXBsYXRlU2lnbmF0dXJlKChUZW1wbGF0ZVNpZ25hdHVyZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5URU1QTEFURV9QQVJBTUVURVI6CkBAIC03ODksOCArODI1LDYgQEAKIAkJCQlyZXR1cm4gdmFsaWRhdGVUZW1wbGF0ZUJpbmRpbmcoKFRlbXBsYXRlQmluZGluZyl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5URU1QTEFURV9QQVJBTUVURVJfU1VCU1RJVFVUSU9OOgogCQkJCXJldHVybiB2YWxpZGF0ZVRlbXBsYXRlUGFyYW1ldGVyU3Vic3RpdHV0aW9uKChUZW1wbGF0ZVBhcmFtZXRlclN1YnN0aXR1dGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5DT0xMQUJPUkFUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZUNvbGxhYm9yYXRpb24oKENvbGxhYm9yYXRpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuT1BFUkFUSU9OX1RFTVBMQVRFX1BBUkFNRVRFUjoKIAkJCQlyZXR1cm4gdmFsaWRhdGVPcGVyYXRpb25UZW1wbGF0ZVBhcmFtZXRlcigoT3BlcmF0aW9uVGVtcGxhdGVQYXJhbWV0ZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ0xBU1NJRklFUl9URU1QTEFURV9QQVJBTUVURVI6CkBAIC04MDMsMTIgKzgzNyw2IEBACiAJCQkJcmV0dXJuIHZhbGlkYXRlVGVtcGxhdGVhYmxlQ2xhc3NpZmllcigoVGVtcGxhdGVhYmxlQ2xhc3NpZmllcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUQUJMRV9FTEVNRU5UX1RFTVBMQVRFX1BBUkFNRVRFUjoKIAkJCQlyZXR1cm4gdmFsaWRhdGVDb25uZWN0YWJsZUVsZW1lbnRUZW1wbGF0ZVBhcmFtZXRlcigoQ29ubmVjdGFibGVFbGVtZW50VGVtcGxhdGVQYXJhbWV0ZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ09MTEFCT1JBVElPTl9PQ0NVUlJFTkNFOgotCQkJCXJldHVybiB2YWxpZGF0ZUNvbGxhYm9yYXRpb25PY2N1cnJlbmNlKChDb2xsYWJvcmF0aW9uT2NjdXJyZW5jZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5QT1JUOgotCQkJCXJldHVybiB2YWxpZGF0ZVBvcnQoKFBvcnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRU5DQVBTVUxBVEVEX0NMQVNTSUZJRVI6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRW5jYXBzdWxhdGVkQ2xhc3NpZmllcigoRW5jYXBzdWxhdGVkQ2xhc3NpZmllcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUkFDVElPTjoKIAkJCQlyZXR1cm4gdmFsaWRhdGVJbnRlcmFjdGlvbigoSW50ZXJhY3Rpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJBQ1RJT05fRlJBR01FTlQ6CkBAIC04MjksNTAgKzg1NywyMiBAQAogCQkJCXJldHVybiB2YWxpZGF0ZVN0YXRlSW52YXJpYW50KChTdGF0ZUludmFyaWFudCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5TVE9QOgogCQkJCXJldHVybiB2YWxpZGF0ZVN0b3AoKFN0b3ApdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuVkFSSUFCTEU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlVmFyaWFibGUoKFZhcmlhYmxlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlNUUlVDVFVSRURfQUNUSVZJVFlfTk9ERToKLQkJCQlyZXR1cm4gdmFsaWRhdGVTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKChTdHJ1Y3R1cmVkQWN0aXZpdHlOb2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTkRJVElPTkFMX05PREU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlQ29uZGl0aW9uYWxOb2RlKChDb25kaXRpb25hbE5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0xBVVNFOgotCQkJCXJldHVybiB2YWxpZGF0ZUNsYXVzZSgoQ2xhdXNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkxPT1BfTk9ERToKLQkJCQlyZXR1cm4gdmFsaWRhdGVMb29wTm9kZSgoTG9vcE5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuQ0FMTF9UUklHR0VSOgotCQkJCXJldHVybiB2YWxpZGF0ZUNhbGxUcmlnZ2VyKChDYWxsVHJpZ2dlcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5NRVNTQUdFX1RSSUdHRVI6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlTWVzc2FnZVRyaWdnZXIoKE1lc3NhZ2VUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNIQU5HRV9UUklHR0VSOgotCQkJCXJldHVybiB2YWxpZGF0ZUNoYW5nZVRyaWdnZXIoKENoYW5nZVRyaWdnZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuVFJJR0dFUjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVUcmlnZ2VyKChUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0VQVElPTjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVSZWNlcHRpb24oKFJlY2VwdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5TSUdOQUw6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlU2lnbmFsKChTaWduYWwpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuU0lHTkFMX1RSSUdHRVI6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlU2lnbmFsVHJpZ2dlcigoU2lnbmFsVHJpZ2dlcil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX1RSSUdHRVI6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlVGltZVRyaWdnZXIoKFRpbWVUcmlnZ2VyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkFOWV9UUklHR0VSOgotCQkJCXJldHVybiB2YWxpZGF0ZUFueVRyaWdnZXIoKEFueVRyaWdnZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX05PREU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRXhwYW5zaW9uTm9kZSgoRXhwYW5zaW9uTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5FWFBBTlNJT05fUkVHSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZUV4cGFuc2lvblJlZ2lvbigoRXhwYW5zaW9uUmVnaW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkVYQ0VQVElPTl9IQU5ETEVSOgotCQkJCXJldHVybiB2YWxpZGF0ZUV4Y2VwdGlvbkhhbmRsZXIoKEV4Y2VwdGlvbkhhbmRsZXIpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRk9SS19OT0RFOgotCQkJCXJldHVybiB2YWxpZGF0ZUZvcmtOb2RlKChGb3JrTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5KT0lOX05PREU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlSm9pbk5vZGUoKEpvaW5Ob2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkZMT1dfRklOQUxfTk9ERToKLQkJCQlyZXR1cm4gdmFsaWRhdGVGbG93RmluYWxOb2RlKChGbG93RmluYWxOb2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNFTlRSQUxfQlVGRkVSX05PREU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlQ2VudHJhbEJ1ZmZlck5vZGUoKENlbnRyYWxCdWZmZXJOb2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkFDVElWSVRZX1BBUlRJVElPTjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVBY3Rpdml0eVBhcnRpdGlvbigoQWN0aXZpdHlQYXJ0aXRpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuU1RBVEVfTUFDSElORToKKwkJCQlyZXR1cm4gdmFsaWRhdGVTdGF0ZU1hY2hpbmUoKFN0YXRlTWFjaGluZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5SRUdJT046CisJCQkJcmV0dXJuIHZhbGlkYXRlUmVnaW9uKChSZWdpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUFNFVURPU1RBVEU6CisJCQkJcmV0dXJuIHZhbGlkYXRlUHNldWRvc3RhdGUoKFBzZXVkb3N0YXRlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlNUQVRFOgorCQkJCXJldHVybiB2YWxpZGF0ZVN0YXRlKChTdGF0ZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5WRVJURVg6CisJCQkJcmV0dXJuIHZhbGlkYXRlVmVydGV4KChWZXJ0ZXgpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuQ09OTkVDVElPTl9QT0lOVF9SRUZFUkVOQ0U6CisJCQkJcmV0dXJuIHZhbGlkYXRlQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKChDb25uZWN0aW9uUG9pbnRSZWZlcmVuY2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVFJBTlNJVElPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVUcmFuc2l0aW9uKChUcmFuc2l0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkZJTkFMX1NUQVRFOgorCQkJCXJldHVybiB2YWxpZGF0ZUZpbmFsU3RhdGUoKEZpbmFsU3RhdGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQ1JFQVRFX09CSkVDVF9BQ1RJT046CiAJCQkJcmV0dXJuIHZhbGlkYXRlQ3JlYXRlT2JqZWN0QWN0aW9uKChDcmVhdGVPYmplY3RBY3Rpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuREVTVFJPWV9PQkpFQ1RfQUNUSU9OOgpAQCAtOTM5LDIyICs5MzksMjIgQEAKIAkJCQlyZXR1cm4gdmFsaWRhdGVDYWxsT3BlcmF0aW9uQWN0aW9uKChDYWxsT3BlcmF0aW9uQWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfQkVIQVZJT1JfQUNUSU9OOgogCQkJCXJldHVybiB2YWxpZGF0ZUNhbGxCZWhhdmlvckFjdGlvbigoQ2FsbEJlaGF2aW9yQWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlNUQVRFX01BQ0hJTkU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlU3RhdGVNYWNoaW5lKChTdGF0ZU1hY2hpbmUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUkVHSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZVJlZ2lvbigoUmVnaW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlBTRVVET1NUQVRFOgotCQkJCXJldHVybiB2YWxpZGF0ZVBzZXVkb3N0YXRlKChQc2V1ZG9zdGF0ZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5TVEFURToKLQkJCQlyZXR1cm4gdmFsaWRhdGVTdGF0ZSgoU3RhdGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuVkVSVEVYOgotCQkJCXJldHVybiB2YWxpZGF0ZVZlcnRleCgoVmVydGV4KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNPTk5FQ1RJT05fUE9JTlRfUkVGRVJFTkNFOgotCQkJCXJldHVybiB2YWxpZGF0ZUNvbm5lY3Rpb25Qb2ludFJlZmVyZW5jZSgoQ29ubmVjdGlvblBvaW50UmVmZXJlbmNlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT046Ci0JCQkJcmV0dXJuIHZhbGlkYXRlVHJhbnNpdGlvbigoVHJhbnNpdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5GSU5BTF9TVEFURToKLQkJCQlyZXR1cm4gdmFsaWRhdGVGaW5hbFN0YXRlKChGaW5hbFN0YXRlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkZPUktfTk9ERToKKwkJCQlyZXR1cm4gdmFsaWRhdGVGb3JrTm9kZSgoRm9ya05vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuSk9JTl9OT0RFOgorCQkJCXJldHVybiB2YWxpZGF0ZUpvaW5Ob2RlKChKb2luTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5GTE9XX0ZJTkFMX05PREU6CisJCQkJcmV0dXJuIHZhbGlkYXRlRmxvd0ZpbmFsTm9kZSgoRmxvd0ZpbmFsTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DRU5UUkFMX0JVRkZFUl9OT0RFOgorCQkJCXJldHVybiB2YWxpZGF0ZUNlbnRyYWxCdWZmZXJOb2RlKChDZW50cmFsQnVmZmVyTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5BQ1RJVklUWV9QQVJUSVRJT046CisJCQkJcmV0dXJuIHZhbGlkYXRlQWN0aXZpdHlQYXJ0aXRpb24oKEFjdGl2aXR5UGFydGl0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkVYUEFOU0lPTl9OT0RFOgorCQkJCXJldHVybiB2YWxpZGF0ZUV4cGFuc2lvbk5vZGUoKEV4cGFuc2lvbk5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX1JFR0lPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVFeHBhbnNpb25SZWdpb24oKEV4cGFuc2lvblJlZ2lvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5FWENFUFRJT05fSEFORExFUjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVFeGNlcHRpb25IYW5kbGVyKChFeGNlcHRpb25IYW5kbGVyKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSQUNUSU9OX09DQ1VSUkVOQ0U6CiAJCQkJcmV0dXJuIHZhbGlkYXRlSW50ZXJhY3Rpb25PY2N1cnJlbmNlKChJbnRlcmFjdGlvbk9jY3VycmVuY2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuR0FURToKQEAgLTk3MSw1MiArOTcxLDYgQEAKIAkJCQlyZXR1cm4gdmFsaWRhdGVDb250aW51YXRpb24oKENvbnRpbnVhdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT01QT05FTlQ6CiAJCQkJcmV0dXJuIHZhbGlkYXRlQ29tcG9uZW50KChDb21wb25lbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUFJPVE9DT0xfQ09ORk9STUFOQ0U6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlUHJvdG9jb2xDb25mb3JtYW5jZSgoUHJvdG9jb2xDb25mb3JtYW5jZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9TVEFURV9NQUNISU5FOgotCQkJCXJldHVybiB2YWxpZGF0ZVByb3RvY29sU3RhdGVNYWNoaW5lKChQcm90b2NvbFN0YXRlTWFjaGluZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5QUk9UT0NPTF9UUkFOU0lUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZVByb3RvY29sVHJhbnNpdGlvbigoUHJvdG9jb2xUcmFuc2l0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfRVhQUkVTU0lPTjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVUaW1lRXhwcmVzc2lvbigoVGltZUV4cHJlc3Npb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT046Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRHVyYXRpb24oKER1cmF0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfT0JTRVJWQVRJT05fQUNUSU9OOgotCQkJCXJldHVybiB2YWxpZGF0ZVRpbWVPYnNlcnZhdGlvbkFjdGlvbigoVGltZU9ic2VydmF0aW9uQWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRVUkFUSU9OX0lOVEVSVkFMOgotCQkJCXJldHVybiB2YWxpZGF0ZUR1cmF0aW9uSW50ZXJ2YWwoKER1cmF0aW9uSW50ZXJ2YWwpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUw6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlSW50ZXJ2YWwoKEludGVydmFsKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfQ09OU1RSQUlOVDoKLQkJCQlyZXR1cm4gdmFsaWRhdGVUaW1lQ29uc3RyYWludCgoVGltZUNvbnN0cmFpbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJWQUxfQ09OU1RSQUlOVDoKLQkJCQlyZXR1cm4gdmFsaWRhdGVJbnRlcnZhbENvbnN0cmFpbnQoKEludGVydmFsQ29uc3RyYWludCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5USU1FX0lOVEVSVkFMOgotCQkJCXJldHVybiB2YWxpZGF0ZVRpbWVJbnRlcnZhbCgoVGltZUludGVydmFsKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRVUkFUSU9OX09CU0VSVkFUSU9OX0FDVElPTjoKLQkJCQlyZXR1cm4gdmFsaWRhdGVEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKChEdXJhdGlvbk9ic2VydmF0aW9uQWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkRVUkFUSU9OX0NPTlNUUkFJTlQ6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRHVyYXRpb25Db25zdHJhaW50KChEdXJhdGlvbkNvbnN0cmFpbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuREFUQV9TVE9SRV9OT0RFOgotCQkJCXJldHVybiB2YWxpZGF0ZURhdGFTdG9yZU5vZGUoKERhdGFTdG9yZU5vZGUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuSU5URVJSVVBUSUJMRV9BQ1RJVklUWV9SRUdJT046Ci0JCQkJcmV0dXJuIHZhbGlkYXRlSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uKChJbnRlcnJ1cHRpYmxlQWN0aXZpdHlSZWdpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuUEFSQU1FVEVSX1NFVDoKLQkJCQlyZXR1cm4gdmFsaWRhdGVQYXJhbWV0ZXJTZXQoKFBhcmFtZXRlclNldCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UOgotCQkJCXJldHVybiB2YWxpZGF0ZURlcGxveW1lbnQoKERlcGxveW1lbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuREVQTE9ZRURfQVJUSUZBQ1Q6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRGVwbG95ZWRBcnRpZmFjdCgoRGVwbG95ZWRBcnRpZmFjdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UX1RBUkdFVDoKLQkJCQlyZXR1cm4gdmFsaWRhdGVEZXBsb3ltZW50VGFyZ2V0KChEZXBsb3ltZW50VGFyZ2V0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLk5PREU6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlTm9kZSgoTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5ERVZJQ0U6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRGV2aWNlKChEZXZpY2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhFQ1VUSU9OX0VOVklST05NRU5UOgotCQkJCXJldHVybiB2YWxpZGF0ZUV4ZWN1dGlvbkVudmlyb25tZW50KChFeGVjdXRpb25FbnZpcm9ubWVudCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwotCQkJY2FzZSBVTUwyUGFja2FnZS5DT01NVU5JQ0FUSU9OX1BBVEg6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlQ29tbXVuaWNhdGlvblBhdGgoKENvbW11bmljYXRpb25QYXRoKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJFQURfRVhURU5UX0FDVElPTjoKIAkJCQlyZXR1cm4gdmFsaWRhdGVSZWFkRXh0ZW50QWN0aW9uKChSZWFkRXh0ZW50QWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJFQ0xBU1NJRllfT0JKRUNUX0FDVElPTjoKQEAgLTEwNDEsNiArOTk1LDUyIEBACiAJCQkJcmV0dXJuIHZhbGlkYXRlUmVwbHlBY3Rpb24oKFJlcGx5QWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlJBSVNFX0VYQ0VQVElPTl9BQ1RJT046CiAJCQkJcmV0dXJuIHZhbGlkYXRlUmFpc2VFeGNlcHRpb25BY3Rpb24oKFJhaXNlRXhjZXB0aW9uQWN0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLkRBVEFfU1RPUkVfTk9ERToKKwkJCQlyZXR1cm4gdmFsaWRhdGVEYXRhU3RvcmVOb2RlKChEYXRhU3RvcmVOb2RlKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSUlVQVElCTEVfQUNUSVZJVFlfUkVHSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZUludGVycnVwdGlibGVBY3Rpdml0eVJlZ2lvbigoSW50ZXJydXB0aWJsZUFjdGl2aXR5UmVnaW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlBBUkFNRVRFUl9TRVQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlUGFyYW1ldGVyU2V0KChQYXJhbWV0ZXJTZXQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9FWFBSRVNTSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZVRpbWVFeHByZXNzaW9uKChUaW1lRXhwcmVzc2lvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5EVVJBVElPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVEdXJhdGlvbigoRHVyYXRpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9PQlNFUlZBVElPTl9BQ1RJT046CisJCQkJcmV0dXJuIHZhbGlkYXRlVGltZU9ic2VydmF0aW9uQWN0aW9uKChUaW1lT2JzZXJ2YXRpb25BY3Rpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fSU5URVJWQUw6CisJCQkJcmV0dXJuIHZhbGlkYXRlRHVyYXRpb25JbnRlcnZhbCgoRHVyYXRpb25JbnRlcnZhbCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTDoKKwkJCQlyZXR1cm4gdmFsaWRhdGVJbnRlcnZhbCgoSW50ZXJ2YWwpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuVElNRV9DT05TVFJBSU5UOgorCQkJCXJldHVybiB2YWxpZGF0ZVRpbWVDb25zdHJhaW50KChUaW1lQ29uc3RyYWludCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5JTlRFUlZBTF9DT05TVFJBSU5UOgorCQkJCXJldHVybiB2YWxpZGF0ZUludGVydmFsQ29uc3RyYWludCgoSW50ZXJ2YWxDb25zdHJhaW50KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlRJTUVfSU5URVJWQUw6CisJCQkJcmV0dXJuIHZhbGlkYXRlVGltZUludGVydmFsKChUaW1lSW50ZXJ2YWwpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fT0JTRVJWQVRJT05fQUNUSU9OOgorCQkJCXJldHVybiB2YWxpZGF0ZUR1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24oKER1cmF0aW9uT2JzZXJ2YXRpb25BY3Rpb24pdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRFVSQVRJT05fQ09OU1RSQUlOVDoKKwkJCQlyZXR1cm4gdmFsaWRhdGVEdXJhdGlvbkNvbnN0cmFpbnQoKER1cmF0aW9uQ29uc3RyYWludCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UOgorCQkJCXJldHVybiB2YWxpZGF0ZURlcGxveW1lbnQoKERlcGxveW1lbnQpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuREVQTE9ZRURfQVJUSUZBQ1Q6CisJCQkJcmV0dXJuIHZhbGlkYXRlRGVwbG95ZWRBcnRpZmFjdCgoRGVwbG95ZWRBcnRpZmFjdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UX1RBUkdFVDoKKwkJCQlyZXR1cm4gdmFsaWRhdGVEZXBsb3ltZW50VGFyZ2V0KChEZXBsb3ltZW50VGFyZ2V0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLk5PREU6CisJCQkJcmV0dXJuIHZhbGlkYXRlTm9kZSgoTm9kZSl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5ERVZJQ0U6CisJCQkJcmV0dXJuIHZhbGlkYXRlRGV2aWNlKChEZXZpY2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhFQ1VUSU9OX0VOVklST05NRU5UOgorCQkJCXJldHVybiB2YWxpZGF0ZUV4ZWN1dGlvbkVudmlyb25tZW50KChFeGVjdXRpb25FbnZpcm9ubWVudCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DT01NVU5JQ0FUSU9OX1BBVEg6CisJCQkJcmV0dXJuIHZhbGlkYXRlQ29tbXVuaWNhdGlvblBhdGgoKENvbW11bmljYXRpb25QYXRoKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CisJCQljYXNlIFVNTDJQYWNrYWdlLlBST1RPQ09MX0NPTkZPUk1BTkNFOgorCQkJCXJldHVybiB2YWxpZGF0ZVByb3RvY29sQ29uZm9ybWFuY2UoKFByb3RvY29sQ29uZm9ybWFuY2UpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUFJPVE9DT0xfU1RBVEVfTUFDSElORToKKwkJCQlyZXR1cm4gdmFsaWRhdGVQcm90b2NvbFN0YXRlTWFjaGluZSgoUHJvdG9jb2xTdGF0ZU1hY2hpbmUpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuUFJPVE9DT0xfVFJBTlNJVElPTjoKKwkJCQlyZXR1cm4gdmFsaWRhdGVQcm90b2NvbFRyYW5zaXRpb24oKFByb3RvY29sVHJhbnNpdGlvbil2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5ERVBMT1lNRU5UX1NQRUNJRklDQVRJT046CiAJCQkJcmV0dXJuIHZhbGlkYXRlRGVwbG95bWVudFNwZWNpZmljYXRpb24oKERlcGxveW1lbnRTcGVjaWZpY2F0aW9uKXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlZJU0lCSUxJVFlfS0lORDoKQEAgLTEwNDksMTggKzEwNDksMTggQEAKIAkJCQlyZXR1cm4gdmFsaWRhdGVQYXJhbWV0ZXJEaXJlY3Rpb25LaW5kKChPYmplY3QpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKIAkJCWNhc2UgVU1MMlBhY2thZ2UuQUdHUkVHQVRJT05fS0lORDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVBZ2dyZWdhdGlvbktpbmQoKE9iamVjdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOworCQkJY2FzZSBVTUwyUGFja2FnZS5DQUxMX0NPTkNVUlJFTkNZX0tJTkQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlQ2FsbENvbmN1cnJlbmN5S2luZCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLk1FU1NBR0VfS0lORDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVNZXNzYWdlS2luZCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLk1FU1NBR0VfU09SVDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVNZXNzYWdlU29ydCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7Ci0JCQljYXNlIFVNTDJQYWNrYWdlLkNBTExfQ09OQ1VSUkVOQ1lfS0lORDoKLQkJCQlyZXR1cm4gdmFsaWRhdGVDYWxsQ29uY3VycmVuY3lLaW5kKChPYmplY3QpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKLQkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX0tJTkQ6Ci0JCQkJcmV0dXJuIHZhbGlkYXRlRXhwYW5zaW9uS2luZCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlRSQU5TSVRJT05fS0lORDoKIAkJCQlyZXR1cm4gdmFsaWRhdGVUcmFuc2l0aW9uS2luZCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLlBTRVVET1NUQVRFX0tJTkQ6CiAJCQkJcmV0dXJuIHZhbGlkYXRlUHNldWRvc3RhdGVLaW5kKChPYmplY3QpdmFsdWUsIGRpYWdub3N0aWNzLCBjb250ZXh0KTsKKwkJCWNhc2UgVU1MMlBhY2thZ2UuRVhQQU5TSU9OX0tJTkQ6CisJCQkJcmV0dXJuIHZhbGlkYXRlRXhwYW5zaW9uS2luZCgoT2JqZWN0KXZhbHVlLCBkaWFnbm9zdGljcywgY29udGV4dCk7CiAJCQljYXNlIFVNTDJQYWNrYWdlLklOVEVSQUNUSU9OX09QRVJBVE9SOgogCQkJCXJldHVybiB2YWxpZGF0ZUludGVyYWN0aW9uT3BlcmF0b3IoKE9iamVjdCl2YWx1ZSwgZGlhZ25vc3RpY3MsIGNvbnRleHQpOwogCQkJY2FzZSBVTUwyUGFja2FnZS5DT05ORUNUT1JfS0lORDoK