UEsDBAoAAAAAADlDujIAAAAAAAAAAAAAAAAJAAAATUVUQS1JTkYvUEsDBAoAAAAAADlDujK2WuMwRgQAAEYEAAAUAAAATUVUQS1JTkYvTUFOSUZFU1QuTUZNYW5pZmVzdC1WZXJzaW9uOiAxLjANCkJ1bmRsZS1OYW1lOiBNaW5pbXVtLUVFDQpCdW5kbGUtRGVzY3JpcHRpb246IENvbnRhaW5zIHRoZSBPU0dpIG1pbmltdW0gZXhlY3V0aW9uIGVudmlyb25tZW50IHN0dWJiZWQgYw0KIGxhc3NlcyBhbmQgc291cmNlcw0KQnVuZGxlLVZlcnNpb246IDEuMA0KQnVuZGxlLVZlbmRvcjogT1NHaSBBbGxpYW5jZQ0KQnVuZGxlLUNvcHlyaWdodDogQ29weXJpZ2h0cyAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMikuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpCdW5kbGUtRG9jVVJMOiB3d3cub3NnaS5vcmcNCkJ1bmRsZS1BZGRyZXNzOiBzcGVjY29tbWVudHNAbWFpbC5vc2dpLm9yZw0KQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IE9TR2kvTWluaW11bS0xLjANCkNWUy1IZWFkZXI6ICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vTWFuaWZlc3QubWYsdiAxLjQgMjAwNC8xMS8wMiAxDQogNToyMDowMCBoYXJncmF2ZSBFeHAgJA0KUHJpdmF0ZS1QYWNrYWdlOiBPU0dJLU9QVC5zcmMuamF2YS5pbyAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEubGFuZyAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEubGFuZy5yZWYgLA0KICAgICAgIE9TR0ktT1BULnNyYy5qYXZhLmxhbmcucmVmbGVjdCAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEubmV0ICwNCiAgICAgICBPU0dJLU9QVC5zcmMuamF2YS5zZWN1cml0eSAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEuc2VjdXJpdHkuY2VydCAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEudXRpbCAsDQogICAgICAgT1NHSS1PUFQuc3JjLmphdmEudXRpbC56aXAgLA0KICAgICAgIGFib3V0Lmh0bWwgLA0KICAgICAgIGVwbC12MTAuaHRtbCAsDQogICAgICAgamF2YS5pbyAsDQogICAgICAgamF2YS5sYW5nICwNCiAgICAgICBqYXZhLmxhbmcucmVmICwNCiAgICAgICBqYXZhLmxhbmcucmVmbGVjdCAsDQogICAgICAgamF2YS5uZXQgLA0KICAgICAgIGphdmEuc2VjdXJpdHkgLA0KICAgICAgIGphdmEuc2VjdXJpdHkuY2VydCAsDQogICAgICAgamF2YS51dGlsICwNCiAgICAgICBqYXZhLnV0aWwuemlwIA0KDQoNClBLAwQKAAAAAAA5Q7oyAAAAAAAAAAAAAAAACQAAAE9TR0ktT1BUL1BLAwQKAAAAAAA5Q7oyAAAAAAAAAAAAAAAADQAAAE9TR0ktT1BUL3NyYy9QSwMECgAAAAAAOUO6MgAAAAAAAAAAAAAAABIAAABPU0dJLU9QVC9zcmMvamF2YS9QSwMECgAAAAAAOUO6MgAAAAAAAAAAAAAAABUAAABPU0dJLU9QVC9zcmMvamF2YS9pby9QSwMECgAAAAAAOUO6MjcPTphxBAAAcQQAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9pby9CdWZmZXJlZElucHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9CdWZmZXJlZElucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBCdWZmZXJlZElucHV0U3RyZWFtIGV4dGVuZHMgamF2YS5pby5GaWx0ZXJJbnB1dFN0cmVhbSB7DQoJcHVibGljIEJ1ZmZlcmVkSW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSB2YXIwKSB7IHN1cGVyKChqYXZhLmlvLklucHV0U3RyZWFtKSBudWxsKTsgfQ0KCXB1YmxpYyBCdWZmZXJlZElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCwgaW50IHZhcjEpIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIGludCBhdmFpbGFibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBtYXJrKGludCB2YXIwKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBtYXJrU3VwcG9ydGVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgdm9pZCByZXNldCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBsb25nIHNraXAobG9uZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwbDsgfQ0KCXByb3RlY3RlZCBieXRlW10gYnVmOw0KCXByb3RlY3RlZCBpbnQgY291bnQ7DQoJcHJvdGVjdGVkIGludCBtYXJrbGltaXQ7DQoJcHJvdGVjdGVkIGludCBtYXJrcG9zOw0KCXByb3RlY3RlZCBpbnQgcG9zOw0KfQ0KDQpQSwMECgAAAAAAOUO6Mn8ekhAWAwAAFgMAAC4AAABPU0dJLU9QVC9zcmMvamF2YS9pby9CdWZmZXJlZE91dHB1dFN0cmVhbS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vQnVmZmVyZWRPdXRwdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIEJ1ZmZlcmVkT3V0cHV0U3RyZWFtIGV4dGVuZHMgamF2YS5pby5GaWx0ZXJPdXRwdXRTdHJlYW0gew0KCXB1YmxpYyBCdWZmZXJlZE91dHB1dFN0cmVhbShqYXZhLmlvLk91dHB1dFN0cmVhbSB2YXIwKSB7IHN1cGVyKChqYXZhLmlvLk91dHB1dFN0cmVhbSkgbnVsbCk7IH0NCglwdWJsaWMgQnVmZmVyZWRPdXRwdXRTdHJlYW0oamF2YS5pby5PdXRwdXRTdHJlYW0gdmFyMCwgaW50IHZhcjEpIHsgc3VwZXIoKGphdmEuaW8uT3V0cHV0U3RyZWFtKSBudWxsKTsgfQ0KCXB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBieXRlW10gYnVmOw0KCXByb3RlY3RlZCBpbnQgY291bnQ7DQp9DQoNClBLAwQKAAAAAAA5Q7oyaiuQUvoDAAD6AwAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0J1ZmZlcmVkUmVhZGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9CdWZmZXJlZFJlYWRlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgQnVmZmVyZWRSZWFkZXIgZXh0ZW5kcyBqYXZhLmlvLlJlYWRlciB7DQoJcHVibGljIEJ1ZmZlcmVkUmVhZGVyKGphdmEuaW8uUmVhZGVyIHZhcjApIHsgfQ0KCXB1YmxpYyBCdWZmZXJlZFJlYWRlcihqYXZhLmlvLlJlYWRlciB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBtYXJrKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgYm9vbGVhbiBtYXJrU3VwcG9ydGVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyByZWFkTGluZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiByZWFkeSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgcmVzZXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgbG9uZyBza2lwKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIAwnMDOQMAADkDAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vQnVmZmVyZWRXcml0ZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0J1ZmZlcmVkV3JpdGVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBCdWZmZXJlZFdyaXRlciBleHRlbmRzIGphdmEuaW8uV3JpdGVyIHsNCglwdWJsaWMgQnVmZmVyZWRXcml0ZXIoamF2YS5pby5Xcml0ZXIgdmFyMCkgeyB9DQoJcHVibGljIEJ1ZmZlcmVkV3JpdGVyKGphdmEuaW8uV3JpdGVyIHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgbmV3TGluZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyT9xCMXQDAAB0AwAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0J5dGVBcnJheUlucHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9CeXRlQXJyYXlJbnB1dFN0cmVhbS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgQnl0ZUFycmF5SW5wdXRTdHJlYW0gZXh0ZW5kcyBqYXZhLmlvLklucHV0U3RyZWFtIHsNCglwdWJsaWMgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZVtdIHZhcjApIHsgfQ0KCXB1YmxpYyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgaW50IGF2YWlsYWJsZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIG1hcmsoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBib29sZWFuIG1hcmtTdXBwb3J0ZWQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgcmVhZCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgeyB9DQoJcHVibGljIGxvbmcgc2tpcChsb25nIHZhcjApIHsgcmV0dXJuIDBsOyB9DQoJcHJvdGVjdGVkIGJ5dGVbXSBidWY7DQoJcHJvdGVjdGVkIGludCBwb3M7DQoJcHJvdGVjdGVkIGludCBtYXJrOw0KCXByb3RlY3RlZCBpbnQgY291bnQ7DQp9DQoNClBLAwQKAAAAAAA5Q7oyAv3zXVMDAABTAwAALwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gZXh0ZW5kcyBqYXZhLmlvLk91dHB1dFN0cmVhbSB7DQoJcHVibGljIEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpIHsgfQ0KCXB1YmxpYyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgcmVzZXQoKSB7IH0NCglwdWJsaWMgaW50IHNpemUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJ5dGVbXSB0b0J5dGVBcnJheSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgd3JpdGVUbyhqYXZhLmlvLk91dHB1dFN0cmVhbSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgYnl0ZVtdIGJ1ZjsNCglwcm90ZWN0ZWQgaW50IGNvdW50Ow0KfQ0KDQpQSwMECgAAAAAAOUO6MquFNBW3AQAAtwEAADEAAABPU0dJLU9QVC9zcmMvamF2YS9pby9DaGFyQ29udmVyc2lvbkV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vQ2hhckNvbnZlcnNpb25FeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIENoYXJDb252ZXJzaW9uRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIENoYXJDb252ZXJzaW9uRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIENoYXJDb252ZXJzaW9uRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy4ArZ9TEFAAAxBQAAIwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0RhdGFJbnB1dC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRGF0YUlucHV0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgRGF0YUlucHV0IHsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCBieXRlIHJlYWRCeXRlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IGNoYXIgcmVhZENoYXIoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgZG91YmxlIHJlYWREb3VibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgZmxvYXQgcmVhZEZsb2F0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IGludCByZWFkSW50KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5TdHJpbmcgcmVhZExpbmUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgbG9uZyByZWFkTG9uZygpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCBzaG9ydCByZWFkU2hvcnQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWRVbnNpZ25lZEJ5dGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWRVbnNpZ25lZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5TdHJpbmcgcmVhZFVURigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgc2tpcEJ5dGVzKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCn0NCg0KUEsDBAoAAAAAADlDujINYqMkDAcAAAwHAAApAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRGF0YUlucHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9EYXRhSW5wdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIERhdGFJbnB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uRmlsdGVySW5wdXRTdHJlYW0gaW1wbGVtZW50cyBqYXZhLmlvLkRhdGFJbnB1dCB7DQoJcHVibGljIERhdGFJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIGZpbmFsIGludCByZWFkKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGludCByZWFkKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIGJ5dGUgcmVhZEJ5dGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGNoYXIgcmVhZENoYXIoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGRvdWJsZSByZWFkRG91YmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBmaW5hbCBmbG9hdCByZWFkRmxvYXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGZpbmFsIHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIGludCByZWFkSW50KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIHJlYWRMaW5lKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBsb25nIHJlYWRMb25nKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgZmluYWwgc2hvcnQgcmVhZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBpbnQgcmVhZFVuc2lnbmVkQnl0ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgaW50IHJlYWRVbnNpZ25lZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIHJlYWRVVEYoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGludCBza2lwQnl0ZXMoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCn0NCg0KUEsDBAoAAAAAADlDujI5SRP/UwUAAFMFAAAkAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRGF0YU91dHB1dC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRGF0YU91dHB1dC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIERhdGFPdXRwdXQgew0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVCb29sZWFuKGJvb2xlYW4gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVCeXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZUJ5dGVzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVDaGFyKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZUNoYXJzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVEb3VibGUoZG91YmxlIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlRmxvYXQoZmxvYXQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVJbnQoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlTG9uZyhsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlU2hvcnQoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlVVRGKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQp9DQoNClBLAwQKAAAAAAA5Q7oyhPgBZBQGAAAUBgAAKgAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0RhdGFPdXRwdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0RhdGFPdXRwdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIERhdGFPdXRwdXRTdHJlYW0gZXh0ZW5kcyBqYXZhLmlvLkZpbHRlck91dHB1dFN0cmVhbSBpbXBsZW1lbnRzIGphdmEuaW8uRGF0YU91dHB1dCB7DQoJcHVibGljIERhdGFPdXRwdXRTdHJlYW0oamF2YS5pby5PdXRwdXRTdHJlYW0gdmFyMCkgeyBzdXBlcigoamF2YS5pby5PdXRwdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgaW50IHNpemUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlQm9vbGVhbihib29sZWFuIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlQnl0ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVCeXRlcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlQ2hhcihpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVDaGFycyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlRG91YmxlKGRvdWJsZSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUZsb2F0KGZsb2F0IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlSW50KGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUxvbmcobG9uZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZVNob3J0KGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZVVURihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBpbnQgd3JpdHRlbjsNCn0NCg0KUEsDBAoAAAAAADlDujJVbkP8iwEAAIsBAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRU9GRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9FT0ZFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIEVPRkV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXB1YmxpYyBFT0ZFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgRU9GRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy/+tk4CgCAAAoAgAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0V4dGVybmFsaXphYmxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9FeHRlcm5hbGl6YWJsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIEV4dGVybmFsaXphYmxlIGV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlYWRFeHRlcm5hbChqYXZhLmlvLk9iamVjdElucHV0IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZUV4dGVybmFsKGphdmEuaW8uT2JqZWN0T3V0cHV0IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KfQ0KDQpQSwMECgAAAAAAOUO6Mg09Ta4sCQAALAkAAB4AAABPU0dJLU9QVC9zcmMvamF2YS9pby9GaWxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9GaWxlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBGaWxlIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmEubGFuZy5Db21wYXJhYmxlIHsNCglwdWJsaWMgRmlsZShqYXZhLmlvLkZpbGUgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IH0NCglwdWJsaWMgRmlsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBGaWxlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBjYW5SZWFkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBjYW5Xcml0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5pby5GaWxlIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBkZWxldGUoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIGRlbGV0ZU9uRXhpdCgpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gZXhpc3RzKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRBYnNvbHV0ZVBhdGgoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0Q2Fub25pY2FsUGF0aCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFBhcmVudCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRQYXRoKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gaXNBYnNvbHV0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gaXNEaXJlY3RvcnkoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGlzRmlsZSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGxvbmcgbGFzdE1vZGlmaWVkKCkgeyByZXR1cm4gMGw7IH0NCglwdWJsaWMgbG9uZyBsZW5ndGgoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gbGlzdCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBta2RpcigpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gbWtkaXJzKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBjcmVhdGVOZXdGaWxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGphdmEuaW8uRmlsZSBjcmVhdGVUZW1wRmlsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgamF2YS5pby5GaWxlIHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiByZW5hbWVUbyhqYXZhLmlvLkZpbGUgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5uZXQuVVJMIHRvVVJMKCkgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBjaGFyIHNlcGFyYXRvckNoYXI7IHN0YXRpYyB7IHNlcGFyYXRvckNoYXIgPSAwOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHNlcGFyYXRvcjsgc3RhdGljIHsgc2VwYXJhdG9yID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgY2hhciBwYXRoU2VwYXJhdG9yQ2hhcjsgc3RhdGljIHsgcGF0aFNlcGFyYXRvckNoYXIgPSAwOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHBhdGhTZXBhcmF0b3I7IHN0YXRpYyB7IHBhdGhTZXBhcmF0b3IgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy/PBrD4oCAACKAgAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0ZpbGVEZXNjcmlwdG9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9GaWxlRGVzY3JpcHRvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgZmluYWwgY2xhc3MgRmlsZURlc2NyaXB0b3Igew0KCXB1YmxpYyBGaWxlRGVzY3JpcHRvcigpIHsgfQ0KCXB1YmxpYyB2b2lkIHN5bmMoKSB0aHJvd3MgamF2YS5pby5TeW5jRmFpbGVkRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBib29sZWFuIHZhbGlkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEuaW8uRmlsZURlc2NyaXB0b3IgaW47IHN0YXRpYyB7IGluID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5pby5GaWxlRGVzY3JpcHRvciBvdXQ7IHN0YXRpYyB7IG91dCA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEuaW8uRmlsZURlc2NyaXB0b3IgZXJyOyBzdGF0aWMgeyBlcnIgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyKsV072EEAABhBAAAKQAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0ZpbGVJbnB1dFN0cmVhbS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRmlsZUlucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBGaWxlSW5wdXRTdHJlYW0gZXh0ZW5kcyBqYXZhLmlvLklucHV0U3RyZWFtIHsNCglwdWJsaWMgRmlsZUlucHV0U3RyZWFtKGphdmEuaW8uRmlsZSB2YXIwKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyB9DQoJcHVibGljIEZpbGVJbnB1dFN0cmVhbShqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIHZhcjApIHsgfQ0KCXB1YmxpYyBGaWxlSW5wdXRTdHJlYW0oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyB9DQoJcHVibGljIGludCBhdmFpbGFibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgdm9pZCBmaW5hbGl6ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIGdldEZEKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBsb25nIHNraXAobG9uZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mgpba8evAQAArwEAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9pby9GaWxlTm90Rm91bmRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0ZpbGVOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBGaWxlTm90Rm91bmRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLlKNWqNQQAADUEAAAqAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsZU91dHB1dFN0cmVhbS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRmlsZU91dHB1dFN0cmVhbS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgRmlsZU91dHB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uT3V0cHV0U3RyZWFtIHsNCglwdWJsaWMgRmlsZU91dHB1dFN0cmVhbShqYXZhLmlvLkZpbGUgdmFyMCkgdGhyb3dzIGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBGaWxlT3V0cHV0U3RyZWFtKGphdmEuaW8uRmlsZURlc2NyaXB0b3IgdmFyMCkgeyB9DQoJcHVibGljIEZpbGVPdXRwdXRTdHJlYW0oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyB9DQoJcHVibGljIEZpbGVPdXRwdXRTdHJlYW0oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBib29sZWFuIHZhcjEpIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCB2b2lkIGZpbmFsaXplKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIGphdmEuaW8uRmlsZURlc2NyaXB0b3IgZ2V0RkQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujJ/cd3yFwMAABcDAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsZVBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0ZpbGVQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBGaWxlUGVybWlzc2lvbiBleHRlbmRzIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgRmlsZVBlcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwpOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0QWN0aW9ucygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGltcGxpZXMoamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbkNvbGxlY3Rpb24gbmV3UGVybWlzc2lvbkNvbGxlY3Rpb24oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKcm7jVggIAAIICAAAkAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsZVJlYWRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRmlsZVJlYWRlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgRmlsZVJlYWRlciBleHRlbmRzIGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXIgew0KCXB1YmxpYyBGaWxlUmVhZGVyKGphdmEuaW8uRmlsZSB2YXIwKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyBzdXBlcigoamF2YS5pby5JbnB1dFN0cmVhbSkgbnVsbCk7IH0NCglwdWJsaWMgRmlsZVJlYWRlcihqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIHZhcjApIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIEZpbGVSZWFkZXIoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyBzdXBlcigoamF2YS5pby5JbnB1dFN0cmVhbSkgbnVsbCk7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIwo2eB7gIAAO4CAAAkAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsZVdyaXRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vRmlsZVdyaXRlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgRmlsZVdyaXRlciBleHRlbmRzIGphdmEuaW8uT3V0cHV0U3RyZWFtV3JpdGVyIHsNCglwdWJsaWMgRmlsZVdyaXRlcihqYXZhLmlvLkZpbGUgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyBzdXBlcigoamF2YS5pby5PdXRwdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIEZpbGVXcml0ZXIoamF2YS5pby5GaWxlRGVzY3JpcHRvciB2YXIwKSB7IHN1cGVyKChqYXZhLmlvLk91dHB1dFN0cmVhbSkgbnVsbCk7IH0NCglwdWJsaWMgRmlsZVdyaXRlcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgc3VwZXIoKGphdmEuaW8uT3V0cHV0U3RyZWFtKSBudWxsKTsgfQ0KCXB1YmxpYyBGaWxlV3JpdGVyKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgYm9vbGVhbiB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHN1cGVyKChqYXZhLmlvLk91dHB1dFN0cmVhbSkgbnVsbCk7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLS1+qg0QMAANEDAAArAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsdGVySW5wdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0ZpbHRlcklucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBGaWx0ZXJJbnB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uSW5wdXRTdHJlYW0gew0KCXByb3RlY3RlZCBGaWx0ZXJJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHsgfQ0KCXB1YmxpYyBpbnQgYXZhaWxhYmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgbWFyayhpbnQgdmFyMCkgeyB9DQoJcHVibGljIGJvb2xlYW4gbWFya1N1cHBvcnRlZCgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGludCByZWFkKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgcmVhZChieXRlW10gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgcmVhZChieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgcmVzZXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgbG9uZyBza2lwKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwcm90ZWN0ZWQgamF2YS5pby5JbnB1dFN0cmVhbSBpbjsNCn0NCg0KUEsDBAoAAAAAADlDujJjb4h45wIAAOcCAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vRmlsdGVyT3V0cHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9GaWx0ZXJPdXRwdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIEZpbHRlck91dHB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uT3V0cHV0U3RyZWFtIHsNCglwdWJsaWMgRmlsdGVyT3V0cHV0U3RyZWFtKGphdmEuaW8uT3V0cHV0U3RyZWFtIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBqYXZhLmlvLk91dHB1dFN0cmVhbSBvdXQ7DQp9DQoNClBLAwQKAAAAAAA5Q7oyIS7lE4cBAACHAQAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0lPRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9JT0V4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgSU9FeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsNCglwdWJsaWMgSU9FeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgSU9FeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKrgnNQaQMAAGkDAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vSW5wdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0lucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBJbnB1dFN0cmVhbSB7DQoJcHVibGljIElucHV0U3RyZWFtKCkgeyB9DQoJcHVibGljIGludCBhdmFpbGFibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBtYXJrKGludCB2YXIwKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBtYXJrU3VwcG9ydGVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGxvbmcgc2tpcChsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyylU0q0UDAABFAwAAKwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0lucHV0U3RyZWFtUmVhZGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9JbnB1dFN0cmVhbVJlYWRlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgSW5wdXRTdHJlYW1SZWFkZXIgZXh0ZW5kcyBqYXZhLmlvLlJlYWRlciB7DQoJcHVibGljIElucHV0U3RyZWFtUmVhZGVyKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCkgeyB9DQoJcHVibGljIElucHV0U3RyZWFtUmVhZGVyKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB0aHJvd3MgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0RW5jb2RpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCByZWFkKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgcmVhZChjaGFyW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gcmVhZHkoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBmYWxzZTsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MtbLgsPSAQAA0gEAADAAAABPU0dJLU9QVC9zcmMvamF2YS9pby9JbnRlcnJ1cHRlZElPRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9JbnRlcnJ1cHRlZElPRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBJbnRlcnJ1cHRlZElPRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIEludGVycnVwdGVkSU9FeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgSW50ZXJydXB0ZWRJT0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBpbnQgYnl0ZXNUcmFuc2ZlcnJlZDsNCn0NCg0KUEsDBAoAAAAAADlDujJf4OSoQgIAAEICAAAvAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vSW52YWxpZENsYXNzRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9JbnZhbGlkQ2xhc3NFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIEludmFsaWRDbGFzc0V4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uT2JqZWN0U3RyZWFtRXhjZXB0aW9uIHsNCglwdWJsaWMgSW52YWxpZENsYXNzRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIEludmFsaWRDbGFzc0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0TWVzc2FnZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBjbGFzc25hbWU7DQp9DQoNClBLAwQKAAAAAAA5Q7oyF+3bNpcBAACXAQAAMAAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0ludmFsaWRPYmplY3RFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL0ludmFsaWRPYmplY3RFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIEludmFsaWRPYmplY3RFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmlvLk9iamVjdFN0cmVhbUV4Y2VwdGlvbiB7DQoJcHVibGljIEludmFsaWRPYmplY3RFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKG5ph6rQEAAK0BAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vTm90QWN0aXZlRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9Ob3RBY3RpdmVFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIE5vdEFjdGl2ZUV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uT2JqZWN0U3RyZWFtRXhjZXB0aW9uIHsNCglwdWJsaWMgTm90QWN0aXZlRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIE5vdEFjdGl2ZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MnQ4MZDFAQAAxQEAADIAAABPU0dJLU9QVC9zcmMvamF2YS9pby9Ob3RTZXJpYWxpemFibGVFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL05vdFNlcmlhbGl6YWJsZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgTm90U2VyaWFsaXphYmxlRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5PYmplY3RTdHJlYW1FeGNlcHRpb24gew0KCXB1YmxpYyBOb3RTZXJpYWxpemFibGVFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgTm90U2VyaWFsaXphYmxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyJCwiu0YDAABGAwAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdElucHV0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9PYmplY3RJbnB1dC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE9iamVjdElucHV0IGV4dGVuZHMgamF2YS5pby5EYXRhSW5wdXQgew0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgYXZhaWxhYmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWQoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgcmVhZChieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCByZWFkT2JqZWN0KCkgdGhyb3dzIGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uLCBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCBsb25nIHNraXAobG9uZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCn0NCg0KUEsDBAoAAAAAADlDujKtdgLYJxMAACcTAAArAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL09iamVjdElucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBPYmplY3RJbnB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uSW5wdXRTdHJlYW0gaW1wbGVtZW50cyBqYXZhLmlvLk9iamVjdElucHV0LCBqYXZhLmlvLk9iamVjdFN0cmVhbUNvbnN0YW50cyB7DQoJcHJvdGVjdGVkIE9iamVjdElucHV0U3RyZWFtKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5TZWN1cml0eUV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgT2JqZWN0SW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSB2YXIwKSB0aHJvd3MgamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24sIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGludCBhdmFpbGFibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBkZWZhdWx0UmVhZE9iamVjdCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgamF2YS5pby5Ob3RBY3RpdmVFeGNlcHRpb24geyB9DQoJcHJvdGVjdGVkIGJvb2xlYW4gZW5hYmxlUmVzb2x2ZU9iamVjdChib29sZWFuIHZhcjApIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJ5dGUgcmVhZEJ5dGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGNoYXIgcmVhZENoYXIoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGRvdWJsZSByZWFkRG91YmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLkdldEZpZWxkIHJlYWRGaWVsZHMoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24sIGphdmEuaW8uTm90QWN0aXZlRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmxvYXQgcmVhZEZsb2F0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyB2b2lkIHJlYWRGdWxseShieXRlW10gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBpbnQgcmVhZEludCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyByZWFkTGluZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgbG9uZyByZWFkTG9uZygpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQoJcHJvdGVjdGVkIGphdmEuaW8uT2JqZWN0U3RyZWFtQ2xhc3MgcmVhZENsYXNzRGVzY3JpcHRvcigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5DbGFzcyByZXNvbHZlUHJveHlDbGFzcyhqYXZhLmxhbmcuU3RyaW5nW10gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgamF2YS5sYW5nLk9iamVjdCByZWFkT2JqZWN0KCkgdGhyb3dzIGphdmEuaW8uT3B0aW9uYWxEYXRhRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgcmVhZE9iamVjdE92ZXJyaWRlKCkgdGhyb3dzIGphdmEuaW8uT3B0aW9uYWxEYXRhRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHNob3J0IHJlYWRTaG9ydCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwcm90ZWN0ZWQgdm9pZCByZWFkU3RyZWFtSGVhZGVyKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEuaW8uU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBpbnQgcmVhZFVuc2lnbmVkQnl0ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWRVbnNpZ25lZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHJlYWRVVEYoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgcmVnaXN0ZXJWYWxpZGF0aW9uKGphdmEuaW8uT2JqZWN0SW5wdXRWYWxpZGF0aW9uIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5pby5Ob3RBY3RpdmVFeGNlcHRpb24sIGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgamF2YS5sYW5nLkNsYXNzIHJlc29sdmVDbGFzcyhqYXZhLmlvLk9iamVjdFN0cmVhbUNsYXNzIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLCBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgcmVzb2x2ZU9iamVjdChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IHNraXBCeXRlcyhpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgR2V0RmllbGQgew0KCQlwdWJsaWMgR2V0RmllbGQoKSB7IH0NCgkJcHVibGljIGFic3RyYWN0IGphdmEuaW8uT2JqZWN0U3RyZWFtQ2xhc3MgZ2V0T2JqZWN0U3RyZWFtQ2xhc3MoKTsNCgkJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gZGVmYXVsdGVkKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGdldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGJvb2xlYW4gdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBjaGFyIGdldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGNoYXIgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBieXRlIGdldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGJ5dGUgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBzaG9ydCBnZXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBzaG9ydCB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjsNCgkJcHVibGljIGFic3RyYWN0IGludCBnZXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBsb25nIGdldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGxvbmcgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBmbG9hdCBnZXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBmbG9hdCB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjsNCgkJcHVibGljIGFic3RyYWN0IGRvdWJsZSBnZXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBkb3VibGUgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247DQoJfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MiTT6xeQAQAAkAEAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9pby9PYmplY3RJbnB1dFZhbGlkYXRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL09iamVjdElucHV0VmFsaWRhdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE9iamVjdElucHV0VmFsaWRhdGlvbiB7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgdmFsaWRhdGVPYmplY3QoKSB0aHJvd3MgamF2YS5pby5JbnZhbGlkT2JqZWN0RXhjZXB0aW9uOw0KfQ0KDQpQSwMECgAAAAAAOUO6Mj04nXj5AgAA+QIAACYAAABPU0dJLU9QVC9zcmMvamF2YS9pby9PYmplY3RPdXRwdXQuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL09iamVjdE91dHB1dC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE9iamVjdE91dHB1dCBleHRlbmRzIGphdmEuaW8uRGF0YU91dHB1dCB7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBmbHVzaCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGVPYmplY3QoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCn0NCg0KUEsDBAoAAAAAADlDujLJLi2M2Q0AANkNAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0T3V0cHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIE9iamVjdE91dHB1dFN0cmVhbSBleHRlbmRzIGphdmEuaW8uT3V0cHV0U3RyZWFtIGltcGxlbWVudHMgamF2YS5pby5PYmplY3RPdXRwdXQsIGphdmEuaW8uT2JqZWN0U3RyZWFtQ29uc3RhbnRzIHsNCglwcm90ZWN0ZWQgT2JqZWN0T3V0cHV0U3RyZWFtKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEubGFuZy5TZWN1cml0eUV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgT2JqZWN0T3V0cHV0U3RyZWFtKGphdmEuaW8uT3V0cHV0U3RyZWFtIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCB2b2lkIGFubm90YXRlQ2xhc3MoamF2YS5sYW5nLkNsYXNzIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCB2b2lkIGFubm90YXRlUHJveHlDbGFzcyhqYXZhLmxhbmcuQ2xhc3MgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBkZWZhdWx0V3JpdGVPYmplY3QoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgdm9pZCBkcmFpbigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBib29sZWFuIGVuYWJsZVJlcGxhY2VPYmplY3QoYm9vbGVhbiB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW0uUHV0RmllbGQgcHV0RmllbGRzKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBqYXZhLmxhbmcuT2JqZWN0IHJlcGxhY2VPYmplY3QoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgcmVzZXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB1c2VQcm90b2NvbFZlcnNpb24oaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVCb29sZWFuKGJvb2xlYW4gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVCeXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZUJ5dGVzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVDaGFyKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZUNoYXJzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVEb3VibGUoZG91YmxlIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlRmllbGRzKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVGbG9hdChmbG9hdCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZUludChpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGVMb25nKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHJvdGVjdGVkIHZvaWQgd3JpdGVDbGFzc0Rlc2NyaXB0b3IoamF2YS5pby5PYmplY3RTdHJlYW1DbGFzcyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZU9iamVjdChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHdyaXRlT2JqZWN0T3ZlcnJpZGUoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZVNob3J0KGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgdm9pZCB3cml0ZVN0cmVhbUhlYWRlcigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlVVRGKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBQdXRGaWVsZCB7DQoJCXB1YmxpYyBQdXRGaWVsZCgpIHsgfQ0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBib29sZWFuIHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBjaGFyIHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBieXRlIHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBzaG9ydCB2YXIxKTsNCgkJcHVibGljIGFic3RyYWN0IHZvaWQgcHV0KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBsb25nIHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBmbG9hdCB2YXIxKTsNCgkJcHVibGljIGFic3RyYWN0IHZvaWQgcHV0KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgZG91YmxlIHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShqYXZhLmlvLk9iamVjdE91dHB1dCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCgl9DQp9DQoNClBLAwQKAAAAAAA5Q7oyl4KJK9sDAADbAwAAKwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9PYmplY3RTdHJlYW1DbGFzcy5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgT2JqZWN0U3RyZWFtQ2xhc3MgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIGphdmEubGFuZy5DbGFzcyBmb3JDbGFzcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5pby5PYmplY3RTdHJlYW1GaWVsZCBnZXRGaWVsZChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5pby5PYmplY3RTdHJlYW1GaWVsZFtdIGdldEZpZWxkcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBsb25nIGdldFNlcmlhbFZlcnNpb25VSUQoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5pby5PYmplY3RTdHJlYW1DbGFzcyBsb29rdXAoamF2YS5sYW5nLkNsYXNzIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEuaW8uT2JqZWN0U3RyZWFtRmllbGRbXSBOT19GSUVMRFM7IHN0YXRpYyB7IE5PX0ZJRUxEUyA9IG51bGw7IH0NCglwcml2YXRlIE9iamVjdFN0cmVhbUNsYXNzKCkgeyB9IC8qIGdlbmVyYXRlZCBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbXBpbGVyIGFkZGluZyBkZWZhdWx0IHB1YmxpYyBjb25zdHJ1Y3RvciAqLw0KfQ0KDQpQSwMECgAAAAAAOUO6MnUVvM+MBgAAjAYAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9pby9PYmplY3RTdHJlYW1Db25zdGFudHMuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL09iamVjdFN0cmVhbUNvbnN0YW50cy5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE9iamVjdFN0cmVhbUNvbnN0YW50cyB7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBzaG9ydCBTVFJFQU1fTUFHSUMgPSAtMjEyNjc7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBzaG9ydCBTVFJFQU1fVkVSU0lPTiA9IDU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX0JBU0UgPSAxMTI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX05VTEwgPSAxMTI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX1JFRkVSRU5DRSA9IDExMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgVENfQ0xBU1NERVNDID0gMTE0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBUQ19PQkpFQ1QgPSAxMTU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX1NUUklORyA9IDExNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgVENfQVJSQVkgPSAxMTc7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX0NMQVNTID0gMTE4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBUQ19CTE9DS0RBVEEgPSAxMTk7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX0VOREJMT0NLREFUQSA9IDEyMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgVENfUkVTRVQgPSAxMjE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX0JMT0NLREFUQUxPTkcgPSAxMjI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX0VYQ0VQVElPTiA9IDEyMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgVENfTE9OR1NUUklORyA9IDEyNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgVENfUFJPWFlDTEFTU0RFU0MgPSAxMjU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRDX01BWCA9IDEyNTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBiYXNlV2lyZUhhbmRsZSA9IDgyNTc1MzY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUFJPVE9DT0xfVkVSU0lPTl8xID0gMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBQUk9UT0NPTF9WRVJTSU9OXzIgPSAyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5pby5TZXJpYWxpemFibGVQZXJtaXNzaW9uIFNVQkNMQVNTX0lNUExFTUVOVEFUSU9OX1BFUk1JU1NJT04gPSBudWxsOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5pby5TZXJpYWxpemFibGVQZXJtaXNzaW9uIFNVQlNUSVRVVElPTl9QRVJNSVNTSU9OID0gbnVsbDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgU0NfV1JJVEVfTUVUSE9EID0gMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgU0NfU0VSSUFMSVpBQkxFID0gMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgU0NfRVhURVJOQUxJWkFCTEUgPSA0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBTQ19CTE9DS19EQVRBID0gODsNCn0NCg0KUEsDBAoAAAAAADlDujI++pTAvgEAAL4BAAAvAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0U3RyZWFtRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9PYmplY3RTdHJlYW1FeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdFN0cmVhbUV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXByb3RlY3RlZCBPYmplY3RTdHJlYW1FeGNlcHRpb24oKSB7IH0NCglwcm90ZWN0ZWQgT2JqZWN0U3RyZWFtRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy001gyFkDAABZAwAAKwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdFN0cmVhbUZpZWxkLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9PYmplY3RTdHJlYW1GaWVsZC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgT2JqZWN0U3RyZWFtRmllbGQgaW1wbGVtZW50cyBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIE9iamVjdFN0cmVhbUZpZWxkKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLkNsYXNzIHZhcjEpIHsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRPZmZzZXQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzcyBnZXRUeXBlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBjaGFyIGdldFR5cGVDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFR5cGVTdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gaXNQcmltaXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldE9mZnNldChpbnQgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyVBwqqv0BAAD9AQAALwAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09wdGlvbmFsRGF0YUV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vT3B0aW9uYWxEYXRhRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBPcHRpb25hbERhdGFFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmlvLk9iamVjdFN0cmVhbUV4Y2VwdGlvbiB7DQoJcHVibGljIGJvb2xlYW4gZW9mOw0KCXB1YmxpYyBpbnQgbGVuZ3RoOw0KCXByaXZhdGUgT3B0aW9uYWxEYXRhRXhjZXB0aW9uKCkgeyB9IC8qIGdlbmVyYXRlZCBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbXBpbGVyIGFkZGluZyBkZWZhdWx0IHB1YmxpYyBjb25zdHJ1Y3RvciAqLw0KfQ0KDQpQSwMECgAAAAAAOUO6MmEOxu+IAgAAiAIAACYAAABPU0dJLU9QVC9zcmMvamF2YS9pby9PdXRwdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL091dHB1dFN0cmVhbS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT3V0cHV0U3RyZWFtIHsNCglwdWJsaWMgT3V0cHV0U3RyZWFtKCkgeyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBmbHVzaCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3cml0ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQp9DQoNClBLAwQKAAAAAAA5Q7oyOeQKlpADAACQAwAALAAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL091dHB1dFN0cmVhbVdyaXRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vT3V0cHV0U3RyZWFtV3JpdGVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBPdXRwdXRTdHJlYW1Xcml0ZXIgZXh0ZW5kcyBqYXZhLmlvLldyaXRlciB7DQoJcHVibGljIE91dHB1dFN0cmVhbVdyaXRlcihqYXZhLmlvLk91dHB1dFN0cmVhbSB2YXIwKSB7IH0NCglwdWJsaWMgT3V0cHV0U3RyZWFtV3JpdGVyKGphdmEuaW8uT3V0cHV0U3RyZWFtIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgdGhyb3dzIGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0RW5jb2RpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLEUc4hwgUAAMIFAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vUHJpbnRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL1ByaW50U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBQcmludFN0cmVhbSBleHRlbmRzIGphdmEuaW8uRmlsdGVyT3V0cHV0U3RyZWFtIHsNCglwdWJsaWMgUHJpbnRTdHJlYW0oamF2YS5pby5PdXRwdXRTdHJlYW0gdmFyMCkgeyBzdXBlcigoamF2YS5pby5PdXRwdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIFByaW50U3RyZWFtKGphdmEuaW8uT3V0cHV0U3RyZWFtIHZhcjAsIGJvb2xlYW4gdmFyMSkgeyBzdXBlcigoamF2YS5pby5PdXRwdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIGJvb2xlYW4gY2hlY2tFcnJvcigpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB7IH0NCglwdWJsaWMgdm9pZCBmbHVzaCgpIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGNoYXJbXSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChjaGFyIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGRvdWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChmbG9hdCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnQobG9uZyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnQoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludGxuKCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihjaGFyW10gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihjaGFyIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oZG91YmxlIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oZmxvYXQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludGxuKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihib29sZWFuIHZhcjApIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldEVycm9yKCkgeyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mn8rNH6PBgAAjwYAACUAAABPU0dJLU9QVC9zcmMvamF2YS9pby9QcmludFdyaXRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vUHJpbnRXcml0ZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIFByaW50V3JpdGVyIGV4dGVuZHMgamF2YS5pby5Xcml0ZXIgew0KCXB1YmxpYyBQcmludFdyaXRlcihqYXZhLmlvLk91dHB1dFN0cmVhbSB2YXIwKSB7IH0NCglwdWJsaWMgUHJpbnRXcml0ZXIoamF2YS5pby5PdXRwdXRTdHJlYW0gdmFyMCwgYm9vbGVhbiB2YXIxKSB7IH0NCglwdWJsaWMgUHJpbnRXcml0ZXIoamF2YS5pby5Xcml0ZXIgdmFyMCkgeyB9DQoJcHVibGljIFByaW50V3JpdGVyKGphdmEuaW8uV3JpdGVyIHZhcjAsIGJvb2xlYW4gdmFyMSkgeyB9DQoJcHVibGljIGJvb2xlYW4gY2hlY2tFcnJvcigpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB7IH0NCglwdWJsaWMgdm9pZCBmbHVzaCgpIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGNoYXJbXSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChjaGFyIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGRvdWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChmbG9hdCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnQobG9uZyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnQoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludGxuKCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihjaGFyW10gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihjaGFyIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oZG91YmxlIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oZmxvYXQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50bG4oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludGxuKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRsbihib29sZWFuIHZhcjApIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldEVycm9yKCkgeyB9DQoJcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGludCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwcm90ZWN0ZWQgamF2YS5pby5Xcml0ZXIgb3V0Ow0KfQ0KDQpQSwMECgAAAAAAOUO6MuTyNf+kBAAApAQAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9pby9QdXNoYmFja0lucHV0U3RyZWFtLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9QdXNoYmFja0lucHV0U3RyZWFtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBQdXNoYmFja0lucHV0U3RyZWFtIGV4dGVuZHMgamF2YS5pby5GaWx0ZXJJbnB1dFN0cmVhbSB7DQoJcHVibGljIFB1c2hiYWNrSW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSB2YXIwKSB7IHN1cGVyKChqYXZhLmlvLklucHV0U3RyZWFtKSBudWxsKTsgfQ0KCXB1YmxpYyBQdXNoYmFja0lucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCwgaW50IHZhcjEpIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIGludCBhdmFpbGFibGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgYm9vbGVhbiBtYXJrU3VwcG9ydGVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgbG9uZyBza2lwKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgdm9pZCB1bnJlYWQoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHVucmVhZChieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB1bnJlYWQoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBieXRlW10gYnVmOw0KCXByb3RlY3RlZCBpbnQgcG9zOw0KfQ0KDQpQSwMECgAAAAAAOUO6MsDnVENdDQAAXQ0AACoAAABPU0dJLU9QVC9zcmMvamF2YS9pby9SYW5kb21BY2Nlc3NGaWxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9SYW5kb21BY2Nlc3NGaWxlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBSYW5kb21BY2Nlc3NGaWxlIGltcGxlbWVudHMgamF2YS5pby5EYXRhSW5wdXQsIGphdmEuaW8uRGF0YU91dHB1dCB7DQoJcHVibGljIFJhbmRvbUFjY2Vzc0ZpbGUoamF2YS5pby5GaWxlIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgdGhyb3dzIGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBSYW5kb21BY2Nlc3NGaWxlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgamF2YS5pby5GaWxlRGVzY3JpcHRvciBnZXRGRCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgbG9uZyBnZXRGaWxlUG9pbnRlcigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIGxvbmcgbGVuZ3RoKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCByZWFkKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIGJ5dGUgcmVhZEJ5dGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGNoYXIgcmVhZENoYXIoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGRvdWJsZSByZWFkRG91YmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBmaW5hbCBmbG9hdCByZWFkRmxvYXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGZpbmFsIHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIGludCByZWFkSW50KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIHJlYWRMaW5lKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBsb25nIHJlYWRMb25nKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgZmluYWwgc2hvcnQgcmVhZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBpbnQgcmVhZFVuc2lnbmVkQnl0ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgaW50IHJlYWRVbnNpZ25lZFNob3J0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIHJlYWRVVEYoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgc2Vlayhsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHNldExlbmd0aChsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBpbnQgc2tpcEJ5dGVzKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgd3JpdGUoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUJvb2xlYW4oYm9vbGVhbiB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUJ5dGUoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlQnl0ZXMoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUNoYXIoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHdyaXRlQ2hhcnMoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZURvdWJsZShkb3VibGUgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVGbG9hdChmbG9hdCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCB3cml0ZUludChpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVMb25nKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVTaG9ydChpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd3JpdGVVVEYoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujJkGZTF0wMAANMDAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vUmVhZGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9SZWFkZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIFJlYWRlciB7DQoJcHJvdGVjdGVkIFJlYWRlcigpIHsgfQ0KCXByb3RlY3RlZCBSZWFkZXIoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyB2b2lkIG1hcmsoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBib29sZWFuIG1hcmtTdXBwb3J0ZWQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoY2hhcltdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYWJzdHJhY3QgaW50IHJlYWQoY2hhcltdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGJvb2xlYW4gcmVhZHkoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGxvbmcgc2tpcChsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgbG9jazsNCn0NCg0KUEsDBAoAAAAAADlDujJ/+MizLwEAAC8BAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vU2VyaWFsaXphYmxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9TZXJpYWxpemFibGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBTZXJpYWxpemFibGUgew0KfQ0KDQpQSwMECgAAAAAAOUO6MlE3Ol5hAgAAYQIAADAAAABPU0dJLU9QVC9zcmMvamF2YS9pby9TZXJpYWxpemFibGVQZXJtaXNzaW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9TZXJpYWxpemFibGVQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBTZXJpYWxpemFibGVQZXJtaXNzaW9uIGV4dGVuZHMgamF2YS5zZWN1cml0eS5CYXNpY1Blcm1pc3Npb24gew0KCXB1YmxpYyBTZXJpYWxpemFibGVQZXJtaXNzaW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyBzdXBlcigoamF2YS5sYW5nLlN0cmluZykgbnVsbCwgKGphdmEubGFuZy5TdHJpbmcpIG51bGwpOyB9DQoJcHVibGljIFNlcmlhbGl6YWJsZVBlcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mqj4HhbFAQAAxQEAADIAAABPU0dJLU9QVC9zcmMvamF2YS9pby9TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2lvL1N0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5PYmplY3RTdHJlYW1FeGNlcHRpb24gew0KCXB1YmxpYyBTdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyLeBsMU8DAABPAwAAJgAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL1N0cmluZ1JlYWRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vU3RyaW5nUmVhZGVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBTdHJpbmdSZWFkZXIgZXh0ZW5kcyBqYXZhLmlvLlJlYWRlciB7DQoJcHVibGljIFN0cmluZ1JlYWRlcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgeyB9DQoJcHVibGljIHZvaWQgbWFyayhpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGJvb2xlYW4gbWFya1N1cHBvcnRlZCgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGludCByZWFkKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgcmVhZChjaGFyW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gcmVhZHkoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGxvbmcgc2tpcChsb25nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyDI1qvAgDAAAIAwAAJgAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL1N0cmluZ1dyaXRlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vU3RyaW5nV3JpdGVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBTdHJpbmdXcml0ZXIgZXh0ZW5kcyBqYXZhLmlvLldyaXRlciB7DQoJcHVibGljIFN0cmluZ1dyaXRlcigpIHsgfQ0KCXB1YmxpYyBTdHJpbmdXcml0ZXIoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgZmx1c2goKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBnZXRCdWZmZXIoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHZvaWQgd3JpdGUoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgd3JpdGUoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MnmKaY6EAQAAhAEAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9pby9TeW5jRmFpbGVkRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9TeW5jRmFpbGVkRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5pbzsNCnB1YmxpYyBjbGFzcyBTeW5jRmFpbGVkRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIFN5bmNGYWlsZWRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLeoEK2swEAALMBAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vVVRGRGF0YUZvcm1hdEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vVVRGRGF0YUZvcm1hdEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgVVRGRGF0YUZvcm1hdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXB1YmxpYyBVVEZEYXRhRm9ybWF0RXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFVURkRhdGFGb3JtYXRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKuehw2ywEAAMsBAAA2AAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvaW8vVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuaW87DQpwdWJsaWMgY2xhc3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXB1YmxpYyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIzyKy8CwIAAAsCAAAvAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vV3JpdGVBYm9ydGVkRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9Xcml0ZUFib3J0ZWRFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGNsYXNzIFdyaXRlQWJvcnRlZEV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uT2JqZWN0U3RyZWFtRXhjZXB0aW9uIHsNCglwdWJsaWMgV3JpdGVBYm9ydGVkRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLkV4Y2VwdGlvbiB2YXIxKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRNZXNzYWdlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuRXhjZXB0aW9uIGRldGFpbDsNCn0NCg0KUEsDBAoAAAAAADlDujKLoKh7fgMAAH4DAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vV3JpdGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9pby9Xcml0ZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmlvOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIFdyaXRlciB7DQoJcHJvdGVjdGVkIFdyaXRlcigpIHsgfQ0KCXByb3RlY3RlZCBXcml0ZXIoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZsdXNoKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHdyaXRlKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXB1YmxpYyB2b2lkIHdyaXRlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCB3cml0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHdyaXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCBsb2NrOw0KfQ0KDQpQSwMECgAAAAAAOUO6MgAAAAAAAAAAAAAAABcAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1BLAwQKAAAAAAA5Q7oyxU8aDb4BAAC+AQAALwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQWJzdHJhY3RNZXRob2RFcnJvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9BYnN0cmFjdE1ldGhvZEVycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIEFic3RyYWN0TWV0aG9kRXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuSW5jb21wYXRpYmxlQ2xhc3NDaGFuZ2VFcnJvciB7DQoJcHVibGljIEFic3RyYWN0TWV0aG9kRXJyb3IoKSB7IH0NCglwdWJsaWMgQWJzdHJhY3RNZXRob2RFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MifIypOyAQAAsgEAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0FyaXRobWV0aWNFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQXJpdGhtZXRpY0V4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBBcml0aG1ldGljRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBBcml0aG1ldGljRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEFyaXRobWV0aWNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLrmFA+HQIAAB0CAAA6AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsNCglwdWJsaWMgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihpbnQgdmFyMCkgeyB9DQoJcHVibGljIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MgdK0veyAQAAsgEAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0FycmF5U3RvcmVFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQXJyYXlTdG9yZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBBcnJheVN0b3JlRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBBcnJheVN0b3JlRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEFycmF5U3RvcmVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujJJBUMH0AMAANADAAAjAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Cb29sZWFuLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0Jvb2xlYW4uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgQm9vbGVhbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgQm9vbGVhbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBCb29sZWFuKGJvb2xlYW4gdmFyMCkgeyB9DQoJcHVibGljIGJvb2xlYW4gYm9vbGVhblZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBnZXRCb29sZWFuKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkJvb2xlYW4gdmFsdWVPZihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEubGFuZy5DbGFzcyBUWVBFOyBzdGF0aWMgeyBUWVBFID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkJvb2xlYW4gVFJVRTsgc3RhdGljIHsgVFJVRSA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEubGFuZy5Cb29sZWFuIEZBTFNFOyBzdGF0aWMgeyBGQUxTRSA9IG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKECmRjzwUAAM8FAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9CeXRlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0J5dGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgQnl0ZSBleHRlbmRzIGphdmEubGFuZy5OdW1iZXIgaW1wbGVtZW50cyBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIEJ5dGUoYnl0ZSB2YXIwKSB7IH0NCglwdWJsaWMgQnl0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBieXRlIGJ5dGVWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuQnl0ZSB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGRvdWJsZSBkb3VibGVWYWx1ZSgpIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBmbG9hdCBmbG9hdFZhbHVlKCkgeyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBpbnRWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgbG9uZyBsb25nVmFsdWUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgYnl0ZSBwYXJzZUJ5dGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBieXRlIHBhcnNlQnl0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHNob3J0IHNob3J0VmFsdWUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQnl0ZSB2YWx1ZU9mKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgTUFYX1ZBTFVFID0gMTI3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBNSU5fVkFMVUUgPSAtMTI4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIFRZUEU7IHN0YXRpYyB7IFRZUEUgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oybFFO7ZMLAACTCwAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2hhcmFjdGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0NoYXJhY3Rlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBDaGFyYWN0ZXIgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YS5sYW5nLkNvbXBhcmFibGUgew0KCXB1YmxpYyBDaGFyYWN0ZXIoY2hhciB2YXIwKSB7IH0NCglwdWJsaWMgY2hhciBjaGFyVmFsdWUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLkNoYXJhY3RlciB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgZGlnaXQoY2hhciB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBjaGFyIGZvckRpZ2l0KGludCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGdldFR5cGUoY2hhciB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNEaWdpdChjaGFyIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGV0dGVyKGNoYXIgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMb3dlckNhc2UoY2hhciB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1NwYWNlQ2hhcihjaGFyIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzVXBwZXJDYXNlKGNoYXIgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNXaGl0ZXNwYWNlKGNoYXIgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGNoYXIgdG9Mb3dlckNhc2UoY2hhciB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBjaGFyIHRvVXBwZXJDYXNlKGNoYXIgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgY2hhciBNSU5fVkFMVUUgPSAwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgY2hhciBNQVhfVkFMVUUgPSA2NTUzNTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5fUkFESVggPSAyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BWF9SQURJWCA9IDM2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIFRZUEU7IHN0YXRpYyB7IFRZUEUgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFVOQVNTSUdORUQgPSAwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBVUFBFUkNBU0VfTEVUVEVSID0gMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgTE9XRVJDQVNFX0xFVFRFUiA9IDI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIFRJVExFQ0FTRV9MRVRURVIgPSAzOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBNT0RJRklFUl9MRVRURVIgPSA0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBPVEhFUl9MRVRURVIgPSA1Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBOT05fU1BBQ0lOR19NQVJLID0gNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgRU5DTE9TSU5HX01BUksgPSA3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBDT01CSU5JTkdfU1BBQ0lOR19NQVJLID0gODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgREVDSU1BTF9ESUdJVF9OVU1CRVIgPSA5Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBMRVRURVJfTlVNQkVSID0gMTA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIE9USEVSX05VTUJFUiA9IDExOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBTUEFDRV9TRVBBUkFUT1IgPSAxMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgTElORV9TRVBBUkFUT1IgPSAxMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgUEFSQUdSQVBIX1NFUEFSQVRPUiA9IDE0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBDT05UUk9MID0gMTU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIEZPUk1BVCA9IDE2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBQUklWQVRFX1VTRSA9IDE4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBTVVJST0dBVEUgPSAxOTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgREFTSF9QVU5DVFVBVElPTiA9IDIwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBTVEFSVF9QVU5DVFVBVElPTiA9IDIxOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBFTkRfUFVOQ1RVQVRJT04gPSAyMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgQ09OTkVDVE9SX1BVTkNUVUFUSU9OID0gMjM7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIE9USEVSX1BVTkNUVUFUSU9OID0gMjQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIE1BVEhfU1lNQk9MID0gMjU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBieXRlIENVUlJFTkNZX1NZTUJPTCA9IDI2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgYnl0ZSBNT0RJRklFUl9TWU1CT0wgPSAyNzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGJ5dGUgT1RIRVJfU1lNQk9MID0gMjg7DQp9DQoNClBLAwQKAAAAAAA5Q7oynFtYyiUOAAAlDgAAIQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3MuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQ2xhc3MuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgQ2xhc3MgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQ2xhc3MgZm9yTmFtZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQ2xhc3MgZm9yTmFtZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGJvb2xlYW4gdmFyMSwgamF2YS5sYW5nLkNsYXNzTG9hZGVyIHZhcjIpIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzc1tdIGdldENsYXNzZXMoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzc0xvYWRlciBnZXRDbGFzc0xvYWRlcigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLkNsYXNzIGdldENvbXBvbmVudFR5cGUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yIGdldENvbnN0cnVjdG9yKGphdmEubGFuZy5DbGFzc1tdIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uLCBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3RvcltdIGdldENvbnN0cnVjdG9ycygpIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3NbXSBnZXREZWNsYXJlZENsYXNzZXMoKSB0aHJvd3MgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3IgZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcihqYXZhLmxhbmcuQ2xhc3NbXSB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3JbXSBnZXREZWNsYXJlZENvbnN0cnVjdG9ycygpIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZCBnZXREZWNsYXJlZEZpZWxkKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5Ob1N1Y2hGaWVsZEV4Y2VwdGlvbiwgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZmxlY3QuRmllbGRbXSBnZXREZWNsYXJlZEZpZWxkcygpIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgZ2V0RGVjbGFyZWRNZXRob2QoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuQ2xhc3NbXSB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kW10gZ2V0RGVjbGFyZWRNZXRob2RzKCkgdGhyb3dzIGphdmEubGFuZy5TZWN1cml0eUV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzcyBnZXREZWNsYXJpbmdDbGFzcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQgZ2V0RmllbGQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk5vU3VjaEZpZWxkRXhjZXB0aW9uLCBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZFtdIGdldEZpZWxkcygpIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3NbXSBnZXRJbnRlcmZhY2VzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgZ2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLkNsYXNzW10gdmFyMSkgdGhyb3dzIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb24sIGphdmEubGFuZy5TZWN1cml0eUV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZFtdIGdldE1ldGhvZHMoKSB0aHJvd3MgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldE1vZGlmaWVycygpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLnNlY3VyaXR5LlByb3RlY3Rpb25Eb21haW4gZ2V0UHJvdGVjdGlvbkRvbWFpbigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5uZXQuVVJMIGdldFJlc291cmNlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIGdldFJlc291cmNlQXNTdHJlYW0oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzcyBnZXRTdXBlcmNsYXNzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIGlzQXJyYXkoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGlzQXNzaWduYWJsZUZyb20oamF2YS5sYW5nLkNsYXNzIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gaXNJbnN0YW5jZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gaXNJbnRlcmZhY2UoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBuZXdJbnN0YW5jZSgpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLkluc3RhbnRpYXRpb25FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByaXZhdGUgQ2xhc3MoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA5Q7oyyI25zq4BAACuAQAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NDYXN0RXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0NsYXNzQ2FzdEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBDbGFzc0Nhc3RFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiB7DQoJcHVibGljIENsYXNzQ2FzdEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBDbGFzc0Nhc3RFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLya/jftgEAALYBAAAxAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9DbGFzc0NpcmN1bGFyaXR5RXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQ2xhc3NDaXJjdWxhcml0eUVycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIENsYXNzQ2lyY3VsYXJpdHlFcnJvciBleHRlbmRzIGphdmEubGFuZy5MaW5rYWdlRXJyb3Igew0KCXB1YmxpYyBDbGFzc0NpcmN1bGFyaXR5RXJyb3IoKSB7IH0NCglwdWJsaWMgQ2xhc3NDaXJjdWxhcml0eUVycm9yKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyikGoXqIBAACiAQAALAAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NGb3JtYXRFcnJvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9DbGFzc0Zvcm1hdEVycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIENsYXNzRm9ybWF0RXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuTGlua2FnZUVycm9yIHsNCglwdWJsaWMgQ2xhc3NGb3JtYXRFcnJvcigpIHsgfQ0KCXB1YmxpYyBDbGFzc0Zvcm1hdEVycm9yKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyzDH+tVQJAABUCQAAJwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NMb2FkZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvQ2xhc3NMb2FkZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2xhc3NMb2FkZXIgew0KCXByb3RlY3RlZCBDbGFzc0xvYWRlcigpIHsgfQ0KCXByb3RlY3RlZCBDbGFzc0xvYWRlcihqYXZhLmxhbmcuQ2xhc3NMb2FkZXIgdmFyMCkgeyB9DQoJcHJvdGVjdGVkIGZpbmFsIGphdmEubGFuZy5DbGFzcyBkZWZpbmVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGJ5dGVbXSB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMpIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NGb3JtYXRFcnJvciB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGZpbmFsIGphdmEubGFuZy5DbGFzcyBkZWZpbmVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGJ5dGVbXSB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGphdmEuc2VjdXJpdHkuUHJvdGVjdGlvbkRvbWFpbiB2YXI0KSB0aHJvd3MgamF2YS5sYW5nLkNsYXNzRm9ybWF0RXJyb3IgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBqYXZhLmxhbmcuQ2xhc3MgZmluZENsYXNzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgZmluYWwgamF2YS5sYW5nLkNsYXNzIGZpbmRMb2FkZWRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgZmluYWwgamF2YS5sYW5nLkNsYXNzIGZpbmRTeXN0ZW1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5DbGFzc0xvYWRlciBnZXRQYXJlbnQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubmV0LlVSTCBnZXRSZXNvdXJjZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgamF2YS51dGlsLkVudW1lcmF0aW9uIGdldFJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5pby5JbnB1dFN0cmVhbSBnZXRSZXNvdXJjZUFzU3RyZWFtKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkNsYXNzTG9hZGVyIGdldFN5c3RlbUNsYXNzTG9hZGVyKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5uZXQuVVJMIGdldFN5c3RlbVJlc291cmNlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkVudW1lcmF0aW9uIGdldFN5c3RlbVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEuaW8uSW5wdXRTdHJlYW0gZ2V0U3lzdGVtUmVzb3VyY2VBc1N0cmVhbShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLkNsYXNzIGxvYWRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5DbGFzcyBsb2FkQ2xhc3MoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBib29sZWFuIHZhcjEpIHRocm93cyBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGZpbmFsIHZvaWQgcmVzb2x2ZUNsYXNzKGphdmEubGFuZy5DbGFzcyB2YXIwKSB7IH0NCglwcm90ZWN0ZWQgamF2YS5uZXQuVVJMIGZpbmRSZXNvdXJjZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgamF2YS51dGlsLkVudW1lcmF0aW9uIGZpbmRSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgZmluZExpYnJhcnkoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy8RgUrWwCAABsAgAAMgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9DbGFzc05vdEZvdW5kRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIENsYXNzTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsNCglwdWJsaWMgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBDbGFzc05vdEZvdW5kRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIENsYXNzTm90Rm91bmRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuVGhyb3dhYmxlIHZhcjEpIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50U3RhY2tUcmFjZSgpIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50U3RhY2tUcmFjZShqYXZhLmlvLlByaW50U3RyZWFtIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MsFN+P/HAQAAxwEAADYAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0Nsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0Nsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLkV4Y2VwdGlvbiB7DQoJcHVibGljIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy26unuC0BAAAtAQAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xvbmVhYmxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0Nsb25lYWJsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgQ2xvbmVhYmxlIHsNCn0NCg0KUEsDBAoAAAAAADlDujJITPEhZwEAAGcBAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Db21wYXJhYmxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0NvbXBhcmFibGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIENvbXBhcmFibGUgew0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQp9DQoNClBLAwQKAAAAAAA5Q7oyT/RL7XwHAAB8BwAAIgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRG91YmxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0RvdWJsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBEb3VibGUgZXh0ZW5kcyBqYXZhLmxhbmcuTnVtYmVyIGltcGxlbWVudHMgamF2YS5sYW5nLkNvbXBhcmFibGUgew0KCXB1YmxpYyBEb3VibGUoZG91YmxlIHZhcjApIHsgfQ0KCXB1YmxpYyBEb3VibGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuRG91YmxlIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYnl0ZSBieXRlVmFsdWUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBsb25nIGRvdWJsZVRvTG9uZ0JpdHMoZG91YmxlIHZhcjApIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIGRvdWJsZSBkb3VibGVWYWx1ZSgpIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBmbG9hdCBmbG9hdFZhbHVlKCkgeyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBpbnRWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJbmZpbml0ZShkb3VibGUgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOYU4oZG91YmxlIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgbG9uZ0JpdHNUb0RvdWJsZShsb25nIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgbG9uZyBsb25nVmFsdWUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIHBhcnNlRG91YmxlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzaG9ydCBzaG9ydFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZyhkb3VibGUgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkRvdWJsZSB2YWx1ZU9mKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgZG91YmxlIE1BWF9WQUxVRSA9IDEuNzk3NjkzMTM0ODYyMzE1N0UzMDhkOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgZG91YmxlIE1JTl9WQUxVRSA9IDQuOUUtMzI0ZDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGRvdWJsZSBOYU4gPSAwLjBkIC8gMC4wZDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGRvdWJsZSBQT1NJVElWRV9JTkZJTklUWSA9IDEuMGQgLyAwLjBkOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgZG91YmxlIE5FR0FUSVZFX0lORklOSVRZID0gLTEuMGQgLyAwLjBkOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIFRZUEU7IHN0YXRpYyB7IFRZUEUgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyYAKMWnMBAABzAQAAIQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvRXJyb3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgRXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuVGhyb3dhYmxlIHsNCglwdWJsaWMgRXJyb3IoKSB7IH0NCglwdWJsaWMgRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujKQsxyAgwEAAIMBAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9FeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5UaHJvd2FibGUgew0KCXB1YmxpYyBFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy4UdZra4CAACuAgAANwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0V4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuTGlua2FnZUVycm9yIHsNCglwdWJsaWMgRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yKCkgeyB9DQoJcHVibGljIEV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IoamF2YS5sYW5nLlRocm93YWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlRocm93YWJsZSBnZXRFeGNlcHRpb24oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgcHJpbnRTdGFja1RyYWNlKCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRTdGFja1RyYWNlKGphdmEuaW8uUHJpbnRTdHJlYW0gdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyCFhS+3cHAAB3BwAAIQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRmxvYXQuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvRmxvYXQuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgRmxvYXQgZXh0ZW5kcyBqYXZhLmxhbmcuTnVtYmVyIGltcGxlbWVudHMgamF2YS5sYW5nLkNvbXBhcmFibGUgew0KCXB1YmxpYyBGbG9hdChmbG9hdCB2YXIwKSB7IH0NCglwdWJsaWMgRmxvYXQoZG91YmxlIHZhcjApIHsgfQ0KCXB1YmxpYyBGbG9hdChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5GbG9hdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGludCBmbG9hdFRvSW50Qml0cyhmbG9hdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGZsb2F0IGZsb2F0VmFsdWUoKSB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGZsb2F0IGludEJpdHNUb0Zsb2F0KGludCB2YXIwKSB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGludCBpbnRWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJbmZpbml0ZShmbG9hdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05hTihmbG9hdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBsb25nIGxvbmdWYWx1ZSgpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHN0YXRpYyBmbG9hdCBwYXJzZUZsb2F0KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBzaG9ydCBzaG9ydFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZyhmbG9hdCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuRmxvYXQgdmFsdWVPZihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGZsb2F0IE1BWF9WQUxVRSA9IDMuNDAyODIzNUUzOGY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBmbG9hdCBNSU5fVkFMVUUgPSAxLjRFLTQ1ZjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGZsb2F0IE5hTiA9IDAuMGYgLyAwLjBmOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgZmxvYXQgUE9TSVRJVkVfSU5GSU5JVFkgPSAxLjBmIC8gMC4wZjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGZsb2F0IE5FR0FUSVZFX0lORklOSVRZID0gLTEuMGYgLyAwLjBmOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIFRZUEU7IHN0YXRpYyB7IFRZUEUgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyfL0X+roBAAC6AQAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSWxsZWdhbEFjY2Vzc0Vycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0lsbGVnYWxBY2Nlc3NFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBJbGxlZ2FsQWNjZXNzRXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuSW5jb21wYXRpYmxlQ2xhc3NDaGFuZ2VFcnJvciB7DQoJcHVibGljIElsbGVnYWxBY2Nlc3NFcnJvcigpIHsgfQ0KCXB1YmxpYyBJbGxlZ2FsQWNjZXNzRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIXdefDtwEAALcBAAAyAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0lsbGVnYWxBY2Nlc3NFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLFxdXExgEAAMYBAAA0AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIHsNCglwdWJsaWMgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MmSZZ1PWAQAA1gEAADgAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0lsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujJWv/63ugEAALoBAAAxAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbGxlZ2FsU3RhdGVFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvSWxsZWdhbFN0YXRlRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIHsNCglwdWJsaWMgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mo8ftpXaAQAA2gEAADcAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0lsbGVnYWxUaHJlYWRTdGF0ZUV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9JbGxlZ2FsVGhyZWFkU3RhdGVFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgSWxsZWdhbFRocmVhZFN0YXRlRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7DQoJcHVibGljIElsbGVnYWxUaHJlYWRTdGF0ZUV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBJbGxlZ2FsVGhyZWFkU3RhdGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLF2GGk0gEAANIBAAA4AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbmNvbXBhdGlibGVDbGFzc0NoYW5nZUVycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0luY29tcGF0aWJsZUNsYXNzQ2hhbmdlRXJyb3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgSW5jb21wYXRpYmxlQ2xhc3NDaGFuZ2VFcnJvciBleHRlbmRzIGphdmEubGFuZy5MaW5rYWdlRXJyb3Igew0KCXB1YmxpYyBJbmNvbXBhdGlibGVDbGFzc0NoYW5nZUVycm9yKCkgeyB9DQoJcHVibGljIEluY29tcGF0aWJsZUNsYXNzQ2hhbmdlRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujL/AtBOygEAAMoBAAA1AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIHsNCglwdWJsaWMgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oy6gcCs7oBAAC6AQAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSW5zdGFudGlhdGlvbkVycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0luc3RhbnRpYXRpb25FcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBJbnN0YW50aWF0aW9uRXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuSW5jb21wYXRpYmxlQ2xhc3NDaGFuZ2VFcnJvciB7DQoJcHVibGljIEluc3RhbnRpYXRpb25FcnJvcigpIHsgfQ0KCXB1YmxpYyBJbnN0YW50aWF0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLhjo6ltwEAALcBAAAyAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbnN0YW50aWF0aW9uRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0luc3RhbnRpYXRpb25FeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEluc3RhbnRpYXRpb25FeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLDfcxz7AcAAOwHAAAjAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbnRlZ2VyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL0ludGVnZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgSW50ZWdlciBleHRlbmRzIGphdmEubGFuZy5OdW1iZXIgaW1wbGVtZW50cyBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIEludGVnZXIoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBJbnRlZ2VyKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyB9DQoJcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5JbnRlZ2VyIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5JbnRlZ2VyIGRlY29kZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZG91YmxlIGRvdWJsZVZhbHVlKCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZsb2F0IGZsb2F0VmFsdWUoKSB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuSW50ZWdlciBnZXRJbnRlZ2VyKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkludGVnZXIgZ2V0SW50ZWdlcihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGludFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBsb25nIGxvbmdWYWx1ZSgpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgcGFyc2VJbnQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgcGFyc2VJbnQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzaG9ydCBzaG9ydFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b0JpbmFyeVN0cmluZyhpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b0hleFN0cmluZyhpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZyhpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkludGVnZXIgdmFsdWVPZihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFYX1ZBTFVFID0gMjE0NzQ4MzY0NzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5fVkFMVUUgPSAtMjE0NzQ4MzY0ODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEubGFuZy5DbGFzcyBUWVBFOyBzdGF0aWMgeyBUWVBFID0gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mn1zX1mdAQAAnQEAACkAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0ludGVybmFsRXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvSW50ZXJuYWxFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBJbnRlcm5hbEVycm9yIGV4dGVuZHMgamF2YS5sYW5nLlZpcnR1YWxNYWNoaW5lRXJyb3Igew0KCXB1YmxpYyBJbnRlcm5hbEVycm9yKCkgeyB9DQoJcHVibGljIEludGVybmFsRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLVhQiIrwEAAK8BAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbnRlcnJ1cHRlZEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9JbnRlcnJ1cHRlZEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBJbnRlcnJ1cHRlZEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBJbnRlcnJ1cHRlZEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MvRRWG+LAQAAiwEAACgAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0xpbmthZ2VFcnJvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9MaW5rYWdlRXJyb3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgTGlua2FnZUVycm9yIGV4dGVuZHMgamF2YS5sYW5nLkVycm9yIHsNCglwdWJsaWMgTGlua2FnZUVycm9yKCkgeyB9DQoJcHVibGljIExpbmthZ2VFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mu6JSsTOBgAAzgYAACAAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0xvbmcuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvTG9uZy5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBMb25nIGV4dGVuZHMgamF2YS5sYW5nLk51bWJlciBpbXBsZW1lbnRzIGphdmEubGFuZy5Db21wYXJhYmxlIHsNCglwdWJsaWMgTG9uZyhsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyBMb25nKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyB9DQoJcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5Mb25nIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZG91YmxlIGRvdWJsZVZhbHVlKCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZsb2F0IGZsb2F0VmFsdWUoKSB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGludFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBsb25nIGxvbmdWYWx1ZSgpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHN0YXRpYyBsb25nIHBhcnNlTG9uZyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHN0YXRpYyBsb25nIHBhcnNlTG9uZyhqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzaG9ydCBzaG9ydFZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b0JpbmFyeVN0cmluZyhsb25nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgdG9IZXhTdHJpbmcobG9uZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKGxvbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkxvbmcgdmFsdWVPZihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBsb25nIE1BWF9WQUxVRSA9IDkyMjMzNzIwMzY4NTQ3NzU4MDdsOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgbG9uZyBNSU5fVkFMVUUgPSAtOTIyMzM3MjAzNjg1NDc3NTgwOGw7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLmxhbmcuQ2xhc3MgVFlQRTsgc3RhdGljIHsgVFlQRSA9IG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIJUudXcAkAAHAJAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9NYXRoLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL01hdGguamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgTWF0aCB7DQoJcHVibGljIHN0YXRpYyBkb3VibGUgYWJzKGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBmbG9hdCBhYnMoZmxvYXQgdmFyMCkgeyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGFicyhpbnQgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgbG9uZyBhYnMobG9uZyB2YXIwKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIGFjb3MoZG91YmxlIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBhc2luKGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgYXRhbihkb3VibGUgdmFyMCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIGF0YW4yKGRvdWJsZSB2YXIwLCBkb3VibGUgdmFyMSkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIGNlaWwoZG91YmxlIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBjb3MoZG91YmxlIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBleHAoZG91YmxlIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBmbG9vcihkb3VibGUgdmFyMCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIElFRUVyZW1haW5kZXIoZG91YmxlIHZhcjAsIGRvdWJsZSB2YXIxKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgbG9nKGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgbWF4KGRvdWJsZSB2YXIwLCBkb3VibGUgdmFyMSkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZmxvYXQgbWF4KGZsb2F0IHZhcjAsIGZsb2F0IHZhcjEpIHsgcmV0dXJuIDAuMGY7IH0NCglwdWJsaWMgc3RhdGljIGludCBtYXgoaW50IHZhcjAsIGludCB2YXIxKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBsb25nIG1heChsb25nIHZhcjAsIGxvbmcgdmFyMSkgeyByZXR1cm4gMGw7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBtaW4oZG91YmxlIHZhcjAsIGRvdWJsZSB2YXIxKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBmbG9hdCBtaW4oZmxvYXQgdmFyMCwgZmxvYXQgdmFyMSkgeyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IG1pbihpbnQgdmFyMCwgaW50IHZhcjEpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGxvbmcgbWluKGxvbmcgdmFyMCwgbG9uZyB2YXIxKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIHBvdyhkb3VibGUgdmFyMCwgZG91YmxlIHZhcjEpIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSByaW50KGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBsb25nIHJvdW5kKGRvdWJsZSB2YXIwKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IHJvdW5kKGZsb2F0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBzaW4oZG91YmxlIHZhcjApIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBzcXJ0KGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgdGFuKGRvdWJsZSB2YXIwKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIHN0YXRpYyBkb3VibGUgcmFuZG9tKCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIHRvUmFkaWFucyhkb3VibGUgdmFyMCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZG91YmxlIHRvRGVncmVlcyhkb3VibGUgdmFyMCkgeyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgZG91YmxlIEU7IHN0YXRpYyB7IEUgPSAwLjBkOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBkb3VibGUgUEk7IHN0YXRpYyB7IFBJID0gMC4wZDsgfQ0KCXByaXZhdGUgTWF0aCgpIHsgfSAvKiBnZW5lcmF0ZWQgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb21waWxlciBhZGRpbmcgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgKi8NCn0NCg0KUEsDBAoAAAAAADlDujI6Tf/KzgEAAM4BAAA2AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9OZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9OZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBOZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIHsNCglwdWJsaWMgTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLx7xYgsgEAALIBAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Ob0NsYXNzRGVmRm91bmRFcnJvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9Ob0NsYXNzRGVmRm91bmRFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBOb0NsYXNzRGVmRm91bmRFcnJvciBleHRlbmRzIGphdmEubGFuZy5MaW5rYWdlRXJyb3Igew0KCXB1YmxpYyBOb0NsYXNzRGVmRm91bmRFcnJvcigpIHsgfQ0KCXB1YmxpYyBOb0NsYXNzRGVmRm91bmRFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MqRo7aqyAQAAsgEAACwAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL05vU3VjaEZpZWxkRXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvTm9TdWNoRmllbGRFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBOb1N1Y2hGaWVsZEVycm9yIGV4dGVuZHMgamF2YS5sYW5nLkluY29tcGF0aWJsZUNsYXNzQ2hhbmdlRXJyb3Igew0KCXB1YmxpYyBOb1N1Y2hGaWVsZEVycm9yKCkgeyB9DQoJcHVibGljIE5vU3VjaEZpZWxkRXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLMqQ59rwEAAK8BAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Ob1N1Y2hGaWVsZEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9Ob1N1Y2hGaWVsZEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBOb1N1Y2hGaWVsZEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBOb1N1Y2hGaWVsZEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBOb1N1Y2hGaWVsZEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MsGPgR62AQAAtgEAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL05vU3VjaE1ldGhvZEVycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL05vU3VjaE1ldGhvZEVycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIE5vU3VjaE1ldGhvZEVycm9yIGV4dGVuZHMgamF2YS5sYW5nLkluY29tcGF0aWJsZUNsYXNzQ2hhbmdlRXJyb3Igew0KCXB1YmxpYyBOb1N1Y2hNZXRob2RFcnJvcigpIHsgfQ0KCXB1YmxpYyBOb1N1Y2hNZXRob2RFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6Mrqx81+zAQAAswEAADEAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL05vU3VjaE1ldGhvZEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9Ob1N1Y2hNZXRob2RFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLkV4Y2VwdGlvbiB7DQoJcHVibGljIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBOb1N1Y2hNZXRob2RFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujK5QhZatgEAALYBAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9OdWxsUG9pbnRlckV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9OdWxsUG9pbnRlckV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIHsNCglwdWJsaWMgTnVsbFBvaW50ZXJFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgTnVsbFBvaW50ZXJFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIz7qM1PwIAAD8CAAAiAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9OdW1iZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvTnVtYmVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIE51bWJlciBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgTnVtYmVyKCkgeyB9DQoJcHVibGljIGJ5dGUgYnl0ZVZhbHVlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBhYnN0cmFjdCBkb3VibGUgZG91YmxlVmFsdWUoKTsNCglwdWJsaWMgYWJzdHJhY3QgZmxvYXQgZmxvYXRWYWx1ZSgpOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgaW50VmFsdWUoKTsNCglwdWJsaWMgYWJzdHJhY3QgbG9uZyBsb25nVmFsdWUoKTsNCglwdWJsaWMgc2hvcnQgc2hvcnRWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLrMR1awgEAAMIBAAAxAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9OdW1iZXJGb3JtYXRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gew0KCXB1YmxpYyBOdW1iZXJGb3JtYXRFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgTnVtYmVyRm9ybWF0RXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyrznbvdUDAADVAwAAIgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvT2JqZWN0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL09iamVjdC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBPYmplY3Qgew0KCXB1YmxpYyBPYmplY3QoKSB7IH0NCglwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCBjbG9uZSgpIHRocm93cyBqYXZhLmxhbmcuQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHJvdGVjdGVkIHZvaWQgZmluYWxpemUoKSB0aHJvd3MgamF2YS5sYW5nLlRocm93YWJsZSB7IH0NCglwdWJsaWMgZmluYWwgamF2YS5sYW5nLkNsYXNzIGdldENsYXNzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIHZvaWQgbm90aWZ5KCkgeyB9DQoJcHVibGljIGZpbmFsIHZvaWQgbm90aWZ5QWxsKCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd2FpdCgpIHRocm93cyBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd2FpdChsb25nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24geyB9DQoJcHVibGljIGZpbmFsIHZvaWQgd2FpdChsb25nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MvPik5OpAQAAqQEAACwAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL091dE9mTWVtb3J5RXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvT3V0T2ZNZW1vcnlFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBPdXRPZk1lbW9yeUVycm9yIGV4dGVuZHMgamF2YS5sYW5nLlZpcnR1YWxNYWNoaW5lRXJyb3Igew0KCXB1YmxpYyBPdXRPZk1lbW9yeUVycm9yKCkgeyB9DQoJcHVibGljIE91dE9mTWVtb3J5RXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujJ89RRWcgIAAHICAAAjAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Qcm9jZXNzLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1Byb2Nlc3MuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUHJvY2VzcyB7DQoJcHVibGljIFByb2Nlc3MoKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBkZXN0cm95KCk7DQoJcHVibGljIGFic3RyYWN0IGludCBleGl0VmFsdWUoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5pby5JbnB1dFN0cmVhbSBnZXRFcnJvclN0cmVhbSgpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmlvLklucHV0U3RyZWFtIGdldElucHV0U3RyZWFtKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEuaW8uT3V0cHV0U3RyZWFtIGdldE91dHB1dFN0cmVhbSgpOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgd2FpdEZvcigpIHRocm93cyBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb247DQp9DQoNClBLAwQKAAAAAAA5Q7oyBItMXUkBAABJAQAAJAAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvUnVubmFibGUuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvUnVubmFibGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIFJ1bm5hYmxlIHsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBydW4oKTsNCn0NCg0KUEsDBAoAAAAAADlDujK1MGnqnAQAAJwEAAAjAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1J1bnRpbWUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgUnVudGltZSB7DQoJcHVibGljIGphdmEubGFuZy5Qcm9jZXNzIGV4ZWMoamF2YS5sYW5nLlN0cmluZ1tdIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlByb2Nlc3MgZXhlYyhqYXZhLmxhbmcuU3RyaW5nW10gdmFyMCwgamF2YS5sYW5nLlN0cmluZ1tdIHZhcjEpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlByb2Nlc3MgZXhlYyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlByb2Nlc3MgZXhlYyhqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmdbXSB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgZXhpdChpbnQgdmFyMCkgeyB9DQoJcHVibGljIGxvbmcgZnJlZU1lbW9yeSgpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHZvaWQgZ2MoKSB7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5SdW50aW1lIGdldFJ1bnRpbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgbG9hZChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGxvYWRMaWJyYXJ5KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcnVuRmluYWxpemF0aW9uKCkgeyB9DQoJcHVibGljIGxvbmcgdG90YWxNZW1vcnkoKSB7IHJldHVybiAwbDsgfQ0KCXByaXZhdGUgUnVudGltZSgpIHsgfSAvKiBnZW5lcmF0ZWQgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb21waWxlciBhZGRpbmcgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgKi8NCn0NCg0KUEsDBAoAAAAAADlDujIY1MK1nwEAAJ8BAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgUnVudGltZUV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBSdW50aW1lRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFJ1bnRpbWVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujIfKlm6UQIAAFECAAAtAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lUGVybWlzc2lvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9SdW50aW1lUGVybWlzc2lvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBSdW50aW1lUGVybWlzc2lvbiBleHRlbmRzIGphdmEuc2VjdXJpdHkuQmFzaWNQZXJtaXNzaW9uIHsNCglwdWJsaWMgUnVudGltZVBlcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHN1cGVyKChqYXZhLmxhbmcuU3RyaW5nKSBudWxsLCAoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCglwdWJsaWMgUnVudGltZVBlcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MgreWY6qAQAAqgEAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1NlY3VyaXR5RXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1NlY3VyaXR5RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFNlY3VyaXR5RXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBTZWN1cml0eUV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBTZWN1cml0eUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOUO6MuZck8YACQAAAAkAACsAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1NlY3VyaXR5TWFuYWdlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9TZWN1cml0eU1hbmFnZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgU2VjdXJpdHlNYW5hZ2VyIHsNCglwdWJsaWMgU2VjdXJpdHlNYW5hZ2VyKCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tBY2NlcHQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tBY2Nlc3MoamF2YS5sYW5nLlRocmVhZCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja0FjY2VzcyhqYXZhLmxhbmcuVGhyZWFkR3JvdXAgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tDb25uZWN0KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrQ29ubmVjdChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjIpIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrQ3JlYXRlQ2xhc3NMb2FkZXIoKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja0RlbGV0ZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrRXhlYyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrRXhpdChpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tMaW5rKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tMaXN0ZW4oaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrTWVtYmVyQWNjZXNzKGphdmEubGFuZy5DbGFzcyB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tNdWx0aWNhc3QoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tNdWx0aWNhc3QoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCwgYnl0ZSB2YXIxKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja1BhY2thZ2VBY2Nlc3MoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja1BhY2thZ2VEZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tQcm9wZXJ0aWVzQWNjZXNzKCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tQcm9wZXJ0eUFjY2VzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrUmVhZChqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrUmVhZChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrUmVhZChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tTZWN1cml0eUFjY2VzcyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrU2V0RmFjdG9yeSgpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGNoZWNrVG9wTGV2ZWxXaW5kb3coamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrU3lzdGVtQ2xpcGJvYXJkQWNjZXNzKCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tBd3RFdmVudFF1ZXVlQWNjZXNzKCkgeyB9DQoJcHVibGljIHZvaWQgY2hlY2tQcmludEpvYkFjY2VzcygpIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrV3JpdGUoamF2YS5pby5GaWxlRGVzY3JpcHRvciB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja1dyaXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5DbGFzc1tdIGdldENsYXNzQ29udGV4dCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlRocmVhZEdyb3VwIGdldFRocmVhZEdyb3VwKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldFNlY3VyaXR5Q29udGV4dCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBjaGVja1Blcm1pc3Npb24oamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNoZWNrUGVybWlzc2lvbihqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB7IH0NCn0NCg0KUEsDBAoAAAAAADlDujLzn13X4AUAAOAFAAAhAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9TaG9ydC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9TaG9ydC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBTaG9ydCBleHRlbmRzIGphdmEubGFuZy5OdW1iZXIgaW1wbGVtZW50cyBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIFNob3J0KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24geyB9DQoJcHVibGljIFNob3J0KHNob3J0IHZhcjApIHsgfQ0KCXB1YmxpYyBieXRlIGJ5dGVWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuU2hvcnQgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgZmxvYXQgZmxvYXRWYWx1ZSgpIHsgcmV0dXJuIDAuMGY7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgaW50VmFsdWUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGxvbmcgbG9uZ1ZhbHVlKCkgeyByZXR1cm4gMGw7IH0NCglwdWJsaWMgc3RhdGljIHNob3J0IHBhcnNlU2hvcnQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBzaG9ydCBwYXJzZVNob3J0KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc2hvcnQgc2hvcnRWYWx1ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TaG9ydCB2YWx1ZU9mKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIHNob3J0IE1BWF9WQUxVRSA9IDMyNzY3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgc2hvcnQgTUlOX1ZBTFVFID0gLTMyNzY4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIFRZUEU7IHN0YXRpYyB7IFRZUEUgPSBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA5Q7oyUzvV0LEBAACxAQAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvU3RhY2tPdmVyZmxvd0Vycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1N0YWNrT3ZlcmZsb3dFcnJvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBTdGFja092ZXJmbG93RXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuVmlydHVhbE1hY2hpbmVFcnJvciB7DQoJcHVibGljIFN0YWNrT3ZlcmZsb3dFcnJvcigpIHsgfQ0KCXB1YmxpYyBTdGFja092ZXJmbG93RXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIbITpd/A0AAPwNAAAiAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9TdHJpbmcuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvU3RyaW5nLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZyBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIFN0cmluZygpIHsgfQ0KCXB1YmxpYyBTdHJpbmcoYnl0ZVtdIHZhcjApIHsgfQ0KCXB1YmxpYyBTdHJpbmcoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIFN0cmluZyhieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjMpIHRocm93cyBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24geyB9DQoJcHVibGljIFN0cmluZyhieXRlW10gdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB0aHJvd3MgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBTdHJpbmcoY2hhcltdIHZhcjApIHsgfQ0KCXB1YmxpYyBTdHJpbmcoY2hhcltdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBjaGFyIGNoYXJBdChpbnQgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgY29tcGFyZVRvSWdub3JlQ2FzZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBjb25jYXQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gZW5kc1dpdGgoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzSWdub3JlQ2FzZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJ5dGVbXSBnZXRCeXRlcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYnl0ZVtdIGdldEJ5dGVzKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgZ2V0Q2hhcnMoaW50IHZhcjAsIGludCB2YXIxLCBjaGFyW10gdmFyMiwgaW50IHZhcjMpIHsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBpbmRleE9mKGludCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBpbmRleE9mKGludCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgaW5kZXhPZihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGluZGV4T2YoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGludGVybigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGxhc3RJbmRleE9mKGludCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBsYXN0SW5kZXhPZihpbnQgdmFyMCwgaW50IHZhcjEpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGxhc3RJbmRleE9mKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgbGFzdEluZGV4T2YoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgbGVuZ3RoKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBib29sZWFuIHJlZ2lvbk1hdGNoZXMoaW50IHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgaW50IHZhcjIsIGludCB2YXIzKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIHJlZ2lvbk1hdGNoZXMoYm9vbGVhbiB2YXIwLCBpbnQgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyLCBpbnQgdmFyMywgaW50IHZhcjQpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgcmVwbGFjZShjaGFyIHZhcjAsIGNoYXIgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIHN0YXJ0c1dpdGgoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIHN0YXJ0c1dpdGgoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBzdWJzdHJpbmcoaW50IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBzdWJzdHJpbmcoaW50IHZhcjAsIGludCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGNoYXJbXSB0b0NoYXJBcnJheSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b0xvd2VyQ2FzZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1VwcGVyQ2FzZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0cmltKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB2YWx1ZU9mKGNoYXIgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB2YWx1ZU9mKGRvdWJsZSB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHZhbHVlT2YoZmxvYXQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB2YWx1ZU9mKGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHZhbHVlT2YobG9uZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHZhbHVlT2YoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHZhbHVlT2YoYm9vbGVhbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuQ29tcGFyYXRvciBDQVNFX0lOU0VOU0lUSVZFX09SREVSOyBzdGF0aWMgeyBDQVNFX0lOU0VOU0lUSVZFX09SREVSID0gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MjlJ6LHxCQAA8QkAACgAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1N0cmluZ0J1ZmZlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9TdHJpbmdCdWZmZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nQnVmZmVyIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBTdHJpbmdCdWZmZXIoKSB7IH0NCglwdWJsaWMgU3RyaW5nQnVmZmVyKGludCB2YXIwKSB7IH0NCglwdWJsaWMgU3RyaW5nQnVmZmVyKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgYXBwZW5kKGNoYXJbXSB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgYXBwZW5kKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBhcHBlbmQoY2hhciB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgYXBwZW5kKGRvdWJsZSB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgYXBwZW5kKGZsb2F0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBhcHBlbmQoaW50IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBhcHBlbmQobG9uZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgYXBwZW5kKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIGFwcGVuZChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBhcHBlbmQoYm9vbGVhbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBjYXBhY2l0eSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgY2hhciBjaGFyQXQoaW50IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBkZWxldGUoaW50IHZhcjAsIGludCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgZGVsZXRlQ2hhckF0KGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGdldENoYXJzKGludCB2YXIwLCBpbnQgdmFyMSwgY2hhcltdIHZhcjIsIGludCB2YXIzKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBpbnNlcnQoaW50IHZhcjAsIGNoYXJbXSB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgaW5zZXJ0KGludCB2YXIwLCBjaGFyIHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBpbnNlcnQoaW50IHZhcjAsIGRvdWJsZSB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgaW5zZXJ0KGludCB2YXIwLCBmbG9hdCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgaW5zZXJ0KGludCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIGluc2VydChpbnQgdmFyMCwgbG9uZyB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgaW5zZXJ0KGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBpbnNlcnQoaW50IHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIGluc2VydChpbnQgdmFyMCwgYm9vbGVhbiB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBsZW5ndGgoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgcmV2ZXJzZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBzZXRDaGFyQXQoaW50IHZhcjAsIGNoYXIgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgc2V0TGVuZ3RoKGludCB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBzdWJzdHJpbmcoaW50IHZhcjAsIGludCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oy4wrPgCICAAAiAgAAOwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9TdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB7DQoJcHVibGljIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihpbnQgdmFyMCkgeyB9DQoJcHVibGljIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKnbkTO4QYAAOEGAAAiAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9TeXN0ZW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvU3lzdGVtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGZpbmFsIGNsYXNzIFN5c3RlbSB7DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldEluKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldE91dChqYXZhLmlvLlByaW50U3RyZWFtIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRFcnIoamF2YS5pby5QcmludFN0cmVhbSB2YXIwKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgYXJyYXljb3B5KGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIGphdmEubGFuZy5PYmplY3QgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0KSB7IH0NCglwdWJsaWMgc3RhdGljIGxvbmcgY3VycmVudFRpbWVNaWxsaXMoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0KGludCB2YXIwKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgZ2MoKSB7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5Qcm9wZXJ0aWVzIGdldFByb3BlcnRpZXMoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBnZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlNlY3VyaXR5TWFuYWdlciBnZXRTZWN1cml0eU1hbmFnZXIoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgaWRlbnRpdHlIYXNoQ29kZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgbG9hZExpYnJhcnkoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgcnVuRmluYWxpemF0aW9uKCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldFByb3BlcnRpZXMoamF2YS51dGlsLlByb3BlcnRpZXMgdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldFNlY3VyaXR5TWFuYWdlcihqYXZhLmxhbmcuU2VjdXJpdHlNYW5hZ2VyIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBtYXBMaWJyYXJ5TmFtZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEuaW8uSW5wdXRTdHJlYW0gaW47IHN0YXRpYyB7IGluID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS5pby5QcmludFN0cmVhbSBvdXQ7IHN0YXRpYyB7IG91dCA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEuaW8uUHJpbnRTdHJlYW0gZXJyOyBzdGF0aWMgeyBlcnIgPSBudWxsOyB9DQoJcHJpdmF0ZSBTeXN0ZW0oKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oywvnUKRwIAAAcCAAAIgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVGhyZWFkLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1RocmVhZC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBUaHJlYWQgaW1wbGVtZW50cyBqYXZhLmxhbmcuUnVubmFibGUgew0KCXB1YmxpYyBUaHJlYWQoKSB7IH0NCglwdWJsaWMgVGhyZWFkKGphdmEubGFuZy5SdW5uYWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgVGhyZWFkKGphdmEubGFuZy5SdW5uYWJsZSB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgfQ0KCXB1YmxpYyBUaHJlYWQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCglwdWJsaWMgVGhyZWFkKGphdmEubGFuZy5UaHJlYWRHcm91cCB2YXIwLCBqYXZhLmxhbmcuUnVubmFibGUgdmFyMSkgeyB9DQoJcHVibGljIFRocmVhZChqYXZhLmxhbmcuVGhyZWFkR3JvdXAgdmFyMCwgamF2YS5sYW5nLlJ1bm5hYmxlIHZhcjEsIGphdmEubGFuZy5TdHJpbmcgdmFyMikgeyB9DQoJcHVibGljIFRocmVhZChqYXZhLmxhbmcuVGhyZWFkR3JvdXAgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBjaGVja0FjY2VzcygpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlRocmVhZCBjdXJyZW50VGhyZWFkKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGludCBnZXRQcmlvcml0eSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgamF2YS5sYW5nLlRocmVhZEdyb3VwIGdldFRocmVhZEdyb3VwKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIGludGVycnVwdCgpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpbnRlcnJ1cHRlZCgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIGJvb2xlYW4gaXNBbGl2ZSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIGJvb2xlYW4gaXNEYWVtb24oKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGlzSW50ZXJydXB0ZWQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIGpvaW4oKSB0aHJvd3MgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIGpvaW4obG9uZyB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIGpvaW4obG9uZyB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbnRlcnJ1cHRlZEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBydW4oKSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBzZXREYWVtb24oYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBzZXROYW1lKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIGZpbmFsIHZvaWQgc2V0UHJpb3JpdHkoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzbGVlcChsb25nIHZhcjApIHRocm93cyBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNsZWVwKGxvbmcgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc3RhcnQoKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgeWllbGQoKSB7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNQVhfUFJJT1JJVFkgPSAxMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSU5fUFJJT1JJVFkgPSAxOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PUk1fUFJJT1JJVFkgPSA1Ow0KfQ0KDQpQSwMECgAAAAAAOkO6MuY1IbxXAQAAVwEAACcAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1RocmVhZERlYXRoLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1RocmVhZERlYXRoLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFRocmVhZERlYXRoIGV4dGVuZHMgamF2YS5sYW5nLkVycm9yIHsNCglwdWJsaWMgVGhyZWFkRGVhdGgoKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIL869vxAUAAMQFAAAnAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9UaHJlYWRHcm91cC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9UaHJlYWRHcm91cC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBjbGFzcyBUaHJlYWRHcm91cCB7DQoJcHVibGljIFRocmVhZEdyb3VwKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIFRocmVhZEdyb3VwKGphdmEubGFuZy5UaHJlYWRHcm91cCB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgfQ0KCXB1YmxpYyBpbnQgYWN0aXZlQ291bnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBhY3RpdmVHcm91cENvdW50KCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIGNoZWNrQWNjZXNzKCkgeyB9DQoJcHVibGljIGZpbmFsIHZvaWQgZGVzdHJveSgpIHsgfQ0KCXB1YmxpYyBpbnQgZW51bWVyYXRlKGphdmEubGFuZy5UaHJlYWRbXSB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBlbnVtZXJhdGUoamF2YS5sYW5nLlRocmVhZFtdIHZhcjAsIGJvb2xlYW4gdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgZW51bWVyYXRlKGphdmEubGFuZy5UaHJlYWRHcm91cFtdIHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGVudW1lcmF0ZShqYXZhLmxhbmcuVGhyZWFkR3JvdXBbXSB2YXIwLCBib29sZWFuIHZhcjEpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgZmluYWwgaW50IGdldE1heFByaW9yaXR5KCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5UaHJlYWRHcm91cCBnZXRQYXJlbnQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGJvb2xlYW4gaXNEYWVtb24oKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGlzRGVzdHJveWVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgdm9pZCBsaXN0KCkgeyB9DQoJcHVibGljIGZpbmFsIGJvb2xlYW4gcGFyZW50T2YoamF2YS5sYW5nLlRocmVhZEdyb3VwIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIHZvaWQgc2V0RGFlbW9uKGJvb2xlYW4gdmFyMCkgeyB9DQoJcHVibGljIGZpbmFsIHZvaWQgc2V0TWF4UHJpb3JpdHkoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uKGphdmEubGFuZy5UaHJlYWQgdmFyMCwgamF2YS5sYW5nLlRocm93YWJsZSB2YXIxKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujL8kAFb0gIAANICAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9UaHJvd2FibGUuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvVGhyb3dhYmxlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFRocm93YWJsZSBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgVGhyb3dhYmxlKCkgeyB9DQoJcHVibGljIFRocm93YWJsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuVGhyb3dhYmxlIGZpbGxJblN0YWNrVHJhY2UoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0TWVzc2FnZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBwcmludFN0YWNrVHJhY2UoKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludFN0YWNrVHJhY2UoamF2YS5pby5QcmludFN0cmVhbSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludFN0YWNrVHJhY2UoamF2YS5pby5QcmludFdyaXRlciB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujLsGSULmQEAAJkBAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Vbmtub3duRXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvVW5rbm93bkVycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFVua25vd25FcnJvciBleHRlbmRzIGphdmEubGFuZy5WaXJ0dWFsTWFjaGluZUVycm9yIHsNCglwdWJsaWMgVW5rbm93bkVycm9yKCkgeyB9DQoJcHVibGljIFVua25vd25FcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Miptvq2yAQAAsgEAADAAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1Vuc2F0aXNmaWVkTGlua0Vycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1Vuc2F0aXNmaWVkTGlua0Vycm9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nOw0KcHVibGljIGNsYXNzIFVuc2F0aXNmaWVkTGlua0Vycm9yIGV4dGVuZHMgamF2YS5sYW5nLkxpbmthZ2VFcnJvciB7DQoJcHVibGljIFVuc2F0aXNmaWVkTGlua0Vycm9yKCkgeyB9DQoJcHVibGljIFVuc2F0aXNmaWVkTGlua0Vycm9yKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oy4w0c8doBAADaAQAAOQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiB7DQoJcHVibGljIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyfLQhL44BAACOAQAAJwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVmVyaWZ5RXJyb3IuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvVmVyaWZ5RXJyb3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgY2xhc3MgVmVyaWZ5RXJyb3IgZXh0ZW5kcyBqYXZhLmxhbmcuTGlua2FnZUVycm9yIHsNCglwdWJsaWMgVmVyaWZ5RXJyb3IoKSB7IH0NCglwdWJsaWMgVmVyaWZ5RXJyb3IoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKpCAZbsAEAALABAAAvAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9WaXJ0dWFsTWFjaGluZUVycm9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL1ZpcnR1YWxNYWNoaW5lRXJyb3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmc7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVmlydHVhbE1hY2hpbmVFcnJvciBleHRlbmRzIGphdmEubGFuZy5FcnJvciB7DQoJcHVibGljIFZpcnR1YWxNYWNoaW5lRXJyb3IoKSB7IH0NCglwdWJsaWMgVmlydHVhbE1hY2hpbmVFcnJvcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Mh4Hv2HHAQAAxwEAACAAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1ZvaWQuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvVm9pZC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZzsNCnB1YmxpYyBmaW5hbCBjbGFzcyBWb2lkIHsNCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEubGFuZy5DbGFzcyBUWVBFOyBzdGF0aWMgeyBUWVBFID0gbnVsbDsgfQ0KCXByaXZhdGUgVm9pZCgpIHsgfSAvKiBnZW5lcmF0ZWQgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb21waWxlciBhZGRpbmcgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgKi8NCn0NCg0KUEsDBAoAAAAAADpDujIAAAAAAAAAAAAAAAAbAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWYvUEsDBAoAAAAAADpDujKT2a8X3wEAAN8BAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWYvUGhhbnRvbVJlZmVyZW5jZS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9yZWYvUGhhbnRvbVJlZmVyZW5jZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWY7DQpwdWJsaWMgY2xhc3MgUGhhbnRvbVJlZmVyZW5jZSBleHRlbmRzIGphdmEubGFuZy5yZWYuUmVmZXJlbmNlIHsNCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBnZXQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIFBoYW50b21SZWZlcmVuY2UoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlIHZhcjEpIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Msiqg4M9AgAAPQIAACkAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZi9SZWZlcmVuY2UuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmL1JlZmVyZW5jZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWY7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUmVmZXJlbmNlIHsNCglwdWJsaWMgdm9pZCBjbGVhcigpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGVucXVldWUoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0VucXVldWVkKCkgeyByZXR1cm4gZmFsc2U7IH0NCglSZWZlcmVuY2UoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oy3laK6XgCAAB4AgAALgAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmL1JlZmVyZW5jZVF1ZXVlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZi9SZWZlcmVuY2VRdWV1ZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWY7DQpwdWJsaWMgY2xhc3MgUmVmZXJlbmNlUXVldWUgew0KCXB1YmxpYyBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSBwb2xsKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSByZW1vdmUoKSB0aHJvd3MgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2UgcmVtb3ZlKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5JbnRlcnJ1cHRlZEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIFJlZmVyZW5jZVF1ZXVlKCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyM+so6QgCAAAIAgAALQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmL1NvZnRSZWZlcmVuY2UuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmL1NvZnRSZWZlcmVuY2UuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmcucmVmOw0KcHVibGljIGNsYXNzIFNvZnRSZWZlcmVuY2UgZXh0ZW5kcyBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSB7DQoJcHVibGljIFNvZnRSZWZlcmVuY2UoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlIHZhcjEpIHsgfQ0KCXB1YmxpYyBTb2Z0UmVmZXJlbmNlKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgZ2V0KCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MomoYaLXAQAA1wEAAC0AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZi9XZWFrUmVmZXJlbmNlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZi9XZWFrUmVmZXJlbmNlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZjsNCnB1YmxpYyBjbGFzcyBXZWFrUmVmZXJlbmNlIGV4dGVuZHMgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2Ugew0KCXB1YmxpYyBXZWFrUmVmZXJlbmNlKGphdmEubGFuZy5PYmplY3QgdmFyMCwgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2VRdWV1ZSB2YXIxKSB7IH0NCglwdWJsaWMgV2Vha1JlZmVyZW5jZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MgAAAAAAAAAAAAAAAB8AAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvUEsDBAoAAAAAADpDujLK5irRZwIAAGcCAAA0AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L0FjY2Vzc2libGVPYmplY3QuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9BY2Nlc3NpYmxlT2JqZWN0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgY2xhc3MgQWNjZXNzaWJsZU9iamVjdCB7DQoJcHJvdGVjdGVkIEFjY2Vzc2libGVPYmplY3QoKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0FjY2Vzc2libGUoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRBY2Nlc3NpYmxlKGphdmEubGFuZy5yZWZsZWN0LkFjY2Vzc2libGVPYmplY3RbXSB2YXIwLCBib29sZWFuIHZhcjEpIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc2V0QWNjZXNzaWJsZShib29sZWFuIHZhcjApIHRocm93cyBqYXZhLmxhbmcuU2VjdXJpdHlFeGNlcHRpb24geyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oysp+XM7wOAAC8DgAAKQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9BcnJheS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9yZWZsZWN0L0FycmF5LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgZmluYWwgY2xhc3MgQXJyYXkgew0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCBnZXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBnZXRCb29sZWFuKGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBieXRlIGdldEJ5dGUoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgY2hhciBnZXRDaGFyKGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGRvdWJsZSBnZXREb3VibGUoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBzdGF0aWMgZmxvYXQgZ2V0RmxvYXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyByZXR1cm4gMC4wZjsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGdldEludChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgZ2V0TGVuZ3RoKGphdmEubGFuZy5PYmplY3QgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgbG9uZyBnZXRMb25nKGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIHN0YXRpYyBzaG9ydCBnZXRTaG9ydChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IG5ld0luc3RhbmNlKGphdmEubGFuZy5DbGFzcyB2YXIwLCBpbnRbXSB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk5lZ2F0aXZlQXJyYXlTaXplRXhjZXB0aW9uLCBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgbmV3SW5zdGFuY2UoamF2YS5sYW5nLkNsYXNzIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLk5lZ2F0aXZlQXJyYXlTaXplRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc2V0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIGphdmEubGFuZy5PYmplY3QgdmFyMikgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldEJvb2xlYW4oamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSwgYm9vbGVhbiB2YXIyKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc2V0Qnl0ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGludCB2YXIxLCBieXRlIHZhcjIpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRDaGFyKGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIGNoYXIgdmFyMikgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldERvdWJsZShqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGludCB2YXIxLCBkb3VibGUgdmFyMikgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldEZsb2F0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIGZsb2F0IHZhcjIpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRJbnQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRMb25nKGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIGxvbmcgdmFyMikgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldFNob3J0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgaW50IHZhcjEsIHNob3J0IHZhcjIpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHsgfQ0KCXByaXZhdGUgQXJyYXkoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oyXRqhqZwEAACcBAAALwAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3Rvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9yZWZsZWN0L0NvbnN0cnVjdG9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgZmluYWwgY2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5kcyBqYXZhLmxhbmcucmVmbGVjdC5BY2Nlc3NpYmxlT2JqZWN0IGltcGxlbWVudHMgamF2YS5sYW5nLnJlZmxlY3QuTWVtYmVyIHsNCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3MgZ2V0RGVjbGFyaW5nQ2xhc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzc1tdIGdldEV4Y2VwdGlvblR5cGVzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgZ2V0TW9kaWZpZXJzKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzc1tdIGdldFBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgbmV3SW5zdGFuY2UoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApIHRocm93cyBqYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByaXZhdGUgQ29uc3RydWN0b3IoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oywKyRtxANAAAQDQAAKQAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9GaWVsZC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbGFuZy9yZWZsZWN0L0ZpZWxkLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgZmluYWwgY2xhc3MgRmllbGQgZXh0ZW5kcyBqYXZhLmxhbmcucmVmbGVjdC5BY2Nlc3NpYmxlT2JqZWN0IGltcGxlbWVudHMgamF2YS5sYW5nLnJlZmxlY3QuTWVtYmVyIHsNCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gZ2V0Qm9vbGVhbihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBieXRlIGdldEJ5dGUoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBjaGFyIGdldENoYXIoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3MgZ2V0RGVjbGFyaW5nQ2xhc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGRvdWJsZSBnZXREb3VibGUoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMC4wZDsgfQ0KCXB1YmxpYyBmbG9hdCBnZXRGbG9hdChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IHJldHVybiAwLjBmOyB9DQoJcHVibGljIGludCBnZXRJbnQoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBsb25nIGdldExvbmcoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgaW50IGdldE1vZGlmaWVycygpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzaG9ydCBnZXRTaG9ydChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5DbGFzcyBnZXRUeXBlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgc2V0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc2V0Qm9vbGVhbihqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGJvb2xlYW4gdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHNldEJ5dGUoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBieXRlIHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRDaGFyKGphdmEubGFuZy5PYmplY3QgdmFyMCwgY2hhciB2YXIxKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc2V0RG91YmxlKGphdmEubGFuZy5PYmplY3QgdmFyMCwgZG91YmxlIHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRGbG9hdChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGZsb2F0IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRJbnQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHNldExvbmcoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBsb25nIHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRTaG9ydChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIHNob3J0IHZhcjEpIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcml2YXRlIEZpZWxkKCkgeyB9IC8qIGdlbmVyYXRlZCBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbXBpbGVyIGFkZGluZyBkZWZhdWx0IHB1YmxpYyBjb25zdHJ1Y3RvciAqLw0KfQ0KDQpQSwMECgAAAAAAOkO6MlC+wNXiAQAA4gEAADUAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvSW52b2NhdGlvbkhhbmRsZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWZsZWN0Ow0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBJbnZvY2F0aW9uSGFuZGxlciB7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgaW52b2tlKGphdmEubGFuZy5PYmplY3QgdmFyMCwgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIHZhcjEsIGphdmEubGFuZy5PYmplY3RbXSB2YXIyKSB0aHJvd3MgamF2YS5sYW5nLlRocm93YWJsZTsNCn0NCg0KUEsDBAoAAAAAADpDujK3pMz31AIAANQCAAA9AAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L0ludm9jYXRpb25UYXJnZXRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgY2xhc3MgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXByb3RlY3RlZCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24oamF2YS5sYW5nLlRocm93YWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyB9DQoJcHVibGljIGphdmEubGFuZy5UaHJvd2FibGUgZ2V0VGFyZ2V0RXhjZXB0aW9uKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIHByaW50U3RhY2tUcmFjZSgpIHsgfQ0KCXB1YmxpYyB2b2lkIHByaW50U3RhY2tUcmFjZShqYXZhLmlvLlByaW50U3RyZWFtIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MurxUoQQAgAAEAIAACoAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTWVtYmVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTWVtYmVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE1lbWJlciB7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5DbGFzcyBnZXREZWNsYXJpbmdDbGFzcygpOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TW9kaWZpZXJzKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5TdHJpbmcgZ2V0TmFtZSgpOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBVQkxJQyA9IDA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVDTEFSRUQgPSAxOw0KfQ0KDQpQSwMECgAAAAAAOkO6MgwB24u3BAAAtwQAACoAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5sYW5nLnJlZmxlY3Q7DQpwdWJsaWMgZmluYWwgY2xhc3MgTWV0aG9kIGV4dGVuZHMgamF2YS5sYW5nLnJlZmxlY3QuQWNjZXNzaWJsZU9iamVjdCBpbXBsZW1lbnRzIGphdmEubGFuZy5yZWZsZWN0Lk1lbWJlciB7DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLkNsYXNzIGdldERlY2xhcmluZ0NsYXNzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3NbXSBnZXRFeGNlcHRpb25UeXBlcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldE1vZGlmaWVycygpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuQ2xhc3NbXSBnZXRQYXJhbWV0ZXJUeXBlcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLkNsYXNzIGdldFJldHVyblR5cGUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBpbnZva2UoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0W10gdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcml2YXRlIE1ldGhvZCgpIHsgfSAvKiBnZW5lcmF0ZWQgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb21waWxlciBhZGRpbmcgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgKi8NCn0NCg0KUEsDBAoAAAAAADpDujLfTT0cZAYAAGQGAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L01vZGlmaWVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTW9kaWZpZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmcucmVmbGVjdDsNCnB1YmxpYyBjbGFzcyBNb2RpZmllciB7DQoJcHVibGljIE1vZGlmaWVyKCkgeyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzQWJzdHJhY3QoaW50IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzRmluYWwoaW50IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzSW50ZXJmYWNlKGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05hdGl2ZShpbnQgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNQcml2YXRlKGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1Byb3RlY3RlZChpbnQgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNQdWJsaWMoaW50IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3RhdGljKGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N0cmljdChpbnQgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTeW5jaHJvbml6ZWQoaW50IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJhbnNpZW50KGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1ZvbGF0aWxlKGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZyhpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBVQkxJQyA9IDE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUFJJVkFURSA9IDI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUFJPVEVDVEVEID0gNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVEFUSUMgPSA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZJTkFMID0gMTY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1lOQ0hST05JWkVEID0gMzI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVk9MQVRJTEUgPSA2NDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBUUkFOU0lFTlQgPSAxMjg7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTkFUSVZFID0gMjU2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IElOVEVSRkFDRSA9IDUxMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBBQlNUUkFDVCA9IDEwMjQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1RSSUNUID0gMjA0ODsNCn0NCg0KUEsDBAoAAAAAADpDujKg9wcOCwQAAAsEAAApAAAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L1Byb3h5LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZmxlY3QvUHJveHkuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLmxhbmcucmVmbGVjdDsNCnB1YmxpYyBjbGFzcyBQcm94eSBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwcm90ZWN0ZWQgUHJveHkoamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvbkhhbmRsZXIgdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQ2xhc3MgZ2V0UHJveHlDbGFzcyhqYXZhLmxhbmcuQ2xhc3NMb2FkZXIgdmFyMCwgamF2YS5sYW5nLkNsYXNzW10gdmFyMSkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCBuZXdQcm94eUluc3RhbmNlKGphdmEubGFuZy5DbGFzc0xvYWRlciB2YXIwLCBqYXZhLmxhbmcuQ2xhc3NbXSB2YXIxLCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uSGFuZGxlciB2YXIyKSB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJveHlDbGFzcyhqYXZhLmxhbmcuQ2xhc3MgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25IYW5kbGVyIGdldEludm9jYXRpb25IYW5kbGVyKGphdmEubGFuZy5PYmplY3QgdmFyMCkgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uSGFuZGxlciBoOw0KfQ0KDQpQSwMECgAAAAAAOkO6MvhMLHZhAgAAYQIAADUAAABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvUmVmbGVjdFBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9SZWZsZWN0UGVybWlzc2lvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWZsZWN0Ow0KcHVibGljIGZpbmFsIGNsYXNzIFJlZmxlY3RQZXJtaXNzaW9uIGV4dGVuZHMgamF2YS5zZWN1cml0eS5CYXNpY1Blcm1pc3Npb24gew0KCXB1YmxpYyBSZWZsZWN0UGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KCXB1YmxpYyBSZWZsZWN0UGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyBzdXBlcigoamF2YS5sYW5nLlN0cmluZykgbnVsbCwgKGphdmEubGFuZy5TdHJpbmcpIG51bGwpOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyAlxO3b8CAAC/AgAAQAAAAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9VbmRlY2xhcmVkVGhyb3dhYmxlRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9sYW5nL3JlZmxlY3QvVW5kZWNsYXJlZFRocm93YWJsZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubGFuZy5yZWZsZWN0Ow0KcHVibGljIGNsYXNzIFVuZGVjbGFyZWRUaHJvd2FibGVFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiB7DQoJcHVibGljIFVuZGVjbGFyZWRUaHJvd2FibGVFeGNlcHRpb24oamF2YS5sYW5nLlRocm93YWJsZSB2YXIwKSB7IH0NCglwdWJsaWMgVW5kZWNsYXJlZFRocm93YWJsZUV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyB9DQoJcHVibGljIGphdmEubGFuZy5UaHJvd2FibGUgZ2V0VW5kZWNsYXJlZFRocm93YWJsZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBwcmludFN0YWNrVHJhY2UoKSB7IH0NCglwdWJsaWMgdm9pZCBwcmludFN0YWNrVHJhY2UoamF2YS5pby5QcmludFN0cmVhbSB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIAAAAAAAAAAAAAAAAWAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1BLAwQKAAAAAAA6Q7oyojibbRMEAAATBAAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9BdXRoZW50aWNhdG9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvQXV0aGVudGljYXRvci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGFic3RyYWN0IGNsYXNzIEF1dGhlbnRpY2F0b3Igew0KCXB1YmxpYyBBdXRoZW50aWNhdG9yKCkgeyB9DQoJcHJvdGVjdGVkIGphdmEubmV0LlBhc3N3b3JkQXV0aGVudGljYXRpb24gZ2V0UGFzc3dvcmRBdXRoZW50aWNhdGlvbigpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgZmluYWwgaW50IGdldFJlcXVlc3RpbmdQb3J0KCkgeyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCBmaW5hbCBqYXZhLm5ldC5JbmV0QWRkcmVzcyBnZXRSZXF1ZXN0aW5nU2l0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgZmluYWwgamF2YS5sYW5nLlN0cmluZyBnZXRSZXF1ZXN0aW5nUHJvbXB0KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGdldFJlcXVlc3RpbmdQcm90b2NvbCgpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgZmluYWwgamF2YS5sYW5nLlN0cmluZyBnZXRSZXF1ZXN0aW5nU2NoZW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5uZXQuUGFzc3dvcmRBdXRoZW50aWNhdGlvbiByZXF1ZXN0UGFzc3dvcmRBdXRoZW50aWNhdGlvbihqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwLCBpbnQgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjMsIGphdmEubGFuZy5TdHJpbmcgdmFyNCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXREZWZhdWx0KGphdmEubmV0LkF1dGhlbnRpY2F0b3IgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oytZk5bpYBAACWAQAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9CaW5kRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvQmluZEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGNsYXNzIEJpbmRFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24gew0KCXB1YmxpYyBCaW5kRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIEJpbmRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIUBRBFogEAAKIBAAArAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L0Nvbm5lY3RFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Db25uZWN0RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgY2xhc3MgQ29ubmVjdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7DQoJcHVibGljIENvbm5lY3RFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgQ29ubmVjdEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MvZPKa22AQAAtgEAACkAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvQ29udGVudEhhbmRsZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Db250ZW50SGFuZGxlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGFic3RyYWN0IGNsYXNzIENvbnRlbnRIYW5kbGVyIHsNCglwdWJsaWMgQ29udGVudEhhbmRsZXIoKSB7IH0NCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBnZXRDb250ZW50KGphdmEubmV0LlVSTENvbm5lY3Rpb24gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQp9DQoNClBLAwQKAAAAAAA6Q7oyO3mc8poBAACaAQAAMAAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9Db250ZW50SGFuZGxlckZhY3RvcnkuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Db250ZW50SGFuZGxlckZhY3RvcnkuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgQ29udGVudEhhbmRsZXJGYWN0b3J5IHsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5uZXQuQ29udGVudEhhbmRsZXIgY3JlYXRlQ29udGVudEhhbmRsZXIoamF2YS5sYW5nLlN0cmluZyB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujLr92C5FgQAABYEAAApAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L0RhdGFncmFtUGFja2V0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvRGF0YWdyYW1QYWNrZXQuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBmaW5hbCBjbGFzcyBEYXRhZ3JhbVBhY2tldCB7DQoJcHVibGljIERhdGFncmFtUGFja2V0KGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIERhdGFncmFtUGFja2V0KGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyBEYXRhZ3JhbVBhY2tldChieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyLCBqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIzLCBpbnQgdmFyNCkgeyB9DQoJcHVibGljIERhdGFncmFtUGFja2V0KGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMiwgaW50IHZhcjMpIHsgfQ0KCXB1YmxpYyBqYXZhLm5ldC5JbmV0QWRkcmVzcyBnZXRBZGRyZXNzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBieXRlW10gZ2V0RGF0YSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldExlbmd0aCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldE9mZnNldCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHZvaWQgc2V0QWRkcmVzcyhqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXREYXRhKGJ5dGVbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyB2b2lkIHNldERhdGEoYnl0ZVtdIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHNldExlbmd0aChpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0UG9ydChpbnQgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyjcAsdMsFAADLBQAAKQAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9EYXRhZ3JhbVNvY2tldC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L0RhdGFncmFtU29ja2V0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgY2xhc3MgRGF0YWdyYW1Tb2NrZXQgew0KCXB1YmxpYyBEYXRhZ3JhbVNvY2tldCgpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24geyB9DQoJcHVibGljIERhdGFncmFtU29ja2V0KGludCB2YXIwKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBEYXRhZ3JhbVNvY2tldChpbnQgdmFyMCwgamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMSkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHsgfQ0KCXB1YmxpYyB2b2lkIGNvbm5lY3QoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCwgaW50IHZhcjEpIHsgfQ0KCXB1YmxpYyB2b2lkIGRpc2Nvbm5lY3QoKSB7IH0NCglwdWJsaWMgamF2YS5uZXQuSW5ldEFkZHJlc3MgZ2V0SW5ldEFkZHJlc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubmV0LkluZXRBZGRyZXNzIGdldExvY2FsQWRkcmVzcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldExvY2FsUG9ydCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBnZXRSZWNlaXZlQnVmZmVyU2l6ZSgpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgZ2V0U2VuZEJ1ZmZlclNpemUoKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFNvVGltZW91dCgpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIHJlY2VpdmUoamF2YS5uZXQuRGF0YWdyYW1QYWNrZXQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc2VuZChqYXZhLm5ldC5EYXRhZ3JhbVBhY2tldCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRTZW5kQnVmZmVyU2l6ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRSZWNlaXZlQnVmZmVyU2l6ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRTb1RpbWVvdXQoaW50IHZhcjApIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24geyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyweL1YQUGAAAFBgAALQAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9EYXRhZ3JhbVNvY2tldEltcGwuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9EYXRhZ3JhbVNvY2tldEltcGwuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEYXRhZ3JhbVNvY2tldEltcGwgaW1wbGVtZW50cyBqYXZhLm5ldC5Tb2NrZXRPcHRpb25zIHsNCglwdWJsaWMgRGF0YWdyYW1Tb2NrZXRJbXBsKCkgeyB9DQoJcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgYmluZChpbnQgdmFyMCwgamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMSkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpOw0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGNyZWF0ZSgpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb247DQoJcHJvdGVjdGVkIGphdmEuaW8uRmlsZURlc2NyaXB0b3IgZ2V0RmlsZURlc2NyaXB0b3IoKSB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGludCBnZXRMb2NhbFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgZ2V0T3B0aW9uKGludCB2YXIwKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0VGltZVRvTGl2ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGpvaW4oamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgbGVhdmUoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGFic3RyYWN0IGludCBwZWVrKGphdmEubmV0LkluZXRBZGRyZXNzIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHJlY2VpdmUoamF2YS5uZXQuRGF0YWdyYW1QYWNrZXQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgc2VuZChqYXZhLm5ldC5EYXRhZ3JhbVBhY2tldCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRPcHRpb24oaW50IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBzZXRUaW1lVG9MaXZlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgamF2YS5pby5GaWxlRGVzY3JpcHRvciBmZDsNCglwcm90ZWN0ZWQgaW50IGxvY2FsUG9ydDsNCn0NCg0KUEsDBAoAAAAAADpDujJj55NafAEAAHwBAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L0ZpbGVOYW1lTWFwLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvRmlsZU5hbWVNYXAuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgRmlsZU5hbWVNYXAgew0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuU3RyaW5nIGdldENvbnRlbnRUeXBlRm9yKGphdmEubGFuZy5TdHJpbmcgdmFyMCk7DQp9DQoNClBLAwQKAAAAAAA6Q7oyyjxaiYgLAACICwAALAAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9IdHRwVVJMQ29ubmVjdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L0h0dHBVUkxDb25uZWN0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSHR0cFVSTENvbm5lY3Rpb24gZXh0ZW5kcyBqYXZhLm5ldC5VUkxDb25uZWN0aW9uIHsNCglwcm90ZWN0ZWQgSHR0cFVSTENvbm5lY3Rpb24oamF2YS5uZXQuVVJMIHZhcjApIHsgc3VwZXIoKGphdmEubmV0LlVSTCkgbnVsbCk7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBkaXNjb25uZWN0KCk7DQoJcHVibGljIGphdmEuaW8uSW5wdXRTdHJlYW0gZ2V0RXJyb3JTdHJlYW0oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBib29sZWFuIGdldEZvbGxvd1JlZGlyZWN0cygpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiBnZXRQZXJtaXNzaW9uKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFJlcXVlc3RNZXRob2QoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRSZXNwb25zZUNvZGUoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UmVzcG9uc2VNZXNzYWdlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRGb2xsb3dSZWRpcmVjdHMoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRSZXF1ZXN0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubmV0LlByb3RvY29sRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHVzaW5nUHJveHkoKTsNCglwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyBtZXRob2Q7DQoJcHJvdGVjdGVkIGludCByZXNwb25zZUNvZGU7DQoJcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgcmVzcG9uc2VNZXNzYWdlOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfQUNDRVBURUQgPSAyMDI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9CQURfR0FURVdBWSA9IDUwMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0JBRF9NRVRIT0QgPSA0MDU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9CQURfUkVRVUVTVCA9IDQwMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0NMSUVOVF9USU1FT1VUID0gNDA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfQ09ORkxJQ1QgPSA0MDk7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9DUkVBVEVEID0gMjAxOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfRU5USVRZX1RPT19MQVJHRSA9IDQxMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0ZPUkJJRERFTiA9IDQwMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0dBVEVXQVlfVElNRU9VVCA9IDUwNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0dPTkUgPSA0MTA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9JTlRFUk5BTF9FUlJPUiA9IDUwMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX0xFTkdUSF9SRVFVSVJFRCA9IDQxMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX01PVkVEX1BFUk0gPSAzMDE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9NT1ZFRF9URU1QID0gMzAyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfTVVMVF9DSE9JQ0UgPSAzMDA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9OT19DT05URU5UID0gMjA0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfTk9UX0FDQ0VQVEFCTEUgPSA0MDY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9OT1RfQVVUSE9SSVRBVElWRSA9IDIwMzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX05PVF9GT1VORCA9IDQwNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX05PVF9JTVBMRU1FTlRFRCA9IDUwMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX05PVF9NT0RJRklFRCA9IDMwNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX09LID0gMjAwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfUEFSVElBTCA9IDIwNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX1BBWU1FTlRfUkVRVUlSRUQgPSA0MDI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSFRUUF9QUkVDT05fRkFJTEVEID0gNDEyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfUFJPWFlfQVVUSCA9IDQwNzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX1JFUV9UT09fTE9ORyA9IDQxNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX1JFU0VUID0gMjA1Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfU0VFX09USEVSID0gMzAzOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfVVNFX1BST1hZID0gMzA1Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfVU5BVVRIT1JJWkVEID0gNDAxOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfVU5TVVBQT1JURURfVFlQRSA9IDQxNTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBIVFRQX1VOQVZBSUxBQkxFID0gNTAzOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhUVFBfVkVSU0lPTiA9IDUwNTsNCn0NCg0KUEsDBAoAAAAAADpDujIZPsWzlQQAAJUEAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L0luZXRBZGRyZXNzLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvSW5ldEFkZHJlc3MuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBmaW5hbCBjbGFzcyBJbmV0QWRkcmVzcyBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBieXRlW10gZ2V0QWRkcmVzcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubmV0LkluZXRBZGRyZXNzW10gZ2V0QWxsQnlOYW1lKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubmV0LlVua25vd25Ib3N0RXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubmV0LkluZXRBZGRyZXNzIGdldEJ5TmFtZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLm5ldC5Vbmtub3duSG9zdEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0SG9zdEFkZHJlc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0SG9zdE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLm5ldC5JbmV0QWRkcmVzcyBnZXRMb2NhbEhvc3QoKSB0aHJvd3MgamF2YS5uZXQuVW5rbm93bkhvc3RFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gaXNNdWx0aWNhc3RBZGRyZXNzKCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcml2YXRlIEluZXRBZGRyZXNzKCkgeyB9IC8qIGdlbmVyYXRlZCBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbXBpbGVyIGFkZGluZyBkZWZhdWx0IHB1YmxpYyBjb25zdHJ1Y3RvciAqLw0KfQ0KDQpQSwMECgAAAAAAOkO6MtViX6R0AgAAdAIAACsAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvSmFyVVJMQ29ubmVjdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L0phclVSTENvbm5lY3Rpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBKYXJVUkxDb25uZWN0aW9uIGV4dGVuZHMgamF2YS5uZXQuVVJMQ29ubmVjdGlvbiB7DQoJcHJvdGVjdGVkIEphclVSTENvbm5lY3Rpb24oamF2YS5uZXQuVVJMIHZhcjApIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24geyBzdXBlcigoamF2YS5uZXQuVVJMKSBudWxsKTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEVudHJ5TmFtZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5uZXQuVVJMIGdldEphckZpbGVVUkwoKSB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubmV0LlVSTENvbm5lY3Rpb24gamFyRmlsZVVSTENvbm5lY3Rpb247DQp9DQoNClBLAwQKAAAAAAA6Q7oyR4RVlLEBAACxAQAAMAAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9NYWxmb3JtZWRVUkxFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9NYWxmb3JtZWRVUkxFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBjbGFzcyBNYWxmb3JtZWRVUkxFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmlvLklPRXhjZXB0aW9uIHsNCglwdWJsaWMgTWFsZm9ybWVkVVJMRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIE1hbGZvcm1lZFVSTEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MkqWd6cJBAAACQQAACoAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvTXVsdGljYXN0U29ja2V0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvTXVsdGljYXN0U29ja2V0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgY2xhc3MgTXVsdGljYXN0U29ja2V0IGV4dGVuZHMgamF2YS5uZXQuRGF0YWdyYW1Tb2NrZXQgew0KCXB1YmxpYyBNdWx0aWNhc3RTb2NrZXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgTXVsdGljYXN0U29ja2V0KGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgamF2YS5uZXQuSW5ldEFkZHJlc3MgZ2V0SW50ZXJmYWNlKCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRUaW1lVG9MaXZlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIGpvaW5Hcm91cChqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBsZWF2ZUdyb3VwKGphdmEubmV0LkluZXRBZGRyZXNzIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHNlbmQoamF2YS5uZXQuRGF0YWdyYW1QYWNrZXQgdmFyMCwgYnl0ZSB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRJbnRlcmZhY2UoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRUaW1lVG9MaXZlKGludCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujI9E20dPwIAAD8CAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L05ldFBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9OZXRQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgZmluYWwgY2xhc3MgTmV0UGVybWlzc2lvbiBleHRlbmRzIGphdmEuc2VjdXJpdHkuQmFzaWNQZXJtaXNzaW9uIHsNCglwdWJsaWMgTmV0UGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KCXB1YmxpYyBOZXRQZXJtaXNzaW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IHN1cGVyKChqYXZhLmxhbmcuU3RyaW5nKSBudWxsLCAoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJBV7fbugEAALoBAAAxAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L05vUm91dGVUb0hvc3RFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Ob1JvdXRlVG9Ib3N0RXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgY2xhc3MgTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7DQoJcHVibGljIE5vUm91dGVUb0hvc3RFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MiAJCmnuAQAA7gEAADEAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvUGFzc3dvcmRBdXRoZW50aWNhdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L1Bhc3N3b3JkQXV0aGVudGljYXRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBmaW5hbCBjbGFzcyBQYXNzd29yZEF1dGhlbnRpY2F0aW9uIHsNCglwdWJsaWMgUGFzc3dvcmRBdXRoZW50aWNhdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGNoYXJbXSB2YXIxKSB7IH0NCglwdWJsaWMgY2hhcltdIGdldFBhc3N3b3JkKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFVzZXJOYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MlbpKvKhAQAAoQEAACwAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvUHJvdG9jb2xFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Qcm90b2NvbEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGNsYXNzIFByb3RvY29sRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIFByb3RvY29sRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFByb3RvY29sRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oykXbTQ34EAAB+BAAAJwAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9TZXJ2ZXJTb2NrZXQuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9TZXJ2ZXJTb2NrZXQuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBjbGFzcyBTZXJ2ZXJTb2NrZXQgew0KCXB1YmxpYyBTZXJ2ZXJTb2NrZXQoaW50IHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBTZXJ2ZXJTb2NrZXQoaW50IHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgU2VydmVyU29ja2V0KGludCB2YXIwLCBpbnQgdmFyMSwgamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGphdmEubmV0LlNvY2tldCBhY2NlcHQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgamF2YS5uZXQuSW5ldEFkZHJlc3MgZ2V0SW5ldEFkZHJlc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRMb2NhbFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBnZXRTb1RpbWVvdXQoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHJvdGVjdGVkIGZpbmFsIHZvaWQgaW1wbEFjY2VwdChqYXZhLm5ldC5Tb2NrZXQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldFNvY2tldEZhY3RvcnkoamF2YS5uZXQuU29ja2V0SW1wbEZhY3RvcnkgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgc2V0U29UaW1lb3V0KGludCB2YXIwKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MgH9+iOhCAAAoQgAACEAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvU29ja2V0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvU29ja2V0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgY2xhc3MgU29ja2V0IHsNCglwcm90ZWN0ZWQgU29ja2V0KCkgeyB9DQoJcHVibGljIFNvY2tldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5uZXQuVW5rbm93bkhvc3RFeGNlcHRpb24sIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIFNvY2tldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGludCB2YXIxLCBqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIyLCBpbnQgdmFyMykgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIFNvY2tldChqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIFNvY2tldChqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwLCBpbnQgdmFyMSwgamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMiwgaW50IHZhcjMpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBTb2NrZXQoamF2YS5uZXQuU29ja2V0SW1wbCB2YXIwKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGphdmEubmV0LkluZXRBZGRyZXNzIGdldEluZXRBZGRyZXNzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIGdldElucHV0U3RyZWFtKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLm5ldC5JbmV0QWRkcmVzcyBnZXRMb2NhbEFkZHJlc3MoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRMb2NhbFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEuaW8uT3V0cHV0U3RyZWFtIGdldE91dHB1dFN0cmVhbSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBnZXRTb0xpbmdlcigpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgZ2V0UmVjZWl2ZUJ1ZmZlclNpemUoKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFNlbmRCdWZmZXJTaXplKCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBnZXRTb1RpbWVvdXQoKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBnZXRUY3BOb0RlbGF5KCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRTb2NrZXRJbXBsRmFjdG9yeShqYXZhLm5ldC5Tb2NrZXRJbXBsRmFjdG9yeSB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRTZW5kQnVmZmVyU2l6ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRSZWNlaXZlQnVmZmVyU2l6ZShpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRTb0xpbmdlcihib29sZWFuIHZhcjAsIGludCB2YXIxKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIHNldFNvVGltZW91dChpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgdm9pZCBzZXRUY3BOb0RlbGF5KGJvb2xlYW4gdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKgonG4mQEAAJkBAAAqAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1NvY2tldEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L1NvY2tldEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGNsYXNzIFNvY2tldEV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXB1YmxpYyBTb2NrZXRFeGNlcHRpb24oKSB7IH0NCglwdWJsaWMgU29ja2V0RXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyic+0qvAGAADwBgAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9Tb2NrZXRJbXBsLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvU29ja2V0SW1wbC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGFic3RyYWN0IGNsYXNzIFNvY2tldEltcGwgaW1wbGVtZW50cyBqYXZhLm5ldC5Tb2NrZXRPcHRpb25zIHsNCglwdWJsaWMgU29ja2V0SW1wbCgpIHsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGFjY2VwdChqYXZhLm5ldC5Tb2NrZXRJbXBsIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCBpbnQgYXZhaWxhYmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgYmluZChqYXZhLm5ldC5JbmV0QWRkcmVzcyB2YXIwLCBpbnQgdmFyMSkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgY2xvc2UoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjb25uZWN0KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGNvbm5lY3QoamF2YS5uZXQuSW5ldEFkZHJlc3MgdmFyMCwgaW50IHZhcjEpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGNyZWF0ZShib29sZWFuIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIGdldEZpbGVEZXNjcmlwdG9yKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBqYXZhLm5ldC5JbmV0QWRkcmVzcyBnZXRJbmV0QWRkcmVzcygpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgYWJzdHJhY3QgamF2YS5pby5JbnB1dFN0cmVhbSBnZXRJbnB1dFN0cmVhbSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uOw0KCXByb3RlY3RlZCBpbnQgZ2V0TG9jYWxQb3J0KCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGdldE9wdGlvbihpbnQgdmFyMCkgdGhyb3dzIGphdmEubmV0LlNvY2tldEV4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgYWJzdHJhY3QgamF2YS5pby5PdXRwdXRTdHJlYW0gZ2V0T3V0cHV0U3RyZWFtKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHJvdGVjdGVkIGludCBnZXRQb3J0KCkgeyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGxpc3RlbihpbnQgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb247DQoJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0T3B0aW9uKGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHRocm93cyBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb247DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGphdmEubmV0LkluZXRBZGRyZXNzIGFkZHJlc3M7DQoJcHJvdGVjdGVkIGludCBwb3J0Ow0KCXByb3RlY3RlZCBqYXZhLmlvLkZpbGVEZXNjcmlwdG9yIGZkOw0KCXByb3RlY3RlZCBpbnQgbG9jYWxwb3J0Ow0KfQ0KDQpQSwMECgAAAAAAOkO6Mvrcko51AQAAdQEAACwAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvU29ja2V0SW1wbEZhY3RvcnkuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Tb2NrZXRJbXBsRmFjdG9yeS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBTb2NrZXRJbXBsRmFjdG9yeSB7DQoJcHVibGljIGFic3RyYWN0IGphdmEubmV0LlNvY2tldEltcGwgY3JlYXRlU29ja2V0SW1wbCgpOw0KfQ0KDQpQSwMECgAAAAAAOkO6MnKfPZpRAwAAUQMAACgAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvU29ja2V0T3B0aW9ucy5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L1NvY2tldE9wdGlvbnMuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgU29ja2V0T3B0aW9ucyB7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgZ2V0T3B0aW9uKGludCB2YXIwKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldE9wdGlvbihpbnQgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB0aHJvd3MgamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNPX0xJTkdFUiA9IDEyODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBTT19USU1FT1VUID0gNDEwMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBUQ1BfTk9ERUxBWSA9IDE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSVBfTVVMVElDQVNUX0lGID0gMTY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU09fQklOREFERFIgPSAxNTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBTT19SRVVTRUFERFIgPSA0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNPX1NOREJVRiA9IDQwOTc7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU09fUkNWQlVGID0gNDA5ODsNCn0NCg0KUEsDBAoAAAAAADpDujIQ5nrBHwMAAB8DAAArAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1NvY2tldFBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Tb2NrZXRQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgZmluYWwgY2xhc3MgU29ja2V0UGVybWlzc2lvbiBleHRlbmRzIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgU29ja2V0UGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyBzdXBlcigoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0QWN0aW9ucygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBpbXBsaWVzKGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb25Db2xsZWN0aW9uIG5ld1Blcm1pc3Npb25Db2xsZWN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MpwJKrmyCQAAsgkAAB4AAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvVVJMLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvVVJMLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgZmluYWwgY2xhc3MgVVJMIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRVUkxTdHJlYW1IYW5kbGVyRmFjdG9yeShqYXZhLm5ldC5VUkxTdHJlYW1IYW5kbGVyRmFjdG9yeSB2YXIwKSB7IH0NCglwdWJsaWMgVVJMKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgVVJMKGphdmEubmV0LlVSTCB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24geyB9DQoJcHVibGljIFVSTChqYXZhLm5ldC5VUkwgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxLCBqYXZhLm5ldC5VUkxTdHJlYW1IYW5kbGVyIHZhcjIpIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24geyB9DQoJcHVibGljIFVSTChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyKSB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBVUkwoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEsIGludCB2YXIyLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjMpIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24geyB9DQoJcHVibGljIFVSTChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgaW50IHZhcjIsIGphdmEubGFuZy5TdHJpbmcgdmFyMywgamF2YS5uZXQuVVJMU3RyZWFtSGFuZGxlciB2YXI0KSB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgaW50IHZhcjIsIGphdmEubGFuZy5TdHJpbmcgdmFyMywgamF2YS5sYW5nLlN0cmluZyB2YXI0KSB7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIHNhbWVGaWxlKGphdmEubmV0LlVSTCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5PYmplY3QgZ2V0Q29udGVudCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgamF2YS5pby5JbnB1dFN0cmVhbSBvcGVuU3RyZWFtKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLm5ldC5VUkxDb25uZWN0aW9uIG9wZW5Db25uZWN0aW9uKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvRXh0ZXJuYWxGb3JtKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEZpbGUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0SG9zdCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UHJvdG9jb2woKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UmVmKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFF1ZXJ5KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFBhdGgoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0VXNlckluZm8oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0QXV0aG9yaXR5KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldChqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgaW50IHZhcjIsIGphdmEubGFuZy5TdHJpbmcgdmFyMywgamF2YS5sYW5nLlN0cmluZyB2YXI0LCBqYXZhLmxhbmcuU3RyaW5nIHZhcjUsIGphdmEubGFuZy5TdHJpbmcgdmFyNiwgamF2YS5sYW5nLlN0cmluZyB2YXI3KSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJ2FQRPUgwAAFIMAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1VSTENvbm5lY3Rpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9VUkxDb25uZWN0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToxOSBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5uZXQ7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVVJMQ29ubmVjdGlvbiB7DQoJcHJvdGVjdGVkIFVSTENvbm5lY3Rpb24oamF2YS5uZXQuVVJMIHZhcjApIHsgfQ0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGNvbm5lY3QoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwdWJsaWMgYm9vbGVhbiBnZXRBbGxvd1VzZXJJbnRlcmFjdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgZ2V0Q29udGVudCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRDb250ZW50RW5jb2RpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRDb250ZW50TGVuZ3RoKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldENvbnRlbnRUeXBlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBsb25nIGdldERhdGUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBnZXREZWZhdWx0QWxsb3dVc2VySW50ZXJhY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGdldERlZmF1bHRVc2VDYWNoZXMoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGdldERvSW5wdXQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGdldERvT3V0cHV0KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgbG9uZyBnZXRFeHBpcmF0aW9uKCkgeyByZXR1cm4gMGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubmV0LkZpbGVOYW1lTWFwIGdldEZpbGVOYW1lTWFwKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEhlYWRlckZpZWxkKGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0SGVhZGVyRmllbGQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGxvbmcgZ2V0SGVhZGVyRmllbGREYXRlKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgbG9uZyB2YXIxKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBpbnQgZ2V0SGVhZGVyRmllbGRJbnQoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEhlYWRlckZpZWxkS2V5KGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGxvbmcgZ2V0SWZNb2RpZmllZFNpbmNlKCkgeyByZXR1cm4gMGw7IH0NCglwdWJsaWMgamF2YS5pby5JbnB1dFN0cmVhbSBnZXRJbnB1dFN0cmVhbSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgbG9uZyBnZXRMYXN0TW9kaWZpZWQoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBqYXZhLmlvLk91dHB1dFN0cmVhbSBnZXRPdXRwdXRTdHJlYW0oKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiBnZXRQZXJtaXNzaW9uKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFJlcXVlc3RQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5uZXQuVVJMIGdldFVSTCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBnZXRVc2VDYWNoZXMoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXByb3RlY3RlZCBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBndWVzc0NvbnRlbnRUeXBlRnJvbU5hbWUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGd1ZXNzQ29udGVudFR5cGVGcm9tU3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0gdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIHNldEFsbG93VXNlckludGVyYWN0aW9uKGJvb2xlYW4gdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldENvbnRlbnRIYW5kbGVyRmFjdG9yeShqYXZhLm5ldC5Db250ZW50SGFuZGxlckZhY3RvcnkgdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNldERlZmF1bHRBbGxvd1VzZXJJbnRlcmFjdGlvbihib29sZWFuIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHNldERlZmF1bHRVc2VDYWNoZXMoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXREb0lucHV0KGJvb2xlYW4gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0RG9PdXRwdXQoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc2V0RmlsZU5hbWVNYXAoamF2YS5uZXQuRmlsZU5hbWVNYXAgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0SWZNb2RpZmllZFNpbmNlKGxvbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0UmVxdWVzdFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRVc2VDYWNoZXMoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgamF2YS5uZXQuVVJMIHVybDsNCglwcm90ZWN0ZWQgbG9uZyBpZk1vZGlmaWVkU2luY2U7DQoJcHJvdGVjdGVkIGJvb2xlYW4gdXNlQ2FjaGVzOw0KCXByb3RlY3RlZCBib29sZWFuIGNvbm5lY3RlZDsNCglwcm90ZWN0ZWQgYm9vbGVhbiBkb091dHB1dDsNCglwcm90ZWN0ZWQgYm9vbGVhbiBkb0lucHV0Ow0KCXByb3RlY3RlZCBib29sZWFuIGFsbG93VXNlckludGVyYWN0aW9uOw0KfQ0KDQpQSwMECgAAAAAAOkO6MgEzZ5OKAQAAigEAACUAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvVVJMRGVjb2Rlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L1VSTERlY29kZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBjbGFzcyBVUkxEZWNvZGVyIHsNCglwdWJsaWMgVVJMRGVjb2RlcigpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBkZWNvZGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyIdzkON0BAADdAQAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9VUkxFbmNvZGVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvVVJMRW5jb2Rlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGNsYXNzIFVSTEVuY29kZXIgew0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBlbmNvZGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHJpdmF0ZSBVUkxFbmNvZGVyKCkgeyB9IC8qIGdlbmVyYXRlZCBjb25zdHJ1Y3RvciB0byBwcmV2ZW50IGNvbXBpbGVyIGFkZGluZyBkZWZhdWx0IHB1YmxpYyBjb25zdHJ1Y3RvciAqLw0KfQ0KDQpQSwMECgAAAAAAOkO6Mlr/xdQBBQAAAQUAACsAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvVVJMU3RyZWFtSGFuZGxlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBVUkxTdHJlYW1IYW5kbGVyIHsNCglwdWJsaWMgVVJMU3RyZWFtSGFuZGxlcigpIHsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCBqYXZhLm5ldC5VUkxDb25uZWN0aW9uIG9wZW5Db25uZWN0aW9uKGphdmEubmV0LlVSTCB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjsNCglwcm90ZWN0ZWQgdm9pZCBwYXJzZVVSTChqYXZhLm5ldC5VUkwgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMpIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldFVSTChqYXZhLm5ldC5VUkwgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjIsIGludCB2YXIzLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjQsIGphdmEubGFuZy5TdHJpbmcgdmFyNSwgamF2YS5sYW5nLlN0cmluZyB2YXI2LCBqYXZhLmxhbmcuU3RyaW5nIHZhcjcsIGphdmEubGFuZy5TdHJpbmcgdmFyOCkgeyB9DQoJcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgdG9FeHRlcm5hbEZvcm0oamF2YS5uZXQuVVJMIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgYm9vbGVhbiBlcXVhbHMoamF2YS5uZXQuVVJMIHZhcjAsIGphdmEubmV0LlVSTCB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXByb3RlY3RlZCBpbnQgZ2V0RGVmYXVsdFBvcnQoKSB7IHJldHVybiAwOyB9DQoJcHJvdGVjdGVkIGphdmEubmV0LkluZXRBZGRyZXNzIGdldEhvc3RBZGRyZXNzKGphdmEubmV0LlVSTCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIGludCBoYXNoQ29kZShqYXZhLm5ldC5VUkwgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCBib29sZWFuIGhvc3RzRXF1YWwoamF2YS5uZXQuVVJMIHZhcjAsIGphdmEubmV0LlVSTCB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXByb3RlY3RlZCBib29sZWFuIHNhbWVGaWxlKGphdmEubmV0LlVSTCB2YXIwLCBqYXZhLm5ldC5VUkwgdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKuTMgVogEAAKIBAAAyAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXJGYWN0b3J5LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvVVJMU3RyZWFtSGFuZGxlckZhY3RvcnkuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgVVJMU3RyZWFtSGFuZGxlckZhY3Rvcnkgew0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLm5ldC5VUkxTdHJlYW1IYW5kbGVyIGNyZWF0ZVVSTFN0cmVhbUhhbmRsZXIoamF2YS5sYW5nLlN0cmluZyB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujJ4XSqsrQEAAK0BAAAvAAAAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1Vua25vd25Ib3N0RXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9uZXQvVW5rbm93bkhvc3RFeGNlcHRpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjE5IGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLm5ldDsNCnB1YmxpYyBjbGFzcyBVbmtub3duSG9zdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb24gew0KCXB1YmxpYyBVbmtub3duSG9zdEV4Y2VwdGlvbigpIHsgfQ0KCXB1YmxpYyBVbmtub3duSG9zdEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Mg0hHeK5AQAAuQEAADIAAABPU0dJLU9QVC9zcmMvamF2YS9uZXQvVW5rbm93blNlcnZpY2VFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL25ldC9Vbmtub3duU2VydmljZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MTkgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEubmV0Ow0KcHVibGljIGNsYXNzIFVua25vd25TZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbiB7DQoJcHVibGljIFVua25vd25TZXJ2aWNlRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFVua25vd25TZXJ2aWNlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAGwAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1BLAwQKAAAAAAA6Q7oyGHlI12ECAABhAgAANAAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xDb250ZXh0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9sQ29udGV4dC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgZmluYWwgY2xhc3MgQWNjZXNzQ29udHJvbENvbnRleHQgew0KCXB1YmxpYyBBY2Nlc3NDb250cm9sQ29udGV4dChqYXZhLnNlY3VyaXR5LlByb3RlY3Rpb25Eb21haW5bXSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBjaGVja1Blcm1pc3Npb24oamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApIHRocm93cyBqYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xFeGNlcHRpb24geyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MpYZuKs+AgAAPgIAADYAAABPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9sRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9sRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5zZWN1cml0eTsNCnB1YmxpYyBjbGFzcyBBY2Nlc3NDb250cm9sRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlNlY3VyaXR5RXhjZXB0aW9uIHsNCglwdWJsaWMgQWNjZXNzQ29udHJvbEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBBY2Nlc3NDb250cm9sRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjEpIHsgfQ0KCXB1YmxpYyBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gZ2V0UGVybWlzc2lvbigpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJqsGX7xgQAAMYEAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbGxlci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbGxlci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgZmluYWwgY2xhc3MgQWNjZXNzQ29udHJvbGxlciB7DQoJcHVibGljIHN0YXRpYyB2b2lkIGNoZWNrUGVybWlzc2lvbihqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gdmFyMCkgdGhyb3dzIGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbEV4Y2VwdGlvbiB7IH0NCglwdWJsaWMgc3RhdGljIGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbENvbnRleHQgZ2V0Q29udGV4dCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgZG9Qcml2aWxlZ2VkKGphdmEuc2VjdXJpdHkuUHJpdmlsZWdlZEFjdGlvbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IGRvUHJpdmlsZWdlZChqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb24gdmFyMCwgamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sQ29udGV4dCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IGRvUHJpdmlsZWdlZChqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb24gdmFyMCkgdGhyb3dzIGphdmEuc2VjdXJpdHkuUHJpdmlsZWdlZEFjdGlvbkV4Y2VwdGlvbiB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IGRvUHJpdmlsZWdlZChqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb24gdmFyMCwgamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sQ29udGV4dCB2YXIxKSB0aHJvd3MgamF2YS5zZWN1cml0eS5Qcml2aWxlZ2VkQWN0aW9uRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwcml2YXRlIEFjY2Vzc0NvbnRyb2xsZXIoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oy+jxi5D0DAAA9AwAALQAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L0FsbFBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3NlY3VyaXR5L0FsbFBlcm1pc3Npb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGZpbmFsIGNsYXNzIEFsbFBlcm1pc3Npb24gZXh0ZW5kcyBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gew0KCXB1YmxpYyBBbGxQZXJtaXNzaW9uKCkgeyBzdXBlcigoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCglwdWJsaWMgQWxsUGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyBzdXBlcigoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEFjdGlvbnMoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBpbXBsaWVzKGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb25Db2xsZWN0aW9uIG5ld1Blcm1pc3Npb25Db2xsZWN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MsGTayJ9AwAAfQMAAC8AAABPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9CYXNpY1Blcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3NlY3VyaXR5L0Jhc2ljUGVybWlzc2lvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFzaWNQZXJtaXNzaW9uIGV4dGVuZHMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBCYXNpY1Blcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHN1cGVyKChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KCXB1YmxpYyBCYXNpY1Blcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwpOyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRBY3Rpb25zKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gaW1wbGllcyhqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uQ29sbGVjdGlvbiBuZXdQZXJtaXNzaW9uQ29sbGVjdGlvbigpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJbdNzhvgIAAL4CAAAqAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvQ29kZVNvdXJjZS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvQ29kZVNvdXJjZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgY2xhc3MgQ29kZVNvdXJjZSBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgQ29kZVNvdXJjZShqYXZhLm5ldC5VUkwgdmFyMCwgamF2YS5zZWN1cml0eS5jZXJ0LkNlcnRpZmljYXRlW10gdmFyMSkgeyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLm5ldC5VUkwgZ2V0TG9jYXRpb24oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gaW1wbGllcyhqYXZhLnNlY3VyaXR5LkNvZGVTb3VyY2UgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIARswiGAMAABgDAAAqAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUGVybWlzc2lvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvUGVybWlzc2lvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGVybWlzc2lvbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgUGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLlN0cmluZyBnZXRBY3Rpb25zKCk7DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgZ2V0TmFtZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpbXBsaWVzKGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiB2YXIwKTsNCglwdWJsaWMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uQ29sbGVjdGlvbiBuZXdQZXJtaXNzaW9uQ29sbGVjdGlvbigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujI3fAQwwgIAAMICAAA0AAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUGVybWlzc2lvbkNvbGxlY3Rpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3NlY3VyaXR5L1Blcm1pc3Npb25Db2xsZWN0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5zZWN1cml0eTsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQZXJtaXNzaW9uQ29sbGVjdGlvbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgUGVybWlzc2lvbkNvbGxlY3Rpb24oKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGQoamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLnV0aWwuRW51bWVyYXRpb24gZWxlbWVudHMoKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpbXBsaWVzKGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiB2YXIwKTsNCglwdWJsaWMgYm9vbGVhbiBpc1JlYWRPbmx5KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgdm9pZCBzZXRSZWFkT25seSgpIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MiL1cbdSAgAAUgIAACsAAABPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9QZXJtaXNzaW9ucy5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvUGVybWlzc2lvbnMuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGZpbmFsIGNsYXNzIFBlcm1pc3Npb25zIGV4dGVuZHMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uQ29sbGVjdGlvbiBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgUGVybWlzc2lvbnMoKSB7IH0NCglwdWJsaWMgdm9pZCBhZGQoamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gZWxlbWVudHMoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gaW1wbGllcyhqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJlPWbCRwIAAEcCAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUG9saWN5LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9Qb2xpY3kuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGFic3RyYWN0IGNsYXNzIFBvbGljeSB7DQoJcHVibGljIFBvbGljeSgpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5zZWN1cml0eS5Qb2xpY3kgZ2V0UG9saWN5KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRQb2xpY3koamF2YS5zZWN1cml0eS5Qb2xpY3kgdmFyMCkgeyB9DQoJcHVibGljIGFic3RyYWN0IGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbkNvbGxlY3Rpb24gZ2V0UGVybWlzc2lvbnMoamF2YS5zZWN1cml0eS5Db2RlU291cmNlIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlZnJlc2goKTsNCn0NCg0KUEsDBAoAAAAAADpDujJD59Pe7QEAAO0BAAApAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJpbmNpcGFsLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9QcmluY2lwYWwuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBQcmluY2lwYWwgew0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKTsNCglwdWJsaWMgYWJzdHJhY3QgaW50IGhhc2hDb2RlKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKTsNCn0NCg0KUEsDBAoAAAAAADpDujK+PhASbQEAAG0BAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIFByaXZpbGVnZWRBY3Rpb24gew0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IHJ1bigpOw0KfQ0KDQpQSwMECgAAAAAAOkO6MkvJNGq0AgAAtAIAADkAAABPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5zZWN1cml0eTsNCnB1YmxpYyBjbGFzcyBQcml2aWxlZ2VkQWN0aW9uRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLkV4Y2VwdGlvbiB7DQoJcHVibGljIFByaXZpbGVnZWRBY3Rpb25FeGNlcHRpb24oamF2YS5sYW5nLkV4Y2VwdGlvbiB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLkV4Y2VwdGlvbiBnZXRFeGNlcHRpb24oKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgcHJpbnRTdGFja1RyYWNlKCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRTdGFja1RyYWNlKGphdmEuaW8uUHJpbnRTdHJlYW0gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgcHJpbnRTdGFja1RyYWNlKGphdmEuaW8uUHJpbnRXcml0ZXIgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyb/W4L5oBAACaAQAAOQAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBQcml2aWxlZ2VkRXhjZXB0aW9uQWN0aW9uIHsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBydW4oKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjsNCn0NCg0KUEsDBAoAAAAAADpDujLRkvRjuQIAALkCAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJvdGVjdGlvbkRvbWFpbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvUHJvdGVjdGlvbkRvbWFpbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgY2xhc3MgUHJvdGVjdGlvbkRvbWFpbiB7DQoJcHVibGljIFByb3RlY3Rpb25Eb21haW4oamF2YS5zZWN1cml0eS5Db2RlU291cmNlIHZhcjAsIGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbkNvbGxlY3Rpb24gdmFyMSkgeyB9DQoJcHVibGljIGZpbmFsIGphdmEuc2VjdXJpdHkuQ29kZVNvdXJjZSBnZXRDb2RlU291cmNlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb25Db2xsZWN0aW9uIGdldFBlcm1pc3Npb25zKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIGltcGxpZXMoamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyUCED0D8CAAA/AgAAKAAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1NlY3VyaXR5LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS9zZWN1cml0eS9TZWN1cml0eS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHk7DQpwdWJsaWMgZmluYWwgY2xhc3MgU2VjdXJpdHkgew0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyBnZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgfQ0KCXByaXZhdGUgU2VjdXJpdHkoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oyAAJb1l0CAABdAgAAMgAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1NlY3VyaXR5UGVybWlzc2lvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvU2VjdXJpdHlQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS5zZWN1cml0eTsNCnB1YmxpYyBmaW5hbCBjbGFzcyBTZWN1cml0eVBlcm1pc3Npb24gZXh0ZW5kcyBqYXZhLnNlY3VyaXR5LkJhc2ljUGVybWlzc2lvbiB7DQoJcHVibGljIFNlY3VyaXR5UGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KCXB1YmxpYyBTZWN1cml0eVBlcm1pc3Npb24oamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgc3VwZXIoKGphdmEubGFuZy5TdHJpbmcpIG51bGwsIChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Mon9tqSpAwAAqQMAADQAAABPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9VbnJlc29sdmVkUGVybWlzc2lvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvVW5yZXNvbHZlZFBlcm1pc3Npb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnNlY3VyaXR5Ow0KcHVibGljIGZpbmFsIGNsYXNzIFVucmVzb2x2ZWRQZXJtaXNzaW9uIGV4dGVuZHMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uIGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBVbnJlc29sdmVkUGVybWlzc2lvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyLCBqYXZhLnNlY3VyaXR5LmNlcnQuQ2VydGlmaWNhdGVbXSB2YXIzKSB7IHN1cGVyKChqYXZhLmxhbmcuU3RyaW5nKSBudWxsKTsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gaW1wbGllcyhqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb24gdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5zZWN1cml0eS5QZXJtaXNzaW9uQ29sbGVjdGlvbiBuZXdQZXJtaXNzaW9uQ29sbGVjdGlvbigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRBY3Rpb25zKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAIAAAAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L2NlcnQvUEsDBAoAAAAAADpDujISui08kgEAAJIBAAAwAAAAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvY2VydC9DZXJ0aWZpY2F0ZS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvc2VjdXJpdHkvY2VydC9DZXJ0aWZpY2F0ZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEuc2VjdXJpdHkuY2VydDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBDZXJ0aWZpY2F0ZSBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwcm90ZWN0ZWQgQ2VydGlmaWNhdGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujIAAAAAAAAAAAAAAAAXAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9QSwMECgAAAAAAOkO6Mvc+MNGyBAAAsgQAAC4AAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0Fic3RyYWN0Q29sbGVjdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9BYnN0cmFjdENvbGxlY3Rpb24uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDb2xsZWN0aW9uIGltcGxlbWVudHMgamF2YS51dGlsLkNvbGxlY3Rpb24gew0KCXByb3RlY3RlZCBBYnN0cmFjdENvbGxlY3Rpb24oKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBhZGQoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGFkZEFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIGNsZWFyKCkgeyB9DQoJcHVibGljIGJvb2xlYW4gY29udGFpbnMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGNvbnRhaW5zQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5JdGVyYXRvciBpdGVyYXRvcigpOw0KCXB1YmxpYyBib29sZWFuIHJlbW92ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gcmV0YWluQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGFic3RyYWN0IGludCBzaXplKCk7DQoJcHVibGljIGphdmEubGFuZy5PYmplY3RbXSB0b0FycmF5KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W10gdG9BcnJheShqYXZhLmxhbmcuT2JqZWN0W10gdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MsyIPBFcBQAAXAUAACgAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0Fic3RyYWN0TGlzdC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9BYnN0cmFjdExpc3QuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMaXN0IGV4dGVuZHMgamF2YS51dGlsLkFic3RyYWN0Q29sbGVjdGlvbiBpbXBsZW1lbnRzIGphdmEudXRpbC5MaXN0IHsNCglwcm90ZWN0ZWQgQWJzdHJhY3RMaXN0KCkgeyB9DQoJcHVibGljIHZvaWQgYWRkKGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGFkZChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gYWRkQWxsKGludCB2YXIwLCBqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIGNsZWFyKCkgeyB9DQoJcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBnZXQoaW50IHZhcjApOw0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBpbmRleE9mKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgaXRlcmF0b3IoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBsYXN0SW5kZXhPZihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS51dGlsLkxpc3RJdGVyYXRvciBsaXN0SXRlcmF0b3IoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEudXRpbC5MaXN0SXRlcmF0b3IgbGlzdEl0ZXJhdG9yKGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgcmVtb3ZlKGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHJvdGVjdGVkIHZvaWQgcmVtb3ZlUmFuZ2UoaW50IHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBzZXQoaW50IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuTGlzdCBzdWJMaXN0KGludCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBpbnQgbW9kQ291bnQ7DQp9DQoNClBLAwQKAAAAAAA6Q7oyam5OZaYEAACmBAAAJwAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQWJzdHJhY3RNYXAuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvQWJzdHJhY3RNYXAuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwIHsNCglwcm90ZWN0ZWQgQWJzdHJhY3RNYXAoKSB7IH0NCglwdWJsaWMgdm9pZCBjbGVhcigpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGNvbnRhaW5zS2V5KGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBjb250YWluc1ZhbHVlKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLlNldCBlbnRyeVNldCgpOw0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgZ2V0KGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEudXRpbC5TZXQga2V5U2V0KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IHB1dChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIHB1dEFsbChqYXZhLnV0aWwuTWFwIHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IHJlbW92ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IHNpemUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEudXRpbC5Db2xsZWN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJ6nzWETwMAAE8DAAAyAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9BYnN0cmFjdFNlcXVlbnRpYWxMaXN0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0Fic3RyYWN0U2VxdWVudGlhbExpc3QuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTZXF1ZW50aWFsTGlzdCBleHRlbmRzIGphdmEudXRpbC5BYnN0cmFjdExpc3Qgew0KCXByb3RlY3RlZCBBYnN0cmFjdFNlcXVlbnRpYWxMaXN0KCkgeyB9DQoJcHVibGljIHZvaWQgYWRkKGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgfQ0KCXB1YmxpYyBib29sZWFuIGFkZEFsbChpbnQgdmFyMCwgamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBnZXQoaW50IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS51dGlsLkl0ZXJhdG9yIGl0ZXJhdG9yKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLnV0aWwuTGlzdEl0ZXJhdG9yIGxpc3RJdGVyYXRvcihpbnQgdmFyMCk7DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgcmVtb3ZlKGludCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3Qgc2V0KGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCn0NCg0KUEsDBAoAAAAAADpDujK5WHwEOAIAADgCAAAnAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9BYnN0cmFjdFNldC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9BYnN0cmFjdFNldC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNldCBleHRlbmRzIGphdmEudXRpbC5BYnN0cmFjdENvbGxlY3Rpb24gaW1wbGVtZW50cyBqYXZhLnV0aWwuU2V0IHsNCglwcm90ZWN0ZWQgQWJzdHJhY3RTZXQoKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyJ2oLTRkGAAAZBgAAJQAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQXJyYXlMaXN0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0FycmF5TGlzdC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBBcnJheUxpc3QgZXh0ZW5kcyBqYXZhLnV0aWwuQWJzdHJhY3RMaXN0IGltcGxlbWVudHMgamF2YS51dGlsLkxpc3QsIGphdmEubGFuZy5DbG9uZWFibGUsIGphdmEuaW8uU2VyaWFsaXphYmxlIHsNCglwdWJsaWMgQXJyYXlMaXN0KCkgeyB9DQoJcHVibGljIEFycmF5TGlzdChpbnQgdmFyMCkgeyB9DQoJcHVibGljIEFycmF5TGlzdChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBhZGQoaW50IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyB9DQoJcHVibGljIGJvb2xlYW4gYWRkKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBhZGRBbGwoaW50IHZhcjAsIGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjEpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gYWRkQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgY2xlYXIoKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBjbG9uZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBjb250YWlucyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldChpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaW5kZXhPZihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgaW50IGxhc3RJbmRleE9mKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IHJlbW92ZShpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCB2b2lkIHJlbW92ZVJhbmdlKGludCB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3Qgc2V0KGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IHNpemUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3RbXSB0b0FycmF5KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W10gdG9BcnJheShqYXZhLmxhbmcuT2JqZWN0W10gdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIHRyaW1Ub1NpemUoKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKM6WooWBAAAFgQAAAiAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9BcnJheXMuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvQXJyYXlzLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGNsYXNzIEFycmF5cyB7DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTGlzdCBhc0xpc3QoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGludCBiaW5hcnlTZWFyY2goYnl0ZVtdIHZhcjAsIGJ5dGUgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChjaGFyW10gdmFyMCwgY2hhciB2YXIxKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgYmluYXJ5U2VhcmNoKGRvdWJsZVtdIHZhcjAsIGRvdWJsZSB2YXIxKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgYmluYXJ5U2VhcmNoKGZsb2F0W10gdmFyMCwgZmxvYXQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChpbnRbXSB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChsb25nW10gdmFyMCwgbG9uZyB2YXIxKSB7IHJldHVybiAwOyB9DQoJcHVibGljIHN0YXRpYyBpbnQgYmluYXJ5U2VhcmNoKGphdmEubGFuZy5PYmplY3RbXSB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIGludCBiaW5hcnlTZWFyY2goamF2YS5sYW5nLk9iamVjdFtdIHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSwgamF2YS51dGlsLkNvbXBhcmF0b3IgdmFyMikgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChzaG9ydFtdIHZhcjAsIHNob3J0IHZhcjEpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgZmlsbChieXRlW10gdmFyMCwgYnl0ZSB2YXIxKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgZmlsbChieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyLCBieXRlIHZhcjMpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKHNob3J0W10gdmFyMCwgc2hvcnQgdmFyMSkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoc2hvcnRbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIHNob3J0IHZhcjMpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGNoYXJbXSB2YXIwLCBjaGFyIHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGNoYXIgdmFyMykgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoaW50W10gdmFyMCwgaW50IHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGludFtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGxvbmdbXSB2YXIwLCBsb25nIHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGxvbmdbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGxvbmcgdmFyMykgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoZmxvYXRbXSB2YXIwLCBmbG9hdCB2YXIxKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgZmlsbChmbG9hdFtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgZmxvYXQgdmFyMykgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoZG91YmxlW10gdmFyMCwgZG91YmxlIHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGRvdWJsZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgZG91YmxlIHZhcjMpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGJvb2xlYW5bXSB2YXIwLCBib29sZWFuIHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWxsKGJvb2xlYW5bXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGJvb2xlYW4gdmFyMykgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoamF2YS5sYW5nLk9iamVjdFtdIHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoamF2YS5sYW5nLk9iamVjdFtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgamF2YS5sYW5nLk9iamVjdCB2YXIzKSB7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKGJ5dGVbXSB2YXIwLCBieXRlW10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKHNob3J0W10gdmFyMCwgc2hvcnRbXSB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlcXVhbHMoY2hhcltdIHZhcjAsIGNoYXJbXSB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlcXVhbHMoaW50W10gdmFyMCwgaW50W10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKGxvbmdbXSB2YXIwLCBsb25nW10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKGZsb2F0W10gdmFyMCwgZmxvYXRbXSB2YXIxKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlcXVhbHMoZG91YmxlW10gdmFyMCwgZG91YmxlW10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKGJvb2xlYW5bXSB2YXIwLCBib29sZWFuW10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3RbXSB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0W10gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc29ydChieXRlW10gdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoY2hhcltdIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGNoYXJbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGRvdWJsZVtdIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGRvdWJsZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoZmxvYXRbXSB2YXIwKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc29ydChmbG9hdFtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoaW50W10gdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoaW50W10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc29ydChsb25nW10gdmFyMCkgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQobG9uZ1tdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGphdmEubGFuZy5PYmplY3RbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGphdmEubGFuZy5PYmplY3RbXSB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGphdmEudXRpbC5Db21wYXJhdG9yIHZhcjMpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGphdmEubGFuZy5PYmplY3RbXSB2YXIwLCBqYXZhLnV0aWwuQ29tcGFyYXRvciB2YXIxKSB7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgc29ydChzaG9ydFtdIHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KHNob3J0W10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwcml2YXRlIEFycmF5cygpIHsgfSAvKiBnZW5lcmF0ZWQgY29uc3RydWN0b3IgdG8gcHJldmVudCBjb21waWxlciBhZGRpbmcgZGVmYXVsdCBwdWJsaWMgY29uc3RydWN0b3IgKi8NCn0NCg0KUEsDBAoAAAAAADpDujIrcICWtQ8AALUPAAAkAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9DYWxlbmRhci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9DYWxlbmRhci5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBDYWxlbmRhciBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZhLmxhbmcuQ2xvbmVhYmxlIHsNCglwcm90ZWN0ZWQgQ2FsZW5kYXIoKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGQoaW50IHZhcjAsIGludCB2YXIxKTsNCglwdWJsaWMgYm9vbGVhbiBhZnRlcihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gYmVmb3JlKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBjbGVhcigpIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIGNsZWFyKGludCB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBjbG9uZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgdm9pZCBjb21wbGV0ZSgpIHsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGNvbXB1dGVGaWVsZHMoKTsNCglwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjb21wdXRlVGltZSgpOw0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGZpbmFsIGludCBnZXQoaW50IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkNhbGVuZGFyIGdldEluc3RhbmNlKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkNhbGVuZGFyIGdldEluc3RhbmNlKGphdmEudXRpbC5UaW1lWm9uZSB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLnV0aWwuRGF0ZSBnZXRUaW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBsb25nIGdldFRpbWVJbk1pbGxpcygpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIGphdmEudXRpbC5UaW1lWm9uZSBnZXRUaW1lWm9uZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCBmaW5hbCBpbnQgaW50ZXJuYWxHZXQoaW50IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBmaW5hbCBib29sZWFuIGlzU2V0KGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIHJvbGwoaW50IHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCByb2xsKGludCB2YXIwLCBib29sZWFuIHZhcjEpOw0KCXB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgdmFyMCwgaW50IHZhcjEpIHsgfQ0KCXB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0KSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0LCBpbnQgdmFyNSkgeyB9DQoJcHVibGljIHZvaWQgc2V0Rmlyc3REYXlPZldlZWsoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGludCB2YXIwKSB7IH0NCglwdWJsaWMgZmluYWwgdm9pZCBzZXRUaW1lKGphdmEudXRpbC5EYXRlIHZhcjApIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHNldFRpbWVJbk1pbGxpcyhsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHNldFRpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZSB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgYm9vbGVhbiBhcmVGaWVsZHNTZXQ7DQoJcHJvdGVjdGVkIGludFtdIGZpZWxkczsNCglwcm90ZWN0ZWQgYm9vbGVhbltdIGlzU2V0Ow0KCXByb3RlY3RlZCBib29sZWFuIGlzVGltZVNldDsNCglwcm90ZWN0ZWQgbG9uZyB0aW1lOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpBTlVBUlkgPSAwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZFQlJVQVJZID0gMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNQVJDSCA9IDI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVBSSUwgPSAzOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BWSA9IDQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVORSA9IDU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVMWSA9IDY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVVHVVNUID0gNzsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRVBURU1CRVIgPSA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE9DVE9CRVIgPSA5Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PVkVNQkVSID0gMTA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVDRU1CRVIgPSAxMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBVTkRFQ0lNQkVSID0gMTI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1VOREFZID0gMTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05EQVkgPSAyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRVNEQVkgPSAzOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRE5FU0RBWSA9IDQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVUlNEQVkgPSA1Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSSURBWSA9IDY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0FUVVJEQVkgPSA3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSA9IDA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUiA9IDE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEggPSAyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfWUVBUiA9IDM7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USCA9IDQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSA9IDU7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX01PTlRIID0gNTsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUiA9IDY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUsgPSA3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0lOX01PTlRIID0gODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTV9QTSA9IDk7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUiA9IDEwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZID0gMTE7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFID0gMTI7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EID0gMTM7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlMTElTRUNPTkQgPSAxNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBaT05FX09GRlNFVCA9IDE1Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERTVF9PRkZTRVQgPSAxNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBGSUVMRF9DT1VOVCA9IDE3Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNID0gMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBQTSA9IDE7DQp9DQoNClBLAwQKAAAAAAA6Q7oyUM4vrj4EAAA+BAAAJgAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQ29sbGVjdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9Db2xsZWN0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBDb2xsZWN0aW9uIHsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBhZGQoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBhZGRBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgY2xlYXIoKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBjb250YWlucyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc0VtcHR5KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5JdGVyYXRvciBpdGVyYXRvcigpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHJlbW92ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHJlbW92ZUFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiByZXRhaW5BbGwoamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGludCBzaXplKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3RbXSB0b0FycmF5KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3RbXSB0b0FycmF5KGphdmEubGFuZy5PYmplY3RbXSB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujJ7UoeC9wwAAPcMAAAnAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9Db2xsZWN0aW9ucy5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9Db2xsZWN0aW9ucy5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBDb2xsZWN0aW9ucyB7DQoJcHVibGljIHN0YXRpYyBpbnQgYmluYXJ5U2VhcmNoKGphdmEudXRpbC5MaXN0IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChqYXZhLnV0aWwuTGlzdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEsIGphdmEudXRpbC5Db21wYXJhdG9yIHZhcjIpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgc3RhdGljIHZvaWQgY29weShqYXZhLnV0aWwuTGlzdCB2YXIwLCBqYXZhLnV0aWwuTGlzdCB2YXIxKSB7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiBlbnVtZXJhdGlvbihqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyB2b2lkIGZpbGwoamF2YS51dGlsLkxpc3QgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgbWF4KGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgbWF4KGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjAsIGphdmEudXRpbC5Db21wYXJhdG9yIHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgbWluKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgbWluKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjAsIGphdmEudXRpbC5Db21wYXJhdG9yIHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5MaXN0IG5Db3BpZXMoaW50IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCByZXZlcnNlKGphdmEudXRpbC5MaXN0IHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkNvbXBhcmF0b3IgcmV2ZXJzZU9yZGVyKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzaHVmZmxlKGphdmEudXRpbC5MaXN0IHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzaHVmZmxlKGphdmEudXRpbC5MaXN0IHZhcjAsIGphdmEudXRpbC5SYW5kb20gdmFyMSkgeyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuU2V0IHNpbmdsZXRvbihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5MaXN0IHNpbmdsZXRvbkxpc3QoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTWFwIHNpbmdsZXRvbk1hcChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGphdmEudXRpbC5MaXN0IHZhcjApIHsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KGphdmEudXRpbC5MaXN0IHZhcjAsIGphdmEudXRpbC5Db21wYXJhdG9yIHZhcjEpIHsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkNvbGxlY3Rpb24gc3luY2hyb25pemVkQ29sbGVjdGlvbihqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTGlzdCBzeW5jaHJvbml6ZWRMaXN0KGphdmEudXRpbC5MaXN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5NYXAgc3luY2hyb25pemVkTWFwKGphdmEudXRpbC5NYXAgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLlNldCBzeW5jaHJvbml6ZWRTZXQoamF2YS51dGlsLlNldCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuU29ydGVkTWFwIHN5bmNocm9uaXplZFNvcnRlZE1hcChqYXZhLnV0aWwuU29ydGVkTWFwIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5Tb3J0ZWRTZXQgc3luY2hyb25pemVkU29ydGVkU2V0KGphdmEudXRpbC5Tb3J0ZWRTZXQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkNvbGxlY3Rpb24gdW5tb2RpZmlhYmxlQ29sbGVjdGlvbihqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTGlzdCB1bm1vZGlmaWFibGVMaXN0KGphdmEudXRpbC5MaXN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5NYXAgdW5tb2RpZmlhYmxlTWFwKGphdmEudXRpbC5NYXAgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLlNldCB1bm1vZGlmaWFibGVTZXQoamF2YS51dGlsLlNldCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuU29ydGVkTWFwIHVubW9kaWZpYWJsZVNvcnRlZE1hcChqYXZhLnV0aWwuU29ydGVkTWFwIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5Tb3J0ZWRTZXQgdW5tb2RpZmlhYmxlU29ydGVkU2V0KGphdmEudXRpbC5Tb3J0ZWRTZXQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxpc3QgRU1QVFlfTElTVDsgc3RhdGljIHsgRU1QVFlfTElTVCA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5TZXQgRU1QVFlfU0VUOyBzdGF0aWMgeyBFTVBUWV9TRVQgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTWFwIEVNUFRZX01BUDsgc3RhdGljIHsgRU1QVFlfTUFQID0gbnVsbDsgfQ0KCXByaXZhdGUgQ29sbGVjdGlvbnMoKSB7IH0gLyogZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29tcGlsZXIgYWRkaW5nIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yICovDQp9DQoNClBLAwQKAAAAAAA6Q7oyRUqBM7UBAAC1AQAAJgAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQ29tcGFyYXRvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9Db21wYXJhdG9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBDb21wYXJhdG9yIHsNCglwdWJsaWMgYWJzdHJhY3QgaW50IGNvbXBhcmUoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KfQ0KDQpQSwMECgAAAAAAOkO6MnkpImbiAQAA4gEAADsAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0NvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKMLskObgMAAG4DAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9EYXRlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0RhdGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgY2xhc3MgRGF0ZSBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLmxhbmcuQ29tcGFyYWJsZSB7DQoJcHVibGljIERhdGUoKSB7IH0NCglwdWJsaWMgRGF0ZShsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyBib29sZWFuIGFmdGVyKGphdmEudXRpbC5EYXRlIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gYmVmb3JlKGphdmEudXRpbC5EYXRlIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBjb21wYXJlVG8oamF2YS51dGlsLkRhdGUgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGxvbmcgZ2V0VGltZSgpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgdm9pZCBzZXRUaW1lKGxvbmcgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyBBS5JsMCAADDAgAAJgAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvRGljdGlvbmFyeS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9EaWN0aW9uYXJ5LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIERpY3Rpb25hcnkgew0KCXB1YmxpYyBEaWN0aW9uYXJ5KCkgeyB9DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5FbnVtZXJhdGlvbiBlbGVtZW50cygpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGlzRW1wdHkoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkVudW1lcmF0aW9uIGtleXMoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBwdXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IHJlbW92ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgc2l6ZSgpOw0KfQ0KDQpQSwMECgAAAAAAOkO6MruY4BWQAQAAkAEAACcAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0VudW1lcmF0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0VudW1lcmF0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBFbnVtZXJhdGlvbiB7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgbmV4dEVsZW1lbnQoKTsNCn0NCg0KUEsDBAoAAAAAADpDujKoOCQ8NQEAADUBAAApAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9FdmVudExpc3RlbmVyLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0V2ZW50TGlzdGVuZXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgew0KfQ0KDQpQSwMECgAAAAAAOkO6MmmATBMGAgAABgIAACcAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0V2ZW50T2JqZWN0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0V2ZW50T2JqZWN0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGNsYXNzIEV2ZW50T2JqZWN0IGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUgew0KCXB1YmxpYyBFdmVudE9iamVjdChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldFNvdXJjZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCBzb3VyY2U7DQp9DQoNClBLAwQKAAAAAAA6Q7oyVALA8boEAAC6BAAALQAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvR3JlZ29yaWFuQ2FsZW5kYXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvR3JlZ29yaWFuQ2FsZW5kYXIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgY2xhc3MgR3JlZ29yaWFuQ2FsZW5kYXIgZXh0ZW5kcyBqYXZhLnV0aWwuQ2FsZW5kYXIgew0KCXB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcigpIHsgfQ0KCXB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihpbnQgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0KSB7IH0NCglwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0LCBpbnQgdmFyNSkgeyB9DQoJcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGphdmEudXRpbC5UaW1lWm9uZSB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBhZGQoaW50IHZhcjAsIGludCB2YXIxKSB7IH0NCglwcm90ZWN0ZWQgdm9pZCBjb21wdXRlRmllbGRzKCkgeyB9DQoJcHJvdGVjdGVkIHZvaWQgY29tcHV0ZVRpbWUoKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLnV0aWwuRGF0ZSBnZXRHcmVnb3JpYW5DaGFuZ2UoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0xlYXBZZWFyKGludCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIHJvbGwoaW50IHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgdm9pZCByb2xsKGludCB2YXIwLCBib29sZWFuIHZhcjEpIHsgfQ0KCXB1YmxpYyB2b2lkIHNldEdyZWdvcmlhbkNoYW5nZShqYXZhLnV0aWwuRGF0ZSB2YXIwKSB7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBCQyA9IDA7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQUQgPSAxOw0KfQ0KDQpQSwMECgAAAAAAOkO6MiRSELpiBgAAYgYAACUAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0hhc2h0YWJsZS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9IYXNodGFibGUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgY2xhc3MgSGFzaHRhYmxlIGV4dGVuZHMgamF2YS51dGlsLkRpY3Rpb25hcnkgaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIEhhc2h0YWJsZSgpIHsgfQ0KCXB1YmxpYyBIYXNodGFibGUoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBIYXNodGFibGUoaW50IHZhcjAsIGZsb2F0IHZhcjEpIHsgfQ0KCXB1YmxpYyBIYXNodGFibGUoamF2YS51dGlsLk1hcCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBjbGVhcigpIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGNsb25lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBjb250YWluc0tleShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gY29udGFpbnNWYWx1ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiBlbGVtZW50cygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS51dGlsLlNldCBlbnRyeVNldCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBib29sZWFuIGlzRW1wdHkoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24ga2V5cygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS51dGlsLlNldCBrZXlTZXQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgcHV0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHZvaWQgcHV0QWxsKGphdmEudXRpbC5NYXAgdmFyMCkgeyB9DQoJcHJvdGVjdGVkIHZvaWQgcmVoYXNoKCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgcmVtb3ZlKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgc2l6ZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS51dGlsLkNvbGxlY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MqKhty+cAQAAnAEAACQAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0l0ZXJhdG9yLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0l0ZXJhdG9yLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBJdGVyYXRvciB7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaGFzTmV4dCgpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IG5leHQoKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmUoKTsNCn0NCg0KUEsDBAoAAAAAADpDujLwO7GNqwYAAKsGAAAgAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9MaXN0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0xpc3QuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIExpc3QgZXh0ZW5kcyBqYXZhLnV0aWwuQ29sbGVjdGlvbiB7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkKGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGFkZChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGFkZEFsbChpbnQgdmFyMCwgamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMSk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gYWRkQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGNsZWFyKCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gY29udGFpbnMoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBjb250YWluc0FsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBnZXQoaW50IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsNCglwdWJsaWMgYWJzdHJhY3QgaW50IGluZGV4T2YoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc0VtcHR5KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5JdGVyYXRvciBpdGVyYXRvcigpOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgbGFzdEluZGV4T2YoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkxpc3RJdGVyYXRvciBsaXN0SXRlcmF0b3IoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkxpc3RJdGVyYXRvciBsaXN0SXRlcmF0b3IoaW50IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IHJlbW92ZShpbnQgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gcmVtb3ZlKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gcmVtb3ZlQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHJldGFpbkFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCBzZXQoaW50IHZhcjAsIGphdmEubGFuZy5PYmplY3QgdmFyMSk7DQoJcHVibGljIGFic3RyYWN0IGludCBzaXplKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5MaXN0IHN1Ykxpc3QoaW50IHZhcjAsIGludCB2YXIxKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdFtdIHRvQXJyYXkoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdFtdIHRvQXJyYXkoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApOw0KfQ0KDQpQSwMECgAAAAAAOkO6MiUGyDXHAgAAxwIAACgAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL0xpc3RJdGVyYXRvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9MaXN0SXRlcmF0b3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIExpc3RJdGVyYXRvciBleHRlbmRzIGphdmEudXRpbC5JdGVyYXRvciB7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaGFzTmV4dCgpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGhhc1ByZXZpb3VzKCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgbmV4dCgpOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgbmV4dEluZGV4KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgcHJldmlvdXMoKTsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHByZXZpb3VzSW5kZXgoKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmUoKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXQoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujLj4zJ9SQIAAEkCAAAuAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9MaXN0UmVzb3VyY2VCdW5kbGUuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvTGlzdFJlc291cmNlQnVuZGxlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGNsYXNzIExpc3RSZXNvdXJjZUJ1bmRsZSBleHRlbmRzIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZSB7DQoJcHVibGljIExpc3RSZXNvdXJjZUJ1bmRsZSgpIHsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0W11bXSBnZXRDb250ZW50cygpOw0KCXB1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gZ2V0S2V5cygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgamF2YS5sYW5nLk9iamVjdCBoYW5kbGVHZXRPYmplY3QoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oy3PmR/xQKAAAUCgAAIgAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvTG9jYWxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL0xvY2FsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBmaW5hbCBjbGFzcyBMb2NhbGUgaW1wbGVtZW50cyBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIExvY2FsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyB9DQoJcHVibGljIExvY2FsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBjbG9uZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldENvdW50cnkoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIGdldERlZmF1bHQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0TGFuZ3VhZ2UoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0VmFyaWFudCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXREZWZhdWx0KGphdmEudXRpbC5Mb2NhbGUgdmFyMCkgeyB9DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIENBTkFEQTsgc3RhdGljIHsgQ0FOQURBID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSBDQU5BREFfRlJFTkNIOyBzdGF0aWMgeyBDQU5BREFfRlJFTkNIID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSBDSElOQTsgc3RhdGljIHsgQ0hJTkEgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIENISU5FU0U7IHN0YXRpYyB7IENISU5FU0UgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIEVOR0xJU0g7IHN0YXRpYyB7IEVOR0xJU0ggPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIEZSQU5DRTsgc3RhdGljIHsgRlJBTkNFID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSBGUkVOQ0g7IHN0YXRpYyB7IEZSRU5DSCA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgR0VSTUFOOyBzdGF0aWMgeyBHRVJNQU4gPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIEdFUk1BTlk7IHN0YXRpYyB7IEdFUk1BTlkgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIElUQUxJQU47IHN0YXRpYyB7IElUQUxJQU4gPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIElUQUxZOyBzdGF0aWMgeyBJVEFMWSA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgSkFQQU47IHN0YXRpYyB7IEpBUEFOID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSBKQVBBTkVTRTsgc3RhdGljIHsgSkFQQU5FU0UgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIEtPUkVBOyBzdGF0aWMgeyBLT1JFQSA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgS09SRUFOOyBzdGF0aWMgeyBLT1JFQU4gPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIFBSQzsgc3RhdGljIHsgUFJDID0gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSBTSU1QTElGSUVEX0NISU5FU0U7IHN0YXRpYyB7IFNJTVBMSUZJRURfQ0hJTkVTRSA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgVEFJV0FOOyBzdGF0aWMgeyBUQUlXQU4gPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIFRSQURJVElPTkFMX0NISU5FU0U7IHN0YXRpYyB7IFRSQURJVElPTkFMX0NISU5FU0UgPSBudWxsOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIFVLOyBzdGF0aWMgeyBVSyA9IG51bGw7IH0NCglwdWJsaWMgZmluYWwgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgVVM7IHN0YXRpYyB7IFVTID0gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Mpr5tyIdBQAAHQUAAB8AAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL01hcC5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9NYXAuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIE1hcCB7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgY2xlYXIoKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBjb250YWluc0tleShqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zVmFsdWUoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLlNldCBlbnRyeVNldCgpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGVxdWFscyhqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsNCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc0VtcHR5KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5TZXQga2V5U2V0KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgcHV0KGphdmEubGFuZy5PYmplY3QgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwdXRBbGwoamF2YS51dGlsLk1hcCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdCByZW1vdmUoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHNpemUoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkNvbGxlY3Rpb24gdmFsdWVzKCk7DQoJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBpbnRlcmZhY2UgRW50cnkgew0KCQlwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCgkJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3QgZ2V0S2V5KCk7DQoJCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGdldFZhbHVlKCk7DQoJCXB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsNCgkJcHVibGljIGFic3RyYWN0IGphdmEubGFuZy5PYmplY3Qgc2V0VmFsdWUoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCgl9DQp9DQoNClBLAwQKAAAAAAA6Q7oynBeHFToCAAA6AgAANAAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL01pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiB7DQoJcHVibGljIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSwgamF2YS5sYW5nLlN0cmluZyB2YXIyKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRDbGFzc05hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0S2V5KCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MveyB9S+AQAAvgEAADIAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL05vU3VjaEVsZW1lbnRFeGNlcHRpb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvTm9TdWNoRWxlbWVudEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIGV4dGVuZHMgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gew0KCXB1YmxpYyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujKGNQjhiwMAAIsDAAAmAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9Qcm9wZXJ0aWVzLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL1Byb3BlcnRpZXMuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgY2xhc3MgUHJvcGVydGllcyBleHRlbmRzIGphdmEudXRpbC5IYXNodGFibGUgew0KCXB1YmxpYyBQcm9wZXJ0aWVzKCkgeyB9DQoJcHVibGljIFByb3BlcnRpZXMoamF2YS51dGlsLlByb3BlcnRpZXMgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBsaXN0KGphdmEuaW8uUHJpbnRTdHJlYW0gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgbG9hZChqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gcHJvcGVydHlOYW1lcygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBzdG9yZShqYXZhLmlvLk91dHB1dFN0cmVhbSB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBqYXZhLnV0aWwuUHJvcGVydGllcyBkZWZhdWx0czsNCn0NCg0KUEsDBAoAAAAAADpDujJQnm3aJQMAACUDAAAuAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9Qcm9wZXJ0eVBlcm1pc3Npb24uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvUHJvcGVydHlQZXJtaXNzaW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGZpbmFsIGNsYXNzIFByb3BlcnR5UGVybWlzc2lvbiBleHRlbmRzIGphdmEuc2VjdXJpdHkuQmFzaWNQZXJtaXNzaW9uIHsNCglwdWJsaWMgUHJvcGVydHlQZXJtaXNzaW9uKGphdmEubGFuZy5TdHJpbmcgdmFyMCwgamF2YS5sYW5nLlN0cmluZyB2YXIxKSB7IHN1cGVyKChqYXZhLmxhbmcuU3RyaW5nKSBudWxsLCAoamF2YS5sYW5nLlN0cmluZykgbnVsbCk7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldEFjdGlvbnMoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBpbXBsaWVzKGphdmEuc2VjdXJpdHkuUGVybWlzc2lvbiB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLnNlY3VyaXR5LlBlcm1pc3Npb25Db2xsZWN0aW9uIG5ld1Blcm1pc3Npb25Db2xsZWN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MnVMsDBAAgAAQAIAADIAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL1Byb3BlcnR5UmVzb3VyY2VCdW5kbGUuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvUHJvcGVydHlSZXNvdXJjZUJ1bmRsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBQcm9wZXJ0eVJlc291cmNlQnVuZGxlIGV4dGVuZHMgamF2YS51dGlsLlJlc291cmNlQnVuZGxlIHsNCglwdWJsaWMgUHJvcGVydHlSZXNvdXJjZUJ1bmRsZShqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gZ2V0S2V5cygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBoYW5kbGVHZXRPYmplY3QoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oys7I2nh8DAAAfAwAAIgAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvUmFuZG9tLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL1JhbmRvbS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBjbGFzcyBSYW5kb20gaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIFJhbmRvbSgpIHsgfQ0KCXB1YmxpYyBSYW5kb20obG9uZyB2YXIwKSB7IH0NCglwcm90ZWN0ZWQgaW50IG5leHQoaW50IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBuZXh0Qm9vbGVhbigpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgbmV4dEJ5dGVzKGJ5dGVbXSB2YXIwKSB7IH0NCglwdWJsaWMgZG91YmxlIG5leHREb3VibGUoKSB7IHJldHVybiAwLjBkOyB9DQoJcHVibGljIGZsb2F0IG5leHRGbG9hdCgpIHsgcmV0dXJuIDAuMGY7IH0NCglwdWJsaWMgZG91YmxlIG5leHRHYXVzc2lhbigpIHsgcmV0dXJuIDAuMGQ7IH0NCglwdWJsaWMgaW50IG5leHRJbnQoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBuZXh0SW50KGludCB2YXIwKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGxvbmcgbmV4dExvbmcoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyB2b2lkIHNldFNlZWQobG9uZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJUUGWT1AUAANQFAAAqAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9SZXNvdXJjZUJ1bmRsZS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9SZXNvdXJjZUJ1bmRsZS5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBhYnN0cmFjdCBjbGFzcyBSZXNvdXJjZUJ1bmRsZSB7DQoJcHVibGljIFJlc291cmNlQnVuZGxlKCkgeyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgamF2YS51dGlsLlJlc291cmNlQnVuZGxlIGdldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEudXRpbC5Mb2NhbGUgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLlJlc291cmNlQnVuZGxlIGdldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nIHZhcjAsIGphdmEudXRpbC5Mb2NhbGUgdmFyMSwgamF2YS5sYW5nLkNsYXNzTG9hZGVyIHZhcjIpIHRocm93cyBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkVudW1lcmF0aW9uIGdldEtleXMoKTsNCglwdWJsaWMgamF2YS51dGlsLkxvY2FsZSBnZXRMb2NhbGUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGZpbmFsIGphdmEubGFuZy5PYmplY3QgZ2V0T2JqZWN0KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGdldFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZ1tdIGdldFN0cmluZ0FycmF5KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgdGhyb3dzIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXByb3RlY3RlZCBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGhhbmRsZUdldE9iamVjdChqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHRocm93cyBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOw0KCXByb3RlY3RlZCB2b2lkIHNldFBhcmVudChqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUgdmFyMCkgeyB9DQoJcHJvdGVjdGVkIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZSBwYXJlbnQ7DQp9DQoNClBLAwQKAAAAAAA6Q7oyKXKvLk0EAABNBAAAHwAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvU2V0LmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL1NldC5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgU2V0IGV4dGVuZHMgamF2YS51dGlsLkNvbGxlY3Rpb24gew0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGFkZChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGFkZEFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjbGVhcigpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gY29udGFpbnNBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGludCBoYXNoQ29kZSgpOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGlzRW1wdHkoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkl0ZXJhdG9yIGl0ZXJhdG9yKCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gcmVtb3ZlKGphdmEubGFuZy5PYmplY3QgdmFyMCk7DQoJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gcmVtb3ZlQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHJldGFpbkFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKTsNCglwdWJsaWMgYWJzdHJhY3QgaW50IHNpemUoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdFtdIHRvQXJyYXkoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLk9iamVjdFtdIHRvQXJyYXkoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApOw0KfQ0KDQpQSwMECgAAAAAAOkO6MtD89g58BgAAfAYAACoAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGNsYXNzIFNpbXBsZVRpbWVab25lIGV4dGVuZHMgamF2YS51dGlsLlRpbWVab25lIHsNCglwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHZhcjAsIGphdmEubGFuZy5TdHJpbmcgdmFyMSkgeyB9DQoJcHVibGljIFNpbXBsZVRpbWVab25lKGludCB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEsIGludCB2YXIyLCBpbnQgdmFyMywgaW50IHZhcjQsIGludCB2YXI1LCBpbnQgdmFyNiwgaW50IHZhcjcsIGludCB2YXI4LCBpbnQgdmFyOSkgeyB9DQoJcHVibGljIFNpbXBsZVRpbWVab25lKGludCB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEsIGludCB2YXIyLCBpbnQgdmFyMywgaW50IHZhcjQsIGludCB2YXI1LCBpbnQgdmFyNiwgaW50IHZhcjcsIGludCB2YXI4LCBpbnQgdmFyOSwgaW50IHZhcjEwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBjbG9uZSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGludCB2YXIzLCBpbnQgdmFyNCwgaW50IHZhcjUpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKGphdmEudXRpbC5EYXRlIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRFbmRSdWxlKGludCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGludCB2YXIzKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRFbmRSdWxlKGludCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGludCB2YXIzLCBib29sZWFuIHZhcjQpIHsgfQ0KCXB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIpIHsgfQ0KCXB1YmxpYyB2b2lkIHNldFN0YXJ0UnVsZShpbnQgdmFyMCwgaW50IHZhcjEsIGludCB2YXIyLCBpbnQgdmFyMykgeyB9DQoJcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCB2YXIwLCBpbnQgdmFyMSwgaW50IHZhcjIsIGludCB2YXIzLCBib29sZWFuIHZhcjQpIHsgfQ0KCXB1YmxpYyB2b2lkIHNldFN0YXJ0WWVhcihpbnQgdmFyMCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeyByZXR1cm4gZmFsc2U7IH0NCn0NCg0KUEsDBAoAAAAAADpDujLYwnupvQIAAL0CAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9Tb3J0ZWRNYXAuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvU29ydGVkTWFwLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBTb3J0ZWRNYXAgZXh0ZW5kcyBqYXZhLnV0aWwuTWFwIHsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkNvbXBhcmF0b3IgY29tcGFyYXRvcigpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGZpcnN0S2V5KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5Tb3J0ZWRNYXAgaGVhZE1hcChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGxhc3RLZXkoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLlNvcnRlZE1hcCBzdWJNYXAoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLnV0aWwuU29ydGVkTWFwIHRhaWxNYXAoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujJ+mwEbtwIAALcCAAAlAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9Tb3J0ZWRTZXQuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvU29ydGVkU2V0LmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBTb3J0ZWRTZXQgZXh0ZW5kcyBqYXZhLnV0aWwuU2V0IHsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLkNvbXBhcmF0b3IgY29tcGFyYXRvcigpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGZpcnN0KCk7DQoJcHVibGljIGFic3RyYWN0IGphdmEudXRpbC5Tb3J0ZWRTZXQgaGVhZFNldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IGxhc3QoKTsNCglwdWJsaWMgYWJzdHJhY3QgamF2YS51dGlsLlNvcnRlZFNldCBzdWJTZXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpOw0KCXB1YmxpYyBhYnN0cmFjdCBqYXZhLnV0aWwuU29ydGVkU2V0IHRhaWxTZXQoamF2YS5sYW5nLk9iamVjdCB2YXIwKTsNCn0NCg0KUEsDBAoAAAAAADpDujJ3f2x4cgMAAHIDAAArAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9TdHJpbmdUb2tlbml6ZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvU3RyaW5nVG9rZW5pemVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGNsYXNzIFN0cmluZ1Rva2VuaXplciBpbXBsZW1lbnRzIGphdmEudXRpbC5FbnVtZXJhdGlvbiB7DQoJcHVibGljIFN0cmluZ1Rva2VuaXplcihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEpIHsgfQ0KCXB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoamF2YS5sYW5nLlN0cmluZyB2YXIwLCBqYXZhLmxhbmcuU3RyaW5nIHZhcjEsIGJvb2xlYW4gdmFyMikgeyB9DQoJcHVibGljIGludCBjb3VudFRva2VucygpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGhhc01vcmVUb2tlbnMoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IG5leHRFbGVtZW50KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIG5leHRUb2tlbigpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBuZXh0VG9rZW4oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IHJldHVybiBudWxsOyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oyxZZFdJAEAACQBAAAJAAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvVGltZVpvbmUuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvVGltZVpvbmUuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGltZVpvbmUgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YS5sYW5nLkNsb25lYWJsZSB7DQoJcHVibGljIFRpbWVab25lKCkgeyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3QgY2xvbmUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBzdGF0aWMgamF2YS51dGlsLlRpbWVab25lIGdldERlZmF1bHQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0SUQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGFic3RyYWN0IGludCBnZXRPZmZzZXQoaW50IHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMiwgaW50IHZhcjMsIGludCB2YXI0LCBpbnQgdmFyNSk7DQoJcHVibGljIGFic3RyYWN0IGludCBnZXRSYXdPZmZzZXQoKTsNCglwdWJsaWMgc3RhdGljIGphdmEudXRpbC5UaW1lWm9uZSBnZXRUaW1lWm9uZShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShqYXZhLnV0aWwuRGF0ZSB2YXIwKTsNCglwdWJsaWMgc3RhdGljIHZvaWQgc2V0RGVmYXVsdChqYXZhLnV0aWwuVGltZVpvbmUgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0SUQoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRSYXdPZmZzZXQoaW50IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpOw0KfQ0KDQpQSwMECgAAAAAAOkO6MhZA9GrkCwAA5AsAACIAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL1ZlY3Rvci5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC9WZWN0b3IuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWw7DQpwdWJsaWMgY2xhc3MgVmVjdG9yIGV4dGVuZHMgamF2YS51dGlsLkFic3RyYWN0TGlzdCBpbXBsZW1lbnRzIGphdmEudXRpbC5MaXN0LCBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7DQoJcHVibGljIFZlY3RvcigpIHsgfQ0KCXB1YmxpYyBWZWN0b3IoaW50IHZhcjApIHsgfQ0KCXB1YmxpYyBWZWN0b3IoaW50IHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgVmVjdG9yKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGFkZChpbnQgdmFyMCwgamF2YS5sYW5nLk9iamVjdCB2YXIxKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBhZGQoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIGFkZEFsbChpbnQgdmFyMCwgamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMSkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBhZGRBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24gdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgdm9pZCBhZGRFbGVtZW50KGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyB9DQoJcHVibGljIGludCBjYXBhY2l0eSgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgdm9pZCBjbGVhcigpIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGNsb25lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChqYXZhLnV0aWwuQ29sbGVjdGlvbiB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIGNvcHlJbnRvKGphdmEubGFuZy5PYmplY3RbXSB2YXIwKSB7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBlbGVtZW50QXQoaW50IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uIGVsZW1lbnRzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyB2b2lkIGVuc3VyZUNhcGFjaXR5KGludCB2YXIwKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGZpcnN0RWxlbWVudCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBnZXQoaW50IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgaW5kZXhPZihqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGluZGV4T2YoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyB2b2lkIGluc2VydEVsZW1lbnRBdChqYXZhLmxhbmcuT2JqZWN0IHZhcjAsIGludCB2YXIxKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBsYXN0RWxlbWVudCgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGxhc3RJbmRleE9mKGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgbGFzdEluZGV4T2YoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IHJlbW92ZShpbnQgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBib29sZWFuIHJlbW92ZShqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIHZvaWQgcmVtb3ZlQWxsRWxlbWVudHMoKSB7IH0NCglwdWJsaWMgYm9vbGVhbiByZW1vdmVFbGVtZW50KGphdmEubGFuZy5PYmplY3QgdmFyMCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgdm9pZCByZW1vdmVFbGVtZW50QXQoaW50IHZhcjApIHsgfQ0KCXByb3RlY3RlZCB2b2lkIHJlbW92ZVJhbmdlKGludCB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIGJvb2xlYW4gcmV0YWluQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uIHZhcjApIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGphdmEubGFuZy5PYmplY3Qgc2V0KGludCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCBzZXRFbGVtZW50QXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBpbnQgdmFyMSkgeyB9DQoJcHVibGljIHZvaWQgc2V0U2l6ZShpbnQgdmFyMCkgeyB9DQoJcHVibGljIGludCBzaXplKCkgeyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuTGlzdCBzdWJMaXN0KGludCB2YXIwLCBpbnQgdmFyMSkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W10gdG9BcnJheSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdFtdIHRvQXJyYXkoamF2YS5sYW5nLk9iamVjdFtdIHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgdm9pZCB0cmltVG9TaXplKCkgeyB9DQoJcHJvdGVjdGVkIGludCBlbGVtZW50Q291bnQ7DQoJcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3RbXSBlbGVtZW50RGF0YTsNCglwcm90ZWN0ZWQgaW50IGNhcGFjaXR5SW5jcmVtZW50Ow0KfQ0KDQpQSwMECgAAAAAAOkO6Mi83c0TDAwAAwwMAACcAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL1dlYWtIYXNoTWFwLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL1dlYWtIYXNoTWFwLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsOw0KcHVibGljIGNsYXNzIFdlYWtIYXNoTWFwIGV4dGVuZHMgamF2YS51dGlsLkFic3RyYWN0TWFwIGltcGxlbWVudHMgamF2YS51dGlsLk1hcCB7DQoJcHVibGljIFdlYWtIYXNoTWFwKCkgeyB9DQoJcHVibGljIFdlYWtIYXNoTWFwKGludCB2YXIwKSB7IH0NCglwdWJsaWMgV2Vha0hhc2hNYXAoaW50IHZhcjAsIGZsb2F0IHZhcjEpIHsgfQ0KCXB1YmxpYyBXZWFrSGFzaE1hcChqYXZhLnV0aWwuTWFwIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIGNsZWFyKCkgeyB9DQoJcHVibGljIGJvb2xlYW4gY29udGFpbnNLZXkoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuU2V0IGVudHJ5U2V0KCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldChqYXZhLmxhbmcuT2JqZWN0IHZhcjApIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCBwdXQoamF2YS5sYW5nLk9iamVjdCB2YXIwLCBqYXZhLmxhbmcuT2JqZWN0IHZhcjEpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgamF2YS5sYW5nLk9iamVjdCByZW1vdmUoamF2YS5sYW5nLk9iamVjdCB2YXIwKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBzaXplKCkgeyByZXR1cm4gMDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MgAAAAAAAAAAAAAAABsAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9QSwMECgAAAAAAOkO6Msu+q0UcAgAAHAIAACUAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9DUkMzMi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC96aXAvQ1JDMzIuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWwuemlwOw0KcHVibGljIGNsYXNzIENSQzMyIGltcGxlbWVudHMgamF2YS51dGlsLnppcC5DaGVja3N1bSB7DQoJcHVibGljIENSQzMyKCkgeyB9DQoJcHVibGljIGxvbmcgZ2V0VmFsdWUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgeyB9DQoJcHVibGljIHZvaWQgdXBkYXRlKGludCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCB1cGRhdGUoYnl0ZVtdIHZhcjApIHsgfQ0KCXB1YmxpYyB2b2lkIHVwZGF0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJ+S/IN3wEAAN8BAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvQ2hlY2tzdW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvemlwL0NoZWNrc3VtLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsLnppcDsNCnB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgQ2hlY2tzdW0gew0KCXB1YmxpYyBhYnN0cmFjdCBsb25nIGdldFZhbHVlKCk7DQoJcHVibGljIGFic3RyYWN0IHZvaWQgcmVzZXQoKTsNCglwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1cGRhdGUoaW50IHZhcjApOw0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHVwZGF0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKTsNCn0NCg0KUEsDBAoAAAAAADpDujJC+xC2swEAALMBAAAzAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvRGF0YUZvcm1hdEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC96aXAvRGF0YUZvcm1hdEV4Y2VwdGlvbi5qYXZhLHYgMS40IDIwMDQvMTIvMjIgMjI6MDU6MjAgaGFyZ3JhdmUgRXhwICQNCiAqDQogKiAoQykgQ29weXJpZ2h0IDIwMDEgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLg0KICogQ29weXJpZ2h0IChjKSBPU0dpIEFsbGlhbmNlICgyMDAxLCAyMDA0KS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCiAqLw0KDQpwYWNrYWdlIGphdmEudXRpbC56aXA7DQpwdWJsaWMgY2xhc3MgRGF0YUZvcm1hdEV4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb24gew0KCXB1YmxpYyBEYXRhRm9ybWF0RXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIERhdGFGb3JtYXRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZyB2YXIwKSB7IH0NCn0NCg0KUEsDBAoAAAAAADpDujJe3xLtgAQAAIAEAAAoAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvSW5mbGF0ZXIuamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvemlwL0luZmxhdGVyLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsLnppcDsNCnB1YmxpYyBjbGFzcyBJbmZsYXRlciB7DQoJcHVibGljIHZvaWQgZW5kKCkgeyB9DQoJcHJvdGVjdGVkIHZvaWQgZmluYWxpemUoKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBmaW5pc2hlZCgpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcHVibGljIGludCBnZXRBZGxlcigpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFJlbWFpbmluZygpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGdldFRvdGFsSW4oKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGludCBnZXRUb3RhbE91dCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IGluZmxhdGUoYnl0ZVtdIHZhcjApIHRocm93cyBqYXZhLnV0aWwuemlwLkRhdGFGb3JtYXRFeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBpbnQgaW5mbGF0ZShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB0aHJvd3MgamF2YS51dGlsLnppcC5EYXRhRm9ybWF0RXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgSW5mbGF0ZXIoKSB7IH0NCglwdWJsaWMgSW5mbGF0ZXIoYm9vbGVhbiB2YXIwKSB7IH0NCglwdWJsaWMgYm9vbGVhbiBuZWVkc0RpY3Rpb25hcnkoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyBib29sZWFuIG5lZWRzSW5wdXQoKSB7IHJldHVybiBmYWxzZTsgfQ0KCXB1YmxpYyB2b2lkIHJlc2V0KCkgeyB9DQoJcHVibGljIHZvaWQgc2V0RGljdGlvbmFyeShieXRlW10gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0RGljdGlvbmFyeShieXRlW10gdmFyMCwgaW50IHZhcjEsIGludCB2YXIyKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRJbnB1dChieXRlW10gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0SW5wdXQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgeyB9DQp9DQoNClBLAwQKAAAAAAA6Q7oy+89Nk6AEAACgBAAAMwAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL0luZmxhdGVySW5wdXRTdHJlYW0uamF2YS8qDQogKiAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL3NyYy9qYXZhL3V0aWwvemlwL0luZmxhdGVySW5wdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWwuemlwOw0KcHVibGljIGNsYXNzIEluZmxhdGVySW5wdXRTdHJlYW0gZXh0ZW5kcyBqYXZhLmlvLkZpbHRlcklucHV0U3RyZWFtIHsNCglwdWJsaWMgSW5mbGF0ZXJJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIEluZmxhdGVySW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSB2YXIwLCBqYXZhLnV0aWwuemlwLkluZmxhdGVyIHZhcjEpIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwpOyB9DQoJcHVibGljIEluZmxhdGVySW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSB2YXIwLCBqYXZhLnV0aWwuemlwLkluZmxhdGVyIHZhcjEsIGludCB2YXIyKSB7IHN1cGVyKChqYXZhLmlvLklucHV0U3RyZWFtKSBudWxsKTsgfQ0KCXB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCB2b2lkIGZpbGwoKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwdWJsaWMgbG9uZyBza2lwKGxvbmcgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMGw7IH0NCglwdWJsaWMgaW50IGF2YWlsYWJsZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgdm9pZCBjbG9zZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXByb3RlY3RlZCBqYXZhLnV0aWwuemlwLkluZmxhdGVyIGluZjsNCglwcm90ZWN0ZWQgYnl0ZVtdIGJ1ZjsNCglwcm90ZWN0ZWQgaW50IGxlbjsNCn0NCg0KUEsDBAoAAAAAADpDujLfWJ3+ZQcAAGUHAAAsAAAAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvWmlwQ29uc3RhbnRzLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL3ppcC9aaXBDb25zdGFudHMuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWwuemlwOw0KYWJzdHJhY3QgaW50ZXJmYWNlIFppcENvbnN0YW50cyB7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBsb25nIExPQ1NJRyA9IDY3MzI0NzUybDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGxvbmcgRVhUU0lHID0gMTM0Njk1NzYwbDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGxvbmcgQ0VOU0lHID0gMzM2MzkyNDhsOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgbG9uZyBFTkRTSUcgPSAxMDEwMTAyNTZsOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ0hEUiA9IDMwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVYVEhEUiA9IDE2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENFTkhEUiA9IDQ2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVOREhEUiA9IDIyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ1ZFUiA9IDQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTE9DRkxHID0gNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBMT0NIT1cgPSA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ1RJTSA9IDEwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ0NSQyA9IDE0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ1NJWiA9IDE4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ0xFTiA9IDIyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ05BTSA9IDI2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExPQ0VYVCA9IDI4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVYVENSQyA9IDQ7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVhUU0laID0gODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBFWFRMRU4gPSAxMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5WRU0gPSA0Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENFTlZFUiA9IDY7DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0VORkxHID0gODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5IT1cgPSAxMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5USU0gPSAxMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5DUkMgPSAxNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5TSVogPSAyMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5MRU4gPSAyNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5OQU0gPSAyODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5FWFQgPSAzMDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5DT00gPSAzMjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5EU0sgPSAzNDsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5BVFQgPSAzNjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5BVFggPSAzODsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBDRU5PRkYgPSA0MjsNCglwdWJsaWMgZmluYWwgc3RhdGljIGludCBFTkRTVUIgPSA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVORFRPVCA9IDEwOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVORFNJWiA9IDEyOw0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVORE9GRiA9IDE2Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVORENPTSA9IDIwOw0KfQ0KDQpQSwMECgAAAAAAOkO6MsmuwvhTBQAAUwUAACgAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9aaXBFbnRyeS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC96aXAvWmlwRW50cnkuamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWwuemlwOw0KcHVibGljIGNsYXNzIFppcEVudHJ5IGltcGxlbWVudHMgamF2YS51dGlsLnppcC5aaXBDb25zdGFudHMsIGphdmEubGFuZy5DbG9uZWFibGUgew0KCXB1YmxpYyBaaXBFbnRyeShqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldENvbW1lbnQoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGxvbmcgZ2V0Q29tcHJlc3NlZFNpemUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBsb25nIGdldENyYygpIHsgcmV0dXJuIDBsOyB9DQoJcHVibGljIGJ5dGVbXSBnZXRFeHRyYSgpIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IGdldE1ldGhvZCgpIHsgcmV0dXJuIDA7IH0NCglwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBsb25nIGdldFNpemUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBsb25nIGdldFRpbWUoKSB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBib29sZWFuIGlzRGlyZWN0b3J5KCkgeyByZXR1cm4gZmFsc2U7IH0NCglwdWJsaWMgdm9pZCBzZXRDb21tZW50KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0Q29tcHJlc3NlZFNpemUobG9uZyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRDcmMobG9uZyB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRFeHRyYShieXRlW10gdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0TWV0aG9kKGludCB2YXIwKSB7IH0NCglwdWJsaWMgdm9pZCBzZXRTaXplKGxvbmcgdmFyMCkgeyB9DQoJcHVibGljIHZvaWQgc2V0VGltZShsb25nIHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBaaXBFbnRyeShqYXZhLnV0aWwuemlwLlppcEVudHJ5IHZhcjApIHsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGNsb25lKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7IHJldHVybiAwOyB9DQoJcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGTEFURUQgPSA4Ow0KCXB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNUT1JFRCA9IDA7DQp9DQoNClBLAwQKAAAAAAA6Q7oy/6T6ZpcBAACXAQAALAAAAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL1ppcEV4Y2VwdGlvbi5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC96aXAvWmlwRXhjZXB0aW9uLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsLnppcDsNCnB1YmxpYyBjbGFzcyBaaXBFeGNlcHRpb24gZXh0ZW5kcyBqYXZhLmlvLklPRXhjZXB0aW9uIHsNCglwdWJsaWMgWmlwRXhjZXB0aW9uKCkgeyB9DQoJcHVibGljIFppcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIHZhcjApIHsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6MoXVtQi3AwAAtwMAACcAAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9aaXBGaWxlLmphdmEvKg0KICogJEhlYWRlcjogL2N2c2hvbWUvYnVpbGQvZWUubWluaW11bS9zcmMvamF2YS91dGlsL3ppcC9aaXBGaWxlLmphdmEsdiAxLjQgMjAwNC8xMi8yMiAyMjowNToyMCBoYXJncmF2ZSBFeHAgJA0KICoNCiAqIChDKSBDb3B5cmlnaHQgMjAwMSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuDQogKiBDb3B5cmlnaHQgKGMpIE9TR2kgQWxsaWFuY2UgKDIwMDEsIDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KICovDQoNCnBhY2thZ2UgamF2YS51dGlsLnppcDsNCnB1YmxpYyBjbGFzcyBaaXBGaWxlIGltcGxlbWVudHMgamF2YS51dGlsLnppcC5aaXBDb25zdGFudHMgew0KCXB1YmxpYyBaaXBGaWxlKGphdmEuaW8uRmlsZSB2YXIwKSB0aHJvd3MgamF2YS51dGlsLnppcC5aaXBFeGNlcHRpb24sIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIFppcEZpbGUoamF2YS5sYW5nLlN0cmluZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IH0NCglwcm90ZWN0ZWQgdm9pZCBmaW5hbGl6ZSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuemlwLlppcEVudHJ5IGdldEVudHJ5KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIGdldElucHV0U3RyZWFtKGphdmEudXRpbC56aXAuWmlwRW50cnkgdmFyMCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gbnVsbDsgfQ0KCXB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldE5hbWUoKSB7IHJldHVybiBudWxsOyB9DQoJcHVibGljIGludCBzaXplKCkgeyByZXR1cm4gMDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Momr8SYHBAAABwQAAC4AAABPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9aaXBJbnB1dFN0cmVhbS5qYXZhLyoNCiAqICRIZWFkZXI6IC9jdnNob21lL2J1aWxkL2VlLm1pbmltdW0vc3JjL2phdmEvdXRpbC96aXAvWmlwSW5wdXRTdHJlYW0uamF2YSx2IDEuNCAyMDA0LzEyLzIyIDIyOjA1OjIwIGhhcmdyYXZlIEV4cCAkDQogKg0KICogKEMpIENvcHlyaWdodCAyMDAxIFN1biBNaWNyb3N5c3RlbXMsIEluYy4NCiAqIENvcHlyaWdodCAoYykgT1NHaSBBbGxpYW5jZSAoMjAwMSwgMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQogKi8NCg0KcGFja2FnZSBqYXZhLnV0aWwuemlwOw0KcHVibGljIGNsYXNzIFppcElucHV0U3RyZWFtIGV4dGVuZHMgamF2YS51dGlsLnppcC5JbmZsYXRlcklucHV0U3RyZWFtIGltcGxlbWVudHMgamF2YS51dGlsLnppcC5aaXBDb25zdGFudHMgew0KCXB1YmxpYyBaaXBJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtIHZhcjApIHsgc3VwZXIoKGphdmEuaW8uSW5wdXRTdHJlYW0pIG51bGwsIChqYXZhLnV0aWwuemlwLkluZmxhdGVyKSBudWxsLCAwKTsgfQ0KCXB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyB9DQoJcHVibGljIHZvaWQgY2xvc2VFbnRyeSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgfQ0KCXB1YmxpYyBqYXZhLnV0aWwuemlwLlppcEVudHJ5IGdldE5leHRFbnRyeSgpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsgcmV0dXJuIG51bGw7IH0NCglwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIHZhcjAsIGludCB2YXIxLCBpbnQgdmFyMikgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXB1YmxpYyBsb25nIHNraXAobG9uZyB2YXIwKSB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7IHJldHVybiAwbDsgfQ0KCXB1YmxpYyBpbnQgYXZhaWxhYmxlKCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geyByZXR1cm4gMDsgfQ0KCXByb3RlY3RlZCBqYXZhLnV0aWwuemlwLlppcEVudHJ5IGNyZWF0ZVppcEVudHJ5KGphdmEubGFuZy5TdHJpbmcgdmFyMCkgeyByZXR1cm4gbnVsbDsgfQ0KfQ0KDQpQSwMECgAAAAAAOkO6Mh1FyUg0CQAANAkAAAoAAABhYm91dC5odG1sPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLSAkSGVhZGVyOiAvY3ZzaG9tZS9idWlsZC9lZS5taW5pbXVtL2Fib3V0Lmh0bWwsdiAxLjIgMjAwNS8wNS8yNiAwMTo1NDoxNSBoYXJncmF2ZSBFeHAgJCAtLT4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+QWJvdXQ8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiPg0KPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+DQogDQo8aDM+Q29weXJpZ2h0PC9oMz4NCjxwPkNvcHlyaWdodCAoYykgMjAwMCwgMjAwNTwvcD4NCg0KPHA+T1NHaSBBbGxpYW5jZTxici8+DQpCaXNob3AgUmFuY2ggNjxici8+DQoyNDAwIENhbWlubyBSYW1vbiwgU3VpdGUgMzc1PGJyLz4NClNhbiBSYW1vbiwgQ0EgOTQ1ODMgVVNBDQo8L3A+DQo8cD5BbGwgUmlnaHRzIFJlc2VydmVkLjwvcD4NCg0KPGgzPkxpY2Vuc2U8L2gzPg0KPHA+VGhlIE9TR2kgQWxsaWFuY2UgbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgamFyICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+Lg0KRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4NCg0KPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgT1NHaSBBbGxpYW5jZSwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQ0KYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAgQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuICBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiAgVW5sZXNzIG90aGVyd2lzZQ0KaW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQuPC9wPg0KDQo8aDM+Tm90aWNlczwvaDM+DQo8cD5JbXBsZW1lbnRhdGlvbiBvZiBjZXJ0YWluIGVsZW1lbnRzIG9mIHRoZSBDb250ZW50IG1heSBiZSBzdWJqZWN0IHRvIHRoaXJkIHBhcnR5DQppbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uLCBwYXRlbnQgcmlnaHRzIChzdWNoIGEgdGhpcmQgcGFydHkgbWF5DQpvciBtYXkgbm90IGJlIGEgbWVtYmVyIG9mIHRoZSBPU0dpIEFsbGlhbmNlKS4gVGhlIE9TR2kgQWxsaWFuY2UgYW5kIGl0cyBtZW1iZXJzIGFyZSBub3QgcmVzcG9uc2libGUgDQphbmQgc2hhbGwgbm90IGJlIGhlbGQgcmVzcG9uc2libGUgaW4gYW55IG1hbm5lciBmb3IgaWRlbnRpZnlpbmcgb3IgZmFpbGluZyB0byBpZGVudGlmeSBhbnkgb3IgDQphbGwgc3VjaCB0aGlyZCBwYXJ0eSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzLjwvcD4NCg0KPHA+T1NHaShUTSkgaXMgYSB0cmFkZW1hcmssIHJlZ2lzdGVyZWQgdHJhZGVtYXJrLCBvciBzZXJ2aWNlIG1hcmsNCm9mIFRoZSBPU0dpIEFsbGlhbmNlIGluIHRoZSBVUyBhbmQgb3RoZXIgY291bnRyaWVzLiBKYXZhIGlzIGEgdHJhZGVtYXJrLA0KcmVnaXN0ZXJlZCB0cmFkZW1hcmssIG9yIHNlcnZpY2UgbWFyayBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGluIHRoZSBVUw0KYW5kIG90aGVyIGNvdW50cmllcy4gQWxsIG90aGVyIHRyYWRlbWFya3MsIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcywgb3INCnNlcnZpY2UgbWFya3MgdXNlZCBpbiB0aGUgQ29udGVudCBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUNCm93bmVycyBhbmQgYXJlIGhlcmVieSByZWNvZ25pemVkLjwvcD4NCg0KPC9ib2R5Pg0KPC9odG1sPlBLAwQKAAAAAAA6Q7oybiXK3e1BAADtQQAADAAAAGVwbC12MTAuaHRtbDxodG1sIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4NCjxtZXRhIG5hbWU9IlByb2dJZCIgY29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPg0KPG1ldGEgbmFtZT0iT3JpZ2luYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgOSI+DQo8bGluayByZWw9IkZpbGUtTGlzdCIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+PHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQogPG86RG9jdW1lbnRQcm9wZXJ0aWVzPg0KICA8bzpSZXZpc2lvbj4yPC9vOlJldmlzaW9uPg0KICA8bzpUb3RhbFRpbWU+MzwvbzpUb3RhbFRpbWU+DQogIDxvOkNyZWF0ZWQ+MjAwNC0wMy0wNVQyMzowMzowMFo8L286Q3JlYXRlZD4NCiAgPG86TGFzdFNhdmVkPjIwMDQtMDMtMDVUMjM6MDM6MDBaPC9vOkxhc3RTYXZlZD4NCiAgPG86UGFnZXM+NDwvbzpQYWdlcz4NCiAgPG86V29yZHM+MTYyNjwvbzpXb3Jkcz4NCiAgPG86Q2hhcmFjdGVycz45MjcwPC9vOkNoYXJhY3RlcnM+DQogICA8bzpMaW5lcz43NzwvbzpMaW5lcz4NCiAgPG86UGFyYWdyYXBocz4xODwvbzpQYXJhZ3JhcGhzPg0KICA8bzpDaGFyYWN0ZXJzV2l0aFNwYWNlcz4xMTM4NDwvbzpDaGFyYWN0ZXJzV2l0aFNwYWNlcz4NCiAgPG86VmVyc2lvbj45LjQ0MDI8L286VmVyc2lvbj4NCiA8L286RG9jdW1lbnRQcm9wZXJ0aWVzPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQogPHc6V29yZERvY3VtZW50Pg0KICA8dzpUcmFja1JldmlzaW9ucy8+DQogPC93OldvcmREb2N1bWVudD4NCjwveG1sPjwhW2VuZGlmXS0tPg0KDQoNCjxzdHlsZT4NCjwhLS0NCiAvKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsNCgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9DQogLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9DQpwDQoJe21hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCnAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQNCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7DQoJbWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQHBhZ2UgU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47DQoJbXNvLWhlYWRlci1tYXJnaW46LjVpbjsNCgltc28tZm9vdGVyLW1hcmdpbjouNWluOw0KCW1zby1wYXBlci1zb3VyY2U6MDt9DQpkaXYuU2VjdGlvbjENCgl7cGFnZTpTZWN0aW9uMTt9DQotLT4NCjwvc3R5bGU+PC9oZWFkPg0KDQo8Ym9keSBzdHlsZT0iIiBsYW5nPSJFTi1VUyI+DQoNCjxkaXYgY2xhc3M9IlNlY3Rpb24xIj4NCg0KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiIGFsaWduPSJjZW50ZXIiPjxiPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvYj4NCjwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUg0KVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoIkFHUkVFTUVOVCIpLiBBTlkgVVNFLA0KUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFDQpPRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4NCg0KPHA+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPg0KDQo8cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+IkNvbnRyaWJ1dGlvbiIgbWVhbnM6PC9zcGFuPiA8L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+YSkNCmluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uDQpkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPGJyIGNsZWFyPSJsZWZ0Ij4NCmIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmkpDQpjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L3NwYW4+PC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmlpKQ0KYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvc3Bhbj48L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+d2hlcmUNCnN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQNCmJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcg0KaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24NCnN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQ0KUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uDQp3aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlDQp3b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPiJDb250cmlidXRvciIgbWVhbnMgYW55IHBlcnNvbiBvcg0KZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9zcGFuPiA8L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij4iTGljZW5zZWQgUGF0ZW50cyAiIG1lYW4gcGF0ZW50DQpjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZQ0Kb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPiJQcm9ncmFtIiBtZWFucyB0aGUgQ29udHJpYnV0aW9ucw0KZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPg0KDQo8cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+IlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobw0KcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLjwvc3Bhbj4gPC9wPg0KDQo8cD48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9zcGFuPjwvYj4gPC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmEpDQpTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudA0KYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0bzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDwvc3Bhbj5yZXByb2R1Y2UsIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiwgcHVibGljbHkNCmRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoDQpDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBkZXJpdmF0aXZlIHdvcmtzLCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUNCmZvcm0uPC9zcGFuPjwvcD4NCg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5iKQ0KU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cw0KUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij4gPC9zcGFuPnJveWFsdHktZnJlZQ0KcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydA0KYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlDQpjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbg0Kb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQNCmJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uDQp0byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvDQphbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzDQpsaWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+YykNClJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMNCkNvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yDQp0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZSBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5DQpyaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQNCmZvciBjbGFpbXMgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwNCnByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQNCmxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5DQp0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvciBleGFtcGxlLA0KaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQgdG8gZGlzdHJpYnV0ZQ0KdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZQ0KZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvc3Bhbj48L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+ZCkNCkVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0DQpyaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluDQp0aGlzIEFncmVlbWVudC4gPC9zcGFuPjwvcD4NCg0KPHA+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPjMuIFJFUVVJUkVNRU5UUzwvc3Bhbj48L2I+IDwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZQ0KUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9zcGFuPg0KPC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmEpDQppdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4NCg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5iKQ0KaXRzIGxpY2Vuc2UgYWdyZWVtZW50Ojwvc3Bhbj48L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+aSkNCmVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQNCmNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUNCmFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5DQphbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7IDwvc3Bhbj48L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+aWkpDQplZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLA0KaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaA0KYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmlpaSkNCnN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMgQWdyZWVtZW50IGFyZSBvZmZlcmVkIGJ5IHRoYXQNCkNvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyIHBhcnR5OyBhbmQ8L3NwYW4+PC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPml2KQ0Kc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZA0KaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQ0KbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiA8L3NwYW4+PC9zcGFuPjwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlDQpjb2RlIGZvcm06PC9zcGFuPiA8L3A+DQoNCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+YSkNCml0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZCA8L3NwYW4+PC9wPg0KDQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPmIpIGENCmNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkNCmNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZQ0Kb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3MNCnN1YnNlcXVlbnQgUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLiA8L3NwYW4+PC9wPg0KDQo8cD48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L3NwYW4+PC9iPiA8L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkNCmFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMNCmFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlDQpvZiB0aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwNCnByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwNCmxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlDQpQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgiQ29tbWVyY2lhbA0KQ29udHJpYnV0b3IiKSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyDQpDb250cmlidXRvciAoIkluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIikgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZA0KY29zdHMgKGNvbGxlY3RpdmVseSAiTG9zc2VzIikgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyDQpsZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0bw0KdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbg0KY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QNCm9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3Nlcw0KcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyDQp0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwNCkNvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yDQp0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZA0KYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUNCmluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS48L3NwYW4+IDwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlDQpQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhDQpDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQ0KY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZA0Kd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuIFVuZGVyIHRoaXMNCnNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZQ0Kb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYQ0KY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlDQpDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9zcGFuPiA8L3A+DQoNCjxwPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij41LiBOTyBXQVJSQU5UWTwvc3Bhbj48L2I+IDwvcD4NCg0KPHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMNCkFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVA0KV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywNCldJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwNCk1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5DQpyZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQ0KUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcw0KQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLA0KY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3INCmVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPg0KDQo8cD48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTDQpBR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1INCkFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUw0KKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCk9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQpORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRg0KVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRg0KVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4NCg0KPHA+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsiPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQNCm9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yDQplbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQNCmZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlDQptaW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbg0KYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQ0KYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aA0Kb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoDQpSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlDQpzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50DQpzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcg0KY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlDQpwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncw0KcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kDQpkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLA0KUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5DQpSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+DQoNCjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7Ij5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQ0KY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzDQpjb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQNClN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZg0KdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMNCnRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwNCkFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvDQpzZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24NCm9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQ0KKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YNCnRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZg0KdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtDQooaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkDQppbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvDQp0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcg0KZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdA0KZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPg0KDQo8cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlDQpTdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mDQpBbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMNCkFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMNCml0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4NCg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PCEtLVtpZiAhc3VwcG9ydEVtcHR5UGFyYXNdLS0+Jm5ic3A7PCEtLVtlbmRpZl0tLT48bzpwPjwvbzpwPjwvcD4NCg0KPC9kaXY+DQoNCjwvYm9keT48L2h0bWw+UEsDBAoAAAAAADpDujIAAAAAAAAAAAAAAAAFAAAAamF2YS9QSwMECgAAAAAAOkO6MgAAAAAAAAAAAAAAAAgAAABqYXZhL2lvL1BLAwQKAAAAAAA6Q7oy3GgWvBkFAAAZBQAAIQAAAGphdmEvaW8vQnVmZmVyZWRJbnB1dFN0cmVhbS5jbGFzc8r+ur4AAAAuAC0BABtqYXZhL2lvL0J1ZmZlcmVkSW5wdXRTdHJlYW0HAAEBABlqYXZhL2lvL0ZpbHRlcklucHV0U3RyZWFtBwADAQADYnVmAQACW0IBAAVjb3VudAEAAUkBAAltYXJrbGltaXQBAAdtYXJrcG9zAQADcG9zAQAGPGluaXQ+AQAYKExqYXZhL2lvL0lucHV0U3RyZWFtOylWAQAEQ29kZQwADAANCgAEAA8BAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAdTGphdmEvaW8vQnVmZmVyZWRJbnB1dFN0cmVhbTsBAAR2YXIwAQAVTGphdmEvaW8vSW5wdXRTdHJlYW07AQAZKExqYXZhL2lvL0lucHV0U3RyZWFtO0kpVgEABHZhcjEBAAlhdmFpbGFibGUBAAMoKUkBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAHAEABWNsb3NlAQADKClWAQAEbWFyawEABChJKVYBAA1tYXJrU3VwcG9ydGVkAQADKClaAQAEcmVhZAEAByhbQklJKUkBAAR2YXIyAQAFcmVzZXQBAARza2lwAQAEKEopSgEAAUoBAApTb3VyY2VGaWxlAQAYQnVmZmVyZWRJbnB1dFN0cmVhbS5qYXZhACEAAgAEAAAABQAEAAUABgAAAAQABwAIAAAABAAJAAgAAAAEAAoACAAAAAQACwAIAAAACgABAAwADQABAA4AAAA6AAIAAgAAAAYqAbcAELEAAAACABEAAAAGAAEAAAAKABIAAAAWAAIAAAAGABMAFAAAAAAABgAVABYAAQABAAwAFwABAA4AAABEAAIAAwAAAAYqAbcAELEAAAACABEAAAAGAAEAAAALABIAAAAgAAMAAAAGABMAFAAAAAAABgAVABYAAQAAAAYAGAAIAAIAAQAZABoAAgAbAAAABAABAB0ADgAAACwAAQABAAAAAgOsAAAAAgARAAAABgABAAAADAASAAAADAABAAAAAgATABQAAAABAB4AHwACABsAAAAEAAEAHQAOAAAAKwAAAAEAAAABsQAAAAIAEQAAAAYAAQAAAA0AEgAAAAwAAQAAAAEAEwAUAAAAAQAgACEAAQAOAAAANQAAAAIAAAABsQAAAAIAEQAAAAYAAQAAAA4AEgAAABYAAgAAAAEAEwAUAAAAAAABABUACAABAAEAIgAjAAEADgAAACwAAQABAAAAAgOsAAAAAgARAAAABgABAAAADwASAAAADAABAAAAAgATABQAAAABACQAGgACABsAAAAEAAEAHQAOAAAALAABAAEAAAACA6wAAAACABEAAAAGAAEAAAAQABIAAAAMAAEAAAACABMAFAAAAAEAJAAlAAIAGwAAAAQAAQAdAA4AAABKAAEABAAAAAIDrAAAAAIAEQAAAAYAAQAAABEAEgAAACoABAAAAAIAEwAUAAAAAAACABUABgABAAAAAgAYAAgAAgAAAAIAJgAIAAMAAQAnAB8AAgAbAAAABAABAB0ADgAAACsAAAABAAAAAbEAAAACABEAAAAGAAEAAAASABIAAAAMAAEAAAABABMAFAAAAAEAKAApAAIAGwAAAAQAAQAdAA4AAAA2AAIAAwAAAAIJrQAAAAIAEQAAAAYAAQAAABMAEgAAABYAAgAAAAIAEwAUAAAAAAACABUAKgABAAEAKwAAAAIALFBLAwQKAAAAAAA6Q7oyp9dKuloDAABa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b3VyY2VGaWxlAQATQnVmZmVyZWRXcml0ZXIuamF2YQAhAAIABAAAAAAACAABAAUABgABAAcAAAA5AAEAAgAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAABYAAgAAAAUADQAOAAAAAAAFAA8AEAABAAEABQARAAEABwAAAEMAAQADAAAABSq3AAqxAAAAAgALAAAABgABAAAACwAMAAAAIAADAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABIAEwACAAEAFAAIAAIAFQAAAAQAAQAXAAcAAAArAAAAAQAAAAGxAAAAAgALAAAABgABAAAADAAMAAAADAABAAAAAQANAA4AAAABABgACAACABUAAAAEAAEAFwAHAAAAKwAAAAEAAAABsQAAAAIACwAAAAYAAQAAAA0ADAAAAAwAAQAAAAEADQAOAAAAAQAZAAgAAgAVAAAABAABABcABwAAACsAAAABAAAAAbEAAAACAAsAAAAGAAEAAAAOAAwAAAAMAAEAAAABAA0ADgAAAAEAGgAbAAIAFQAAAAQAAQAXAAcAAABJAAAABAAAAAGxAAAAAgALAAAABgABAAAADwAMAAAAKgAEAAAAAQANAA4AAAAAAAEADwAcAAEAAAABABIAEwACAAAAAQAdABMAAwABABoAHgACABUAAAAEAAEAFwAHAAAANQAAAAIAAAABsQAAAAIACwAAAAYAAQAAABAADAAAABYAAgAAAAEADQAOAAAAAAABAA8AEwABAAEAGgAfAAIAFQAAAAQAAQAXAAcAAABJAAAABAAAAAGxAAAAAgALAAAABgABAAAAEQAMAAAAKgAEAAAAAQANAA4AAAAAAAEADwAgAAEAAAABABIAEwACAAAAAQAdABMAAwABACEAAAACACJQSwMECgAAAAAAOkO6MhSFPn6RBAAAkQQAACIAAABqYXZhL2lvL0J5dGVBcnJheUlucHV0U3RyZWFtLmNsYXNzyv66vgAAAC4AKgEAHGphdmEvaW8vQnl0ZUFycmF5SW5wdXRTdHJlYW0HAAEBABNqYXZhL2lvL0lucHV0U3RyZWFtBwADAQADYnVmAQACW0IBAANwb3MBAAFJAQAEbWFyawEABWNvdW50AQAGPGluaXQ+AQAFKFtCKVYBAARDb2RlAQADKClWDAALAA4KAAQADwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB5MamF2YS9pby9CeXRlQXJyYXlJbnB1dFN0cmVhbTsBAAR2YXIwAQAHKFtCSUkpVgEABHZhcjEBAAR2YXIyAQAJYXZhaWxhYmxlAQADKClJAQAFY2xvc2UBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAHQEABChJKVYBAA1tYXJrU3VwcG9ydGVkAQADKClaAQAEcmVhZAEAByhbQklJKUkBAAVyZXNldAEABHNraXABAAQoSilKAQABSgEAClNvdXJjZUZpbGUBABlCeXRlQXJyYXlJbnB1dFN0cmVhbS5qYXZhACEAAgAEAAAABAAEAAUABgAAAAQABwAIAAAABAAJAAgAAAAEAAoACAAAAAoAAQALAAwAAQANAAAAOQABAAIAAAAFKrcAELEAAAACABEAAAAGAAEAAAAKABIAAAAWAAIAAAAFABMAFAAAAAAABQAVAAYAAQABAAsAFgABAA0AAABNAAEABAAAAAUqtwAQsQAAAAIAEQAAAAYAAQAAAAsAEgAAACoABAAAAAUAEwAUAAAAAAAFABUABgABAAAABQAXAAgAAgAAAAUAGAAIAAMAAQAZABoAAQANAAAALAABAAEAAAACA6wAAAACABEAAAAGAAEAAAAMABIAAAAMAAEAAAACABMAFAAAAAEAGwAOAAIAHAAAAAQAAQAeAA0AAAArAAAAAQAAAAGxAAAAAgARAAAABgABAAAADQASAAAADAABAAAAAQATABQAAAABAAkAHwABAA0AAAA1AAAAAgAAAAGxAAAAAgARAAAABgABAAAADgASAAAAFgACAAAAAQATABQAAAAAAAEAFQAIAAEAAQAgACEAAQANAAAALAABAAEAAAACA6wAAAACABEAAAAGAAEAAAAPABIAAAAMAAEAAAACABMAFAAAAAEAIgAaAAEADQAAACwAAQABAAAAAgOsAAAAAgARAAAABgABAAAAEAASAAAADAABAAAAAgATABQAAAABACIAIwABAA0AAABKAAEABAAAAAIDrAAAAAIAEQAAAAYAAQAAABEAEgAAACoABAAAAAIAEwAUAAAAAAACABUABgABAAAAAgAXAAgAAgAAAAIAGAAIAAMAAQAkAA4AAQANAAAAKwAAAAEAAAABsQAA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AAAAAgAMAAAABgABAAAADQANAAAADAABAAAAAgAOAA8AAAARAB4AHwACABQAAAAEAAEAFgAJAAAALAABAAEAAAACA6wAAAACAAwAAAAGAAEAAAAOAA0AAAAMAAEAAAACAA4ADwAAABEAIAAhAAIAFAAAAAQAAQAWAAkAAAAsAAEAAQAAAAIDrAAAAAIADAAAAAYAAQAAAA8ADQAAAAwAAQAAAAIADgAPAAAAEQAiACMAAgAUAAAABAABABYACQAAACwAAgABAAAAAg6vAAAAAgAMAAAABgABAAAAEAANAAAADAABAAAAAgAOAA8AAAARACQAJQACABQAAAAEAAEAFgAJAAAALAABAAEAAAACC64AAAACAAwAAAAGAAEAAAARAA0AAAAMAAEAAAACAA4ADwAAABEAJgAnAAIAFAAAAAQAAQAWAAkAAAA1AAAAAgAAAAGxAAAAAgAMAAAABgABAAAAEgANAAAAFgACAAAAAQAOAA8AAAAAAAEAEAAXAAEAEQAmACgAAgAUAAAABAABABYACQAAAEkAAAAEAAAAAbEAAAACAAwAAAAGAAEAAAATAA0AAAAqAAQAAAABAA4ADwAAAAAAAQAQABcAAQAAAAEAGQAaAAIAAAABABsAGgADABEAKQAqAAIAFAAAAAQAAQAWAAkAAAAsAAEAAQAAAAIDrAAAAAIADAAAAAYAAQAAABQADQAAAAwAAQAAAAIADgAPAAAAEQArACwAAgAUAAAABAABABYACQAAACwAAQABAAAAAgGwAAAAAgAMAAAABgABAAAAFQANAAAADAABAAAAAgAOAA8AAAARAC0ALgACABQAAAAEAAEAFgAJAAAALAACAAEAAAACCa0AAAACAAwAAAAGAAEAAAAWAA0AAAAMAAEAAAACAA4ADwAAABEALwAwAAIAFAAAAAQAAQAWAAkAAAAsAAEAAQAAAAIDrAAAAAIADAAAAAYAAQAAABcADQAAAAwAAQAAAAIADgAPAAAAEQAxACoAAgAUAAAABAABABYACQAAACwAAQABAAAAAgOsAAAAAgAMAAAABgABAAAAGAANAAAADAABAAAAAgAOAA8AAAARADIAKgACABQAAAAEAAEAFgAJAAAALAABAAEAAAACA6wAAAACAAwAAAAGAAEAAAAZAA0AAAAMAAEAAAACAA4ADwAAABEAMwAsAAIAFAAA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AAQAAAABABAAEQAAAAAAAQASAB0AAQAAAAEAHgAIAAIAAAABAB8ACAADAAEAGwAgAAIAFgAAAAQAAQAYAAsAAAA1AAAAAgAAAAGxAAAAAgAOAAAABgABAAAADgAPAAAAFgACAAAAAQAQABEAAAAAAAEAEgAIAAEAEQAhACIAAgAWAAAABAABABgACwAAADUAAAACAAAAAbEAAAACAA4AAAAGAAEAAAAPAA8AAAAWAAIAAAABABAAEQAAAAAAAQASACMAAQARACQAIAACABYAAAAEAAEAGAALAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABAADwAAABYAAgAAAAEAEAARAAAAAAABABIACAABABEAJQAmAAIAFgAAAAQAAQAYAAsAAAA1AAAAAgAAAAGxAAAAAgAOAAAABgABAAAAEQAPAAAAFgACAAAAAQAQABEAAAAAAAEAEgAnAAEAEQAoACAAAgAWAAAABAABABgACwAAADUAAAACAAAAAbEAAAACAA4AAAAGAAEAAAASAA8AAAAWAAIAAAABABAAEQAAAAAAAQASAAgAAQARACkAJgACABYAAAAEAAEAGAALAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABMADwAAABYAAgAAAAEAEAARAAAAAAABABIAJwABABEAKgArAAIAFgAAAAQAAQAYAAsAAAA1AAAAAwAAAAGxAAAAAgAOAAAABgABAAAAFAAPAAAAFgACAAAAAQAQABEAAAAAAAEAEgAsAAEAEQAtAC4AAgAWAAAABAABABgACwAAADUAAAACAAAAAbEAAAACAA4AAAAGAAEAAAAVAA8AAAAWAAIAAAABABAAEQAAAAAAAQASAC8AAQARADAAIAACABYAAAAEAAEAGAALAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABYADwAAABYAAgAAAAEAEAARAAAAAAABABIACAABABEAMQAyAAIAFgAAAAQAAQAYAAsAAAA1AAAAAwAAAAGxAAAAAgAOAAAABgABAAAAFwAPAAAAFgACAAAAAQAQABEAAAAAAAEAEgAzAAEAEQA0ACAAAgAWAAAABAABABgACwAAADUAAAACAAAAAbEAAAACAA4AAAAGAAEAAAAYAA8AAAAWAAIAAAABABAAEQAAAAAAAQASAAgAAQARADUAJgACABYAAAAEAAEAGAALAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABkADwAAABYAAgAAAAEAEAARAAAAAAABABIAJwABAAEANgAAAAIAN1BLAwQKAAAAAAA7Q7oygTMM0JMBAACTAQAAGgAAAGphdmEvaW8vRU9GRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AEwEAFGphdmEvaW8vRU9GRXhjZXB0aW9uBwABAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAFkxqYXZhL2lvL0VPRkV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAEUVPRkV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oyJQeLuFkBAABZAQAAHAAAAGphdmEvaW8vRXh0ZXJuYWxpemFibGUuY2xhc3PK/rq+AAAALgASAQAWamF2YS9pby9FeHRlcm5hbGl6YWJsZQcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEADHJlYWRFeHRlcm5hbAEAGChMamF2YS9pby9PYmplY3RJbnB1dDspVgEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAKAQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24HAAwBAA13cml0ZUV4dGVybmFsAQAZKExqYXZhL2lvL09iamVjdE91dHB1dDspVgEAClNvdXJjZUZpbGUBABNFeHRlcm5hbGl6YWJsZS5qYXZhBgEAAgAEAAEABgAAAAIEAQAHAAgAAQAJAAAABgACAAsADQQBAA4ADwABAAkAAAAEAAEACwABABAAAAACABFQSwMECgAAAAAAO0O6MkBIgKZYDAAAWAwAABIAAABqYXZhL2lvL0ZpbGUuY2xhc3PK/rq+AAAALgBUAQAMamF2YS9pby9GaWxlBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAcBAA1zZXBhcmF0b3JDaGFyAQABQwEACXNlcGFyYXRvcgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAEXBhdGhTZXBhcmF0b3JDaGFyAQANcGF0aFNlcGFyYXRvcgEACDxjbGluaXQ+AQADKClWAQAEQ29kZQwACQAKCQACABIMAAsADAkAAgAUDAANAAoJAAIAFgwADgAMCQACABgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAY8aW5pdD4BACMoTGphdmEvaW8vRmlsZTtMamF2YS9sYW5nL1N0cmluZzspVgwAHAAQCgAEAB4BAAR0aGlzAQAOTGphdmEvaW8vRmlsZTsBAAR2YXIwAQAEdmFyMQEAFShMamF2YS9sYW5nL1N0cmluZzspVgEAJyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspVgEAB2NhblJlYWQBAAMoKVoBAAhjYW5Xcml0ZQEACWNvbXBhcmVUbwEAFShMamF2YS9sYW5nL09iamVjdDspSQEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAEShMamF2YS9pby9GaWxlOylJAQAGZGVsZXRlAQAMZGVsZXRlT25FeGl0AQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQAGZXhpc3RzAQAPZ2V0QWJzb2x1dGVQYXRoAQAUKClMamF2YS9sYW5nL1N0cmluZzsBABBnZXRDYW5vbmljYWxQYXRoAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HADYBAAdnZXROYW1lAQAJZ2V0UGFyZW50AQAHZ2V0UGF0aAEACGhhc2hDb2RlAQADKClJAQAKaXNBYnNvbHV0ZQEAC2lzRGlyZWN0b3J5AQAGaXNGaWxlAQAMbGFzdE1vZGlmaWVkAQADKClKAQAGbGVuZ3RoAQAEbGlzdAEAFSgpW0xqYXZhL2xhbmcvU3RyaW5nOwEABW1rZGlyAQAGbWtkaXJzAQANY3JlYXRlTmV3RmlsZQEADmNyZWF0ZVRlbXBGaWxlAQBCKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2lvL0ZpbGU7KUxqYXZhL2lvL0ZpbGU7AQAEdmFyMgEACHJlbmFtZVRvAQARKExqYXZhL2lvL0ZpbGU7KVoBAAh0b1N0cmluZwEABXRvVVJMAQAQKClMamF2YS9uZXQvVVJMOwEAHmphdmEvbmV0L01hbGZvcm1lZFVSTEV4Y2VwdGlvbgcAUAEAClNvdXJjZUZpbGUBAAlGaWxlLmphdmEAIQACAAQAAgAGAAgABAAZAAkACgAAABkACwAMAAAAGQANAAoAAAAZAA4ADAAAAB8ACAAPABAAAQARAAAAQQABAAAAAAARA7MAEwGzABUDswAXAbMAGbEAAAACABoAAAAWAAUAAAAoAAQAKQAIACoADAArABAACQAbAAAAAgAAAAEAHAAdAAEAEQAAAEMAAQADAAAABSq3AB+xAAAAAgAaAAAABgABAAAACgAbAAAAIAADAAAABQAgACEAAAAAAAUAIgAhAAEAAAAFACMADAACAAEAHAAkAAEAEQAAADkAAQACAAAABSq3AB+xAAAAAgAaAAAABgABAAAACwAbAAAAFgACAAAABQAgACEAAAAAAAUAIgAMAAEAAQAcACUAAQARAAAAQwABAAMAAAAFKrcAH7EAAAACABoAAAAGAAEAAAAMABsAAAAgAAMAAAAFACAAIQAAAAAABQAiAAwAAQAAAAUAIwAMAAIAAQAmACcAAQARAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAANABsAAAAMAAEAAAACACAAIQAAAAEAKAAnAAEAEQAAACwAAQABAAAAAgOsAAAAAgAaAAAABgABAAAADgAbAAAADAABAAAAAgAgACEAAAABACkAKgABABEAAAA2AAEAAgAAAAIDrAAAAAIAGgAAAAYAAQAAAA8AGwAAABYAAgAAAAIAIAAhAAAAAAACACIAKwABAAEAKQAsAAEAEQAAADYAAQACAAAAAgOsAAAAAgAaAAAABgABAAAAEAAbAAAAFgACAAAAAgAgACEAAAAAAAIAIgAhAAEAAQAtACcAAQARAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAARABsAAAAMAAEAAAACACAAIQAAAAEALgAQAAEAEQAAACsAAAABAAAAAbEAAAACABoAAAAGAAEAAAASABsAAAAMAAEAAAABACAAIQAAAAEALwAwAAEAEQAAADYAAQACAAAAAgOsAAAAAgAaAAAABgABAAAAEwAbAAAAFgACAAAAAgAgACEAAAAAAAIAIgArAAEAAQAxACcAAQARAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAAUABsAAAAMAAEAAAACACAAIQAAAAEAMgAzAAEAEQAAACwAAQABAAAAAgGwAAAAAgAaAAAABgABAAAAFQAbAAAADAABAAAAAgAgACEAAAABADQAMwACADUAAAAEAAEANwARAAAALAABAAEAAAACAbAAAAACABoAAAAGAAEAAAAWABsAAAAMAAEAAAACACAAIQAAAAEAOAAzAAEAEQAAACwAAQABAAAAAgGwAAAAAgAaAAAABgABAAAAFwAbAAAADAABAAAAAgAgACEAAAABADkAMwABABEAAAAsAAEAAQAAAAIBsAAAAAIAGgAAAAYAAQAAABgAGwAAAAwAAQAAAAIAIAAhAAAAAQA6ADMAAQARAAAALAABAAEAAAACAbAAAAACABoAAAAGAAEAAAAZABsAAAAMAAEAAAACACAAIQAAAAEAOwA8AAEAEQAAACwAAQABAAAAAgOsAAAAAgAaAAAABgABAAAAGgAbAAAADAABAAAAAgAgACEAAAABAD0AJwABABEAAAAsAAEAAQAAAAIDrAAAAAIAGgAAAAYAAQAAABsAGwAAAAwAAQAAAAIAIAAhAAAAAQA+ACcAAQARAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAAcABsAAAAMAAEAAAACACAAIQAAAAEAPwAnAAEAEQAAACwAAQABAAAAAgOsAAAAAgAaAAAABgABAAAAHQAbAAAADAABAAAAAgAgACEAAAABAEAAQQABABEAAAAsAAIAAQAAAAIJrQAAAAIAGgAAAAYAAQAAAB4AGwAAAAwAAQAAAAIAIAAhAAAAAQBCAEEAAQARAAAALAACAAEAAAACCa0AAAACABoAAAAGAAEAAAAfABsAAAAM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cjIBAARza2lwAQAEKEopSgEAAUoBAApTb3VyY2VGaWxlAQAURmlsZUlucHV0U3RyZWFtLmphdmEAIQACAAQAAAAAAAsAAQAFAAYAAgAHAAAABAABAAkACgAAADkAAQACAAAABSq3AA2xAAAAAgAOAAAABgABAAAACgAPAAAAFgACAAAABQAQABEAAAAAAAUAEgATAAEAAQAFABQAAQAKAAAAOQABAAIAAAAFKrcADbEAAAACAA4AAAAGAAEAAAALAA8AAAAWAAIAAAAFABAAEQAAAAAABQASABUAAQABAAUAFgACAAcAAAAEAAEACQAKAAAAOQABAAIAAAAFKrcADbEAAAACAA4AAAAGAAEAAAAMAA8AAAAWAAIAAAAFABAAEQAAAAAABQASABcAAQABABgAGQACAAcAAAAEAAEAGwAKAAAALAABAAEAAAACA6wAAAACAA4AAAAGAAEAAAANAA8AAAAMAAEAAAACABAAEQAAAAEAHAALAAIABwAAAAQAAQAbAAoAAAArAAAAAQAAAAGxAAAAAgAOAAAABgABAAAADgAPAAAADAABAAAAAQAQABEAAAAEAB0ACwACAAcAAAAEAAEAGwAKAAAAKwAAAAEAAAABsQAAAAIADgAAAAYAAQAAAA8ADwAAAAwAAQAAAAEAEAARAAAAEQAeAB8AAgAHAAAABAABABsACgAAACwAAQABAAAAAgGwAAAAAgAOAAAABgABAAAAEAAPAAAADAABAAAAAgAQABEAAAABACAAGQACAAcAAAAEAAEAGwAKAAAALAABAAEAAAACA6wAAAACAA4AAAAGAAEAAAARAA8AAAAMAAEAAAACABAAEQAAAAEAIAAhAAIABwAAAAQAAQAbAAoAAAA2AAEAAgAAAAIDrAAAAAIADgAAAAYAAQAAABIADwAAABYAAgAAAAIAEAARAAAAAAACABIAIgABAAEAIAAjAAIABwAAAAQAAQAbAAoAAABKAAEABAAAAAIDrAAAAAIADgAAAAYAAQAAABMADwAAACoABAAAAAIAEAARAAAAAAACABIAIgABAAAAAgAkACUAAgAAAAIAJgAlAAMAAQAnACgAAgAHAAAABAABABsACgAAADYAAgADAAAAAgmtAAAAAgAOAAAABgABAAAAFAAPAAAAFgACAAAAAgAQABEAAAAAAAIAEgApAAEAAQAqAAAAAgArUEsDBAoAAAAAADtDujKzzLLurgEAAK4BAAAjAAAAamF2YS9pby9GaWxlTm90Rm91bmRFeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQAdamF2YS9pby9GaWxlTm90Rm91bmRFeGNlcHRpb24HAAEBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAfTGphdmEvaW8vRmlsZU5vdEZvdW5kRXhjZXB0aW9uOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAaRmlsZU5vdEZvdW5kRXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujI8BzFvWQUAAFkFAAAeAAAAamF2YS9pby9GaWxlT3V0cHV0U3RyZWFtLmNsYXNzyv66vgAAAC4AKgEAGGphdmEvaW8vRmlsZU91dHB1dFN0cmVhbQcAAQEAFGphdmEvaW8vT3V0cHV0U3RyZWFtBwADAQAGPGluaXQ+AQARKExqYXZhL2lvL0ZpbGU7KVYBAApFeGNlcHRpb25zAQAdamF2YS9pby9GaWxlTm90Rm91bmRFeGNlcHRpb24HAAgBAARDb2RlAQADKClWDAAFAAsKAAQADAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABpMamF2YS9pby9GaWxlT3V0cHV0U3RyZWFtOwEABHZhcjABAA5MamF2YS9pby9GaWxlOwEAGyhMamF2YS9pby9GaWxlRGVzY3JpcHRvcjspVgEAGExqYXZhL2lvL0ZpbGVEZXNjcmlwdG9yOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAFihMamF2YS9sYW5nL1N0cmluZztaKVYBAAR2YXIxAQABWgEABWNsb3NlAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAHAEACGZpbmFsaXplAQAFZ2V0RkQBABooKUxqYXZhL2lvL0ZpbGVEZXNjcmlwdG9yOwEABXdyaXRlAQAFKFtCKVYBAAJbQgEAByhbQklJKVYBAAFJAQAEdmFyMgEABChJKVYBAApTb3VyY2VGaWxlAQAVRmlsZU91dHB1dFN0cmVhbS5qYXZhACEAAgAEAAAAAAAKAAEABQAGAAIABwAAAAQAAQAJAAoAAAA5AAEAAgAAAAUqtwANsQAAAAIADgAAAAYAAQAAAAoADwAAABYAAgAAAAUAEAARAAAAAAAFABIAEwABAAEABQAUAAEACgAAADkAAQACAAAABSq3AA2xAAAAAgAOAAAABgABAAAACwAPAAAAFgACAAAABQAQABEAAAAAAAUAEgAVAAEAAQAFABYAAgAHAAAABAABAAkACgAAADkAAQACAAAABSq3AA2xAAAAAgAOAAAABgABAAAADAAPAAAAFgACAAAABQAQABEAAAAAAAUAEgAXAAEAAQAFABgAAgAHAAAABAABAAkACgAAAEMAAQADAAAABSq3AA2xAAAAAgAOAAAABgABAAAADQAPAAAAIAADAAAABQAQABEAAAAAAAUAEgAXAAEAAAAFABkAGgACAAEAGwALAAIABwAAAAQAAQAdAAoAAAArAAAAAQAAAAGxAAAAAgAOAAAABgABAAAADgAPAAAADAABAAAAAQAQABEAAAAEAB4ACwACAAcAAAAEAAEAHQAKAAAAKwAAAAEAAAABsQAAAAIADgAAAAYAAQAAAA8ADwAAAAwAAQAAAAEAEAARAAAAEQAfACAAAgAHAAAABAABAB0ACgAAACwAAQABAAAAAgGwAAAAAgAOAAAABgABAAAAEAAPAAAADAABAAAAAgAQABEAAAABACEAIgACAAcAAAAEAAEAHQAKAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABEADwAAABYAAgAAAAEAEAARAAAAAAABABIAIwABAAEAIQAkAAIABwAAAAQAAQAdAAoAAABJAAAABAAAAAGxAAAAAgAOAAAABgABAAAAEgAPAAAAKgAEAAAAAQAQABEAAAAAAAEAEgAjAAEAAAABABkAJQACAAAAAQAmACUAAwABACEAJwACAAcAAAAEAAEAHQAKAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABMADwAAABYAAgAAAAEAEAARAAAAAAABABIAJQABAAEAKAAAAAIAKVBLAwQKAAAAAAA7Q7oyIoGUBN4DAADeAwAAHAAAAGphdmEvaW8vRmlsZVBlcm1pc3Npb24uY2xhc3PK/rq+AAAALgAiAQAWamF2YS9pby9GaWxlUGVybWlzc2lvbgcAAQEAGGphdmEvc2VjdXJpdHkvUGVybWlzc2lvbgcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAGPGluaXQ+AQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEQ29kZQEAFShMamF2YS9sYW5nL1N0cmluZzspVgwABwAKCgAEAAsBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAYTGphdmEvaW8vRmlsZVBlcm1pc3Npb247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABHZhcjEBAApnZXRBY3Rpb25zAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBABJMamF2YS9sYW5nL09iamVjdDsBAAdpbXBsaWVzAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVoBABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEAF25ld1Blcm1pc3Npb25Db2xsZWN0aW9uAQAmKClMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbjsBAAhoYXNoQ29kZQEAAygpSQEAClNvdXJjZUZpbGUBABNGaWxlUGVybWlzc2lvbi5qYXZhADEAAgAEAAEABgAAAAYAAQAHAAgAAQAJAAAARAACAAMAAAAGKgG3AAyxAAAAAgANAAAABgABAAAACgAOAAAAIAADAAAABgAPABAAAAAAAAYAEQASAAEAAAAGABMAEgACAAEAFAAVAAEACQAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAACwAOAAAA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AAACABhQSwMECgAAAAAAO0O6MvfdgqgBBAAAAQQAACgAAABqYXZhL2lvL09iamVjdElucHV0U3RyZWFtJEdldEZpZWxkLmNsYXNzyv66vgAAAC4AJwEAImphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0kR2V0RmllbGQHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAkTGphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0kR2V0RmllbGQ7AQAUZ2V0T2JqZWN0U3RyZWFtQ2xhc3MBAB0oKUxqYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzOwEACWRlZmF1bHRlZAEAFShMamF2YS9sYW5nL1N0cmluZzspWgEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwATAQAiamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgcAFQEAA2dldAEAFihMamF2YS9sYW5nL1N0cmluZztaKVoBABYoTGphdmEvbGFuZy9TdHJpbmc7QylDAQAWKExqYXZhL2xhbmcvU3RyaW5nO0IpQgEAFihMamF2YS9sYW5nL1N0cmluZztTKVMBABYoTGphdmEvbGFuZy9TdHJpbmc7SSlJAQAWKExqYXZhL2xhbmcvU3RyaW5nO0opSgEAFihMamF2YS9sYW5nL1N0cmluZztGKUYBABYoTGphdmEvbGFuZy9TdHJpbmc7RClEAQA4KExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvT2JqZWN0OylMamF2YS9sYW5nL09iamVjdDsBAApTb3VyY2VGaWxlAQAWT2JqZWN0SW5wdXRTdHJlYW0uamF2YQEADElubmVyQ2xhc3NlcwEAGWphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0HACQBAAhHZXRGaWVsZAQhAAIABAAAAAAADAABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAACsACwAAAAwAAQAAAAUADAANAAAEAQAOAA8AAAQBABAAEQABABIAAAAGAAIAFAAWBAEAFwAYAAEAEgAAAAYAAgAUABYEAQAXABkAAQASAAAABgACABQAFgQBABcAGgABABIAAAAGAAIAFAAWBAEAFwAbAAEAEgAAAAYAAgAUABYEAQAXABwAAQASAAAABgACABQAFgQBABcAHQABABIAAAAGAAIAFAAWBAEAFwAeAAEAEgAAAAYAAgAUABYEAQAXAB8AAQASAAAABgACABQAFgQBABcAIAABABIAAAAGAAIAFAAWAAIAIQAAAAIAIgAjAAAACgABAAIAJQAmBAlQSwMECgAAAAAAO0O6Mv9sMGZ7DwAAew8AAB8AAABqYXZhL2lvL09iamVjdElucHV0U3RyZWFtLmNsYXNzyv66vgAAAC4AZAEAGWphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0HAAEBABNqYXZhL2lvL0lucHV0U3RyZWFtBwADAQATamF2YS9pby9PYmplY3RJbnB1dAcABQEAHWphdmEvaW8vT2JqZWN0U3RyZWFtQ29uc3RhbnRzBwAHAQAGPGluaXQ+AQADKClWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAwBABtqYXZhL2xhbmcvU2VjdXJpdHlFeGNlcHRpb24HAA4BAARDb2RlDAAJAAoKAAQAEQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABtMamF2YS9pby9PYmplY3RJbnB1dFN0cmVhbTsBABgoTGphdmEvaW8vSW5wdXRTdHJlYW07KVYBACBqYXZhL2lvL1N0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbgcAGAEABHZhcjABABVMamF2YS9pby9JbnB1dFN0cmVhbTsBAAlhdmFpbGFibGUBAAMoKUkBAAVjbG9zZQEAEWRlZmF1bHRSZWFkT2JqZWN0AQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24HACABABpqYXZhL2lvL05vdEFjdGl2ZUV4Y2VwdGlvbgcAIgEAE2VuYWJsZVJlc29sdmVPYmplY3QBAAQoWilaAQABWgEABHJlYWQBAAcoW0JJSSlJAQACW0IBAAR2YXIxAQABSQEABHZhcjIBAAtyZWFkQm9vbGVhbgEAAygpWgEACHJlYWRCeXRlAQADKClCAQAIcmVhZENoYXIBAAMoKUMBAApyZWFkRG91YmxlAQADKClEAQAKcmVhZEZpZWxkcwEAJigpTGphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0kR2V0RmllbGQ7AQAJcmVhZEZsb2F0AQADKClGAQAJcmVhZEZ1bGx5AQAFKFtCKVYBAAcoW0JJSSlWAQAHcmVhZEludAEACHJlYWRMaW5lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAhyZWFkTG9uZwEAAygpSgEAE3JlYWRDbGFzc0Rlc2NyaXB0b3IBAB0oKUxqYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzOwEAEXJlc29sdmVQcm94eUNsYXNzAQAmKFtMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABNbTGphdmEvbGFuZy9TdHJpbmc7AQAKcmVhZE9iamVjdAEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAdamF2YS9pby9PcHRpb25hbERhdGFFeGNlcHRpb24HAEgBABJyZWFkT2JqZWN0T3ZlcnJpZGUBAAlyZWFkU2hvcnQBAAMoKVMBABByZWFkU3RyZWFtSGVhZGVyAQAQcmVhZFVuc2lnbmVkQnl0ZQEAEXJlYWRVbnNpZ25lZFNob3J0AQAHcmVhZFVURgEAEnJlZ2lzdGVyVmFsaWRhdGlvbgEAIyhMamF2YS9pby9PYmplY3RJbnB1dFZhbGlkYXRpb247SSlWAQAeamF2YS9pby9JbnZhbGlkT2JqZWN0RXhjZXB0aW9uBwBTAQAfTGphdmEvaW8vT2JqZWN0SW5wdXRWYWxpZGF0aW9uOwEADHJlc29sdmVDbGFzcwEALihMamF2YS9pby9PYmplY3RTdHJlYW1DbGFzczspTGphdmEvbGFuZy9DbGFzczsBABtMamF2YS9pby9PYmplY3RTdHJlYW1DbGFzczsBAA1yZXNvbHZlT2JqZWN0AQAmKExqYXZhL2xhbmcvT2JqZWN0OylMamF2YS9sYW5nL09iamVjdDsBABJMamF2YS9sYW5nL09iamVjdDsBAAlza2lwQnl0ZXMBAAQoSSlJAQAKU291cmNlRmlsZQEAFk9iamVjdElucHV0U3RyZWFtLmphdmEBAAxJbm5lckNsYXNzZXMBACJqYXZhL2lvL09iamVjdElucHV0U3RyZWFtJEdldEZpZWxkBwBhAQAIR2V0RmllbGQAIQACAAQAAgAGAAgAAAAgAAQACQAKAAIACwAAAAYAAgANAA8AEAAAAC8AAQABAAAABSq3ABKxAAAAAgATAAAABgABAAAACgAUAAAADAABAAAABQAVABYAAAABAAkAFwACAAsAAAAGAAIAGQANABAAAAA5AAEAAgAAAAUqtwASsQAAAAIAEwAAAAYAAQAAAAsAFAAAABYAAgAAAAUAFQAWAAAAAAAFABoAGwABAAEAHAAdAAIACwAAAAQAAQANABAAAAAsAAEAAQAAAAIDrAAAAAIAEwAAAAYAAQAAAAwAFAAAAAwAAQAAAAIAFQAWAAAAAQAeAAoAAgALAAAABAABAA0AEAAAACsAAAABAAAAAbEAAAACABMAAAAGAAEAAAANABQAAAAMAAEAAAABABUAFgAAAAEAHwAKAAIACwAAAAgAAwANACEAIwAQAAAAKwAAAAEAAAABsQAAAAIAEwAAAAYAAQAAAA4AFAAAAAwAAQAAAAEAFQAWAAAABAAkACUAAgALAAAABAABAA8AEAAAADYAAQACAAAAAgOsAAAAAgATAAAABgABAAAADwAUAAAAFgACAAAAAgAVABYAAAAAAAIAGgAmAAEAAQAnAB0AAgALAAAABAABAA0AEAAAACwAAQABAAAAAgOsAAAAAgATAAAABgABAAAAEAAUAAAADAABAAAAAgAVABYAAAABACcAKAACAAsAAAAEAAEADQAQAAAASgABAAQAAAACA6wAAAACABMAAAAGAAEAAAARABQAAAAqAAQAAAACABUAFgAAAAAAAgAaACkAAQAAAAIAKgArAAIAAAACACwAKwADAAEALQAuAAIACwAAAAQAAQANABAAAAAsAAEAAQAAAAIDrAAAAAIAEwAAAAYAAQAAABIAFAAAAAwAAQAAAAIAFQAWAAAAAQAvADAAAgALAAAABAABAA0AEAAAACwAAQABAAAAAgOsAAAAAgATAAAABgABAAAAEwAUAAAADAABAAAAAgAVABYAAAABADEAMgACAAsAAAAEAAEADQAQAAAALAABAAEAAAACA6wAAAACABMAAAAGAAEAAAAUABQAAAAMAAEAAAACABUAFgAAAAEAMwA0AAIACwAAAAQAAQANABAAAAAsAAIAAQAAAAIOrwAAAAIAEwAAAAYAAQAAABUAFAAAAAwAAQAAAAIAFQAWAAAAAQA1ADYAAgALAAAACAADAA0AIQAjABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAABYAFAAAAAwAAQAAAAIAFQAWAAAAAQA3ADgAAgALAAAABAABAA0AEAAAACwAAQABAAAAAguuAAAAAgATAAAABgABAAAAFwAUAAAADAABAAAAAgAVABYAAAABADkAOgACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAABgAFAAAABYAAgAAAAEAFQAWAAAAAAABABoAKQABAAEAOQA7AAIACwAAAAQAAQANABAAAABJAAAABAAAAAGxAAAAAgATAAAABgABAAAAGQAUAAAAKgAEAAAAAQAVABYAAAAAAAEAGgApAAEAAAABACoAKwACAAAAAQAsACsAAwABADwAHQACAAsAAAAEAAEADQAQAAAALAABAAEAAAACA6wAAAACABMAAAAGAAEAAAAaABQAAAAMAAEAAAACABUAFgAAAAEAPQA+AAIACwAAAAQAAQANABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAABsAFAAAAAwAAQAAAAIAFQAWAAAAAQA/AEAAAgALAAAABAABAA0AEAAAACwAAgABAAAAAgmtAAAAAgATAAAABgABAAAAHAAUAAAADAABAAAAAgAVABYAAAAEAEEAQgACAAsAAAAGAAIADQAhABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAAB0AFAAAAAwAAQAAAAIAFQAWAAAABABDAEQAAgALAAAABgACAA0AIQAQAAAANgABAAIAAAACAbAAAAACABMAAAAGAAEAAAAeABQAAAAWAAIAAAACABUAFgAAAAAAAgAaAEUAAQARAEYARwACAAsAAAAIAAMASQAhAA0AEAAAACwAAQABAAAAAgGwAAAAAgATAAAABgABAAAAHwAUAAAADAABAAAAAgAVABYAAAAEAEoARwACAAsAAAAIAAMASQAhAA0AEAAAACwAAQABAAAAAgGwAAAAAgATAAAABgABAAAAIAAUAAAADAABAAAAAgAVABYAAAABAEsATAACAAsAAAAEAAEADQAQAAAALAABAAEAAAACA6wAAAACABMAAAAGAAEAAAAhABQAAAAMAAEAAAACABUAFgAAAAQATQAKAAIACwAAAAYAAgANABkAEAAAACsAAAABAAAAAbEAAAACABMAAAAGAAEAAAAiABQAAAAMAAEAAAABABUAFgAAAAEATgAdAAIACwAAAAQAAQANABAAAAAsAAEAAQAAAAIDrAAAAAIAEwAAAAYAAQAAACMAFAAAAAwAAQAAAAIAFQAWAAAAAQBPAB0AAgALAAAABAABAA0AEAAAACwAAQABAAAAAgOsAAAAAgATAAAABgABAAAAJAAUAAAADAABAAAAAgAVABYAAAABAFAAPgACAAsAAAAEAAEADQAQAAAALAABAAEAAAACAbAAAAACABMAAAAGAAEAAAAlABQAAAAMAAEAAAACABUAFgAAAAEAUQBSAAIACwAAAAYAAgAjAFQAEAAAAD8AAAADAAAAAbEAAAACABMAAAAGAAEAAAAmABQAAAAgAAMAAAABABUAFgAAAAAAAQAaAFUAAQAAAAEAKgArAAIABABWAFcAAgALAAAABgACAA0AIQAQAAAANgABAAIAAAACAbAAAAACABMAAAAGAAEAAAAnABQAAAAWAAIAAAACABUAFgAAAAAAAgAaAFgAAQAEAFkAWgACAAsAAAAEAAEADQAQAAAANgABAAIAAAACAbAAAAACABMAAAAGAAEAAAAoABQAAAAWAAIAAAACABUAFgAAAAAAAgAaAFsAAQABAFwAXQACAAsAAAAEAAEADQAQAAAANgABAAIAAAACA6wAAAACABMAAAAGAAEAAAApABQAAAAWAAIAAAACABUAFgAAAAAAAgAaACsAAQACAF4AAAACAF8AYAAAAAoAAQBiAAIAYwQJUEsDBAoAAAAAADtDujInngNM3QAAAN0AAAAjAAAAamF2YS9pby9PYmplY3RJbnB1dFZhbGlkYXRpb24uY2xhc3PK/rq+AAAALgAMAQAdamF2YS9pby9PYmplY3RJbnB1dFZhbGlkYXRpb24HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAOdmFsaWRhdGVPYmplY3QBAAMoKVYBAApFeGNlcHRpb25zAQAeamF2YS9pby9JbnZhbGlkT2JqZWN0RXhjZXB0aW9uBwAIAQAKU291cmNlRmlsZQEAGk9iamVjdElucHV0VmFsaWRhdGlvbi5qYXZhBgEAAgAEAAAAAAABBAEABQAGAAEABwAAAAQAAQAJAAEACgAAAAIAC1BLAwQKAAAAAAA7Q7oyJF4aiHoBAAB6AQAAGgAAAGphdmEvaW8vT2JqZWN0T3V0cHV0LmNsYXNzyv66vgAAAC4AFQEAFGphdmEvaW8vT2JqZWN0T3V0cHV0BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAEmphdmEvaW8vRGF0YU91dHB1dAcABQEABWNsb3NlAQADKClWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAoBAAVmbHVzaAEABXdyaXRlAQAFKFtCKVYBAAcoW0JJSSlWAQAEKEkpVgEAC3dyaXRlT2JqZWN0AQAVKExqYXZhL2xhbmcvT2JqZWN0OylWAQAKU291cmNlRmlsZQEAEU9iamVjdE91dHB1dC5qYXZhBgEAAgAEAAEABgAAAAYEAQAHAAgAAQAJAAAABAABAAsEAQAMAAgAAQAJAAAABAABAAsEAQANAA4AAQAJAAAABAABAAsEAQANAA8AAQAJAAAABAABAAsEAQANABAAAQAJAAAABAABAAsEAQARABIAAQAJAAAABAABAAsAAQATAAAAAgAUUEsDBAoAAAAAADtDujIa7JQ/HwMAAB8DAAApAAAAamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0kUHV0RmllbGQuY2xhc3PK/rq+AAAALgAjAQAjamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0kUHV0RmllbGQHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAlTGphdmEvaW8vT2JqZWN0T3V0cHV0U3RyZWFtJFB1dEZpZWxkOwEAA3B1dAEAFihMamF2YS9sYW5nL1N0cmluZztaKVYBABYoTGphdmEvbGFuZy9TdHJpbmc7QylWAQAWKExqYXZhL2xhbmcvU3RyaW5nO0IpVgEAFihMamF2YS9sYW5nL1N0cmluZztTKVYBABYoTGphdmEvbGFuZy9TdHJpbmc7SSlWAQAWKExqYXZhL2xhbmcvU3RyaW5nO0opVgEAFihMamF2YS9sYW5nL1N0cmluZztGKVYBABYoTGphdmEvbGFuZy9TdHJpbmc7RClWAQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvT2JqZWN0OylWAQAFd3JpdGUBABkoTGphdmEvaW8vT2JqZWN0T3V0cHV0OylWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HABsBAApTb3VyY2VGaWxlAQAXT2JqZWN0T3V0cHV0U3RyZWFtLmphdmEBAAxJbm5lckNsYXNzZXMBABpqYXZhL2lvL09iamVjdE91dHB1dFN0cmVhbQcAIAEACFB1dEZpZWxkBCEAAgAEAAAAAAALAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAAKwALAAAADAABAAAABQAMAA0AAAQBAA4ADwAABAEADgAQAAAEAQAOABEAAAQBAA4AEgAABAEADgATAAAEAQAOABQAAAQBAA4AFQAABAEADgAWAAAEAQAOABcAAAQBABgAGQABABoAAAAEAAEAHAACAB0AAAACAB4AHwAAAAoAAQACACEAIgQJUEsDBAoAAAAAADtDujK1Vw/gdw4AAHcOAAAgAAAAamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0uY2xhc3PK/rq+AAAALgBWAQAaamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0HAAEBABRqYXZhL2lvL091dHB1dFN0cmVhbQcAAwEAFGphdmEvaW8vT2JqZWN0T3V0cHV0BwAFAQAdamF2YS9pby9PYmplY3RTdHJlYW1Db25zdGFudHMHAAcBAAY8aW5pdD4BAAMoKVYBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcADAEAG2phdmEvbGFuZy9TZWN1cml0eUV4Y2VwdGlvbgcADgEABENvZGUMAAkACgoABAARAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAHExqYXZhL2lvL09iamVjdE91dHB1dFN0cmVhbTsBABkoTGphdmEvaW8vT3V0cHV0U3RyZWFtOylWAQAEdmFyMAEAFkxqYXZhL2lvL091dHB1dFN0cmVhbTsBAA1hbm5vdGF0ZUNsYXNzAQAUKExqYXZhL2xhbmcvQ2xhc3M7KVYBABFMamF2YS9sYW5nL0NsYXNzOwEAEmFubm90YXRlUHJveHlDbGFzcwEABWNsb3NlAQASZGVmYXVsdFdyaXRlT2JqZWN0AQAFZHJhaW4BABNlbmFibGVSZXBsYWNlT2JqZWN0AQAEKFopWgEAAVoBAAVmbHVzaAEACXB1dEZpZWxkcwEAJygpTGphdmEvaW8vT2JqZWN0T3V0cHV0U3RyZWFtJFB1dEZpZWxkOwEADXJlcGxhY2VPYmplY3QBACYoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwEAEkxqYXZhL2xhbmcvT2JqZWN0OwEABXJlc2V0AQASdXNlUHJvdG9jb2xWZXJzaW9uAQAEKEkpVgEAAUkBAAV3cml0ZQEABShbQilWAQACW0IBAAcoW0JJSSlWAQAEdmFyMQEABHZhcjIBAAx3cml0ZUJvb2xlYW4BAAQoWilWAQAJd3JpdGVCeXRlAQAKd3JpdGVCeXRlcwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEACXdyaXRlQ2hhcgEACndyaXRlQ2hhcnMBAAt3cml0ZURvdWJsZQEABChEKVYBAAFEAQALd3JpdGVGaWVsZHMBAAp3cml0ZUZsb2F0AQAEKEYpVgEAAUYBAAh3cml0ZUludAEACXdyaXRlTG9uZwEABChKKVYBAAFKAQAUd3JpdGVDbGFzc0Rlc2NyaXB0b3IBAB4oTGphdmEvaW8vT2JqZWN0U3RyZWFtQ2xhc3M7KVYBABtMamF2YS9pby9PYmplY3RTdHJlYW1DbGFzczsBAAt3cml0ZU9iamVjdAEAFShMamF2YS9sYW5nL09iamVjdDspVgEAE3dyaXRlT2JqZWN0T3ZlcnJpZGUBAAp3cml0ZVNob3J0AQARd3JpdGVTdHJlYW1IZWFkZXIBAAh3cml0ZVVURgEAClNvdXJjZUZpbGUBABdPYmplY3RPdXRwdXRTdHJlYW0uamF2YQEADElubmVyQ2xhc3NlcwEAI2phdmEvaW8vT2JqZWN0T3V0cHV0U3RyZWFtJFB1dEZpZWxkBwBTAQAIUHV0RmllbGQAIQACAAQAAgAGAAgAAAAgAAQACQAKAAIACwAAAAYAAgANAA8AEAAAAC8AAQABAAAABSq3ABKxAAAAAgATAAAABgABAAAACgAUAAAADAABAAAABQAVABYAAAABAAkAFwACAAsAAAAEAAEADQAQAAAAOQABAAIAAAAFKrcAErEAAAACABMAAAAGAAEAAAALABQAAAAWAAIAAAAFABUAFgAAAAAABQAYABkAAQAEABoAGwACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAAAwAFAAAABYAAgAAAAEAFQAWAAAAAAABABgAHAABAAQAHQAbAAIACwAAAAQAAQANABAAAAA1AAAAAgAAAAGxAAAAAgATAAAABgABAAAADQAUAAAAFgACAAAAAQAVABYAAAAAAAEAGAAcAAEAAQAeAAoAAgALAAAABAABAA0AEAAAACsAAAABAAAAAbEAAAACABMAAAAGAAEAAAAOABQAAAAMAAEAAAABABUAFgAAAAEAHwAKAAIACwAAAAQAAQANABAAAAArAAAAAQAAAAGxAAAAAgATAAAABgABAAAADwAUAAAADAABAAAAAQAVABYAAAAEACAACgACAAsAAAAEAAEADQAQAAAAKwAAAAEAAAABsQAAAAIAEwAAAAYAAQAAABAAFAAAAAwAAQAAAAEAFQAWAAAABAAhACIAAgALAAAABAABAA8AEAAAADYAAQACAAAAAgOsAAAAAgATAAAABgABAAAAEQAUAAAAFgACAAAAAgAVABYAAAAAAAIAGAAjAAEAAQAkAAoAAgALAAAABAABAA0AEAAAACsAAAABAAAAAbEAAAACABMAAAAGAAEAAAASABQAAAAMAAEAAAABABUAFgAAAAEAJQAmAAIACwAAAAQAAQANABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAABMAFAAAAAwAAQAAAAIAFQAWAAAABAAnACgAAgALAAAABAABAA0AEAAAADYAAQACAAAAAgGwAAAAAgATAAAABgABAAAAFAAUAAAAFgACAAAAAgAVABYAAAAAAAIAGAApAAEAAQAqAAoAAgALAAAABAABAA0AEAAAACsAAAABAAAAAbEAAAACABMAAAAGAAEAAAAVABQAAAAMAAEAAAABABUAFgAAAAEAKwAsAAIACwAAAAQAAQANABAAAAA1AAAAAgAAAAGxAAAAAgATAAAABgABAAAAFgAUAAAAFgACAAAAAQAVABYAAAAAAAEAGAAtAAEAAQAuAC8AAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAXABQAAAAWAAIAAAABABUAFgAAAAAAAQAYADAAAQABAC4AMQACAAsAAAAEAAEADQAQAAAASQAAAAQAAAABsQAAAAIAEwAAAAYAAQAAABgAFAAAACoABAAAAAEAFQAWAAAAAAABABgAMAABAAAAAQAyAC0AAgAAAAEAMwAtAAMAAQAuACwAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAZABQAAAAWAAIAAAABABUAFgAAAAAAAQAYAC0AAQABADQANQACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAABoAFAAAABYAAgAAAAEAFQAWAAAAAAABABgAIwABAAEANgAsAAIACwAAAAQAAQANABAAAAA1AAAAAgAAAAGxAAAAAgATAAAABgABAAAAGwAUAAAAFgACAAAAAQAVABYAAAAAAAEAGAAtAAEAAQA3ADgAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAcABQAAAAWAAIAAAABABUAFgAAAAAAAQAYADkAAQABADoALAACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAAB0AFAAAABYAAgAAAAEAFQAWAAAAAAABABgALQABAAEAOwA4AAIACwAAAAQAAQANABAAAAA1AAAAAgAAAAGxAAAAAgATAAAABgABAAAAHgAUAAAAFgACAAAAAQAVABYAAAAAAAEAGAA5AAEAAQA8AD0AAgALAAAABAABAA0AEAAAADUAAAADAAAAAbEAAAACABMAAAAGAAEAAAAfABQAAAAWAAIAAAABABUAFgAAAAAAAQAYAD4AAQABAD8ACgACAAsAAAAEAAEADQAQAAAAKwAAAAEAAAABsQAAAAIAEwAAAAYAAQAAACAAFAAAAAwAAQAAAAEAFQAWAAAAAQBAAEEAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAhABQAAAAWAAIAAAABABUAFgAAAAAAAQAYAEIAAQABAEMALAACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAACIAFAAAABYAAgAAAAEAFQAWAAAAAAABABgALQABAAEARABFAAIACwAAAAQAAQANABAAAAA1AAAAAwAAAAGxAAAAAgATAAAABgABAAAAIwAUAAAAFgACAAAAAQAVABYAAAAAAAEAGABGAAEABABHAEgAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAkABQAAAAWAAIAAAABABUAFgAAAAAAAQAYAEkAAQARAEoASwACAAsAAAAEAAEADQAQAAAANQAAAAIAAAABsQAAAAIAEwAAAAYAAQAAACUAFAAAABYAAgAAAAEAFQAWAAAAAAABABgAKQABAAQATABLAAIACwAAAAQAAQANABAAAAA1AAAAAgAAAAGxAAAAAgATAAAABgABAAAAJgAUAAAAFgACAAAAAQAVABYAAAAAAAEAGAApAAEAAQBNACwAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAAnABQAAAAWAAIAAAABABUAFgAAAAAAAQAYAC0AAQAEAE4ACgACAAsAAAAEAAEADQAQAAAAKwAAAAEAAAABsQAAAAIAEwAAAAYAAQAAACgAFAAAAAwAAQAAAAEAFQAWAAAAAQBPADgAAgALAAAABAABAA0AEAAAADUAAAACAAAAAbEAAAACABMAAAAGAAEAAAApABQAAAAWAAIAAAABABUAFgAAAAAAAQAYADkAAQACAFAAAAACAFEAUgAAAAoAAQBUAAIAVQQJUEsDBAoAAAAAADtDujJK/TCpnAQAAJwEAAAfAAAAamF2YS9pby9PYmplY3RTdHJlYW1DbGFzcy5jbGFzc8r+ur4AAAAuACcBABlqYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAJTk9fRklFTERTAQAcW0xqYXZhL2lvL09iamVjdFN0cmVhbUZpZWxkOwEACDxjbGluaXQ+AQADKClWAQAEQ29kZQwABwAICQACAAwBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAhmb3JDbGFzcwEAEygpTGphdmEvbGFuZy9DbGFzczsBAAR0aGlzAQAbTGphdmEvaW8vT2JqZWN0U3RyZWFtQ2xhc3M7AQAIZ2V0RmllbGQBAC8oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2lvL09iamVjdFN0cmVhbUZpZWxkOwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAlnZXRGaWVsZHMBAB4oKVtMamF2YS9pby9PYmplY3RTdHJlYW1GaWVsZDsBAAdnZXROYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBABNnZXRTZXJpYWxWZXJzaW9uVUlEAQADKClKAQAGbG9va3VwAQAuKExqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzOwEAEUxqYXZhL2xhbmcvQ2xhc3M7AQAIdG9TdHJpbmcBAAY8aW5pdD4MACIACgoABAAjAQAKU291cmNlRmlsZQEAFk9iamVjdFN0cmVhbUNsYXNzLmphdmEAIQACAAQAAQAGAAEAGQAHAAgAAAAJAAgACQAKAAEACwAAACkAAQAAAAAABQGzAA2xAAAAAgAOAAAACgACAAAAEQAEAAkADwAAAAIAAAABABAAEQABAAsAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAAAoADwAAAAwAAQAAAAIAEgATAAAAAQAUABUAAQALAAAANgABAAIAAAACAbAAAAACAA4AAAAGAAEAAAALAA8AAAAWAAIAAAACABIAEwAAAAAAAgAWABcAAQABABgAGQABAAsAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAAAwADwAAAAwAAQAAAAIAEgATAAAAAQAaABsAAQALAAAALAABAAEAAAACAbAAAAACAA4AAAAGAAEAAAANAA8AAAAMAAEAAAACABIAEwAAAAEAHAAdAAEACwAAACwAAgABAAAAAgmtAAAAAgAOAAAABgABAAAADgAPAAAADAABAAAAAgASABMAAAAJAB4AHwABAAsAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAAA8ADwAAAAwAAQAAAAIAFgAgAAAAAQAhABsAAQALAAAALAABAAEAAAACAbAAAAACAA4AAAAGAAEAAAAQAA8AAAAMAAEAAAACABIAEwAAAAIAIgAKAAEACwAAAC8AAQABAAAABSq3ACSxAAAAAgAOAAAABgABAAAAEgAPAAAADAABAAAABQASABMAAAABACUAAAACACZQSwMECgAAAAAAO0O6MugGio0aBQAAGgUAACMAAABqYXZhL2lvL09iamVjdFN0cmVhbUNvbnN0YW50cy5jbGFzc8r+ur4AAAAuAEUBAB1qYXZhL2lvL09iamVjdFN0cmVhbUNvbnN0YW50cwcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAxTVFJFQU1fTUFHSUMBAAFTAQANQ29uc3RhbnRWYWx1ZQP//6ztAQAOU1RSRUFNX1ZFUlNJT04DAAAABQEAB1RDX0JBU0UBAAFCAwAAAHABAAdUQ19OVUxMAQAMVENfUkVGRVJFTkNFAwAAAHEBAAxUQ19DTEFTU0RFU0MDAAAAcgEACVRDX09CSkVDVAMAAABzAQAJVENfU1RSSU5HAwAAAHQBAAhUQ19BUlJBWQMAAAB1AQAIVENfQ0xBU1MDAAAAdgEADFRDX0JMT0NLREFUQQMAAAB3AQAPVENfRU5EQkxPQ0tEQVRBAwAAAHgBAAhUQ19SRVNFVAMAAAB5AQAQVENfQkxPQ0tEQVRBTE9ORwMAAAB6AQAMVENfRVhDRVBUSU9OAwAAAHsBAA1UQ19MT05HU1RSSU5HAwAAAHwBABFUQ19QUk9YWUNMQVNTREVTQwMAAAB9AQAGVENfTUFYAQAOYmFzZVdpcmVIYW5kbGUBAAFJAwB+AAABABJQUk9UT0NPTF9WRVJTSU9OXzEDAAAAAQEAElBST1RPQ09MX1ZFUlNJT05fMgMAAAACAQAiU1VCQ0xBU1NfSU1QTEVNRU5UQVRJT05fUEVSTUlTU0lPTgEAIExqYXZhL2lvL1NlcmlhbGl6YWJsZVBlcm1pc3Npb247AQAXU1VCU1RJVFVUSU9OX1BFUk1JU1NJT04BAA9TQ19XUklURV9NRVRIT0QBAA9TQ19TRVJJQUxJWkFCTEUBABFTQ19FWFRFUk5BTElaQUJMRQMAAAAEAQANU0NfQkxPQ0tfREFUQQMAAAAIAQAIPGNsaW5pdD4BAAMoKVYBAARDb2RlDAAxADIJAAIAPQwAMwAyCQACAD8BAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAApTb3VyY2VGaWxlAQAaT2JqZWN0U3RyZWFtQ29uc3RhbnRzLmphdmEGAQACAAQAAAAbABkABQAGAAEABwAAAAIACAAZAAkABgABAAcAAAACAAoAGQALAAwAAQAHAAAAAgANABkADgAMAAEABwAAAAIADQAZAA8ADAABAAcAAAACABAAGQARAAwAAQAHAAAAAgASABkAEwAMAAEABwAAAAIAFAAZABUADAABAAcAAAACABYAGQAXAAwAAQAHAAAAAgAYABkAGQAMAAEABwAAAAIAGgAZABsADAABAAcAAAACABwAGQAdAAwAAQAHAAAAAgAeABkAHwAMAAEABwAAAAIAIAAZACEADAABAAcAAAACACIAGQAjAAwAAQAHAAAAAgAkABkAJQAMAAEABwAAAAIAJgAZACcADAABAAcAAAACACgAGQApAAwAAQAHAAAAAgAoABkAKgArAAEABwAAAAIALAAZAC0AKwABAAcAAAACAC4AGQAvACsAAQAHAAAAAgAwABkAMQAyAAAAGQAzADIAAAAZADQADAABAAcAAAACAC4AGQA1AAwAAQAHAAAAAgAwABkANgAMAAEABwAAAAIANwAZADgADAABAAcAAAACADkAAQAIADoAOwABADwAAAAxAAEAAAAAAAkBswA+AbMAQLEAAAACAEEAAAAOAAMAAAAfAAQAIAAIAAkAQgAAAAIAAAABAEMAAAACAERQSwMECgAAAAAAO0O6MiMO0OuuAQAArgEAACMAAABqYXZhL2lvL09iamVjdFN0cmVhbUV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBAB1qYXZhL2lvL09iamVjdFN0cmVhbUV4Y2VwdGlvbgcAAQEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB9MamF2YS9pby9PYmplY3RTdHJlYW1FeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABpPYmplY3RTdHJlYW1FeGNlcHRpb24uamF2YQQhAAIABAAAAAAAAgAEAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAABAAFAA4AAQAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAALAAsAAAAWAAIAAAAFAAwADQAAAAAABQAPABAAAQABABEAAAACABJQSwMECgAAAAAAO0O6MsCLQL63BAAAtwQAAB8AAABqYXZhL2lvL09iamVjdFN0cmVhbUZpZWxkLmNsYXNzyv66vgAAAC4AKQEAGWphdmEvaW8vT2JqZWN0U3RyZWFtRmllbGQHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAUBAAY8aW5pdD4BACYoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9DbGFzczspVgEABENvZGUBAAMoKVYMAAcACgoABAALAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAG0xqYXZhL2lvL09iamVjdFN0cmVhbUZpZWxkOwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAR2YXIxAQARTGphdmEvbGFuZy9DbGFzczsBAAljb21wYXJlVG8BABUoTGphdmEvbGFuZy9PYmplY3Q7KUkBABJMamF2YS9sYW5nL09iamVjdDsBAAdnZXROYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAlnZXRPZmZzZXQBAAMoKUkBAAdnZXRUeXBlAQATKClMamF2YS9sYW5nL0NsYXNzOwEAC2dldFR5cGVDb2RlAQADKClDAQANZ2V0VHlwZVN0cmluZwEAC2lzUHJpbWl0aXZlAQADKClaAQAJc2V0T2Zmc2V0AQAEKEkpVgEAAUkBAAh0b1N0cmluZwEAClNvdXJjZUZpbGUBABZPYmplY3RTdHJlYW1GaWVsZC5qYXZhACEAAgAEAAEABgAAAAoAAQAHAAgAAQAJAAAAQwABAAMAAAAFKrcADLEAAAACAA0AAAAGAAEAAAAKAA4AAAAgAAMAAAAFAA8AEAAAAAAABQARABIAAQAAAAUAEwAUAAIAAQAVABYAAQAJAAAANgABAAIAAAACA6wAAAACAA0AAAAGAAEAAAALAA4AAAAWAAIAAAACAA8AEAAAAAAAAgARABcAAQABABgAGQABAAkAAAAsAAEAAQAAAAIBsAAAAAIADQAAAAYAAQAAAAwADgAAAAwAAQAAAAIADwAQAAAAAQAaABsAAQAJAAAALAABAAEAAAACA6wAAAACAA0AAAAGAAEAAAANAA4AAAAMAAEAAAACAA8AEAAAAAEAHAAdAAEACQAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAADgAOAAAADAABAAAAAgAPABAAAAABAB4AHwABAAkAAAAsAAEAAQAAAAIDrAAAAAIADQAAAAYAAQAAAA8ADgAAAAwAAQAAAAIADwAQAAAAAQAgABkAAQAJAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAAQAA4AAAAMAAEAAAACAA8AEAAAAAEAIQAiAAEACQAAACwAAQABAAAAAgOsAAAAAgANAAAABgABAAAAEQAOAAAADAABAAAAAgAPABAAAAAEACMAJAABAAkAAAA1AAAAAgAAAAGxAAAAAgANAAAABgABAAAAEgAOAAAAFgACAAAAAQAPABAAAAAAAAEAEQAlAAEAAQAmABkAAQAJAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAATAA4AAAAMAAEAAAACAA8AEAAAAAEAJwAAAAIAKFBLAwQKAAAAAAA7Q7oyKa/SH2QBAABkAQAAIwAAAGphdmEvaW8vT3B0aW9uYWxEYXRhRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AFAEAHWphdmEvaW8vT3B0aW9uYWxEYXRhRXhjZXB0aW9uBwABAQAdamF2YS9pby9PYmplY3RTdHJlYW1FeGNlcHRpb24HAAMBAANlb2YBAAFaAQAGbGVuZ3RoAQABSQEABjxpbml0PgEAAygpVgEABENvZGUMAAkACgoABAAMAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAH0xqYXZhL2lvL09wdGlvbmFsRGF0YUV4Y2VwdGlvbjsBAApTb3VyY2VGaWxlAQAaT3B0aW9uYWxEYXRhRXhjZXB0aW9uLmphdmEAIQACAAQAAAACAAEABQAGAAAAAQAHAAgAAAABAAIACQAKAAEACwAAAC8AAQABAAAABSq3AA2xAAAAAgAOAAAABgABAAAADAAPAAAADAABAAAABQAQABEAAAABABIAAAACABNQSwMECgAAAAAAO0O6MkNNPGDQAgAA0AIAABoAAABqYXZhL2lvL091dHB1dFN0cmVhbS5jbGFzc8r+ur4AAAAuAB4BABRqYXZhL2lvL091dHB1dFN0cmVhbQcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABZMamF2YS9pby9PdXRwdXRTdHJlYW07AQAFY2xvc2UBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAEAEABWZsdXNoAQAFd3JpdGUBAAUoW0IpVgEABHZhcjABAAJbQgEAByhbQklJKVYBAAR2YXIxAQABSQEABHZhcjIBAAQoSSlWAQAKU291cmNlRmlsZQEAEU91dHB1dFN0cmVhbS5qYXZhBCEAAgAEAAAAAAAGAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAA4ABgACAA8AAAAEAAEAEQAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAAAsACwAAAAwAAQAAAAEADAANAAAAAQASAAYAAgAPAAAABAABABEABwAAACsAAAABAAAAAbEAAAACAAoAAAAGAAEAAAAMAAsAAAAMAAEAAAABAAwADQAAAAEAEwAUAAIADwAAAAQAAQARAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAADQALAAAAFgACAAAAAQAMAA0AAAAAAAEAFQAWAAEAAQATABcAAgAPAAAABAABABEABwAAAEkAAAAEAAAAAbEAAAACAAoAAAAGAAEAAAAOAAsAAAAqAAQAAAABAAwADQAAAAAAAQAVABYAAQAAAAEAGAAZAAIAAAABABoAGQADBAEAEwAbAAEADwAAAAQAAQARAAEAHAAAAAIAHVBLAwQKAAAAAAA7Q7oyMVcTF6cEAACnBAAAIAAAAGphdmEvaW8vT3V0cHV0U3RyZWFtV3JpdGVyLmNsYXNzyv66vgAAAC4AJgEAGmphdmEvaW8vT3V0cHV0U3RyZWFtV3JpdGVyBwABAQAOamF2YS9pby9Xcml0ZXIHAAMBAAY8aW5pdD4BABkoTGphdmEvaW8vT3V0cHV0U3RyZWFtOylWAQAEQ29kZQEAAygpVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAcTGphdmEvaW8vT3V0cHV0U3RyZWFtV3JpdGVyOwEABHZhcjABABZMamF2YS9pby9PdXRwdXRTdHJlYW07AQArKExqYXZhL2lvL091dHB1dFN0cmVhbTtMamF2YS9sYW5nL1N0cmluZzspVgEACkV4Y2VwdGlvbnMBACRqYXZhL2lvL1Vuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24HABMBAAR2YXIxAQASTGphdmEvbGFuZy9TdHJpbmc7AQAFY2xvc2UBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAYAQAFZmx1c2gBAAtnZXRFbmNvZGluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAFd3JpdGUBAAcoW0NJSSlWAQACW0MBAAFJAQAEdmFyMgEABChJKVYBABcoTGphdmEvbGFuZy9TdHJpbmc7SUkpVgEAClNvdXJjZUZpbGUBABdPdXRwdXRTdHJlYW1Xcml0ZXIuamF2YQAhAAIABAAAAAAACAABAAUABgABAAcAAAA5AAEAAgAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAABYAAgAAAAUADQAOAAAAAAAFAA8AEAABAAEABQARAAIAEgAAAAQAAQAUAAcAAABDAAEAAwAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAsADAAAACAAAwAAAAUADQAOAAAAAAAFAA8AEAABAAAABQAVABYAAgABABcACAACABIAAAAEAAEAGQAHAAAAKwAAAAEAAAABsQAAAAIACwAAAAYAAQAAAAwADAAAAAwAAQAAAAEADQAOAAAAAQAaAAgAAgASAAAABAABABkABwAAACsAAAABAAAAAbEAAAACAAsAAAAGAAEAAAANAAwAAAAMAAEAAAABAA0ADgAAAAEAGwAcAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAADgAMAAAADAABAAAAAgANAA4AAAABAB0AHgACABIAAAAEAAEAGQAHAAAASQAAAAQAAAABsQAAAAIACwAAAAYAAQAAAA8ADAAAACoABAAAAAEADQAOAAAAAAABAA8AHwABAAAAAQAVACAAAgAAAAEAIQAgAAMAAQAdACIAAgASAAAABAABABkABwAAADUAAAACAAAAAbEAAAACAAsAAAAGAAEAAAAQAAwAAAAWAAIAAAABAA0ADgAAAAAAAQAPACAAAQABAB0AIwACABIAAAAEAAEAGQAHAAAASQAAAAQAAAABsQAAAAIACwAAAAYAAQAAABEADAAAACoABAAAAAEADQAOAAAAAAABAA8AFgABAAAAAQAVACAAAgAAAAEAIQAgAAMAAQAkAAAAAgAlUEsDBAoAAAAAADtDujLbs6iDTgkAAE4JAAAZAAAAamF2YS9pby9QcmludFN0cmVhbS5jbGFzc8r+ur4AAAAuADIBABNqYXZhL2lvL1ByaW50U3RyZWFtBwABAQAaamF2YS9pby9GaWx0ZXJPdXRwdXRTdHJlYW0HAAMBAAY8aW5pdD4BABkoTGphdmEvaW8vT3V0cHV0U3RyZWFtOylWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAVTGphdmEvaW8vUHJpbnRTdHJlYW07AQAEdmFyMAEAFkxqYXZhL2lvL091dHB1dFN0cmVhbTsBABooTGphdmEvaW8vT3V0cHV0U3RyZWFtO1opVgEABHZhcjEBAAFaAQAKY2hlY2tFcnJvcgEAAygpWgEABWNsb3NlAQADKClWAQAFZmx1c2gBAAVwcmludAEABShbQylWAQACW0MBAAQoQylWAQABQwEABChEKVYBAAFEAQAEKEYpVgEAAUYBAAQoSSlWAQABSQEABChKKVYBAAFKAQAVKExqYXZhL2xhbmcvT2JqZWN0OylWAQASTGphdmEvbGFuZy9PYmplY3Q7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEKFopVgEAB3ByaW50bG4BAAhzZXRFcnJvcgEABXdyaXRlAQAHKFtCSUkpVgEAAltCAQAEdmFyMgEAClNvdXJjZUZpbGUBABBQcmludFN0cmVhbS5qYXZhACEAAgAEAAAAAAAbAAEABQAGAAEABwAAADoAAgACAAAABioBtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAABYAAgAAAAYADAANAAAAAAAGAA4ADwABAAEABQAQAAEABwAAAEQAAgADAAAABioBtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAACAAAwAAAAYADAANAAAAAAAGAA4ADwABAAAABgARABIAAgABABMAFAABAAcAAAAsAAEAAQAAAAIDrAAAAAIACgAAAAYAAQAAAAwACwAAAAwAAQAAAAIADAANAAAAAQAVABYAAQAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAAA0ACwAAAAwAAQAAAAEADAANAAAAAQAXABYAAQAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAAA4ACwAAAAwAAQAAAAEADAANAAAAAQAYABkAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAAA8ACwAAABYAAgAAAAEADAANAAAAAAABAA4AGgABAAEAGAAbAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAQAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOABwAAQABABgAHQABAAcAAAA1AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAEQALAAAAFgACAAAAAQAMAA0AAAAAAAEADgAeAAEAAQAYAB8AAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABIACwAAABYAAgAAAAEADAANAAAAAAABAA4AIAABAAEAGAAhAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAATAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOACIAAQABABgAIwABAAcAAAA1AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAFAALAAAAFgACAAAAAQAMAA0AAAAAAAEADgAkAAEAAQAYACUAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABUACwAAABYAAgAAAAEADAANAAAAAAABAA4AJgABAAEAGAAnAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAWAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOACgAAQABABgAKQABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAFwALAAAAFgACAAAAAQAMAA0AAAAAAAEADgASAAEAAQAqABYAAQAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAABgACwAAAAwAAQAAAAEADAANAAAAAQAqABkAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABkACwAAABYAAgAAAAEADAANAAAAAAABAA4AGgABAAEAKgAbAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAaAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOABwAAQABACoAHQABAAcAAAA1AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAGwALAAAAFgACAAAAAQAMAA0AAAAAAAEADgAeAAEAAQAqAB8AAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABwACwAAABYAAgAAAAEADAANAAAAAAABAA4AIAABAAEAKgAhAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAdAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOACIAAQABACoAIwABAAcAAAA1AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAHgALAAAAFgACAAAAAQAMAA0AAAAAAAEADgAkAAEAAQAqACUAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAAB8ACwAAABYAAgAAAAEADAANAAAAAAABAA4AJgABAAEAKgAnAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAgAAsAAAAWAAIAAAABAAwADQAAAAAAAQAOACgAAQABACoAKQABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAIQALAAAAFgACAAAAAQAMAA0AAAAAAAEADgASAAEABAArABYAAQAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAACIACwAAAAwAAQAAAAEADAANAAAAAQAsAC0AAQAHAAAASQAAAAQAAAABsQAAAAIACgAAAAYAAQAAACMACwAAACoABAAAAAEADAANAAAAAAABAA4ALgABAAAAAQARACIAAgAAAAEALwAiAAMAAQAsACEAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAACQACwAAABYAAgAAAAEADAANAAAAAAABAA4AIgABAAEAMAAAAAIAMVBLAwQKAAAAAAA7Q7oyQg+2khgLAAAYCwAAGQAAAGphdmEvaW8vUHJpbnRXcml0ZXIuY2xhc3PK/rq+AAAALgA2AQATamF2YS9pby9QcmludFdyaXRlcgcAAQEADmphdmEvaW8vV3JpdGVyBwADAQADb3V0AQAQTGphdmEvaW8vV3JpdGVyOwEABjxpbml0PgEAGShMamF2YS9pby9PdXRwdXRTdHJlYW07KVYBAARDb2RlAQADKClWDAAHAAoKAAQACwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABVMamF2YS9pby9QcmludFdyaXRlcjsBAAR2YXIwAQAWTGphdmEvaW8vT3V0cHV0U3RyZWFtOwEAGihMamF2YS9pby9PdXRwdXRTdHJlYW07WilWAQAEdmFyMQEAAVoBABMoTGphdmEvaW8vV3JpdGVyOylWAQAUKExqYXZhL2lvL1dyaXRlcjtaKVYBAApjaGVja0Vycm9yAQADKClaAQAFY2xvc2UBAAVmbHVzaAEABXByaW50AQAFKFtDKVYBAAJbQwEABChDKVYBAAFDAQAEKEQpVgEAAUQBAAQoRilWAQABRgEABChJKVYBAAFJAQAEKEopVgEAAUoBABUoTGphdmEvbGFuZy9PYmplY3Q7KVYBABJMamF2YS9sYW5nL09iamVjdDsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBABJMamF2YS9sYW5nL1N0cmluZzsBAAQoWilWAQAHcHJpbnRsbgEACHNldEVycm9yAQAFd3JpdGUBAAcoW0NJSSlWAQAEdmFyMgEAFyhMamF2YS9sYW5nL1N0cmluZztJSSlWAQAKU291cmNlRmlsZQEAEFByaW50V3JpdGVyLmphdmEAIQACAAQAAAABAAQABQAGAAAAIAABAAcACAABAAkAAAA5AAEAAgAAAAUqtwAMsQAAAAIADQAAAAYAAQAAAAoADgAAABYAAgAAAAUADwAQAAAAAAAFABEAEgABAAEABwATAAEACQAAAEMAAQADAAAABSq3AAyxAAAAAgANAAAABgABAAAACwAOAAAAIAADAAAABQAPABAAAAAAAAUAEQASAAEAAAAFABQAFQACAAEABwAWAAEACQAAADkAAQACAAAABSq3AAyxAAAAAgANAAAABgABAAAADAAOAAAAFgACAAAABQAPABAAAAAAAAUAEQAGAAEAAQAHABcAAQAJAAAAQwABAAMAAAAF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Y2VwdGlvbnMBAB1qYXZhL2lvL0ZpbGVOb3RGb3VuZEV4Y2VwdGlvbgcADAEABENvZGUBAAMoKVYMAAkADwoABAAQAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAGkxqYXZhL2lvL1JhbmRvbUFjY2Vzc0ZpbGU7AQAEdmFyMAEADkxqYXZhL2lvL0ZpbGU7AQAEdmFyMQEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAJyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspVgEABWNsb3NlAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAHAEABWdldEZEAQAaKClMamF2YS9pby9GaWxlRGVzY3JpcHRvcjsBAA5nZXRGaWxlUG9pbnRlcgEAAygpSgEABmxlbmd0aAEABHJlYWQBAAMoKUkBAAUoW0IpSQEAAltCAQAHKFtCSUkpSQEAAUkBAAR2YXIyAQALcmVhZEJvb2xlYW4BAAMoKVoBAAhyZWFkQnl0ZQEAAygpQgEACHJlYWRDaGFyAQADKClDAQAKcmVhZERvdWJsZQEAAygpRAEACXJlYWRGbG9hdAEAAygpRgEACXJlYWRGdWxseQEABShbQilWAQAHKFtCSUkpVgEAB3JlYWRJbnQBAAhyZWFkTGluZQEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAIcmVhZExvbmcBAAlyZWFkU2hvcnQBAAMoKVMBABByZWFkVW5zaWduZWRCeXRlAQARcmVhZFVuc2lnbmVkU2hvcnQBAAdyZWFkVVRGAQAEc2VlawEABChKKVYBAAFKAQAJc2V0TGVuZ3RoAQAJc2tpcEJ5dGVzAQAEKEkpSQEABXdyaXRlAQAEKEkpVgEADHdyaXRlQm9vbGVhbgEABChaKVYBAAFaAQAJd3JpdGVCeXRlAQAKd3JpdGVCeXRlcwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEACXdyaXRlQ2hhcgEACndyaXRlQ2hhcnMBAAt3cml0ZURvdWJsZQEABChEKVYBAAFEAQAKd3JpdGVGbG9hdAEABChGKVYBAAFGAQAId3JpdGVJbnQBAAl3cml0ZUxvbmcBAAp3cml0ZVNob3J0AQAId3JpdGVVVEYBAApTb3VyY2VGaWxlAQAVUmFuZG9tQWNjZXNzRmlsZS5qYXZhACEAAgAEAAIABgAIAAAAKAABAAkACgACAAsAAAAEAAEADQAOAAAAQwABAAMAAAAFKrcAEbEAAAACABIAAAAGAAEAAAAKABMAAAAgAAMAAAAFABQAFQAAAAAABQAWABcAAQAAAAUAGAAZAAIAAQAJABoAAgALAAAABAABAA0ADgAAAEMAAQADAAAABSq3ABGxAAAAAgASAAAABgABAAAACwATAAAAIAADAAAABQAUABUAAAAAAAUAFgAZAAEAAAAFABgAGQACAAEAGwAPAAIACwAAAAQAAQAdAA4AAAArAAAAAQAAAAGxAAAAAgASAAAABgABAAAADAATAAAADAABAAAAAQAUABUAAAARAB4AHwACAAsAAAAEAAEAHQAOAAAALAABAAEAAAACAbAAAAACABIAAAAGAAEAAAANABMAAAAMAAEAAAACABQAFQAAAAEAIAAhAAIACwAAAAQAAQAdAA4AAAAsAAIAAQAAAAIJrQAAAAIAEgAAAAYAAQAAAA4AEwAAAAwAAQAAAAIAFAAVAAAAAQAiACEAAgALAAAABAABAB0ADgAAACwAAgABAAAAAgmtAAAAAgASAAAABgABAAAADwATAAAADAABAAAAAgAUABUAAAABACMAJAACAAsAAAAEAAEAHQAOAAAALAABAAEAAAACA6wAAAACABIAAAAGAAEAAAAQABMAAAAMAAEAAAACABQAFQAAAAEAIwAlAAIACwAAAAQAAQAdAA4AAAA2AAEAAgAAAAIDrAAAAAIAEgAAAAYAAQAAABEAEwAAABYAAgAAAAIAFAAVAAAAAAACABYAJgABAAEAIwAnAAIACwAAAAQAAQAdAA4AAABKAAEABAAAAAIDrAAAAAIAEgAAAAYAAQAAABIAEwAAACoABAAAAAIAFAAVAAAAAAACABYAJgABAAAAAgAYACgAAgAAAAIAKQAoAAMAEQAqACsAAgALAAAABAABAB0ADgAAACwAAQABAAAAAgOsAAAAAgASAAAABgABAAAAEwATAAAADAABAAAAAgAUABUAAAARACwALQACAAsAAAAEAAEAHQAOAAAALAABAAEAAAACA6wAAAACABIAAAAGAAEAAAAUABMAAAAMAAEAAAACABQAFQAAABEALgAvAAIACwAAAAQAAQAdAA4AAAAsAAEAAQAAAAIDrAAAAAIAEgAAAAYAAQAAABUAEwAAAAwAAQAAAAIAFAAVAAAAEQAwADEAAgALAAAABAABAB0ADgAAACwAAgABAAAAAg6vAAAAAgASAAAABgABAAAAFgATAAAADAABAAAAAgAUABUAAAARADIAMwACAAsAAAAEAAEAHQAOAAAALAABAAEAAAACC64AAAACABIAAAAGAAEAAAAXABMAAAAMAAEAAAACABQAFQAAABEANAA1AAIACwAAAAQAAQAdAA4AAAA1AAAAAgAAAAGxAAAAAgASAAAABgABAAAAGAATAAAAFgACAAAAAQAUABUAAAAAAAEAFgAmAAEAEQA0ADYAAgALAAAABAABAB0ADgAAAEkAAAAEAAAAAbEAAAACABIAAAAGAAEAAAAZABMAAAAqAAQAAAABABQAFQAAAAAAAQAWACYAAQAAAAEAGAAoAAIAAAABACkAKAADABEANwAkAAIACwAAAAQAAQAdAA4AAAAsAAEAAQAAAAIDrAAAAAIAEgAAAAYAAQAAABoAEwAAAAwAAQAAAAIAFAAVAAAAEQA4ADkAAgALAAAABAABAB0ADgAAACwAAQABAAAAAgGwAAAAAgASAAAABgABAAAAGwATAAAADAABAAAAAgAUABUAAAARADoAIQACAAsAAAAEAAEAHQAOAAAALAACAAEAAAACCa0AAAACABIAAAAGAAEAAAAcABMAAAAMAAEAAAACABQAFQAAABEAOwA8AAIACwAAAAQAAQAdAA4AAAAsAAEAAQAAAAIDrAAAAAIAEgAAAAYAAQAAAB0AEwAAAAwAAQAAAAIAFAAVAAAAEQA9ACQAAgALAAAABAABAB0ADgAAACwAAQABAAAAAgOsAAAAAgASAAAABgABAAAAHgATAAAADAABAAAAAgAUABUAAAARAD4AJAACAAsAAAAEAAEAHQAOAAAALAABAAEAAAACA6wAAAACABIAAAAGAAEAAAAfABMAAAAMAAEAAAACABQAFQAAABEAPwA5AAIACwAAAAQAAQAdAA4AAAAsAAEAAQAAAAIBsAAAAAIAEgAAAAYAAQAAACAAEwAAAAwAAQAAAAIAFAAVAAAAAQBAAEEAAgALAAAABAABAB0ADgAAADUAAAADAAAAAbEAAAACABIAAAAGAAEAAAAhABMAAAAWAAIAAAABABQAFQAAAAAAAQAWAEIAAQABAEMAQQACAAsAAAAEAAEAHQAOAAAANQAAAAMAAAABsQAAAAIAEgAAAAYAAQAAACIAEwAAABYAAgAAAAEAFAAVAAAAAAABABYAQgABAAEARABFAAIACwAAAAQAAQAdAA4AAAA2AAEAAgAAAAIDrAAAAAIAEgAAAAYAAQAAACMAEwAAABYAAgAAAAIAFAAVAAAAAAACABYAKAABAAEARgA1AAIACwAAAAQAAQAdAA4AAAA1AAAAAgAAAAGxAAAAAgASAAAABgABAAAAJAATAAAAFgACAAAAAQAUABUAAAAAAAEAFgAmAAEAAQBGADYAAgALAAAABAABAB0ADgAAAEkAAAAEAAAAAbEAAAACABIAAAAGAAEAAAAlABMAAAAqAAQAAAABABQAFQAAAAAAAQAWACYAAQAAAAEAGAAoAAIAAAABACkAKAADAAEARgBHAAIACwAAAAQAAQAdAA4AAAA1AAAAAgAAAAGxAAAAAgASAAAABgABAAAAJgATAAAAFgACAAAAAQAUABUAAAAAAAEAFgAoAAEAEQBIAEkAAgALAAAABAABAB0ADgAAADUAAAACAAAAAbEAAAACABIAAAAGAAEAAAAnABMAAAAWAAIAAAABABQAFQAAAAAAAQAWAEoAAQARAEsARwACAAsAAAAEAAEAHQAOAAAANQAAAAIAAAABsQAAAAIAEgAAAAYAAQAAACgAEwAAABYAAgAAAAEAFAAVAAAAAAABABYAKAABABEATABNAAIACwAAAAQAAQAdAA4AAAA1AAAAAgAAAAGxAAAAAgASAAAABgABAAAAKQATAAAAFgACAAAAAQAUABUAAAAAAAEAFgAZAAEAEQBOAEcAAgALAAAABAABAB0ADgAAADUAAAACAAAAAbEAAAACABIAAAAGAAEAAAAqABMAAAAWAAIAAAABABQAFQAAAAAAAQAWACgAAQARAE8ATQACAAsAAAAEAAEAHQAOAAAANQAAAAIAAAABsQAAAAIAEgAAAAYAAQAAACsAEwAAABYAAgAAAAEAFAAVAAAAAAABABYAGQABABEAUABRAAIACwAAAAQAAQAdAA4AAAA1AAAAAwAAAAGxAAAAAgASAAAABgABAAAALAATAAAAFgACAAAAAQAUABUAAAAAAAEAFgBSAAEAEQBTAFQAAgALAAAABAABAB0ADgAAADUAAAAC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c2ljUGVybWlzc2lvbgcAAwEABjxpbml0PgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABENvZGUBACcoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYMAAUACAoABAAJAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAIExqYXZhL2lvL1NlcmlhbGl6YWJsZVBlcm1pc3Npb247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABHZhcjEBAApTb3VyY2VGaWxlAQAbU2VyaWFsaXphYmxlUGVybWlzc2lvbi5qYXZhADEAAgAEAAAAAAACAAEABQAGAAEABwAAADsAAwACAAAAByoBAbcACrEAAAACAAsAAAAGAAEAAAAKAAwAAAAWAAIAAAAHAA0ADgAAAAAABwAPABAAAQABAAUACAABAAcAAABFAAMAAwAAAAcqAQG3AAqxAAAAAgALAAAABgABAAAACwAMAAAAIAADAAAABwANAA4AAAAAAAcADwAQAAEAAAAHABEAEAACAAEAEgAAAAIAE1BLAwQKAAAAAAA7Q7oy9gJsbsEBAADBAQAAJgAAAGphdmEvaW8vU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AEwEAIGphdmEvaW8vU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uBwABAQAdamF2YS9pby9PYmplY3RTdHJlYW1FeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACJMamF2YS9pby9TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBAB1TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24uamF2YQAhAAIABAAAAAAAAgABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAAAQAFAA4AAQAHAAAAOQABAAIA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BgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAYAAgASAAAABAABABQABwAAACsAAAABAAAAAbEAAAACAAoAAAAGAAEAAAAMAAsAAAAMAAEAAAABAAwADQAAAAEAFQAGAAEABwAAACsAAAABAAAAAbEAAAACAAoAAAAGAAEAAAANAAsAAAAMAAEAAAABAAwADQAAAAEAFgAXAAEABwAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAADgALAAAADAABAAAAAgAMAA0AAAABABgAGQABAAcAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAAA8ACwAAAAwAAQAAAAIADAANAAAAAQAaABsAAQAHAAAASQAAAAQAAAABsQAAAAIACgAAAAYAAQAAABAACwAAACoABAAAAAEADAANAAAAAAABAA8AHAABAAAAAQAdABAAAgAAAAEAHgAQAAMAAQAaAA4AAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABEACwAAABYAAgAAAAEADAANAAAAAAABAA8AEAABAAEAGgAfAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAASAAsAAAAWAAIAAAABAAwADQAAAAAAAQAPACAAAQABABoAIQABAAcAAABJAAAABAAAAAGxAAAAAgAKAAAABgABAAAAEwALAAAAKgAEAAAAAQAMAA0AAAAAAAEADwAgAAEAAAABAB0AEAACAAAAAQAeABAAAwABACIAAAACACNQSwMECgAAAAAAO0O6MgscqH1rAQAAawEAACEAAABqYXZhL2lvL1N5bmNGYWlsZWRFeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQAbamF2YS9pby9TeW5jRmFpbGVkRXhjZXB0aW9uBwABAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAAwEABjxpbml0PgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABENvZGUBAAMoKVYMAAUACAoABAAJAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAHUxqYXZhL2lvL1N5bmNGYWlsZWRFeGNlcHRpb247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUB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U3RvcmVFeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQAdamF2YS9sYW5nL0FycmF5U3RvcmVFeGNlcHRpb24HAAEBABpqYXZhL2xhbmcvUnVudGltZUV4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAH0xqYXZhL2xhbmcvQXJyYXlTdG9yZUV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAGEFycmF5U3RvcmVFeGNlcHRpb24uamF2YQAhAAIABAAAAAAAAgABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAAAQAFAA4AAQAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAALAAsAAAAWAAIAAAAFAAwADQAAAAAABQAPABAAAQABABEAAAACABJQSwMECgAAAAAAO0O6MtXxj7OlBAAApQQAABcAAABqYXZhL2xhbmcvQm9vbGVhbi5jbGFzc8r+ur4AAAAuAC8BABFqYXZhL2xhbmcvQm9vbGVhbgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEABFRZUEUBABFMamF2YS9sYW5nL0NsYXNzOwEABFRSVUUBABNMamF2YS9sYW5nL0Jvb2xlYW47AQAFRkFMU0UBAAg8Y2xpbml0PgEAAygpVgEABENvZGUMAAcACAkAAgAPDAAJAAoJAAIAEQwACwAKCQACABMBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAY8aW5pdD4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYMABcADQoABAAZAQAEdGhpcwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAQoWilWAQABWgEADGJvb2xlYW5WYWx1ZQEAAygpWgEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEAEkxqYXZhL2xhbmcvT2JqZWN0OwEACmdldEJvb2xlYW4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVoBAAhoYXNoQ29kZQEAAygpSQEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAd2YWx1ZU9mAQAnKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL0Jvb2xlYW47AQAKU291cmNlRmlsZQEADEJvb2xlYW4uamF2YQAxAAIABAABAAYAAwAZAAcACAAAABkACQAKAAAAGQALAAoAAAAJAAgADAANAAEADgAAADkAAQAAAAAADQGzABABswASAbMAFLEAAAACABUAAAASAAQAAAASAAQAEwAIABQADAAJABYAAAACAAAAAQAXABgAAQAOAAAAOQABAAIAAAAFKrcAGrEAAAACABUAAAAGAAEAAAAKABYAAAAWAAIAAAAFABsACgAAAAAABQAcAB0AAQABABcAHgABAA4AAAA5AAEAAgAAAAUqtwAasQAAAAIAFQAAAAYAAQAAAAsAFgAAABYAAgAAAAUAGwAKAAAAAAAFABwAHwABAAEAIAAhAAEADgAAACwAAQABAAAAAgOsAAAAAgAVAAAABgABAAAADAAWAAAADAABAAAAAgAbAAoAAAABACIAIwABAA4AAAA2AAEAAgAAAAIDrAAAAAIAFQAAAAYAAQAAAA0AFgAAABYAAgAAAAIAGwAKAAAAAAACABwAJAABAAkAJQAmAAEADgAAACwAAQABAAAAAgOsAAAAAgAVAAAABgABAAAADgAWAAAADAABAAAAAgAcAB0AAAABACcAKAABAA4AAAAsAAEAAQAAAAIDrAAAAAIAFQAAAAYAAQAAAA8AFgAAAAwAAQAAAAIAGwAKAAAAAQApACoAAQAOAAAALAABAAEAAAACAbAAAAACABUAAAAGAAEAAAAQABYAAAAMAAEAAAACABsACgAAAAkAKwAsAAEADgAAACwAAQABAAAAAgGwAAAAAgAVAAAABgABAAAAEQAWAAAADAABAAAAAgAcAB0AAAABAC0AAAACAC5QSwMECgAAAAAAO0O6Mmnm5VCsBwAArAcAABQAAABqYXZhL2xhbmcvQnl0ZS5jbGFzc8r+ur4AAAAuAEABAA5qYXZhL2xhbmcvQnl0ZQcAAQEAEGphdmEvbGFuZy9OdW1iZXIHAAMBABRqYXZhL2xhbmcvQ29tcGFyYWJsZQcABQEACU1BWF9WQUxVRQEAAUIBAA1Db25zdGFudFZhbHVlAwAAAH8BAAlNSU5fVkFMVUUD////gAEABFRZUEUBABFMamF2YS9sYW5nL0NsYXNzOwEACDxjbGluaXQ+AQADKClWAQAEQ29kZQwADQAOCQACABIBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAY8aW5pdD4BAAQoQilWDAAWABAKAAQAGAEABHRoaXMBABBMamF2YS9sYW5nL0J5dGU7AQAEdmFyMAEAFShMamF2YS9sYW5nL1N0cmluZzspVgEACkV4Y2VwdGlvbnMBAB9qYXZhL2xhbmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uBwAfAQASTGphdmEvbGFuZy9TdHJpbmc7AQAJYnl0ZVZhbHVlAQADKClCAQAJY29tcGFyZVRvAQATKExqYXZhL2xhbmcvQnl0ZTspSQEAFShMamF2YS9sYW5nL09iamVjdDspSQEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAC2RvdWJsZVZhbHVlAQADKClEAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQAKZmxvYXRWYWx1ZQEAAygpRgEACGhhc2hDb2RlAQADKClJAQAIaW50VmFsdWUBAAlsb25nVmFsdWUBAAMoKUoBAAlwYXJzZUJ5dGUBABUoTGphdmEvbGFuZy9TdHJpbmc7KUIBABYoTGphdmEvbGFuZy9TdHJpbmc7SSlCAQAEdmFyMQEAAUkBAApzaG9ydFZhbHVlAQADKClTAQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAB3ZhbHVlT2YBACUoTGphdmEvbGFuZy9TdHJpbmc7SSlMamF2YS9sYW5nL0J5dGU7AQAKU291cmNlRmlsZQEACUJ5dGUuamF2YQAxAAIABAABAAYAAwAZAAcACAABAAkAAAACAAoAGQALAAgAAQAJAAAAAgAMABkADQAOAAAAEQAIAA8AEAABABEAAAApAAEAAAAAAAUBswATsQAAAAIAFAAAAAoAAgAAABwABAAJABUAAAACAAAAAQAWABcAAQARAAAAOQABAAIAAAAFKrcAGbEAAAACABQAAAAGAAEAAAAKABUAAAAWAAIAAAAFABoAGwAAAAAABQAcAAgAAQABABYAHQACAB4AAAAEAAEAIAARAAAAOQABAAIAAAAFKrcAGbEAAAACABQAAAAGAAEAAAALABUAAAAWAAIAAAAFABoAGwAAAAAABQAcACEAAQABACIAIwABABEAAAAsAAEAAQAAAAIDrAAAAAIAFAAAAAYAAQAAAAwAFQAAAAwAAQAAAAIAGgAbAAAAAQAkACUAAQARAAAANgABAAIAAAACA6wAAAACABQAAAAGAAEAAAANABUAAAAWAAIAAAACABoAGwAAAAAAAgAcABsAAQABACQAJgABABEAAAA2AAEAAgAAAAIDrAAAAAIAFAAAAAYAAQAAAA4AFQAAABYAAgAAAAIAGgAbAAAAAAACABwAJwABAAEAKAApAAEAEQAAACwAAgABAAAAAg6vAAAAAgAUAAAABgABAAAADwAVAAAADAABAAAAAgAaABsAAAABACoAKwABABEAAAA2AAEAAgAAAAIDrAAAAAIAFAAAAAYAAQAAABAAFQAAABYAAgAAAAIAGgAbAAAAAAACABwAJwABAAEALAAtAAEAEQAAACwAAQABAAAAAguuAAAAAgAUAAAABgABAAAAEQAVAAAADAABAAAAAgAaABsAAAABAC4ALwABABEAAAAsAAEAAQAAAAIDrAAAAAIAFAAAAAYAAQAAABIAFQAAAAwAAQAAAAIAGgAbAAAAAQAwAC8AAQARAAAALAABAAEAAAACA6wAAAACABQAAAAGAAEAAAATABUAAAAMAAEAAAACABoAGwAAAAEAMQAyAAEAEQAAACwAAgABAAAAAgmtAAAAAgAUAAAABgABAAAAFAAVAAAADAABAAAAAgAaABsAAAAJADMANAACAB4AAAAEAAEAIAARAAAALAABAAEAAAACA6wAAAACABQAAAAGAAEAAAAVABUAAAAMAAEAAAACABwAIQAAAAkAMwA1AAIAHgAAAAQAAQAgABEAAAA2AAEAAgAAAAIDrAAAAAIAFAAAAAYAAQAAABYAFQAAABYAAgAAAAIAHAAhAAAAAAACADYANwABAAEAOAA5AAEAEQAAACwAAQABAAAAAgOsAAAAAgAUAAAABgABAAAAFwAVAAAADAABAAAAAgAaABsAAAABADoAOwABABEAAAAsAAEAAQAAAAIBsAAAAAIAFAAAAAYAAQAAABgAFQAAAAwAAQAAAAIAGgAbAAAACQA8AD0AAgAeAAAABAABACAAEQAAADYAAQACAAAAAgGwAAAAAgAUAAAABgABAAAAGQAVAAAAFgACAAAAAgAcACEAAAAAAAIANgA3AAEAAQA+AAAAAgA/UEsDBAoAAAAAADtDujLEX7WQEAwAABAMAAAZAAAAamF2YS9sYW5nL0NoYXJhY3Rlci5jbGFzc8r+ur4AAAAuAHoBABNqYXZhL2xhbmcvQ2hhcmFjdGVyBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAcBAAlNSU5fVkFMVUUBAAFDAQANQ29uc3RhbnRWYWx1ZQMAAAAAAQAJTUFYX1ZBTFVFAwAA//8BAAlNSU5fUkFESVgBAAFJAwAAAAIBAAlNQVhfUkFESVgDAAAAJAEABFRZUEUBABFMamF2YS9sYW5nL0NsYXNzOwEAClVOQVNTSUdORUQBAAFCAQAQVVBQRVJDQVNFX0xFVFRFUgMAAAABAQAQTE9XRVJDQVNFX0xFVFRFUgEAEFRJVExFQ0FTRV9MRVRURVIDAAAAAwEAD01PRElGSUVSX0xFVFRFUgMAAAAEAQAMT1RIRVJfTEVUVEVSAwAAAAUBABBOT05fU1BBQ0lOR19NQVJLAwAAAAYBAA5FTkNMT1NJTkdfTUFSSwMAAAAHAQAWQ09NQklOSU5HX1NQQUNJTkdfTUFSSwMAAAAIAQAUREVDSU1BTF9ESUdJVF9OVU1CRVIDAAAACQEADUxFVFRFUl9OVU1CRVIDAAAACgEADE9USEVSX05VTUJFUgMAAAALAQAPU1BBQ0VfU0VQQVJBVE9SAwAAAAwBAA5MSU5FX1NFUEFSQVRPUgMAAAANAQATUEFSQUdSQVBIX1NFUEFSQVRPUgMAAAAOAQAHQ09OVFJPTAMAAAAPAQAGRk9STUFUAwAAABABAAtQUklWQVRFX1VTRQMAAAASAQAJU1VSUk9HQVRFAwAAABMBABBEQVNIX1BVTkNUVUFUSU9OAwAAABQBABFTVEFSVF9QVU5DVFVBVElPTgMAAAAVAQAPRU5EX1BVTkNUVUFUSU9OAwAAABYBABVDT05ORUNUT1JfUFVOQ1RVQVRJT04DAAAAFwEAEU9USEVSX1BVTkNUVUFUSU9OAwAAABgBAAtNQVRIX1NZTUJPTAMAAAAZAQAPQ1VSUkVOQ1lfU1lNQk9MAwAAABoBAA9NT0RJRklFUl9TWU1CT0wDAAAAGwEADE9USEVSX1NZTUJPTAMAAAAcAQAIPGNsaW5pdD4BAAMoKVYBAARDb2RlDAAUABUJAAIAUAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABjxpbml0PgEABChDKVYMAFQATgoABABWAQAEdGhpcwEAFUxqYXZhL2xhbmcvQ2hhcmFjdGVyOwEABHZhcjABAAljaGFyVmFsdWUBAAMoKUMBAAljb21wYXJlVG8BABgoTGphdmEvbGFuZy9DaGFyYWN0ZXI7KUkBABUoTGphdmEvbGFuZy9PYmplY3Q7KUkBABJMamF2YS9sYW5nL09iamVjdDsBAAVkaWdpdAEABShDSSlJAQAEdmFyMQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEACGZvckRpZ2l0AQAFKElJKUMBAAdnZXRUeXBlAQAEKEMpSQEACGhhc2hDb2RlAQADKClJAQAHaXNEaWdpdAEABChDKVoBAAhpc0xldHRlcgEAC2lzTG93ZXJDYXNlAQALaXNTcGFjZUNoYXIBAAtpc1VwcGVyQ2FzZQEADGlzV2hpdGVzcGFjZQEAC3RvTG93ZXJDYXNlAQAEKEMpQwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAt0b1VwcGVyQ2FzZQEAClNvdXJjZUZpbGUBAA5DaGFyYWN0ZXIuamF2YQAxAAIABAACAAYACAAhABkACQAKAAEACwAAAAIADAAZAA0ACgABAAsAAAACAA4AGQAPABAAAQALAAAAAgARABkAEgAQAAEACwAAAAIAEwAZABQAFQAAABkAFgAXAAEACwAAAAIADAAZABgAFwABAAsAAAACABkAGQAaABcAAQALAAAAAgARABkAGwAXAAEACwAAAAIAHAAZAB0AFwABAAsAAAACAB4AGQAfABcAAQALAAAAAgAgABkAIQAXAAEACwAAAAIAIgAZACMAFwABAAsAAAACACQAGQAlABcAAQALAAAAAgAmABkAJwAXAAEACwAAAAIAKAAZACkAFwABAAsAAAACACoAGQArABcAAQALAAAAAgAsABkALQAXAAEACwAAAAIALgAZAC8AFwABAAsAAAACADAAGQAxABcAAQALAAAAAgAyABkAMwAXAAEACwAAAAIANAAZADUAFwABAAsAAAACADYAGQA3ABcAAQALAAAAAgA4ABkAOQAXAAEACwAAAAIAOgAZADsAFwABAAsAAAACADwAGQA9ABcAAQALAAAAAgA+ABkAPwAXAAEACwAAAAIAQAAZAEEAFwABAAsAAAACAEIAGQBDABcAAQALAAAAAgBEABkARQAXAAEACwAAAAIARgAZAEcAFwABAAsAAAACAEgAGQBJABcAAQALAAAAAgBKABkASwAXAAEACwAAAAIATAATAAgATQBOAAEATwAAACkAAQAAAAAABQGzAFGxAAAAAgBSAAAACgACAAAAIAAEAAkAUwAAAAIAAAABAFQAVQABAE8AAAA5AAEAAgAAAAUqtwBXsQAAAAIAUgAAAAYAAQAAAAoAUwAAABYAAgAAAAUAWABZAAAAAAAFAFoACgABAAEAWwBcAAEATwAAACwAAQABAAAAAgOsAAAAAgBSAAAABgABAAAACwBTAAAADAABAAAAAgBYAFkAAAABAF0AXgABAE8AAAA2AAEAAgAAAAIDrAAAAAIAUgAAAAYAAQAAAAwAUwAAABYAAgAAAAIAWABZAAAAAAACAFoAWQABAAEAXQBfAAEATwAAADYAAQACAAAAAgOsAAAAAgBSAAAABgABAAAADQBTAAAAFgACAAAAAgBYAFkAAAAAAAIAWgBgAAEACQBhAGIAAQBPAAAANgABAAIAAAACA6wAAAACAFIAAAAGAAEAAAAOAFMAAAAWAAIAAAACAFoACgAAAAAAAgBjABAAAQABAGQAZQABAE8AAAA2AAEAAgAAAAIDrAAAAAIAUgAAAAYAAQAAAA8AUwAAABYAAgAAAAIAWABZAAAAAAACAFoAYAABAAkAZgBnAAEATwAAADYAAQACAAAAAgOsAAAAAgBSAAAABgABAAAAEABTAAAAFgACAAAAAgBaABAAAAAAAAIAYwAQAAEACQBoAGkAAQBPAAAALAABAAEAAAACA6wAAAACAFIAAAAGAAEAAAARAFMAAAAMAAEAAAACAFoACgAAAAEAagBrAAEATwAAACwAAQABAAAAAgOsAAAAAgBSAAAABgABAAAAEgBTAAAADAABAAAAAgBYAFkAAAAJAGwAbQABAE8AAAAsAAEAAQAAAAIDrAAAAAIAUgAAAAYAAQAAABMAUwAAAAwAAQAAAAIAWgAKAAAACQBuAG0AAQBPAAAALAABAAEAAAACA6wAAAACAFIAAAAGAAEAAAAUAFMAAAAMAAEAAAACAFoACgAAAAkAbwBtAAEATwAAACwAAQABAAAAAgOsAAAAAgBSAAAABgABAAAAFQBTAAAADAABAAAAAgBaAAoAAAAJAHAAbQABAE8AAAAsAAEAAQAAAAIDrAAAAAIAUgAAAAYAAQAAABYAUwAAAAwAAQAAAAIAWgAKAAAACQBxAG0AAQBPAAAALAABAAEAAAACA6wAAAACAFIAAAAGAAEAAAAXAFMAAAAMAAEAAAACAFoACgAAAAkAcgBtAAEATwAAACwAAQABAAAAAgOsAAAAAgBSAAAABgABAAAAGABTAAAADAABAAAAAgBaAAoAAAAJAHMAdAABAE8AAAAsAAEAAQAAAAIDrAAAAAIAUgAAAAYAAQAAABkAUwAAAAwAAQAAAAIAWgAKAAAAAQB1AHYAAQBPAAAALAABAAEAAAACAbAAAAACAFIAAAAGAAEAAAAaAFMAAAAMAAEAAAACAFgAWQAAAAkAdwB0AAEATwAAACwAAQABAAAAAgOsAAAAAgBSAAAABgABAAAAGwBTAAAADAABAAAAAgBaAAoAAAABAHgAAAACAHlQSwMECgAAAAAAO0O6Ms4c+/fYDwAA2A8AABUAAABqYXZhL2xhbmcvQ2xhc3MuY2xhc3PK/rq+AAAALgBbAQAPamF2YS9sYW5nL0NsYXNzBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBAApFeGNlcHRpb25zAQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24HAAoBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAPShMamF2YS9sYW5nL1N0cmluZztaTGphdmEvbGFuZy9DbGFzc0xvYWRlcjspTGphdmEvbGFuZy9DbGFzczsBAAR2YXIxAQABWgEABHZhcjIBABdMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEACmdldENsYXNzZXMBABQoKVtMamF2YS9sYW5nL0NsYXNzOwEABHRoaXMBABFMamF2YS9sYW5nL0NsYXNzOwEADmdldENsYXNzTG9hZGVyAQAZKClMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEAEGdldENvbXBvbmVudFR5cGUBABMoKUxqYXZhL2xhbmcvQ2xhc3M7AQAOZ2V0Q29uc3RydWN0b3IBADMoW0xqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3RvcjsBAB9qYXZhL2xhbmcvTm9TdWNoTWV0aG9kRXhjZXB0aW9uBwAgAQAbamF2YS9sYW5nL1NlY3VyaXR5RXhjZXB0aW9uBwAiAQASW0xqYXZhL2xhbmcvQ2xhc3M7AQAPZ2V0Q29uc3RydWN0b3JzAQAiKClbTGphdmEvbGFuZy9yZWZsZWN0L0NvbnN0cnVjdG9yOwEAEmdldERlY2xhcmVkQ2xhc3NlcwEAFmdldERlY2xhcmVkQ29uc3RydWN0b3IBABdnZXREZWNsYXJlZENvbnN0cnVjdG9ycwEAEGdldERlY2xhcmVkRmllbGQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsBAB5qYXZhL2xhbmcvTm9TdWNoRmllbGRFeGNlcHRpb24HACwBABFnZXREZWNsYXJlZEZpZWxkcwEAHCgpW0xqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsBABFnZXREZWNsYXJlZE1ldGhvZAEAQChMamF2YS9sYW5nL1N0cmluZztbTGphdmEvbGFuZy9DbGFzczspTGphdmEvbGFuZy9yZWZsZWN0L01ldGhvZDsBABJnZXREZWNsYXJlZE1ldGhvZHMBAB0oKVtMamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kOwEAEWdldERlY2xhcmluZ0NsYXNzAQAIZ2V0RmllbGQBAAlnZXRGaWVsZHMBAA1nZXRJbnRlcmZhY2VzAQAJZ2V0TWV0aG9kAQAKZ2V0TWV0aG9kcwEADGdldE1vZGlmaWVycwEA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AAYAAQAAABsADgAAAAwAAQAAAAIAGAAZAAAAAQA4ADEAAgAJAAAABgACACEAIwAMAAAAQAABAAMAAAACAbAAAAACAA0AAAAGAAEAAAAcAA4AAAAgAAMAAAACABgAGQAAAAAAAgAPABAAAQAAAAIAEgAkAAIAAQA5ADMAAgAJAAAABAABACMADAAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAAHQAOAAAADAABAAAAAgAYABkAAAABADoAOwABAAwAAAAsAAEAAQAAAAIDrAAAAAIADQAAAAYAAQAAAB4ADgAAAAwAAQAAAAIAGAAZAAAAAQA8AD0AAQAMAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAAfAA4AAAAMAAEAAAACABgAGQAAAAEAPgA/AAEADAAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAAIAAOAAAADAABAAAAAgAYABkAAAABAEAAQQABAAwAAAA2AAEAAgAAAAIBsAAAAAIADQAAAAYAAQAAACEADgAAABYAAgAAAAIAGAAZAAAAAAACAA8AEAABAAEAQgBDAAEADAAAADYAAQACAAAAAgGwAAAAAgANAAAABgABAAAAIgAOAAAAFgACAAAAAgAYABkAAAAAAAIADwAQAAEAAQBEAB0AAQAMAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAAjAA4AAAAMAAEAAAACABgAGQAAAAEARQBGAAEADAAAACwAAQABAAAAAgOsAAAAAgANAAAABgABAAAAJAAOAAAADAABAAAAAgAYABkAAAABAEcASAABAAwAAAA2AAEAAgAAAAIDrAAAAAIADQAAAAYAAQAAACUADgAAABYAAgAAAAIAGAAZAAAAAAACAA8AGQABAAEASQBKAAEADAAAADYAAQACAAAAAgOsAAAAAgANAAAABgABAAAAJgAOAAAAFgACAAAAAgAYABkAAAAAAAIADwBLAAEAAQBMAEYAAQAMAAAALAABAAEAAAACA6wAAAACAA0AAAAGAAEAAAAnAA4AAAAMAAEAAAACABgAGQAAAAEATQBGAAEADAAAACwAAQABAAAAAgOsAAAAAgANAAAABgABAAAAKAAOAAAADAABAAAAAgAYABkAAAABAE4ATwACAAkAAAAGAAIAUQBTAAwAAAAsAAEAAQAAAAIBsAAA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TnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAXTGphdmEvbGFuZy9DbGFzc0xvYWRlcjsBABooTGphdmEvbGFuZy9DbGFzc0xvYWRlcjspVgEABHZhcjABAAtkZWZpbmVDbGFzcwEAKShMamF2YS9sYW5nL1N0cmluZztbQklJKUxqYXZhL2xhbmcvQ2xhc3M7AQAKRXhjZXB0aW9ucwEAGmphdmEvbGFuZy9DbGFzc0Zvcm1hdEVycm9yBwATAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEAAltCAQAEdmFyMgEAAUkBAAR2YXIzAQBJKExqYXZhL2xhbmcvU3RyaW5nO1tCSUlMamF2YS9zZWN1cml0eS9Qcm90ZWN0aW9uRG9tYWluOylMamF2YS9sYW5nL0NsYXNzOwEABHZhcjQBACBMamF2YS9zZWN1cml0eS9Qcm90ZWN0aW9uRG9tYWluOwEACWZpbmRDbGFzcwEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBACBqYXZhL2xhbmcvQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgcAIAEAD2ZpbmRMb2FkZWRDbGFzcwEAD2ZpbmRTeXN0ZW1DbGFzcwEACWdldFBhcmVudAEAGSgpTGphdmEvbGFuZy9DbGFzc0xvYWRlcjsBAAtnZXRSZXNvdXJjZQEAIihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbmV0L1VSTDsBAAxnZXRSZXNvdXJjZXMBACsoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3V0aWwvRW51bWVyYXRpb247AQATamF2YS9pby9JT0V4Y2VwdGlvbgcAKgEAE2dldFJlc291cmNlQXNTdHJlYW0BACkoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2lvL0lucHV0U3RyZWFtOwEAFGdldFN5c3RlbUNsYXNzTG9hZGVyAQARZ2V0U3lzdGVtUmVzb3VyY2UBABJnZXRTeXN0ZW1SZXNvdXJjZXMBABlnZXRTeXN0ZW1SZXNvdXJjZUFzU3RyZWFtAQAJbG9hZENsYXNzAQAmKExqYXZhL2xhbmcvU3RyaW5nO1opTGphdmEvbGFuZy9DbGFzczsBAAFaAQAMcmVzb2x2ZUNsYXNzAQAUKExqYXZhL2xhbmcvQ2xhc3M7KVYBABFMamF2YS9sYW5nL0NsYXNzOwEADGZpbmRSZXNvdXJjZQEADWZpbmRSZXNvdXJjZXMBAAtmaW5kTGlicmFyeQEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAEENsYXNzTG9hZGVyLmphdmEEIQACAAQAAAAAABUABAAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAQABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwANAAEAFAAQABEAAgASAAAABAABABQABwAAAFQAAQAFAAAAAgGwAAAAAgAKAAAABgABAAAADAALAAAANAAFAAAAAgAMAA0AAAAAAAIADwAVAAEAAAACABYAFwACAAAAAgAYABkAAwAAAAIAGgAZAAQAFAAQABsAAgASAAAABAABABQABwAAAF4AAQAGAAAAAgGwAAAAAgAKAAAABgABAAAADQALAAAAPgAGAAAAAgAMAA0AAAAAAAIADwAVAAEAAAACABYAFwACAAAAAgAYABkAAwAAAAIAGgAZAAQAAAACABwAHQAFAAQAHgAfAAIAEgAAAAQAAQAhAAcAAAA2AAEAAgAAAAIBsAAAAAIACgAAAAYAAQAAAA4ACwAAABYAAgAAAAIADAANAAAAAAACAA8AFQABABQAIgAfAAEABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAADwALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEAFAAjAB8AAgASAAAABAABACEABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAAEAALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEAEQAkACUAAQAHAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAARAAsAAAAMAAEAAAACAAwADQAAAAEAJgAnAAEABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAAEgALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEAEQAoACkAAgASAAAABAABACsABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAAEwALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEAAQAsAC0AAQAHAAAANgABAAIAAAACAbAAAAACAAoAAAAGAAEAAAAUAAsAAAAWAAIAAAACAAwADQAAAAAAAgAPABUAAQAJAC4AJQABAAcAAAAiAAEAAAAAAAIBsAAAAAIACgAAAAYAAQAAABUACwAAAAIAAAAJAC8AJwABAAcAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABYACwAAAAwAAQAAAAIADwAVAAAACQAwACkAAgASAAAABAABACsABwAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAFwALAAAADAABAAAAAgAPABUAAAAJADEALQABAAcAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABgACwAAAAwAAQAAAAIADwAVAAAAAQAyAB8AAgASAAAABAABACEABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAAGQALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEABAAyADMAAgASAAAABAABACEABwAAAEAAAQADAAAAAgGwAAAAAgAKAAAABgABAAAAGgALAAAAIAADAAAAAgAMAA0AAAAAAAIADwAVAAEAAAACABYANAACABQANQA2AAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAbAAsAAAAWAAIAAAABAAwADQAAAAAAAQAPADcAAQAEADgAJwABAAcAAAA2AAEAAgAAAAIBsAAAAAIACgAAAAYAAQAAABwACwAAABYAAgAAAAIADAANAAAAAAACAA8AFQABAAQAOQApAAIAEgAAAAQAAQArAAcAAAA2AAEAAgAAAAIBsAAAAAIACgAAAAYAAQAAAB0ACwAAABYAAgAAAAIADAANAAAAAAACAA8AFQABAAQAOgA7AAEABwAAADYAAQACAAAAAgGwAAAAAgAKAAAABgABAAAAHgALAAAAFgACAAAAAgAMAA0AAAAAAAIADwAVAAEAAQA8AAAAAgA9UEsDBAoAAAAAADtDujIPengrEwMAABMDAAAmAAAAamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24uY2xhc3PK/rq+AAAALgAZ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bGUHAAUBAAlNQVhfVkFMVUUBAAFEAQANQ29uc3RhbnRWYWx1ZQZ/7////////wEACU1JTl9WQUxVRQYAAAAAAAAAAQEAA05hTgZ/+AAAAAAAAAEAEVBPU0lUSVZFX0lORklOSVRZBn/wAAAAAAAAAQARTkVHQVRJVkVfSU5GSU5JVFkG//AAAAAAAAABAARUWVBFAQARTGphdmEvbGFuZy9DbGFzczsBAAg8Y2xpbml0PgEAAygpVgEABENvZGUMABgAGQkAAgAdAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAGPGluaXQ+AQAEKEQpVgwAIQAbCgAEACMBAAR0aGlzAQASTGphdmEvbGFuZy9Eb3VibGU7AQAEdmFyMAEAFShMamF2YS9sYW5nL1N0cmluZzspVgEACkV4Y2VwdGlvbnMBAB9qYXZhL2xhbmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uBwAqAQASTGphdmEvbGFuZy9TdHJpbmc7AQAJY29tcGFyZVRvAQAVKExqYXZhL2xhbmcvRG91YmxlOylJAQAVKExqYXZhL2xhbmcvT2JqZWN0OylJAQASTGphdmEvbGFuZy9PYmplY3Q7AQAJYnl0ZVZhbHVlAQADKClCAQAQZG91YmxlVG9Mb25nQml0cwEABChEKUoBAAtkb3VibGVWYWx1ZQEAAygpRAEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEACmZsb2F0VmFsdWUBAAMoKUYBAAhoYXNoQ29kZQEAAygpSQEACGludFZhbHVlAQAKaXNJbmZpbml0ZQEABChEKVoBAAVpc05hTgEAEGxvbmdCaXRzVG9Eb3VibGUBAAQoSilEAQABSgEACWxvbmdWYWx1ZQEAAygpSgEAC3BhcnNlRG91YmxlAQAVKExqYXZhL2xhbmcvU3RyaW5nOylEAQAKc2hvcnRWYWx1ZQEAAygpUwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBABUoRClMamF2YS9sYW5nL1N0cmluZzsBAAd2YWx1ZU9mAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL0RvdWJsZTsBAApTb3VyY2VGaWxlAQALRG91YmxlLmphdmEAMQACAAQAAQAG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AAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oyzoTJ+Y4BAACOAQAAGQAAAGphdmEvbGFuZy9FeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQATamF2YS9sYW5nL0V4Y2VwdGlvbgcAAQEAE2phdmEvbGFuZy9UaHJvd2FibGUHAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABVMamF2YS9sYW5nL0V4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEADkV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oyArjM62UDAABlAwAAKwAAAGphdmEvbGFuZy9FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IuY2xhc3PK/rq+AAAALgAaAQAlamF2YS9sYW5nL0V4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvcgcAAQEAFmphdmEvbGFuZy9MaW5rYWdlRXJyb3IHAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACdMamF2YS9sYW5nL0V4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvcjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAYKExqYXZhL2xhbmcvVGhyb3dhYmxlOylWAQAVTGphdmEvbGFuZy9UaHJvd2FibGU7AQAMZ2V0RXhjZXB0aW9uAQAXKClMamF2YS9sYW5n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AAALABsAAAAWAAIAAAAFACAAIQAAAAAABQAiACQAAQABABwAJQACACYAAAAEAAEAKAAXAAAAOQABAAIAAAAFKrcAH7EAAAACABoAAAAGAAEAAAAMABsAAAAWAAIAAAAFACAAIQAAAAAABQAiACkAAQABACoAKwABABcAAAA2AAEAAgAAAAIDrAAAAAIAGgAAAAYAAQAAAA0AGwAAABYAAgAAAAIAIAAhAAAAAAACACIAIQABAAEAKgAsAAEAFwAAADYAAQACAAAAAgOsAAAAAgAaAAAABgABAAAADgAbAAAAFgACAAAAAgAgACEAAAAAAAIAIgAtAAEAAQAuAC8AAQAXAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAAPABsAAAAMAAEAAAACACAAIQAAAAEAMAAxAAEAFwAAACwAAgABAAAAAg6vAAAAAgAaAAAABgABAAAAEAAbAAAADAABAAAAAgAgACEAAAABADIAMwABABcAAAA2AAEAAgAAAAIDrAAAAAIAGgAAAAYAAQAAABEAGwAAABYAAgAAAAIAIAAhAAAAAAACACIALQABAAkANAA1AAEAFwAAACwAAQABAAAAAgOsAAAAAgAaAAAABgABAAAAEgAbAAAADAABAAAAAgAiAAgAAAABADYANwABABcAAAAsAAEAAQAAAAILrgAAAAIAGgAAAAYAAQAAABMAGwAAAAwAAQAAAAIAIAAhAAAAAQA4ADkAAQAXAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAAUABsAAAAMAAEAAAACACAAIQAAAAkAOgA7AAEAFwAAACwAAQABAAAAAguuAAAAAgAaAAAABgABAAAAFQAbAAAADAABAAAAAgAiADwAAAABAD0AOQABABcAAAAsAAEAAQAAAAIDrAAAAAIAGgAAAAYAAQAAABYAGwAAAAwAAQAAAAIAIAAhAAAACQA+AD8AAQAXAAAALAABAAEAAAACA6wAAAACABoAAAAGAAEAAAAXABsAAAAMAAEAAAACACIACAAAAAkAQAA/AAEAFwAAACwAAQABAAAAAgOsAAAAAgAaAAAABgABAAAAGAAbAAAADAABAAAAAgAiAAgAAAABAEEAQgABABcAAAAsAAIAAQAAAAIJrQAAAAIAGgAAAAYAAQAAABkAGwAAAAwAAQAAAAIAIAAhAAAACQBDAEQAAgAmAAAABAABACgAFwAAACwAAQABAAAAAguuAAAAAgAaAAAABgABAAAAGgAbAAAADAABAAAAAgAiACkAAAABAEUARgABABcAAAAsAAEAAQAAAAIDrAAAAAIAGgAAAAYAAQAAABsAGwAAAAwAAQAAAAIAIAAhAAAAAQBHAEgAAQAXAAAALAABAAEAAAACAbAAAAACABoAAAAGAAEAAAAcABsAAAAMAAEAAAACACAAIQAAAAkARwBJAAEAFwAAACwAAQABAAAAAgGwAAAAAgAaAAAABgABAAAAHQAbAAAADAABAAAAAgAiAAgAAAAJAEoASwACACYAAAAEAAEAKAAXAAAALAABAAEAAAACAbAAAAACABoAAAAGAAEAAAAeABsAAAAMAAEAAAACACIAKQAAAAEATAAAAAIATVBLAwQKAAAAAAA7Q7oyvKzd0rwBAAC8AQAAIgAAAGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXJyb3IuY2xhc3PK/rq+AAAALgATAQAcamF2YS9sYW5nL0lsbGVnYWxBY2Nlc3NFcnJvcgcAAQEAJmphdmEvbGFuZy9JbmNvbXBhdGlibGVDbGFzc0NoYW5nZUVycm9yBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAeTGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXJyb3I7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABdJbGxlZ2FsQWNjZXNzRXJyb3IuamF2YQAhAAIABAAAAAAAAgABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAAAQAFAA4AAQAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAALAAsAAAAWAAIAAAAFAAwADQAAAAAABQAPABAAAQABABEAAAACABJQSwMECgAAAAAAO0O6MnhqZL61AQAAtQEAACYAAABqYXZhL2xhbmcvSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBACBqYXZhL2xhbmcvSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbgcAAQEAE2phdmEvbGFuZy9FeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACJMamF2YS9sYW5nL0lsbGVnYWxBY2Nlc3NFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABtJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujLD546OwgEAAMIBAAAoAAAAamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBACJqYXZhL2xhbmcvSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uBwABAQAaamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACRMamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAHUlsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oyX3T2/c4BAADOAQAALAAAAGphdmEvbGFuZy9JbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AEwEAJmphdmEvbGFuZy9JbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uBwABAQAaamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAChMamF2YS9sYW5nL0lsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBACFJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujL+oOt7uQEAALkBAAAlAAAAamF2YS9sYW5nL0lsbGVnYWxTdGF0ZUV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBAB9qYXZhL2xhbmcvSWxsZWdhbFN0YXRlRXhjZXB0aW9uBwABAQAaamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACFMamF2YS9sYW5nL0lsbGVnYWxTdGF0ZUV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAK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Q7oyA86mO7wBAAC8AQAAIgAAAGphdmEvbGFuZy9JbnN0YW50aWF0aW9uRXJyb3IuY2xhc3PK/rq+AAAALgATAQAcamF2YS9sYW5nL0luc3RhbnRpYXRpb25FcnJvcgcAAQEAJmphdmEvbGFuZy9JbmNvbXBhdGlibGVDbGFzc0NoYW5nZUVycm9yBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAeTGphdmEvbGFuZy9JbnN0YW50aWF0aW9uRXJyb3I7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABdJbnN0YW50aWF0aW9uRXJyb3IuamF2YQAhAAIABAAAAAAAAgABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAAAQAFAA4AAQAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAALAAsAAAAWAAIAAAAFAAwADQAAAAAABQAPABAAAQABABEAAAACABJQSwMECgAAAAAAO0O6MoTQ6H21AQAAtQEAACYAAABqYXZhL2xhbmcvSW5zdGFudGlhdGlvbkV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBACBqYXZhL2xhbmcvSW5zdGFudGlhdGlvbkV4Y2VwdGlvbgcAAQEAE2phdmEvbGFuZy9FeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACJMamF2YS9sYW5nL0luc3RhbnRpYXRpb25FeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABtJbnN0YW50aWF0aW9uRXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujJJue/3nQkAAJ0JAAAXAAAAamF2YS9sYW5nL0ludGVnZXIuY2xhc3PK/rq+AAAALgBFAQARamF2YS9sYW5nL0ludGVnZXIHAAEBABBqYXZhL2xhbmcvTnVtYmVyBwADAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAUBAAlNQVhfVkFMVUUBAAFJAQANQ29uc3RhbnRWYWx1ZQN/////AQAJTUlOX1ZBTFVFA4AAAAABAARUWVBFAQARTGphdmEvbGFuZy9DbGFzczsBAAg8Y2xpbml0PgEAAygpVgEABENvZGUMAA0ADgkAAgASAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAGPGluaXQ+AQAEKEkpVgwAFgAQCgAEABgBAAR0aGlzAQATTGphdmEvbGFuZy9JbnRlZ2VyOwEABHZhcjABABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAApFeGNlcHRpb25zAQAfamF2YS9sYW5nL051bWJlckZvcm1hdEV4Y2VwdGlvbgcAHwEAEkxqYXZhL2xhbmcvU3RyaW5nOwEACWJ5dGVWYWx1ZQEAAygpQgEACWNvbXBhcmVUbwEAFihMamF2YS9sYW5nL0ludGVnZXI7KUkBABUoTGphdmEvbGFuZy9PYmplY3Q7KUkBABJMamF2YS9sYW5nL09iamVjdDsBAAZkZWNvZGUBACcoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvSW50ZWdlcjsBAAtkb3VibGVWYWx1ZQEAAygpRAEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEACmZsb2F0VmFsdWUBAAMoKUYBAApnZXRJbnRlZ2VyAQAoKExqYXZhL2xhbmcvU3RyaW5nO0kpTGphdmEvbGFuZy9JbnRlZ2VyOwEABHZhcjEBAAhoYXNoQ29kZQEAAygpSQEACGludFZhbHVlAQAJbG9uZ1ZhbHVlAQADKClKAQAIcGFyc2VJbnQBABUoTGphdmEv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AAA7Q7oyfLplFZMBAACTAQAAHAAAAGphdmEvbGFuZy9MaW5rYWdlRXJyb3IuY2xhc3PK/rq+AAAALgATAQAWamF2YS9sYW5nL0xpbmthZ2VFcnJvcgcAAQEAD2phdmEvbGFuZy9FcnJvcgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAGExqYXZhL2xhbmcvTGlua2FnZUVycm9yOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQARTGlua2FnZUVycm9yLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujJB/XDgmQgAAJkIAAAUAAAAamF2YS9sYW5nL0xvbmcuY2xhc3PK/rq+AAAALgBFAQAOamF2YS9sYW5nL0xvbmcHAAEBABBqYXZhL2xhbmcvTnVtYmVyBwADAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAUBAAlNQVhfVkFMVUUBAAFKAQANQ29uc3RhbnRWYWx1ZQV//////////wEACU1JTl9WQUxVRQWAAAAAAAAAAAEABFRZUEUBABFMamF2YS9sYW5nL0NsYXNzOwEACDxjbGluaXQ+AQADKClWAQAEQ29kZQwADwAQCQACABQBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAY8aW5pdD4BAAQoSilWDAAYABIKAAQAGgEABHRoaXMBABBMamF2YS9sYW5nL0xvbmc7AQAEdmFyMAEAFShMamF2YS9sYW5nL1N0cmluZzspVgEACkV4Y2VwdGlvbnMBAB9qYXZhL2xhbmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uBwAhAQASTGphdmEvbGFuZy9TdHJpbmc7AQAJ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AAIARFBLAwQKAAAAAAA7Q7oy5hh0kTMKAAAzCgAAFAAAAGphdmEvbGFuZy9NYXRoLmNsYXNzyv66vgAAAC4APgEADmphdmEvbGFuZy9NYXRoBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAAUUBAAFEAQACUEkBAAg8Y2xpbml0PgEAAygpVgEABENvZGUMAAUABgkAAgALDAAHAAYJAAIADQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEAA2FicwEABChEKUQBAAR2YXIwAQAEKEYpRgEAAUYBAAQoSSlJAQABSQEABChKKUoBAAFKAQAEYWNvcwEABGFzaW4BAARhdGFuAQAFYXRhbjIBAAUoREQpRAEABHZhcjEBAARjZWlsAQADY29zAQADZXhwAQAFZmxvb3IBAA1JRUVFcmVtYWluZGVyAQADbG9nAQADbWF4AQAFKEZGKUYBAAUoSUkpSQEABShKSilKAQADbWluAQADcG93AQAEcmludAEABXJvdW5kAQAEKEQpSgEABChGKUkBAANzaW4BAARzcXJ0AQADdGFuAQAGcmFuZG9tAQADKClEAQAJdG9SYWRpYW5zAQAJdG9EZWdyZWVzAQAGPGluaXQ+DAA3AAkKAAQAOAEABHRoaXMBABBMamF2YS9sYW5nL01hdGg7AQAKU291cmNlRmlsZQEACU1hdGguamF2YQAxAAIABAAAAAIAGQAFAAYAAAAZAAcABgAAACIACAAIAAkAAQAKAAAAMQACAAAAAAAJDrMADA6zAA6xAAAAAgAPAAAADgADAAAAKgAEACsACAAJABAAAAACAAAACQARABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAAKABAAAAAMAAEAAAACABMABgAAAAkAEQAUAAEACgAAACwAAQABAAAAAguuAAAAAgAPAAAABgABAAAACwAQAAAADAABAAAAAgATABUAAAAJABEAFgABAAoAAAAsAAEAAQAAAAIDrAAAAAIADwAAAAYAAQAAAAwAEAAAAAwAAQAAAAIAEwAXAAAACQARABgAAQAKAAAALAACAAIAAAACCa0AAAACAA8AAAAGAAEAAAANABAAAAAMAAEAAAACABMAGQAAAAkAGgASAAEACgAAACwAAgACAAAAAg6vAAAAAgAPAAAABgABAAAADgAQAAAADAABAAAAAgATAAYAAAAJABsAEgABAAoAAAAsAAIAAgAAAAIOrwAAAAIADwAAAAYAAQAAAA8AEAAAAAwAAQAAAAIAEwAGAAAACQAcABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAAQABAAAAAMAAEAAAACABMABgAAAAkAHQAeAAEACgAAADYAAgAEAAAAAg6vAAAAAgAPAAAABgABAAAAEQAQAAAAFgACAAAAAgATAAYAAAAAAAIAHwAGAAIACQAgABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAASABAAAAAMAAEAAAACABMABgAAAAkAIQASAAEACgAAACwAAgACAAAAAg6vAAAAAgAPAAAABgABAAAAEwAQAAAADAABAAAAAgATAAYAAAAJACIAEgABAAoAAAAsAAIAAgAAAAIOrwAAAAIADwAAAAYAAQAAABQAEAAAAAwAAQAAAAIAEwAGAAAACQAjABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAAVABAAAAAMAAEAAAACABMABgAAAAkAJAAeAAEACgAAADYAAgAEAAAAAg6vAAAAAgAPAAAABgABAAAAFgAQAAAAFgACAAAAAgATAAYAAAAAAAIAHwAGAAIACQAlABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAAXABAAAAAMAAEAAAACABMABgAAAAkAJgAeAAEACgAAADYAAgAEAAAAAg6vAAAAAgAPAAAABgABAAAAGAAQAAAAFgACAAAAAgATAAYAAAAAAAIAHwAGAAIACQAmACcAAQAKAAAANgABAAIAAAACC64AAAACAA8AAAAGAAEAAAAZABAAAAAWAAIAAAACABMAFQAAAAAAAgAfABUAAQAJACYAKAABAAoAAAA2AAEAAgAAAAIDrAAAAAIADwAAAAYAAQAAABoAEAAAABYAAgAAAAIAEwAXAAAAAAACAB8AFwABAAkAJgApAAEACgAAADYAAgAEAAAAAgmtAAAAAgAPAAAABgABAAAAGwAQAAAAFgACAAAAAgATABkAAAAAAAIAHwAZAAIACQAqAB4AAQAKAAAANgACAAQAAAACDq8AAAACAA8AAAAGAAEAAAAcABAAAAAWAAIAAAACABMABgAAAAAAAgAfAAYAAgAJACoAJwABAAoAAAA2AAEAAgAAAAILrgAAAAIADwAAAAYAAQAAAB0AEAAAABYAAgAAAAIAEwAVAAAAAAACAB8AFQABAAkAKgAoAAEACgAAADYAAQACAAAAAgOsAAAAAgAPAAAABgABAAAAHgAQAAAAFgACAAAAAgATABcAAAAAAAIAHwAXAAEACQAqACkAAQAKAAAANgACAAQAAAACCa0AAAACAA8AAAAGAAEAAAAfABAAAAAWAAIAAAACABMAGQAAAAAAAgAfABkAAgAJACsAHgABAAoAAAA2AAIABAAAAAIOrwAAAAIADwAAAAYAAQAAACAAEAAAABYAAgAAAAIAEwAGAAAAAAACAB8ABgACAAkALAASAAEACgAAACwAAgACAAAAAg6vAAAAAgAPAAAABgABAAAAIQAQAAAADAABAAAAAgATAAYAAAAJAC0ALgABAAoAAAAsAAIAAgAAAAIJrQAAAAIADwAAAAYAAQAAACIAEAAAAAwAAQAAAAIAEwAGAAAACQAtAC8AAQAKAAAALAABAAEAAAACA6wAAAACAA8AAAAGAAEAAAAjABAAAAAMAAEAAAACABMAFQAAAAkAMAASAAEACgAAACwAAgACAAAAAg6vAAAAAgAPAAAABgABAAAAJAAQAAAADAABAAAAAgATAAYAAAAJADEAEgABAAoAAAAsAAIAAgAAAAIOrwAAAAIADwAAAAYAAQAAACUAEAAAAAwAAQAAAAIAEwAGAAAACQAyABIAAQAKAAAALAACAAIAAAACDq8AAAACAA8AAAAGAAEAAAAmABAAAAAMAAEAAAACABMABgAAAAkAMwA0AAEACgAAACIAAgAAAAAAAg6vAAAAAgAPAAAABgABAAAAJwAQAAAAAgAAAAkANQASAAEACgAAACwAAgACAAAAAg6vAAAAAgAPAAAABgABAAAAKAAQAAAADAABAAAAAgATAAYAAAAJADYAEgABAAoAAAAsAAIAAgAAAAIOrwAAAAIADwAAAAYAAQAAACkAEAAAAAwAAQAAAAIAEwAGAAAAAgA3AAkAAQAKAAAALwABAAEAAAAFKrcAObEAAAACAA8AAAAGAAEAAAAsABAAAAAMAAEAAAAFADoAOwAAAAEAPAAAAAIAPVBLAwQKAAAAAAA7Q7oyGPQWMsgBAADIAQAAKgAAAGphdmEvbGFuZy9OZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBACRqYXZhL2xhbmcvTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb24HAAEBABpqYXZhL2xhbmcvUnVudGltZUV4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAJkxqYXZhL2xhbmcvTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBAB9OZWdhdGl2ZUFycmF5U2l6ZUV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oy4GHA27IBAACyAQAAJAAAAGphdmEvbGFuZy9Ob0NsYXNzRGVmRm91bmRFcnJvci5jbGFzc8r+ur4AAAAuABMBAB5qYXZhL2xhbmcvTm9DbGFzc0RlZkZvdW5kRXJyb3IHAAEBABZqYXZhL2xhbmcvTGlua2FnZUVycm9yBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAgTGphdmEvbGFuZy9Ob0NsYXNzRGVmRm91bmRFcnJvcjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAGU5vQ2xhc3NEZWZGb3VuZEVycm9yLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAM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SwMECgAAAAAAO0O6MmseqxgHBgAABwYAABcAAABqYXZhL2xhbmcvUnVudGltZS5jbGFzc8r+ur4AAAAuACkBABFqYXZhL2xhbmcvUnVudGltZQcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAARleGVjAQAoKFtMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9Qcm9jZXNzOwEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAIAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABNMamF2YS9sYW5nL1J1bnRpbWU7AQAEdmFyMAEAE1tMamF2YS9sYW5nL1N0cmluZzsBADsoW0xqYXZhL2xhbmcvU3RyaW5nO1tMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9Qcm9jZXNzOwEABHZhcjEBACcoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvUHJvY2VzczsBABJMamF2YS9sYW5nL1N0cmluZzsBADooTGphdmEvbGFuZy9TdHJpbmc7W0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1Byb2Nlc3M7AQAEZXhpdAEABChJKVYBAAFJAQAKZnJlZU1lbW9yeQEAAygpSgEAAmdjAQADKClWAQAKZ2V0UnVudGltZQEAFSgpTGphdmEvbGFuZy9SdW50aW1lOwEABGxvYWQBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAtsb2FkTGlicmFyeQEAD3J1bkZpbmFsaXphdGlvbgEAC3RvdGFsTWVtb3J5AQAGPGluaXQ+DAAkABwKAAQAJQEAClNvdXJjZUZpbGUBAAxSdW50aW1lLmphdmEAIQACAAQAAAAAAA0AAQAFAAYAAgAHAAAABAABAAkACgAAADYAAQACAAAAAgGwAAAAAgALAAAABgABAAAACgAMAAAAFgACAAAAAgANAA4AAAAAAAIADwAQAAEAAQAFABEAAgAHAAAABAABAAkACgAAAEAAAQADAAAAAgGwAAAAAgALAAAABgABAAAACwAMAAAAIAADAAAAAgANAA4AAAAAAAIADwAQAAEAAAACABIAEAACAAEABQATAAIABwAAAAQAAQAJAAoA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c8r+ur4AAAAuABMBABtqYXZhL2xhbmcvU2VjdXJpdHlFeGNlcHRpb24HAAEBABpqYXZhL2xhbmcvUnVudGltZUV4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAHUxqYXZhL2xhbmcvU2VjdXJpdHlFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABZTZWN1cml0eUV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA7Q7oy8Hr7g7YOAAC2DgAAHwAAAGphdmEvbGFuZy9TZWN1cml0eU1hbmFnZXIuY2xhc3PK/rq+AAAALgBJAQAZamF2YS9sYW5nL1NlY3VyaXR5TWFuYWdlcgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABtMamF2YS9sYW5nL1NlY3VyaXR5TWFuYWdlcjsBAAtjaGVja0FjY2VwdAEAFihMamF2YS9sYW5nL1N0cmluZztJKVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEAAUkBAAtjaGVja0FjY2VzcwEAFShMamF2YS9sYW5nL1RocmVhZDspVgEAEkxqYXZhL2xhbmcvVGhyZWFkOwEAGihMamF2YS9sYW5nL1RocmVhZEdyb3VwOylWAQAXTGphdmEvbGFuZy9UaHJlYWRHcm91cDsBAAxjaGVja0Nvbm5lY3QBACgoTGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL2xhbmcvT2JqZWN0OylWAQAEdmFyMgEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAFmNoZWNrQ3JlYXRlQ2xhc3NMb2FkZXIBAAtjaGVja0RlbGV0ZQEAFShMamF2YS9sYW5nL1N0cmluZzspVgEACWNoZWNrRXhlYwEACWNoZWNrRXhpdAEABChJKVYBAAljaGVja0xpbmsBAAtjaGVja0xpc3RlbgEAEWNoZWNrTWVtYmVyQWNjZXNzAQAVKExqYXZhL2xhbmcvQ2xhc3M7SSlWAQARTGphdmEvbGFuZy9DbGFzczsBAA5jaGVja011bHRpY2FzdAEAGShMamF2YS9uZXQvSW5ldEFkZHJlc3M7KVYBABZMamF2YS9uZXQvSW5ldEFkZHJlc3M7AQAaKExqYXZhL25ldC9JbmV0QWRkcmVzcztCKVYBAAFCAQASY2hlY2tQYWNrYWdlQWNjZXNzAQAWY2hlY2tQYWNrYWdlRGVmaW5pdGlvbgEAFWNoZWNrUHJvcGVydGllc0FjY2VzcwEAE2NoZWNrUHJvcGVydHlBY2Nlc3MBAAljaGVja1JlYWQBABsoTGphdmEvaW8vRmlsZURlc2NyaXB0b3I7KVYBABhMamF2YS9pby9GaWxlRGVzY3JpcHRvcjsBACcoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9PYmplY3Q7KVYBABNjaGVja1NlY3VyaXR5QWNjZXNzAQAPY2hlY2tTZXRGYWN0b3J5AQATY2hlY2tUb3BMZXZlbFdpbmRvdwEAFShMamF2YS9sYW5nL09iamVjdDspWgEAGmNoZWNrU3lzdGVtQ2xpcGJvYXJkQWNjZXNzAQAYY2hlY2tBd3RFdmVudFF1ZXVlQWNjZXNzAQATY2hlY2tQcmludEpvYkFjY2VzcwEACmNoZWNrV3JpdGUBAA9nZXRDbGFzc0NvbnRleHQBABQoKVtMamF2YS9sYW5nL0NsYXNzOwEADmdldFRocmVhZEdyb3VwAQAZKClMamF2YS9sYW5nL1RocmVhZEdyb3VwOwEAEmdldFNlY3VyaXR5Q29udGV4dAEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAPY2hlY2tQZXJtaXNzaW9uAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVYBABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEALyhMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uO0xqYXZhL2xhbmcvT2JqZWN0OylWAQAKU291cmNlRmlsZQEAFFNlY3VyaXR5TWFuYWdlci5qYXZhACEAAgAEAAAAAAAjAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAA4ADwABAAcAAAA/AAAAAwAAAAGxAAAAAgAKAAAABgABAAAACwALAAAAIAADAAAAAQAMAA0AAAAAAAEAEAARAAEAAAABABIAEwACAAEAFAAVAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAMAAsAAAAWAAIAAAABAAwADQAAAAAAAQAQABYAAQABABQAFwABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAADQALAAAAFgACAAAAAQAMAA0AAAAAAAEAEAAYAAEAAQAZAA8AAQAHAAAAPwAAAAMAAAABsQAAAAIACgAAAAYAAQAAAA4ACwAAACAAAwAAAAEADAANAAAAAAABABAAEQABAAAAAQASABMAAgABABkAGgABAAcAAABJAAAABAAAAAGxAAAAAgAKAAAABgABAAAADwALAAAAKgAEAAAAAQAMAA0AAAAAAAEAEAARAAEAAAABABIAEwACAAAAAQAbABwAAwABAB0ABgABAAcAAAArAAAAAQAAAAGxAAAAAgAKAAAABgABAAAAEAALAAAADAABAAAAAQAMAA0AAAABAB4AHwABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAEQALAAAAFgACAAAAAQAMAA0AAAAAAAEAEAARAAEAAQAgAB8AAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABIACwAAABYAAgAAAAEADAANAAAAAAABABAAEQABAAEAIQAiAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAATAAsAAAAWAAIAAAABAAwADQAAAAAAAQAQABMAAQABACMAHwABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAFAALAAAAFgACAAAAAQAMAA0AAAAAAAEAEAARAAEAAQAkACIAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABUACwAAABYAAgAAAAEADAANAAAAAAABABAAEwABAAEAJQAmAAEABwAAAD8AAAADAAAAAbEAAAACAAoAAAAGAAEAAAAWAAsAAAAgAAMAAAABAAwADQAAAAAAAQAQACcAAQAAAAEAEgATAAIAAQAoACkAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABcACwAAABYAAgAAAAEADAANAAAAAAABABAAKgABAAEAKAArAAEABwAAAD8AAAADAAAAAbEAAAACAAoAAAAGAAEAAAAYAAsAAAAgAAMAAAABAAwADQAAAAAAAQAQACoAAQAAAAEAEgAsAAIAAQAtAB8AAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAABkACwAAABYAAgAAAAEADAANAAAAAAABABAAEQABAAEALgAfAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAaAAsAAAAWAAIAAAABAAwADQAAAAAAAQAQABEAAQABAC8ABgABAAcAAAArAAAAAQAAAAGxAAAAAgAKAAAABgABAAAAGwALAAAADAABAAAAAQAMAA0AAAABADAAHwABAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAHAALAAAAFgACAAAAAQAMAA0AAAAAAAEAEAARAAEAAQAxADIAAQAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAAB0ACwAAABYAAgAAAAEADAANAAAAAAABABAAMwABAAEAMQAfAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAeAAsAAAAWAAIAAAABAAwADQAAAAAAAQAQABEAAQABADEANAABAAcAAAA/AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAHwALAAAAIAADAAAAAQAMAA0AAAAAAAEAEAARAAEAAAABABIAHAACAAEANQAfAAEABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAgAAsAAAAWAAIAAAABAAwADQAAAAAAAQAQABEAAQABADYABgABAAcAAAArAAAAAQAAAAGxAAAAAgAKAAAABgABAAAAIQALAAAADAABAAAAAQAMAA0AAAABADcAOAABAAcAAAA2AAEAAgAAAAIDrAAAAAIACgAAAAYAAQAAACIACwAA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swEAACIAAABqYXZhL2xhbmcvU3RhY2tPdmVyZmxvd0Vycm9yLmNsYXNzyv66vgAAAC4AEwEAHGphdmEvbGFuZy9TdGFja092ZXJmbG93RXJyb3IHAAEBAB1qYXZhL2xhbmcvVmlydHVhbE1hY2hpbmVFcnJvcgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAHkxqYXZhL2xhbmcvU3RhY2tPdmVyZmxvd0Vycm9yOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAXU3RhY2tPdmVyZmxvd0Vycm9yLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADtDujJWniV1dRMAAHUTAAAWAAAAamF2YS9sYW5nL1N0cmluZy5jbGFzc8r+ur4AAAAuAGQBABBqYXZhL2xhbmcvU3RyaW5nBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAUamF2YS9sYW5nL0NvbXBhcmFibGUHAAcBABZDQVNFX0lOU0VOU0lUSVZFX09SREVSAQAWTGphdmEvdXRpbC9Db21wYXJhdG9yOwEACDxjbGluaXQ+AQADKClWAQAEQ29kZQwACQAKCQACAA4BAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAY8aW5pdD4MABIADAoABAATAQAEdGhpcwEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABShbQilWAQAEdmFyMAEAAltCAQAHKFtCSUkpVgEABHZhcjEBAAFJAQAEdmFyMgEAGShbQklJTGphdmEvbGFuZy9TdHJpbmc7KVYBAApFeGNlcHRpb25zAQAkamF2YS9pby9VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uBwAgAQAEdmFyMwEAFyhbQkxqYXZhL2xhbmcvU3RyaW5nOylWAQAFKFtDKVYBAAJbQwEAByhbQ0lJKVYBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAZjaGFyQXQBAAQoSSlDAQAJY29tcGFyZVRvAQAVKExqYXZhL2xhbmcvT2JqZWN0OylJAQASTGphdmEvbGFuZy9PYmplY3Q7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylJAQATY29tcGFyZVRvSWdub3JlQ2FzZQEABmNvbmNhdAEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAIZW5kc1dpdGgBABUoTGphdmEvbGFuZy9TdHJpbmc7KVoBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBABBlcXVhbHNJZ25vcmVDYXNlAQAIZ2V0Qnl0ZXMBAAQoKVtCAQAWKExqYXZhL2xhbmcvU3RyaW5nOylbQgEACGdldENoYXJzAQAIKElJW0NJKVYBAAhoYXNoQ29kZQEAAygpSQEAB2luZGV4T2YBAAQoSSlJAQAFKElJKUkBABYoTGphdmEvbGFuZy9TdHJpbmc7SSlJAQAGaW50ZXJuAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAtsYXN0SW5kZXhPZgEABmxlbmd0aAEADXJlZ2lvbk1hdGNoZXMBABgoSUxqYXZhL2xhbmcvU3RyaW5nO0lJKVoBABkoWklMamF2YS9sYW5nL1N0cmluZztJSSlaAQABWgEABHZhcjQBAAdyZXBsYWNlAQAWKENDKUxqYXZhL2xhbmcvU3RyaW5nOwEAAUMBAApzdGFydHNXaXRoAQAWKExqYXZhL2xhbmcvU3RyaW5nO0kpWgEACXN1YnN0cmluZwEAFShJKUxqYXZhL2xhbmcvU3RyaW5nOwEAFihJSSlMamF2YS9sYW5nL1N0cmluZzsBAAt0b0NoYXJBcnJheQEABCgpW0MBAAt0b0xvd2VyQ2FzZQEACHRvU3RyaW5nAQALdG9VcHBlckNhc2UBAAR0cmltAQAHdmFsdWVPZgEAFShDKUxqYXZhL2xhbmcvU3RyaW5nOwEAFShEKUxqYXZhL2xhbmcvU3RyaW5nOwEAAUQBABUoRilMamF2YS9sYW5nL1N0cmluZzsBAAFGAQAVKEopTGphdmEvbGFuZy9TdHJpbmc7AQABSgEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9TdHJpbmc7AQAVKFopTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAC1N0cmluZy5qYXZhADEAAgAEAAIABgAIAAEAGQAJAAoAAAAyAAgACwAMAAEADQAAACkAAQAAAAAABQGzAA+xAAAAAgAQAAAACgACAAAAOwAEAAkAEQAAAAIAAAABABIADAABAA0AAAAvAAEAAQAAAAUqtwAUsQAAAAIAEAAAAAYAAQAAAAoAEQAAAAwAAQAAAAUAFQAWAAAAAQASABcAAQANAAAAOQABAAIAAAAFKrcAFLEAAAACABAAAAAGAAEAAAALABEAAAAWAAIAAAAFABUAFgAAAAAABQAYABkAAQABABIAGgABAA0AAABNAAEABAAAAAUqtwAUsQAAAAIAEAAAAAYAAQAAAAwAEQAAACoABAAAAAUAFQAWAAAAAAAFABgAGQABAAAABQAbABwAAgAAAAUAHQAcAAMAAQASAB4AAgAfAAAABAABACEADQAAAFcAAQAFAAAABSq3ABSxAAAAAgAQAAAABgABAAAADQARAAAANAAFAAAABQAVABYAAAAAAAUAGAAZAAEAAAAFABsAHAACAAAABQAdABwAAwAAAAUAIgAWAAQAAQASACMAAgAfAAAABAABACEADQAAAEMAAQADAAAABSq3ABSxAAAAAgAQAAAABgABAAAADgARAAAAIAADAAAABQAVABYAAAAAAAUAGAAZAAEAAAAFABsAFgACAAEAEgAkAAEADQAAADkAAQACAAAABSq3ABSxAAAAAgAQAAAABgABAAAADwARAAAAFgACAAAABQAVABYAAAAAAAUAGAAlAAEAAQASACYAAQANAAAATQABAAQAAAAFKrcAFLEAAAACABAAAAAGAAEAAAAQABEAAAAqAAQAAAAFABUAFgAAAAAABQAYACUAAQAAAAUAGwAcAAIAAAAFAB0AHAADAAEAEgAnAAEADQAAADkAAQACAAAABSq3ABSxAAAAAgAQAAAABgABAAAAEQARAAAAFgACAAAABQAVABYAAAAAAAUAGAAWAAEAAQAoACkAAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAASABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABwAAQABACoAKwABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAABMAEQAAABYAAgAAAAIAFQAWAAAAAAACABgALAABAAEAKgAtAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAFAARAAAAFgACAAAAAgAVABYAAAAAAAIAGAAWAAEAAQAuAC0AAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAAVABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABYAAQABAC8AMAABAA0AAAA2AAEAAgAAAAIBsAAAAAIAEAAAAAYAAQAAABYAEQAAABYAAgAAAAIAFQAWAAAAAAACABgAFgABAAEAMQAyAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAFwARAAAAFgACAAAAAgAVABYAAAAAAAIAGAAWAAEAAQAzADQAAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAAYABEAAAAWAAIAAAACABUAFgAAAAAAAgAYACwAAQABADUAMgABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAABkAEQAAABYAAgAAAAIAFQAWAAAAAAACABgAFgABAAEANgA3AAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAAGgARAAAADAABAAAAAgAVABYAAAABADYAOAACAB8AAAAEAAEAIQANAAAANgABAAIAAAACAbAAAAACABAAAAAGAAEAAAAbABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABYAAQABADkAOgABAA0AAABTAAAABQAAAAGxAAAAAgAQAAAABgABAAAAHAARAAAANAAFAAAAAQAVABYAAAAAAAEAGAAcAAEAAAABABsAHAACAAAAAQAdACUAAwAAAAEAIgAcAAQAAQA7ADwAAQANAAAALAABAAEAAAACA6wAAAACABAAAAAGAAEAAAAdABEAAAAMAAEAAAACABUAFgAAAAEAPQA+AAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAHgARAAAAFgACAAAAAgAVABYAAAAAAAIAGAAcAAEAAQA9AD8AAQANAAAAQAABAAMAAAACA6wAAAACABAAAAAGAAEAAAAfABEAAAAgAAMAAAACABUAFgAAAAAAAgAYABwAAQAAAAIAGwAcAAIAAQA9AC0AAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAAgABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABYAAQABAD0AQAABAA0AAABAAAEAAwAAAAIDrAAAAAIAEAAAAAYAAQAAACEAEQAAACAAAwAAAAIAFQAWAAAAAAACABgAFgABAAAAAgAbABwAAgABAEEAQgABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAACIAEQAAAAwAAQAAAAIAFQAWAAAAAQBDAD4AAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAAjABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABwAAQABAEMAPwABAA0AAABAAAEAAwAAAAIDrAAAAAIAEAAAAAYAAQAAACQAEQAAACAAAwAAAAIAFQAWAAAAAAACABgAHAABAAAAAgAbABwAAgABAEMALQABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAACUAEQAAABYAAgAAAAIAFQAWAAAAAAACABgAFgABAAEAQwBAAAEADQAAAEAAAQADAAAAAgOsAAAAAgAQAAAABgABAAAAJgARAAAAIAADAAAAAgAVABYAAAAAAAIAGAAWAAEAAAACABsAHAACAAEARAA8AAEADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAAJwARAAAADAABAAAAAgAVABYAAAABAEUARgABAA0AAABUAAEABQAAAAIDrAAAAAIAEAAAAAYAAQAAACgAEQAAADQABQAAAAIAFQAWAAAAAAACABgAHAABAAAAAgAbABYAAgAAAAIAHQAcAAMAAAACACIAHAAEAAEARQBHAAEADQAAAF4AAQAGAAAAAgOsAAAAAgAQAAAABgABAAAAKQARAAAAPgAGAAAAAgAVABYAAAAAAAIAGABIAAEAAAACABsAHAACAAAAAgAdABYAAwAAAAIAIgAcAAQAAAACAEkAHAAFAAEASgBLAAEADQAAAEAAAQADAAAAAgGwAAAAAgAQAAAABgABAAAAKgARAAAAIAADAAAAAgAVABYAAAAAAAIAGABMAAEAAAACABsATAACAAEATQAyAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAKwARAAAAFgACAAAAAgAVABYAAAAAAAIAGAAWAAEAAQBNAE4AAQANAAAAQAABAAMAAAACA6wAAAACABAAAAAGAAEAAAAsABEAAAAgAAMAAAACABUAFgAAAAAAAgAYABYAAQAAAAIAGwAcAAIAAQBPAFAAAQANAAAANgABAAIAAAACAbAAAAACABAAAAAGAAEAAAAtABEAAAAWAAIAAAACABUAFgAAAAAAAgAYABwAAQABAE8AUQABAA0AAABAAAEAAwAAAAIBsAAAAAIAEAAAAAYAAQAAAC4AEQAAACAAAwAAAAIAFQAWAAAAAAACABgAHAABAAAAAgAbABwAAgABAFIAUwABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAAC8AEQAAAAwAAQAAAAIAFQAWAAAAAQBUAEIAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAAwABEAAAAMAAEAAAACABUAFgAAAAEAVQBCAAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAAMQARAAAADAABAAAAAgAVABYAAAABAFYAQgABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAADIAEQAAAAwAAQAAAAIAFQAWAAAAAQBXAEIAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAAzABEAAAAMAAEAAAACABUAFgAAAAkAWABZAAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAANAARAAAADAABAAAAAgAYAEwAAAAJAFgAWgABAA0AAAAsAAEAAgAAAAIBsAAAAAIAEAAAAAYAAQAAADUAEQAAAAwAAQAAAAIAGABbAAAACQBYAFwAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAA2ABEAAAAMAAEAAAACABgAXQAAAAkAWABQAAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAANwARAAAADAABAAAAAgAYABwAAAAJAFgAXgABAA0AAAAsAAEAAgAAAAIBsAAAAAIAEAAAAAYAAQAAADgAEQAAAAwAAQAAAAIAGABfAAAACQBYAGAAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAA5ABEAAAAMAAEAAAACABgALAAAAAkAWABhAAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAAOgARAAAADAABAAAAAgAYAEgAAAABAGIAAAACAGNQSwMECgAAAAAAO0O6MktoYNKUDgAAlA4AABwAAABqYXZhL2xhbmcvU3RyaW5nQnVmZmVyLmNsYXNzyv66vgAAAC4ASQEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAUamF2YS9pby9TZXJpYWxpemFibGUHAAUBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAHAAgKAAQACgEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABhMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAQoSSlWAQAEdmFyMAEAAUkBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBABJMamF2YS9sYW5nL1N0cmluZzsBAAZhcHBlbmQBABwoW0MpTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQACW0MBAB4oW0NJSSlMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAR2YXIxAQAEdmFyMgEAGyhDKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEAAUMBABsoRClMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAFEAQAbKEYpTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQABRgEAGyhJKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEAGyhKKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEAAUoBACwoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEAEkxqYXZhL2xhbmcvT2JqZWN0OwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAbKFopTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQABWgEACGNhcGFjaXR5AQADKClJAQAGY2hhckF0AQAEKEkpQwEABmRlbGV0ZQEAHChJSSlMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAxkZWxldGVDaGFyQXQBAA5lbnN1cmVDYXBhY2l0eQEACGdldENoYXJzAQAIKElJW0NJKVYBAAR2YXIzAQAGaW5zZXJ0AQAdKElbQylMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBABwoSUMpTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAcKElEKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEAHChJRilMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBABwoSUopTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAtKElMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAtKElMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAcKElaKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEABmxlbmd0aAEAB3JldmVyc2UBABooKUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEACXNldENoYXJBdAEABShJQylWAQAJc2V0TGVuZ3RoAQAJc3Vic3RyaW5nAQAWKElJKUxqYXZhL2xhbmcvU3RyaW5nOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQARU3RyaW5nQnVmZmVyLmphdmEAMQACAAQAAQAGAAAAIgABAAcACAABAAkAAAAvAAEAAQAAAAUqtwALsQAAAAIADAAAAAYAAQAAAAoADQAAAAwAAQAAAAUADgAPAAAAAQAHABAAAQAJAAAAOQABAAIAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAALAA0AAAAWAAIAAAAFAA4ADwAAAAAABQARABIAAQABAAcAEwABAAkAAAA5AAEAAgAAAAUqtwALsQAAAAIADAAAAAYAAQAAAAwADQAAABYAAgAAAAUADgAPAAAAAAAFABEAFAABAAEAFQAWAAEACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAADQANAAAAFgACAAAAAgAOAA8AAAAAAAIAEQAXAAEAAQAVABgAAQAJAAAASgABAAQAAAACAbAAAAACAAwAAAAGAAEAAAAOAA0AAAAqAAQAAAACAA4ADwAAAAAAAgARABcAAQAAAAIAGQASAAIAAAACABoAEgADAAEAFQAbAAEACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAADwANAAAAFgACAAAAAgAOAA8AAAAAAAIAEQAcAAEAAQAVAB0AAQAJAAAANgABAAMAAAACAbAAAAACAAwAAAAGAAEAAAAQAA0AAAAWAAIAAAACAA4ADwAAAAAAAgARAB4AAQABABUAHwABAAkAAAA2AAEAAgAAAAIBsAAAAAIADAAAAAYAAQAAABEADQAAABYAAgAAAAIADgAPAAAAAAACABEAIAABAAEAFQAhAAEACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAAEgANAAAAFgACAAAAAgAOAA8AAAAAAAIAEQASAAEAAQAVACIAAQAJAAAANgABAAMAAAACAbAAAAACAAwAAAAGAAEAAAATAA0AAAAWAAIAAAACAA4ADwAAAAAAAgARACMAAQABABUAJAABAAkAAAA2AAEAAgAAAAIBsAAAAAIADAAAAAYAAQAAABQADQAAABYAAgAAAAIADgAPAAAAAAACABEAJQABAAEAFQAmAAEACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAAFQANAAAAFgACAAAAAgAOAA8AAAAAAAIAEQAUAAEAAQAVACcAAQAJAAAANgABAAIAAAACAbAAAAACAAwAAAAGAAEAAAAWAA0AAAAWAAIAAAACAA4ADwAAAAAAAgARACgAAQABACkAKgABAAkAAAAsAAEAAQAAAAIDrAAAAAIADAAAAAYAAQAAABcADQAAAAwAAQAAAAIADgAPAAAAAQArACwAAQAJAAAANgABAAIAAAACA6wAAAACAAwAAAAGAAEAAAAYAA0AAAAWAAIAAAACAA4ADwAAAAAAAgARABIAAQABAC0ALgABAAkAAABAAAEAAwAAAAIBsAAAAAIADAAAAAYAAQAAABkADQAAACAAAwAAAAIADgAPAAAAAAACABEAEgABAAAAAgAZABIAAgABAC8AIQABAAkAAAA2AAEAAgAAAAIBsAAAAAIADAAAAAYAAQAAABoADQAAABYAAgAAAAIADgAPAAAAAAACABEAEgABAAEAMAAQAAEACQAAADUAAAACAAAAAbEAAAACAAwAAAAGAAEAAAAbAA0AAAAWAAIAAAABAA4ADwAAAAAAAQARABIAAQABADEA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DAALAAAAFgACAAAABQAMAA0AAAAAAAUADwASAAEAAQATAAAAAgAUUEsDBAoAAAAAADtDujLB7KfDhggAAIYIAAAWAAAAamF2YS9sYW5nL1N5c3RlbS5jbGFzc8r+ur4AAAAuAEMBABBqYXZhL2xhbmcvU3lzdGVtBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAAmluAQAVTGphdmEvaW8vSW5wdXRTdHJlYW07AQADb3V0AQAVTGphdmEvaW8vUHJpbnRTdHJlYW07AQADZXJyAQAIPGNsaW5pdD4BAAMoKVYBAARDb2RlDAAFAAYJAAIADQwABwAICQACAA8MAAkACAkAAgARAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAFc2V0SW4BABgoTGphdmEvaW8vSW5wdXRTdHJlYW07KVYBAAR2YXIwAQAGc2V0T3V0AQAYKExqYXZhL2lvL1ByaW50U3RyZWFtOylWAQAGc2V0RXJyAQAJYXJyYXljb3B5AQAqKExqYXZhL2xhbmcvT2JqZWN0O0lMamF2YS9sYW5nL09iamVjdDtJSSlWAQASTGphdmEvbGFuZy9PYmplY3Q7AQAEdmFyMQEAAUkBAAR2YXIyAQAEdmFyMwEABHZhcjQBABFjdXJyZW50VGltZU1pbGxpcwEAAygpSgEABGV4aXQBAAQoSSlWAQACZ2MBAA1nZXRQcm9wZXJ0aWVzAQAYKClMamF2YS91dGlsL1Byb3BlcnRpZXM7AQALZ2V0UHJvcGVydHkBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAOChMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQASZ2V0U2VjdXJpdHlNYW5hZ2VyAQAdKClMamF2YS9sYW5nL1NlY3VyaXR5TWFuYWdlcjsBABBpZGVudGl0eUhhc2hDb2RlAQAVKExqYXZhL2xhbmcvT2JqZWN0OylJAQALbG9hZExpYnJhcnkBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA9ydW5GaW5hbGl6YXRpb24BAA1zZXRQcm9wZXJ0aWVzAQAZKExqYXZh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YW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAC4oTGphdmEvbGFuZy9UaHJlYWRHcm91cDtMamF2YS9sYW5nL1J1bm5hYmxlOylWAQAXTGphdmEvbGFuZy9UaHJlYWRHcm91cDsBAEAoTGphdmEvbGFuZy9UaHJlYWRHcm91cDtMamF2YS9sYW5nL1J1bm5hYmxlO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMgEALChMamF2YS9sYW5nL1RocmVhZEdyb3VwO0xqYXZhL2xhbmcvU3RyaW5nOylWAQALY2hlY2tBY2Nlc3MBAA1jdXJyZW50VGhyZWFkAQAUKClMamF2YS9sYW5nL1RocmVhZDsBAAdnZXROYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAtnZXRQcmlvcml0eQEAAygpSQEADmdldFRocmVhZEdyb3VwAQAZKClMamF2YS9sYW5nL1RocmVhZEdyb3VwOwEACWludGVycnVwdAEAC2ludGVycnVwdGVkAQADKClaAQAHaXNBbGl2ZQEACGlzRGFlbW9uAQANaXNJbnRlcnJ1cHRlZAEABGpvaW4BAApFeGNlcHRpb25zAQAeamF2YS9sYW5nL0ludGVycnVwdGVkRXhjZXB0aW9uBwA1AQAEKEopVgEAAUoBAAUoSkkpVgEAA3J1bgEACXNldERhZW1vbgEABChaKVYBAAFaAQAHc2V0TmFtZQEAC3NldFByaW9yaXR5AQAEKEkpVgEABXNsZWVwAQAFc3RhcnQBAAh0b1N0cmluZwEABXlpZWxkAQAKU291cmNlRmlsZQEAC1RocmVhZC5qYXZhACEAAgAEAAEABgADABkABwAIAAEACQAAAAIACgAZAAsACAABAAkAAAACAAwAGQANAAgAAQAJAAAAAgAOAB0AAQAPABAAAQARAAAALwABAAEAAAAFKrcAE7EAAAACABQAAAAGAAEAAAAKABUAAAAMAAEAAAAFABYAFwAAAAEADwAYAAEAEQAAADkAAQACAAAABSq3ABOxAAAAAgAUAAAABgABAAAACwAVAAAAFgACAAAABQAWABcAAAAAAAUAGQAaAAEAAQAPABsAAQARAAAAQwABAAMAAAAFKrcAE7EAAAACABQAAAAGAAEAAAAMABUAAAAgAAMAAAAFABYAFwAAAAAABQAZABoAAQAAAAUAHAAdAAIAAQAPAB4AAQARAAAAOQABAAIAAAAFKrcAE7EAAAACABQAAAAGAAEAAAANABUAAAAWAAIAAAAFABYAFwAAAAAABQAZAB0AAQABAA8AHwABABEAAABDAAEAAwAAAAUqtwATsQAAAAIAFAAAAAYAAQAAAA4AFQAAACAAAwAAAAUAFgAXAAAAAAAFABkAIAABAAAABQAcABoAAgABAA8AIQABABEAAABNAAEABAAAAAUqtwATsQAAAAIAFAAAAAYAAQAAAA8AFQAAACoABAAAAAUAFgAXAAAAAAAFABkAIAABAAAABQAcABoAAgAAAAUAIgAdAAMAAQAPACMAAQARAAAAQwABAAMAAAAFKrcAE7EAAAACABQAAAAGAAEAAAAQABUAAAAgAAMAAAAFABYAFwAAAAAABQAZACAAAQAAAAUAHAAdAAIAEQAkABAAAQARAAAAKwAAAAEAAAABsQAAAAIAFAAAAAYAAQAAABEAFQAAAAwAAQAAAAEAFgAXAAAACQAlACYAAQARAAAAIgABAAAAAAACAbAAAAACABQAAAAGAAEAAAASABUAAAACAAAAEQAnACgAAQARAAAALAABAAEAAAACAbAAAAACABQAAAAGAAEAAAATABUAAAAMAAEAAAACABYAFwAAABEAKQAqAAEAEQAAACwAAQABAAAAAgOsAAAAAgAUAAAABgABAAAAFAAVAAAADAABAAAAAgAWABcAAAARACsALAABABEAAAAsAAEAAQAAAAIBsAAAAAIAFAAAAAYAAQAAABUAFQAAAAwAAQAAAAIAFgAXAAAAAQAtABAAAQARAAAAKwAAAAEAAAABsQAAAAIAFAAAAAYAAQAAABYAFQAAAAwAAQAAAAEAFgAXAAAACQAuAC8AAQARAAAAIgABAAAAAAACA6wAAAACABQAAAAGAAEAAAAXABUAAAACAAAAEQAwAC8AAQARAAAALAABAAEAAAACA6wAAAACABQAAAAGAAEAAAAYABUAAAAMAAEAAAACABYAFwAAABEAMQAvAAEAEQAAACwAAQABAAAAAgOsAAAAAgAUAAAABgABAAAAGQAVAAAADAABAAAAAgAWABcAAAABADIALwABABEAAAAsAAEAAQAAAAIDrAAAAAIAFAAAAAYAAQAAABoAFQAAAAwAAQAAAAIAFgAXAAAAEQAzABAAAgA0AAAABAABADYAEQAAACsAAAABAAAAAbEAAAACABQAAAAGAAEAAAAbABUAAAAMAAEAAAABABYAFwAAABEAMwA3AAIANAAAAAQAAQA2ABEAAAA1AAAAAwAAAAGxAAAAAgAUAAAABgABAAAAHAAVAAAAFgACAAAAAQAWABcAAAAAAAEAGQA4AAEAEQAzADkAAgA0AAAABAABADYAEQAAAD8AAAAEAAAAAbEAAAACABQAAAAGAAEAAAAdABUAAAAgAAMAAAABABYAFwAAAAAAAQAZADgAAQAAAAEAHAAIAAMAAQA6ABAAAQARAAAAKwAAAAEAAAABsQAAAAIAFAAAAAYAAQAAAB4AFQAAAAwAAQAAAAEAFgAXAAAAEQA7ADwAAQARAAAANQAAAAIAAAABsQAAAAIAFAAAAAYAAQAAAB8AFQAAABYAAgAAAAEAFgAXAAAAAAABABkAPQABABEAPgAeAAEAEQAAADUAAAACAAAAAbEAAAACABQAAAAGAAEAAAAgABUAAAAWAAIAAAABABYAFwAAAAAAAQAZAB0AAQARAD8AQAABABEAAAA1AAAAAgAAAAGxAAAAAgAUAAAABgABAAAAIQAVAAAAFgACAAAAAQAWABcAAAAAAAEAGQAIAAEACQBBADcAAgA0AAAABAABADYAEQAAACsAAAACAAAAAbEAAAACABQAAAAGAAEAAAAiABUAAAAMAAEAAAABABkAOAAAAAkAQQA5AAIANAAAAAQAAQA2ABEAAAA1AAAAAwAAAAGxAAAAAgAUAAAABgABAAAAIwAVAAAAFgACAAAAAQAZADgAAAAAAAEAHAAIAAIAAQBCABAAAQARAAAAKwAAAAEAAAABsQAAAAIAFAAAAAYAAQAAACQAFQAAAAwAAQAAAAEAFgAXAAAAAQBDACgAAQARAAAALAABAAEAAAACAbAAAAACABQAAAAGAAEAAAAlABUAAAAMAAEAAAACABYAFwAAAAkARAAQAAEAEQAAACEAAAAAAAAAAbEAAAACABQAAAAGAAEAAAAmABUAAAACAAAAAQBFAAAAAgBGUEsDBAoAAAAAADtDujI1hib9FQEAABUBAAAbAAAAamF2YS9sYW5nL1RocmVhZERlYXRoLmNsYXNzyv66vgAAAC4AEAEAFWphdmEvbGFuZy9UaHJlYWREZWF0aAcAAQEAD2phdmEvbGFuZy9FcnJvcgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAF0xqYXZhL2xhbmcvVGhyZWFkRGVhdGg7AQAKU291cmNlRmlsZQEAEFRocmVhZERlYXRoLmphdmEAIQACAAQAAAAAAAEAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEADgAAAAIAD1BLAwQKAAAAAAA7Q7oyaPclc9EIAADRCAAAGwAAAGphdmEvbGFuZy9UaHJlYWRHcm91cC5jbGFzc8r+ur4AAAAuADcBABVqYXZhL2xhbmcvVGhyZWFkR3JvdXAHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEQ29kZQEAAygpVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAXTGphdmEvbGFuZy9UaHJlYWRHcm91cDsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAsKExqYXZhL2xhbmcvVGhyZWFkR3JvdXA7TGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIxAQALYWN0aXZlQ291bnQBAAMoKUkBABBhY3RpdmVHcm91cENvdW50AQALY2hlY2tBY2Nlc3MBAAdkZXN0cm95AQAJZW51bWVyYXRlAQAWKFtMamF2YS9sYW5nL1RocmVhZDspSQEAE1tMamF2YS9sYW5nL1RocmVhZDsBABcoW0xqYXZhL2xhbmcvVGhyZWFkO1opSQEAAVoBABsoW0xqYXZhL2xhbmcvVGhyZWFkR3JvdXA7KUkBABhbTGphdmEvbGFuZy9UaHJlYWRHcm91cDsBABwoW0xqYXZhL2xhbmcvVGhyZWFkR3JvdXA7WilJAQAOZ2V0TWF4UHJpb3JpdHkBAAdnZXROYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAlnZXRQYXJlbnQBABkoKUxqYXZhL2xhbmcvVGhyZWFkR3JvdXA7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L09iamVjdDsBAApFeGNlcHRpb25zAQAiamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgcACAEAKGphdmEvbGFuZy9BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24HAAoBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdmFyMAEAEkxqYXZhL2xhbmcvT2JqZWN0OwEABHZhcjEBAAFJAQAKZ2V0Qm9vbGVhbgEAFihMamF2YS9sYW5nL09iamVjdDtJKVoBAAdnZXRCeXRlAQAWKExqYXZhL2xhbmcvT2JqZWN0O0kpQgEAB2dldENoYXIBABYoTGphdmEvbGFuZy9PYmplY3Q7SSlDAQAJZ2V0RG91YmxlAQAWKExqYXZhL2xhbmcvT2JqZWN0O0kpRAEACGdldEZsb2F0AQAWKExqYXZhL2xhbmcvT2JqZWN0O0kpRgEABmdldEludAEAFihMamF2YS9sYW5nL09iamVjdDtJKUkBAAlnZXRMZW5ndGgBABUoTGphdmEvbGFuZy9PYmplY3Q7KUkBAAdnZXRMb25nAQAWKExqYXZhL2xhbmcvT2JqZWN0O0kpSgEACGdldFNob3J0AQAWKExqYXZhL2xhbmcvT2JqZWN0O0kpUwEAC25ld0luc3RhbmNlAQAnKExqYXZhL2xhbmcvQ2xhc3M7W0kpTGphdmEvbGFuZy9PYmplY3Q7AQAkamF2YS9sYW5nL05lZ2F0aXZlQXJyYXlTaXplRXhjZXB0aW9uBwAnAQARTGphdmEvbGFuZy9DbGFzczsBAAJbSQEAJihMamF2YS9sYW5nL0NsYXNzO0kpTGphdmEvbGFuZy9PYmplY3Q7AQADc2V0AQAoKExqYXZhL2xhbmcvT2JqZWN0O0lMamF2YS9sYW5nL09iamVjdDspVgEABHZhcjIBAApzZXRCb29sZWFuAQAXKExqYXZhL2xhbmcvT2JqZWN0O0laKVYBAAFaAQAHc2V0Qnl0ZQEAFyhMamF2YS9sYW5nL09iamVjdDtJQilWAQABQgEAB3NldENoYXIBABcoTGphdmEvbGFuZy9PYmplY3Q7SUMpVgEAAUMBAAlzZXREb3VibGUBABcoTGphdmEvbGFuZy9PYmplY3Q7SUQpVgEAAUQBAAhzZXRGbG9hdAEAFyhMamF2YS9sYW5nL09iamVjdDtJRilWAQABRgEABnNldEludAEAFyhMamF2YS9sYW5nL09iamVjdDtJSSlWAQAHc2V0TG9uZwEAFyhMamF2YS9sYW5nL09iamVjdDtJSilWAQABSgEACHNldFNob3J0AQAXKExqYXZhL2xhbmcvT2JqZWN0O0lTKVYBAAFTAQAGPGluaXQ+AQADKClWDABGAEcKAAQASAEABHRoaXMBABlMamF2YS9sYW5nL3JlZmxlY3QvQXJyYXk7AQAKU291cmNlRmlsZQEACkFycmF5LmphdmEAMQACAAQAAAAAABYACQAFAAYAAgAHAAAABgACAAkACwAMAAAANgABAAIAAAACAbAAAAACAA0AAAAGAAEAAAAKAA4AAAAWAAIAAAACAA8AEAAAAAAAAgARABIAAQAJABMAFAACAAcAAAAGAAIACQALAAwAAAA2AAEAAgAAAAIDrAAAAAIADQAAAAYAAQAAAAsADgAAABYAAgAAAAIADwAQAAAAAAACABEAEgABAAkAFQAWAAIABwAAAAYAAgAJAAsADAAAADYAAQACAAAAAgOsAAAAAgANAAAABgABAAAADAAOAAAAFgACAAAAAgAPABAAAAAAAAIAEQASAAEACQAXABgAAgAHAAAABgACAAkACwAMAAAANgABAAIAAAACA6wAAAACAA0AAAAGAAEAAAANAA4AAAAWAAIAAAACAA8AEAAAAAAAAgARABIAAQAJABkAGgACAAcAAAAGAAIACQALAAwAAAA2AAIAAgAAAAIOrwAAAAIADQAAAAYAAQAAAA4ADgAAABYAAgAAAAIADwAQAAAAAAACABEAEgABAAkAGwAcAAIABwAAAAYAAgAJAAsADAAAADYAAQACAAAAAguuAAAAAgANAAAABgABAAAADwAOAAAAFgACAAAAAgAPABAAAAAAAAIAEQASAAEACQAdAB4AAgAHAAAABgACAAkACwAMAAAANgABAAIAAAACA6wAAAACAA0AAAAGAAEAAAAQAA4AAAAWAAIAAAACAA8AEAAAAAAAAgARABIAAQAJAB8AIAACAAcAAAAEAAEACQAMAAAALAABAAEAAAACA6wAAAACAA0AAAAGAAEAAAARAA4AAAAMAAEAAAACAA8AEAAAAAkAIQAiAAIABwAAAAYAAgAJAAsADAAAADYAAgACAAAAAgmtAAAAAgANAAAABgABAAAAEgAOAAAAFgACAAAAAgAPABAAAAAAAAIAEQASAAEACQAjACQAAgAHAAAABgACAAkACwAMAAAANgABAAIAAAACA6wAAAACAA0AAAAGAAEAAAATAA4AAAAWAAIAAAACAA8AEAAAAAAAAgARABIAAQAJACUAJgACAAcAAAAGAAIAKAAJAAwAAAA2AAEAAgAAAAIBsAAAAAIADQAAAAYAAQAAABQADgAAABYAAgAAAAIADwApAAAAAAACABEAKgABAAkAJQArAAIABwAAAAQAAQAoAAwAAAA2AAEAAgAAAAIBsAAAAAIADQAAAAYAAQAAABUADgAAABYAAgAAAAIADwApAAAAAAACABEAEgABAAkALAAtAAIABwAAAAYAAgAJAAsADAAAAD8AAAADAAAAAbEAAAACAA0AAAAGAAEAAAAWAA4AAAAgAAMAAAABAA8AEAAAAAAAAQARABIAAQAAAAEALgAQAAIACQAvADAAAgAHAAAABgACAAkACwAMAAAAPwAAAAMAAAABsQAAAAIADQAAAAYAAQAAABcADgAAACAAAwAAAAEADwAQAAAAAAABABEAEgABAAAAAQAuADEAAgAJADIAMwACAAcAAAAGAAIACQALAAwAAAA/AAAAAwAAAAGxAAAAAgANAAAABgABAAAAGAAOAAAAIAADAAAAAQAPABAAAAAAAAEAEQASAAEAAAABAC4ANAACAAkANQA2AAIABwAAAAYAAgAJAAsADAAAAD8AAAADAAAAAbEAAAACAA0AAAAGAAEAAAAZAA4AAAAgAAMAAAABAA8AEAAAAAAAAQARABIAAQAAAAEALgA3AAIACQA4ADkAAgAHAAAABgACAAkACwAMAAAAPwAAAAQAAAABsQAAAAIADQAAAAYAAQAAABoADgAAACAAAwAAAAEADwAQAAAAAAABABEAEgABAAAAAQAuADoAAgAJADsAPAACAAcAAAAGAAIACQALAAwAAAA/AAAAAwAAAAGxAAAAAgANAAAABgABAAAAGwAOAAAAIAADAAAAAQAPABAAAAAAAAEAEQASAAEAAAABAC4APQACAAkAPgA/AAIABwAAAAYAAgAJAAsADAAAAD8AAAADAAAAAbEAAAACAA0AAAAGAAEAAAAcAA4AAAAgAAMAAAABAA8AEAAAAAAAAQARABIAAQAAAAEALgASAAIACQBAAEEAAgAHAAAABgACAAkACwAMAAAAPwAAAAQAAAABsQAAAAIADQAAAAYAAQAAAB0ADgAAACAAAwAAAAEADwAQAAAAAAABABEAEgABAAAAAQAuAEIAAgAJAEMARAACAAcAAAAGAAIACQALAAwAAAA/AAAAAwAAAAGxAAAAAgANAAAABgABAAAAHgAOAAAAIAADAAAAAQAPABAAAAAAAAEAEQASAAEAAAABAC4ARQACAAIARgBHAAEADAAAAC8AAQABAAAABSq3AEmxAAAAAgANAAAABgABAAAAHwAOAAAADAABAAAABQBKAEsAAAABAEwAAAACAE1QSwMECgAAAAAAPEO6Mgu0PB94BQAAeAUAACMAAABqYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3Rvci5jbGFzc8r+ur4AAAAuAC0BAB1qYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3RvcgcAAQEAImphdmEvbGFuZy9yZWZsZWN0L0FjY2Vzc2libGVPYmplY3QHAAMBABhqYXZhL2xhbmcvcmVmbGVjdC9NZW1iZXIHAAUBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAH0xqYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3RvcjsBAAR2YXIwAQASTGphdmEvbGFuZy9PYmplY3Q7AQARZ2V0RGVjbGFyaW5nQ2xhc3MBABMoKUxqYXZhL2xhbmcvQ2xhc3M7AQARZ2V0RXhjZXB0aW9uVHlwZXMBABQoKVtMamF2YS9sYW5nL0NsYXNzOwEADGdldE1vZGlmaWVycwEAAygpSQEAB2dldE5hbWUBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAEWdldFBhcmFtZXRlclR5cGVzAQAIaGFzaENvZGUBAAtuZXdJbnN0YW5jZQEAJyhbTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwEACkV4Y2VwdGlvbnMBACBqYXZhL2xhbmcvSW5zdGFudGlhdGlvbkV4Y2VwdGlvbgcAHQEAIGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uBwAfAQAiamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgcAIQEAK2phdmEvbGFuZy9yZWZsZWN0L0ludm9jYXRpb25UYXJnZXRFeGNlcHRpb24HACMBABNbTGphdmEvbGFuZy9PYmplY3Q7AQAIdG9TdHJpbmcBAAY8aW5pdD4BAAMoKVYMACcAKAoABAApAQAKU291cmNlRmlsZQEAEENvbnN0cnVjdG9yLmphdmEAMQACAAQAAQAGAAAACgABAAcACAABAAkAAAA2AAEAAgAAAAIDrAAAAAIACgAAAAYAAQAAAAoACwAAABYAAgAAAAIADAANAAAAAAACAA4ADwABAAEAEAARAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAACwALAAAADAABAAAAAgAMAA0AAAABABIAEwABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAAAwACwAAAAwAAQAAAAIADAANAAAAAQAUABUAAQAJAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAANAAsAAAAMAAEAAAACAAwADQAAAAEAFgAXAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAADgALAAAADAABAAAAAgAMAA0AAAABABgAEwABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAAA8ACwAAAAwAAQAAAAIADAANAAAAAQAZABUAAQAJAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAAQAAsAAAAMAAEAAAACAAwADQAAAAEAGgAbAAIAHAAAAAoABAAeACAAIgAkAAkAAAA2AAEAAgAAAAIBsAAAAAIACgAAAAYAAQAAABEACwAAABYAAgAAAAIADAANAAAAAAACAA4AJQABAAEAJgAXAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAEgALAAAADAABAAAAAgAMAA0AAAACACcAKAABAAkAAAAvAAEAAQAAAAUqtwAqsQAAAAIACgAAAAYAAQAAABMACwAAAAwAAQAAAAUADAANAAAAAQArAAAAAgAsUEsDBAoAAAAAADxDujJN++V9kQwAAJEMAAAdAAAAamF2YS9sYW5nL3JlZmxlY3QvRmllbGQuY2xhc3PK/rq+AAAALgBQAQAXamF2YS9sYW5nL3JlZmxlY3QvRmllbGQHAAEBACJqYXZhL2xhbmcvcmVmbGVjdC9BY2Nlc3NpYmxlT2JqZWN0BwADAQAYamF2YS9sYW5nL3JlZmxlY3QvTWVtYmVyBwAFAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABlMamF2YS9sYW5nL3JlZmxlY3QvRmllbGQ7AQAEdmFyMAEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAA2dldAEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAKRXhjZXB0aW9ucwEAIGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uBwATAQAiamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgcAFQEACmdldEJvb2xlYW4BAAdnZXRCeXRlAQAVKExqYXZhL2xhbmcvT2JqZWN0OylCAQAHZ2V0Q2hhcgEAFShMamF2YS9sYW5nL09iamVjdDspQwEAEWdldERlY2xhcmluZ0NsYXNzAQATKClMamF2YS9sYW5nL0NsYXNzOwEACWdldERvdWJsZQEAFShMamF2YS9sYW5nL09iamVjdDspRAEACGdldEZsb2F0AQAVKExqYXZhL2xhbmcvT2JqZWN0OylGAQAGZ2V0SW50AQAVKExqYXZhL2xhbmcvT2JqZWN0OylJAQAHZ2V0TG9uZwEAFShMamF2YS9sYW5nL09iamVjdDspSgEADGdldE1vZGlmaWVycwEAAygpSQEAB2dldE5hbWUBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEACGdldFNob3J0AQAVKExqYXZhL2xhbmcvT2JqZWN0OylTAQAHZ2V0VHlwZQEACGhhc2hDb2RlAQADc2V0AQAnKExqYXZhL2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvT2JqZWN0OylWAQAEdmFyMQEACnNldEJvb2xlYW4BABYoTGphdmEvbGFuZy9PYmplY3Q7WilWAQABWgEAB3NldEJ5dGUBABYoTGphdmEvbGFuZy9PYmplY3Q7QilWAQABQgEAB3NldENoYXIBABYoTGphdmEvbGFuZy9PYmplY3Q7QylWAQABQwEACXNldERvdWJsZQEAFihMamF2YS9sYW5nL09iamVjdDtEKVYBAAFEAQAIc2V0RmxvYXQBABYoTGphdmEvbGFuZy9PYmplY3Q7RilWAQABRgEABnNldEludAEAFihMamF2YS9sYW5nL09iamVjdDtJKVYBAAFJAQAHc2V0TG9uZwEAFihMamF2YS9sYW5nL09iamVjdDtKKVYBAAFKAQAIc2V0U2hvcnQBABYoTGphdmEvbGFuZy9PYmplY3Q7UylWAQABUwEACHRvU3RyaW5nAQAGPGluaXQ+AQADKClWDABKAEsKAAQATAEAClNvdXJjZUZpbGUBAApGaWVsZC5qYXZhADEAAgAEAAEABgAAABoAAQAHAAgAAQAJAAAANgABAAIAAAACA6wAAAACAAoAAAAGAAEAAAAKAAsAAAAWAAIAAAACAAwADQAAAAAAAgAOAA8AAQABABAAEQACABIAAAAGAAIAFAAWAAkAAAA2AAEAAgAAAAIBsAAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAIADAANAAAAAAACAA4ADwABAAEAFwAIAAIAEgAAAAYAAgAUABYACQAAADYAAQACAAAAAgOsAAAAAgAKAAAABgABAAAADAALAAAAFgACAAAAAgAMAA0AAAAAAAIADgAPAAEAAQAYABkAAgASAAAABgACABQAFgAJAAAANgABAAIAAAACA6wAAAACAAoAAAAGAAEAAAANAAsAAAAWAAIAAAACAAwADQAAAAAAAgAOAA8AAQABABoAGwACABIAAAAGAAIAFAAWAAkAAAA2AAEAAgAAAAIDrAAAAAIACgAAAAYAAQAAAA4ACwAAABYAAgAAAAIADAANAAAAAAACAA4ADwABAAEAHAAdAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAADwALAAAADAABAAAAAgAMAA0AAAABAB4AHwACABIAAAAGAAIAFAAWAAkAAAA2AAIAAgAAAAIOrwAAAAIACgAAAAYAAQAAABAACwAAABYAAgAAAAIADAANAAAAAAACAA4ADwABAAEAIAAhAAIAEgAAAAYAAgAUABYACQAAADYAAQACAAAAAguuAAAAAgAKAAAABgABAAAAEQALAAAAFgACAAAAAgAMAA0AAAAAAAIADgAPAAEAAQAiACMAAgASAAAABgACABQAFgAJAAAANgABAAIAAAACA6wAAAACAAoAAAAGAAEAAAASAAsAAAAWAAIAAAACAAwADQAAAAAAAgAOAA8AAQABACQAJQACABIAAAAGAAIAFAAWAAkAAAA2AAIAAgAAAAIJrQAAAAIACgAAAAYAAQAAABMACwAAABYAAgAAAAIADAANAAAAAAACAA4ADwABAAEAJgAnAAEACQAAACwAAQABAAAAAgOsAAAAAgAKAAAABgABAAAAFAALAAAADAABAAAAAgAMAA0AAAABACgAKQABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABUACwAAAAwAAQAAAAIADAANAAAAAQAqACsAAgASAAAABgACABQAFgAJAAAANgABAAIAAAACA6wAAAACAAoAAAAGAAEAAAAWAAsAAAAWAAIAAAACAAwADQAAAAAAAgAOAA8AAQABACwAHQABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABcACwAAAAwAAQAAAAIADAANAAAAAQAtACcAAQAJAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAAYAAsAAAAMAAEAAAACAAwADQAAAAEALgAvAAIAEgAAAAYAAgAUABYACQAAAD8AAAADAAAAAbEAAAACAAoAAAAGAAEAAAAZAAsAAAAgAAMAAAABAAwADQAAAAAAAQAOAA8AAQAAAAEAMAAPAAIAAQAxADIAAgASAAAABgACABQAFgAJAAAAPwAAAAMAAAABsQAAAAIACgAAAAYAAQAAABoACwAAACAAAwAAAAEADAANAAAAAAABAA4ADwABAAAAAQAwADMAAgABADQANQACABIAAAAGAAIAFAAWAAkAAAA/AAAAAwAAAAGxAAAAAgAKAAAABgABAAAAGwALAAAAIAADAAAAAQAMAA0AAAAAAAEADgAPAAEAAAABADAANgACAAEANwA4AAIAEgAAAAYAAgAUABYACQAAAD8AAAADAAAAAbEAAAACAAoAAAAGAAEAAAAcAAsAAAAgAAMAAAABAAwADQAAAAAAAQAOAA8AAQAAAAEAMAA5AAIAAQA6ADsAAgASAAAABgACABQAFgAJAAAAPwAAAAQAAAABsQAAAAIACgAAAAYAAQAAAB0ACwAAACAAAwAA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AAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAAA8ACwAAABYAAgAAAAEADAANAAAAAAABAA8AGAABAAEAGQAAAAIAGlBLAwQKAAAAAAA8Q7oy5iEjCTkBAAA5AQAAHgAAAGphdmEvbGFuZy9yZWZsZWN0L01lbWJlci5jbGFzc8r+ur4AAAAuABMBABhqYXZhL2xhbmcvcmVmbGVjdC9NZW1iZXIHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGUFVCTElDAQABSQEADUNvbnN0YW50VmFsdWUDAAAAAAEACERFQ0xBUkVEAwAAAAEBABFnZXREZWNsYXJpbmdDbGFzcwEAEygpTGphdmEvbGFuZy9DbGFzczsBAAxnZXRNb2RpZmllcnMBAAMoKUkBAAdnZXROYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQALTWVtYmVyLmphdmEGAQACAAQAAAACABkABQAGAAEABwAAAAIACAAZAAkABgABAAcAAAACAAoAAwQBAAsADAAABAEADQAOAAAEAQAPABAAAAABABEAAAACABJQSwMECgAAAAAAPEO6MpPFVgqpBQAAqQUAAB4AAABqYXZhL2xhbmcvcmVmbGVjdC9NZXRob2QuY2xhc3PK/rq+AAAALgAtAQAYamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kBwABAQAiamF2YS9sYW5nL3JlZmxlY3QvQWNjZXNzaWJsZU9iamVjdAcAAwEAGGphdmEvbGFuZy9yZWZsZWN0L01lbWJlcgcABQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEABENvZGUBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAaTGphdmEvbGFuZy9yZWZsZWN0L01ldGhvZDsBAAR2YXIwAQASTGphdmEvbGFuZy9PYmplY3Q7AQARZ2V0RGVjbGFyaW5nQ2xhc3MBABMoKUxqYXZhL2xhbmcvQ2xhc3M7AQARZ2V0RXhjZXB0aW9uVHlwZXMBABQoKVtMamF2YS9sYW5nL0NsYXNzOwEADGdldE1vZGlmaWVycwEAAygpSQEAB2dldE5hbWUBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAEWdldFBhcmFtZXRlclR5cGVzAQANZ2V0UmV0dXJuVHlwZQEACGhhc2hDb2RlAQAGaW52b2tlAQA5KExqYXZhL2xhbmcvT2JqZWN0O1tMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAKRXhjZXB0aW9ucwEAIGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uBwAeAQAiamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgcAIAEAK2phdmEvbGFuZy9yZWZsZWN0L0ludm9jYXRpb25UYXJnZXRFeGNlcHRpb24HACIBAAR2YXIxAQATW0xqYXZhL2xhbmcvT2JqZWN0OwEACHRvU3RyaW5nAQAGPGluaXQ+AQADKClWDAAnACgKAAQAKQEAClNvdXJjZUZpbGUBAAtNZXRob2QuamF2YQAxAAIABAABAAYAAAALAAEABwAIAAEACQAAADYAAQACAAAAAgOsAAAAAgAKAAAABgABAAAACgALAAAAFgACAAAAAgAMAA0AAAAAAAIADgAPAAEAAQAQABEAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAALAAsAAAAMAAEAAAACAAwADQAAAAEAEgATAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAADAALAAAADAABAAAAAgAMAA0AAAABABQAFQABAAkAAAAsAAEAAQAAAAIDrAAAAAIACgAAAAYAAQAAAA0ACwAAAAwAAQAAAAIADAANAAAAAQAWABcAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAOAAsAAAAMAAEAAAACAAwADQAAAAEAGAATAAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAADwALAAAADAABAAAAAgAMAA0AAAABABkAEQABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABAACwAAAAwAAQAAAAIADAANAAAAAQAaABUAAQAJAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAARAAsAAAAMAAEAAAACAAwADQAAAAEAGwAcAAIAHQAAAAgAAwAfACEAIwAJAAAAQAABAAMAAAACAbAAAAACAAoAAAAGAAEAAAASAAsAAAAgAAMAAAACAAwADQAAAAAAAgAOAA8AAQAAAAIAJAAlAAIAAQAmABcAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAATAAsAAAAMAAEAAAACAAwADQAAAAIAJwAoAAEACQAAAC8AAQABAAAABSq3ACqxAAAAAgAKAAAABgABAAAAFAALAAAADAABAAAABQAMAA0AAAABACsAAAACACxQSwMECgAAAAAAPEO6MnWva8JmBgAAZgYAACAAAABqYXZhL2xhbmcvcmVmbGVjdC9Nb2RpZmllci5jbGFzc8r+ur4AAAAuADoBABpqYXZhL2xhbmcvcmVmbGVjdC9Nb2RpZmllcgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAZQVUJMSUMBAAFJAQANQ29uc3RhbnRWYWx1ZQMAAAABAQAHUFJJVkFURQMAAAACAQAJUFJPVEVDVEVEAwAAAAQBAAZTVEFUSUMDAAAACAEABUZJTkFMAwAAABABAAxTWU5DSFJPTklaRUQDAAAAIAEACFZPTEFUSUxFAwAAAEABAAlUUkFOU0lFTlQDAAAAgAEABk5BVElWRQMAAAEAAQAJSU5URVJGQUNFAwAAAgABAAhBQlNUUkFDVAMAAAQAAQAGU1RSSUNUAwAACAABAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAfACAKAAQAIgEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABxMamF2YS9sYW5nL3JlZmxlY3QvTW9kaWZpZXI7AQAKaXNBYnN0cmFjdAEABChJKVoBAAR2YXIwAQAHaXNGaW5hbAEAC2lzSW50ZXJmYWNlAQAIaXNOYXRpdmUBAAlpc1ByaXZhdGUBAAtpc1Byb3RlY3RlZAEACGlzUHVibGljAQAIaXNTdGF0aWMBAAhpc1N0cmljdAEADmlzU3luY2hyb25pemVkAQALaXNUcmFuc2llbnQBAAppc1ZvbGF0aWxlAQAIdG9TdHJpbmcBABUoSSlMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQANTW9kaWZpZXIuamF2YQAhAAIABAAAAAwAGQAFAAYAAQAHAAAAAgAIABkACQAGAAEABwAAAAIACgAZAAsABgABAAcAAAACAAwAGQANAAYAAQAHAAAAAgAOABkADwAGAAEABwAAAAIAEAAZABEABgABAAcAAAACABIAGQATAAYAAQAHAAAAAgAUABkAFQAGAAEABwAAAAIAFgAZABcABgABAAcAAAACABgAGQAZAAYAAQAHAAAAAgAaABkAGwAGAAEABwAAAAIAHAAZAB0ABgABAAcAAAACAB4ADgABAB8AIAABACEAAAAvAAEAAQAAAAUqtwAjsQAAAAIAJAAAAAYAAQAAAAoAJQAAAAwAAQAAAAUAJgAnAAAACQAoACkAAQAhAAAALAABAAEAAAACA6wAAAACACQAAAAGAAEAAAALACUAAAAMAAEAAAACACoABgAAAAkAKwApAAEAIQAAACwAAQABAAAAAgOsAAAAAgAkAAAABgABAAAADAAlAAAADAABAAAAAgAqAAYAAAAJACwAKQABACEAAAAsAAEAAQAAAAIDrAAAAAIAJAAAAAYAAQAAAA0AJQAAAAwAAQAAAAIAKgAGAAAACQAtACkAAQAhAAAALAABAAEAAAACA6wAAAACACQAAAAGAAEAAAAOACUAAAAMAAEAAAACACoABgAAAAkALgApAAEAIQAAACwAAQABAAAAAgOsAAAAAgAkAAAABgABAAAADwAlAAAADAABAAAAAgAqAAYAAAAJAC8AKQABACEAAAAsAAEAAQAAAAIDrAAAAAIAJAAAAAYAAQAAABAAJQAAAAwAAQAAAAIAKgAGAAAACQAwACkAAQAhAAAALAABAAEAAAACA6wAAAACACQAAAAGAAEAAAARACUAAAAMAAEAAAACACoABgAAAAkAMQApAAEAIQAAACwAAQABAAAAAgOsAAAAAgAkAAAABgABAAAAEgAlAAAADAABAAAAAgAqAAYAAAAJADIAKQABACEAAAAsAAEAAQAAAAIDrAAAAAIAJAAAAAYAAQAAABMAJQAAAAwAAQAAAAIAKgAGAAAACQAzACkAAQAhAAAALAABAAEAAAACA6wAAAACACQAAAAGAAEAAAAUACUAAAAMAAEAAAACACoABgAAAAkANAApAAEAIQAAACwAAQABAAAAAgOsAAAAAgAkAAAABgABAAAAFQAlAAAADAABAAAAAgAqAAYAAAAJADUAKQABACEAAAAsAAEAAQAAAAIDrAAAAAIAJAAAAAYAAQAAABYAJQAAAAwAAQAAAAIAKgAGAAAACQA2ADcAAQAhAAAALAABAAEAAAACAbAAAAACACQAAAAGAAEAAAAXACUAAAAMAAEAAAACACoABgAAAAEAOAAAAAIAOVBLAwQKAAAAAAA8Q7oyRSOX858EAACfBAAAHQAAAGphdmEvbGFuZy9yZWZsZWN0L1Byb3h5LmNsYXNzyv66vgAAAC4AJwEAF2phdmEvbGFuZy9yZWZsZWN0L1Byb3h5BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQABaAEAJUxqYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlcjsBAAY8aW5pdD4BACgoTGphdmEvbGFuZy9yZWZsZWN0L0ludm9jYXRpb25IYW5kbGVyOylWAQAEQ29kZQEAAygpVgwACQAMCgAEAA0BAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAZTGphdmEvbGFuZy9yZWZsZWN0L1Byb3h5OwEABHZhcjABAA1nZXRQcm94eUNsYXNzAQA8KExqYXZhL2xhbmcvQ2xhc3NMb2FkZXI7W0xqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2xhbmcvQ2xhc3M7AQAKRXhjZXB0aW9ucwEAImphdmEvbGFuZy9JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24HABcBABdMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEABHZhcjEBABJbTGphdmEvbGFuZy9DbGFzczsBABBuZXdQcm94eUluc3RhbmNlAQBiKExqYXZhL2xhbmcvQ2xhc3NMb2FkZXI7W0xqYXZhL2xhbmcvQ2xhc3M7TGphdmEvbGFuZy9yZWZsZWN0L0ludm9jYXRpb25IYW5kbGVyOylMamF2YS9sYW5nL09iamVjdDsBAAR2YXIyAQAMaXNQcm94eUNsYXNzAQAUKExqYXZhL2xhbmcvQ2xhc3M7KVoBABFMamF2YS9sYW5nL0NsYXNzOwEAFGdldEludm9jYXRpb25IYW5kbGVyAQA5KExqYXZhL2xhbmcvT2JqZWN0OylMamF2YS9sYW5nL3JlZmxlY3QvSW52b2NhdGlvbkhhbmRsZXI7AQASTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEAClByb3h5LmphdmEAIQACAAQAAQAGAAEABAAHAAgAAAAFAAQACQAKAAEACwAAADkAAQACAAAABSq3AA6xAAAAAgAPAAAABgABAAAACgAQAAAAFgACAAAABQARABIAAAAAAAUAEwAIAAEACQAUABUAAgAWAAAABAABABgACwAAADYAAQACAAAAAgGwAAAAAgAPAAAABgABAAAACwAQAAAAFgACAAAAAgATABkAAAAAAAIAGgAbAAEACQAcAB0AAgAWAAAABAABABgACwAAAEAAAQADAAAAAgGwAAAAAgAPAAAABgABAAAADAAQAAAAIAADAAAAAgATABkAAAAAAAIAGgAbAAEAAAACAB4ACAACAAkAHwAgAAEACwAAACwAAQABAAAAAgOsAAAAAgAPAAAABgABAAAADQAQAAAADAABAAAAAgATACEAAAAJACIAIwACABYAAAAEAAEAGAALAAAALAABAAEAAAACAbAAAAACAA8AAAAGAAEAAAAOABAAAAAMAAEAAAACABMAJAAAAAEAJQAAAAIAJlBLAwQKAAAAAAA8Q7oy75QJZAMCAAADAgAAKQAAAGphdmEvbGFuZy9yZWZsZWN0L1JlZmxlY3RQZXJtaXNzaW9uLmNsYXNzyv66vgAAAC4AFAEAI2phdmEvbGFuZy9yZWZsZWN0L1JlZmxlY3RQZXJtaXNzaW9uBwABAQAdamF2YS9zZWN1cml0eS9CYXNpY1Blcm1pc3Npb24HAAMBAAY8aW5pdD4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWDAAFAAgKAAQACQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACVMamF2YS9sYW5nL3JlZmxlY3QvUmVmbGVjdFBlcm1pc3Npb247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABHZhcjEBAApTb3VyY2VGaWxlAQAWUmVmbGVjdFBlcm1pc3Npb24uamF2YQAxAAIABAAAAAAAAgABAAUABgABAAcAAAA7AAMAAgAAAAcqAQG3AAqxAAAAAgALAAAABgABAAAACgAMAAAAFgACAAAABwANAA4AAAAAAAcADwAQAAEAAQAFAAgAAQAHAAAARQADAAMAAAAHKgEBtwAKsQAAAAIACwAAAAYAAQAAAAsADAAAACAAAwAAAAcADQAOAAAAAAAHAA8AEAABAAAABwARABAAAgABABIAAAACABNQSwMECgAAAAAAPEO6MuRK7epvAwAAbwMAADQAAABqYXZhL2xhbmcvcmVmbGVjdC9VbmRlY2xhcmVkVGhyb3dhYmxlRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AGwEALmphdmEvbGFuZy9yZWZsZWN0L1VuZGVjbGFyZWRUaHJvd2FibGVFeGNlcHRpb24HAAEBABpqYXZhL2xhbmcvUnVudGltZUV4Y2VwdGlvbgcAAwEABjxpbml0PgEAGChMamF2YS9sYW5nL1Rocm93YWJsZTspVgEABENvZGUBAAMoKVYMAAUACAoABAAJAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAMExqYXZhL2xhbmcvcmVmbGVjdC9VbmRlY2xhcmVkVGhyb3dhYmxlRXhjZXB0aW9uOwEABHZhcjABABVMamF2YS9sYW5nL1Rocm93YWJsZTsBACooTGphdmEvbGFuZy9UaHJvd2FibGU7TGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIxAQASTGphdmEvbGFuZy9TdHJpbmc7AQAWZ2V0VW5kZWNsYXJlZFRocm93YWJsZQEAFygpTGphdmEvbGFuZy9UaHJvd2FibGU7AQAPcHJpbnRTdGFja1RyYWNlAQAYKExqYXZhL2lvL1ByaW50U3RyZWFtOylWAQAVTGphdmEvaW8vUHJpbnRTdHJlYW07AQAKU291cmNlRmlsZQEAIVVuZGVjbGFyZWRUaHJvd2FibGVFeGNlcHRpb24uamF2YQAhAAIABAAAAAAABQABAAUABgABAAcAAAA5AAEAAgAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAABYAAgAAAAUADQAOAAAAAAAFAA8AEAABAAEABQARAAEABwAAAEMAAQADAAAABSq3AAqxAAAAAgALAAAABgABAAAACwAMAAAAIAADAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABIAEwACAAEAFAAVAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAADAAMAAAADAABAAAAAgANAA4AAAABABYACAABAAcAAAArAAAAAQAAAAGxAAAAAgALAAAABgABAAAADQAMAAAADAABAAAAAQANAA4AAAABABYAFwABAAcAAAA1AAAAAgAAAAGxAAAAAgALAAAABgABAAAADgAMAAAAFgACAAAAAQANAA4AAAAAAAEADwAYAAEAAQAZAAAAAgAaUEsDBAoAAAAAADxDujIAAAAAAAAAAAAAAAAJAAAAamF2YS9uZXQvUEsDBAoAAAAAADxDujLqzp/hCgUAAAoFAAAcAAAAamF2YS9uZXQvQXV0aGVudGljYXRvci5jbGFzc8r+ur4AAAAuACYBABZqYXZhL25ldC9BdXRoZW50aWNhdG9yBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAGExqYXZhL25ldC9BdXRoZW50aWNhdG9yOwEAGWdldFBhc3N3b3JkQXV0aGVudGljYXRpb24BACMoKUxqYXZhL25ldC9QYXNzd29yZEF1dGhlbnRpY2F0aW9uOwEAEWdldFJlcXVlc3RpbmdQb3J0AQADKClJAQARZ2V0UmVxdWVzdGluZ1NpdGUBABgoKUxqYXZhL25ldC9JbmV0QWRkcmVzczsBABNnZXRSZXF1ZXN0aW5nUHJvbXB0AQAUKClMamF2YS9sYW5nL1N0cmluZzsBABVnZXRSZXF1ZXN0aW5nUHJvdG9jb2wBABNnZXRSZXF1ZXN0aW5nU2NoZW1lAQAdcmVxdWVzdFBhc3N3b3JkQXV0aGVudGljYXRpb24BAHAoTGphdmEvbmV0L0luZXRBZGRyZXNzO0lMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbmV0L1Bhc3N3b3JkQXV0aGVudGljYXRpb247AQAEdmFyMAEAFkxqYXZhL25ldC9JbmV0QWRkcmVzczsBAAR2YXIxAQABSQEABHZhcjIBABJMamF2YS9sYW5nL1N0cmluZzsBAAR2YXIzAQAEdmFyNAEACnNldERlZmF1bHQBABsoTGphdmEvbmV0L0F1dGhlbnRpY2F0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ZGxlcjsBAApnZXRDb250ZW50AQAsKExqYXZhL25ldC9VUkxDb25uZWN0aW9uOylMamF2YS9sYW5nL09iamVjdDsBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAEQEAClNvdXJjZUZpbGUBABNDb250ZW50SGFuZGxlci5qYXZhBCEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAQBAA4ADwABABAAAAAEAAEAEgABABMAAAACABRQSwMECgAAAAAAPEO6MqjSsQvTAAAA0wAAACQAAABqYXZhL25ldC9Db250ZW50SGFuZGxlckZhY3RvcnkuY2xhc3PK/rq+AAAALgAJAQAeamF2YS9uZXQvQ29udGVudEhhbmRsZXJGYWN0b3J5BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGNyZWF0ZUNvbnRlbnRIYW5kbGVyAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9uZXQvQ29udGVudEhhbmRsZXI7AQAKU291cmNlRmlsZQEAGkNvbnRlbnRIYW5kbGVyRmFjdG9yeS5qYXZhBgEAAgAEAAAAAAABBAEABQAGAAAAAQAHAAAAAgAIUEsDBAoAAAAAADxDujLFec3LNwYAADcGAAAdAAAAamF2YS9uZXQvRGF0YWdyYW1QYWNrZXQuY2xhc3PK/rq+AAAALgArAQAXamF2YS9uZXQvRGF0YWdyYW1QYWNrZXQHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQAGKFtCSSlWAQAEQ29kZQEAAygpVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAZTGphdmEvbmV0L0RhdGFncmFtUGFja2V0OwEABHZhcjABAAJbQgEABHZhcjEBAAFJAQAHKFtCSUkpVgEABHZhcjIBAB4oW0JJSUxqYXZhL25ldC9JbmV0QWRkcmVzcztJKVYBAAR2YXIzAQAWTGphdmEvbmV0L0luZXRBZGRyZXNzOwEABHZhcjQBAB0oW0JJTGphdmEvbmV0L0luZXRBZGRyZXNzO0kpVgEACmdldEFkZHJlc3MBABgoKUxqYXZhL25ldC9JbmV0QWRkcmVzczsBAAdnZXREYXRhAQAEKClbQgEACWdldExlbmd0aAEAAygpSQEACWdldE9mZnNldAEAB2dldFBvcnQBAApzZXRBZGRyZXNzAQAZKExqYXZhL25ldC9JbmV0QWRkcmVzczspVgEAB3NldERhdGEBAAUoW0IpVgEACXNldExlbmd0aAEABChJKVYBAAdzZXRQb3J0AQAKU291cmNlRmlsZQEAE0RhdGFncmFtUGFja2V0LmphdmEAMQACAAQAAAAAAA4AAQAFAAYAAQAHAAAAQwABAAMAAAAFKrcACrEAAAACAAsAAAAGAAEAAAAKAAwAAAAgAAMAAAAFAA0ADgAAAAAABQAPABAAAQAAAAUAEQASAAIAAQAFABMAAQAHAAAATQABAAQAAAAFKrcACrEAAAACAAsAAAAGAAEAAAALAAwAAAAqAAQAAAAFAA0ADgAAAAAABQAPABAAAQAAAAUAEQASAAIAAAAFABQAEgADAAEABQAVAAEABwAAAGEAAQAGAAAABSq3AAqxAAAAAgALAAAABgABAAAADAAMAAAAPgAGAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACAAAABQAUABIAAwAAAAUAFgAXAAQAAAAFABgAEgAFAAEABQAZAAEABwAAAFcAAQAFAAAABSq3AAqxAAAAAgALAAAABgABAAAADQAMAAAANAAFAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACAAAABQAUABcAAwAAAAUAFgASAAQAAQAaABsAAQAHAAAALAABAAEAAAACAbAAAAACAAsAAAAGAAEAAAAOAAwAAAAMAAEAAAACAA0ADgAAAAEAHAAdAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAADwAMAAAADAABAAAAAgANAA4AAAABAB4AHwABAAcAAAAsAAEAAQAAAAIDrAAAAAIACwAAAAYAAQAAABAADAAAAAwAAQAAAAIADQAOAAAAAQAgAB8AAQAHAAAALAABAAEAAAACA6wAAAACAAsAAAAGAAEAAAARAAwAAAAMAAEAAAACAA0ADgAAAAEAIQAfAAEABwAAACwAAQABAAAAAgOsAAAAAgALAAAABgABAAAAEgAMAAAADAABAAAAAgANAA4A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MVBLAwQKAAAAAAA8Q7oyDQ1dCbUAAAC1AAAAGgAAAGphdmEvbmV0L0ZpbGVOYW1lTWFwLmNsYXNzyv66vgAAAC4ACQEAFGphdmEvbmV0L0ZpbGVOYW1lTWFwBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAEWdldENvbnRlbnRUeXBlRm9yAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAQRmlsZU5hbWVNYXAuamF2YQYBAAIABAAAAAAAAQQBAAUABgAAAAEABwAAAAIACFBLAwQKAAAAAAA8Q7oyH9Zh5r0KAAC9CgAAIAAAAGphdmEvbmV0L0h0dHBVUkxDb25uZWN0aW9uLmNsYXNzyv66vgAAAC4AdgEAGmphdmEvbmV0L0h0dHBVUkxDb25uZWN0aW9uBwABAQAWamF2YS9uZXQvVVJMQ29ubmVjdGlvbgcAAwEABm1ldGhvZAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEADHJlc3BvbnNlQ29kZQEAAUkBAA9yZXNwb25zZU1lc3NhZ2UBAA1IVFRQX0FDQ0VQVEVEAQANQ29uc3RhbnRWYWx1ZQMAAADKAQAQSFRUUF9CQURfR0FURVdBWQMAAAH2AQAPSFRUUF9CQURfTUVUSE9EAwAAAZUBABBIVFRQX0JBRF9SRVFVRVNUAwAAAZABABNIVFRQX0NMSUVOVF9USU1FT1VUAwAAAZgBAA1IVFRQX0NPTkZMSUNUAwAAAZkBAAxIVFRQX0NSRUFURUQDAAAAyQEAFUhUVFBfRU5USVRZX1RPT19MQVJHRQMAAAGdAQAOSFRUUF9GT1JCSURERU4DAAABkwEAFEhUVFBfR0FURVdBWV9USU1FT1VUAwAAAfgBAAlIVFRQX0dPTkUDAAABmgEAE0hUVFBfSU5URVJOQUxfRVJST1IDAAAB9AEAFEhUVFBfTEVOR1RIX1JFUVVJUkVEAwAAAZsBAA9IVFRQX01PVkVEX1BFUk0DAAABLQEAD0hUVFBfTU9WRURfVEVNUAMAAAEuAQAQSFRUUF9NVUxUX0NIT0lDRQMAAAEsAQAPSFRUUF9OT19DT05URU5UAwAAAMwBABNIVFRQX05PVF9BQ0NFUFRBQkxFAwAAAZYBABZIVFRQX05PVF9BVVRIT1JJVEFUSVZFAwAAAMsBAA5IVFRQX05PVF9GT1VORAMAAAGUAQAUSFRUUF9OT1RfSU1QTEVNRU5URUQDAAAB9QEAEUhUVFBfTk9UX01PRElGSUVEAwAAATABAAdIVFRQX09LAwAAAMgBAAxIVFRQX1BBUlRJQUwDAAAAzgEAFUhUVFBfUEFZTUVOVF9SRVFVSVJFRAMAAAGSAQASSFRUUF9QUkVDT05fRkFJTEVEAwAAAZwBAA9IVFRQX1BST1hZX0FVVEgDAAABlwEAEUhUVFBfUkVRX1RPT19MT05HAwAAAZ4BAApIVFRQX1JFU0VUAwAAAM0BAA5IVFRQX1NFRV9PVEhFUgMAAAEvAQAOSFRUUF9VU0VfUFJPWFkDAAABMQEAEUhUVFBfVU5BVVRIT1JJWkVEAwAAAZEBABVIVFRQX1VOU1VQUE9SVEVEX1RZUEUDAAABnwEAEEhUVFBfVU5BVkFJTEFCTEUDAAAB9wEADEhUVFBfVkVSU0lPTgMAAAH5AQAGPGluaXQ+AQARKExqYXZhL25ldC9VUkw7KVYBAARDb2RlDABRAFIKAAQAVAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABxMamF2YS9uZXQvSHR0cFVSTENvbm5lY3Rpb247AQAEdmFyMAEADkxqYXZhL25ldC9VUkw7AQAKZGlzY29ubmVjdAEAAygpVgEADmdldEVycm9yU3RyZWFtAQAXKClMamF2YS9pby9JbnB1dFN0cmVhbTsBABJnZXRGb2xsb3dSZWRpcmVjdHMBAAMoKVoBAA1nZXRQZXJtaXNzaW9uAQAcKClMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwBlAQAQZ2V0UmVxdWVzdE1ldGhvZAEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAPZ2V0UmVzcG9uc2VDb2RlAQADKClJAQASZ2V0UmVzcG9uc2VNZXNzYWdlAQASc2V0Rm9sbG93UmVkaXJlY3RzAQAEKFopVgEAAVoBABBzZXRSZXF1ZXN0TWV0aG9kAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAaamF2YS9uZXQvUHJvdG9jb2xFeGNlcHRpb24HAHEBAAp1c2luZ1Byb3h5AQAKU291cmNlRmlsZQEAFkh0dHBVUkxDb25uZWN0aW9uLmphdmEEIQACAAQAAAAmAAQABQAGAAAABAAHAAgAAAAEAAkABgAAABkACgAIAAEACwAAAAIADAAZAA0ACAABAAsAAAACAA4AGQAPAAgAAQALAAAAAgAQABkAEQAIAAEACwAAAAIAEgAZABMACAABAAsAAAACABQAGQAVAAgAAQALAAAAAgAWABkAFwAIAAEACwAAAAIAGAAZABkACAABAAsAAAACABoAGQAbAAgAAQALAAAAAgAcABkAHQAIAAEACwAAAAIAHgAZAB8ACAABAAsAAAACACAAGQAhAAgAAQALAAAAAgAiABkAIwAIAAEACwAAAAIAJAAZACUACAABAAsAAAACACYAGQAnAAgAAQALAAAAAgAoABkAKQAIAAEACwAAAAIAKgAZACsACAABAAsAAAACACwAGQAtAAgAAQALAAAAAgAuABkALwAIAAEACwAAAAIAMAAZADEACAABAAsAAAACADIAGQAzAAgAAQALAAAAAgA0ABkANQAIAAEACwAAAAIANgAZADcACAABAAsAAAACADgAGQA5AAgAAQALAAAAAgA6ABkAOwAIAAEACwAAAAIAPAAZAD0ACAABAAsAAAACAD4AGQA/AAgAAQALAAAAAgBAABkAQQAIAAEACwAAAAIAQgAZAEMACAABAAsAAAACAEQAGQBFAAgAAQALAAAAAgBGABkARwAIAAEACwAAAAIASAAZAEkACAABAAsAAAACAEoAGQBLAAgAAQALAAAAAgBMABkATQAIAAEACwAAAAIATgAZAE8ACAABAAsAAAACAFAACwAEAFEAUgABAFMAAAA6AAIAAgAAAAYqAbcAVbEAAAACAFYAAAAGAAEAAAAKAFcAAAAWAAIAAAAGAFgAWQAAAAAABgBaAFsAAQQBAFwAXQAAAAEAXgBfAAEAUwAAACwAAQABAAAAAgGwAAAAAgBWAAAABgABAAAADABXAAAADAABAAAAAgBYAFkAAAAJAGAAYQABAFMAAAAiAAEAAAAAAAIDrAAAAAIAVgAAAAYAAQAAAA0AVwAAAAIAAAABAGIAYwACAGQAAAAEAAEAZgBTAAAALAABAAEAAAACAbAAAAACAFYAAAAGAAEAAAAOAFcAAAAMAAEAAAACAFgA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/rq+AAAALgAbAQAZamF2YS9uZXQvSmFyVVJMQ29ubmVjdGlvbgcAAQEAFmphdmEvbmV0L1VSTENvbm5lY3Rpb24HAAMBABRqYXJGaWxlVVJMQ29ubmVjdGlvbgEAGExqYXZhL25ldC9VUkxDb25uZWN0aW9uOwEABjxpbml0PgEAEShMamF2YS9uZXQvVVJMOylWAQAKRXhjZXB0aW9ucwEAHmphdmEvbmV0L01hbGZvcm1lZFVSTEV4Y2VwdGlvbgcACgEABENvZGUMAAcACAoABAANAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAG0xqYXZhL25ldC9KYXJVUkxDb25uZWN0aW9uOwEABHZhcjABAA5MamF2YS9uZXQvVVJMOwEADGdldEVudHJ5TmFtZQEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQANZ2V0SmFyRmlsZVVSTAEAECgpTGphdmEvbmV0L1VSTDsBAApTb3VyY2VGaWxlAQAVSmFyVVJMQ29ubmVjdGlvbi5qYXZhBCEAAgAEAAAAAQAEAAUABgAAAAMABAAHAAgAAgAJAAAABAABAAsADAAAADoAAgACAAAABioBtwAOsQAAAAIADwAAAAYAAQAAAAoAEAAAABYAAgAAAAYAEQASAAAAAAAGABMAFAABAAEAFQAWAAEADAAAACwAAQABAAAAAgGwAAAAAgAPAAAABgABAAAACwAQAAAADAABAAAAAgARABIAAAABABcAGAABAAwAAAAsAAEAAQAAAAIBsAAAAAIADwAAAAYAAQAAAAwAEAAAAAwAAQAAAAIAEQASAAAAAQAZAAAAAgAaUEsDBAoAAAAAADxDujLYNq+OsAEAALABAAAkAAAAamF2YS9uZXQvTWFsZm9ybWVkVVJMRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AEwEAHmphdmEvbmV0L01hbGZvcm1lZFVSTEV4Y2VwdGlvbgcAAQEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACBMamF2YS9uZXQvTWFsZm9ybWVkVVJMRXhjZXB0aW9uOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAaTWFsZm9ybWVkVVJMRXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADxDujLcRRmF5gQAAOYEAAAeAAAAamF2YS9uZXQvTXVsdGljYXN0U29ja2V0LmNsYXNzyv66vgAAAC4AJwEAGGphdmEvbmV0L011bHRpY2FzdFNvY2tldAcAAQEAF2phdmEvbmV0L0RhdGFncmFtU29ja2V0BwADAQAGPGluaXQ+AQADKClWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAgBAARDb2RlDAAFAAYKAAQACwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABpMamF2YS9uZXQvTXVsdGljYXN0U29ja2V0OwEABChJKVYBAAR2YXIwAQABSQEADGdldEludGVyZmFjZQEAGCgpTGphdmEvbmV0L0luZXRBZGRyZXNzOwEAGGphdmEvbmV0L1NvY2tldEV4Y2VwdGlvbgcAFgEADWdldFRpbWVUb0xpdmUBAAMoKUkBAAlqb2luR3JvdXABABkoTGphdmEvbmV0L0luZXRBZGRyZXNzOylWAQAWTGphdmEvbmV0L0luZXRBZGRyZXNzOwEACmxlYXZlR3JvdXABAARzZW5kAQAdKExqYXZhL25ldC9EYXRhZ3JhbVBhY2tldDtCKVYBABlMamF2YS9uZXQvRGF0YWdyYW1QYWNrZXQ7AQAEdmFyMQEAAUIBAAxzZXRJbnRlcmZhY2UBAA1zZXRUaW1lVG9MaXZlAQAKU291cmNlRmlsZQEAFE11bHRpY2FzdFNvY2tldC5qYXZhACEAAgAEAAAAAAAJAAEABQAGAAIABwAAAAQAAQAJAAoAAAAvAAEAAQAAAAUqtwAMsQAAAAIADQAAAAYAAQAAAAoADgAAAAwAAQAAAAUADwAQAAAAAQAFABEAAgAHAAAABAABAAkACgAAADkAAQACAAAABSq3AAyxAAAAAgANAAAABgABAAAACwAOAAAAFgACAAAABQAPABAAAAAAAAUAEgATAAEAAQAUABUAAgAHAAAABAABABcACgAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAADAAOAAAADAABAAAAAgAPABAAAAABABgAGQACAAcAAAAEAAEACQAKAAAALAABAAEAAAACA6wAAAACAA0AAAAGAAEAAAANAA4AAAAMAAEAAAACAA8AEAAAAAEAGgAbAAIABwAAAAQAAQAJAAoAAAA1AAAAAgAAAAGxAAAAAgANAAAABgABAAAADgAOAAAAFgACAAAAAQAPABAAAAAAAAEAEgAcAAEAAQAdABsAAgAHAAAABAABAAkACgAAADUAAAACAAAAAbEAAAACAA0AAAAGAAEAAAAPAA4AAAAWAAIAAAABAA8AEAAAAAAAAQASABwAAQABAB4AHwACAAcAAAAEAAEACQAKAAAAPwAAAAMAAAABsQAAAAIADQAAAAYAAQAAABAADgAAACAAAwAAAAEADwAQAAAAAAABABIAIAABAAAAAQAhACIAAgABACMAGwACAAcAAAAEAAEAFwAKAAAANQAAAAIAAAABsQAAAAIADQAAAAYAAQAAABEADgAAABYAAgAAAAEADwAQAAAAAAABABIAHAABAAEAJAARAAIABwAAAAQAAQAJAAoAAAA1AAAAAgAAAAGxAAAAAgANAAAABgABAAAAEgAOAAAAFgACAAAAAQAPABAAAAAAAAEAEgATAAEAAQAlAAAAAgAmUEsDBAoAAAAAADxDujL+YCNK5QEAAOUBAAAcAAAAamF2YS9uZXQvTmV0UGVybWlzc2lvbi5jbGFzc8r+ur4AAAAuABQBABZqYXZhL25ldC9OZXRQZXJtaXNzaW9uBwABAQAdamF2YS9zZWN1cml0eS9CYXNpY1Blcm1pc3Npb24HAAMBAAY8aW5pdD4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWDAAFAAgKAAQACQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABhMamF2YS9uZXQvTmV0UGVybWlzc2lvbjsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEAClNvdXJjZUZpbGUBABJOZXRQZXJtaXNzaW9uLmphdmEAMQACAAQAAAAAAAIAAQAFAAYAAQAHAAAAOwADAAIAAAAHKgEBtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAABYAAgAAAAcADQAOAAAAAAAHAA8AEAABAAEABQAIAAEABwAAAEUAAwADAAAAByoBAbcACrEAAAACAAsAAAAGAAEAAAALAAwAAAAgAAMAAAAHAA0ADgAAAAAABwAPABAAAQAAAAcAEQAQAAIAAQASAAAAAgATUEsDBAoAAAAAADxDujIJS9cmuAEAALgBAAAlAAAAamF2YS9uZXQvTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBAB9qYXZhL25ldC9Ob1JvdXRlVG9Ib3N0RXhjZXB0aW9uBwABAQAYamF2YS9uZXQvU29ja2V0RXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAhTGphdmEvbmV0L05vUm91dGVUb0hvc3RFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABtOb1JvdXRlVG9Ib3N0RXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADxDujJ8cy/zOQIAADkCAAAlAAAAamF2YS9uZXQvUGFzc3dvcmRBdXRoZW50aWNhdGlvbi5jbGFzc8r+ur4AAAAuABkBAB9qYXZhL25ldC9QYXNzd29yZEF1dGhlbnRpY2F0aW9uBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABjxpbml0PgEAFyhMamF2YS9sYW5nL1N0cmluZztbQylWAQAEQ29kZQEAAygpVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAhTGphdmEvbmV0L1Bhc3N3b3JkQXV0aGVudGljYXRpb247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABHZhcjEBAAJbQwEAC2dldFBhc3N3b3JkAQAEKClbQwEAC2dldFVzZXJOYW1lAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAbUGFzc3dvcmRBdXRoZW50aWNhdGlvbi5qYXZhADEAAgAEAAAAAAADAAEABQAGAAEABwAAAEMAAQADAAAABSq3AAqxAAAAAgALAAAABgABAAAACgAMAAAAIAADAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACAAEAEwAUAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAACwAMAAAADAABAAAAAgANAA4AAAABABUAFgABAAcAAAAsAAEAAQAAAAIBsAAAAAIACwAAAAYAAQAAAAwADAAAAAwAAQAAAAIADQAOAAAAAQAXAAAAAgAYUEsDBAoAAAAAADxDujK5xdbrpAEAAKQBAAAgAAAAamF2YS9uZXQvUHJvdG9jb2xFeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQAaamF2YS9uZXQvUHJvdG9jb2xFeGNlcHRpb24HAAEBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAcTGphdmEvbmV0L1Byb3RvY29sRXhjZXB0aW9uOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAWUHJvdG9jb2xFeGNlcHRpb24uamF2YQAhAAIABAAAAAAAAgABAAUABgABAAcAAAAvAAEAAQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAUADAANAAAAAQAFAA4AAQAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAALAAsAAAAWAAIAAAAFAAwADQAAAAAABQAPABAAAQABABEAAAACABJQSwMECgAAAAAAPEO6Mkx2WBYYBgAAGAYAABsAAABqYXZhL25ldC9TZXJ2ZXJTb2NrZXQuY2xhc3PK/rq+AAAALgAuAQAVamF2YS9uZXQvU2VydmVyU29ja2V0BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABjxpbml0PgEABChJKVYBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcACAEABENvZGUBAAMoKVYMAAUACwoABAAMAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAF0xqYXZhL25ldC9TZXJ2ZXJTb2NrZXQ7AQAEdmFyMAEAAUkBAAUoSUkpVgEABHZhcjEBABsoSUlMamF2YS9uZXQvSW5ldEFkZHJlc3M7KVYBAAR2YXIyAQAWTGphdmEvbmV0L0luZXRBZGRyZXNzOwEABmFjY2VwdAEAEygpTGphdmEvbmV0L1NvY2tldDsBAAVjbG9zZQEADmdldEluZXRBZGRyZXNzAQAYKClMamF2YS9uZXQvSW5ldEFkZHJlc3M7AQAMZ2V0TG9jYWxQb3J0AQADKClJAQAMZ2V0U29UaW1lb3V0AQAKaW1wbEFjY2VwdAEAFChMamF2YS9uZXQvU29ja2V0OylWAQARTGphdmEvbmV0L1NvY2tldDsBABBzZXRTb2NrZXRGYWN0b3J5AQAfKExqYXZhL25ldC9Tb2NrZXRJbXBsRmFjdG9yeTspVgEAHExqYXZhL25ldC9Tb2NrZXRJbXBsRmFjdG9yeTsBAAxzZXRTb1RpbWVvdXQBABhqYXZhL25ldC9Tb2NrZXRFeGNlcHRpb24HACgBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAEVNlcnZlclNvY2tldC5qYXZhACEAAgAEAAAAAAAMAAEABQAGAAIABwAAAAQAAQAJAAoAAAA5AAEAAgAAAAUqtwANsQAAAAIADgAAAAYAAQAAAAoADwAAABYAAgAAAAUAEAARAAAAAAAFABIAEwABAAEABQAUAAIABwAAAAQAAQAJAAoAAABDAAEAAwAAAAUqtwANsQAAAAIADgAAAAYAAQAAAAsADwAAACAAAwAAAAUAEAARAAAAAAAFABIAEwABAAAABQAVABMAAgABAAUAFgACAAcAAAAEAAEACQAKAAAATQABAAQAAAAFKrcADbEAAAACAA4AAAAGAAEAAAAMAA8AAAAqAAQAAAAFABAAEQAAAAAABQASABMAAQAAAAUAFQATAAIAAAAFABcAGAADAAEAGQAaAAIABwAAAAQAAQAJAAoAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAAA0ADwAAAAwAAQAAAAIAEAARAAAAAQAbAAsAAgAHAAAABAABAAkACgAAACsAAAABAAAAAbEAAAACAA4AAAAGAAEAAAAOAA8AAAAMAAEAAAABABAAEQAAAAEAHAAdAAEACgAAACwAAQABAAAAAgGwAAAAAgAOAAAABgABAAAADwAPAAAADAABAAAAAgAQABEAAAABAB4AHwABAAoAAAAsAAEAAQAAAAIDrAAAAAIADgAAAAYAAQAAABAADwAAAAwAAQAAAAIAEAARAAAAAQAgAB8AAgAHAAAABAABAAkACgAAACwAAQABAAAAAgOsAAAAAgAOAAAABgABAAAAEQAPAAAADAABAAAAAgAQABEAAAAUACEAIgACAAcAAAAEAAEACQAKAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABIADwAAABYAAgAAAAEAEAARAAAAAAABABIAIwABAAkAJAAlAAIABwAAAAQAAQAJAAoAAAArAAAAAQAAAAGxAAAAAgAOAAAABgABAAAAEwAPAAAADAABAAAAAQASACYAAAABACcABgACAAcAAAAEAAEAKQAKAAAANQAAAAIAAAABsQAAAAIADgAAAAYAAQAAABQADwAAABYAAgAAAAEAEAARAAAAAAABABIAEwABAAEAKgArAAEACgAAACwAAQABAAAAAgGwAAAAAgAOAAAABgABAAAAFQAPAAAADAABAAAAAgAQABEAAAABACwAAAACAC1QSwMECgAAAAAAPEO6MjViCkCECwAAhAsAABUAAABqYXZhL25ldC9Tb2NrZXQuY2xhc3PK/rq+AAAALgBDAQAPamF2YS9uZXQvU29ja2V0BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAEUxqYXZhL25ldC9Tb2NrZXQ7AQAWKExqYXZhL2xhbmcvU3RyaW5nO0kpVgEACkV4Y2VwdGlvbnMBAB1qYXZhL25ldC9Vbmtub3duSG9zdEV4Y2VwdGlvbgcAEAEAE2phdmEvaW8vSU9FeGNlcHRpb24HABIBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEAAUkBAC0oTGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL25ldC9JbmV0QWRkcmVzcztJKVYBAAR2YXIyAQAWTGphdmEvbmV0L0luZXRBZGRyZXNzOwEABHZhcjMBABooTGphdmEvbmV0L0luZXRBZGRyZXNzO0kpVgEAMShMamF2YS9uZXQvSW5ldEFkZHJlc3M7SUxqYXZhL25ldC9JbmV0QWRkcmVzcztJKVYBABgoTGphdmEvbmV0L1NvY2tldEltcGw7KVYBABhqYXZhL25ldC9Tb2NrZXRFeGNlcHRpb24HAB8BABVMamF2YS9uZXQvU29ja2V0SW1wbDsBAAVjbG9zZQEADmdldEluZXRBZGRyZXNzAQAYKClMamF2YS9uZXQvSW5ldEFkZHJlc3M7AQAOZ2V0SW5wdXRTdHJlYW0BABcoKUxqYXZhL2lvL0lucHV0U3RyZWFtOwEAD2dldExvY2FsQWRkcmVzcwEADGdldExvY2FsUG9ydAEAAygpSQEAD2dldE91dHB1dFN0cmVhbQEAGCgpTGphdmEvaW8vT3V0cHV0U3RyZWFtOwEAB2dldFBvcnQBAAtnZXRTb0xpbmdlcgEAFGdldFJlY2VpdmVCdWZmZXJTaXplAQARZ2V0U2VuZEJ1ZmZlclNpemUBAAxnZXRTb1RpbWVvdXQBAA1nZXRUY3BOb0RlbGF5AQADKClaAQAUc2V0U29ja2V0SW1wbEZhY3RvcnkBAB8oTGphdmEvbmV0L1NvY2tldEltcGxGYWN0b3J5OylWAQAcTGphdmEvbmV0L1NvY2tldEltcGxGYWN0b3J5OwEAEXNldFNlbmRCdWZmZXJTaXplAQAEKEkpVgEAFHNldFJlY2VpdmVCdWZmZXJTaXplAQALc2V0U29MaW5nZXIBAAUoWkkpVgEAAVoBAAxzZXRTb1RpbWVvdXQBAA1zZXRUY3BOb0RlbGF5AQAEKFopVgEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQALU29ja2V0LmphdmEAIQACAAQAAAAAABkABAAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAIADwAAAAYAAgARABMABwAAAEMAAQADAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAIAADAAAABQAMAA0AAAAAAAUAFAAVAAEAAAAFABYAFwACAAEABQAYAAIADwAAAAQAAQATAAcAAABXAAEABQAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAwACwAAADQABQAAAAUADAANAAAAAAAFABQAFQABAAAABQAWABcAAgAAAAUAGQAaAAMAAAAFABsAFwAEAAEABQAcAAIADwAAAAQAAQATAAcAAABDAAEAAwAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAA0ACwAAACAAAwAAAAUADAANAAAAAAAFABQAGgABAAAABQAWABcAAgABAAUAHQACAA8AAAAEAAEAEwAHAAAAVwABAAUAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAOAAsAAAA0AAUAAAAFAAwADQAAAAAABQAUABoAAQAAAAUAFgAXAAIAAAAFABkAGgADAAAABQAbABcABAAEAAUAHgACAA8AAAAEAAEAIAAHAAAAOQABAAIAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAPAAsAAAAWAAIAAAAFAAwADQAAAAAABQAUACEAAQABACIABgACAA8AAAAEAAEAEwAHAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAABAACwAAAAwAAQAAAAEADAANAAAAAQAjACQAAQAHAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAARAAsAAAAMAAEAAAACAAwADQAAAAEAJQAmAAIADwAAAAQAAQATAAcAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABIACwAAAAwAAQAAAAIADAANAAAAAQAnACQAAQAHAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAATAAsAAAAMAAEAAAACAAwADQAAAAEAKAApAAEABwAAACwAAQABAAAAAgOsAAAAAgAKAAAABgABAAAAFAALAAAADAABAAAAAgAMAA0AAAABACoAKwACAA8AAAAEAAEAEwAHAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAVAAsAAAAMAAEAAAACAAwADQAAAAEALAApAAEABwAAACwAAQABAAAAAgOsAAAAAgAKAAAABgABAAAAFgALAAAADAABAAAAAgAMAA0AAAABAC0AKQACAA8AAAAEAAEAIAAHAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAAXAAsAAAAMAAEAAAACAAwADQAAAAEALgApAAIADwAAAAQAAQAgAAcAAAAsAAEAAQAAAAIDrAAAAAIACgAAAAYAAQAAABgACwAAAAwAAQAAAAIADAANAAAAAQAvACkAAgAPAAAABAABACAABwAAACwAAQABAAAAAgOsAAAAAgAKAAAABgABAAAAGQALAAAADAABAAAAAgAMAA0AAAABADAAKQACAA8AAAAEAAEAIAAHAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAAaAAsAAAAMAAEAAAACAAwADQAAAAEAMQAyAAIADwAAAAQAAQAgAAcAAAAsAAEAAQAAAAIDrAAAAAIACgAAAAYAAQAAABsACwAAAAwAAQAAAAIADAANAAAACQAzADQAAgAPAAAABAABABMABwAAACsAAAABAAAAAbEAAAACAAoAAAAGAAEAAAAcAAsAAAAMAAEAAAABABQANQAAAAEANgA3AAIADwAAAAQAAQAgAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAHQALAAAAFgACAAAAAQAMAA0AAAAAAAEAFAAXAAEAAQA4ADcAAgAPAAAABAABACAABwAAADUAAAACAAAAAbEAAAACAAoAAAAGAAEAAAAeAAsAAAAWAAIAAAABAAwADQAAAAAAAQAUABcAAQABADkAOgACAA8AAAAEAAEAIAAHAAAAPwAAAAMAAAABsQAAAAIACgAAAAYAAQAAAB8ACwAAACAAAwAAAAEADAANAAAAAAABABQAOwABAAAAAQAWABcAAgABADwANwACAA8AAAAEAAEAIAAHAAAANQAAAAIAAAABsQAAAAIACgAAAAYAAQAAACAACwAAABYAAgAAAAEADAANAAAAAAABABQAFwABAAEAPQA+AAIADwAAAAQAAQAgAAcAAAA1AAAAAgAAAAGxAAAAAgAKAAAABgABAAAAIQALAAAAFgACAAAAAQAMAA0AAAAAAAEAFAA7AAEAAQA/AEAAAQAHAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAiAAsAAAAMAAEAAAACAAwADQAAAAEAQQAAAAIAQlBLAwQKAAAAAAA8Q7oye9+wnp4BAACeAQAAHgAAAGphdmEvbmV0L1NvY2tldEV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBABhqYXZhL25ldC9Tb2NrZXRFeGNlcHRpb24HAAEBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAaTGphdmEvbmV0L1NvY2tldEV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAFFNvY2tldEV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA8Q7oyK2kvjMUFAADFBQAAGQAAAGphdmEvbmV0L1NvY2tldEltcGwuY2xhc3PK/rq+AAAALgA7AQATamF2YS9uZXQvU29ja2V0SW1wbAcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABZqYXZhL25ldC9Tb2NrZXRPcHRpb25zBwAFAQAHYWRkcmVzcwEAFkxqYXZhL25ldC9JbmV0QWRkcmVzczsBAARwb3J0AQABSQEAAmZkAQAYTGphdmEvaW8vRmlsZURlc2NyaXB0b3I7AQAJbG9jYWxwb3J0AQAGPGluaXQ+AQADKClWAQAEQ29kZQwADgAPCgAEABEBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAVTGphdmEvbmV0L1NvY2tldEltcGw7AQAGYWNjZXB0AQAYKExqYXZhL25ldC9Tb2NrZXRJbXBsOylWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HABoBAAlhdmFpbGFibGUBAAMoKUkBAARiaW5kAQAaKExqYXZhL25ldC9JbmV0QWRkcmVzcztJKVYBAAVjbG9zZQEAB2Nvbm5lY3QBABYoTGphdmEvbGFuZy9TdHJpbmc7SSlWAQAGY3JlYXRlAQAEKFopVgEAEWdldEZpbGVEZXNjcmlwdG9yAQAaKClMamF2YS9pby9GaWxlRGVzY3JpcHRvcjsBAA5nZXRJbmV0QWRkcmVzcwEAGCgpTGphdmEvbmV0L0luZXRBZGRyZXNzOwEADmdldElucHV0U3RyZWFtAQAXKClMamF2YS9pby9JbnB1dFN0cmVhbTsBAAxnZXRMb2NhbFBvcnQBAAlnZXRPcHRpb24BABUoSSlMamF2YS9sYW5nL09iamVjdDsBABhqYXZhL25ldC9Tb2NrZXRFeGNlcHRpb24HAC4BAA9nZXRPdXRwdXRTdHJlYW0BABgoKUxqYXZhL2lvL091dHB1dFN0cmVhbTsBAAdnZXRQb3J0AQAGbGlzdGVuAQAEKEkpVgEACXNldE9wdGlvbgEAFihJTGphdmEvbGFuZy9PYmplY3Q7KVYBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAD1NvY2tldEltcGwuamF2YQQhAAIABAABAAYABAAEAAcACAAAAAQACQAKAAAABAALAAwAAAAEAA0ACgAAABIAAQAOAA8AAQAQAAAALwABAAEAAAAFKrcAErEAAAACABMAAAAGAAEAAAAKABQAAAAMAAEAAAAFABUAFgAABAQAFwAYAAEAGQAAAAQAAQAbBAQAHAAdAAEAGQAAAAQAAQAbBAQAHgAfAAEAGQAAAAQAAQAbBAQAIAAPAAEAGQAAAAQAAQAbBAQAIQAiAAEAGQAAAAQAAQAbBAQAIQAfAAEAGQAAAAQAAQAbBAQAIwAkAAEAGQAAAAQAAQAbAAQAJQAmAAEAEAAAACwAAQABAAAAAgGwAAAAAgATAAAABgABAAAAEgAUAAAADAABAAAAAgAVABYAAAAEACcAKAABABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAABMAFAAAAAwAAQAAAAIAFQAWAAAEBAApACoAAQAZAAAABAABABsABAArAB0AAQAQAAAALAABAAEAAAACA6wAAAACABMAAAAGAAEAAAAVABQAAAAMAAEAAAACABUAFgAABAEALAAtAAEAGQAAAAQAAQAvBAQAMAAxAAEAGQAAAAQAAQAbAAQAMgAdAAEAEAAAACwAAQABAAAAAgOsAAAAAgATAAAABgABAAAAGAAUAAAADAABAAAAAgAVABYAAAQEADMANAABABkAAAAEAAEAGwQBADUANgABABkAAAAEAAEALwABADcAOAABABAAAAAsAAEAAQAAAAIBsAAAAAIAEwAAAAYAAQAAABsAFAAAAAwAAQAAAAIAFQAWAAAAAQA5AAAAAgA6UEsDBAoAAAAAADxDujJlXnovsQAAALEAAAAgAAAAamF2YS9uZXQvU29ja2V0SW1wbEZhY3RvcnkuY2xhc3PK/rq+AAAALgAJAQAaamF2YS9uZXQvU29ja2V0SW1wbEZhY3RvcnkHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAQY3JlYXRlU29ja2V0SW1wbAEAFygpTGphdmEvbmV0L1NvY2tldEltcGw7AQAKU291cmNlRmlsZQEAFlNvY2tldEltcGxGYWN0b3J5LmphdmEGAQACAAQAAAAAAAEEAQAFAAYAAAABAAcAAAACAAhQSwMECgAAAAAAPEO6MrqJj4c2AgAANgIAABwAAABqYXZhL25ldC9Tb2NrZXRPcHRpb25zLmNsYXNzyv66vgAAAC4AIAEAFmphdmEvbmV0L1NvY2tldE9wdGlvbnMHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAJU09fTElOR0VSAQABSQEADUNvbnN0YW50VmFsdWUDAAAAgAEAClNPX1RJTUVPVVQDAAAQBgEAC1RDUF9OT0RFTEFZAwAAAAEBAA9JUF9NVUxUSUNBU1RfSUYDAAAAEAEAC1NPX0JJTkRBRERSAwAAAA8BAAxTT19SRVVTRUFERFIDAAAABAEACVNPX1NOREJVRgMAABABAQAJU09fUkNWQlVGAwAAEAIBAAlnZXRPcHRpb24BABUoSSlMamF2YS9sYW5nL09iamVjdDsBAApFeGNlcHRpb25zAQAYamF2YS9uZXQvU29ja2V0RXhjZXB0aW9uBwAaAQAJc2V0T3B0aW9uAQAWKElMamF2YS9sYW5nL09iamVjdDspVgEAClNvdXJjZUZpbGUBABJTb2NrZXRPcHRpb25zLmphdmEGAQACAAQAAAAIABkABQAGAAEABwAAAAIACAAZAAkABgABAAcAAAACAAoAGQALAAYAAQAHAAAAAgAMABkADQAGAAEABwAAAAIADgAZAA8ABgABAAcAAAACABAAGQARAAYAAQAHAAAAAgASABkAEwAGAAEABwAAAAIAFAAZABUABgABAAcAAAACABYAAgQBABcAGAABABkAAAAEAAEAGwQBABwAHQABABkAAAAEAAEAGwABAB4AAAACAB9QSwMECgAAAAAAPEO6MrgFAM7mAwAA5gMAAB8AAABqYXZhL25ldC9Tb2NrZXRQZXJtaXNzaW9uLmNsYXNzyv66vgAAAC4AIgEAGWphdmEvbmV0L1NvY2tldFBlcm1pc3Npb24HAAEBABhqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb24HAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEABjxpbml0PgEAJyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspVgEABENvZGUBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYMAAcACgoABAALAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAG0xqYXZhL25ldC9Tb2NrZXRQZXJtaXNzaW9uOwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAR2YXIxAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQASTGphdmEvbGFuZy9PYmplY3Q7AQAIaGFzaENvZGUBAAMoKUkBAApnZXRBY3Rpb25zAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAdpbXBsaWVzAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVoBABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEAF25ld1Blcm1pc3Npb25Db2xsZWN0aW9uAQAmKClMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbjsBAApTb3VyY2VGaWxlAQAVU29ja2V0UGVybWlzc2lvbi5qYXZhADEAAgAEAAEABgAAAAYAAQAHAAgAAQAJAAAARAACAAMAAAAGKgG3AAyxAAAAAgANAAAABgABAAAACgAOAAAAIAADAAAABgAPABAAAAAAAAYAEQASAAEAAAAGABMAEgACAAEAFAAVAAEACQAAADYAAQACAAAAAgOsAAAAAgANAAAABgABAAAACwAOAAAAFgACAAAAAgAPABAAAAAAAAIAEQAWAAEAAQAXABgAAQAJAAAALAABAAEAAAACA6wAAAACAA0AAAAGAAEAAAAMAA4AAAAMAAEAAAACAA8AEAAAAAEAGQAaAAEACQAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAADQAOAAAADAABAAAAAgAPABAAAAABABsAHAABAAkAAAA2AAEAAgAAAAIDrAAAAAIADQAAAAYAAQAAAA4ADgAAABYAAgAAAAIADwAQAAAAAAACABEAHQABAAEAHgAfAAEACQAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAADwAOAAAADAABAAAAAgAPABAAAAABACAAAAACACFQSwMECgAAAAAAPEO6MhSIJfA4DQAAOA0AABIAAABqYXZhL25ldC9VUkwuY2xhc3PK/rq+AAAALgBHAQAMamF2YS9uZXQvVVJMBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAac2V0VVJMU3RyZWFtSGFuZGxlckZhY3RvcnkBACUoTGphdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXJGYWN0b3J5OylWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHZhcjABACJMamF2YS9uZXQvVVJMU3RyZWFtSGFuZGxlckZhY3Rvcnk7AQAGPGluaXQ+AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAKRXhjZXB0aW9ucwEAHmphdmEvbmV0L01hbGZvcm1lZFVSTEV4Y2VwdGlvbgcAEQEAAygpVgwADgATCgAEABQBAAR0aGlzAQAOTGphdmEvbmV0L1VSTDsBABJMamF2YS9sYW5nL1N0cmluZzsBACMoTGphdmEvbmV0L1VSTDtMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjEBAD4oTGphdmEvbmV0L1VSTDtMamF2YS9sYW5nL1N0cmluZztMamF2YS9uZXQvVVJMU3RyZWFtSGFuZGxlcjspVgEABHZhcjIBABtMamF2YS9uZXQvVVJMU3RyZWFtSGFuZGxlcjsBADkoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYBADooTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL2xhbmcvU3RyaW5nOylWAQABSQEABHZhcjMBAFUoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL25ldC9VUkxTdHJlYW1IYW5kbGVyOylWAQAEdmFyNAEAA3NldAEATChMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztJTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBABJMamF2YS9sYW5nL09iamVjdDsBAAhzYW1lRmlsZQEAEShMamF2YS9uZXQvVVJMOylaAQAIaGFzaENvZGUBAAMoKUkBAApnZXRDb250ZW50AQAUKClMamF2YS9sYW5nL09iamVjdDsBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAvAQAKb3BlblN0cmVhbQEAFygpTGphdmEvaW8vSW5wdXRTdHJlYW07AQAOb3BlbkNvbm5lY3Rpb24BABooKUxqYXZhL25ldC9VUkxDb25uZWN0aW9uOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAA50b0V4dGVybmFsRm9ybQEAB2dldEZpbGUBAAdnZXRIb3N0AQAHZ2V0UG9ydAEAC2dldFByb3RvY29sAQAGZ2V0UmVmAQAIZ2V0UXVlcnkBAAdnZXRQYXRoAQALZ2V0VXNlckluZm8BAAxnZXRBdXRob3JpdHkBAIIoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyNQEABHZhcjYBAAR2YXI3AQAKU291cmNlRmlsZQEACFVSTC5qYXZhADEAAgAEAAEABgAAABoACQAHAAgAAQAJAAAAKwAAAAEAAAABsQAAAAIACgAAAAYAAQAAAAoACwAAAAwAAQAAAAEADAANAAAAAQAOAA8AAgAQAAAABAABABIACQAAADkAAQACAAAABSq3ABWxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAWABcAAAAAAAUADAAYAAEAAQAOABkAAgAQAAAABAABABIACQAAAEMAAQADAAAABSq3ABWxAAAAAgAKAAAABgABAAAADAALAAAAIAADAAAABQAWABcAAAAAAAUADAAXAAEAAAAFABoAGAACAAEADgAbAAIAEAAAAAQAAQASAAkAAABNAAEABAAAAAUqtwAVsQAAAAIACgAAAAYAAQAAAA0ACwAAACoABAAAAAUAFgAXAAAAAAAFAAwAFwABAAAABQAaABgAAgAAAAUAHAAdAAMAAQAOAB4AAgAQAAAABAABABIACQAAAE0AAQAEAAAABSq3ABWxAAAAAgAKAAAABgABAAAADgALAAAAKgAEAAAABQAWABcAAAAAAAUADAAYAAEAAAAFABoAGAACAAAABQAcABgAAwABAA4AHwACABAAAAAEAAEAEgAJAAAAVwABAAUAAAAFKrcAFbEAAAACAAoAAAAGAAEAAAAPAAsAAAA0AAUAAAAFABYAFwAAAAAABQAMABgAAQAAAAUAGgAYAAIAAAAFABwAIAADAAAABQAhABgABAABAA4AIgACABAAAAAEAAEAEgAJAAAAYQABAAYAAAAFKrcAFbEAAAACAAoAAAAGAAEAAAAQAAsAAAA+AAYAAAAFABYAFwAAAAAABQAMABgAAQAAAAUAGgAYAAIAAAAFABwAIAADAAAABQAhABgABAAAAAUAIwAdAAUABAAkACUAAQAJAAAAXQAAAAYAAAABsQAAAAIACgAAAAYAAQAAABEACwAAAD4ABgAAAAEAFgAXAAAAAAABAAwAGAABAAAAAQAaABgAAgAAAAEAHAAgAAMAAAABACEAGAAEAAAAAQAjABgABQABACYAJwABAAkAAAA2AAEAAgAAAAIDrAAAAAIACgAAAAYAAQAAABIACwAAABYAAgAAAAIAFgAXAAAAAAACAAwAKAABAAEAKQAqAAEACQAAADYAAQACAAAAAgOsAAAAAgAKAAAABgABAAAAEwALAAAAFgACAAAAAgAWABcAAAAAAAIADAAXAAEAAQArACwAAQAJAAAALAABAAEAAAACA6wAAAACAAoAAAAGAAEAAAAUAAsAAAAMAAEAAAACABYAFwAAABEALQAuAAIAEAAAAAQAAQAwAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABUACwAAAAwAAQAAAAIAFgAXAAAAEQAxADIAAgAQAAAABAABADAACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAFgALAAAADAABAAAAAgAWABcAAAABADMANAACABAAAAAEAAEAMAAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAXAAsAAAAMAAEAAAACABYAFwAAAAEANQA2AAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAGAALAAAADAABAAAAAgAWABcAAAABADcANgABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAABkACwAAAAwAAQAAAAIAFgAXAAAAAQA4ADYAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAaAAsAAAAMAAEAAAACABYAFwAAAAEAOQA2AAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAGwALAAAADAABAAAAAgAWABcAAAABADoALAABAAkAAAAsAAEAAQAAAAIDrAAAAAIACgAAAAYAAQAAABwACwAAAAwAAQAAAAIAFgAXAAAAAQA7ADYAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAdAAsAAAAMAAEAAAACABYAFwAAAAEAPAA2AAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAHgALAAAADAABAAAAAgAWABcAAAABAD0ANgABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAAB8ACwAAAAwAAQAAAAIAFgAXAAAAAQA+ADYAAQAJAAAALAABAAEAAAACAbAAAAACAAoAAAAGAAEAAAAgAAsAAAAMAAEAAAACABYAFwAAAAEAPwA2AAEACQAAACwAAQABAAAAAgGwAAAAAgAKAAAABgABAAAAIQALAAAADAABAAAAAgAWABcAAAABAEAANgABAAkAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAACIACwAAAAwAAQAAAAIAFgAXAAAABAAkAEEAAQAJAAAAewAAAAkAAAABsQAAAAIACgAAAAYAAQAAACMACwAAAFwACQAAAAEAFgAXAAAAAAABAAwAGAABAAAAAQAaABgAAgAAAAEAHAAgAAMAAAABACEAGAAEAAAAAQAjABgABQAAAAEAQgAYAAYAAAABAEMAGAAHAAAAAQBEABgACAABAEUAAAACAEZQSwMECgAAAAAAPEO6Mi1XEduTEAAAkxAAABwAAABqYXZhL25ldC9VUkxDb25uZWN0aW9uLmNsYXNzyv66vgAAAC4AXwEAFmphdmEvbmV0L1VSTENvbm5lY3Rpb24HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQADdXJsAQAOTGphdmEvbmV0L1VSTDsBAA9pZk1vZGlmaWVkU2luY2UBAAFKAQAJdXNlQ2FjaGVzAQABWgEACWNvbm5lY3RlZAEACGRvT3V0cHV0AQAHZG9JbnB1dAEAFGFsbG93VXNlckludGVyYWN0aW9uAQAGPGluaXQ+AQARKExqYXZhL25ldC9VUkw7KVYBAARDb2RlAQADKClWDAAPABIKAAQAEwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABhMamF2YS9uZXQvVVJMQ29ubmVjdGlvbjsBAAR2YXIwAQAHY29ubmVjdAEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAcAQAXZ2V0QWxsb3dVc2VySW50ZXJhY3Rpb24BAAMoKVoBAApnZXRDb250ZW50AQAUKClMamF2YS9sYW5nL09iamVjdDsBABJnZXRDb250ZW50RW5jb2RpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAEGdldENvbnRlbnRMZW5ndGgBAAMoKUkBAA5nZXRDb250ZW50VHlwZQEAB2dldERhdGUBAAMoKUoBAB5nZXREZWZhdWx0QWxsb3dVc2VySW50ZXJhY3Rpb24BABNnZXREZWZhdWx0VXNlQ2FjaGVzAQAKZ2V0RG9JbnB1dAEAC2dldERvT3V0cHV0AQANZ2V0RXhwaXJhdGlvbgEADmdldEZpbGVOYW1lTWFwAQAYKClMamF2YS9uZXQvRmlsZU5hbWVNYXA7AQAOZ2V0SGVhZGVyRmllbGQBABUoSSlMamF2YS9sYW5nL1N0cmluZzsBAAFJAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABJMamF2YS9sYW5nL1N0cmluZzsBABJnZXRIZWFkZXJGaWVsZERhdGUBABYoTGphdmEvbGFuZy9TdHJpbmc7SilKAQAEdmFyMQEAEWdldEhlYWRlckZpZWxkSW50AQAWKExqYXZhL2xhbmcvU3RyaW5nO0kpSQEAEWdldEhlYWRlckZpZWxkS2V5AQASZ2V0SWZNb2RpZmllZFNpbmNlAQAOZ2V0SW5wdXRTdHJlYW0BABcoKUxqYXZhL2lvL0lucHV0U3RyZWFtOwEAD2dldExhc3RNb2RpZmllZAEAD2dldE91dHB1dFN0cmVhbQEAGCgpTGphdmEvaW8vT3V0cHV0U3RyZWFtOwEADWdldFBlcm1pc3Npb24BABwoKUxqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247AQASZ2V0UmVxdWVzdFByb3BlcnR5AQAGZ2V0VVJMAQAQKClMamF2YS9uZXQvVVJMOwEADGdldFVzZUNhY2hlcwEAGGd1ZXNzQ29udGVudFR5cGVGcm9tTmFtZQEAGmd1ZXNzQ29udGVudFR5cGVGcm9tU3RyZWFtAQApKExqYXZhL2lvL0lucHV0U3RyZWFtOylMamF2YS9sYW5nL1N0cmluZzsBABVMamF2YS9pby9JbnB1dFN0cmVhbTsBABdzZXRBbGxvd1VzZXJJbnRlcmFjdGlvbgEABChaKVYBABhzZXRDb250ZW50SGFuZGxlckZhY3RvcnkBACMoTGphdmEvbmV0L0NvbnRlbnRIYW5kbGVyRmFjdG9yeTspVgEAIExqYXZhL25ldC9Db250ZW50SGFuZGxlckZhY3Rvcnk7AQAec2V0RGVmYXVsdEFsbG93VXNlckludGVyYWN0aW9uAQATc2V0RGVmYXVsdFVzZUNhY2hlcwEACnNldERvSW5wdXQBAAtzZXREb091dHB1dAEADnNldEZpbGVOYW1lTWFwAQAZKExqYXZhL25ldC9GaWxlTmFtZU1hcDspVgEAFkxqYXZhL25ldC9GaWxlTmFtZU1hcDsBABJzZXRJZk1vZGlmaWVkU2luY2UBAAQoSilWAQASc2V0UmVxdWVzdFByb3BlcnR5AQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAMc2V0VXNlQ2FjaGVzAQAIdG9TdHJpbmcBAApTb3VyY2VGaWxlAQASVVJMQ29ubmVjdGlvbi5qYXZhBCEAAgAEAAAABwAEAAUABgAAAAQABwAIAAAABAAJAAoAAAAEAAsACgAAAAQADAAKAAAABAANAAoAAAAEAA4ACgAAACgABAAPABAAAQARAAAAOQABAAIAAAAFKrcAFLEAAAACABUAAAAGAAEAAAAKABYAAAAWAAIAAAAFABcAGAAAAAAABQAZAAYAAQQBABoAEgABABsAAAAEAAEAHQABAB4AHwABABEAAAAsAAEAAQAAAAIDrAAAAAIAFQAAAAYAAQAAAAwAFgAAAAwAAQAAAAIAFwAYAAAAAQAgACEAAgAbAAAABAABAB0AEQAAACwAAQABAAAAAgGwAAAAAgAVAAAABgABAAAADQAWAAAADAABAAAAAgAXABgAAAABACIAIwABABEAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAAA4AFgAAAAwAAQAAAAIAFwAYAAAAAQAkACUAAQARAAAALAABAAEAAAACA6wAAAACABUAAAAGAAEAAAAPABYAAAAMAAEAAAACABcAGAAAAAEAJgAjAAEAEQAAACwAAQABAAAAAgGwAAAAAgAVAAAABgABAAAAEAAWAAAADAABAAAAAgAXABgAAAABACcAKAABABEAAAAsAAIAAQAAAAIJrQAAAAIAFQAAAAYAAQAAABEAFgAAAAwAAQAAAAIAFwAYAAAACQApAB8AAQARAAAAIgABAAAAAAACA6wAAAACABUAAAAGAAEAAAASABYAAAACAAAAAQAqAB8AAQARAAAALAABAAEAAAACA6wAAAACABUAAAAGAAEAAAATABYAAAAMAAEAAAACABcAGAAAAAEAKwAfAAEAEQAAACwAAQABAAAAAgOsAAAAAgAVAAAABgABAAAAFAAWAAAADAABAAAAAgAXABgAAAABACwAHwABABEAAAAsAAEAAQAAAAIDrAAAAAIAFQAAAAYAAQAAABUAFgAAAAwAAQAAAAIAFwAYAAAAAQAtACgAAQARAAAALAACAAEAAAACCa0AAAACABUAAAAGAAEAAAAWABYAAAAMAAEAAAACABcAGAAAAAkALgAvAAEAEQAAACIAAQAAAAAAAgGwAAAAAgAVAAAABgABAAAAFwAWAAAAAgAAAAEAMAAxAAEAEQAAADYAAQACAAAAAgGwAAAAAgAVAAAABgABAAAAGAAWAAAAFgACAAAAAgAXABgAAAAAAAIAGQAyAAEAAQAwADMAAQARAAAANgABAAIAAAACAbAAAAACABUAAAAGAAEAAAAZABYAAAAWAAIAAAACABcAGAAAAAAAAgAZADQAAQABADUANgABABEAAABAAAIABAAAAAIJrQAAAAIAFQAAAAYAAQAAABoAFgAAACAAAwAAAAIAFwAYAAAAAAACABkANAABAAAAAgA3AAgAAgABADgAOQABABEAAABAAAEAAwAAAAIDrAAAAAIAFQAAAAYAAQAAABsAFgAAACAAAwAAAAIAFwAYAAAAAAACABkANAABAAAAAgA3ADIAAgABADoAMQABABEAAAA2AAEAAgAAAAIBsAAAAAIAFQAAAAYAAQAAABwAFgAAABYAAgAAAAIAFwAYAAAAAAACABkAMgABAAEAOwAoAAEAEQAAACwAAgABAAAAAgmtAAAAAgAVAAAABgABAAAAHQAWAAAADAABAAAAAgAXABgAAAABADwAPQACABsAAAAEAAEAHQARAAAALAABAAEAAAACAbAAAAACABUAAAAGAAEAAAAeABYAAAAMAAEAAAACABcAGAAAAAEAPgAoAAEAEQAAACwAAgABAAAAAgmtAAAAAgAVAAAABgABAAAAHwAWAAAADAABAAAAAgAXABgAAAABAD8AQAACABsAAAAEAAEAHQARAAAALAABAAEAAAACAbAAAAACABUAAAAGAAEAAAAgABYAAAAMAAEAAAACABcAGAAAAAEAQQBCAAIAGwAAAAQAAQAdABEAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAACEAFgAAAAwAAQAAAAIAFwAYAAAAAQBDADMAAQARAAAANgABAAIAAAACAbAAAAACABUAAAAGAAEAAAAiABYAAAAWAAIAAAACABcAGAAAAAAAAgAZADQAAQABAEQARQABABEAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAACMAFgAAAAwAAQAAAAIAFwAYAAAAAQBGAB8AAQARAAAALAABAAEAAAACA6wAAAACABUAAAAGAAEAAAAkABYAAAAMAAEAAAACABcAGAAAAAwARwAzAAEAEQAAACwAAQABAAAAAgGwAAAAAgAVAAAABgABAAAAJQAWAAAADAABAAAAAgAZADQAAAAJAEgASQACABsAAAAEAAEAHQARAAAALAABAAEAAAACAbAAAAACABUAAAAGAAEAAAAmABYAAAAMAAEAAAACABkASgAAAAEASwBMAAEAEQAAADUAAAACAAAAAbEAAAACABUAAAAGAAEAAAAnABYAAAAWAAIAAAABABcAGAAAAAAAAQAZAAoAAQAJAE0ATgABABEAAAArAAAAAQAAAAGxAAAAAgAVAAAABgABAAAAKAAWAAAADAABAAAAAQAZAE8AAAAJAFAATAABABEAAAArAAAAAQAAAAGxAAAAAgAVAAAABgABAAAAKQAWAAAADAABAAAAAQAZAAoAAAABAFEATAABABEAAAA1AAAAAgAAAAGxAAAAAgAVAAAABgABAAAAKgAWAAAAFgACAAAAAQAXABgAAAAAAAEAGQAKAAEAAQBSAEwAAQARAAAANQAAAAIAAAABsQAAAAIAFQAAAAYAAQAAACsAFgAAABYAAgAAAAEAFwAYAAAAAAABABkACgABAAEAUwBMAAEAEQAAADUAAAACAAAAAbEAAAACABUAAAAGAAEAAAAsABYAAAAWAAIAAAABABcAGAAAAAAAAQAZAAoAAQAJAFQAVQABABEAAAArAAAAAQAAAAGxAAAAAgAVAAAABgABAAAALQAWAAAADAABAAAAAQAZAFYAAAABAFcAWAABABEAAAA1AAAAAwAAAAGxAAAAAgAVAAAABgABAAAALgAWAAAAFgACAAAAAQAXABgAAAAAAAEAGQAIAAEAAQBZAFoAAQARAAAAPwAAAAMAAAABsQAAAAIAFQAAAAYAAQAAAC8AFgAAACAAAwAAAAEAFwAYAAAAAAABABkANAABAAAAAQA3ADQAAgABAFsATAABABEAAAA1AAAAAgAAAAGxAAAAAgAVAAAABgABAAAAMAAWAAAAFgACAAAAAQAXABgAAAAAAAEAGQAKAAEAAQBcACMAAQARAAAALAABAAEAAAACAbAAAAACABUAAAAGAAEAAAAxABYAAAAMAAEAAAACABcAGAAAAAEAXQAAAAIAXlBLAwQKAAAAAAA8Q7oykWw1iZkBAACZAQAAGQAAAGphdmEvbmV0L1VSTERlY29kZXIuY2xhc3PK/rq+AAAALgAUAQATamF2YS9uZXQvVVJMRGVjb2RlcgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAFAAYKAAQACAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABVMamF2YS9uZXQvVVJMRGVjb2RlcjsBAAZkZWNvZGUBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAPVVJMRGVjb2Rlci5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAAJAA4ADwABAAcAAAAsAAEAAQAAAAIBsAAAAAIACgAAAAYAAQAAAAsACwAAAAwAAQAAAAIAEAARAAAAAQASAAAAAgATUEsDBAoAAAAAADxDujLWG6hjmQEAAJkBAAAZAAAAamF2YS9uZXQvVVJMRW5jb2Rlci5jbGFzc8r+ur4AAAAuABQBABNqYXZhL25ldC9VUkxFbmNvZGVyBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABmVuY29kZQEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAY8aW5pdD4BAAMoKVYMAAwADQoABAAOAQAEdGhpcwEAFUxqYXZhL25ldC9VUkxFbmNvZGVyOwEAClNvdXJjZUZpbGUBAA9VUkxFbmNvZGVyLmphdmEAIQACAAQAAAAAAAIACQAFAAYAAQAHAAAALAABAAEAAAACAbAAAAACAAgAAAAGAAEAAAAKAAkAAAAMAAEAAAACAAoACwAAAAIADAANAAEABwAAAC8AAQABAAAABSq3AA+xAAAAAgAIAAAABgABAAAACwAJAAAADAABAAAABQAQABEAAAABABIAAAACABNQSwMECgAAAAAAPEO6MmOGBiKcBgAAnAYAAB8AAABqYXZhL25ldC9VUkxTdHJlYW1IYW5kbGVyLmNsYXNzyv66vgAAAC4AMQEAGWphdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXIHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAbTGphdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXI7AQAOb3BlbkNvbm5lY3Rpb24BACgoTGphdmEvbmV0L1VSTDspTGphdmEvbmV0L1VSTENvbm5lY3Rpb247AQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HABEBAAhwYXJzZVVSTAEAJShMamF2YS9uZXQvVVJMO0xqYXZhL2xhbmcvU3RyaW5nO0lJKVYBAAR2YXIwAQAOTGphdmEvbmV0L1VSTDsBAAR2YXIxAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMgEAAUkBAAR2YXIzAQAGc2V0VVJMAQCQKExqYXZhL25ldC9VUkw7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7SUxqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyNAEABHZhcjUBAAR2YXI2AQAEdmFyNwEABHZhcjgBAA50b0V4dGVybmFsRm9ybQEAIihM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b247AQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEALyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOylWAQAEdmFyMQEAGkxqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247AQANZ2V0UGVybWlzc2lvbgEAHCgpTGphdmEvc2VjdXJpdHkvUGVybWlzc2lvbjsBAApTb3VyY2VGaWxlAQAbQWNjZXNzQ29udHJvbEV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAADAAEABQAGAAEABwAAADkAAQACAAAABSq3AAqxAAAAAgALAAAABgABAAAACgAMAAAAFgACAAAABQANAA4AAAAAAAUADwAQAAEAAQAFABEAAQAHAAAAQwABAAMAAAAFKrcACrEAAAACAAsAAAAGAAEAAAALAAwAAAAgAAMAAAAFAA0ADgAAAAAABQAPABAAAQAAAAUAEgATAAIAAQAUABUAAQAHAAAALAABAAEAAAACAbAAAAACAAsAAAAGAAEAAAAMAAwAAAAMAAEAAAACAA0ADgAAAAEAFgAAAAIAF1BLAwQKAAAAAAA8Q7oyjG7emmIFAABiBQAAJAAAAGphdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbGxlci5jbGFzc8r+ur4AAAAuACQBAB5qYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xsZXIHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAPY2hlY2tQZXJtaXNzaW9uAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVYBAApFeGNlcHRpb25zAQAkamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9sRXhjZXB0aW9uBwAIAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHZhcjABABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEACmdldENvbnRleHQBACYoKUxqYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xDb250ZXh0OwEADGRvUHJpdmlsZWdlZAEANChMamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uOylMamF2YS9sYW5nL09iamVjdDsBACBMamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uOwEAWChMamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uO0xqYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xDb250ZXh0OylMamF2YS9sYW5nL09iamVjdDsBAAR2YXIxAQAkTGphdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbENvbnRleHQ7AQA9KExqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb247KUxqYXZhL2xhbmcvT2JqZWN0OwEAJ2phdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbkV4Y2VwdGlvbgcAGAEAKUxqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb247AQBhKExqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb247TGphdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbENvbnRleHQ7KUxqYXZhL2xhbmcvT2JqZWN0OwEABjxpbml0PgEAAygpVgwAHAAdCgAEAB4BAAR0aGlzAQAgTGphdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbGxlcjsBAApTb3VyY2VGaWxlAQAVQWNjZXNzQ29udHJvbGxlci5qYXZhADEAAgAEAAAAAAAHAAkABQAGAAIABwAAAAQAAQAJAAoAAAArAAAAAQAAAAGxAAAAAgALAAAABgABAAAACgAMAAAADAABAAAAAQANAA4AAAAJAA8AEAABAAoAAAAiAAEAAAAAAAIBsAAAAAIACwAAAAYAAQAAAAsADAAAAAIAAAAJABEAEgABAAoAAAAsAAEAAQAAAAIBsAAAAAIACwAAAAYAAQAAAAwADAAAAAwAAQAAAAIADQATAAAACQARABQAAQAKAAAANgABAAIAAAACAbAAAAACAAsAAAAGAAEAAAANAAwAAAAWAAIAAAACAA0AEwAAAAAAAgAVABYAAQAJABEAFwACAAcAAAAEAAEAGQAKAAAALAABAAEAAAACAbAAAAACAAsAAAAGAAEAAAAOAAwAAAAMAAEAAAACAA0AGgAAAAkAEQAbAAIABwAAAAQAAQAZAAoAAAA2AAEAAgAAAAIBsAAAAAIACwAAAAYAAQAAAA8ADAAAABYAAgAAAAIADQAaAAAAAAACABUAFgABAAIAHAAdAAEACgAAAC8AAQABAAAABSq3AB+xAAAAAgALAAAABgABAAAAEAAMAAAADAABAAAABQAgACEAAAABACIAAAACACNQSwMECgAAAAAAPEO6Mu4yiZwPBAAADwQAACEAAABqYXZhL3NlY3VyaXR5L0FsbFBlcm1pc3Npb24uY2xhc3PK/rq+AAAALgAhAQAbamF2YS9zZWN1cml0eS9BbGxQZXJtaXNzaW9uBwABAQAYamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAFShMamF2YS9sYW5nL1N0cmluZzspVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAdTGphdmEvc2VjdXJpdHkvQWxsUGVybWlzc2lvbjsBACcoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEAEkxqYXZhL2xhbmcvT2JqZWN0OwEACmdldEFjdGlvbnMBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEACGhhc2hDb2RlAQADKClJAQAHaW1wbGllcwEAHShMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOylaAQAaTGphdmEvc2VjdXJpdHkvUGVybWlzc2lvbjsBABduZXdQZXJtaXNzaW9uQ29sbGVjdGlvbgEAJigpTGphdmEvc2VjdXJpdHkvUGVybWlzc2lvbkNvbGxlY3Rpb247AQAKU291cmNlRmlsZQEAEkFsbFBlcm1pc3Npb24uamF2YQAxAAIABAAAAAAABwABAAUABgABAAcAAAAwAAIAAQAAAAYqAbcACrEAAAACAAsAAAAGAAEAAAAKAAwAAAAMAAEAAAAGAA0ADgAAAAEABQAPAAEABwAAAEQAAgADAAAABioBtwAKsQAAAAIACwAAAAYAAQAAAAsADAAAACAAAwAAAAYADQAOAAAAAAAGABAAEQABAAAABgASABEAAgABABMAFAABAAcAAAA2AAEAAgAAAAIDrAAAAAIACwAAAAYA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AAwACwAAAAwAAQAAAAEAEgANAAAEAQATABQAAAQBABUABgAAAAEAFgAAAAIAF1BLAwQKAAAAAAA8Q7oyOf37s+8AAADvAAAAHQAAAGphdmEvc2VjdXJpdHkvUHJpbmNpcGFsLmNsYXNzyv66vgAAAC4ADgEAF2phdmEvc2VjdXJpdHkvUHJpbmNpcGFsBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEAB2dldE5hbWUBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEACGhhc2hDb2RlAQADKClJAQAIdG9TdHJpbmcBAApTb3VyY2VGaWxlAQAOUHJpbmNpcGFsLmphdmEGAQACAAQAAAAAAAQEAQAFAAYAAAQBAAcACAAABAEACQAKAAAEAQALAAgAAAABAAwAAAACAA1QSwMECgAAAAAAPEO6Mg115XykAAAApAAAACQAAABqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRBY3Rpb24uY2xhc3PK/rq+AAAALgAJAQAeamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkQWN0aW9uBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAA3J1bgEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEAFVByaXZpbGVnZWRBY3Rpb24uamF2YQYBAAIABAAAAAAAAQQBAAUABgAAAAEABwAAAAIACFBLAwQKAAAAAAA8Q7oyl26UFYUDAACFAwAALQAAAGphdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbkV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABwBACdqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRBY3Rpb25FeGNlcHRpb24HAAEBABNqYXZhL2xhbmcvRXhjZXB0aW9uBwADAQAGPGluaXQ+AQAYKExqYXZhL2xhbmcvRXhjZXB0aW9uOylWAQAEQ29kZQEAAygpVgwABQAICgAEAAkBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQApTGphdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbkV4Y2VwdGlvbjsBAAR2YXIwAQAVTGphdmEvbGFuZy9FeGNlcHRpb247AQAMZ2V0RXhjZXB0aW9uAQAXKClMamF2YS9sYW5nL0V4Y2VwdGlvbjsBAA9wcmludFN0YWNrVHJhY2UBABgoTGphdmEvaW8vUHJpbnRTdHJlYW07KVYBABVMamF2YS9pby9QcmludFN0cmVhbTsBABgoTGphdmEvaW8vUHJpbnRXcml0ZXI7KVYBABVMamF2YS9pby9QcmludFdyaXRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAHlByaXZpbGVnZWRBY3Rpb25FeGNlcHRpb24uamF2YQAhAAIABAAAAAAABgABAAUABgABAAcAAAA5AAEAAgAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAABYAAgAAAAUADQAOAAAAAAAFAA8AEAABAAEAEQASAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAACwAMAAAADAABAAAAAgANAA4AAAABABMACAABAAcAAAArAAAAAQAAAAGxAAAAAgALAAAABgABAAAADAAMAAAADAABAAAAAQANAA4AAAABABMAFAABAAcAAAA1AAAAAgAAAAGxAAAAAgALAAAABgABAAAADQAMAAAAFgACAAAAAQANAA4AAAAAAAEADwAVAAEAAQATABYAAQAHAAAANQAAAAIAAAABsQAAAAIACwAAAAYAAQAAAA4ADAAAABYAAgAAAAEADQAOAAAAAAABAA8AFwABAAEAGAAZAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAADwAMAAAADAABAAAAAgANAA4AAAABABoAAAACABtQSwMECgAAAAAAPEO6MuLshXTmAAAA5gAAAC0AAABqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRFeGNlcHRpb25BY3Rpb24uY2xhc3PK/rq+AAAALgAMAQAnamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkRXhjZXB0aW9uQWN0aW9uBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAA3J1bgEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAKRXhjZXB0aW9ucwEAE2phdmEvbGFuZy9FeGNlcHRpb24HAAgBAApTb3VyY2VGaWxlAQAeUHJpdmlsZWdlZEV4Y2VwdGlvbkFjdGlvbi5qYXZhBgEAAgAEAAAAAAABBAEABQAGAAEABwAAAAQAAQAJAAEACgAAAAIAC1BLAwQKAAAAAAA8Q7oysw+nT5sDAACbAwAAJAAAAGphdmEvc2VjdXJpdHkvUHJvdGVjdGlvbkRvbWFpbi5jbGFzc8r+ur4AAAAuAB4BAB5qYXZhL3NlY3VyaXR5L1Byb3RlY3Rpb25Eb21haW4HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQBBKExqYXZhL3NlY3VyaXR5L0NvZGVTb3VyY2U7TGphdmEvc2VjdXJpdHkvUGVybWlzc2lvbkNvbGxlY3Rpb247KVYBAARDb2RlAQADKClWDAAFAAgKAAQACQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACBMamF2YS9zZWN1cml0eS9Qcm90ZWN0aW9uRG9tYWluOwEABHZhcjABABpMamF2YS9zZWN1cml0eS9Db2RlU291cmNlOwEABHZhcjEBACRMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbjsBAA1nZXRDb2RlU291cmNlAQAcKClMamF2YS9zZWN1cml0eS9Db2RlU291cmNlOwEADmdldFBlcm1pc3Npb25zAQAmKClMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbjsBAAdpbXBsaWVzAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVoBABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAVUHJvdGVjdGlvbkRvbWFpbi5qYXZhACEAAgAEAAAAAAAFAAEABQAGAAEABwAAAEMAAQADAAAABSq3AAqxAAAAAgALAAAABgABAAAACgAMAAAAIAADAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACABEAEwAUAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAACwAMAAAADAABAAAAAgANAA4AAAARABUAFgABAAcAAAAsAAEAAQAAAAIBsAAAAAIACwAAAAYAAQAAAAwADAAAAAwAAQAAAAIADQAOAAAAAQAXABgAAQAHAAAANgABAAIAAAACA6wAAAACAAsAAAAGAAEAAAANAAwAAAAWAAIAAAACAA0ADgAAAAAAAgAPABkAAQABABoAGwABAAcAAAAsAAEAAQAAAAIBsAAAAAIACwAAAAYAAQAAAA4ADAAAAAwAAQAAAAIADQAOAAAAAQAcAAAAAgAdUEsDBAoAAAAAADxDujKSTrdJJAIAACQCAAAcAAAAamF2YS9zZWN1cml0eS9TZWN1cml0eS5jbGFzc8r+ur4AAAAuABcBABZqYXZhL3NlY3VyaXR5L1NlY3VyaXR5BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAC2dldFByb3BlcnR5AQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAC3NldFByb3BlcnR5AQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMQEABjxpbml0PgEAAygpVgwADwAQCgAEABEBAAR0aGlzAQAYTGphdmEvc2VjdXJpdHkvU2VjdXJpdHk7AQAKU291cmNlRmlsZQEADVNlY3VyaXR5LmphdmEAMQACAAQAAAAAAAMACQAFAAYAAQAHAAAALAABAAEAAAACAbAAAAACAAgAAAAGAAEAAAAKAAkAAAAMAAEAAAACAAoACwAAAAkADAANAAEABwAAADUAAAACAAAAAbEAAAACAAgAAAAGAAEAAAALAAkAAAAWAAIAAAABAAoACwAAAAAAAQAOAAsAAQACAA8AEAABAAcAAAAvAAEAAQAAAAUqtwASsQAAAAIACAAAAAYAAQAAAAwACQAAAAwAAQAAAAUAEwAUAAAAAQAVAAAAAgAWUEsDBAoAAAAAADxDujJUvSaN/gEAAP4BAAAmAAAAamF2YS9zZWN1cml0eS9TZWN1cml0eVBlcm1pc3Npb24uY2xhc3PK/rq+AAAALgAUAQAgamF2YS9zZWN1cml0eS9TZWN1cml0eVBlcm1pc3Npb24HAAEBAB1qYXZhL3NlY3VyaXR5L0Jhc2ljUGVybWlzc2lvbgcAAwEABjxpbml0PgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABENvZGUBACcoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYMAAUACAoABAAJAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAIkxqYXZhL3NlY3VyaXR5L1NlY3VyaXR5UGVybWlzc2lvbjsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEAClNvdXJjZUZpbGUBABdTZWN1cml0eVBlcm1pc3Npb24uamF2YQAxAAIABAAAAAAAAgABAAUABgABAAcAAAA7AAMAAgAAAAcqAQG3AAqxAAAAAgALAAAABgABAAAACgAMAAAAFgACAAAABwANAA4AAAAAAAcADwAQAAEAAQAFAAgAAQAHAAAARQADAAMAAAAHKgEBtwAKsQAAAAIACwAAAAYAAQAAAAsADAAAACAAAwAAAAcADQAOAAAAAAAHAA8AEAABAAAABwARABAAAgABABIAAAACABNQSwMECgAAAAAAPEO6Mj4Fn1m6BAAAugQAACgAAABqYXZhL3NlY3VyaXR5L1VucmVzb2x2ZWRQZXJtaXNzaW9uLmNsYXNzyv66vgAAAC4AJgEAImphdmEvc2VjdXJpdHkvVW5yZXNvbHZlZFBlcm1pc3Npb24HAAEBABhqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb24HAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEABjxpbml0PgEAWihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztbTGphdmEvc2VjdXJpdHkvY2VydC9DZXJ0aWZpY2F0ZTspVgEABENvZGUBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYMAAcACgoABAALAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAJExqYXZhL3NlY3VyaXR5L1VucmVzb2x2ZWRQZXJtaXNzaW9uOwEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAAR2YXIxAQAEdmFyMgEABHZhcjMBACFbTGphdmEvc2VjdXJpdHkvY2VydC9DZXJ0aWZpY2F0ZTsBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBABJMamF2YS9sYW5nL09iamVjdDsBAAdpbXBsaWVzAQAdKExqYXZhL3NlY3VyaXR5L1Blcm1pc3Npb247KVoBABpMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uOwEAF25ld1Blcm1pc3Npb25Db2xsZWN0aW9uAQAmKClMamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbjsBAApnZXRBY3Rpb25zAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAhoYXNoQ29kZQEAAygpSQEACHRvU3RyaW5nAQAKU291cmNlRmlsZQEAGVVucmVzb2x2ZWRQZXJtaXNzaW9uLmphdmEAMQACAAQAAQAGAAAABwABAAcACAABAAkAAABYAAIABQAAAAYqAbcADLEAAAACAA0AAAAGAAEAAAAKAA4AAAA0AAUAAAAGAA8AEAAAAAAABgARABIAAQAAAAYAEwASAAIAAAAGABQAEgADAAAABgAVABYABAABABcAGAABAAkAAAA2AAEAAgAAAAIDrAAAAAIADQAAAAYAAQAAAAsADgAAABYAAgAAAAIADwAQAAAAAAACABEAGQABAAEAGgAbAAEACQAAADYAAQACAAAAAgOsAAAAAgANAAAABgABAAAADAAOAAAAFgACAAAAAgAPABAAAAAAAAIAEQAcAAEAAQAdAB4AAQAJAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAANAA4AAAAMAAEAAAACAA8AEAAAAAEAHwAgAAEACQAAACwAAQABAAAAAgGwAAAAAgANAAAABgABAAAADgAOAAAADAABAAAAAgAPABAAAAABACEAIgABAAkAAAAsAAEAAQAAAAIDrAAAAAIADQAAAAYAAQAAAA8ADgAAAAwAAQAAAAIADwAQAAAAAQAjACAAAQAJAAAALAABAAEAAAACAbAAAAACAA0AAAAGAAEAAAAQAA4AAAAMAAEAAAACAA8AEAAAAAEAJAAAAAIAJVBLAwQKAAAAAAA8Q7oyAAAAAAAAAAAAAAAAEwAAAGphdmEvc2VjdXJpdHkvY2VydC9QSwMECgAAAAAAPEO6Mg68AYuCAQAAggEAACQAAABqYXZhL3NlY3VyaXR5L2NlcnQvQ2VydGlmaWNhdGUuY2xhc3PK/rq+AAAALgAVAQAeamF2YS9zZWN1cml0eS9jZXJ0L0NlcnRpZmljYXRlBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAGPGluaXQ+AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEQ29kZQEAAygpVgwABwAKCgAEAAsBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAgTGphdmEvc2VjdXJpdHkvY2VydC9DZXJ0aWZpY2F0ZTsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAEENlcnRpZmljYXRlLmphdmEEIQACAAQAAQAGAAAAAQAEAAcACAABAAkAAAA5AAEAAgAAAAUqtwAMsQAAAAIADQAAAAYAAQAAAAoADgAAABYAAgAAAAUADwAQAAAAAAAFABEAEgABAAEAEwAAAAIAFFBLAwQKAAAAAAA8Q7oyAAAAAAAAAAAAAAAACgAAAGphdmEvdXRpbC9QSwMECgAAAAAAPEO6MmOMm0feBQAA3gUAACIAAABqYXZhL3V0aWwvQWJzdHJhY3RDb2xsZWN0aW9uLmNsYXNzyv66vgAAAC4AKwEAHGphdmEvdXRpbC9BYnN0cmFjdENvbGxlY3Rpb24HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAUamF2YS91dGlsL0NvbGxlY3Rpb24HAAUBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAHAAgKAAQACgEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB5MamF2YS91dGlsL0Fic3RyYWN0Q29sbGVjdGlvbjsBAANhZGQBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAAR2YXIwAQASTGphdmEvbGFuZy9PYmplY3Q7AQAGYWRkQWxsAQAZKExqYXZhL3V0aWwvQ29sbGVjdGlvbjspWgEAFkxqYXZhL3V0aWwvQ29sbGVjdGlvbjsBAAVjbGVhcgEACGNvbnRhaW5zAQALY29udGFpbnNBbGwBAAdpc0VtcHR5AQADKClaAQAIaXRlcmF0b3IBABYo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KElMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAHc3ViTGlzdAEAFChJSSlMamF2YS91dGlsL0xpc3Q7AQAKU291cmNlRmlsZQEAEUFic3RyYWN0TGlzdC5qYXZhBCEAAgAEAAEABgABAAQABwAIAAAAEQAEAAkACgABAAsAAAAvAAEAAQAAAAUqtwANsQAAAAIADgAAAAYAAQAAAAoADwAAAAwAAQAAAAUAEAARAAAAAQASABMAAQALAAAAPwAAAAMAAAABsQAAAAIADgAAAAYAAQAAAAsADwAAACAAAwAAAAEAEAARAAAAAAABABQACAABAAAAAQAVABYAAgABABIAFwABAAsAAAA2AAEAAgAAAAIDrAAAAAIADgAAAAYAAQAAAAwADwAAABYAAgAAAAIAEAARAAAAAAACABQAFgABAAEAGAAZAAEACwAAAEAAAQADAAAAAgOsAAAAAgAOAAAABgABAAAADQAPAAAAIAADAAAAAgAQABEAAAAAAAIAFAAIAAEAAAACABUAGgACAAEAGwAKAAEACwAAACsAAAABAAAAAbEAAAACAA4AAAAGAAEAAAAOAA8AAAAMAAEAAAABABAAEQAAAAEAHAAXAAEACwAAADYAAQACAAAAAgOsAAAAAgAOAAAABgABAAAADwAPAAAAFgACAAAAAgAQABEAAAAAAAIAFAAWAAEEAQAdAB4AAAABAB8AIAABAAsAAAAsAAEAAQAAAAIDrAAAAAIADgAAAAYAAQAAABEADwAAAAwAAQAAAAIAEAARAAAAAQAhACIAAQALAAAANgABAAIAAAACA6wAAAACAA4AAAAGAAEAAAASAA8AAAAWAAIAAAACABAAEQAAAAAAAgAUABYAAQABACMAJAABAAsAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAABMADwAAAAwAAQAAAAIAEAARAAAAAQAlACIAAQALAAAANgABAAIAAAACA6wAAAACAA4AAAAGAAEAAAAUAA8AAAAWAAIAAAACABAAEQAAAAAAAgAUABYAAQABACYAJwABAAsAAAAsAAEAAQAAAAIBsAAAAAIADgAAAAYAAQAAABUADwAAAAwAAQAAAAIAEAARAAAAAQAmACgAAQALAAAANgABAAIAAAACAbAAAAACAA4AAAAGAAEAAAAWAA8AAAAW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EAAAAAYAAQAAABMAEQAAABYAAgAAAAIAEgATAAAAAAACABUAHAABAAEAJQAUAAEADQAAADUAAAACAAAAAbEAAAACABAAAAAGAAEAAAAUABEAAAAWAAIAAAABABIAEwAAAAAAAQAVABYAAQABACYAJwABAA0AAAA2AAEAAgAAAAIBsAAAAAIAEAAAAAYAAQAAABUAEQAAABYAAgAAAAIAEgATAAAAAAACABUAFgABAAEAKAApAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAFgARAAAAFgACAAAAAgASABMAAAAAAAIAFQAcAAEAAQAqACsAAQANAAAALAABAAEAAAACA6wAAAACABAAAAAGAAEAAAAXABEAAAAMAAEAAAACABIAEwAAAAEALAApAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAGAARAAAAFgACAAAAAgASABMAAAAAAAIAFQAcAAEAAQAtACcAAQANAAAANgABAAIAAAACAbAAAAACABAAAAAGAAEAAAAZABEAAAAWAAIAAAACABIAEwAAAAAAAgAVABYAAQAEAC4ALwABAA0AAAA/AAAAAwAAAAGxAAAAAgAQAAAABgABAAAAGgARAAAAIAADAAAAAQASABMAAAAAAAEAFQAWAAEAAAABABsAFgACAAEAMAAxAAEADQAAAEAAAQADAAAAAgGwAAAAAgAQAAAABgABAAAAGwARAAAAIAADAAAAAgASABMAAAAAAAIAFQAWAAEAAAACABsAHAACAAEAMgAzAAEADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAAHAARAAAADAABAAAAAgASABMAAAABADQANQABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAAB0AEQAAAAwAAQAAAAIAEgATAAAAAQA0ADYAAQANAAAANgABAAIAAAACAbAAAAACABAAAAAGAAEAAAAeABEAAAAWAAIAAAACABIAEwAAAAAAAgAVADcAAQABADgADAABAA0AAAArAAAAAQAAAAGxAAAAAgAQAAAABgABAAAAHwARAAAADAABAAAAAQASABMAAAABADkAAAACADpQSwMECgAAAAAAPEO6Mq7gUbp3FAAAdxQAABYAAABqYXZhL3V0aWwvQXJyYXlzLmNsYXNzyv66vgAA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AAcAAABAAAEAAwAAAAIDrAAAAAIACAAAAAYAAQAAABIACQAAACAAAwAAAAIACgALAAAAAAACAA8AIQABAAAAAgAjACQAAgAJAAwAJQABAAcAAAA2AAEAAgAAAAIDrAAAAAIACAAAAAYAAQAAABMACQAAABYAAgAAAAIACgAmAAAAAAACAA8AJwABAAkAKAApAAEABwAAADUAAAACAAAAAbEAAAACAAgAAAAGAAEAAAAUAAkAAAAWAAIAAAABAAoADgAAAAAAAQAPABAAAQAJACgAKgABAAcAAABJAAAABAAAAAGxAAAAAgAIAAAABgABAAAAFQAJAAAAKgAEAAAAAQAKAA4AAAAAAAEADwAcAAEAAAABACMAHAACAAAAAQArABAAAwAJACgALAABAAcAAAA1AAAAAgAAAAGxAAAAAgAIAAAABgABAAAAFgAJAAAAFgACAAAAAQAKACYAAAAAAAEADwAnAAEACQAoAC0AAQAHAAAASQAAAAQAAAABsQAAAAIACAAAAAYAAQAAABcACQAAACoABAAAAAEACgAmAAAAAAABAA8AHAABAAAAAQAjABwAAgAAAAEAKwAnAAMACQAoAC4AAQAHAAAANQAAAAIAAAABsQAAAAIACAAAAAYAAQAAABgACQAAABYAAgAAAAEACgASAAAAAAABAA8AEwABAAkAKAAvAAEABwAAAEkAAAAEAAAAAbEAAAACAAgAAAAGAAEAAAAZAAkAAAAqAAQAAAABAAoAEgAAAAAAAQAPABwAAQAAAAEAIwAcAAIAAAABACsAEwADAAkAKAAwAAEABwAAADUAAAACAAAAAbEAAAACAAgAAAAGAAEAAAAaAAkAAAAWAAIAAAABAAoAGwAAAAAAAQAPABwAAQAJACgAMQABAAcAAABJAAAABAAAAAGxAAAAAgAIAAAABgABAAAAGwAJAAAAKgAEAAAAAQAKABsAAAAAAAEADwAcAAEAAAABACMAHAACAAAAAQArABwAAwAJACgAMgABAAcAAAA1AAAAAwAAAAGxAAAAAgAIAAAABgABAAAAHAAJAAAAFgACAAAAAQAKAB4AAAAAAAEADwAfAAEACQAoADMAAQAHAAAASQAAAAUAAAABsQAAAAIACAAAAAYAAQAAAB0ACQAAACoABAAAAAEACgAeAAAAAAABAA8AHAABAAAAAQAjABwAAgAA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RmllbGRzU2V0AQABWgEABmZpZWxkcwEAAltJAQAFaXNTZXQBAAJbWgEACWlzVGltZVNldAEABHRpbWUBAAFKAQAHSkFOVUFSWQEAAUkBAA1Db25zdGFudFZhbHVlAwAAAAABAAhGRUJSVUFSWQMAAAABAQAFTUFSQ0gDAAAAAgEABUFQUklMAwAAAAMBAANNQVkDAAAABAEABEpVTkUDAAAABQEABEpVTFkDAAAABgEABkFVR1VTVAMAAAAHAQAJU0VQVEVNQkVSAwAAAAgBAAdPQ1RPQkVSAwAAAAkBAAhOT1ZFTUJFUgMAAAAKAQAIREVDRU1CRVIDAAAACwEAClVOREVDSU1CRVIDAAAADAEABlNVTkRBWQEABk1PTkRBWQEAB1RVRVNEQVkBAAlXRURORVNEQVkBAAhUSFVSU0RBWQEABkZSSURBWQEACFNBVFVSREFZAQADRVJBAQAEWUVBUgEABU1PTlRIAQAMV0VFS19PRl9ZRUFSAQANV0VFS19PRl9NT05USAEABERBVEUBAAxEQVlfT0ZfTU9OVEgBAAtEQVlfT0ZfWUVBUgEAC0RBWV9PRl9XRUVLAQAUREFZX09GX1dFRUtfSU5fTU9OVEgBAAVBTV9QTQEABEhPVVIBAAtIT1VSX09GX0RBWQEABk1JTlVURQEABlNFQ09ORAMAAAANAQALTUlMTElTRUNPTkQDAAAADgEAC1pPTkVfT0ZGU0VUAwAAAA8BAApEU1RfT0ZGU0VUAwAAABABAAtGSUVMRF9DT1VOVAMAAAARAQACQU0BAAJQTQEABjxpbml0PgEAAygpVgEABENvZGUMAE8AUAoABABSAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAFExqYXZhL3V0aWwvQ2FsZW5kYXI7AQADYWRkAQAFKElJKVYBAAVhZnRlcgEAFShMamF2YS9sYW5nL09iamVjdDspWgEABHZhcjABABJMamF2YS9sYW5nL09iamVjdDsBAAZiZWZvcmUBAAVjbGVhcgEABChJKVYBAAVjbG9uZQEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAIY29tcGxldGUBAA1jb21wdXRlRmllbGRzAQALY29tcHV0ZVRpbWUBAAZlcXVhbHMBAANnZXQBAAQoSSlJAQAR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AB0BABRqYXZhL3V0aWwvQ29sbGVjdGlvbgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAANhZGQBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAAZhZGRBbGwBABkoTGphdmEvdXRpbC9Db2xsZWN0aW9uOylaAQAFY2xlYXIBAAMoKVYBAAhjb250YWlucwEAC2NvbnRhaW5zQWxsAQAGZXF1YWxzAQAIaGFzaENvZGUBAAMoKUkBAAdpc0VtcHR5AQADKClaAQAIaXRlcmF0b3IBABYoKUxqYXZhL3V0aWwvSXRlcmF0b3I7AQAGcmVtb3ZlAQAJcmVtb3ZlQWxsAQAJcmV0YWluQWxsAQAEc2l6ZQEAB3RvQXJyYXkBABUoKVtMamF2YS9sYW5nL09iamVjdDsBACgoW0xqYXZhL2xhbmcvT2JqZWN0OylbTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEAD0NvbGxlY3Rpb24uamF2YQYBAAIABAAAAAAADwQBAAUABgAABAEABwAIAAAEAQAJAAoAAAQBAAsABgAABAEADAAIAAAEAQANAAYAAAQBAA4ADwAABAEAEAARAAAEAQASABMAAAQBABQABgAABAEAFQAIAAAEAQAWAAgAAAQBABcADwAABAEAGAAZAAAEAQAYABoAAAABABsAAAACABxQSwMECgAAAAAAPEO6Mmo/Fh0aDwAAGg8AABsAAABqYXZhL3V0aWwvQ29sbGVjdGlvbnMuY2xhc3PK/rq+AAAALgBWAQAVamF2YS91dGlsL0NvbGxlY3Rpb25zBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEACkVNUFRZX0xJU1QBABBMamF2YS91dGlsL0xpc3Q7AQAJRU1QVFlfU0VUAQAPTGphdmEvdXRpbC9TZXQ7AQAJRU1QVFlfTUFQAQAPTGphdmEvdXRpbC9NYXA7AQAIPGNsaW5pdD4BAAMoKVYBAARDb2RlDAAFAAYJAAIADgwABwAICQACABAMAAkACgkAAgASAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAMYmluYXJ5U2VhcmNoAQAlKExqYXZhL3V0aWwvTGlzdDtMamF2YS9sYW5nL09iamVjdDspSQEABHZhcjABAAR2YXIxAQASTGphdmEvbGFuZy9PYmplY3Q7AQA7KExqYXZhL3V0aWwvTGlzdDtMamF2YS9sYW5nL09iamVjdDtMamF2YS91dGlsL0NvbXBhcmF0b3I7KUkBAAR2YXIyAQAWTGphdmEvdXRpbC9Db21wYXJhdG9yOwEABGNvcHkBACMoTGphdmEvdXRpbC9MaXN0O0xqYXZhL3V0aWwvTGlzdDspVgEAC2VudW1lcmF0aW9uAQAvKExqYXZhL3V0aWwvQ29sbGVjdGlvbjspTGphdmEvdXRpbC9FbnVtZXJhdGlvbjsBABZMamF2YS91dGlsL0NvbGxlY3Rpb247AQAEZmlsbAEAJShMamF2YS91dGlsL0xpc3Q7TGphdmEvbGFuZy9PYmplY3Q7KVYBAANtYXgBACooTGphdmEvdXRpbC9Db2xsZWN0aW9uOylMamF2YS9sYW5nL09iamVjdDsBAEAoTGphdmEvdXRpbC9Db2xsZWN0aW9uO0xqYXZhL3V0aWwvQ29tcGFyYXRvcjspTGphdmEvbGFuZy9PYmplY3Q7AQADbWluAQAHbkNvcGllcwEAJShJTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL3V0aWwvTGlzdDsBAAFJAQAHcmV2ZXJzZQEAEyhMamF2YS91dGlsL0xpc3Q7KVYBAAxyZXZlcnNlT3JkZXIBABgoKUxqYXZhL3V0aWwvQ29tcGFyYXRvcjsBAAdzaHVmZmxlAQAlKExqYXZhL3V0aWwvTGlzdDtMamF2YS91dGlsL1JhbmRvbTspVgEAEkxqYXZhL3V0aWwvUmFuZG9tOwEACXNpbmdsZXRvbgEAIyhMamF2YS9sYW5nL09iamVjdDspTGphdmEvdXRpbC9TZXQ7AQANc2luZ2xldG9uTGlzdAEAJChMamF2YS9sYW5nL09iamVjdDspTGphdmEvdXRpbC9MaXN0OwEADHNpbmdsZXRvbk1hcAEANShMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL09iamVjdDspTGphdmEvdXRpbC9NYXA7AQAEc29ydAEAKShMamF2YS91dGlsL0xpc3Q7TGphdmEvdXRpbC9Db21wYXJhdG9yOylWAQAWc3luY2hyb25pemVkQ29sbGVjdGlvbgEALihMamF2YS91dGlsL0NvbGxlY3Rpb247KUxqYXZhL3V0aWwvQ29sbGVjdGlvbjsBABBzeW5jaHJvbml6ZWRMaXN0AQAiKExqYXZhL3V0aWwvTGlzdDspTGphdmEvdXRpbC9MaXN0OwEAD3N5bmNocm9uaXplZE1hcAEAIChMamF2YS91dGlsL01hcDspTGphdmEvdXRpbC9NYXA7AQAPc3luY2hyb25pemVkU2V0AQAgKExqYXZhL3V0aWwvU2V0OylMamF2YS91dGlsL1NldDsBABVzeW5jaHJvbml6ZWRTb3J0ZWRNYXABACwoTGphdmEvdXRpbC9Tb3J0ZWRNYXA7KUxqYXZhL3V0aWwvU29ydGVkTWFwOwEAFUxqYXZhL3V0aWwvU29ydGVkTWFwOwEAFXN5bmNocm9uaXplZFNvcnRlZFNldAEALChMamF2YS91dGlsL1NvcnRlZFNldDspTGphdmEvdXRpbC9Tb3J0ZWRTZXQ7AQAVTGphdmEvdXRpbC9Tb3J0ZWRTZXQ7AQAWdW5tb2RpZmlhYmxlQ29sbGVjdGlvbgEAEHVubW9kaWZpYWJsZUxpc3QBAA91bm1vZGlmaWFibGVNYXABAA91bm1vZGlmaWFibGVTZXQBABV1bm1vZGlmaWFibGVTb3J0ZWRNYXABABV1bm1vZGlmaWFibGVTb3J0ZWRTZXQBAAY8aW5pdD4MAE8ADAoABABQAQAEdGhpcwEAF0xqYXZhL3V0aWwvQ29sbGVjdGlvbnM7AQAKU291cmNlRmlsZQEAEENvbGxlY3Rpb25zLmphdmEAIQACAAQAAAADABkABQAGAAAAGQAHAAgAAAAZAAkACgAAACEACAALAAwAAQANAAAAOQABAAAAAAANAbMADwGzABEBswATsQAAAAIAFAAAABIABAAAACkABAAqAAgAKwAMAAkAFQAAAAIAAAAJABYAFwABAA0AAAA2AAEAAgAAAAIDrAAAAAIAFAAAAAYAAQAAAAoAFQAAABYAAgAAAAIAGAAGAAAAAAACABkAGgABAAkAFgAbAAEADQAAAEAAAQADAAAAAgOsAAAAAgAUAAAABgABAAAACwAVAAAAIAADAAAAAgAYAAYAAAAAAAIAGQAaAAEAAAACABwAHQACAAkAHgAfAAEADQAAADUAAAACAAAAAbEAAAACABQAAAAGAAEAAAAMABUAAAAWAAIAAAABABgABgAAAAAAAQAZAAYAAQAJ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YXNzyv66vgAAAC4ACwEAFGphdmEvdXRpbC9Db21wYXJhdG9yBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAB2NvbXBhcmUBACcoTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9PYmplY3Q7KUkBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAApTb3VyY2VGaWxlAQAPQ29tcGFyYXRvci5qYXZhBgEAAgAEAAAAAAACBAEABQAGAAAEAQAHAAgAAAABAAkAAAACAApQSwMECgAAAAAAPEO6MjRSSWnXAQAA1wEAAC8AAABqYXZhL3V0aWwvQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBAClqYXZhL3V0aWwvQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbgcAAQEAGmphdmEvbGFuZy9SdW50aW1lRXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQArTGphdmEvdXRpbC9Db25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAkQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA8Q7oyMlqaX9YEAADWBAAAFAAAAGphdmEvdXRpbC9EYXRlLmNsYXNzyv66vgAAAC4AKQEADmphdmEvdXRpbC9EYXRlBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQATamF2YS9s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CwEAFWphdmEvdXRpbC9FbnVtZXJhdGlvbgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAA9oYXNNb3JlRWxlbWVudHMBAAMoKVoBAAtuZXh0RWxlbWVudAEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEAEEVudW1lcmF0aW9uLmphdmEGAQACAAQAAAAAAAIEAQAFAAYAAAQBAAcACAAAAAEACQAAAAIAClBLAwQKAAAAAAA8Q7oyOSNxanUAAAB1AAAAHQAAAGphdmEvdXRpbC9FdmVudExpc3RlbmVyLmNsYXNzyv66vgAAAC4ABwEAF2phdmEvdXRpbC9FdmVudExpc3RlbmVyBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAClNvdXJjZUZpbGUBABJFdmVudExpc3RlbmVyLmphdmEGAQACAAQAAAAAAAAAAQAFAAAAAgAGUEsDBAoAAAAAADxDujLKgSRCOgIAADoCAAAbAAAAamF2YS91dGlsL0V2ZW50T2JqZWN0LmNsYXNzyv66vgAAAC4AGgEAFWphdmEvdXRpbC9FdmVudE9iamVjdAcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEABnNvdXJjZQEAEkxqYXZhL2xhbmcvT2JqZWN0OwEABjxpbml0PgEAFShMamF2YS9sYW5nL09iamVjdDspVgEABENvZGUBAAMoKVYMAAkADAoABAANAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAF0xqYXZhL3V0aWwvRXZlbnRPYmplY3Q7AQAEdmFyMAEACWdldFNvdXJjZQEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABBFdmVudE9iamVjdC5qYXZhACEAAgAEAAEABgABAAQABwAIAAAAAwABAAkACgABAAsAAAA5AAEAAgAAAAUqtwAOsQAAAAIADwAAAAYAAQAAAAoAEAAAABYAAgAAAAUAEQASAAAAAAAFABMACAABAAEAFAAVAAEACwAAACwAAQABAAAAAgGwAAAAAgAPAAAABgABAAAACwAQAAAADAABAAAAAgARABIAAAABABYAFwABAAsAAAAsAAEAAQAAAAIBsAAAAAIADwAAAAYAAQAAAAwAEAAAAAwAAQAAAAIAEQASAAAAAQAYAAAAAgAZUEsDBAoAAAAAADxDujKegTwaEQcAABEHAAAhAAAAamF2YS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmNsYXNzyv66vgAAAC4ANAEAG2phdmEvdXRpbC9HcmVnb3JpYW5DYWxlbmRhcgcAAQEAEmphdmEvdXRpbC9DYWxlbmRhcgcAAwEAAkJDAQABSQEADUNvbnN0YW50VmFsdWUDAAAAAAEAAkFEAwAAAAEBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAALAAwKAAQADgEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB1MamF2YS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyOwEABihJSUkpVgEABHZhcjABAAR2YXIxAQAEdmFyMgEACChJSUlJSSlWAQAEdmFyMwEABHZhcjQBAAkoSUlJSUlJKVYBAAR2YXI1AQAXKExqYXZhL3V0aWwvVGltZVpvbmU7KVYBABRMamF2YS91dGlsL1RpbWVab25lOwEAA2FkZAEABShJSSlWAQANY29tcHV0ZUZpZWxkcwEAC2NvbXB1dGVUaW1lAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQASTGphdmEvbGFuZy9PYmplY3Q7AQASZ2V0R3JlZ29yaWFuQ2hhbmdlAQASKClMamF2YS91dGlsL0RhdGU7AQAIaGFzaENvZGUBAAMoKUkBAAppc0xlYXBZZWFyAQAEKEkpWgEABHJvbGwBAAUoSVopVgEAAVoBABJzZXRHcmVnb3JpYW5DaGFuZ2UBABMoTGphdmEvdXRpbC9EYXRlOylWAQAQTGphdmEvdXRpbC9EYXRlOwEAClNvdXJjZUZpbGUBABZHcmVnb3JpYW5DYWxlbmRhci5qYXZhACEAAgAEAAAAAgAZAAUABgABAAcAAAACAAgAGQAJAAYAAQAHAAAAAgAKAA8AAQALAAwAAQANAAAALwABAAEAAAAFKrcAD7EAAAACABAAAAAGAAEAAAAKABEAAAAMAAEAAAAFABIAEwAAAAEACwAUAAEADQAAAE0AAQAEAAAABSq3AA+xAAAAAgAQAAAABgABAAAACwARAAAAKgAEAAAABQASABMAAAAAAAUAFQAGAAEAAAAFABYABgACAAAABQAXAAYAAwABAAsAGAABAA0AAABhAAEABgAAAAUqtwAPsQAAAAIAEAAAAAYAAQAAAAwAEQAAAD4ABgAAAAUAEgATAAAAAAAFABUABgABAAAABQAWAAYAAgAAAAUAFwAGAAMAAAAFABkABgAEAAAABQAaAAYABQABAAsAGwABAA0AAABrAAEABwAAAAUqtwAPsQAAAAIAEAAAAAYAAQAAAA0AEQAAAEgABwAAAAUAEgATAAAAAAAFABUABgABAAAABQAWAAYAAgAAAAUAFwAGAAMAAAAFABkABgAEAAAABQAaAAYABQAAAAUAHAAGAAYAAQALAB0AAQANAAAAOQABAAIAAAAFKrcAD7EAAAACABAAAAAGAAEAAAAOABEAAAAWAAIAAAAFABIAEwAAAAAABQAVAB4AAQABAB8AIAABAA0AAAA/AAAAAwAAAAGxAAAAAgAQAAAABgABAAAADwARAAAAIAADAAAAAQASABMAAAAAAAEAFQAGAAEAAAABABYABgACAAQAIQAMAAEADQAAACsAAAABAAAAAbEAAAACABAAAAAGAAEAAAAQABEAAAAMAAEAAAABABIAEwAAAAQAIgAMAAEADQAAACsAAAABAAAAAbEAAAACABAAAAAGAAEAAAARABEAAAAMAAEAAAABABIAEwAAAAEAIwAkAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAEgARAAAAFgACAAAAAgASABMAAAAAAAIAFQAlAAEAEQAmACcAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAATABEAAAAMAAEAAAACABIAEwAAAAEAKAApAAEADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAAFAARAAAADAABAAAAAgASABMAAAABACoAKwABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAABUAEQAAABYAAgAAAAIAEgATAAAAAAACABUABgABAAEALAAgAAEADQAAAD8AAAADAAAAAbEAAAACABAAAAAGAAEAAAAWABEAAAAgAAMAAAABABIAEwAAAAAAAQAVAAYAAQAAAAEAFgAGAAIAAQAsAC0AAQANAAAAPwAAAAMAAAABsQAAAAIAEAAAAAYAAQAAABcAEQAAACAAAwAAAAEAEgATAAAAAAABABUABgABAAAAAQAWAC4AAgABAC8AMAABAA0AAAA1AAAAAgAAAAGxAAAAAgAQAAAABgABAAAAGAARAAAAFgACAAAAAQASABMAAAAAAAEAFQAxAAEAAQAyAAAAAgAzUEsDBAoAAAAAADxDujKTjO8oPwkAAD8JAAAZAAAAamF2YS91dGlsL0hhc2h0YWJsZS5jbGFzc8r+ur4AAAAuAD0BABNqYXZhL3V0aWwvSGFzaHRhYmxlBwABAQAUamF2YS91dGlsL0RpY3Rpb25hcnkHAAMBAA1qYXZhL3V0aWwvTWFwBwAFAQATamF2YS9sYW5nL0Nsb25lYWJsZQcABwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAJAQAGPGluaXQ+AQADKClWAQAEQ29kZQwACwAMCgAEAA4BAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAVTGphdmEvdXRpbC9IYXNodGFibGU7AQAEKEkpVgEABHZhcjABAAFJAQAFKElGKVYBAAR2YXIxAQABRgEAEihMamF2YS91dGlsL01hcDspVgEAD0xqYXZhL3V0aWwvTWFwOwEABWNsZWFyAQAFY2xvbmUBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEACGNvbnRhaW5zAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQASTGphdmEvbGFuZy9PYmplY3Q7AQALY29udGFpbnNLZXkBAA1jb250YWluc1ZhbHVlAQAIZWxlbWVudHMBABkoKUxqYXZhL3V0aWwvRW51bWVyYXRpb247AQAIZW50cnlTZXQBABEoKUxqYXZhL3V0aWwvU2V0OwEABmVxdWFscwEAA2dldAEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAIaGFzaENvZGUBAAMoKUkBAAdpc0VtcHR5AQADKClaAQAEa2V5cwEABmtleVNldAEAA3B1dAEAOChMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAGcHV0QWxsAQAGcmVoYXNoAQAGcmVtb3ZlAQAEc2l6ZQEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAZ2YWx1ZXMBABgoKUxqYXZhL3V0aWwvQ29sbGVjdGlvbjsBAApTb3VyY2VGaWxlAQAOSGFzaHRhYmxlLmphdmEAIQACAAQAAwAGAAgACgAAABgAAQALAAwAAQANAAAALwABAAEAAAAFKrcAD7EAAAACABAAAAAGAAEAAAAKABEAAAAMAAEAAAAFABIAEwAAAAEACwAUAAEADQAAADkAAQACAAAABSq3AA+xAAAAAgAQAAAABgABAAAACwARAAAAFgACAAAABQASABMAAAAAAAUAFQAWAAEAAQALABcAAQANAAAAQwABAAMAAAAFKrcAD7EAAAACABAAAAAGAAEAAAAMABEAAAAgAAMAAAAFABIAEwAAAAAABQAVABYAAQAAAAUAGAAZAAIAAQALABoAAQANAAAAOQABAAIAAAAFKrcAD7EAAAACABAAAAAGAAEAAAANABEAAAAWAAIAAAAFABIAEwAAAAAABQAVABsAAQABABwADAABAA0AAAArAAAAAQAAAAGxAAAAAgAQAAAABgABAAAADgARAAAADAABAAAAAQASABMAAAABAB0AHgABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAAA8AEQAAAAwAAQAAAAIAEgATAAAAAQAfACAAAQANAAAANgABAAIAAAACA6wAAAACABAAAAAGAAEAAAAQABEAAAAWAAIAAAACABIAEwAAAAAAAgAVACEAAQABACIAIAABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAABEAEQAAABYAAgAAAAIAEgATAAAAAAACABUAIQABAAEAIwAgAAEADQAAADYAAQACAAAAAgOsAAAAAgAQAAAABgABAAAAEgARAAAAFgACAAAAAgASABMAAAAAAAIAFQAhAAEAAQAkACUAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAATABEAAAAMAAEAAAACABIAEwAAAAEAJgAnAAEADQAAACwAAQABAAAAAgGwAAAAAgAQAAAABgABAAAAFAARAAAADAABAAAAAgASABMAAAABACgAIAABAA0AAAA2AAEAAgAAAAIDrAAAAAIAEAAAAAYAAQAAABUAEQAAABYAAgAAAAIAEgATAAAAAAACABUAIQABAAEAKQAqAAEADQAAADYAAQACAAAAAgGwAAAAAgAQAAAABgABAAAAFgARAAAAFgACAAAAAgASABMAAAAAAAIAFQAhAAEAAQArACwAAQANAAAALAABAAEAAAACA6wAAAACABAAAAAGAAEAAAAXABEAAAAMAAEAAAACABIAEwAAAAEALQAuAAEADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAAGAARAAAADAABAAAAAgASABMAAAABAC8AJQABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAABkAEQAAAAwAAQAAAAIAEgATAAAAAQAwACcAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAAaABEAAAAMAAEAAAACABIAEwAAAAEAMQAyAAEADQAAAEAAAQADAAAAAgGwAAAAAgAQAAAABgABAAAAGwARAAAAIAADAAAAAgASABMAAAAAAAIAFQAhAAEAAAACABgAIQACAAEAMwAaAAEADQAAADUAAAACAAAAAbEAAAACABAAAAAGAAEAAAAcABEAAAAWAAIAAAABABIAEwAAAAAAAQAVABsAAQAEADQADAABAA0AAAArAAAAAQAAAAGxAAAAAgAQAAAABgABAAAAHQARAAAADAABAAAAAQASABMAAAABADUAKgABAA0AAAA2AAEAAgAAAAIBsAAAAAIAEAAAAAYAAQAAAB4AEQAAABYAAgAAAAIAEgATAAAAAAACABUAIQABAAEANgAsAAEADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAAHwARAAAADAABAAAAAgASABMAAAABADcAOAABAA0AAAAsAAEAAQAAAAIBsAAAAAIAEAAAAAYAAQAAACAAEQAAAAwAAQAAAAIAEgATAAAAAQA5ADoAAQANAAAALAABAAEAAAACAbAAAAACABAAAAAGAAEAAAAhABEAAAAMAAEAAAACABIAEwAAAAEAOwAAAAIAPFBLAwQKAAAAAAA8Q7oyQqob28AAAADAAAAAGAAAAGphdmEvdXRpbC9JdGVyYXRvci5jbGFzc8r+ur4AAAAuAA0BABJqYXZhL3V0aWwvSXRlcmF0b3IHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAHaGFzTmV4dAEAAygpWgEABG5leHQBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEABnJlbW92ZQEAAygpVgEAClNvdXJjZUZpbGUBAA1JdGVyYXRvci5qYXZhBgEAAgAEAAAAAAADBAEABQAGAAAEAQAHAAgAAAQBAAkACgAAAAEACwAAAAIADFBLAwQKAAAAAAA8Q7oyFTIbcZMDAACTAwAAFAAAAGphdmEvdXRpbC9MaXN0LmNsYXNzyv66vgAAAC4ALQEADmphdmEvdXRpbC9MaXN0BwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAFGphdmEvdXRpbC9Db2xsZWN0aW9uBwAFAQADYWRkAQAWKElMamF2YS9sYW5nL09iamVjdDspVgEAFShMamF2YS9sYW5nL09iamVjdDspWgEABmFkZEFsbAEAGihJTGphdmEvdXRpbC9Db2xsZWN0aW9uOylaAQAZKExqYXZhL3V0aWwvQ29sbGVjdGlvbjspWgEABWNsZWFyAQADKClWAQAIY29udGFpbnMBAAtjb250YWluc0FsbAEABmVxdWFscwEAA2dldAEAFShJKUxqYXZhL2xhbmcvT2JqZWN0OwEACGhhc2hDb2RlAQADKClJAQAHaW5kZXhPZgEAFShMamF2YS9sYW5nL09iamVjdDspSQEAB2lzRW1wdHkBAAMoKVoBAAhpdGVyYXRvcgEAFigpTGphdmEvdXRpbC9JdGVyYXRvcjsBAAtsYXN0SW5kZXhPZgEADGxpc3RJdGVyYXRvcgEAGigpTGphdmEvdXRpbC9MaXN0SXRlcmF0b3I7AQAbKEkpTGphdmEvdXRpbC9MaXN0SXRlcmF0b3I7AQAGcmVtb3ZlAQAJcmVtb3ZlQWxsAQAJcmV0YWluQWxsAQADc2V0AQAnKElMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAEc2l6ZQEAB3N1Ykxpc3QBABQoSUkpTGphdmEvdXRpbC9MaXN0OwEAB3RvQXJyYXkBABUoKVtMamF2YS9sYW5nL09iamVjdDsBACgoW0xqYXZhL2xhbmcvT2JqZWN0OylbTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEACUxpc3QuamF2YQYBAAIABAABAAYAAAAZBAEABwAIAAAEAQAHAAkAAAQBAAoA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YmplY3QHAAMBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAAZnZXRLZXkBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEACGdldFZhbHVlAQAIaGFzaENvZGUBAAMoKUkBAAhzZXRWYWx1ZQEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAKU291cmNlRmlsZQEACE1hcC5qYXZhAQAMSW5uZXJDbGFzc2VzAQANamF2YS91dGlsL01hcAcAEQEABUVudHJ5BgEAAgAEAAAAAAAFBAEABQAGAAAEAQAHAAgAAAQBAAkACAAABAEACgALAAAEAQAMAA0AAAACAA4AAAACAA8AEAAAAAoAAQACABIAEwYJUEsDBAoAAAAAADxDujLkOFotaQIAAGkCAAATAAAAamF2YS91dGlsL01hcC5jbGFzc8r+ur4AAAAuACIBAA1qYXZhL3V0aWwvTWFwBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEABWNsZWFyAQADKClWAQALY29udGFpbnNLZXkBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAA1jb250YWluc1ZhbHVlAQAIZW50cnlTZXQBABEoKUxqYXZhL3V0aWwvU2V0OwEABmVxdWFscwEAA2dldAEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAIaGFzaENvZGUBAAMoKUkBAAdpc0VtcHR5AQADKClaAQAGa2V5U2V0AQADcHV0AQA4KExqYXZhL2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvT2JqZWN0OylMamF2YS9sYW5nL09iamVjdDsBAAZwdXRBbGwBABIoTGphdmEvdXRpbC9NYXA7KVYBAAZyZW1vdmUBAARzaXplAQAGdmFsdWVzAQAYKClMamF2YS91dGlsL0NvbGxlY3Rpb247AQAKU291cmNlRmlsZQEACE1hcC5qYXZhAQAMSW5uZXJDbGFzc2VzAQATamF2YS91dGlsL01hcCRFbnRyeQcAHwEABUVudHJ5BgEAAgAEAAAAAAAOBAEABQAGAAAEAQAHAAgAAAQBAAkACAAABAEACgALAAAEAQAMAAgAAAQBAA0ADgAABAEADwAQAAAEAQARABIAAAQBABMACwAABAEAFAAVAAAEAQAWABcAAAQBABgADgAABAEAGQAQAAAEAQAaABsAAAACABwAAAACAB0AHgAAAAoAAQAgAAIAIQYJUEsDBAoAAAAAADxDujJLjSDGbgIAAG4CAAAoAAAAamF2YS91dGlsL01pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABgBACJqYXZhL3V0aWwvTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uBwABAQAaamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24HAAMBAAY8aW5pdD4BADkoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQADKClWDAAFAAgKAAQACQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACRMamF2YS91dGlsL01pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEABHZhcjIBAAxnZXRDbGFzc05hbWUBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEABmdldEtleQEAClNvdXJjZUZpbGUBAB1NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24uamF2YQAhAAIABAAAAAAAAwABAAUABgABAAcAAABNAAEABAAAAAUqtwAKsQAAAAIACwAAAAYAAQAAAAoADAAAACoABAAAAAUADQAOAAAAAAAFAA8AEAABAAAABQARABAAAgAAAAUAEgAQAAMAAQATABQAAQAHAAAALAABAAEAAAACAbAAAAACAAsAAAAGAAEAAAALAAwAAAAMAAEAAAACAA0ADgAAAAEAFQAUAAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAADAAMAAAADAABAAAAAgANAA4AAAABABYAAAACABdQSwMECgAAAAAAPEO6Mi6UlsO8AQAAvAEAACYAAABqYXZhL3V0aWwvTm9TdWNoRWxlbWVudEV4Y2VwdGlvbi5jbGFzc8r+ur4AAAAuABMBACBqYXZhL3V0aWwvTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgcAAQEAGmphdmEvbGFuZy9SdW50aW1lRXhjZXB0aW9uBwADAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABQAGCgAEAAgBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAiTGphdmEvdXRpbC9Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAbTm9TdWNoRWxlbWVudEV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA8Q7oySJA/OOkEAADpBAAAGgAAAGphdmEvdXRpbC9Qcm9wZXJ0aWVzLmNsYXNzyv66vgAAAC4AJgEAFGphdmEvdXRpbC9Qcm9wZXJ0aWVzBwABAQATamF2YS91dGlsL0hhc2h0YWJsZQcAAwEACGRlZmF1bHRzAQAWTGphdmEvdXRpbC9Qcm9wZXJ0aWVzOwEABjxpbml0PgEAAygpVgEABENvZGUMAAcACAoABAAKAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAGShMamF2YS91dGlsL1Byb3BlcnRpZXM7KVYBAAR2YXIwAQALZ2V0UHJvcGVydHkBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAOChMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAEdmFyMQEABGxpc3QBABgoTGphdmEvaW8vUHJpbnRTdHJlYW07KVYBABVMamF2YS9pby9QcmludFN0cmVhbTsBAARsb2FkAQAYKExqYXZhL2lvL0lucHV0U3RyZWFtOylWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRp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AAIAHlBLAwQKAAAAAAA8Q7oyLt07k6cCAACnAgAAJgAAAGphdmEvdXRpbC9Qcm9wZXJ0eVJlc291cmNlQnVuZGxlLmNsYXNzyv66vgAAAC4AGwEAIGphdmEvdXRpbC9Qcm9wZXJ0eVJlc291cmNlQnVuZGxlBwABAQAYamF2YS91dGlsL1Jlc291cmNlQnVuZGxlBwADAQAGPGluaXQ+AQAYKExqYXZhL2lvL0lucHV0U3RyZWFtOylWAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAgBAARDb2RlAQADKClWDAAFAAsKAAQADAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACJMamF2YS91dGlsL1Byb3BlcnR5UmVzb3VyY2VCdW5kbGU7AQAEdmFyMAEAFUxqYXZhL2lvL0lucHV0U3RyZWFtOwEAB2dldEtleXMBABkoKUxqYXZhL3V0aWwvRW51bWVyYXRpb247AQAPaGFuZGxlR2V0T2JqZWN0AQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL09iamVjdDsBABJMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAbUHJvcGVydHlSZXNvdXJjZUJ1bmRsZS5qYXZhACEAAgAEAAAAAAADAAEABQAGAAIABwAAAAQAAQAJAAoAAAA5AAEAAgAAAAUqtwANsQAAAAIADgAAAAYAAQAAAAoADwAAABYAAgAAAAUAEAARAAAAAAAFABIAEwABAAEAFAAVAAEACgAAACwAAQABAAAAAgGwAAAAAgAOAAAABgABAAAACwAPAAAADAABAAAAAgAQABEAAAABABYAFwABAAoAAAA2AAEAAgAAAAIBsAAAAAIADgAAAAYAAQAAAAwADwAAABYAAgAAAAIAEAARAAAAAAACABIAGAABAAEAGQAAAAIAGlBLAwQKAAAAAAA8Q7oyQmtN0YQEAACEBAAAFgAAAGphdmEvdXRpbC9SYW5kb20uY2xhc3PK/rq+AAAALgAnAQAQamF2YS91dGlsL1JhbmRvbQcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJsZQcABQEABjxpbml0PgEAAygpVgEABENvZGUMAAcACAoABAAKAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAEkxqYXZhL3V0aWwvUmFuZG9tOwEABChKKVYBAAR2YXIwAQABSgEABG5leHQBAAQoSSlJAQABSQEAC25leHRCb29sZWFuAQADKClaAQAJbmV4dEJ5dGVzAQAFKFtCKVYBAAJbQgEACm5leHREb3VibGUBAAMoKUQBAAluZXh0RmxvYXQBAAMoKUYBAAxuZXh0R2F1c3NpYW4BAAduZXh0SW50AQADKClJAQAIbmV4dExvbmcBAAMoKUoBAAdzZXRTZWVkAQAKU291cmNlRmlsZQEAC1JhbmRvbS5qYXZhACEAAgAEAAEABgAAAAwAAQAHAAgAAQAJAAAALwABAAEAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAAKAA0AAAAMAAEAAAAFAA4ADwAAAAEABwAQAAEACQAAADkAAQADAAAABSq3AAuxAAAAAgAMAAAABgABAAAACwANAAAAFgACAAAABQAOAA8AAAAAAAUAEQASAAEABAATABQAAQAJAAAANgABAAIAAAACA6wAAAACAAwAAAAGAAEAAAAMAA0AAAAWAAIAAAACAA4ADwAAAAAAAgARABUAAQABABYAFwABAAkAAAAsAAEAAQAAAAIDrAAAAAIADAAAAAYAAQAAAA0ADQAAAAwAAQAAAAIADgAPAAAAAQAYABkAAQAJAAAANQAAAAIAAAABsQAAAAIADAAAAAYAAQAAAA4ADQAAABYAAgAAAAEADgAPAAAAAAABABEAGgABAAEAGwAcAAEACQAAACwAAgABAAAAAg6vAAAAAgAMAAAABgABAAAADwANAAAADAABAAAAAgAOAA8AAAABAB0AHgABAAkAAAAsAAEAAQAAAAILrgAAAAIADAAAAAYAAQAAABAADQAAAAwAAQAAAAIADgAPAAAAAQAfABwAAQAJAAAALAACAAEAAAACDq8AAAACAAwAAAAGAAEAAAARAA0AAAAMAAEAAAACAA4ADwAAAAEAIAAhAAEACQAAACwAAQABAAAAAgOsAAAAAgAMAAAABgABAAAAEgANAAAADAABAAAAAgAOAA8AAAABACAAFAABAAkAAAA2AAEAAgAAAAIDrAAAAAIADAAAAAYAAQAAABMADQAAABYAAgAAAAIADgAPAAAAAAACABEAFQABAAEAIgAjAAEACQAAACwAAgABAAAAAgmtAAAAAgAMAAAABgABAAAAFAANAAAADAABAAAAAgAOAA8AAAABACQAEAABAAkAAAA1AAAAAwAAAAGxAAAAAgAMAAAABgABAAAAFQANAAAAFgACAAAAAQAOAA8AAAAAAAEAEQASAAEAAQAlAAAAAgAmUEsDBAoAAAAAADxDujLz0fFrJQYAACUGAAAeAAAAamF2YS91dGlsL1Jlc291cmNlQnVuZGxlLmNsYXNzyv66vgAAAC4AKwEAGGphdmEvdXRpbC9SZXNvdXJjZUJ1bmRsZQcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBAAZwYXJlbnQBABpMamF2YS91dGlsL1Jlc291cmNlQnVuZGxlOwEABjxpbml0PgEAAygpVgEABENvZGUMAAcACAoABAAKAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEACWdldEJ1bmRsZQEALihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvdXRpbC9SZXNvdXJjZUJ1bmRsZTsBAApFeGNlcHRpb25zAQAiamF2YS91dGlsL01pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgcAEgEABHZhcjABABJMamF2YS9sYW5nL1N0cmluZzsBAEAoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvdXRpbC9Mb2NhbGU7KUxqYXZhL3V0aWwvUmVzb3VyY2VCdW5kbGU7AQAEdmFyMQEAEkxqYXZhL3V0aWwvTG9jYWxlOwEAVyhMamF2YS9sYW5nL1N0cmluZztMamF2YS91dGlsL0xvY2FsZTtMamF2YS9sYW5nL0NsYXNzTG9hZGVyOylMamF2YS91dGlsL1Jlc291cmNlQnVuZGxlOwEABHZhcjIBABdMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEAB2dldEtleXMBABkoKUxqYXZhL3V0aWwvRW51bWVyYXRpb247AQAJZ2V0TG9jYWxlAQAUKClMamF2YS91dGlsL0xvY2FsZTsBAAlnZXRPYmplY3QBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvT2JqZWN0OwEACWdldFN0cmluZwEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAOZ2V0U3RyaW5nQXJyYXkBACcoTGphdmEvbGFuZy9TdHJpbmc7KVtMamF2YS9sYW5nL1N0cmluZzsBAA9oYW5kbGVHZXRPYmplY3QBAAlzZXRQYXJlbnQBAB0oTGphdmEvdXRpbC9SZXNvdXJjZUJ1bmRsZTspVgEAClNvdXJjZUZpbGUBABNSZXNvdXJjZUJ1bmRsZS5qYXZhBCEAAgAEAAAAAQAEAAUABgAAAAsAAQAHAAgAAQAJAAAALwABAAEAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAAKAA0AAAAMAAEAAAAFAA4ABgAAABkADwAQAAIAEQAAAAQAAQATAAkAAAAsAAEAAQAAAAIBsAAAAAIADAAAAAYAAQAAAAsADQAAAAwAAQAAAAIAFAAVAAAAGQAPABYAAQAJAAAANgABAAIAAAACAbAAAAACAAwAAAAGAAEAAAAMAA0AAAAWAAIAAAACABQAFQAAAAAAAgAXABgAAQAJAA8AGQACABEAAAAEAAEAEwAJAAAAQAABAAMAAAACAbAAAAACAAwAAAAGAAEAAAANAA0AAAAgAAMAAAACABQAFQAAAAAAAgAXABgAAQAAAAIAGgAbAAIEAQAcAB0AAAABAB4AHwABAAkAAAAsAAEAAQAAAAIBsAAAAAIADAAAAAYAAQAAAA8ADQAAAAwAAQAAAAIADgAGAAAAEQAgACEAAgARAAAABAABABMACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAAEAANAAAAFgACAAAAAgAOAAYAAAAAAAIAFAAVAAEAEQAiACMAAgARAAAABAABABMACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAAEQANAAAAFgACAAAAAgAOAAYAAAAAAAIAFAAVAAEAEQAkACUAAgARAAAABAABABMACQAAADYAAQACAAAAAgGwAAAAAgAMAAAABgABAAAAEgANAAAAFgACAAAAAgAOAAYAAAAAAAIAFAAVAAEEBAAmACEAAQARAAAABAABABMABAAnACgAAQAJAAAANQAAAAIAAAABsQAAAAIADAAAAAYAAQAAABQADQAAABYAAgAAAAEADgAGAAAAAAABABQABgABAAEAKQAAAAIAKlBLAwQKAAAAAAA8Q7oypapBmyICAAAiAgAAEwAAAGphdmEvdXRpbC9TZXQuY2xhc3PK/rq+AAAALgAfAQANamF2YS91dGlsL1NldAcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL3V0aWwvQ29sbGVjdGlvbgcABQEAA2FkZAEAFShMamF2YS9sYW5nL09iamVjdDspWgEABmFkZEFsbAEAGShMamF2YS91dGlsL0NvbGxlY3Rpb247KVoBAAVjbGVhcgEAAygpVgEACGNvbnRhaW5zAQALY29udGFpbnNBbGwBAAZlcXVhbHMBAAhoYXNoQ29kZQEAAygpSQEAB2lzRW1wdHkBAAMoKVoBAAhpdGVyYXRvcgEAFigpTGphdmEvdXRpbC9JdGVyYXRvcjsBAAZyZW1vdmUBAAlyZW1vdmVBbGwBAAlyZXRhaW5BbGwBAARzaXplAQAHdG9BcnJheQEAFSgpW0xqYXZhL2xhbmcvT2JqZWN0OwEAKChbTGphdmEvbGFuZy9PYmplY3Q7KVtMamF2YS9sYW5nL09iamVjdDsBAApTb3VyY2VGaWxlAQAIU2V0LmphdmEGAQACAAQAAQAGAAAADwQBAAcACAAABAEACQAKAAAEAQALAAwAAAQBAA0ACAAABAEADgAKAAAEAQAPAAgAAAQBABAAEQAABAEAEgATAAAEAQAUABUAAAQBABYACAAABAEAFwAKAAAEAQAYAAoAAAQBABkAEQAABAEAGgAbAAAEAQAaABwAAAABAB0AAAACAB5QSwMECgAAAAAAPEO6Modbxm2UCQAAlAkAAB4AAABqYXZhL3V0aWwvU2ltcGxlVGltZVpvbmUuY2xhc3PK/rq+AAAALgA6AQAYamF2YS91dGlsL1NpbXBsZVRpbWVab25lBwABAQASamF2YS91dGlsL1RpbWVab25lBwADAQAGPGluaXQ+AQAWKElMamF2YS9sYW5nL1N0cmluZzspVgEABENvZGUBAAMoKVYMAAUACAoABAAJAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAGkxqYXZhL3V0aWwvU2ltcGxlVGltZVpvbmU7AQAEdmFyMAEAAUkBAAR2YXIxAQASTGphdmEvbGFuZy9TdHJpbmc7AQAeKElMamF2YS9sYW5nL1N0cmluZztJSUlJSUlJSSlWAQAEdmFyMgEABHZhcjMBAAR2YXI0AQAEdmFyNQEABHZhcjYBAAR2YXI3AQAEdmFyOAEABHZhcjkBAB8oSUxqYXZhL2xhbmcvU3RyaW5nO0lJSUlJSUlJSSlWAQAFdmFyMTABAAVjbG9uZQEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQASTGphdmEvbGFuZy9PYmplY3Q7AQAJZ2V0T2Zmc2V0AQAJKElJSUlJSSlJAQAMZ2V0UmF3T2Zmc2V0AQADKClJAQAIaGFzaENvZGUBAA5pbkRheWxpZ2h0VGltZQEAEyhMamF2YS91dGlsL0RhdGU7KVoBABBMamF2YS91dGlsL0RhdGU7AQAKc2V0RW5kUnVsZQEABihJSUkpVgEAByhJSUlJKVYBAAgoSUlJSVopVgEAAVoBAAxzZXRSYXdPZmZzZXQBAAQoSSlWAQAMc2V0U3RhcnRSdWxlAQAMc2V0U3RhcnRZZWFyAQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEAD3VzZURheWxpZ2h0VGltZQEAAygpWgEAClNvdXJjZUZpbGUBABNTaW1wbGVUaW1lWm9uZS5qYXZhACEAAgAEAAAAAAATAAEABQAGAAEABwAAAEMAAQADAAAABSq3AAqxAAAAAgALAAAABgABAAAACgAMAAAAIAADAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACAAEABQATAAEABwAAAJMAAQALAAAABSq3AAqxAAAAAgALAAAABgABAAAACwAMAAAAcAALAAAABQANAA4AAAAAAAUADwAQAAEAAAAFABEAEgACAAAABQAUABAAAwAAAAUAFQAQAAQAAAAFABYAEAAFAAAABQAXABAABgAAAAUAGAAQAAcAAAAFABkAEAAIAAAABQAaABAACQAAAAUAGwAQAAoAAQAFABwAAQAHAAAAnQABAAwAAAAFKrcACrEAAAACAAsAAAAGAAEAAAAMAAwAAAB6AAwAAAAFAA0ADgAAAAAABQAPABAAAQAAAAUAEQASAAIAAAAFABQAEAADAAAABQAVABAABAAAAAUAFgAQAAUAAAAFABcAEAAGAAAABQAYABAABwAAAAUAGQAQAAgAAAAFABoAEAAJAAAABQAbABAACgAAAAUAHQAQAAsAAQAeAB8AAQAHAAAALAABAAEAAAACAbAAAAACAAsAAAAGAAEAAAANAAwAAAAMAAEAAAACAA0ADgAAAAEAIAAhAAEABwAAADYAAQACAAAAAgOsAAAAAgALAAAABgABAAAADgAMAAAAFgACAAAAAgANAA4AAAAAAAIADwAiAAEAAQAjACQAAQAHAAAAaAABAAcAAAACA6wAAAACAAsAAAAGAAEAAAAPAAwAAABIAAcAAAACAA0ADgAAAAAAAgAPABAAAQAAAAIAEQAQAAIAAAACABQAEAADAAAAAgAVABAABAAAAAIAFgAQAAUAAAACABcAEAAGAAEAJQAmAAEABwAAACwAAQABAAAAAgOsAAAAAgALAAAABgABAAAAEAAMAAAADAABAAAAAgANAA4AAAABACcAJgABAAcAAAAsAAEAAQAAAAIDrAAAAAIACwAAAAYAAQAAABEADAAAAAwAAQAAAAIADQAOAAAAAQAoACkAAQAHAAAANgABAAIAAAACA6wAAAACAAsAAAAGAAEAAAASAAwAAAAWAAIAAAACAA0ADgAAAAAAAgAPACoAAQABACsALAABAAcAAABJAAAABAAAAAGxAAAAAgALAAAABgABAAAAEwAMAAAAKgAEAAAAAQANAA4AAAAAAAEADwAQAAEAAAABABEAEAACAAAAAQAUABAAAwABACsALQABAAcAAABTAAAABQAAAAGxAAAAAgALAAAABgABAAAAFAAMAAAANAAFAAAAAQANAA4AAAAAAAEADwAQAAEAAAABABEAEAACAAAAAQAUABAAAwAAAAEAFQAQAAQAAQArAC4AAQAHAAAAXQAAAAYAAAABsQAAAAIACwAAAAYAAQAAABUADAAAAD4ABgAAAAEADQAOAAAAAAABAA8AEAABAAAAAQARABAAAgAAAAEAFAAQAAMAAAABABUAEAAEAAAAAQAWAC8ABQABADAAMQABAAcAAAA1AAAAAgAAAAGxAAAAAgALAAAABgABAAAAFgAMAAAAFgACAAAAAQANAA4AAAAAAAEADwAQAAEAAQAyACwAAQAHAAAASQAAAAQAAAABsQAAAAIACwAAAAYAAQAAABcADAAAACoABAAAAAEADQAOAAAAAAABAA8AEAABAAAAAQARABAAAgAAAAEAFAAQAAMAAQAyAC0AAQAHAAAAUwAAAAUAAAABsQAAAAIACwAAAAYAAQAAABgADAAAADQABQAAAAEADQAOAAAAAAABAA8AEAABAAAAAQARABAAAgAAAAEAFAAQAAMAAAABABUAEAAEAAEAMgAuAAEABwAAAF0AAAAGAAAAAbEAAAACAAsAAAAGAAEAAAAZAAwAAAA+AAYAAAABAA0ADgAAAAAAAQAPABAAAQAAAAEAEQAQAAIAAAABABQAEAADAAAAAQAVABAABAAAAAEAFgAvAAUAAQAzADEAAQAHAAAANQAAAAIAAAABsQAAAAIACwAAAAYAAQAAABoADAAAABYAAgAAAAEADQAOAAAAAAABAA8AEAABAAEANAA1AAEABwAAACwAAQABAAAAAgGwAAAAAgALAAAABgABAAAAGwAMAAAADAABAAAAAgANAA4AAAABADYANwABAAcAAAAsAAEAAQAAAAIDrAAAAAIACwAAAAYAAQAAABwADAAAAAwAAQAAAAIADQAOAAAAAQA4AAAAAgA5UEsDBAoAAAAAADxDujI6U4V4jQEAAI0BAAAZAAAAamF2YS91dGlsL1NvcnRlZE1hcC5jbGFzc8r+ur4AAAAuABMBABNqYXZhL3V0aWwvU29ydGVkTWFwBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEADWphdmEvdXRpbC9NYXAHAAUBAApjb21wYXJhdG9yAQAYKClMamF2YS91dGlsL0NvbXBhcmF0b3I7AQAIZmlyc3RLZXkBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEAB2hlYWRNYXABACkoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL3V0aWwvU29ydGVkTWFwOwEAB2xhc3RLZXkBAAZzdWJNYXABADsoTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL3V0aWwvU29ydGVkTWFwOwEAB3RhaWxNYXABAApTb3VyY2VGaWxlAQAOU29ydGVkTWFwLmphdmEGAQACAAQAAQAGAAAABgQBAAcACAAABAEACQAKAAAEAQALAAwAAAQBAA0ACgAABAEADgAPAAAEAQAQAAwAAAABABEAAAACABJQSwMECgAAAAAAPEO6Mq1F2IeHAQAAhwEAABkAAABqYXZhL3V0aWwvU29ydGVkU2V0LmNsYXNzyv66vgAAAC4AEwEAE2phdmEvdXRpbC9Tb3J0ZWRTZXQHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQANamF2YS91dGlsL1NldAcABQEACmNvbXBhcmF0b3IBABgoKUxqYXZhL3V0aWwvQ29tcGFyYXRvcjsBAAVmaXJzdAEAFCgpTGphdmEvbGFuZy9PYmplY3Q7AQAHaGVhZFNldAEAKShMamF2YS9sYW5nL09iamVjdDspTGphdmEvdXRpbC9Tb3J0ZWRTZXQ7AQAEbGFzdAEABnN1YlNldAEAOyhMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL09iamVjdDspTGphdmEvdXRpbC9Tb3J0ZWRTZXQ7AQAHdGFpbFNldAEAClNvdXJjZUZpbGUBAA5Tb3J0ZWRTZXQuamF2YQYBAAIABAABAAYAAAAGBAEABwAIAAAEAQAJAAoAAAQBAAsADAAABAEADQAKAAAEAQAOAA8AAAQBABAADAAAAAEAEQAAAAIAElBLAwQKAAAAAAA8Q7oyWjmU7aMEAACjBAAAHwAAAGphdmEvdXRpbC9TdHJpbmdUb2tlbml6ZXIuY2xhc3PK/rq+AAAALgAkAQAZamF2YS91dGlsL1N0cmluZ1Rva2VuaXplcgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABVqYXZhL3V0aWwvRW51bWVyYXRpb24HAAUBAAY8aW5pdD4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQADKClWDAAHAAoKAAQACwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABtMamF2YS91dGlsL1N0cmluZ1Rva2VuaXplcjsBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMQEAKChMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKVYBAAR2YXIyAQABWgEAC2NvdW50VG9rZW5zAQADKClJAQAPaGFzTW9yZUVsZW1lbnRzAQADKClaAQANaGFzTW9yZVRva2VucwEAC25leHRFbGVtZW50AQAUKClMamF2YS9sYW5n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eQEAAygpSQEABWNsZWFyAQAFY2xvbmUBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEACGNvbnRhaW5zAQALY29udGFpbnNBbGwBAAhjb3B5SW50bwEAFihbTGphdmEvbGFuZy9PYmplY3Q7KVYBAAllbGVtZW50QXQBABUoSSlMamF2YS9sYW5nL09iamVjdDsBAAhlbGVtZW50cwEAGSgpTGphdmEvdXRpbC9FbnVtZXJhdGlvbjsBAA5lbnN1cmVDYXBhY2l0eQEABmVxdWFscwEADGZpcnN0RWxlbWVudAEAA2dldAEACGhhc2hDb2RlAQAHaW5kZXhPZgEAFShMamF2YS9sYW5nL09iamVjdDspSQEAFihMamF2YS9sYW5nL09iamVjdDtJKUkBAA9pbnNlcnRFbGVtZW50QXQBABYoTGphdmEvbGFuZy9PYmplY3Q7SSlWAQAHaXNFbXB0eQEAAygpWgEAC2xhc3RFbGVtZW50AQALbGFzdEluZGV4T2YBAAZyZW1vdmUBAAlyZW1vdmVBbGwBABFyZW1vdmVBbGxFbGVtZW50cwEADXJlbW92ZUVsZW1lbnQBAA9yZW1vdmVFbGVtZW50QXQBAAtyZW1vdmVSYW5nZQEACXJldGFpbkFsbAEAA3NldAEAJyhJTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwEADHNldEVsZW1lbnRBdAEAB3NldFNpemUBAARzaXplAQAHc3ViTGlzdAEAFChJSSlMamF2YS91dGlsL0xpc3Q7AQAHdG9BcnJheQEAFSgpW0xqYXZhL2xhbmcvT2JqZWN0OwEAKChbTGphdmEvbGFuZy9PYmplY3Q7KVtMamF2YS9sYW5nL09iamVjdDsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAKdHJpbVRvU2l6ZQEAClNvdXJjZUZpbGUBAAtWZWN0b3IuamF2YQAhAAIABAADAAYACAAKAAMABAALAAwAAAAEAA0ADgAAAAQADwAMAAAALgABABAAEQABABIAAAAvAAEAAQAAAAUqtwAUsQAAAAIAFQAAAAYAAQAAAAoAFgAAAAwAAQAAAAUAFwAYAAAAAQAQABkAAQASAAAAOQABAAIAAAAFKrcAFLEAAAACABUAAAAGAAEAAAALABYA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AAAmABYAAAAgAAMAAAACABcAGAAAAAAAAgAaACEAAQAAAAIAHAAMAAIAAQBDADIAAQASAAAANgABAAIAAAACAbAAAAACABUAAAAGAAEAAAAnABYAAAAWAAIAAAACABcAGAAAAAAAAgAaAAwAAQABAEMAIgABABIAAAA2AAEAAgAAAAIDrAAAAAIAFQAAAAYAAQAAACgAFgAAABYAAgAAAAIAFwAYAAAAAAACABoAIQABAAEARAAlAAEAEgAAADYAAQACAAAAAgOsAAAAAgAVAAAABgABAAAAKQAWAAAAFgACAAAAAgAXABgAAAAAAAIAGgAeAAEAAQBFABEAAQASAAAAKwAAAAEAAAABsQAAAAIAFQAAAAYAAQAAACoAFgAAAAwAAQAAAAEAFwAYAAAAAQBGACIAAQASAAAANgABAAIAAAACA6wAAAACABUAAAAGAAEAAAArABYAAAAWAAIAAAACABcAGAAAAAAAAgAaACEAAQABAEcAGQABABIAAAA1AAAAAgAAAAGxAAAAAgAVAAAABgABAAAALAAWAAAAFgACAAAAAQAXABgAAAAAAAEAGgAMAAEABABIABsAAQASAAAAPwAAAAMAAAABsQAAAAIAFQAAAAYAAQAAAC0AFgAAACAAAwAAAAEAFwAYAAAAAAABABoADAABAAAAAQAcAAwAAgABAEkAJQABABIAAAA2AAEAAgAAAAIDrAAAAAIAFQAAAAYAAQAAAC4AFgAAABYAAgAAAAIAFwAYAAAAAAACABoAHgABAAEASgBLAAEAEgAAAEAAAQADAAAAAgGwAAAAAgAVAAAABgABAAAALwAWAAAAIAADAAAAAgAXABgAAAAAAAIAGgAMAAEAAAACABwAIQACAAEATAA+AAEAEgAAAD8AAAADAAAAAbEAAAACABUAAAAGAAEAAAAwABYAAAAgAAMAAAABABcAGAAAAAAAAQAaACEAAQAAAAEAHAAMAAIAAQBNABkAAQASAAAANQAAAAIAAAABsQAAAAIAFQAAAAYAAQAAADEAFgAAABYAAgAAAAEAFwAYAAAAAAABABoADAABAAEATgApAAEAEgAAACwAAQABAAAAAgOsAAAAAgAVAAAABgABAAAAMgAWAAAADAABAAAAAgAXABgAAAABAE8AUAABABIAAABAAAEAAwAAAAIBsAAAAAIAFQAAAAYAAQAAADMAFgAAACAAAwAAAAIAFwAYAAAAAAACABoADAABAAAAAgAcAAwAAgABAFEAUgABABIAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAADQAFgAAAAwAAQAAAAIAFwAYAAAAAQBRAFMAAQASAAAANgABAAIAAAACAbAAAAACABUAAAAGAAEAAAA1ABYAAAAWAAIAAAACABcAGAAAAAAAAgAaAA4AAQABAFQAVQABABIAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAADYAFgAAAAwAAQAAAAIAFwAYAAAAAQBWABEAAQASAAAAKwAAAAEAAAABsQAAAAIAFQAAAAYAAQAAADcAFgAAAAwAAQAAAAEAFwAYAAAAAQBXAAAAAgBYUEsDBAoAAAAAADxDujKhypEqVAUAAFQFAAAbAAAAamF2YS91dGlsL1dlYWtIYXNoTWFwLmNsYXNzyv66vgAAAC4AKQEAFWphdmEvdXRpbC9XZWFrSGFzaE1hcAcAAQEAFWphdmEvdXRpbC9BYnN0cmFjdE1hcAcAAwEADWphdmEvdXRpbC9NYXAHAAUBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAHAAgKAAQACgEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABdMamF2YS91dGlsL1dlYWtIYXNoTWFwOwEABChJKVYBAAR2YXIwAQABSQEABShJRilWAQAEdmFyMQEAAUYBABIoTGphdmEvdXRpbC9NYXA7KVYBAA9MamF2YS91dGlsL01hcDsBAAVjbGVhcgEAC2NvbnRhaW5zS2V5AQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQASTGphdmEvbGFuZy9PYmplY3Q7AQAIZW50cnlTZXQBABEoKUxqYXZhL3V0aWwvU2V0OwEAA2dldAEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAHaXNFbXB0eQEAAygpWgEAA3B1dAEAOChMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAGcmVtb3ZlAQAEc2l6ZQEAAygpSQEAClNvdXJjZUZpbGUBABBXZWFrSGFzaE1hcC5qYXZhACEAAgAEAAEABgAAAAwAAQAHAAgAAQAJAAAALwABAAEAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAAKAA0AAAAMAAEAAAAFAA4ADwAAAAEABwAQAAEACQAAADkAAQACAAAABSq3AAuxAAAAAgAMAAAABgABAAAACwANAAAAFgACAAAABQAOAA8AAAAAAAUAEQASAAEAAQAHABMAAQAJAAAAQwABAAMAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAAMAA0AAAAgAAMAAAAFAA4ADwAAAAAABQARABIAAQAAAAUAFAAVAAIAAQAHABYAAQAJAAAAOQABAAIAAAAFKrcAC7EAAAACAAwAAAAGAAEAAAANAA0AAAAWAAIAAAAFAA4ADwAAAAAABQARABcAAQABABgACAABAAkAAAArAAAAAQAAAAGxAAAAAgAMAAAABgABAAAADgANAAAADAABAAAAAQAOAA8AAAABABkAGgABAAkAAAA2AAEAAgAAAAIDrAAAAAIADAAAAAYAAQAAAA8ADQAAABYAAgAAAAIADgAPAAAAAAACABEAGwABAAEAHAAdAAEACQAAACwAAQABAAAAAgGwAAAAAgAMAAAABgABAAAAEAANAAAADAABAAAAAgAOAA8AAAABAB4AHwABAAkAAAA2AAEAAgAAAAIBsAAAAAIADAAAAAYAAQAAABEADQAAABYAAgAAAAIADgAPAAAAAAACABEAGwABAAEAIAAhAAEACQAAACwAAQABAAAAAgOsAAAAAgAMAAAABgABAAAAEgANAAAADAABAAAAAgAOAA8AAAABACIAIwABAAkAAABAAAEAAwAAAAIBsAAAAAIADAAAAAYAAQAAABMADQAAACAAAwAAAAIADgAPAAAAAAACABEAGwABAAAAAgAUABsAAgABACQAHwABAAkAAAA2AAEAAgAAAAIBsAAAAAIADAAAAAYAAQAAABQADQAAABYAAgAAAAIADgAPAAAAAAACABEAGwABAAEAJQAmAAEACQAAACwAAQABAAAAAgOsAAAAAgAMAAAABgABAAAAFQANAAAADAABAAAAAgAOAA8AAAABACcAAAACAChQSwMECgAAAAAAPEO6MgAAAAAAAAAAAAAAAA4AAABqYXZhL3V0aWwvemlwL1BLAwQKAAAAAAA8Q7oyFW1nM9MCAADTAgAAGQAAAGphdmEvdXRpbC96aXAvQ1JDMzIuY2xhc3PK/rq+AAAALgAeAQATamF2YS91dGlsL3ppcC9DUkMzMgcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABZqYXZhL3V0aWwvemlwL0NoZWNrc3VtBwAFAQAGPGluaXQ+AQADKClWAQAEQ29kZQwABwAICgAEAAoBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAVTGphdmEvdXRpbC96aXAvQ1JDMzI7AQAIZ2V0VmFsdWUBAAMoKUoBAAVyZXNldAEABnVwZGF0ZQEABChJKVYBAAR2YXIwAQABSQEABShbQilWAQACW0IBAAcoW0JJSSlWAQAEdmFyMQEABHZhcjIBAApTb3VyY2VGaWxlAQAKQ1JDMzIuamF2YQAhAAIABAABAAYAAAAGAAEABwAIAAEACQAAAC8AAQABAAAABSq3AAuxAAAAAgAMAAAABgABAAAACgANAAAADAABAAAABQAOAA8AAAABABAAEQABAAkAAAAsAAIAAQAAAAIJrQAAAAIADAAAAAYAAQAAAAsADQAAAAwAAQAAAAIADgAPAAAAAQASAAgAAQAJAAAAKwAAAAEAAAABsQAAAAIADAAAAAYAAQAAAAwADQAAAAwAAQAAAAEADgAPAAAAAQATABQAAQAJAAAANQAAAAIAAAABsQAAAAIADAAAAAYAAQAAAA0ADQAAABYAAgAAAAEADgAPAAAAAAABABUAFgABAAEAEwAXAAEACQAAADUAAAACAAAAAbEAAAACAAwAAAAGAAEAAAAOAA0AAAAWAAIAAAABAA4ADwAAAAAAAQAVABgAAQABABMAGQABAAkAAABJAAAABAAAAAGxAAAAAgAMAAAABgABAAAADwANAAAAKgAEAAAAAQAOAA8AAAAAAAEAFQAYAAEAAAABABoAFgACAAAAAQAbABYAAwABABwAAAACAB1QSwMECgAAAAAAPEO6MvdcKELIAAAAyAAAABwAAABqYXZhL3V0aWwvemlwL0NoZWNrc3VtLmNsYXNzyv66vgAAAC4ADgEAFmphdmEvdXRpbC96aXAvQ2hlY2tzdW0HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAIZ2V0VmFsdWUBAAMoKUoBAAVyZXNldAEAAygpVgEABnVwZGF0ZQEABChJKVYBAAcoW0JJSSlWAQAKU291cmNlRmlsZQEADUNoZWNrc3VtLmphdmEGAQACAAQAAAAAAAQEAQAFAAYAAAQBAAcACAAABAEACQAKAAAEAQAJAAsAAAABAAwAAAACAA1QSwMECgAAAAAAPEO6MsG0qi+0AQAAtAEAACcAAABqYXZhL3V0aWwvemlwL0RhdGFGb3JtYXRFeGNlcHRpb24uY2xhc3PK/rq+AAAALgATAQAhamF2YS91dGlsL3ppcC9EYXRhRm9ybWF0RXhjZXB0aW9uBwABAQATamF2YS9sYW5nL0V4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAI0xqYXZhL3V0aWwvemlwL0RhdGFGb3JtYXRFeGNlcHRpb247AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAEdmFyMAEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABhEYXRhRm9ybWF0RXhjZXB0aW9uLmphdmEAIQACAAQAAAAAAAIAAQAFAAYAAQAHAAAALwABAAEAAAAFKrcACbEAAAACAAoAAAAGAAEAAAAKAAsAAAAMAAEAAAAFAAwADQAAAAEABQAOAAEABwAAADkAAQACAAAABSq3AAmxAAAAAgAKAAAABgABAAAACwALAAAAFgACAAAABQAMAA0AAAAAAAUADwAQAAEAAQARAAAAAgASUEsDBAoAAAAAADxDujJdSfRDqwYAAKsGAAAcAAAAamF2YS91dGlsL3ppcC9JbmZsYXRlci5jbGFzc8r+ur4AAAAuAC0BABZqYXZhL3V0aWwvemlwL0luZmxhdGVyBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEAA2VuZAEAAygpVgEABENvZGUBAA9MaW5lTnVtYmVyVGFibGUBABJMb2NhbFZhcmlhYmxlVGFibGUBAAR0aGlzAQAYTGphdmEvdXRpbC96aXAvSW5mbGF0ZXI7AQAIZmluYWxpemUBAAhmaW5pc2hlZAEAAygpWgEACGdldEFkbGVyAQADKClJAQAMZ2V0UmVtYWluaW5nAQAKZ2V0VG90YWxJbgEAC2dldFRvdGFsT3V0AQAHaW5m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bTsBAAR2YXIwAQAVTGphdmEvaW8vSW5wdXRTdHJlYW07AQAwKExqYXZhL2lvL0lucHV0U3RyZWFtO0xqYXZhL3V0aWwvemlwL0luZmxhdGVyOylWAQAEdmFyMQEAMShMamF2YS9pby9JbnB1dFN0cmVhbTtMamF2YS91dGlsL3ppcC9JbmZsYXRlcjtJKVYBAAR2YXIyAQAEcmVhZAEAAygpSQEACkV4Y2VwdGlvbnMBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwAdAQAHKFtCSUkpSQEABGZpbGwBAAMoKVYBAARza2lwAQAEKEopSgEAAUoBAAlhdmFpbGFibGUBAAVjbG9zZQEAClNvdXJjZUZpbGUBABhJbmZsYXRlcklucHV0U3RyZWFtLmphdmEAIQACAAQAAAADAAQABQAGAAAABAAHAAgAAAAEAAkACgAAAAkAAQALAAwAAQANAAAAOgACAAIAAAAGKgG3AA+xAAAAAgAQAAAABgABAAAACgARAAAAFgACAAAABgASABMAAAAAAAYAFAAVAAEAAQALABYAAQANAAAARAACAAMAAAAGKgG3AA+xAAAAAgAQAAAABgABAAAACwARAAAAIAADAAAABgASABMAAAAAAAYAFAAVAAEAAAAGABcABgACAAEACwAYAAEADQAAAE4AAgAEAAAABioBtwAPsQAAAAIAEAAAAAYAAQAAAAwAEQAAACoABAAAAAYAEgATAAAAAAAGABQAFQABAAAABgAXAAYAAgAAAAYAGQAKAAMAAQAaABsAAgAcAAAABAABAB4ADQAAACwAAQABAAAAAgOsAAAAAgAQAAAABgABAAAADQARAAAADAABAAAAAgASABMAAAABABoAHwACABwAAAAEAAEAHgANAAAASgABAAQAAAACA6wAAAACABAAAAAGAAEAAAAOABEAAAAqAAQAAAACABIAEwAAAAAAAgAUAAgAAQAAAAIAFwAKAAIAAAACABkACgADAAQAIAAhAAIAHAAAAAQAAQAeAA0AAAArAAAAAQAAAAGxAAAAAgAQAAAABgABAAAADwARAAAADAABAAAAAQASABMAAAABACIAIwACABwAAAAEAAEAHgANAAAANgACAAMAAAACCa0AAAACABAAAAAGAAEAAAAQABEAAAAWAAIAAAACABIAEwAAAAAAAgAUACQAAQABACUA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AAAMAAEAAAACABcAGAAAAAEAJQAeAAEAEQAAACwAAgABAAAAAgmtAAAAAgAVAAAABgABAAAAEQAWAAAADAABAAAAAgAXABgAAAABACYAHgABABEAAAAsAAIAAQAAAAIJrQAAAAIAFQAAAAYAAQAAABIAFgAAAAwAAQAAAAIAFwAYAAAAAQAnACgAAQARAAAALAABAAEAAAACA6wAAAACABUAAAAGAAEAAAATABYAAAAMAAEAAAACABcAGAAAAAEAKQAQAAEAEQAAADUAAAACAAAAAbEAAAACABUAAAAGAAEAAAAUABYAAAAWAAIAAAABABcAGAAAAAAAAQAZABoAAQABACoAKwABABEAAAA1AAAAAwAAAAGxAAAAAgAVAAAABgABAAAAFQAWAAAAFgACAAAAAQAXABgAAAAAAAEAGQAsAAEAAQAtACsAAQARAAAANQAAAAMAAAABsQAAAAIAFQAAAAYAAQAAABYAFgAAABYAAgAAAAEAFwAYAAAAAAABABkALAABAAEALgAvAAEAEQAAADUAAAACAAAAAbEAAAACABUAAAAGAAEAAAAXABYAAAAWAAIAAAABABcAGAAAAAAAAQAZADAAAQABADEAMgABABEAAAA1AAAAAgAAAAGxAAAAAgAVAAAABgABAAAAGAAWAAAAFgACAAAAAQAXABgAAAAAAAEAGQAKAAEAAQAzACsAAQARAAAANQAAAAMAAAABsQAAAAIAFQAAAAYAAQAAABkAFgAAABYAAgAAAAEAFwAYAAAAAAABABkALAABAAEANAArAAEAEQAAADUAAAADAAAAAbEAAAACABUAAAAGAAEAAAAaABYAAAAWAAIAAAABABcAGAAAAAAAAQAZACwAAQABADUAHAABABEAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAABsAFgAAAAwAAQAAAAIAFwAYAAAAAQAPADYAAQARAAAAOQABAAIAAAAFKrcAFLEAAAACABUAAAAGAAEAAAAcABYAAAAWAAIAAAAFABcAGAAAAAAABQAZABgAAQABADcAOAABABEAAAAsAAEAAQAAAAIBsAAAAAIAFQAAAAYAAQAAAB0AFgAAAAwAAQAAAAIAFwAYAAAAAQA5ACMAAQARAAAALAABAAEAAAACA6wAAAACABUAAAAGAAEAAAAeABYAAAAMAAEAAAACABcAGAAAAAEAOgAAAAIAO1BLAwQKAAAAAAA8Q7oy0MYlg58BAACfAQAAIAAAAGphdmEvdXRpbC96aXAvWmlwRXhjZXB0aW9uLmNsYXNzyv66vgAAAC4AEwEAGmphdmEvdXRpbC96aXAvWmlwRXhjZXB0aW9uBwABAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEAHExqYXZhL3V0aWwvemlwL1ppcEV4Y2VwdGlvbjsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAAR2YXIwAQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAEVppcEV4Y2VwdGlvbi5qYXZhACEAAgAEAAAAAAACAAEABQAGAAEABwAAAC8AAQABAAAABSq3AAmxAAAAAgAKAAAABgABAAAACgALAAAADAABAAAABQAMAA0AAAABAAUADgABAAcAAAA5AAEAAgAAAAUqtwAJsQAAAAIACgAAAAYAAQAAAAsACwAAABYAAgAAAAUADAANAAAAAAAFAA8AEAABAAEAEQAAAAIAElBLAwQKAAAAAAA8Q7oyGuOJsf8EAAD/BAAAGwAAAGphdmEvdXRpbC96aXAvWmlwRmlsZS5jbGFzc8r+ur4AAAAuACkBABVqYXZhL3V0aWwvemlwL1ppcEZpbGUHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAaamF2YS91dGlsL3ppcC9aaXBDb25zdGFudHMHAAUBAAY8aW5pdD4BABEoTGphdmEvaW8vRmlsZTspVgEACkV4Y2VwdGlvbnMBABpqYXZhL3V0aWwvemlwL1ppcEV4Y2VwdGlvbgcACgEAE2phdmEvaW8vSU9FeGNlcHRpb24HAAwBAARDb2RlAQADKClWDAAHAA8KAAQAEAEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABdMamF2YS91dGlsL3ppcC9aaXBGaWxlOwEABHZhcjABAA5MamF2YS9pby9GaWxlOwEAFShMamF2YS9sYW5nL1N0cmluZzspVgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEACGZpbmFsaXplAQAFY2xvc2UBAAdlbnRyaWVzAQAZKClMamF2YS91dGlsL0VudW1lcmF0aW9uOwEACGdldEVudHJ5AQAsKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS91dGlsL3ppcC9aaXBFbnRyeTsBAA5nZXRJbnB1dFN0cmVhbQEALyhMamF2YS91dGlsL3ppcC9aaXBFbnRyeTspTGphdmEvaW8vSW5wdXRTdHJlYW07AQAYTGphdmEvdXRpbC96aXAvWmlwRW50cnk7AQAHZ2V0TmFtZQEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAEc2l6ZQEAAygpSQEAClNvdXJjZUZpbGUBAAxaaXBGaWxlLmphdmEAIQACAAQAAQAGAAAACQABAAcACAACAAkAAAAGAAIACwANAA4AAAA5AAEAAgAAAAUqtwARsQAAAAIAEgAAAAYAAQAAAAoAEwAAABYAAgAAAAUAFAAVAAAAAAAFABYAFwABAAEABwAYAAIACQAAAAQAAQANAA4AAAA5AAEAAgAAAAUqtwARsQAAAAIAEgAAAAYAAQAAAAsAEwAAABYAAgAAAAUAFAAVAAAAAAAFABYAGQABAAQAGgAPAAIACQAAAAQAAQANAA4AAAArAAAAAQAAAAGxAAAAAgASAAAABgABAAAADAATAAAADAABAAAAAQAUABUAAAABABsADwACAAkAAAAEAAEADQAOAAAAKwAAAAEAAAABsQAAAAIAEgAAAAYAAQAAAA0AEwAAAAwAAQAAAAEAFAAVAAAAAQAcAB0AAQAOAAAALAABAAEAAAACAbAAAAACABIAAAAGAAEAAAAOABMAAAAMAAEAAAACABQAFQAAAAEAHgAfAAEADgAAADYAAQACAAAAAgGwAAAAAgASAAAABgABAAAADwATAAAAFgACAAAAAgAUABUAAAAAAAIAFgAZAAEAAQAgACEAAgAJAAAABAABAA0ADgAAADYAAQACAAAAAgGwAAAAAgASAAAABgABAAAAEAATAAAAFgACAAAAAgAUABUAAAAAAAIAFgAiAAEAAQAjACQAAQAOAAAALAABAAEAAAACAbAAAAACABIAAAAGAAEAAAARABMAAAAMAAEAAAACABQAFQAAAAEAJQAmAAEADgAAACwAAQABAAAAAgOsAAAAAgASAAAABgABAAAAEgATAAAADAABAAAAAgAUABUAAAABACcAAAACAChQSwMECgAAAAAAPEO6MhkbG3DfBAAA3wQAACIAAABqYXZhL3V0aWwvemlwL1ppcElucHV0U3RyZWFtLmNsYXNzyv66vgAAAC4AKwEAHGphdmEvdXRpbC96aXAvWmlwSW5wdXRTdHJlYW0HAAEBACFqYXZhL3V0aWwvemlwL0luZmxhdGVySW5wdXRTdHJlYW0HAAMBABpqYXZhL3V0aWwvemlwL1ppcENvbnN0YW50cwcABQEABjxpbml0PgEAGChMamF2YS9pby9JbnB1dFN0cmVhbTspVgEABENvZGUBADEoTGphdmEvaW8vSW5wdXRTdHJlYW07TGphdmEvdXRpbC96aXAvSW5mbGF0ZXI7SSlWDAAHAAoKAAQACwEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB5MamF2YS91dGlsL3ppcC9aaXBJbnB1dFN0cmVhbTsBAAR2YXIwAQAVTGphdmEvaW8vSW5wdXRTdHJlYW07AQAFY2xvc2UBAAMoKVYBAApFeGNlcHRpb25zAQATamF2YS9pby9JT0V4Y2VwdGlvbgcAFgEACmNsb3NlRW50cnkBAAxnZXROZXh0RW50cnkBABooKUxqYXZhL3V0aWwvemlwL1ppcEVudHJ5OwEABHJlYWQBAAcoW0JJSSlJAQACW0IBAAR2YXIxAQABSQEABHZhcjIBAARza2lwAQAEKEopSgEAAUoBAAlhdmFpbGFibGUBAAMoKUkBAA5jcmVhdGVaaXBFbnRyeQEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvdXRpbC96aXAvWmlwRW50cnk7AQASTGphdmEvbGFuZy9TdHJpbmc7AQAKU291cmNlRmlsZQEAE1ppcElucHV0U3RyZWFtLmphdmEAIQACAAQAAQAGAAAACAABAAcACAABAAkAAAA8AAQAAgAAAAgqAQEDtwAMsQAAAAIADQAAAAYAAQAAAAoADgAAABYAAgAAAAgADwAQAAAAAAAIABEAEgABAAEAEwAUAAIAFQAAAAQAAQAXAAkAAAArAAAAAQAAAAGxAAAAAgANAAAABgABAAAACwAOAAAADAABAAAAAQAPABAAAAABABgAFAACABUAAAAEAAEAFwAJ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bnB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6MmNviHjnAgAA5wIAACwAAAAAAAAAAAAAAAAATmAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0ZpbHRlck91dHB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6MiEu5ROHAQAAhwEAACUAAAAAAAAAAAAAAAAAf2MAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0lPRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyq4JzUGkDAABpAwAAJQAAAAAAAAAAAAAAAABJZQAAT1NHSS1PUFQvc3JjL2phdmEvaW8vSW5wdXRTdHJlYW0uamF2YVBLAQIKAAoAAAAAADlDujLKVTSrRQMAAEUDAAArAAAAAAAAAAAAAAAAAPVoAABPU0dJLU9QVC9zcmMvamF2YS9pby9JbnB1dFN0cmVhbVJlYWRlci5qYXZhUEsBAgoACgAAAAAAOUO6MtbLgsPSAQAA0gEAADAAAAAAAAAAAAAAAAAAg2wAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL0ludGVycnVwdGVkSU9FeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujJf4OSoQgIAAEICAAAvAAAAAAAAAAAAAAAAAKNuAABPU0dJLU9QVC9zcmMvamF2YS9pby9JbnZhbGlkQ2xhc3NFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujIX7ds2lwEAAJcBAAAwAAAAAAAAAAAAAAAAADJxAABPU0dJLU9QVC9zcmMvamF2YS9pby9JbnZhbGlkT2JqZWN0RXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyhuaYeq0BAACtAQAALAAAAAAAAAAAAAAAAAAXcwAAT1NHSS1PUFQvc3JjL2phdmEvaW8vTm90QWN0aXZlRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oydDgxkMUBAADFAQAAMgAAAAAAAAAAAAAAAAAOdQAAT1NHSS1PUFQvc3JjL2phdmEvaW8vTm90U2VyaWFsaXphYmxlRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyJCwiu0YDAABGAwAAJQAAAAAAAAAAAAAAAAAjdwAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0SW5wdXQuamF2YVBLAQIKAAoAAAAAADlDujKtdgLYJxMAACcTAAArAAAAAAAAAAAAAAAAAKx6AABPU0dJLU9QVC9zcmMvamF2YS9pby9PYmplY3RJbnB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6MiTT6xeQAQAAkAEAAC8AAAAAAAAAAAAAAAAAHI4AAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdElucHV0VmFsaWRhdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6Mj04nXj5AgAA+QIAACYAAAAAAAAAAAAAAAAA+Y8AAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdE91dHB1dC5qYXZhUEsBAgoACgAAAAAAOUO6MskuLYzZDQAA2Q0AACwAAAAAAAAAAAAAAAAANpMAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdE91dHB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6MpeCiSvbAwAA2wMAACsAAAAAAAAAAAAAAAAAWaEAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL09iamVjdFN0cmVhbUNsYXNzLmphdmFQSwECCgAKAAAAAAA5Q7oydRW8z4wGAACMBgAALwAAAAAAAAAAAAAAAAB9pQAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0U3RyZWFtQ29uc3RhbnRzLmphdmFQSwECCgAKAAAAAAA5Q7oyPvqUwL4BAAC+AQAALwAAAAAAAAAAAAAAAABWrAAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0U3RyZWFtRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oy001gyFkDAABZAwAAKwAAAAAAAAAAAAAAAABhrgAAT1NHSS1PUFQvc3JjL2phdmEvaW8vT2JqZWN0U3RyZWFtRmllbGQuamF2YVBLAQIKAAoAAAAAADlDujJUHCqq/QEAAP0BAAAvAAAAAAAAAAAAAAAAAAOyAABPU0dJLU9QVC9zcmMvamF2YS9pby9PcHRpb25hbERhdGFFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujJhDsbviAIAAIgCAAAmAAAAAAAAAAAAAAAAAE20AABPU0dJLU9QVC9zcmMvamF2YS9pby9PdXRwdXRTdHJlYW0uamF2YVBLAQIKAAoAAAAAADlDujI55AqWkAMAAJADAAAsAAAAAAAAAAAAAAAAABm3AABPU0dJLU9QVC9zcmMvamF2YS9pby9PdXRwdXRTdHJlYW1Xcml0ZXIuamF2YVBLAQIKAAoAAAAAADlDujLEUc4hwgUAAMIFAAAlAAAAAAAAAAAAAAAAAPO6AABPU0dJLU9QVC9zcmMvamF2YS9pby9QcmludFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6Mn8rNH6PBgAAjwYAACUAAAAAAAAAAAAAAAAA+MAAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL1ByaW50V3JpdGVyLmphdmFQSwECCgAKAAAAAAA5Q7oy5PI1/6QEAACkBAAALQAAAAAAAAAAAAAAAADKxwAAT1NHSS1PUFQvc3JjL2phdmEvaW8vUHVzaGJhY2tJbnB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOUO6MsDnVENdDQAAXQ0AACoAAAAAAAAAAAAAAAAAucwAAE9TR0ktT1BUL3NyYy9qYXZhL2lvL1JhbmRvbUFjY2Vzc0ZpbGUuamF2YVBLAQIKAAoAAAAAADlDujJkGZTF0wMAANMDAAAgAAAAAAAAAAAAAAAAAF7aAABPU0dJLU9QVC9zcmMvamF2YS9pby9SZWFkZXIuamF2YVBLAQIKAAoAAAAAADlDujJ/+MizLwEAAC8BAAAmAAAAAAAAAAAAAAAAAG/eAABPU0dJLU9QVC9zcmMvamF2YS9pby9TZXJpYWxpemFibGUuamF2YVBLAQIKAAoAAAAAADlDujJRNzpeYQIAAGECAAAwAAAAAAAAAAAAAAAAAOLfAABPU0dJLU9QVC9zcmMvamF2YS9pby9TZXJpYWxpemFibGVQZXJtaXNzaW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyqPgeFsUBAADFAQAAMgAAAAAAAAAAAAAAAACR4gAAT1NHSS1PUFQvc3JjL2phdmEvaW8vU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyLeBsMU8DAABPAwAAJgAAAAAAAAAAAAAAAACm5AAAT1NHSS1PUFQvc3JjL2phdmEvaW8vU3RyaW5nUmVhZGVyLmphdmFQSwECCgAKAAAAAAA5Q7oyDI1qvAgDAAAIAwAAJgAAAAAAAAAAAAAAAAA56AAAT1NHSS1PUFQvc3JjL2phdmEvaW8vU3RyaW5nV3JpdGVyLmphdmFQSwECCgAKAAAAAAA5Q7oyeYppjoQBAACEAQAALQAAAAAAAAAAAAAAAACF6wAAT1NHSS1PUFQvc3JjL2phdmEvaW8vU3luY0ZhaWxlZEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6Mt6gQrazAQAAswEAADAAAAAAAAAAAAAAAAAAVO0AAE9TR0ktT1BUL3NyYy9qYXZhL2lvL1VURkRhdGFGb3JtYXRFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujKuehw2ywEAAMsBAAA2AAAAAAAAAAAAAAAAAFXvAABPU0dJLU9QVC9zcmMvamF2YS9pby9VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyM8isvAsCAAALAgAALwAAAAAAAAAAAAAAAAB08QAAT1NHSS1PUFQvc3JjL2phdmEvaW8vV3JpdGVBYm9ydGVkRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyi6Coe34DAAB+AwAAIAAAAAAAAAAAAAAAAADM8wAAT1NHSS1PUFQvc3JjL2phdmEvaW8vV3JpdGVyLmphdmFQSwECCgAKAAAAAAA5Q7oyAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAACI9wAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9QSwECCgAKAAAAAAA5Q7oyxU8aDb4BAAC+AQAALwAAAAAAAAAAAAAAAAC99wAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9BYnN0cmFjdE1ldGhvZEVycm9yLmphdmFQSwECCgAKAAAAAAA5Q7oyJ8jKk7IBAACyAQAALwAAAAAAAAAAAAAAAADI+QAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Bcml0aG1ldGljRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oy65hQPh0CAAAdAgAAOgAAAAAAAAAAAAAAAADH+wAAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujIHStL3sgEAALIBAAAvAAAAAAAAAAAAAAAAADz+AABPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0FycmF5U3RvcmVFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujJJBUMH0AMAANADAAAjAAAAAAAAAAAAAAAAADsAAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0Jvb2xlYW4uamF2YVBLAQIKAAoAAAAAADlDujKECmRjzwUAAM8FAAAgAAAAAAAAAAAAAAAAAEwEAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0J5dGUuamF2YVBLAQIKAAoAAAAAADlDujJsUU7tkwsAAJMLAAAlAAAAAAAAAAAAAAAAAFkKAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0NoYXJhY3Rlci5qYXZhUEsBAgoACgAAAAAAOUO6MpxbWMolDgAAJQ4AACEAAAAAAAAAAAAAAAAALxYBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3MuamF2YVBLAQIKAAoAAAAAADlDujLIjbnOrgEAAK4BAAAuAAAAAAAAAAAAAAAAAJMkAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0NsYXNzQ2FzdEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MvJr+N+2AQAAtgEAADEAAAAAAAAAAAAAAAAAjSYBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NDaXJjdWxhcml0eUVycm9yLmphdmFQSwECCgAKAAAAAAA5Q7oyikGoXqIBAACiAQAALAAAAAAAAAAAAAAAAACSKAEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9DbGFzc0Zvcm1hdEVycm9yLmphdmFQSwECCgAKAAAAAAA5Q7oyzDH+tVQJAABUCQAAJwAAAAAAAAAAAAAAAAB+KgEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9DbGFzc0xvYWRlci5qYXZhUEsBAgoACgAAAAAAOUO6MvEYFK1sAgAAbAIAADIAAAAAAAAAAAAAAAAAFzQBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MsFN+P/HAQAAxwEAADYAAAAAAAAAAAAAAAAA0zYBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLbq6e4LQEAAC0BAAAlAAAAAAAAAAAAAAAAAO44AQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0Nsb25lYWJsZS5qYXZhUEsBAgoACgAAAAAAOUO6MkhM8SFnAQAAZwEAACYAAAAAAAAAAAAAAAAAXjoBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvQ29tcGFyYWJsZS5qYXZhUEsBAgoACgAAAAAAOUO6Mk/0S+18BwAAfAcAACIAAAAAAAAAAAAAAAAACTwBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRG91YmxlLmphdmFQSwECCgAKAAAAAAA5Q7oyYAKMWnMBAABzAQAAIQAAAAAAAAAAAAAAAADFQwEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9FcnJvci5qYXZhUEsBAgoACgAAAAAAOUO6MpCzHICDAQAAgwEAACUAAAAAAAAAAAAAAAAAd0UBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oy4UdZra4CAACuAgAANwAAAAAAAAAAAAAAAAA9RwEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IuamF2YVBLAQIKAAoAAAAAADlDujIIWFL7dwcAAHcHAAAhAAAAAAAAAAAAAAAAAEBKAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0Zsb2F0LmphdmFQSwECCgAKAAAAAAA5Q7oyfL0X+roBAAC6AQAALgAAAAAAAAAAAAAAAAD2UQEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXJyb3IuamF2YVBLAQIKAAoAAAAAADlDujIXdefDtwEAALcBAAAyAAAAAAAAAAAAAAAAAPxTAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0lsbGVnYWxBY2Nlc3NFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLFxdXExgEAAMYBAAA0AAAAAAAAAAAAAAAAAANWAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0lsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MmSZZ1PWAQAA1gEAADgAAAAAAAAAAAAAAAAAG1gBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6Mla//re6AQAAugEAADEAAAAAAAAAAAAAAAAAR1oBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSWxsZWdhbFN0YXRlRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyjx+2ldoBAADaAQAANwAAAAAAAAAAAAAAAABQXAEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9JbGxlZ2FsVGhyZWFkU3RhdGVFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLF2GGk0gEAANIBAAA4AAAAAAAAAAAAAAAAAH9eAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0luY29tcGF0aWJsZUNsYXNzQ2hhbmdlRXJyb3IuamF2YVBLAQIKAAoAAAAAADlDujL/AtBOygEAAMoBAAA1AAAAAAAAAAAAAAAAAKdgAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLqBwKzugEAALoBAAAuAAAAAAAAAAAAAAAAAMRiAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0luc3RhbnRpYXRpb25FcnJvci5qYXZhUEsBAgoACgAAAAAAOUO6MuGOjqW3AQAAtwEAADIAAAAAAAAAAAAAAAAAymQBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSW5zdGFudGlhdGlvbkV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MsN9zHPsBwAA7AcAACMAAAAAAAAAAAAAAAAA0WYBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSW50ZWdlci5qYXZhUEsBAgoACgAAAAAAOUO6Mn1zX1mdAQAAnQEAACkAAAAAAAAAAAAAAAAA/m4BAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSW50ZXJuYWxFcnJvci5qYXZhUEsBAgoACgAAAAAAOUO6MtWFCIivAQAArwEAADAAAAAAAAAAAAAAAAAA4nABAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvSW50ZXJydXB0ZWRFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujL0UVhviwEAAIsBAAAoAAAAAAAAAAAAAAAAAN9yAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL0xpbmthZ2VFcnJvci5qYXZhUEsBAgoACgAAAAAAOUO6Mu6JSsTOBgAAzgYAACAAAAAAAAAAAAAAAAAAsHQBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTG9uZy5qYXZhUEsBAgoACgAAAAAAOUO6MglS51dwCQAAcAkAACAAAAAAAAAAAAAAAAAAvHsBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTWF0aC5qYXZhUEsBAgoACgAAAAAAOUO6MjpN/8rOAQAAzgEAADYAAAAAAAAAAAAAAAAAaoUBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLx7xYgsgEAALIBAAAwAAAAAAAAAAAAAAAAAIyHAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL05vQ2xhc3NEZWZGb3VuZEVycm9yLmphdmFQSwECCgAKAAAAAAA5Q7oypGjtqrIBAACyAQAALAAAAAAAAAAAAAAAAACMiQEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Ob1N1Y2hGaWVsZEVycm9yLmphdmFQSwECCgAKAAAAAAA5Q7oyzKkOfa8BAACvAQAAMAAAAAAAAAAAAAAAAACIiwEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Ob1N1Y2hGaWVsZEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MsGPgR62AQAAtgEAAC0AAAAAAAAAAAAAAAAAhY0BAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTm9TdWNoTWV0aG9kRXJyb3IuamF2YVBLAQIKAAoAAAAAADlDujK6sfNfswEAALMBAAAxAAAAAAAAAAAAAAAAAIaPAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL05vU3VjaE1ldGhvZEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOUO6MrlCFlq2AQAAtgEAADAAAAAAAAAAAAAAAAAAiJEBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTnVsbFBvaW50ZXJFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujIz7qM1PwIAAD8CAAAiAAAAAAAAAAAAAAAAAIyTAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL051bWJlci5qYXZhUEsBAgoACgAAAAAAOUO6MusxHVrCAQAAwgEAADEAAAAAAAAAAAAAAAAAC5YBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvTnVtYmVyRm9ybWF0RXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyrznbvdUDAADVAwAAIgAAAAAAAAAAAAAAAAAcmAEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9PYmplY3QuamF2YVBLAQIKAAoAAAAAADlDujLz4pOTqQEAAKkBAAAsAAAAAAAAAAAAAAAAADGcAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL091dE9mTWVtb3J5RXJyb3IuamF2YVBLAQIKAAoAAAAAADlDujJ89RRWcgIAAHICAAAjAAAAAAAAAAAAAAAAACSeAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1Byb2Nlc3MuamF2YVBLAQIKAAoAAAAAADlDujIEi0xdSQEAAEkBAAAkAAAAAAAAAAAAAAAAANegAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1J1bm5hYmxlLmphdmFQSwECCgAKAAAAAAA5Q7oytTBp6pwEAACcBAAAIwAAAAAAAAAAAAAAAABiogEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lLmphdmFQSwECCgAKAAAAAAA5Q7oyGNTCtZ8BAACfAQAALAAAAAAAAAAAAAAAAAA/pwEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA5Q7oyHypZulECAABRAgAALQAAAAAAAAAAAAAAAAAoqQEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9SdW50aW1lUGVybWlzc2lvbi5qYXZhUEsBAgoACgAAAAAAOUO6MgreWY6qAQAAqgEAAC0AAAAAAAAAAAAAAAAAxKsBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvU2VjdXJpdHlFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADlDujLmXJPGAAkAAAAJAAArAAAAAAAAAAAAAAAAALmtAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1NlY3VyaXR5TWFuYWdlci5qYXZhUEsBAgoACgAAAAAAOUO6MvOfXdfgBQAA4AUAACEAAAAAAAAAAAAAAAAAArcBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvU2hvcnQuamF2YVBLAQIKAAoAAAAAADlDujJTO9XQsQEAALEBAAAuAAAAAAAAAAAAAAAAACG9AQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1N0YWNrT3ZlcmZsb3dFcnJvci5qYXZhUEsBAgoACgAAAAAAOkO6MhshOl38DQAA/A0AACIAAAAAAAAAAAAAAAAAHr8BAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvU3RyaW5nLmphdmFQSwECCgAKAAAAAAA6Q7oyOUnosfEJAADxCQAAKAAAAAAAAAAAAAAAAABazQEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9TdHJpbmdCdWZmZXIuamF2YVBLAQIKAAoAAAAAADpDujLjCs+AIgIAACICAAA7AAAAAAAAAAAAAAAAAJHXAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1N0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADpDujKnbkTO4QYAAOEGAAAiAAAAAAAAAAAAAAAAAAzaAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1N5c3RlbS5qYXZhUEsBAgoACgAAAAAAOkO6MsL51CkcCAAAHAgAACIAAAAAAAAAAAAAAAAALeEBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVGhyZWFkLmphdmFQSwECCgAKAAAAAAA6Q7oy5jUhvFcBAABXAQAAJwAAAAAAAAAAAAAAAACJ6QEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9UaHJlYWREZWF0aC5qYXZhUEsBAgoACgAAAAAAOkO6Mgvzr2/EBQAAxAUAACcAAAAAAAAAAAAAAAAAJesBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVGhyZWFkR3JvdXAuamF2YVBLAQIKAAoAAAAAADpDujL8kAFb0gIAANICAAAlAAAAAAAAAAAAAAAAAC7xAQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1Rocm93YWJsZS5qYXZhUEsBAgoACgAAAAAAOkO6MuwZJQuZAQAAmQEAACgAAAAAAAAAAAAAAAAAQ/QBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVW5rbm93bkVycm9yLmphdmFQSwECCgAKAAAAAAA6Q7oyKm2+rbIBAACyAQAAMAAAAAAAAAAAAAAAAAAi9gEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9VbnNhdGlzZmllZExpbmtFcnJvci5qYXZhUEsBAgoACgAAAAAAOkO6MuMNHPHaAQAA2gEAADkAAAAAAAAAAAAAAAAAIvgBAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADpDujJ8tCEvjgEAAI4BAAAnAAAAAAAAAAAAAAAAAFP6AQBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL1ZlcmlmeUVycm9yLmphdmFQSwECCgAKAAAAAAA6Q7oyqQgGW7ABAACwAQAALwAAAAAAAAAAAAAAAAAm/AEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9WaXJ0dWFsTWFjaGluZUVycm9yLmphdmFQSwECCgAKAAAAAAA6Q7oyHge/YccBAADHAQAAIAAAAAAAAAAAAAAAAAAj/gEAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9Wb2lkLmphdmFQSwECCgAKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAAAAoAAIAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWYvUEsBAgoACgAAAAAAOkO6MpPZrxffAQAA3wEAADAAAAAAAAAAAAAAAAAAYQACAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmL1BoYW50b21SZWZlcmVuY2UuamF2YVBLAQIKAAoAAAAAADpDujLIqoODPQIAAD0CAAApAAAAAAAAAAAAAAAAAI4CAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZi9SZWZlcmVuY2UuamF2YVBLAQIKAAoAAAAAADpDujLeVorpeAIAAHgCAAAuAAAAAAAAAAAAAAAAABIFAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZi9SZWZlcmVuY2VRdWV1ZS5qYXZhUEsBAgoACgAAAAAAOkO6MjPrKOkIAgAACAIAAC0AAAAAAAAAAAAAAAAA1gcCAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmL1NvZnRSZWZlcmVuY2UuamF2YVBLAQIKAAoAAAAAADpDujKJqGGi1wEAANcBAAAtAAAAAAAAAAAAAAAAACkKAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZi9XZWFrUmVmZXJlbmNlLmphdmFQSwECCgAKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAABLDAIAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L1BLAQIKAAoAAAAAADpDujLK5irRZwIAAGcCAAA0AAAAAAAAAAAAAAAAAIgMAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvQWNjZXNzaWJsZU9iamVjdC5qYXZhUEsBAgoACgAAAAAAOkO6MrKflzO8DgAAvA4AACkAAAAAAAAAAAAAAAAAQQ8CAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9BcnJheS5qYXZhUEsBAgoACgAAAAAAOkO6Ml0aoamcBAAAnAQAAC8AAAAAAAAAAAAAAAAARB4CAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9Db25zdHJ1Y3Rvci5qYXZhUEsBAgoACgAAAAAAOkO6MsCskbcQDQAAEA0AACkAAAAAAAAAAAAAAAAALSMCAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9GaWVsZC5qYXZhUEsBAgoACgAAAAAAOkO6MlC+wNXiAQAA4gEAADUAAAAAAAAAAAAAAAAAhDACAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlci5qYXZhUEsBAgoACgAAAAAAOkO6MrekzPfUAgAA1AIAAD0AAAAAAAAAAAAAAAAAuTICAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oy6vFShBACAAAQAgAAKgAAAAAAAAAAAAAAAADoNQIAT1NHSS1PUFQvc3JjL2phdmEvbGFuZy9yZWZsZWN0L01lbWJlci5qYXZhUEsBAgoACgAAAAAAOkO6MgwB24u3BAAAtwQAACoAAAAAAAAAAAAAAAAAQDgCAE9TR0ktT1BUL3NyYy9qYXZhL2xhbmcvcmVmbGVjdC9NZXRob2QuamF2YVBLAQIKAAoAAAAAADpDujLfTT0cZAYAAGQGAAAsAAAAAAAAAAAAAAAAAD89AgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvTW9kaWZpZXIuamF2YVBLAQIKAAoAAAAAADpDujKg9wcOCwQAAAsEAAApAAAAAAAAAAAAAAAAAO1DAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvUHJveHkuamF2YVBLAQIKAAoAAAAAADpDujL4TCx2YQIAAGECAAA1AAAAAAAAAAAAAAAAAD9IAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvUmVmbGVjdFBlcm1pc3Npb24uamF2YVBLAQIKAAoAAAAAADpDujICXE7dvwIAAL8CAABAAAAAAAAAAAAAAAAAAPNKAgBPU0dJLU9QVC9zcmMvamF2YS9sYW5nL3JlZmxlY3QvVW5kZWNsYXJlZFRocm93YWJsZUV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6MgAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAEE4CAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9QSwECCgAKAAAAAAA6Q7oyojibbRMEAAATBAAAKAAAAAAAAAAAAAAAAABETgIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L0F1dGhlbnRpY2F0b3IuamF2YVBLAQIKAAoAAAAAADpDujK1mTlulgEAAJYBAAAoAAAAAAAAAAAAAAAAAJ1SAgBPU0dJLU9QVC9zcmMvamF2YS9uZXQvQmluZEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6MhQFEEWiAQAAogEAACsAAAAAAAAAAAAAAAAAeVQCAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9Db25uZWN0RXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oy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LU9QVC9zcmMvamF2YS9uZXQvU29ja2V0T3B0aW9ucy5qYXZhUEsBAgoACgAAAAAAOkO6MhDmesEfAwAAHwMAACsAAAAAAAAAAAAAAAAAQ6sCAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9Tb2NrZXRQZXJtaXNzaW9uLmphdmFQSwECCgAKAAAAAAA6Q7oynAkqubIJAACyCQAAHgAAAAAAAAAAAAAAAACrrgIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1VSTC5qYXZhUEsBAgoACgAAAAAAOkO6MnYVBE9SDAAAUgwAACgAAAAAAAAAAAAAAAAAmbgCAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9VUkxDb25uZWN0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyATNnk4oBAACKAQAAJQAAAAAAAAAAAAAAAAAxxQIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1VSTERlY29kZXIuamF2YVBLAQIKAAoAAAAAADpDujIh3OQ43QEAAN0BAAAlAAAAAAAAAAAAAAAAAP7GAgBPU0dJLU9QVC9zcmMvamF2YS9uZXQvVVJMRW5jb2Rlci5qYXZhUEsBAgoACgAAAAAAOkO6Mlr/xdQBBQAAAQUAACsAAAAAAAAAAAAAAAAAHskCAE9TR0ktT1BUL3NyYy9qYXZhL25ldC9VUkxTdHJlYW1IYW5kbGVyLmphdmFQSwECCgAKAAAAAAA6Q7oyrkzIFaIBAACiAQAAMgAAAAAAAAAAAAAAAABozgIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1VSTFN0cmVhbUhhbmRsZXJGYWN0b3J5LmphdmFQSwECCgAKAAAAAAA6Q7oyeF0qrK0BAACtAQAALwAAAAAAAAAAAAAAAABa0AIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1Vua25vd25Ib3N0RXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyDSEd4rkBAAC5AQAAMgAAAAAAAAAAAAAAAABU0gIAT1NHSS1PUFQvc3JjL2phdmEvbmV0L1Vua25vd25TZXJ2aWNlRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAAABd1AIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUEsBAgoACgAAAAAAOkO6Mhh5SNdhAgAAYQIAADQAAAAAAAAAAAAAAAAAltQCAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xDb250ZXh0LmphdmFQSwECCgAKAAAAAAA6Q7oylhm4qz4CAAA+AgAANgAAAAAAAAAAAAAAAABJ1wIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvQWNjZXNzQ29udHJvbEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6MmqwZfvGBAAAxgQAADAAAAAAAAAAAAAAAAAA29kCAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xsZXIuamF2YVBLAQIKAAoAAAAAADpDujL6PGLkPQMAAD0DAAAtAAAAAAAAAAAAAAAAAO/eAgBPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9BbGxQZXJtaXNzaW9uLmphdmFQSwECCgAKAAAAAAA6Q7oywZNrIn0DAAB9AwAALwAAAAAAAAAAAAAAAAB34gIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvQmFzaWNQZXJtaXNzaW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyW3Tc4b4CAAC+AgAAKgAAAAAAAAAAAAAAAABB5gIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvQ29kZVNvdXJjZS5qYXZhUEsBAgoACgAAAAAAOkO6MgBGzCIYAwAAGAMAACoAAAAAAAAAAAAAAAAAR+kCAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1Blcm1pc3Npb24uamF2YVBLAQIKAAoAAAAAADpDujI3fAQwwgIAAMICAAA0AAAAAAAAAAAAAAAAAKfsAgBPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9QZXJtaXNzaW9uQ29sbGVjdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6MiL1cbdSAgAAUgIAACsAAAAAAAAAAAAAAAAAu+8CAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1Blcm1pc3Npb25zLmphdmFQSwECCgAKAAAAAAA6Q7oyZT1mwkcCAABHAgAAJgAAAAAAAAAAAAAAAABW8gIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUG9saWN5LmphdmFQSwECCgAKAAAAAAA6Q7oyQ+fT3u0BAADtAQAAKQAAAAAAAAAAAAAAAADh9AIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJpbmNpcGFsLmphdmFQSwECCgAKAAAAAAA6Q7oyvj4QEm0BAABtAQAAMAAAAAAAAAAAAAAAAAAV9wIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFjdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6MkvJNGq0AgAAtAIAADkAAAAAAAAAAAAAAAAA0PgCAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRBY3Rpb25FeGNlcHRpb24uamF2YVBLAQIKAAoAAAAAADpDujJv9bgvmgEAAJoBAAA5AAAAAAAAAAAAAAAAANv7AgBPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkRXhjZXB0aW9uQWN0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oy0ZL0Y7kCAAC5AgAAMAAAAAAAAAAAAAAAAADM/QIAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvUHJvdGVjdGlvbkRvbWFpbi5qYXZhUEsBAgoACgAAAAAAOkO6MlAhA9A/AgAAPwIAACgAAAAAAAAAAAAAAAAA0wADAE9TR0ktT1BUL3NyYy9qYXZhL3NlY3VyaXR5L1NlY3VyaXR5LmphdmFQSwECCgAKAAAAAAA6Q7oyAAJb1l0CAABdAgAAMgAAAAAAAAAAAAAAAABYAwMAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvU2VjdXJpdHlQZXJtaXNzaW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyif22pKkDAACpAwAANAAAAAAAAAAAAAAAAAAFBgMAT1NHSS1PUFQvc3JjL2phdmEvc2VjdXJpdHkvVW5yZXNvbHZlZFBlcm1pc3Npb24uamF2YVBLAQIKAAoAAAAAADpDujIAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAKAwBPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9jZXJ0L1BLAQIKAAoAAAAAADpDujISui08kgEAAJIBAAAwAAAAAAAAAAAAAAAAAD4KAwBPU0dJLU9QVC9zcmMvamF2YS9zZWN1cml0eS9jZXJ0L0NlcnRpZmljYXRlLmphdmFQSwECCgAKAAAAAAA6Q7oyAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAeDAMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9QSwECCgAKAAAAAAA6Q7oy9z4w0bIEAACyBAAALgAAAAAAAAAAAAAAAABTDAMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9BYnN0cmFjdENvbGxlY3Rpb24uamF2YVBLAQIKAAoAAAAAADpDujLMiDwRXAUAAFwFAAAoAAAAAAAAAAAAAAAAAFERAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL0Fic3RyYWN0TGlzdC5qYXZhUEsBAgoACgAAAAAAOkO6MmpuTmWmBAAApgQAACcAAAAAAAAAAAAAAAAA8xYDAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQWJzdHJhY3RNYXAuamF2YVBLAQIKAAoAAAAAADpDujJ6nzWETwMAAE8DAAAyAAAAAAAAAAAAAAAAAN4bAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL0Fic3RyYWN0U2VxdWVudGlhbExpc3QuamF2YVBLAQIKAAoAAAAAADpDujK5WHwEOAIAADgCAAAnAAAAAAAAAAAAAAAAAH0fAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL0Fic3RyYWN0U2V0LmphdmFQSwECCgAKAAAAAAA6Q7oyJ2oLTRkGAAAZBgAAJQAAAAAAAAAAAAAAAAD6IQMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC9BcnJheUxpc3QuamF2YVBLAQIKAAoAAAAAADpDujKM6WooWBAAAFgQAAAiAAAAAAAAAAAAAAAAAFYoAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL0FycmF5cy5qYXZhUEsBAgoACgAAAAAAOkO6MitwgJa1DwAAtQ8AACQAAAAAAAAAAAAAAAAA7jgDAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvQ2FsZW5kYXIuamF2YVBLAQIKAAoAAAAAADpDujJQzi+uPgQAAD4EAAAmAAAAAAAAAAAAAAAAAOVIAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL0NvbGxlY3Rpb24uamF2YVBL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AAAAzdYDAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL1BLAQIKAAoAAAAAADpDujLLvqtFHAIAABwCAAAlAAAAAAAAAAAAAAAAAAbXAwBPU0dJLU9QVC9zcmMvamF2YS91dGlsL3ppcC9DUkMzMi5qYXZhUEsBAgoACgAAAAAAOkO6Mn5L8g3fAQAA3wEAACgAAAAAAAAAAAAAAAAAZdkDAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL0NoZWNrc3VtLmphdmFQSwECCgAKAAAAAAA6Q7oyQvsQtrMBAACzAQAAMwAAAAAAAAAAAAAAAACK2wMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvRGF0YUZvcm1hdEV4Y2VwdGlvbi5qYXZhUEsBAgoACgAAAAAAOkO6Ml7fEu2ABAAAgAQAACgAAAAAAAAAAAAAAAAAjt0DAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL0luZmxhdGVyLmphdmFQSwECCgAKAAAAAAA6Q7oy+89Nk6AEAACgBAAAMwAAAAAAAAAAAAAAAABU4gMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvSW5mbGF0ZXJJbnB1dFN0cmVhbS5qYXZhUEsBAgoACgAAAAAAOkO6Mt9Ynf5lBwAAZQcAACwAAAAAAAAAAAAAAAAARecDAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL1ppcENvbnN0YW50cy5qYXZhUEsBAgoACgAAAAAAOkO6MsmuwvhTBQAAUwUAACgAAAAAAAAAAAAAAAAA9O4DAE9TR0ktT1BUL3NyYy9qYXZhL3V0aWwvemlwL1ppcEVudHJ5LmphdmFQSwECCgAKAAAAAAA6Q7oy/6T6ZpcBAACXAQAALAAAAAAAAAAAAAAAAACN9AMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvWmlwRXhjZXB0aW9uLmphdmFQSwECCgAKAAAAAAA6Q7oyhdW1CLcDAAC3AwAAJwAAAAAAAAAAAAAAAABu9gMAT1NHSS1PUFQvc3JjL2phdmEvdXRpbC96aXAvWmlwRmlsZS5qYXZhUEsBAgoACgAAAAAAOkO6Momr8SYHBAAABwQAAC4AAAAAAAAAAAAAAAAAavoDAE9TR0ktT1BUL3NyYy9qYXZhL3V0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