REDROOM
PHP 7.4.33
Path:
Logout
Edit File
Size: 388.60 KB
Close
//usr/share/mysql-8.0/ukrainian/errmsg.sys
Text
Base64
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CYMAAJWDAADlgwAAi4QAAMuEAADqhAAAbYUAAL2FAAAAhgAAPIYAAIqGAADUhgAADIcAAHWHAAC6hwAAHYgAAJGIAACyiAAABokAADaJAACFiQAAsYkAAOeJAAAbigAASIoAAHKKAACqigAAtIoAAL6KAAD/igAAOYsAAIaLAACriwAAx4sAAD6MAAB/jAAA3owAACeNAACBjQAAyI0AAP+NAAA0jgAAdI4AALeOAAD9jgAAXo8AAI+PAADRjwAAApAAAGKQAACOkAAAw5AAAAmRAABBkQAAe5EAAK2RAAD7kQAAO5IAAHaSAADYkgAA/5IAADGTAACgkwAAzZMAAA2UAABRlAAAd5QAAKyUAADnlAAAQpUAAKyVAADnlQAAJZYAAEqWAABzlgAAq5YAAMyWAAABlwAASZcAALuXAAD9lwAAN5gAAHKYAACRmAAAs5gAANuYAAAKmQAAHpkAADCZAABmmQAAs5kAAAuaAAAfmgAAUpoAAIyaAAANmwAALJsAAGmbAACBmwAAoZsAALObAADemwAABpwAAEOcAABenAAAfpwAANicAAATnQAAP50AAGidAACEnQAAop0AAOKdAAA3ngAAdp4AAJueAAAJnwAAmp8AAPqfAABGoAAAmKAAAMagAAD9oAAAJKEAADWhAABnoQAAgKEAANChAAA5ogAAVaIAAJSiAADAogAA3aIAABGjAAAyowAAdqMAANajAAD7owAALaQAAF+kAAD7pAAAPqUAAHylAAC4pQAA96UAADqmAABypgAA76YAAHOnAACnpwAA16cAAD2oAABNqAAAaKgAAISoAACYqAAAtagAAN6oAAANqQAAQ6kAAIOpAACyqQAA8KkAAC+qAABmqgAAlqoAAMyqAAD0qgAAUasAAHqrAACpqwAAy6sAAAusAABUrAAAf6wAALCsAADhrAAA+awAABytAABPrQAAja0AAPutAAAirgAAj64AAMuuAAD/rgAAMq8AAGWvAACYrwAABbAAAA6wAAAUsAAAHrAAACuwAAA1sAAAPbAAAGWwAACbsAAAu7AAAN6wAAAIsQAAMbEAAFyxAACHsQAAqLEAAOexAAAOsgAANLIAAE2yAACrsgAA/LIAACWzAABdswAAh7MAAKSzAADOswAAE7QAAGG0AACotAAA4bQAAGy1AAATtgAAvrYAAGy3AAAVuAAAkbgAAB25AACauQAAH7oAAMW6AABjuwAAwbsAACe8AACPvAAAFL0AACW9AACCvQAAvL0AAPe9AAAhvgAAXb4AAJS+AAC2vgAAFb8AAGq/AACzvwAA7r8AACHAAABcwAAAfcAAALTAAAD/wAAAccEAAKrBAADswQAADsIAAEXCAACYwgAA3sIAACrDAABywwAArsMAAEjEAADqxAAAbcUAANnFAAAyxgAAbcYAALDGAADlxgAAGccAAC/HAABLxwAAHsgAAAXJAADTyQAApsoAAHvLAAA0zAAAmcwAAPrMAAAKzgAACs8AAGDPAACKzwAAxs8AACnQAABh0AAApNAAAAzRAABI0QAAgtEAALrRAAD20QAAI9IAAEXSAABz0gAA+dIAAFrTAACg0wAA3dMAAPvTAABG1AAAlNQAAC7VAABt1QAAmtUAAMvVAADs1QAAK9YAAGvWAAC+1gAA9dYAAHnXAAA22AAAOdgAAHHYAACK2AAA0dgAAPLZAABu2gAA29oAAD3bAAB62wAAxNsAABPcAACC3AAAztwAAArdAABz3QAAwN0AAOvdAAAI3gAAL94AAKjeAAAo3wAAk98AAALgAAA54AAAouAAAPLgAAA/4QAAmeEAAM/hAACy4gAA8OIAABDkAAD+5AAA3OUAAGHmAACD5gAAuOYAAPXmAAC65wAA+ucAADHoAABw6AAArugAACrpAABB6QAAWOkAAPzpAACA6gAA4+oAADrrAABq6wAAvesAANLrAAD36wAAE+wAADDsAABU7AAAcewAAKPsAAC27AAA+ewAAAvtAAA07QAAc+0AAMztAAAy7gAAm+4AANruAAAD7wAAbO8AAJfvAADL7wAAFvAAAHTwAADP8AAATfEAAJjxAAD28QAAXfIAAH3yAACX8gAAefMAALjzAAD78wAARvQAAK/0AADj9AAAGfUAALT1AADk9QAADfYAACz2AABs9gAAn/YAAMH2AADy9gAAR/cAAJP3AADD9wAA/PcAAB34AABF+AAAH/kAAFn5AADD+QAABfoAAG36AACP+gAAHPsAAFX7AACJ+wAA6/sAACX8AABv/AAA2/wAACr9AAB2/QAA1P0AAPH9AACP/gAAK/8AAI7/AACs/wAADQABAGEAAQCXAAEA7QABABcBAQC8AQEAwAMBAEcEAQCxBAEAxgQBAAoGAQDMBgEA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NyUEADolBAA9JQQAQCUEAEMlBABGJQQASSUEAEwlBABPJQQAUiUEAFUlBABYJQQAWyUEAF4lBABhJQQAZCUEAGclBABqJQQAbSUEAHAlBABzJQQAdiUEAHklBAB8JQQAfyUEAIIlBACFJQQAiCUEAIslBACOJQQAkSUEAJQlBACXJQQAmiUEAJ0lBACgJQQAoyUEAKYlBACpJQQArCUEAK8lBACyJQQAtSUEALglBAC7JQQAviUEAMElBADEJQQAxyUEAMolBADNJQQA0CUEANMlBADWJQQA2SUEANwlBADfJQQA4iUEAOUlBADoJQQA6yUEAO4lBADxJQQA9CUEAPclBAD6JQQA/SUEAAAmBAADJgQABiYEAAkmBAAMJgQADyYEABImBAAVJgQAaCYEAJAmBADEJgQADicEADknBABhJwQAmCcEAJsnBACeJwQAoScEAKQnBACnJwQA4SgEAAQpBAAsKQQAfykEAN0pBADgKQQANSoEAIgqBAC/KgQAEysEAIUrBAAHLAQAgCwEAKAsBADfLAQAHi0EAFgtBABwLQQAsy4EAO0vBAAfMAQARDAEAHgwBADfMAQA4jAEAOUwBADoMAQA6zAEAB8xBAAiMQQAJTEEACgxBAArMQQALjEEADExBAA0MQQANzEEADoxBAA9MQQAQDEEAEMxBABGMQQASTEEAEwxBABPMQQAUjEEAFUxBABYMQQAWzEEAF4xBABhMQQAZDEEAGcxBABqMQQAbTEEAHAxBABzMQQAdjEEAHkxBAB8MQQAfzEEAIIxBACFMQQAiDEEAIsxBACOMQQAkTEEAJQxBAA3MgQAOjIEAD0yBABAMgQAQzIEAEYyBABJMgQATDIEAE8yBABSMgQAVTIEAFgyBABbMgQAXjIEAIMyBACGMgQAiTIEAIwyBACPMgQAkjIEAJUyBACYMgQAmzIEAJ4yBAChMgQApDIEAKcyBACqMgQArTIEALAyBACzMgQAtjIEALkyBAC8MgQAvzIEAMIyBAATMwQAaDMEAGszBABuMwQAcTMEAHQzBAB3MwQAejMEAH0zBACAMwQAgzMEAIYzBACJMwQAjDMEAI8zBACSMwQAlTMEAJgzBACbMwQAnjMEAKEzBACkMwQApzMEAKozBACtMwQAsDMEALMzBAC2MwQAuTMEALwzBAC/MwQAwjMEAMUzBADIMwQA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TIcEAKqHBAAOiAQAbogEAH6IBACBiAQArYgEANKIBADziAQAEIkEADSJBACEiQQAmokEAL6JBACGigQAyooEADmLBABjiwQAeYsEALCLBADViwQAA4wEAESMBAB4jAQA24wEAB+NBABajQQAiY0EAAKOBABGjgQAoo4EAAGPBAAmjwQASY8EAGePBACBjwQAhI8EAMyPBAAVkAQASJAEAGaQBACNkAQAq5AEAM6QBADRkAQADpEEAEKRBABFkQQASJEEAEuRBABOkQQAUZEEAFSRBABXkQQAWpEEANaRBAARkgQAcpIEAKeSBADjkgQAS5MEANeTBABRlAQAt5QEAOCUBAAalQQARpUEAHOVBACmlQQAJJYEAICWBADBlgQANZcEAMGXBAAemAQAp5gEAMSYBAALmQQAXpkEALKZBADrmQQAT5oEACKbBABJmwQAipsEAMObBADxmwQAUJwEAIGcBADlnAQADZ0EAC6dBABRnQQA350EABeeBADHngQAQ58EAM2fBABxoAQA8qAEAGWhBADfoQQAFKIEAIeiBACcogQAuKIEAAajBABYowQAi6MEAK+jBADTowQA+qMEAP2jBAB0pAQAvaQEANakBAD1pAQAF6UEADKlBABmpQQAHaYEAF2mBABgpgQAf6YEALemBADHpgQA16YEABOnBABIpwQAf6cEAMqnBAAPqAQAgKgEAKWoBADcqAQAV6kEAHGpBACsqQQA5KkEAB2qBABwqgQAu6oEABirBAB+qwQAuKsEAPerBAAzrAQAq6wEACCtBABqrQQA0q0EACmuBACargQA0a4EAAivBAA/rwQAh68EAPOvBABysAQA3bAEAEixBACwsQQAKrIEAJqyBAD7sgQASLMEAJuzBADaswQAKrQEAIq0BADQtAQA97QEAGi1BACgtQQAvrUEAGS2BACdtgQA6bYEADO3BABztwQApbcEAOm3BABEuAQAsbgEALS4BADmuAQAHrkEAHq5BADNuQQABLoEAC66BABmugQAiroEAJm6BAD9ugQAKbsEAJ67BAC6uwQA1rsEAOu7BAArvAQAe7wEALu8BAAJvQQAKr0EAGK9BACXvQQArb0EAMK9BADqvQQAEr4EAEK+BAB4vgQAyr4EABG/BAChvwQAzcAEACDBBACnwQQA58EEAFTCBAC6wgQAWsMEANDDBABQxAQA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MTkycycgKNC/0L7QvNC40LvQutCwOiAlZCAtICVzKQDQndC1INC80L7QttGDINC30YfQuNGC0LDRgtC4INC30LDQv9C40YEg0Lcg0YHQuNGB0YLQtdC80L3QvtGXINGC0LDQsdC70LjRhtGWANCd0LUg0LzQvtC20YMg0L7RgtGA0LjQvNCw0YLQuCDRgdGC0LDRgtGD0YEgJyUtLjIwMHMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQstC40LfQvdCw0YfQuNGC0Lgg0YDQvtCx0L7Rh9GDINGC0LXQutGDICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQt9Cw0LHQu9C+0LrRg9Cy0LDRgtC4INGE0LDQudC7ICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQstGW0LTQutGA0LjRgtC4INGE0LDQudC7OiAnJS0uMjAwcycgKNC/0L7QvNC40LvQutCwOiAlZCAtICVzKQDQndC1INC80L7QttGDINC30L3QsNC50YLQuCDRhNCw0LnQuzogJyUtLjIwMHMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQv9GA0L7Rh9C40YLQsNGC0Lgg0YLQtdC60YMgJyUtLjE5MnMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQv9C10YDQtdC50YLQuCDRgyDRgtC10LrRgyAnJS0uMTkycycgKNC/0L7QvNC40LvQutCwOiAlZCAtICVzKQDQl9Cw0L/QuNGBINCx0YPQu9C+INC30LzRltC90LXQvdC+INC3INGH0LDRgdGDINC+0YHRgtCw0L3QvdGM0L7Qs9C+INGH0LjRgtCw0L3QvdGPINC3INGC0LDQsdC70LjRhtGWICclLS4xOTJzJwDQlNC40YHQuiDQt9Cw0L/QvtCy0L3QtdC90LjQuSAoJXMpLiDQktC40YfQuNC60YPRjiwg0LTQvtC60Lgg0LfQstGW0LvRjNC90LjRgtGM0YHRjyDRgtGA0L7RhdC4INC80ZbRgdGG0Y8uLi4gKNC/0L7QvNC40LvQutCwOiAlZCAtICVzKQDQndC1INC80L7QttGDINC30LDQv9C40YHQsNGC0LgsINC00YPQsdC70Y7RjtGH0LjQudGB0Y8g0LrQu9GO0Ycg0LIg0YLQsNCx0LvQuNGG0ZYgJyUtLjE5MnMnANCd0LUg0LzQvtC20YMg0LfQsNC60YDQuNGC0LggJyUtLjE5MnMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQv9GA0L7Rh9C40YLQsNGC0Lgg0YTQsNC50LsgJyUtLjIwMHMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQv9C10YDQtdC50LzQtdC90YPQstCw0YLQuCAnJS0uMjEwcycg0YMgJyUtLjIxMHMnICjQv9C+0LzQuNC70LrQsDogJWQgLSAlcykA0J3QtSDQvNC+0LbRgyDQt9Cw0L/QuNGB0LDRgtC4INGE0LDQudC7ICclLS4yMDBzJyAo0L/QvtC80LjQu9C60LA6ICVkIC0gJXMpACclLS4xOTJzJyDQt9Cw0LHQu9C+0LrQvtCy0LDQvdC40Lkg0L3QsCDQstC90LXRgdC10L3QvdGPINC30LzRltC9ANCh0L7RgNGC0YPQstCw0L3QvdGPINC/0LXRgNC10YDQstCw0L3QvgDQktC40LPQu9GP0LQgJyUtLjE5MnMnINC90LUg0ZbRgdC90YPRlCDQtNC70Y8gJyUtLjE5MnMnANCe0YLRgNC40LzQsNC90L4g0L/QvtC80LjQu9C60YMgJWQgLSAnJS0uMTkycycg0LLRltC0INC00LXRgdC60YDQuNC/0YLQvtGA0LAg0YLQsNCx0LvQuNGG0ZYA0JTQtdGB0LrRgNC40L/RgtC+0YAg0YLQsNCx0LvQuNGG0ZYgJyUtLjE5MnMnINC90LUg0LzQsNGUINGG0ZbRlNGXINCy0LvQsNGB0YLQuNCy0L7RgdGC0ZYA0J3QtSDQvNC+0LbRgyDQt9Cw0L/QuNGB0LDRgtC4INGDICclLS4xOTJzJwDQpdC40LHQvdCwINGW0L3RhNC+0YDQvNCw0YbRltGPINGDINGE0LDQudC70ZY6ICclLS4yMDBzJwDQpdC40LHQvdC40Lkg0YTQsNC50Lsg0LrQu9GO0YfQtdC5INC00LvRjyDRgtCw0LHQu9C40YbRljogJyUtLjIwMHMnOyDQodC/0YDQvtCx0YPQudGC0LUg0LnQvtCz0L4g0LLRltC00L3QvtCy0LjRgtC4ANCh0YLQsNGA0LjQuSDRhNCw0LnQuyDQutC70Y7Rh9C10Lkg0LTQu9GPINGC0LDQsdC70LjRhtGWICclLS4xOTJzJzsg0JLRltC00L3QvtCy0ZbRgtGMINC50L7Qs9C+IQDQotCw0LHQu9C40YbRjyAnJS0uMTkycycg0YLRltC70YzQutC4INC00LvRjyDRh9C40YLQsNC90L3RjwDQkdGA0LDQuiDQv9Cw0Lwn0Y/RgtGWLiDQoNC10YHRgtCw0YDRgtGD0LnRgtC1INGB0LXRgNCy0LXRgCDRgtCwINGB0L/RgNC+0LHRg9C50YLQtSDQt9C90L7QstGDICjQv9C+0YLRgNGW0LHQvdC+ICVkINCx0LDQudGC0ZbQsikA0JHRgNCw0Log0L/QsNC8J9GP0YLRliDQtNC70Y8g0YHQvtGA0YLRg9Cy0LDQvdC90Y8uINCi0YDQtdCx0LAg0LfQsdGW0LvRjNGI0LjRgtC4INGA0L7Qt9C80ZbRgCDQsdGD0YTQtdGA0LAg0YHQvtGA0YLRg9Cy0LDQvdC90Y8g0YMg0YHQtdGA0LLQtdGA0LAA0KXQuNCx0L3QuNC5INC60ZbQvdC10YbRjCDRhNCw0LnQu9GDICclLS4xOTJzJyAo0L/QvtC80LjQu9C60LA6ICVkIC0gJXMpANCX0LDQsdCw0LPQsNGC0L4g0Lcn0ZTQtNC90LDQvdGMANCR0YDQsNC6INC/0LDQvCfRj9GC0ZY7ICDQn9C10YDQtdCy0ZbRgNGC0LUg0YfQuCBteXNxbGQg0LDQsdC+INGP0LrRltGB0Ywg0ZbQvdGI0ZYg0L/RgNC+0YbQtdGB0Lgg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GO0YLRjCDRg9GB0Y4g0LTQvtGB0YLRg9C/0L3RgyDQv9Cw0Lwn0Y/RgtGMLiDQr9C6INC90ZYsINGC0L4g0LLQuCDQvNC+0LbQtdGC0LUg0YHQutC+0YDQuNGB0YLQsNGC0LjRgdGPICd1bGltaXQnLCDQsNCx0Lgg0LTQvtC30LLQvtC70LjRgtC4IG15c3FsZCDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0LHRltC70YzRiNC1INC/0LDQvCfRj9GC0ZYg0LDQsdC+INCy0Lgg0LzQvtC20LXRgtC1INC00L7QtNCw0YLQuCDQsdGW0LvRjNGI0LUg0LzRltGB0YbRjyDQv9GW0LQg0YHQstCw0L8A0J3QtSDQvNC+0LbRgyDQstC40LfQvdCw0YfQuNGC0Lgg0ZbQvCfRjyDRhdC+0YHRgtGDINC00LvRjyDQstCw0YjQvtGXINCw0LTRgNC10YHQuADQndC10LLRltGA0L3QsCDRg9GB0YLQsNC90L7QstC60LAg0LfQsifRj9C30LrRgwDQlNC+0YHRgtGD0L8g0LfQsNCx0L7RgNC+0L3QtdC90L4g0LTQu9GPINC60L7RgNC40YHRgtGD0LLQsNGH0LA6ICclLS40OHMnQCclLS42NHMnINC00L4g0LHQsNC30Lgg0LTQsNC90L3QuNGFICclLS4xOTJzJwDQlNC+0YHRgtGD0L8g0LfQsNCx0L7RgNC+0L3QtdC90L4g0LTQu9GPINC60L7RgNC40YHRgtGD0LLQsNGH0LA6ICclLS40OHMnQCclLS42NHMnICjQktC40LrQvtGA0LjRgdGC0LDQvdC+INC/0LDRgNC+0LvRjDogJXMpANCR0LDQt9GDINC00LDQvdC90LjRhSDQvdC1INCy0LjQsdGA0LDQvdC+ANCd0LXQstGW0LTQvtC80LAg0LrQvtC80LDQvdC00LAA0KHRgtC+0LLQsdC10YbRjCAnJS0uMTkycycg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDQvdGD0LvRjNC+0LLQuNC8ANCd0LXQstGW0LTQvtC80LAg0LHQsNC30LAg0LTQsNC90L3QuNGFICclLS4xOTJzJwDQotCw0LHQu9C40YbRjyAnJS0uMTkycycg0LLQttC1INGW0YHQvdGD0ZQA0J3QtdCy0ZbQtNC+0LzQsCDRgtCw0LHQu9C40YbRjyAnJS0uMTI5cycA0KHRgtC+0LLQsdC10YbRjCAnJS0uMTkycycg0YMgJS0uMTkycyDQstC40LfQvdCw0YfQtdC90LjQuSDQvdC10L7QtNC90L7Qt9C90LDRh9C90L4A0JfQsNCy0LXRgNGI0YPRlNGC0YzRgdGPINGA0LDQsdC+0YLQsCDRgdC10YDQstC10YDQsADQndC10LLRltC00L7QvNC40Lkg0YHRgtC+0LLQsdC10YbRjCAnJS0uMTkycycg0YMgJyUtLjE5MnMnACclLS4xOTJzJyDQvdC1INGUINGDIEdST1VQIEJZANCd0LUg0LzQvtC20YMg0LPRgNGD0L/Rg9Cy0LDRgtC4INC/0L4gJyUtLjE5MnMnANCjINCy0LjRgNCw0LfRliDQstC40LrQvtGA0LjRgdGC0LDQvdC+INC/0ZbQtNGB0YPQvNC+0LLRg9GO0YfRliDRhNGD0L3QutGG0ZbRlyDQv9C+0YDRj9C0INC3INGW0LzQtdC90LDQvNC4INGB0YLQvtCy0LHRhtGW0LIA0JrRltC70YzQutGW0YHRgtGMINGB0YLQvtCy0LHRhtGW0LIg0L3QtSDRgdC/0ZbQstC/0LDQtNCw0ZQg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30L3QsNGH0LXQvdGMANCG0Lwn0Y8g0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YDQsCAnJS0uMTAwcycg0LfQsNC00L7QstCz0LUA0JTRg9Cx0LvRjtGO0YfQtSDRltC8J9GPINGB0YLQvtCy0LHRhtGPICclLS4xOTJzJwDQlNGD0LHQu9GO0Y7Rh9C1INGW0Lwn0Y8g0LrQu9GO0YfQsCAnJS0uMTkycycA0JTRg9Cx0LvRjtGO0YfQuNC5INC30LDQv9C40YEgJyUtLjE5MnMnINC00LvRjyDQutC70Y7Rh9CwICVkANCd0LXQstGW0YDQvdC40Lkg0YHQv9C10YbQuNGE0ZbQutCw0YLQvtGAINGB0YLQvtCy0LHRhtGPICclLS4xOTJzJwAlcyDQsdGW0LvRjyAnJS0uODBzJyDQsiDRgdGC0YDQvtGG0ZYgJWQA0J/Rg9GB0YLQuNC5INC30LDQv9C40YIA0J3QtdGD0L3RltC60LDQu9GM0L3QsCDRgtCw0LHQu9C40YbRjy/Qv9GB0LXQstC00L7QvdGW0Lw6ICclLS4xOTJzJwDQndC10LLRltGA0L3QtSDQt9C90LDRh9C10L3QvdGPINC/0L4g0LfQsNC80L7QstGH0YPQstCw0L3QvdGOINC00LvRjyAnJS0uMTkycycA0J/QtdGA0LLQuNC90L3QvtCz0L4g0LrQu9GO0YfQsCDQstC40LfQvdCw0YfQtdC90L4g0L3QtdC+0LTQvdC+0YDQsNC30L7QstC+ANCX0LDQsdCw0LPQsNGC0L4g0LrQu9GO0YfRltCyINC30LDQt9C90LDRh9C10L3Qvi4g0JTQvtC30LLQvtC70LXQvdC+INC90LUg0LHRltC70YzRiNC1ICVkINC60LvRjtGH0ZbQsgDQl9Cw0LHQsNCz0LDRgtC+INGH0LDRgdGC0LjQvSDQutC70Y7Rh9CwINC30LDQt9C90LDRh9C10L3Qvi4g0JTQvtC30LLQvtC70LXQvdC+INC90LUg0LHRltC70YzRiNC1ICVkINGH0LDRgdGC0LjQvQDQl9Cw0LfQvdCw0YfQtdC90LjQuSDQutC70Y7RhyDQt9Cw0LTQvtCy0LPQuNC5LiDQndCw0LnQsdGW0LvRjNGI0LAg0LTQvtCy0LbQuNC90LAg0LrQu9GO0YfQsCAlZCDQsdCw0LnRgtGW0LIA0JrQu9GO0YfQvtCy0LjQuSDRgdGC0L7QstCx0LXRhtGMICclLS4xOTJzJyDQvdC1INGW0YHQvdGD0ZQg0YMg0YLQsNCx0LvQuNGG0ZYAQkxPQiDRgdGC0L7QstCx0LXRhtGMICclLS4xOTJzJyDQvdC1INC80L7QttC1INCx0YPRgtC4INCy0LjQutC+0YDQuNGB0YLQsNC90LjQuSDRgyDQstC40LfQvdCw0YfQtdC90L3RliDQutC70Y7Rh9CwINCyINGG0YzQvtC80YMg0YLQuNC/0ZYg0YLQsNCx0LvQuNGG0ZYA0JfQsNC00L7QstCz0LAg0LTQvtCy0LbQuNC90LAg0YHRgtC+0LLQsdGG0Y8gJyUtLjE5MnMnIChtYXggPSAlbHUpLiDQktC40LrQvtGA0LjRgdGC0LDQudGC0LUg0YLQuNC/IEJMT0IA0J3QtdCy0ZbRgNC90LUg0LLQuNC30L3QsNGH0LXQvdC90Y8g0YLQsNCx0LvQuNGG0ZY7INCc0L7QttC1INCx0YPRgtC4INC70LjRiNC1INC+0LTQuNC9INCw0LLRgtC+0LzQsNGC0LjRh9C90LjQuSDRgdGC0L7QstCx0LXRhtGMLCDRidC+INC/0L7QstC40L3QtdC9INCx0YPRgtC4INCy0LjQt9C90LDRh9C10L3QuNC5INGP0Log0LrQu9GO0YcAJXM6INCT0L7RgtC+0LLQuNC5INC00LvRjyDQtyfRlNC00L3QsNC90YwhClZlcnNpb246ICclcycgIHNvY2tldDogJyVzJyAgcG9ydDogJWQAJXM6INCd0L7RgNC80LDQu9GM0L3QtSDQt9Cw0LLQtdGA0YjQtdC90L3RjwoAJXM6INCe0YLRgNC40LzQsNC90L4g0YHQuNCz0L3QsNC7ICVkLiDQn9C10YDQtdGA0LjQstCw0Y7RgdGMIQoAJXM6INCg0L7QsdC+0YLRgyDQt9Cw0LLQtdGA0YjQtdC90L4KACVzOiDQn9GA0LjRgdC60L7RgNGO0Y4g0LfQsNC60YDQuNGC0YLRjyDQs9GW0LvQutC4ICVsZCDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwOiAnJS0uNDhzJwoA0J3QtSDQvNC+0LbRgyDRgdGC0LLQvtGA0LjRgtC4IElQINGA0L7QtyfRlNC8ANCi0LDQsdC70LjRhtGPICclLS4xOTJzJyDQvNCw0ZQg0ZbQvdC00LXQutGBLCDRidC+INC90LUg0YHQv9GW0LLQv9Cw0LTQsNGUINC3INCy0LrQsNC30LDQvdC90LjQvCDRgyBDUkVBVEUgSU5ERVguINCh0YLQstC+0YDRltGC0Ywg0YLQsNCx0LvQuNGG0Y4g0LfQvdC+0LLRgwDQpdC40LHQvdC40Lkg0YDQvtC30LTRltC70Y7QstCw0Ycg0L/QvtC70ZbQsi4g0J/QvtGH0LjRgtCw0LnRgtC1INC00L7QutGD0LzQtdC90YLQsNGG0ZbRjgDQndC1INC80L7QttC90LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INGB0YLQsNC70YMg0LTQvtCy0LbQuNC90YMg0YHRgtGA0L7QutC4INC3IEJMT0IuINCX0LrQvtGA0LjRgdGC0LDQudGC0LXRgdGPICdmaWVsZHMgdGVybWluYXRlZCBieScA0KTQsNC50LsgJyUtLjEyOHMnINC/0L7QstC40L3QtdC9INCx0YPRgtC4INGDINGC0LXRhtGWINCx0LDQt9C4INC00LDQvdC90LjRhSDQsNCx0L4g0LzQsNGC0Lgg0LLRgdGC0LDQvdC+0LLQu9C10L3QtSDQv9GA0LDQstC+INC90LAg0YfQuNGC0LDQvdC90Y8g0LTQu9GPINGD0YHRltGFANCk0LDQudC7ICclLS4yMDBzJyDQstC20LUg0ZbRgdC90YPRlADQl9Cw0L/QuNGB0ZbQsjogJWxkICDQktC40LTQsNC70LXQvdC+OiAlbGQgINCf0YDQvtC/0YPRidC10L3QvjogJWxkICDQl9Cw0YHRgtC10YDQtdC20LXQvdGMOiAlbGQA0JfQsNC/0LjRgdGW0LI6ICVsZCAg0JTRg9Cx0LvRltC60LDRgtGW0LI6ICVsZADQndC10LLRltGA0L3QsCDRh9Cw0YHRgtC40L3QsCDQutC70Y7Rh9CwLiDQktC40LrQvtGA0LjRgdGC0LDQvdCwINGH0LDRgdGC0LjQvdCwINC60LvRjtGH0LAg0L3QtSDRlCDRgdGC0YDQvtC60L7Rjiwg0LfQsNC00L7QstCz0LAg0LDQsdC+INCy0LrQsNC30ZbQstC90LjQuiDRgtCw0LHQu9C40YbRliDQvdC1INC/0ZbQtNGC0YDQuNC80YPRlCDRg9C90ZbQutCw0LvRjNC90LjRhSDRh9Cw0YHRgtC40L0g0LrQu9GO0YfQtdC5ANCd0LUg0LzQvtC20LvQuNCy0L4g0LLQuNC00LDQu9C40YLQuCDQstGB0ZYg0YHRgtC+0LLQsdGG0ZYg0LfQsCDQtNC+0L/QvtC80L7Qs9C+0Y4gQUxURVIgVEFCTEUuINCU0LvRjyDRhtGM0L7Qs9C+INGB0LrQvtGA0LjRgdGC0LDQudGC0LXRgdGPIERST1AgVEFCTEUA0J3QtSDQvNC+0LbRgyBEUk9QICclLS4xOTJzJy4g0J/QtdGA0LXQstGW0YDRgtC1LCDRh9C4INGG0LXQuSDRgdGC0L7QstCx0LXRhtGML9C60LvRjtGHINGW0YHQvdGD0ZQA0JfQsNC/0LjRgdGW0LI6ICVsZCAg0JTRg9Cx0LvRltC60LDRgtGW0LI6ICVsZCAg0JfQsNGB0YLQtdGA0LXQttC10L3RjDogJWxkANCi0LDQsdC70LjRhtGPICclLS4xOTJzJyDRidC+INC30LzRltC90Y7RlNGC0YzRgdGPINC90LUg0LTQvtC30LLQvtC70LXQvdCwINGDINC/0LXRgNC10LvRltC60YMg0YLQsNCx0LvQuNGG0YwgRlJPTQDQndC10LLRltC00L7QvNC40Lkg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0LPRltC70LrQuDogJWx1ANCS0Lgg0L3QtSDQstC+0LvQvtC00LDRgCDQs9GW0LvQutC4ICVsdQDQndC1INCy0LjQutC+0YDQuNGB0YLQsNC90L4g0YLQsNCx0LvQuNGG0YwA0JfQsNCx0LDQs9Cw0YLQviDRgdGC0YDQvtC6INC00LvRjyDRgdGC0L7QstCx0YbRjyAlLS4xOTJzINGC0LAgU0VUANCd0LUg0LzQvtC20YMg0LfQs9C10L3QtdGA0YPQstCw0YLQuCDRg9C90ZbQutCw0LvRjNC90LUg0ZbQvCfRjyBsb2ct0YTQsNC50LvRgyAlLS4yMDBzLigxLTk5OSkKANCi0LDQsdC70LjRhtGOICclLS4xOTJzJyDQt9Cw0LHQu9C+0LrQvtCy0LDQvdC+INGC0ZbQu9GM0LrQuCDQtNC70Y8g0YfQuNGC0LDQvdC90Y8sINGC0L7QvNGDINGX0Zcg0L3QtSDQvNC+0LbQvdCwINC+0L3QvtCy0LjRgtC4ANCi0LDQsdC70LjRhtGOICclLS4xOTJzJyDQvdC1INCx0YPQu9C+INCx0LvQvtC60L7QstCw0L3QviDQtyBMT0NLIFRBQkxFUwDQodGC0L7QstCx0LXRhtGMIEJMT0IgJyUtLjE5MnMnINC90LUg0LzQvtC20LUg0LzQsNGC0Lgg0LfQvdCw0YfQtdC90L3RjyDQv9C+INC30LDQvNC+0LLRh9GD0LLQsNC90L3RjgDQndC10LLRltGA0L3QtSDRltC8J9GPINCx0LDQt9C4INC00LDQvdC90LjRhSAnJS0uMTAwcycA0J3QtdCy0ZbRgNC90LUg0ZbQvCfRjyDRgtCw0LHQu9C40YbRliAnJS0uMTAwcycA0JfQsNC/0LjRgtGDIFNFTEVDVCDQv9C+0YLRgNGW0LHQvdC+INC+0LHRgNC+0LHQuNGC0Lgg0LHQsNCz0LDRgtC+INC30LDQv9C40YHRltCyLCDRidC+LCDQv9C10LLQvdC1LCDQt9Cw0LnQvNC1INC00YPQttC1INCx0LDQs9Cw0YLQviDRh9Cw0YHRgy4g0J/QtdGA0LXQstGW0YDRgtC1INCy0LDRiNC1IFdIRVJFINGC0LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSBTRVQgU1FMX0JJR19TRUxFQ1RTPTEsINGP0LrRidC+INGG0LXQuSDQt9Cw0L/QuNGCIFNFTEVDVCDRlCDQstGW0YDQvdC40LwA0J3QtdCy0ZbQtNC+0LzQsCDQv9C+0LzQuNC70LrQsADQndC10LLRltC00L7QvNCwINC/0YDQvtGG0LXQtNGD0YDQsCAnJS0uMTkycycA0KXQuNCx0L3QsCDQutGW0LvRjNC60ZbRgdGC0Ywg0L/QsNGA0LDQvNC10YLRgNGW0LIg0L/RgNC+0YbQtdC00YPRgNC4ICclLS4xOTJzJwDQpdC40LHQvdC40Lkg0L/QsNGA0LDQvNC10YLQtdGAINC/0YDQvtGG0LXQtNGD0YDQuCAnJS0uMTkycycA0J3QtdCy0ZbQtNC+0LzQsCDRgtCw0LHQu9C40YbRjyAnJS0uMTkycycg0YMgJS0uMzJzANCh0YLQvtCy0LHQtdGG0YwgJyUtLjE5MnMnINC30LDQt9C90LDRh9C10L3QviDQtNCy0ZbRh9GWANCl0LjQsdC90LUg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPINGE0YPQvdC60YbRltGXINCz0YDRg9C/0YPQstCw0L3QvdGPANCi0LDQsdC70LjRhtGPICclLS4xOTJzJyDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZQg0YDQvtC30YjQuNGA0LXQvdC90Y8sINGJ0L4g0L3QtSDRltGB0L3Rg9GUINGDINGG0ZbQuSDQstC10YDRgdGW0ZcgTXlTUUwA0KLQsNCx0LvQuNGG0Y8g0L/QvtCy0LjQvdC90LAg0LzQsNGC0Lgg0YXQvtGH0LDQsSDQvtC00LjQvSDRgdGC0L7QstCx0LXRhtGMANCi0LDQsdC70LjRhtGPICclLS4xOTJzJyDQt9Cw0L/QvtCy0L3QtdC90LAA0J3QtdCy0ZbQtNC+0LzQsCDQutC+0LTQvtCy0LAg0YLQsNCx0LvQuNGG0Y86ICclLS42NHMnANCX0LDQsdCw0LPQsNGC0L4g0YLQsNCx0LvQuNGG0YwuIE15U1FMINC80L7QttC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDQu9C40YjQtSAlZCDRgtCw0LHQu9C40YbRjCDRgyDQvtCxJ9GU0LTQvdCw0L3QvdGWANCX0LDQsdCw0LPQsNGC0L4g0YHRgtC+0LLQsdGG0ZbQsgDQl9Cw0LTQvtCy0LPQsCDRgdGC0YDQvtC60LAuINCd0LDQudCx0ZbQu9GM0YjQvtGOINC00L7QstC20LjQvdC+0Y4g0YHRgtGA0L7QutC4LCDQvdC1INGA0LDRhdGD0Y7Rh9C4IEJMT0IsINGUICVsZC4g0JLQsNC8INC/0L7RgtGA0ZbQsdC90L4g0L/RgNC40LLQtdGB0YLQuCDQtNC10Y/QutGWINGB0YLQvtCy0LHRhtGWINC00L4g0YLQuNC/0YMgQkxPQgDQodGC0LXQuiDQs9GW0LvQvtC6INC/0LXRgNC10L/QvtCy0L3QtdC90L46ICDQktC40LrQvtGA0LjRgdGC0LDQvdC+OiAlbGQg0LcgJWxkLiDQktC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1ICdteXNxbGQgLS10aHJlYWRfc3RhY2s9Iycg0LDQsdC4INC30LDQt9C90LDRh9C40YLQuCDQsdGW0LvRjNGI0LjQuSDRgdGC0LXQuiwg0Y/QutGJ0L4g0L3QtdC+0LHRhdGW0LTQvdC+ANCf0LXRgNC10YXRgNC10YHQvdCwINC30LDQu9C10LbQvdGW0YHRgtGMINGDIE9VVEVSIEpPSU4uINCf0LXRgNC10LLRltGA0YLQtSDRg9C80L7QstGDIE9OAFRhYmxlIGhhbmRsZXIgZG9lc24ndCBzdXBwb3J0IE5VTEwgaW4gZ2l2ZW4gaW5kZXguIFBsZWFzZSBjaGFuZ2UgY29sdW1uICclLS4xOTJzJyB0byBiZSBOT1QgTlVMTCBvciB1c2UgYW5vdGhlciBoYW5kbGVyANCd0LUg0LzQvtC20YMg0LfQsNCy0LDQvdGC0LDQttC40YLQuCDRhNGD0L3QutGG0ZbRjiAnJS0uMTkycycA0J3QtSDQvNC+0LbRgyDRltC90ZbRhtGW0LDQu9GW0LfRg9Cy0LDRgtC4INGE0YPQvdC60YbRltGOICclLS4xOTJzJzsgJS0uMTkycwDQndC1INC00L7Qt9Cy0L7Qu9C10L3QviDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0L/Rg9GC0ZYg0LTQu9GPINGA0L7Qt9C00ZbQu9GO0LLQsNC90LjRhSDQsdGW0LHQu9GW0L7RgtC10LoA0KTRg9C90LrRhtGW0Y8gJyUtLjE5MnMnINCy0LbQtSDRltGB0L3Rg9GUANCd0LUg0LzQvtC20YMg0LLRltC00LrRgNC40YLQuCDRgNC+0LfQtNGW0LvRjtCy0LDQvdGDINCx0ZbQsdC70ZbQvtGC0LXQutGDICclLS4xOTJzJyAo0L/QvtC80LjQu9C60LA6ICVkICUtLjEyOHMpANCd0LUg0LzQvtC20YMg0LfQvdCw0LnRgtC4INGE0YPQvdC60YbRltGOICclLS4xMjhzJyDRgyDQsdGW0LHQu9GW0L7RgtC10YbRlgDQpNGD0L3QutGG0ZbRjiAnJS0uMTkycycg0L3QtSDQstC40LfQvdCw0YfQtdC90L4A0KXQvtGB0YIgJyUtLjI1NXMnINC30LDQsdC70L7QutC+0LLQsNC90L4g0Lcg0L/RgNC40YfQuNC90Lgg0LLQtdC70LjQutC+0Zcg0LrRltC70YzQutC+0YHRgtGWINC/0L7QvNC40LvQvtC6INC3J9GU0LTQvdCw0L3QvdGPLiDQlNC70Y8g0YDQvtC30LHQu9C+0LrRg9Cy0LDQvdC90Y8g0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAnbXlzcWxhZG1pbiBmbHVzaC1ob3N0cycA0KXQvtGB0YLRgyAnJS0uMjU1cycg0L3QtSDQtNC+0LLQvtC70LXQvdC+INC30LIn0Y/Qt9GD0LLQsNGC0LjRgdGMINC3INGG0LjQvCDRgdC10YDQstC10YDQvtC8IE15U1FMANCS0Lgg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GU0YLQtSBNeVNRTCDRj9C6INCw0L3QvtC90ZbQvNC90LjQuSDQutC+0YDQuNGB0YLRg9Cy0LDRhywg0YLQvtC80YMg0LLQsNC8INC90LUg0LTQvtC30LLQvtC70LXQvdC+INC30LzRltC90Y7QstCw0YLQuCDQv9Cw0YDQvtC70ZYA0JLQuCDQv9C+0LLQuNC90ZYg0LzQsNGC0Lgg0L/RgNCw0LLQviDQvdCwINC+0L3QvtCy0LvQtdC90L3RjyDRgtCw0LHQu9C40YbRjCDRgyDQsdCw0LfRliDQtNCw0L3QvdC40YUgbXlzcWwsINCw0LHQuCDQvNCw0YLQuCDQvNC+0LbQu9C40LLRltGB0YLRjCDQt9C80ZbQvdGO0LLQsNGC0Lgg0L/QsNGA0L7Qu9GMINGW0L3RiNC40LwA0J3QtSDQvNC+0LbRgyDQt9C90LDQudGC0Lgg0LLRltC00L/QvtCy0ZbQtNC90LjRhSDQt9Cw0L/QuNGB0ZbQsiDRgyDRgtCw0LHQu9C40YbRliDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwANCX0LDQv9C40YHRltCyINCy0ZbQtNC/0L7QstGW0LTQsNGUOiAlbGQgINCX0LzRltC90LXQvdC+OiAlbGQgINCX0LDRgdGC0LXRgNC10LbQtdC90Yw6ICVsZADQndC1INC80L7QttGDINGB0YLQstC+0YDQuNGC0Lgg0L3QvtCy0YMg0LPRltC70LrRgyAo0L/QvtC80LjQu9C60LAgJWQpLiDQr9C60YnQviDQstC4INC90LUg0LLQuNC60L7RgNC40YHRgtCw0LvQuCDRg9GB0Y4g0L/QsNC8J9GP0YLRjCwg0YLQviDQv9GA0L7Rh9C40YLQsNC50YLQtSDQtNC+0LrRg9C80LXQvdGC0LDRhtGW0Y4g0LTQviDQstCw0YjQvtGXINCe0KEgLSDQvNC+0LbQu9C40LLQviDRhtC1INC/0L7QvNC40LvQutCwINCe0KEA0JrRltC70YzQutGW0YHRgtGMINGB0YLQvtCy0LHRhtGW0LIg0L3QtSDRgdC/0ZbQstC/0LDQtNCw0ZQg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30L3QsNGH0LXQvdGMINGDINGB0YLRgNC+0YbRliAlbGQA0J3QtSDQvNC+0LbRgyDQv9C10YDQtdCy0ZbQtNC60YDQuNGC0Lgg0YLQsNCx0LvQuNGG0Y46ICclLS4xOTJzJwDQpdC40LHQvdC1INCy0LjQutC+0YDQuNGB0YLQsNC90L3RjyDQt9C90LDRh9C10L3QvdGPIE5VTEwA0J7RgtGA0LjQvNCw0L3QviDQv9C+0LzQuNC70LrRgyAnJS0uNjRzJyDQstGW0LQg0YDQtdCz0YPQu9GP0YDQvdC+0LPQviDQstC40YDQsNC30YMA0JfQvNGW0YjRg9Cy0LDQvdC90Y8gR1JPVVAg0YHRgtC+0LLQsdGG0ZbQsiAoTUlOKCksTUFYKCksQ09VTlQoKS4uLikg0Lcg0L3QtSBHUk9VUCDRgdGC0L7QstCx0YbRj9C80Lgg0ZQg0LfQsNCx0L7RgNC+0L3QtdC90LjQvCwg0Y/QutGJ0L4g0L3QtSDQvNCw0ZQgR1JPVVAgQlkA0J/QvtCy0L3QvtCy0LDQttC10L3RjCDQvdC1INCy0LjQt9C90LDRh9C10L3QviDQtNC70Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsCAnJS0uNDhzJyDQtyDRhdC+0YHRgtGDICclLS4yNTVzJwAlLS4xMjhzINC60L7QvNCw0L3QtNCwINC30LDQsdC+0YDQvtC90LXQvdCwINC60L7RgNC40YHRgtGD0LLQsNGH0YM6ICclLS40OHMnQCclLS42NHMnINGDINGC0LDQsdC70LjRhtGWICclLS42NHMnACUtLjE2cyDQutC+0LzQsNC90LTQsCDQt9Cw0LHQvtGA0L7QvdC10L3QsCDQutC+0YDQuNGB0YLRg9Cy0LDRh9GDOiAnJS0uNDhzJ0AnJS0uNjRzJyDQtNC70Y8g0YHRgtC+0LLQsdGG0Y8gJyUtLjE5MnMnINGDINGC0LDQsdC70LjRhtGWICclLS4xOTJzJwDQpdC40LHQvdCwIEdSQU5UL1JFVk9LRSDQutC+0LzQsNC90LTQsDsg0L/RgNC+0YfQuNGC0LDQudGC0LUg0LTQvtC60YPQvNC10L3RgtCw0YbRltGOINGB0YLQvtGB0L7QstC90L4g0YLQvtCz0L4sINGP0LrRliDQv9GA0LDQstCwINC80L7QttC90LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4ANCQ0YDQs9GD0LzQtdC90YIgaG9zdCDQsNCx0L4gdXNlciDQtNC70Y8gR1JBTlQg0LfQsNC00L7QstCz0LjQuQDQotCw0LHQu9C40YbRjyAnJS0uMTkycy4lLS4xOTJzJyDQvdC1INGW0YHQvdGD0ZQA0J/QvtCy0L3QvtCy0LDQttC10L3RjCDQvdC1INCy0LjQt9C90LDRh9C10L3QviDQtNC70Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsCAnJS0uNDhzJyDQtyDRhdC+0YHRgtGDICclLS4yNTVzJyDQtNC70Y8g0YLQsNCx0LvQuNGG0ZYgJyUtLjE5MnMnANCS0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0L3QsCDQutC+0LzQsNC90LTQsCDQvdC1INC00L7Qt9Cy0L7Qu9C10L3QsCDRgyDRhtGW0Lkg0LLQtdGA0YHRltGXIE15U1FMANCjINCy0LDRgSDQv9C+0LzQuNC70LrQsCDRgyDRgdC40L3RgtCw0LrRgdC40YHRliBTUUwARGVsYXllZCBpbnNlcnQgdGhyZWFkIGNvdWxkbid0IGdldCByZXF1ZXN0ZWQgbG9jayBmb3IgdGFibGUgJS0uMTkycwBUb28gbWFueSBkZWxheWVkIHRocmVhZHMgaW4gdXNlANCf0LXRgNC10YDQstCw0L3QviDQtyfRlNC00L3QsNC90L3RjyAlbGQg0LTQviDQsdCw0LfQuCDQtNCw0L3QvdC40YU6ICclLS4xOTJzJyDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwOiAnJS0uNDhzJyAoJS0uNjRzKQDQntGC0YDQuNC80LDQvdC+INC/0LDQutC10YIg0LHRltC70YzRiNC40Lkg0L3RltC2IG1heF9hbGxvd2VkX3BhY2tldADQntGC0YDQuNC80LDQvdC+INC/0L7QvNC40LvQutGDINGH0LjRgtCw0L3QvdGPINC3INC60L7QvNGD0L3RltC60LDRhtGW0LnQvdC+0LPQviDQutCw0L3QsNC70YMA0J7RgtGA0LjQvNCw0L3QviDQv9C+0LzQuNC70LrQutGDINCy0ZbQtCBmY250bCgpANCe0YLRgNC40LzQsNC90L4g0L/QsNC60LXRgtC4INGDINC90LXQvdCw0LvQtdC20L3QvtC80YMg0L/QvtGA0Y/QtNC60YMA0J3QtSDQvNC+0LbRgyDQtNC10LrQvtC80L/RgNC10YHRg9Cy0LDRgtC4INC60L7QvNGD0L3RltC60LDRhtGW0LnQvdC40Lkg0L/QsNC60LXRggDQntGC0YDQuNC80LDQvdC+INC/0L7QvNC40LvQutGDINGH0LjRgtCw0L3QvdGPINC60L7QvNGD0L3RltC60LDRhtGW0LnQvdC40YUg0L/QsNC60LXRgtGW0LIA0J7RgtGA0LjQvNCw0L3QviDQt9Cw0YLRgNC40LzQutGDINGH0LjRgtCw0L3QvdGPINC60L7QvNGD0L3RltC60LDRhtGW0LnQvdC40YUg0L/QsNC60LXRgtGW0LIA0J7RgtGA0LjQvNCw0L3QviDQv9C+0LzQuNC70LrRgyDQt9Cw0L/QuNGB0YMg0LrQvtC80YPQvdGW0LrQsNGG0ZbQudC90LjRhSDQv9Cw0LrQtdGC0ZbQsgDQntGC0YDQuNC80LDQvdC+INC30LDRgtGA0LjQvNC60YMg0LfQsNC/0LjRgdGDINC60L7QvNGD0L3RltC60LDRhtGW0LnQvdC40YUg0L/QsNC60LXRgtGW0LIA0KHRgtGA0L7QutCwINGA0LXQt9GD0LvRjNGC0LDRgtGDINC00L7QstGI0LAg0L3RltC2IG1heF9hbGxvd2VkX3BhY2tldADQktC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINC90LUg0L/RltC00YLRgNC40LzRg9GUIEJMT0IvVEVYVCDRgdGC0L7QstCx0YbRlgDQktC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINC90LUg0L/RltC00YLRgNC40LzRg9GUIEFVVE9fSU5DUkVNRU5UINGB0YLQvtCy0LHRhtGWAElOU0VSVCBERUxBWUVEIGNhbid0IGJlIHVzZWQgd2l0aCB0YWJsZSAnJS0uMTkycycgYmVjYXVzZSBpdCBpcyBsb2NrZWQgd2l0aCBMT0NLIFRBQkxFUwDQndC10LLRltGA0L3QtSDRltC8J9GPINGB0YLQvtCy0LHRhtGPICclLS4xMDBzJwDQktC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0LLQutCw0LfRltCy0L3QuNC6INGC0LDQsdC70LjRhtGWINC90LUg0LzQvtC20LUg0ZbQvdC00LXQutGB0YPQstCw0YLQuCDRgdGC0L7QstCx0LXRhtGMICclLS4xOTJzJwDQotCw0LHQu9C40YbRliDRgyBNRVJHRSBUQUJMRSDQvNCw0Y7RgtGMINGA0ZbQt9C90YMg0YHRgtGA0YPQutGC0YPRgNGDANCd0LUg0LzQvtC20YMg0LfQsNC/0LjRgdCw0YLQuCDQtNC+INGC0LDQsdC70LjRhtGWICclLS4xOTJzJywg0Lcg0L/RgNC40YfQuNC90Lgg0LLQuNC80L7QsyDRg9C90ZbQutCw0LvRjNC90L7RgdGC0ZYA0KHRgtC+0LLQsdC10YbRjCBCTE9CICclLS4xOTJzJyDQstC40LrQvtGA0LjRgdGC0LDQvdC+INGDINCy0LjQt9C90LDRh9C10L3QvdGWINC60LvRjtGH0LAg0LHQtdC3INCy0LrQsNC30LDQvdC90Y8g0LTQvtCy0LbQuNC90Lgg0LrQu9GO0YfQsADQo9GB0ZYg0YfQsNGB0YLQuNC90LggUFJJTUFSWSBLRVkg0L/QvtCy0LjQvdC90ZYg0LHRg9GC0LggTk9UIE5VTEw7INCv0LrRidC+INCy0Lgg0L/QvtGC0YDQtdCx0YPRlNGC0LUgTlVMTCDRgyDQutC70Y7Rh9GWLCDRgdC60L7RgNC40YHRgtCw0LnRgtC10YHRjyBVTklRVUUA0KDQtdC30YPQu9GM0YLQsNGCINC30L3QsNGF0L7QtNC40YLRjNGB0Y8g0YMg0LHRltC70YzRiNC1INC90ZbQtiDQvtC00L3RltC5INGB0YLRgNC+0YbRlgDQptC10Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINC/0L7RgtGA0LXQsdGD0ZQg0L/QtdGA0LLQuNC90L3QvtCz0L4g0LrQu9GO0YfQsADQptGPINCy0LXRgNGB0ZbRjyBNeVNRTCDQvdC1INC30LrQvtC80L/RltC70YzQvtCy0LDQvdCwINC3INC/0ZbQtNGC0YDQuNC80LrQvtGOIFJBSUQA0JLQuCDRgyDRgNC10LbQuNC80ZYg0LHQtdC30L/QtdGH0L3QvtCz0L4g0L7QvdC+0LLQu9C10L3QvdGPINGC0LAg0L3QsNC80LDQs9Cw0ZTRgtC10YHRjCDQvtC90L7QstC40YLQuCDRgtCw0LHQu9C40YbRjiDQsdC10Lcg0L7Qv9C10YDQsNGC0L7RgNCwIFdIRVJFLCDRidC+INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlCBLRVkg0YHRgtC+0LLQsdC10YbRjC4gJXMA0JrQu9GO0YcgJyUtLjE5MnMnINC90LUg0ZbRgdC90YPRlCDQsiDRgtCw0LHQu9C40YbRliAnJS0uMTkycycA0J3QtSDQvNC+0LbRgyDQstGW0LTQutGA0LjRgtC4INGC0LDQsdC70LjRhtGOANCS0LrQsNC30ZbQstC90LjQuiDRgtCw0LHQu9C40YbRliDQvdC1INC/0ZbQtNGC0YDQuNC80YPQtSAlcwDQktCw0Lwg0L3QtSDQtNC+0LfQstC+0LvQtdC90L4g0LLQuNC60L7QvdGD0LLQsNGC0Lgg0YbRjiDQutC+0LzQsNC90LTRgyDQsiDRgtGA0LDQvdC30LDQutGG0ZbRlwDQntGC0YDQuNC80LDQvdC+INC/0L7QvNC40LvQutGDICVkIC0gJyUtLjE5MnMnINC/0ZbQtCDRh9Cw0YEgQ09NTUlUANCe0YLRgNC40LzQsNC90L4g0L/QvtC80LjQu9C60YMgJWQgLSAnJS0uMTkycycg0L/RltC0INGH0LDRgSBST0xMQkFDSwDQntGC0YDQuNC80LDQvdC+INC/0L7QvNC40LvQutGDICVkINC/0ZbQtCDRh9Cw0YEgRkxVU0hfTE9HUwDQntGC0YDQuNC80LDQvdC+INC/0L7QvNC40LvQutGDICVkINC/0ZbQtCDRh9Cw0YEgQ0hFQ0tQT0lOVADQn9C10YDQtdGA0LLQsNC90L4g0Lcn0ZTQtNC90LDQvdC90Y8gJXUg0LTQviDQsdCw0LfQuCDQtNCw0L3QvdC40YU6ICclLS4xOTJzJyDQutC+0YDQuNGB0YLRg9Cy0LDRhzogJyUtLjQ4cycg0YXQvtGB0YI6ICclLS4yNTVzJyAoJS0uNjRzKQDQptC10Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINC90LUg0L/RltC00YLRgNC40LzRg9GUINCx0ZbQvdCw0YDQvdGDINC/0LXRgNC10LTQsNGH0YMg0YLQsNCx0LvQuNGG0ZYA0KDQtdC/0LvRltC60LDRhtGW0LnQvdC40Lkg0LvQvtCzINC30LDQutGA0LjRgtC+LCDQvdC1INC80L7QttGDINCy0LjQutC+0L3QsNGC0LggUkVTRVQgTUFTVEVSANCd0LXQstC00LDQu9C1INCy0ZbQtNC90L7QstC70LXQvdC90Y8g0ZbQvdC00LXQutGB0LAg0L/QtdGA0LXQtNCw0L3QvtGXINGC0LDQsdC70LjRhtGWICclLS4xOTJzJwDQn9C+0LzQuNC70LrQsCDQstGW0LQg0LPQvtC70L7QstC90L7Qs9C+OiAnJS0uNjRzJwDQnNC10YDQtdC20LXQstCwINC/0L7QvNC40LvQutCwINGH0LjRgtCw0L3QvdGPINCy0ZbQtCDQs9C+0LvQvtCy0L3QvtCz0L4A0JzQtdGA0LXQttC10LLQsCDQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0LTQviDQs9C+0LvQvtCy0L3QvtCz0L4A0J3QtSDQvNC+0LbRgyDQt9C90LDQudGC0LggRlVMTFRFWFQg0ZbQvdC00LXQutGBLCDRidC+INCy0ZbQtNC/0L7QstGW0LTQsNGUINC/0LXRgNC10LvRltC60YMg0YHRgtC+0LLQsdGG0ZbQsgDQndC1INC80L7QttGDINCy0LjQutC+0L3QsNGC0Lgg0L/QvtC00LDQvdGDINC60L7QvNCw0L3QtNGDINGC0L7QvNGDLCDRidC+INGC0LDQsdC70LjRhtGPINC30LDQsdC70L7QutC+0LLQsNC90LAg0LDQsdC+INCy0LjQutC+0L3Rg9GU0YLRjNGB0Y8g0YLRgNCw0L3Qt9Cw0LrRhtGW0Y8A0J3QtdCy0ZbQtNC+0LzQsCDRgdC40YHRgtC10LzQvdCwINC30LzRltC90L3QsCAnJS0uNjRzJwDQotCw0LHQu9C40YbRjiAnJS0uMTkycycg0LzQsNGA0LrQvtCy0LDQvdC+INGP0Log0LfRltC/0YHQvtCy0LDQvdGDINGC0LAg0ZfRlyDQv9C+0YLRgNGW0LHQvdC+INCy0ZbQtNC90L7QstC40YLQuADQotCw0LHQu9C40YbRjiAnJS0uMTkycycg0LzQsNGA0LrQvtCy0LDQvdC+INGP0Log0LfRltC/0YHQvtCy0LDQvdGDINGC0LAg0L7RgdGC0LDQvdC90ZQgKNCw0LLRgtC+0LzQsNGC0LjRh9C90LU/KSDQstGW0LTQvdC+0LLQu9C10L3QvdGPINC90LUg0LLQtNCw0LvQvtGB0Y8A0JfQsNGB0YLQtdGA0LXQttC10L3QvdGPOiDQlNC10Y/QutGWINC90LXRgtGA0LDQvdC30LDQutGG0ZbQudC90ZYg0LfQvNGW0L3QuCDRgtCw0LHQu9C40YbRjCDQvdC1INC80L7QttC90LAg0LHRg9C00LUg0L/QvtCy0LXRgNC90YPRgtC4ANCi0YDQsNC90LfQsNC60YbRltGPINC3INCx0LDQs9Cw0YLRjNC80LAg0LLQuNGA0LDQt9Cw0LzQuCDQstC40LzQsNCz0LDRlCDQsdGW0LvRjNGI0LUg0L3RltC2ICdtYXhfYmlubG9nX2NhY2hlX3NpemUnINCx0LDQudGC0ZbQsiDQtNC70Y8g0LfQsdC10YDRltCz0LDQvdC90Y8uINCX0LHRltC70YzRiNGC0LUg0YbRjiDQt9C80ZbQvdC90YMgbXlzcWxkINGC0LAg0YHQv9GA0L7QsdGD0LnRgtC1INC30L3QvtCy0YMA0J7Qv9C10YDQsNGG0ZbRjyDQvdC1INC80L7QttC1INCx0YPRgtC4INCy0LjQutC+0L3QsNC90LAg0Lcg0LfQsNC/0YPRidC10L3QuNC8INC/0ZbQtNC70LXQs9C70LjQvCwg0YHQv9C+0YfQsNGC0LrRgyDQstC40LrQvtC90LDQudGC0LUgU1RPUCBTTEFWRQDQntC/0LXRgNCw0YbRltGPINCy0LjQvNCw0LPQsNGUINC30LDQv9GD0YnQtdC90L7Qs9C+INC/0ZbQtNC70LXQs9C70L7Qs9C+LCDQt9C60L7QvdGE0ZbQs9GD0YDRg9C50YLQtSDQv9GW0LTQu9C10LPQu9C+0LPQviDRgtCwINCy0LjQutC+0L3QsNC50YLQtSBTVEFSVCBTTEFWRQDQodC10YDQstC10YAg0L3QtSDQt9C60L7QvdGE0ZbQs9GD0YDQvtCy0LDQvdC+INGP0Log0L/RltC00LvQtdCz0LvQuNC5LCDQstC40L/RgNCw0LLRgtC1INGG0LUg0YMg0YTQsNC50LvRliDQutC+0L3RhNGW0LPRg9GA0LDRhtGW0Zcg0LDQsdC+INC3IENIQU5HRSBNQVNURVIgVE8AQ291bGQgbm90IGluaXRpYWxpemUgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmU7IG1vcmUgZXJyb3IgbWVzc2FnZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBNeVNRTCBlcnJvciBsb2cA0J3QtSDQvNC+0LbRgyDRgdGC0LLQvtGA0LjRgtC4INC/0ZbQtNC70LXQs9C70YMg0LPRltC70LrRgywg0L/QtdGA0LXQstGW0YDRgtC1INGB0LjRgdGC0LXQvNC90ZYg0YDQtdGB0YPRgNGB0LgA0JrQvtGA0LjRgdGC0YPQstCw0YcgJS0uNjRzINCy0LbQtSDQvNCw0ZQg0LHRltC70YzRiNC1INC90ZbQtiAnbWF4X3VzZXJfY29ubmVjdGlvbnMnINCw0LrRgtC40LLQvdC40YUg0Lcn0ZTQtNC90LDQvdGMANCc0L7QttC90LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INC70LjRiNC1INCy0LjRgNCw0LfQuCDQt9GWINGB0YLQsNC70LjQvNC4INGDIFNFVADQl9Cw0YLRgNC40LzQutGDINC+0YfRltC60YPQstCw0L3QvdGPINCx0LvQvtC60YPQstCw0L3QvdGPINCy0LjRh9C10YDQv9Cw0L3QvgDQl9Cw0LPQsNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDQsdC70L7QutGD0LLQsNC90Ywg0L/QtdGA0LXQstC40YnQuNC70LAg0YDQvtC30LzRltGAINCx0LvQvtC60YPQstCw0L3RjCDQtNC70Y8g0YLQsNCx0LvQuNGG0ZYA0J7QvdC+0LLQuNGC0Lgg0LHQu9C+0LrRg9Cy0LDQvdC90Y8g0L3QtSDQvNC+0LbQu9C40LLQviDQvdCwINC/0YDQvtGC0Y/Qt9GWINGC0YDQsNC90LfQsNC60YbRltGXIFJFQUQgVU5DT01NSVRURUQARFJPUCBEQVRBQkFTRSDQvdC1INC00L7Qt9Cy0L7Qu9C10L3QviDQtNC+0LrQuCDQs9GW0LvQutCwINC/0LXRgNC10LHRg9Cy0LDRlCDQv9GW0LQg0LfQsNCz0LDQu9GM0L3QuNC8INCx0LvQvtC60YPQstCw0L3QvdGP0Lwg0YfQuNGC0LDQvdC90Y8AQ1JFQVRFIERBVEFCQVNFINC90LUg0LTQvtC30LLQvtC70LXQvdC+INC00L7QutC4INCz0ZbQu9C60LAg0L/QtdGA0LXQsdGD0LLQsNGUINC/0ZbQtCDQt9Cw0LPQsNC70YzQvdC40Lwg0LHQu9C+0LrRg9Cy0LDQvdC90Y/QvCDRh9C40YLQsNC90L3RjwDQpdC40LHQvdC40Lkg0LDRgNCz0YPQvNC10L3RgiDQtNC70Y8gJXMA0JrQvtGA0LjRgdGC0YPQstCw0YfRgyAnJS0uNDhzJ0AnJS0uNjRzJyDQvdC1INC00L7Qt9Cy0L7Qu9C10L3QviDRgdGC0LLQvtGA0Y7QstCw0YLQuCDQvdC+0LLQuNGFINC60L7RgNC40YHRgtGD0LLQsNGH0ZbQsgBJbmNvcnJlY3QgdGFibGUgZGVmaW5pdGlvbjsgYWxsIE1FUkdFIHRhYmxlcyBtdXN0IGJlIGluIHRoZSBzYW1lIGRhdGFiYXNlAERlYWRsb2NrIGZvdW5kIHdoZW4gdHJ5aW5nIHRvIGdldCBsb2NrOyB0cnkgcmVzdGFydGluZyB0cmFuc2FjdGlvbgDQktC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINC90LUg0L/RltC00YLRgNC40LzRg9GUIEZVTExURVhUINGW0L3QtNC10LrRgdGW0LIAQ2Fubm90IGFkZCBmb3JlaWduIGtleSBjb25zdHJhaW50AENhbm5vdCBhZGQgb3IgdXBkYXRlIGEgY2hpbGQgcm93OiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgZmFpbHMAQ2Fubm90IGRlbGV0ZSBvciB1cGRhdGUgYSBwYXJlbnQgcm93OiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgZmFpbHMARXJyb3IgY29ubmVjdGluZyB0byBzb3VyY2U6ICUtLjEyOHMARXJyb3IgcnVubmluZyBxdWVyeSBvbiBzb3VyY2U6ICUtLjEyOHMARXJyb3Igd2hlbiBleGVjdXRpbmcgY29tbWFuZCAlczogJS0uMTI4cwBXcm9uZyB1c2FnZSBvZiAlcyBhbmQgJXMAVGhlIHVzZWQgU0VMRUNUIHN0YXRlbWVudHMgaGF2ZSBhIGRpZmZlcmVudCBudW1iZXIgb2YgY29sdW1ucwBDYW4ndCBleGVjdXRlIHRoZSBxdWVyeSBiZWNhdXNlIHlvdSBoYXZlIGEgY29uZmxpY3RpbmcgcmVhZCBsb2NrAE1peGluZyBvZiB0cmFuc2FjdGlvbmFsIGFuZCBub24tdHJhbnNhY3Rpb25hbCB0YWJsZXMgaXMgZGlzYWJsZWQAT3B0aW9uICclcycgdXNlZCB0d2ljZSBpbiBzdGF0ZW1lbnQAVXNlciAnJS0uNjRzJyBoYXMgZXhjZWVkZWQgdGhlICclcycgcmVzb3VyY2UgKGN1cnJlbnQgdmFsdWU6ICVsZCkAQWNjZXNzIGRlbmllZC4gWW91IG5lZWQgdGhlICUtLjEyOHMgcHJp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dXQgZGF0YSBjb3JydXB0ZWQAUm93ICV1IHdhcyBjdXQgYnkgR1JPVVBfQ09OQ0FUKCkAUm93ICVsZCBkb2Vzbid0IGNvbnRhaW4gZGF0YSBmb3IgYWxsIGNvbHVtbnMAUm93ICVsZCB3YXMgdHJ1bmNhdGVkOyBpdCBjb250YWluZWQgbW9yZSBkYXRhIHRoYW4gdGhlcmUgd2VyZSBpbnB1dCBjb2x1bW5zAENvbHVtbiBzZXQgdG8gZGVmYXVsdCB2YWx1ZTsgTlVMTCBzdXBwbGllZCB0byBOT1QgTlVMTCBjb2x1bW4gJyVzJyBhdCByb3cgJWxkAE91dCBvZiByYW5nZSB2YWx1ZSBmb3IgY29sdW1uICclcycgYXQgcm93ICVsZABEYXRhIHRydW5jYXRlZCBmb3IgY29sdW1uICclcycgYXQgcm93ICVsZABVc2luZyBzdG9yYWdlIGVuZ2luZSAlcyBmb3IgdGFibGUgJyVzJwBJbGxlZ2FsIG1peCBvZiBjb2xsYXRpb25zICglcywlcykgYW5kICglcywlcykgZm9yIG9wZXJhdGlvbiAnJXMnAENhbm5vdCBkcm9wIG9uZSBvciBtb3JlIG9mIHRoZSByZXF1ZXN0ZWQgdXNlcnMAQ2FuJ3QgcmV2b2tlIGFsbCBwcml2aWxlZ2VzIGZvciBvbmUgb3IgbW9yZSBvZiB0aGUgcmVxdWVzdGVkIHVzZXJzAElsbGVnYWwgbWl4IG9mIGNvbGxhdGlvbnMgKCVzLCVzKSwgKCVzLCVzKSwgKCVzLCVzKSBmb3Igb3BlcmF0aW9uICclcycASWxsZWdhbCBtaXggb2YgY29sbGF0aW9ucyBmb3Igb3BlcmF0aW9uICclcycAVmFyaWFibGUgJyUtLjY0cycgaXMgbm90IGEgdmFyaWFibGUgY29tcG9uZW50IChjYW4ndCBiZSB1c2VkIGFzIFhYWFgudmFyaWFibGVfbmFtZSkAVW5rbm93biBjb2xsYXRpb246ICclLS42NHMnAFNTTCBwYXJhbWV0ZXJzIGluIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgYXJlIGlnbm9yZWQgYmVjYXVzZSB0aGlzIE15U1FMIHJlcGxpY2Egd2FzIGNvbXBpbGVkIHdpdGhvdXQgU1NMIHN1cHBvcnQ7IHRoZXkgY2FuIGJlIHVzZWQgbGF0ZXIgaWYgTXlTUUwgcmVwbGljYSB3aXRoIFNTTCBpcyBzdGFydGVkAFNlcnZlciBpcyBydW5uaW5nIGluIC0tc2VjdXJlLWF1dGggbW9kZSwgYnV0ICclcydAJyVzJyBoYXMgYSBwYXNzd29yZCBpbiB0aGUgb2xkIGZvcm1hdDsgcGxlYXNlIGNoYW5nZSB0aGUgcGFzc3dvcmQgdG8gdGhlIG5ldyBmb3JtYXQA0KHRgtC+0LLQsdC10YbRjCDQsNCx0L4g0L/QvtGB0LjQu9Cw0L3QvdGPICclLS4xOTJzJXMlLS4xOTJzJXMlLS4xOTJzJyDRltC3IFNFTEVDVNGDICMlZCDQsdGD0LvQviDQt9C90LDQudC00LXQvdC1INGDIFNFTEVDVNGWICMlZABJbmNvcnJlY3QgcGFyYW1ldGVyIG9yIGNvbWJpbmF0aW9uIG9mIHBhcmFtZXRlcnMgZm9yIFNUQVJUIFJFUExJQ0EgVU5USUwASXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIC0tc2tpcC1yZXBsaWNhLXN0YXJ0IHdoZW4gZG9pbmcgc3RlcC1ieS1zdGVwIHJlcGxpY2F0aW9uIHdpdGggU1RBUlQgUkVQTElDQSBVTlRJTDsgb3RoZXJ3aXNlLCB5b3Ugd2lsbCBnZXQgcHJvYmxlbXMgaWYgeW91IGdldCBhbiB1bmV4cGVjdGVkIHJlcGxpY2EncyBteXNxbGQgcmVzdGFydABTUUwgdGhyZWFkIGlzIG5vdCB0byBiZSBzdGFydGVkIHNvIFVOVElMIG9wdGlvbnMgYXJlIGlnbm9yZWQASW5jb3JyZWN0IGluZGV4IG5hbWUgJyUtLjEwMHMnAEluY29ycmVjdCBjYXRhbG9nIG5hbWUgJyUtLjEwMHMnANCa0LXRiCDQt9Cw0L/QuNGC0ZbQsiDQvdC10YHQv9GA0L7QvNC+0LbQtdC9INCy0YHRgtCw0L3QvtCy0LjRgtC4INGA0L7Qt9C80ZbRgCAlbHUsINC90L7QstC40Lkg0YDQvtC30LzRltGAINC60LXRiNCwINC30LDQv9C40YLRltCyIC0gJWx1AENvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIHBhcnQgb2YgRlVMTFRFWFQgaW5kZXgAVW5rbm93biBrZXkgY2FjaGUgJyUtLjEwMHMnAE15U1FMIGlzIHN0YXJ0ZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlOyB5b3UgbXVzdCByZXN0YXJ0IGl0IHdpdGhvdXQgdGhpcyBzd2l0Y2ggZm9yIHRoaXMgZ3JhbnQgdG8gd29yawBVbmtub3duIHN0b3JhZ2UgZW5naW5lICclcycAJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIHVzZSAlcyBpbnN0ZWFkANCi0LDQsdC70LjRhtGPICUtLjEwMHMg0YMgJXMg0L3QtSDQvNC+0LbQtSDQvtC90L7QstC70Y7QstCw0YLQuNGB0YwAVGhlICclcycgZmVhdHVyZSBpcyBkaXNhYmxlZDsgeW91IG5lZWQgTXlTUUwgYnVpbHQgd2l0aCAnJXMnIHRvIGhhdmUgaXQgd29ya2luZwBUaGUgTXlTUUwgc2VydmVyIGlzIHJ1bm5pbmcgd2l0aCB0aGUgJXMgb3B0aW9uIHNvIGl0IGNhbm5vdCBleGVjdXRlIHRoaXMgc3RhdGVtZW50AENvbHVtbiAnJS0uMTAwcycgaGFzIGR1cGxpY2F0ZWQgdmFsdWUgJyUtLjY0cycgaW4gJXMAVHJ1bmNhdGVkIGluY29ycmVjdCAlLS42NHMgdmFsdWU6ICclLS4xMjhzJwBJbmNvcnJlY3QgdGFibGUgZGVmaW5pdGlvbjsgdGhlcmUgY2FuIGJlIG9ubHkgb25lIFRJTUVTVEFNUCBjb2x1bW4gd2l0aCBDVVJSRU5UX1RJTUVTVEFNUCBpbiBERUZBVUxUIG9yIE9OIFVQREFURSBjbGF1c2UASW52YWxpZCBPTiBVUERBVEUgY2xhdXNlIGZvciAnJS0uMTkycycgY29sdW1uAFRoaXMgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBwcmVwYXJlZCBzdGF0ZW1lbnQgcHJvdG9jb2wgeWV0AEdvdCBlcnJvciAlZCAnJS0uMTAwcycgZnJvbSAlcwBHb3QgdGVtcG9yYXJ5IGVycm9yICVkICclLS4xMDBzJyBmcm9tICVzAFVua25vd24gb3IgaW5jb3JyZWN0IHRpbWUgem9uZTogJyUtLjY0cycASW52YWxpZCBUSU1FU1RBTVAgdmFsdWUgaW4gY29sdW1uICclcycgYXQgcm93ICVsZABJbnZhbGlkICVzIGNoYXJhY3RlciBzdHJpbmc6ICclLjY0cycAUmVzdWx0IG9mICVzKCkgd2FzIGxhcmdlciB0aGFuIG1heF9hbGxvd2VkX3BhY2tldCAoJWxkKSAtIHRydW5jYXRlZABDb25mbGljdGluZyBkZWNsYXJhdGlvbnM6ICclcyVzJyBhbmQgJyVzJXMnAENhbid0IGNyZWF0ZSBhICVzIGZyb20gd2l0aGluIGFub3RoZXIgc3RvcmVkIHJvdXRpbmUAJXMgJXMgYWxyZWFkeSBleGlzdHMAJXMgJXMgZG9lcyBub3QgZXhpc3QARmFpbGVkIHRvIERST1AgJXMgJXMARmFpbGVkIHRvIENSRUFURSAlcyAlcwAlcyB3aXRoIG5vIG1hdGNoaW5nIGxhYmVsOiAlcwBSZWRlZmluaW5nIGxhYmVsICVzAEVuZC1sYWJlbCAlcyB3aXRob3V0IG1hdGNoAFJlZmVycmluZyB0byB1bmluaXRpYWxpemVkIHZhcmlhYmxlICVzAFBST0NFRFVSRSAlcyBjYW4ndCByZXR1cm4gYSByZXN1bHQgc2V0IGluIHRoZSBnaXZlbiBjb250ZXh0AFJFVFVSTiBpcyBvbmx5IGFsbG93ZWQgaW4gYSBGVU5DVElPTgAlcyBpcyBub3QgYWxsb3dlZCBpbiBzdG9yZWQgcHJvY2VkdXJlcwBUaGUgdXBkYXRlIGxvZyBpcyBkZXByZWNhdGVkIGFuZCByZXBsYWNlZCBieSB0aGUgYmluYXJ5IGxvZzsgU0VUIFNRTF9MT0dfVVBEQVRFIGhhcyBiZWVuIGlnbm9yZWQuAFRoZSB1cGRhdGUgbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHJlcGxhY2VkIGJ5IHRoZSBiaW5hcnkgbG9nOyBTRVQgU1FMX0xPR19VUERBVEUgaGFzIGJlZW4gdHJhbnNsYXRlZCB0byBTRVQgU1FMX0xPR19CSU4uAFF1ZXJ5IGV4ZWN1dGlvbiB3YXMgaW50ZXJydXB0ZWQASW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHMgZm9yICVzICVzOyBleHBlY3RlZCAldSwgZ290ICV1AFVuZGVmaW5lZCBDT05ESVRJT046ICVzAE5vIFJFVFVSTiBmb3VuZCBpbiBGVU5DVElPTiAlcwBGVU5DVElPTiAlcyBlbmRlZCB3aXRob3V0IFJFVFVSTgBDdXJzb3Igc3RhdGVtZW50IG11c3QgYmUgYSBTRUxFQ1QAQ3Vyc29yIFNFTEVDVCBtdXN0IG5vdCBoYXZlIElOVE8AVW5kZWZpbmVkIENVUlNPUjogJXMAQ3Vyc29yIGlzIGFscmVhZHkgb3BlbgBDdXJzb3IgaXMgbm90IG9wZW4AVW5kZWNsYXJlZCB2YXJpYWJsZTogJXMASW5jb3JyZWN0IG51bWJlciBvZiBGRVRDSCB2YXJpYWJsZXMATm8gZGF0YSAtIHplcm8gcm93cyBmZXRjaGVkLCBzZWxlY3RlZCwgb3IgcHJvY2Vzc2VkAER1cGxpY2F0ZSBwYXJhbWV0ZXI6ICVzAER1cGxpY2F0ZSB2YXJpYWJsZTogJXMARHVwbGljYXRlIGNvbmRpdGlvbjogJXMARHVwbGljYXRlIGN1cnNvcjogJXMARmFpbGVkIHRvIEFMVEVSICVzICVzAFN1YnF1ZXJ5IHZhbHVlIG5vdCBzdXBwb3J0ZWQAJXMgaXMgbm90IGFsbG93ZWQgaW4gc3RvcmVkIGZ1bmN0aW9uIG9yIHRyaWdnZXIAVmFyaWFibGUgb3IgY29uZGl0aW9uIGRlY2xhcmF0aW9uIGFmdGVyIGN1cnNvciBvciBoYW5kbGVyIGRlY2xhcmF0aW9uAEN1cnNvciBkZWNsYXJhdGlvbiBhZnRlciBoYW5kbGVyIGRlY2xhcmF0aW9uAENhc2Ugbm90IGZvdW5kIGZvciBDQVNFIHN0YXRlbWVudADQl9Cw0L3QsNC00YLQviDQstC10LvQuNC60LjQuSDQutC+0L3RhNGW0LPRg9GA0LDRhtGW0LnQvdC40Lkg0YTQsNC50LsgJyUtLjE5MnMnANCd0LXQstGW0YDQvdC40Lkg0LfQsNCz0L7Qu9C+0LLQvtC6INGC0LjQv9GDINGDINGE0LDQudC70ZYgJyUtLjE5MnMnANCd0LXRgdC/0L7QtNGW0LLQsNC90L3QuNC5INC60ZbQvdC10YbRjCDRhNCw0LnQu9GDINGDINC60L7QvNC10L3RgtCw0YDRliAnJS0uMjAwcycA0J/QvtC80LjQu9C60LAg0LIg0YDQvtGB0L/RltC30L3QsNCy0LDQvdC90ZYg0L/QsNGA0LDQvNC10YLRgNGDICclLS4xOTJzJyAo0YDRj9C00L7QujogJyUtLjE5MnMnKQDQndC10YHQv9C+0LTRltCy0LDQvdC90LjQuSDQutGW0L3QtdGG0Ywg0YTQsNC50LvRgyDRgyDRgdC/0YDQvtCx0ZYg0L/RgNC+0LzQuNC90YPRgtC4INC90LXQstGW0LTQvtC80LjQuSDQv9Cw0YDQsNC80LXRgtGAICclLS4xOTJzJwBFWFBMQUlOL1NIT1cg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDQstGW0LrQvtC90LDQvdC+OyDQvdC10LzQsNGUINC/0YDQsNCyINC90LAg0YLQuNCx0LvQuNGG0ZYg0LfQsNC/0LjRgtGDANCk0LDQudC7ICclLS4xOTJzJyDQvNCw0ZQg0L3QtdCy0ZbQtNC+0LzQuNC5INGC0LjQvyAnJS0uNjRzJyDRgyDQt9Cw0LPQvtC70L7QstC60YMAJyUtLjE5MnMuJS0uMTkycycg0L3QtSDRlCAlcwDQodGC0L7QstCx0LXRhtGMICclLS4xOTJzJyDQvdC1INC80L7QttC1INCx0YPRgtC4INC30LzQuNC90LXQvdC40LkAVmlldyBTRUxFQ1Qg0LzQsNGUINC/0ZbQtNC30LDQv9C40YIg0YMg0LrQvtC90YHRgtGA0YPQutGG0ZbRlyBGUk9NAFZpZXcgU0VMRUNUINC80LDRlCDQutC+0L3RgdGC0YDRg9C60YbRltGOICclcycAVmlldyBTRUxFQ1Qg0LzQsNGUINC30LzQuNC90L3RgyDQsNCx0L4g0L/QsNGA0LDQvNC10YLQtdGAAFZpZXcgU0VMRUNUINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlCDRgtC40LzRh9Cw0YHQvtCy0YMg0YLQsNCx0LvQuNGG0Y4gJyUtLjE5MnMnAFZpZXcgU0VMRUNUINGWINC/0LXRgNC10LvRltC6INGB0YLQvtCy0LHRhtGW0LIgdmlldyDQvNCw0Y7RgtGMINGA0ZbQt9C90YMg0LrRltC70YzQutGW0YHRgtGMINGB0LrQvtCy0LHRhtGW0LIA0JDQu9Cz0L7RgNC40YLQvCDQt9C70LjQstCw0L3QvdGPIHZpZXcg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDQstC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0LfQsNGA0LDQtyAo0LDQu9Cz0L7RgNC40YLQvCDQsdGD0LTQtSDQvdC10LLQuNC30L3QsNGH0LXQvdC40LkpAFZpZXcsINGJ0L4g0L7QvdC+0LLQu9GO0LXRgtGM0YHRjywg0L3QtSDQvNGW0YHRgtC40YLRjCDQv9C+0LLQvdC+0LPQviDQutC70Y7Rh9CwINGC0LDQsdC70LjRhtGWKNGMKSwg0YnQviDQstC40LrQvtGA0ZbRgdGC0LDQvdCwINCyINC90YzRjtC+0LzRgwBWaWV3ICclLS4xOTJzLiUtLjE5MnMnIHJlZmVyZW5jZXMgaW52YWxpZCB0YWJsZShzKSBvciBjb2x1bW4ocykgb3IgZnVuY3Rpb24ocykgb3IgZGVmaW5lci9pbnZva2VyIG9mIHZpZXcgbGFjayByaWdodHMgdG8gdXNlIHRoZW0AQ2FuJ3QgZHJvcCBvciBhbHRlciBhICVzIGZyb20gd2l0aGluIGFub3RoZXIgc3RvcmVkIHJvdXRpbmUAR09UTyBpcyBub3QgYWxsb3dlZCBpbiBhIHN0b3JlZCBwcm9jZWR1cmUgaGFuZGxlcgBUcmlnZ2VyIGFscmVhZHkgZXhpc3RzAFRyaWdnZXIgZG9lcyBub3QgZXhpc3QAVHJpZ2dlcidzICclLS4xOTJzJyBpcyB2aWV3IG9yIHRlbXBvcmFyeSB0YWJsZQBVcGRhdGluZyBvZiAlcyByb3cgaXMgbm90IGFsbG93ZWQgaW4gJXN0cmlnZ2VyAFRoZXJlIGlzIG5vICVzIHJvdyBpbiAlcyB0cmlnZ2VyAEZpZWxkICclLS4xOTJzJyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZhbHVlAERpdmlzaW9uIGJ5IDAASW5jb3JyZWN0ICUtLjMycyB2YWx1ZTogJyUtLjEyOHMnIGZvciBjb2x1bW4gJyUuMTkycycgYXQgcm93ICVsZABJbGxlZ2FsICVzICclLS4xOTJzJyB2YWx1ZSBmb3VuZCBkdXJpbmcgcGFyc2luZwBDSEVDSyBPUFRJT04g0LTQu9GPIFZJRVcgJyUtLjE5MnMuJS0uMTkycycg0YnQviDQvdC1INC80L7QttC1INCx0YPRgtC4INC+0L3QvtCy0LvQtdC90L3QuNC8ANCf0LXRgNC10LLRltGA0LrQsCBDSEVDSyBPUFRJT04g0LTQu9GPIFZJRVcgJyUtLjE5MnMuJS0uMTkycycg0L3QtSDQv9GA0L7QudGI0LvQsAAlLS4xNnMgY29tbWFuZCBkZW5pZWQgdG8gdXNlciAnJS0uNDhzJ0AnJS0uNjRzJyBmb3Igcm91dGluZSAnJS0uMTkycycARmFpbGVkIHB1cmdpbmcgb2xkIHJlbGF5IGxvZ3M6ICVzAFBhc3N3b3JkIGhhc2ggc2hvdWxkIGJlIGEgJWQtZGlnaXQgaGV4YWRlY2ltYWwgbnVtYmVyAFRhcmdldCBsb2cgbm90IGZvdW5kIGluIGJpbmxvZyBpbmRleABJL08gZXJyb3IgcmVhZGluZyBsb2cgaW5kZXggZmlsZQBTZXJ2ZXIgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBwZXJtaXQgYmlubG9nIHB1cmdlAEZhaWxlZCBvbiBmc2VlaygpAEZhdGFsIGVycm9yIGR1cmluZyBsb2cgcHVyZ2UAQSBwdXJnZWFibGUgbG9nIGlzIGluIHVzZSwgd2lsbCBub3QgcHVyZ2UAVW5rbm93biBlcnJvciBkdXJpbmcgbG9nIHB1cmdlAEZhaWxlZCBpbml0aWFsaXppbmcgcmVsYXkgbG9nIHBvc2l0aW9uOiAlcwBZb3UgYXJlIG5vdCB1c2luZyBiaW5hcnkgbG9nZ2luZwBUaGUgJyUtLjY0cycgc3ludGF4IGlzIHJlc2VydmVkIGZvciBwdXJwb3NlcyBpbnRlcm5hbCB0byB0aGUgTXlTUUwgc2VydmVyAFdTQVN0YXJ0dXAgRmFpbGVkAENhbid0IGhhbmRsZSBwcm9jZWR1cmVzIHdpdGggZGlmZmVyZW50IGdyb3VwcyB5ZXQAU2VsZWN0IG11c3QgaGF2ZSBhIGdyb3VwIHdpdGggdGhpcyBwcm9jZWR1cmUAQ2FuJ3QgdXNlIE9SREVSIGNsYXVzZSB3aXRoIHRoaXMgcHJvY2VkdXJlAEJpbmFyeSBsb2dnaW5nIGFuZCByZXBsaWNhdGlvbiBmb3JiaWQgY2hhbmdpbmcgdGhlIGdsb2JhbCBzZXJ2ZXIgJXMAQ2FuJ3QgbWFwIGZpbGU6ICUtLjIwMHMsIGVycm5vOiAlZABXcm9uZyBtYWdpYyBpbiAlLS42NHMAUHJlcGFyZWQgc3RhdGVtZW50IGNvbnRhaW5zIHRvbyBtYW55IHBsYWNlaG9sZGVycwBLZXkgcGFydCAnJS0uMTkycycgbGVuZ3RoIGNhbm5vdCBiZSAwANCf0LXRgNC10LLRltGA0LrQsCDQutC+0L3RgtGA0L7Qu9GM0L3QvtGXINGB0YPQvNC4INGC0LXQutGB0YLRgyBWSUVXINC90LUg0L/RgNC+0LnRiNC70LAA0J3QtdC80L7QttC70LjQstC+INC+0L3QvtCy0LjRgtC4INCx0ZbQu9GM0Ygg0L3QuNC2INC+0LTQvdGDINCx0LDQt9C+0LLRgyDRgtCw0LHQu9C40YbRjiDQstGL0LrQvtGA0LjRgdGC0L7QstGD0Y7Rh9C4IFZJRVcgJyUtLjE5MnMuJS0uMTkycycsINGJ0L4g0LzRltGB0YLRltGC0Ywg0LTQtdC60ZbQu9GM0LrQsCDRgtCw0LHQu9C40YbRjADQndC10LzQvtC20LvQuNCy0L4g0YPRgdGC0LDQstC40YLQuCDRgNGP0LTQutC4INGDIFZJRVcgJyUtLjE5MnMuJS0uMTkycycsINGJ0L4g0LzRltGB0YLQuNGC0Ywg0LTQtdC60ZbQu9GM0LrQsCDRgtCw0LHQu9C40YbRjCwg0LHQtdC3INGB0L/QuNGB0LrRgyDRgdGC0L7QstCx0YbRltCyANCd0LXQvNC+0LbQu9C40LLQviDQstC40LTQsNC70LjRgtC4INGA0Y/QtNC60Lgg0YMgVklFVyAnJS0uMTkycy4lLS4xOTJzJywg0YnQviDQvNGW0YHRgtC40YLRjCDQtNC10LrRltC70YzQutCwINGC0LDQsdC70LjRhtGMAE9wZXJhdGlvbiAlcyBmYWlsZWQgZm9yICUuMjU2cwBYQUVSX05PVEE6IFVua25vd24gWElEAFhBRVJfSU5WQUw6IEludmFsaWQgYXJndW1lbnRzIChvciB1bnN1cHBvcnRlZCBjb21tYW5kKQBYQUVSX1JNRkFJTDogVGhlIGNvbW1hbmQgY2Fubm90IGJlIGV4ZWN1dGVkIHdoZW4gZ2xvYmFsIHRyYW5zYWN0aW9uIGlzIGluIHRoZSAgJS42NHMgc3RhdGUAWEFFUl9PVVRTSURFOiBTb21lIHdvcmsgaXMgZG9uZSBvdXRzaWRlIGdsb2JhbCB0cmFuc2FjdGlvbgBYQUVSX1JNRVJSOiBGYXRhbCBlcnJvciBvY2N1cnJlZCBpbiB0aGUgdHJhbnNhY3Rpb24gYnJhbmNoIC0gY2hlY2sgeW91ciBkYXRhIGZvciBjb25zaXN0ZW5jeQBYQV9SQlJPTExCQUNLOiBUcmFuc2FjdGlvbiBicmFuY2ggd2FzIHJvbGxlZCBiYWNrAFRoZXJlIGlzIG5vIHN1Y2ggZ3JhbnQgZGVmaW5lZCBmb3IgdXNlciAnJS0uNDhzJyBvbiBob3N0ICclLS4yNTVzJyBvbiByb3V0aW5lICclLS4xOTJzJwBGYWlsZWQgdG8gZ3JhbnQgRVhFQ1VURSBhbmQgQUxURVIgUk9VVElORSBwcml2aWxlZ2VzAEZhaWxlZCB0byByZXZva2UgYWxsIHByaXZpbGVnZXMgdG8gZHJvcHBlZCByb3V0aW5lAERhdGEgdG9vIGxvbmcgZm9yIGNvbHVtbiAnJXMnIGF0IHJvdyAlbGQAQmFkIFNRTFNUQVRFOiAnJXMnACVzOiByZWFkeSBmb3IgY29ubmVjdGlvbnMuIFZlcnNpb246ICclcycgIHNvY2tldDogJyVzJyAgcG9ydDogJWQgICVzAENhbid0IGxvYWQgdmFsdWUgZnJvbSBmaWxlIHdpdGggZml4ZWQgc2l6ZSByb3dzIHRvIHZhcmlhYmxlAFlvdSBhcmUgbm90IGFsbG93ZWQgdG8gY3JlYXRlIGEgdXNlciB3aXRoIEdSQU5UAEluY29ycmVjdCAlLS4zMnMgdmFsdWU6ICclLS4xMjhzJyBmb3IgZnVuY3Rpb24gJS0uMzJzAFRhYmxlIGRlZmluaXRpb24gaGFzIGNoYW5nZWQsIHBsZWFzZSByZXRyeSB0cmFuc2FjdGlvbgBEdXBsaWNhdGUgaGFuZGxlciBkZWNsYXJlZCBpbiB0aGUgc2FtZSBibG9jawBPVVQgb3IgSU5PVVQgYXJndW1lbnQgJWQgZm9yIHJvdXRpbmUgJXMgaXMgbm90IGEgdmFyaWFibGUgb3IgTkVXIHBzZXVkby12YXJpYWJsZSBpbiBCRUZPUkUgdHJpZ2dlcgBOb3QgYWxsb3dlZCB0byByZXR1cm4gYSByZXN1bHQgc2V0IGZyb20gYSAlcwBDYW5ub3QgZ2V0IGdlb21ldHJ5IG9iamVjdCBmcm9tIGRhdGEgeW91IHNlbmQgdG8gdGhlIEdFT01FVFJZIGZpZWxkAEEgcm91dGluZSBmYWlsZWQgYW5kIGhhcyBuZWl0aGVyIE5PIFNRTCBub3IgUkVBRFMgU1FMIERBVEEgaW4gaXRzIGRlY2xhcmF0aW9uIGFuZCBiaW5hcnkgbG9nZ2luZyBpcyBlbmFibGVkOyBpZiBub24tdHJhbnNhY3Rpb25hbCB0YWJsZXMgd2VyZSB1cGRhdGVkLCB0aGUgYmluYXJ5IGxvZyB3aWxsIG1pc3MgdGhlaXIgY2hhbmdlcwBUaGlzIGZ1bmN0aW9uIGhhcyBub25lIG9mIERFVEVSTUlOSVNUSUMsIE5PIFNRTCwgb3IgUkVBRFMgU1FMIERBVEEgaW4gaXRzIGRlY2xhcmF0aW9uIGFuZCBiaW5hcnkgbG9nZ2luZyBpcyBlbmFibGVkICh5b3UgKm1pZ2h0KiB3YW50IHRvIHVzZSB0aGUgbGVzcyBzYWZlIGxvZ19iaW5fdHJ1c3RfZnVuY3Rpb25fY3JlYXRvcnMgdmFyaWFibGUpAFlvdSBkbyBub3QgaGF2ZSB0aGUgU1VQRVIgcHJpdmlsZWdlIGFuZCBiaW5hcnkgbG9nZ2luZyBpcyBlbmFibGVkICh5b3UgKm1pZ2h0KiB3YW50IHRvIHVzZSB0aGUgbGVzcyBzYWZlIGxvZ19iaW5fdHJ1c3RfZnVuY3Rpb25fY3JlYXRvcnMgdmFyaWFibGUpAFlvdSBjYW4ndCBleGVjdXRlIGEgcHJlcGFyZWQgc3RhdGVtZW50IHdoaWNoIGhhcyBhbiBvcGVuIGN1cnNvciBhc3NvY2lhdGVkIHdpdGggaXQuIFJlc2V0IHRoZSBzdGF0ZW1lbnQgdG8gcmUtZXhlY3V0ZSBpdC4AVGhlIHN0YXRlbWVudCAoJWx1KSBoYXMgbm8gb3BlbiBjdXJzb3IuAEV4cGxpY2l0IG9yIGltcGxpY2l0IGNvbW1pdCBpcyBub3QgYWxsb3dlZCBpbiBzdG9yZWQgZnVuY3Rpb24gb3IgdHJpZ2dlci4ARmllbGQgb2YgdmlldyAnJS0uMTkycy4lLS4xOTJzJyB1bmRlcmx5aW5nIHRhYmxlIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUAUmVjdXJzaXZlIHN0b3JlZCBmdW5jdGlvbnMgYW5kIHRyaWdnZXJzIGFyZSBub3QgYWxsb3dlZC4AVG9vIGJpZyBzY2FsZSAlZCBzcGVjaWZpZWQgZm9yIGNvbHVtbiAnJS0uMTkycycuIE1heGltdW0gaXMgJWx1LgBUb28tYmlnIHByZWNpc2lvbiAlZCBzcGVjaWZpZWQgZm9yICclLS4xOTJzJy4gTWF4aW11bSBpcyAlbHUuAEZvciBmbG9hdChNLEQpLCBkb3VibGUoTSxEKSBvciBkZWNpbWFsKE0sRCksIE0gbXVzdCBiZSA+PSBEIChjb2x1bW4gJyUtLjE5MnMnKS4AWW91IGNhbid0IGNvbWJpbmUgd3JpdGUtbG9ja2luZyBvZiBzeXN0ZW0gdGFibGVzIHdpdGggb3RoZXIgdGFibGVzIG9yIGxvY2sgdHlwZXMAVW5hYmxlIHRvIGNvbm5lY3QgdG8gZm9yZWlnbiBkYXRhIHNvdXJjZTogJS42NHMAVGhlcmUgd2FzIGEgcHJvYmxlbSBwcm9jZXNzaW5nIHRoZSBxdWVyeSBvbiB0aGUgZm9yZWlnbiBkYXRhIHNvdXJjZS4gRGF0YSBzb3VyY2UgZXJyb3I6ICUtLjY0cwBUaGUgZm9yZWlnbiBkYXRhIHNvdXJjZSB5b3UgYXJlIHRyeWluZyB0byByZWZlcmVuY2UgZG9lcyBub3QgZXhpc3QuIERhdGEgc291cmNlIGVycm9yOiAgJS0uNjRzAENhbid0IGNyZWF0ZSBmZWRlcmF0ZWQgdGFibGUuIFRoZSBkYXRhIHNvdXJjZSBjb25uZWN0aW9uIHN0cmluZyAnJS0uNjRzJyBpcyBub3QgaW4gdGhlIGNvcnJlY3QgZm9ybWF0AFRoZSBkYXRhIHNvdXJjZSBjb25uZWN0aW9uIHN0cmluZyAnJS0uNjRzJyBpcyBub3QgaW4gdGhlIGNvcnJlY3QgZm9ybWF0AENhbid0IGNyZWF0ZSBmZWRlcmF0ZWQgdGFibGUuIEZvcmVpZ24gZGF0YSBzcmMgZXJyb3I6ICAlLS42NHMAVHJpZ2dlciBpbiB3cm9uZyBzY2hlbWEAVGhyZWFkIHN0YWNrIG92ZXJydW46ICAlbGQgYnl0ZXMgdXNlZCBvZiBhICVsZCBieXRlIHN0YWNrLCBhbmQgJWxkIGJ5dGVzIG5lZWRlZC4gIFVzZSAnbXlzcWxkIC0tdGhyZWFkX3N0YWNrPSMnIHRvIHNwZWNpZnkgYSBiaWdnZXIgc3RhY2suAFJvdXRpbmUgYm9keSBmb3IgJyUtLjEwMHMnIGlzIHRvbyBsb25nAENhbm5vdCBkcm9wIGRlZmF1bHQga2V5Y2FjaGUARGlzcGxheSB3aWR0aCBvdXQgb2YgcmFuZ2UgZm9yIGNvbHVtbiAnJS0uMTkycycgKG1heCA9ICVsdSkAWEFFUl9EVVBJRDogVGhlIFhJRCBhbHJlYWR5IGV4aXN0cwBEYXRldGltZSBmdW5jdGlvbjogJS0uMzJzIGZpZWxkIG92ZXJmbG93AENhbid0IHVwZGF0ZSB0YWJsZSAnJS0uMTkycycgaW4gc3RvcmVkIGZ1bmN0aW9uL3RyaWdnZXIgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHVzZWQgYnkgc3RhdGVtZW50IHdoaWNoIGludm9rZWQgdGhpcyBzdG9yZWQgZnVuY3Rpb24vdHJpZ2dlci4AVGhlIGRlZmluaXRpb24gb2YgdGFibGUgJyUtLjE5MnMnIHByZXZlbnRzIG9wZXJhdGlvbiAlLjE5MnMgb24gdGFibGUgJyUtLjE5MnMnLgBUaGUgcHJlcGFyZWQgc3RhdGVtZW50IGNvbnRhaW5zIGEgc3RvcmVkIHJvdXRpbmUgY2FsbCB0aGF0IHJlZmVycyB0byB0aGF0IHNhbWUgc3RhdGVtZW50LiBJdCdzIG5vdCBhbGxvd2VkIHRvIGV4ZWN1dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgaW4gc3VjaCBhIHJlY3Vyc2l2ZSBtYW5uZXIATm90IGFsbG93ZWQgdG8gc2V0IGF1dG9jb21taXQgZnJvbSBhIHN0b3JlZCBmdW5jdGlvbiBvciB0cmlnZ2VyAERlZmluZXIgaXMgbm90IGZ1bGx5IHF1YWxpZmllZABWaWV3ICclLS4xOTJzJy4nJS0uMTkycycgaGFzIG5vIGRlZmluZXIgaW5mb3JtYXRpb24gKG9sZCB0YWJsZSBmb3JtYXQpLiBDdXJyZW50IHVzZXIgaXMgdXNlZCBhcyBkZWZpbmVyLiBQbGVhc2UgcmVjcmVhdGUgdGhlIHZpZXchAFlvdSBuZWVkIHRoZSBTVVBFUiBwcml2aWxlZ2UgZm9yIGNyZWF0aW9uIHZpZXcgd2l0aCAnJS0uMTkycydAJyUtLjE5MnMnIGRlZmluZXIAVGhlIHVzZXIgc3BlY2lmaWVkIGFzIGEgZGVmaW5lciAoJyUtLjY0cydAJyUtLjY0cycpIGRvZXMgbm90IGV4aXN0AENoYW5naW5nIHNjaGVtYSBmcm9tICclLS4xOTJzJyB0byAnJS0uMTkycycgaXMgbm90IGFsbG93ZWQuAENhbm5vdCBkZWxldGUgb3IgdXBkYXRlIGEgcGFyZW50IHJvdzogYSBmb3JlaWduIGtleSBjb25zdHJhaW50IGZhaWxzICglLjE5MnMpAENhbm5vdCBhZGQgb3IgdXBkYXRlIGEgY2hpbGQgcm93OiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgZmFpbHMgKCUuMTkycykAVmFyaWFibGUgJyUtLjY0cycgbXVzdCBiZSBxdW90ZWQgd2l0aCBgLi4uYCwgb3IgcmVuYW1lZABObyBkZWZpbmVyIGF0dHJpYnV0ZSBmb3IgdHJpZ2dlciAnJS0uMTkycycuJyUtLjE5MnMnLiBJdCdzIGRpc2FsbG93ZWQgdG8gY3JlYXRlIHRyaWdnZXIgd2l0aG91dCBkZWZpbmVyLgAnJS0uMTkycycgaGFzIGFuIG9sZCBmb3JtYXQsIHlvdSBzaG91bGQgcmUtY3JlYXRlIHRoZSAnJXMnIG9iamVjdChzKQBSZWN1cnNpdmUgbGltaXQgJWQgKGFzIHNldCBieSB0aGUgbWF4X3NwX3JlY3Vyc2lvbl9kZXB0aCB2YXJpYWJsZSkgd2FzIGV4Y2VlZGVkIGZvciByb3V0aW5lICUuMTkycwBGYWlsZWQgdG8gbG9hZCByb3V0aW5lICUtLjE5MnMuIFRoZSBkYXRhIGRpY3Rpb25hcnkgdGFibGUgbWlzc2luZywgY29ycnVwdCwgb3IgY29udGFpbnMgYmFkIGRhdGEgKGludGVybmFsIGNvZGUgJWQpAEluY29ycmVjdCByb3V0aW5lIG5hbWUgJyUtLjE5MnMnAFRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkbyAiUkVQQUlSIFRBQkxFIGAlLS42NHNgIiBvciBkdW1wL3JlbG9hZCB0byBmaXggaXQhAEFHR1JFR0FURSBpcyBub3Qgc3VwcG9ydGVkIGZvciBzdG9yZWQgZnVuY3Rpb25zAENhbid0IGNyZWF0ZSBtb3JlIHRoYW4gbWF4X3ByZXBhcmVkX3N0bXRfY291bnQgc3RhdGVtZW50cyAoY3VycmVudCB2YWx1ZTogJWx1KQBgJS0uMTkyc2AuYCUtLjE5MnNgIGNvbnRhaW5zIHZpZXcgcmVjdXJzaW9uAE5vbi1ncm91cGluZyBmaWVsZCAnJS0uMTkycycgaXMgdXNlZCBpbiAlLS42NHMgY2xhdXNlAFRoZSB1c2VkIHRhYmxlIHR5cGUgZG9lc24ndCBzdXBwb3J0IFNQQVRJQUwgaW5kZXhlcwBUcmlnZ2VycyBjYW4gbm90IGJlIGNyZWF0ZWQgb24gc3lzdGVtIHRhYmxlcwBMZWFkaW5nIHNwYWNlcyBhcmUgcmVtb3ZlZCBmcm9tIG5hbWUgJyVzJwBGYWlsZWQgdG8gcmVhZCBhdXRvLWluY3JlbWVudCB2YWx1ZSBmcm9tIHN0b3JhZ2UgZW5naW5lAHVzZXIgbmFtZQBob3N0IG5hbWUAU3RyaW5nICclLS43MHMnIGlzIHRvbyBsb25nIGZvciAlcyAoc2hvdWxkIGJlIG5vIGxvbmdlciB0aGFuICVkKQBUaGUgdGFyZ2V0IHRhYmxlICUtLjEwMHMgb2YgdGhlICVzIGlzIG5vdCBpbnNlcnRhYmxlLWludG8AVGFibGUgJyUtLjY0cycgaXMgZGlmZmVyZW50bHkgZGVmaW5lZCBvciBvZiBub24tTXlJU0FNIHR5cGUgb3IgZG9lc24ndCBleGlzdABUb28gaGlnaCBsZXZlbCBvZiBuZXN0aW5nIGZvciBzZWxlY3QATmFtZSAnJS0uNjRzJyBoYXMgYmVjb21lICcnAEZpcnN0IGNoYXJhY3RlciBvZiB0aGUgRklFTERTIFRFUk1JTkFURUQgc3RyaW5nIGlzIGFtYmlndW91czsgcGxlYXNlIHVzZSBub24tb3B0aW9uYWwgYW5kIG5vbi1lbXB0eSBGSUVMRFMgRU5DTE9TRUQgQlkAVGhlIGZvcmVpZ24gc2VydmVyLCAlcywgeW91IGFyZSB0cnlpbmcgdG8gY3JlYXRlIGFscmVhZHkgZXhpc3RzLgBUaGUgZm9yZWlnbiBzZXJ2ZXIgbmFtZSB5b3UgYXJlIHRyeWluZyB0byByZWZlcmVuY2UgZG9lcyBub3QgZXhpc3QuIERhdGEgc291cmNlIGVycm9yOiAgJS0uNjRzAFRhYmxlIHN0b3JhZ2UgZW5naW5lICclLS42NHMnIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNyZWF0ZSBvcHRpb24gJyUuNjRzJwBTeW50YXggZXJyb3I6ICUtLjY0cyBQQVJUSVRJT05JTkcgcmVxdWlyZXMgZGVmaW5pdGlvbiBvZiBWQUxVRVMgJS0uNjRzIGZvciBlYWNoIHBhcnRpdGlvbgBPbmx5ICUtLjY0cyBQQVJUSVRJT05JTkcgY2FuIHVzZSBWQUxVRVMgJS0uNjRzIGluIHBhcnRpdGlvbiBkZWZpbml0aW9uAE1BWFZBTFVFIGNhbiBvbmx5IGJlIHVzZWQgaW4gbGFzdCBwYXJ0aXRpb24gZGVmaW5pdGlvbgBTdWJwYXJ0aXRpb25zIGNhbiBvbmx5IGJlIGhhc2ggcGFydGl0aW9ucyBhbmQgYnkga2V5AE11c3QgZGVmaW5lIHN1YnBhcnRpdGlvbnMgb24gYWxsIHBhcnRpdGlvbnMgaWYgb24gb25lIHBhcnRpdGlvbgBXcm9uZyBudW1iZXIgb2YgcGFydGl0aW9ucyBkZWZpbmVkLCBtaXNtYXRjaCB3aXRoIHByZXZpb3VzIHNldHRpbmcAV3JvbmcgbnVtYmVyIG9mIHN1YnBhcnRpdGlvbnMgZGVmaW5lZCwgbWlzbWF0Y2ggd2l0aCBwcmV2aW91cyBzZXR0aW5nAENvbnN0YW50LCByYW5kb20gb3IgdGltZXpvbmUtZGVwZW5kZW50IGV4cHJlc3Npb25zIGluIChzdWIpcGFydGl0aW9uaW5nIGZ1bmN0aW9uIGFyZSBub3QgYWxsb3dlZABFeHByZXNzaW9uIGluIFJBTkdFL0xJU1QgVkFMVUVTIG11c3QgYmUgY29uc3RhbnQARmllbGQgaW4gbGlzdCBvZiBmaWVsZHMgZm9yIHBhcnRpdGlvbiBmdW5jdGlvbiBub3QgZm91bmQgaW4gdGFibGUATGlzdCBvZiBmaWVsZHMgaXMgb25seSBhbGxvd2VkIGluIEtFWSBwYXJ0aXRpb25zAFRoZSBwYXJ0aXRpb24gaW5mbyBpbiB0aGUgZnJtIGZpbGUgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCB3aGF0IGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGZybSBmaWxlAFRoZSAlLS4xOTJzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHdyb25nIHR5cGUARm9yICUtLjY0cyBwYXJ0aXRpb25zIGVhY2ggcGFydGl0aW9uIG11c3QgYmUgZGVmaW5lZABWQUxVRVMgTEVTUyBUSEFOIHZhbHVlIG11c3QgYmUgc3RyaWN0bHkgaW5jcmVhc2luZyBmb3IgZWFjaCBwYXJ0aXRpb24AVkFMVUVTIHZhbHVlIG11c3QgYmUgb2Ygc2FtZSB0eXBlIGFzIHBhcnRpdGlvbiBmdW5jdGlvbgBNdWx0aXBsZSBkZWZpbml0aW9uIG9mIHNhbWUgY29uc3RhbnQgaW4gbGlzdCBwYXJ0aXRpb25pbmcAUGFydGl0aW9uaW5nIGNhbiBub3QgYmUgdXNlZCBzdGFuZC1hbG9uZSBpbiBxdWVyeQBUaGUgbWl4IG9mIGhhbmRsZXJzIGluIHRoZSBwYXJ0aXRpb25zIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgdmVyc2lvbiBvZiBNeVNRTABGb3IgdGhlIHBhcnRpdGlvbmVkIGVuZ2luZSBpdCBpcyBuZWNlc3NhcnkgdG8gZGVmaW5lIGFsbCAlLS42NHMAVG9vIG1hbnkgcGFydGl0aW9ucyAoaW5jbHVkaW5nIHN1YnBhcnRpdGlvbnMpIHdlcmUgZGVmaW5lZABJdCBpcyBvbmx5IHBvc3NpYmxlIHRvIG1peCBSQU5HRS9MSVNUIHBhcnRpdGlvbmluZyB3aXRoIEhBU0gvS0VZIHBhcnRpdGlvbmluZyBmb3Igc3VicGFydGl0aW9uaW5nAEZhaWxlZCB0byBjcmVhdGUgc3BlY2lmaWMgaGFuZGxlciBmaWxlAEEgQkxPQiBmaWVsZCBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0aXRpb24gZnVuY3Rpb24AQSAlLS4xOTJzIG11c3QgaW5jbHVkZSBhbGwgY29sdW1ucyBpbiB0aGUgdGFibGUncyBwYXJ0aXRpb25pbmcgZnVuY3Rpb24gKHByZWZpeGVkIGNvbHVtbnMgYXJlIG5vdCBjb25zaWRlcmVkKS4ATnVtYmVyIG9mICUtLjY0cyA9IDAgaXMgbm90IGFuIGFsbG93ZWQgdmFsdWUAUGFydGl0aW9uIG1hbmFnZW1lbnQgb24gYSBub3QgcGFydGl0aW9uZWQgdGFibGUgaXMgbm90IHBvc3NpYmxlAEZvcmVpZ24ga2V5cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCBwYXJ0aXRpb25pbmcARXJyb3IgaW4gbGlzdCBvZiBwYXJ0aXRpb25zIHRvICUtLjY0cwBDYW5ub3QgcmVtb3ZlIGFsbCBwYXJ0aXRpb25zLCB1c2UgRFJPUCBUQUJMRSBpbnN0ZWFkAENPQUxFU0NFIFBBUlRJVElPTiBjYW4gb25seSBiZSB1c2VkIG9uIEhBU0gvS0VZIHBhcnRpdGlvbnMAUkVPUkdBTklaRSBQQVJUSVRJT04gY2FuIG9ubHkgYmUgdXNlZCB0byByZW9yZ2FuaXplIHBhcnRpdGlvbnMgbm90IHRvIGNoYW5nZSB0aGVpciBudW1iZXJzAFJFT1JHQU5JWkUgUEFSVElUSU9OIHdpdGhvdXQgcGFyYW1ldGVycyBjYW4gb25seSBiZSB1c2VkIG9uIGF1dG8tcGFydGl0aW9uZWQgdGFibGVzIHVzaW5nIEhBU0ggUEFSVElUSU9OcwAlLS42NHMgUEFSVElUSU9OIGNhbiBvbmx5IGJlIHVzZWQgb24gUkFOR0UvTElTVCBwYXJ0aXRpb25zAFRyeWluZyB0byBBZGQgcGFydGl0aW9uKHMpIHdpdGggd3JvbmcgbnVtYmVyIG9mIHN1YnBhcnRpdGlvbnMAQXQgbGVhc3Qgb25lIHBhcnRpdGlvbiBtdXN0IGJlIGFkZGVkAEF0IGxlYXN0IG9uZSBwYXJ0aXRpb24gbXVzdCBiZSBjb2FsZXNjZWQATW9yZSBwYXJ0aXRpb25zIHRvIHJlb3JnYW5pemUgdGhhbiB0aGVyZSBhcmUgcGFydGl0aW9ucwBEdXBsaWNhdGUgcGFydGl0aW9uIG5hbWUgJS0uMTkycwBJdCBpcyBub3QgYWxsb3dlZCB0byBzaHV0IG9mZiBiaW5sb2cgb24gdGhpcyBjb21tYW5kAFdoZW4gcmVvcmdhbml6aW5nIGEgc2V0IG9mIHBhcnRpdGlvbnMgdGhleSBtdXN0IGJlIGluIGNvbnNlY3V0aXZlIG9yZGVyAFJlb3JnYW5pemUgb2YgcmFuZ2UgcGFydGl0aW9ucyBjYW5ub3QgY2hhbmdlIHRvdGFsIHJhbmdlcyBleGNlcHQgZm9yIGxhc3QgcGFydGl0aW9uIHdoZXJlIGl0IGNhbiBleHRlbmQgdGhlIHJhbmdlAFBhcnRpdGlvbiBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkIGluIHRoaXMgdmVyc2lvbiBmb3IgdGhpcyBoYW5kbGVyAFBhcnRpdGlvbiBzdGF0ZSBjYW5ub3QgYmUgZGVmaW5lZCBmcm9tIENSRUFURS9BTFRFUiBUQUJMRQBUaGUgJS0uNjRzIGhhbmRsZXIgb25seSBzdXBwb3J0cyAzMiBiaXQgaW50ZWdlcnMgaW4gVkFMVUVTAFBsdWdpbiAnJS0uMTkycycgaXMgbm90IGxvYWRlZABJbmNvcnJlY3QgJS0uMzJzIHZhbHVlOiAnJS0uMTI4cycAVGFibGUgaGFzIG5vIHBhcnRpdGlvbiBmb3IgdmFsdWUgJS0uNjRzAEl0IGlzIG5vdCBhbGxvd2VkIHRvIHNwZWNpZnkgJXMgbW9yZSB0aGFuIG9uY2UARmFpbGVkIHRvIGNyZWF0ZSAlcwBGYWlsZWQgdG8gZHJvcCAlcwBUaGUgaGFuZGxlciBkb2Vzbid0IHN1cHBvcnQgYXV0b2V4dGVuZCBvZiB0YWJsZXNwYWNlcwBBIHNpemUgcGFyYW1ldGVyIHdhcyBpbmNvcnJlY3RseSBzcGVjaWZpZWQsIGVpdGhlciBudW1iZXIgb3Igb24gdGhlIGZvcm0gMTBNAFRoZSBzaXplIG51bWJlciB3YXMgY29ycmVjdCBidXQgd2UgZG9uJ3QgYWxsb3cgdGhlIGRpZ2l0IHBhcnQgdG8gYmUgbW9yZSB0aGFuIDIgYmlsbGlvbgBGYWlsZWQgdG8gYWx0ZXI6ICVzAFdyaXRpbmcgb25lIHJvdyB0byB0aGUgcm93LWJhc2VkIGJpbmFyeSBsb2cgZmFpbGVkAFRhYmxlIGRlZmluaXRpb24gb24gc291cmNlIGFuZCByZXBsaWNhIGRvZXMgbm90IG1hdGNoOiAlcwBSZXBsaWNhIHJ1bm5pbmcgd2l0aCAtLWxvZy1yZXBsaWNhLXVwZGF0ZXMgbXVzdCB1c2Ugcm93LWJhc2VkIGJpbmFyeSBsb2dnaW5nIHRvIGJlIGFibGUgdG8gcmVwbGljYXRlIHJvdy1iYXNlZCBiaW5hcnkgbG9nIGV2ZW50cwBFdmVudCAnJS0uMTkycycgYWxyZWFkeSBleGlzdHMARmFpbGVkIHRvIHN0b3JlIGV2ZW50ICVzLiBFcnJvciBjb2RlICVkIGZyb20gc3RvcmFnZSBlbmdpbmUuAFVua25vd24gZXZlbnQgJyUtLjE5MnMnAEZhaWxlZCB0byBhbHRlciBldmVudCAnJS0uMTkycycARmFpbGVkIHRvIGRyb3AgJXMASU5URVJWQUwgaXMgZWl0aGVyIG5vdCBwb3NpdGl2ZSBvciB0b28gYmlnAEVORFMgaXMgZWl0aGVyIGludmFsaWQgb3IgYmVmb3JlIFNUQVJUUwBFdmVudCBleGVjdXRpb24gdGltZSBpcyBpbiB0aGUgcGFzdC4gRXZlbnQgaGFzIGJlZW4gZGlzYWJsZWQARmFpbGVkIHRvIG9wZW4gbXlzcWwuZXZlbnQATm8gZGF0ZXRpbWUgZXhwcmVzc2lvbiBwcm92aWRlZABDb2x1bW4gY291bnQgb2YgbXlzcWwuJXMgaXMgd3JvbmcuIEV4cGVjdGVkICVkLCBmb3VuZCAlZC4gVGhlIHRhYmxlIGlzIHByb2JhYmx5IGNvcnJ1cHRlZABDYW5ub3QgbG9hZCBmcm9tIG15c3FsLiVzLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkAEZhaWxlZCB0byBkZWxldGUgdGhlIGV2ZW50IGZyb20gbXlzcWwuZXZlbnQARXJyb3IgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIGV2ZW50J3MgYm9keQBTYW1lIG9sZCBhbmQgbmV3IGV2ZW50IG5hbWUARGF0YSBmb3IgY29sdW1uICclcycgdG9vIGxvbmcAQ2Fubm90IGRyb3AgaW5kZXggJyUtLjE5MnMnOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50AFRoZSBzeW50YXggJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTXlTUUwgJXMuIFBsZWFzZSB1c2UgJXMgaW5zdGVhZABZb3UgY2FuJ3Qgd3JpdGUtbG9jayBhIGxvZyB0YWJsZS4gT25seSByZWFkIGFjY2VzcyBpcyBwb3NzaWJsZQBZb3UgY2FuJ3QgdXNlIGxvY2tzIHdpdGggbG9nIHRhYmxlcy4AVXBob2xkaW5nIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIGZvciB0YWJsZSAnJS4xOTJzJywgZW50cnkgJyUtLjE5MnMnLCBrZXkgJWQgd291bGQgbGVhZCB0byBhIGR1cGxpY2F0ZSBlbnRyeQBUaGUgY29sdW1uIGNvdW50IG9mIG15c3FsLiVzIGlzIHdyb25nLiBFeHBlY3RlZCAlZCwgZm91bmQgJWQuIENyZWF0ZWQgd2l0aCBNeVNRTCAlZCwgbm93IHJ1bm5pbmcgJWQuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4AQ2Fubm90IHN3aXRjaCBvdXQgb2YgdGhlIHJvdy1iYXNlZCBiaW5hcnkgbG9nIGZvcm1hdCB3aGVuIHRoZSBzZXNzaW9uIGhhcyBvcGVuIHRlbXBvcmFyeSB0YWJsZXMAQ2Fubm90IGNoYW5nZSB0aGUgYmluYXJ5IGxvZ2dpbmcgZm9ybWF0IGluc2lkZSBhIHN0b3JlZCBmdW5jdGlvbiBvciB0cmlnZ2VyAFRoZSBOREIgY2x1c3RlciBlbmdpbmUgZG9lcyBub3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgYmlubG9nIGZvcm1hdCBvbiB0aGUgZmx5IHlldABDYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSB0YWJsZSB3aXRoIHBhcnRpdGlvbnMAUGFydGl0aW9uIGNvbnN0YW50IGlzIG91dCBvZiBwYXJ0aXRpb24gZnVuY3Rpb24gZG9tYWluAFRoaXMgcGFydGl0aW9uIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkAEVycm9yIGluIERETCBsb2cATm90IGFsbG93ZWQgdG8gdXNlIE5VTEwgdmFsdWUgaW4gVkFMVUVTIExFU1MgVEhBTgBJbmNvcnJlY3QgcGFydGl0aW9uIG5hbWUAVHJhbnNhY3Rpb24gY2hhcmFjdGVyaXN0aWNzIGNhbid0IGJlIGNoYW5nZWQgd2hpbGUgYSB0cmFuc2FjdGlvbiBpcyBpbiBwcm9ncmVzcwBBTFRFUiBUQUJMRSBjYXVzZXMgYXV0b19pbmNyZW1lbnQgcmVzZXF1ZW5jaW5nLCByZXN1bHRpbmcgaW4gZHVwbGljYXRlIGVudHJ5ICclLS4xOTJzJyBmb3Iga2V5ICclLS4xOTJzJwBJbnRlcm5hbCBzY2hlZHVsZXIgZXJyb3IgJWQARXJyb3IgZHVyaW5nIHN0YXJ0aW5nL3N0b3BwaW5nIG9mIHRoZSBzY2hlZHVsZXIuIEVycm9yIGNvZGUgJXUARW5naW5lIGNhbm5vdCBiZSB1c2VkIGluIHBhcnRpdGlvbmVkIHRhYmxlcwBDYW5ub3QgYWN0aXZhdGUgJyUtLjY0cycgbG9nAFRoZSBzZXJ2ZXIgd2FzIG5vdCBidWlsdCB3aXRoIHJvdy1iYXNlZCByZXBsaWNhdGlvbgBEZWNvZGluZyBvZiBiYXNlNjQgc3RyaW5nIGZhaWxlZABSZWN1cnNpb24gb2YgRVZFTlQgRERMIHN0YXRlbWVudHMgaXMgZm9yYmlkZGVuIHdoZW4gYm9keSBpcyBwcmVzZW50AENhbm5vdCBwcm9jZWVkIGJlY2F1c2Ugc3lzdGVtIHRhYmxlcyB1c2VkIGJ5IEV2ZW50IFNjaGVkdWxlciB3ZXJlIGZvdW5kIGRhbWFnZWQgYXQgc2VydmVyIHN0YXJ0AE9ubHkgaW50ZWdlcnMgYWxsb3dlZCBhcyBudW1iZXIgaGVyZQBUaGlzIHN0b3JhZ2UgZW5naW5lIGNhbm5vdCBiZSB1c2VkIGZvciBsb2cgdGFibGVzAFlvdSBjYW5ub3QgJyVzJyBhIGxvZyB0YWJsZSBpZiBsb2dnaW5nIGlzIGVuYWJsZWQAQ2Fubm90IHJlbmFtZSAnJXMnLiBXaGVuIGxvZ2dpbmcgZW5hYmxlZCwgcmVuYW1lIHRvL2Zyb20gbG9nIHRhYmxlIG11c3QgcmVuYW1lIHR3byB0YWJsZXM6IHRoZSBsb2cgdGFibGUgdG8gYW4gYXJjaGl2ZSB0YWJsZSBhbmQgYW5vdGhlciB0YWJsZSBiYWNrIHRvICclcycASW5jb3JyZWN0IHBhcmFtZXRlciBjb3VudCBpbiB0aGUgY2FsbCB0byBuYXRpdmUgZnVuY3Rpb24gJyUtLjE5MnMnAEluY29ycmVjdCBwYXJhbWV0ZXJzIGluIHRoZSBjYWxsIHRvIG5hdGl2ZSBmdW5jdGlvbiAnJS0uMTkycycASW5jb3JyZWN0IHBhcmFtZXRlcnMgaW4gdGhlIGNhbGwgdG8gc3RvcmVkIGZ1bmN0aW9uICUtLjE5MnMAVGhpcyBmdW5jdGlvbiAnJS0uMTkycycgaGFzIHRoZSBzYW1lIG5hbWUgYXMgYSBuYXRpdmUgZnVuY3Rpb24A0JTRg9Cx0LvRjtGO0YfQuNC5INC30LDQv9C40YEgJyUtLjY0cycg0LTQu9GPINC60LvRjtGH0LAgJyUtLjM4NXMnAFRvbyBtYW55IGZpbGVzIG9wZW5lZCwgcGxlYXNlIGV4ZWN1dGUgdGhlIGNvbW1hbmQgYWdhaW4ARXZlbnQgZXhlY3V0aW9uIHRpbWUgaXMgaW4gdGhlIHBhc3QgYW5kIE9OIENPTVBMRVRJT04gTk9UIFBSRVNFUlZFIGlzIHNldC4gVGhlIGV2ZW50IHdhcyBkcm9wcGVkIGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW9uLgBFdmVudCBleGVjdXRpb24gdGltZSBpcyBpbiB0aGUgcGFzdCBhbmQgT04gQ09NUExFVElPTiBOT1QgUFJFU0VSVkUgaXMgc2V0LiBUaGUgZXZlbnQgd2FzIG5vdCBjaGFuZ2VkLiBTcGVjaWZ5IGEgdGltZSBpbiB0aGUgZnV0dXJlLgBUaGUgaW5jaWRlbnQgJXMgb2NjdXJyZWQgb24gdGhlIHNvdXJjZS4gTWVzc2FnZTogJXMAVGFibGUgaGFzIG5vIHBhcnRpdGlvbiBmb3Igc29tZSBleGlzdGluZyB2YWx1ZXMAVW5zYWZlIHN0YXRlbWVudCB3cml0dGVuIHRvIHRoZSBiaW5hcnkgbG9nIHVzaW5nIHN0YXRlbWVudCBmb3JtYXQgc2luY2UgQklOTE9HX0ZPUk1BVCA9IFNUQVRFTUVOVC4gJXMARmF0YWwgZXJyb3I6ICVzAFJlbGF5IGxvZyByZWFkIGZhaWx1cmU6ICVzAFJlbGF5IGxvZyB3cml0ZSBmYWlsdXJlOiAlcwBGYWlsZWQgdG8gY3JlYXRlICVzAFNvdXJjZSBjb21tYW5kICVzIGZhaWxlZDogJXMAQmluYXJ5IGxvZ2dpbmcgbm90IHBvc3NpYmxlLiBNZXNzYWdlOiAlcwBWaWV3IGAlLS42NHNgLmAlLS42NHNgIGhhcyBubyBjcmVhdGlvbiBjb250ZXh0AENyZWF0aW9uIGNvbnRleHQgb2YgdmlldyBgJS0uNjRzYC5gJS0uNjRzJyBpcyBpbnZhbGlkAENyZWF0aW9uIGNvbnRleHQgb2Ygc3RvcmVkIHJvdXRpbmUgYCUtLjY0c2AuYCUtLjY0c2AgaXMgaW52YWxpZABDb3JydXB0ZWQgVFJHIGZpbGUgZm9yIHRhYmxlIGAlLS42NHNgLmAlLS42NHNgAFRyaWdnZXJzIGZvciB0YWJsZSBgJS0uNjRzYC5gJS0uNjRzYCBoYXZlIG5vIGNyZWF0aW9uIGNvbnRleHQAVHJpZ2dlciBjcmVhdGlvbiBjb250ZXh0IG9mIHRhYmxlIGAlLS42NHNgLmAlLS42NHNgIGlzIGludmFsaWQAQ3JlYXRpb24gY29udGV4dCBvZiBldmVudCBgJS0uNjRzYC5gJS0uNjRzYCBpcyBpbnZhbGlkAENhbm5vdCBvcGVuIHRhYmxlIGZvciB0cmlnZ2VyIGAlLS42NHNgLmAlLS42NHNgAENhbm5vdCBjcmVhdGUgc3RvcmVkIHJvdXRpbmUgYCUtLjY0c2AuIENoZWNrIHdhcm5pbmdzAEFtYmlndW91cyByZXBsaWNhIG1vZGVzIGNvbWJpbmF0aW9uLiAlcwBUaGUgQklOTE9HIHN0YXRlbWVudCBvZiB0eXBlIGAlc2Agd2FzIG5vdCBwcmVjZWRlZCBieSBhIGZvcm1hdCBkZXNjcmlwdGlvbiBCSU5MT0cgc3RhdGVtZW50LgBDb3JydXB0ZWQgcmVwbGljYXRpb24gZXZlbnQgd2FzIGRldGVjdGVkAEludmFsaWQgY29sdW1uIHJlZmVyZW5jZSAoJS0uNjRzKSBpbiBMT0FEIERBVEEAQmVpbmcgcHVyZ2VkIGxvZyAlcyB3YXMgbm90IGZvdW5kAFhBX1JCVElNRU9VVDogVHJhbnNhY3Rpb24gYnJhbmNoIHdhcyByb2xsZWQgYmFjazogdG9vayB0b28gbG9uZwBYQV9SQkRFQURMT0NLOiBUcmFuc2FjdGlvbiBicmFuY2ggd2FzIHJvbGxlZCBiYWNrOiBkZWFkbG9jayB3YXMgZGV0ZWN0ZWQAUHJlcGFyZWQgc3RhdGVtZW50IG5lZWRzIHRvIGJlIHJlLXByZXBhcmVkAERFTEFZRUQgb3B0aW9uIG5vdCBzdXBwb3J0ZWQgZm9yIHRhYmxlICclLS4xOTJzJwBUaGUgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmUgZG9lcyBub3QgZXhpc3QAPCUtLjY0cz4gb3B0aW9uIGlnbm9yZWQAQnVpbHQtaW4gcGx1Z2lucyBjYW5ub3QgYmUgZGVsZXRlZABQbHVnaW4gaXMgYnVzeSBhbmQgd2lsbCBiZSB1bmluc3RhbGxlZCBvbiBzaHV0ZG93bgAlcyB2YXJpYWJsZSAnJXMnIGlzIHJlYWQtb25seS4gVXNlIFNFVCAlcyB0byBhc3NpZ24gdGhlIHZhbHVlAFN0b3JhZ2UgZW5naW5lICVzIGRvZXMgbm90IHN1cHBvcnQgcm9sbGJhY2sgZm9yIHRoaXMgc3RhdGVtZW50LiBUcmFuc2FjdGlvbiByb2xsZWQgYmFjayBhbmQgbXVzdCBiZSByZXN0YXJ0ZWQAVW5leHBlY3RlZCBzb3VyY2UncyBoZWFydGJlYXQgZGF0YTogJXMAVGhlIHJlcXVlc3RlZCB2YWx1ZSBmb3IgdGhlIGhlYXJ0YmVhdCBwZXJpb2QgaXMgZWl0aGVyIG5lZ2F0aXZlIG9yIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCAoJXMgc2Vjb25kcykuAEJhZCBzY2hlbWEgZm9yIG15c3FsLm5kYl9yZXBsaWNhdGlvbiB0YWJsZS4gTWVzc2FnZTogJS0uNjRzAEVycm9yIGluIHBhcnNpbmcgY29uZmxpY3QgZnVuY3Rpb24uIE1lc3NhZ2U6ICUtLjY0cwBXcml0ZSB0byBleGNlcHRpb25zIHRhYmxlIGZhaWxlZC4gTWVzc2FnZTogJS0uMTI4cwBDb21tZW50IGZvciB0YWJsZSAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBDb21tZW50IGZvciBmaWVsZCAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBGVU5DVElPTiAlcyBkb2VzIG5vdCBleGlzdC4gQ2hlY2sgdGhlICdGdW5jdGlvbiBOYW1lIFBhcnNpbmcgYW5kIFJlc29sdXRpb24nIHNlY3Rpb24gaW4gdGhlIFJlZmVyZW5jZSBNYW51YWwARGF0YWJhc2UAVGFibGUAUGFydGl0aW9uAFN1YnBhcnRpdGlvbgBUZW1wb3JhcnkAUmVuYW1lZABUb28gbWFueSBhY3RpdmUgY29uY3VycmVudCB0cmFuc2FjdGlvbnMATm9uLUFTQ0lJIHNlcGFyYXRvciBhcmd1bWVudHMgYXJlIG5vdCBmdWxseSBzdXBwb3J0ZWQAZGVidWcgc3luYyBwb2ludCB3YWl0IHRpbWVkIG91dABkZWJ1ZyBzeW5jIHBvaW50IGhpdCBsaW1pdCByZWFjaGVkAER1cGxpY2F0ZSBjb25kaXRpb24gaW5mb3JtYXRpb24gaXRlbSAnJXMnAFVuaGFuZGxlZCB1c2VyLWRlZmluZWQgd2FybmluZyBjb25kaXRpb24AVW5oYW5kbGVkIHVzZXItZGVmaW5lZCBub3QgZm91bmQgY29uZGl0aW9uAFVuaGFuZGxlZCB1c2VyLWRlZmluZWQgZXhjZXB0aW9uIGNvbmRpdGlvbgBSRVNJR05BTCB3aGVuIGhhbmRsZXIgbm90IGFjdGl2ZQBTSUdOQUwvUkVTSUdOQUwgY2FuIG9ubHkgdXNlIGEgQ09ORElUSU9OIGRlZmluZWQgd2l0aCBTUUxTVEFURQBEYXRhIHRydW5jYXRlZCBmb3IgY29uZGl0aW9uIGl0ZW0gJyVzJwBEYXRhIHRvbyBsb25nIGZvciBjb25kaXRpb24gaXRlbSAnJXMnAFVua25vd24gbG9jYWxlOiAnJS0uNjRzJwBUaGUgcmVxdWVzdGVkIHNlcnZlciBpZCAlZCBjbGFzaGVzIHdpdGggdGhlIHJlcGxpY2Egc3RhcnR1cCBvcHRpb24gLS1yZXBsaWNhdGUtc2FtZS1zZXJ2ZXItaWQAUXVlcnkgY2FjaGUgaXMgZGlzYWJsZWQ7IHJlc3RhcnQgdGhlIHNlcnZlciB3aXRoIHF1ZXJ5X2NhY2hlX3R5cGU9MSB0byBlbmFibGUgaXQARHVwbGljYXRlIHBhcnRpdGlvbiBmaWVsZCBuYW1lICclLS4xOTJzJwBJbmNvbnNpc3RlbmN5IGluIHVzYWdlIG9mIGNvbHVtbiBsaXN0cyBmb3IgcGFydGl0aW9uaW5nAFBhcnRpdGlvbiBjb2x1bW4gdmFsdWVzIG9mIGluY29ycmVjdCB0eXBlAFRvbyBtYW55IGZpZWxkcyBpbiAnJS0uMTkycycAQ2Fubm90IHVzZSBNQVhWQUxVRSBhcyB2YWx1ZSBpbiBWQUxVRVMgSU4AQ2Fubm90IGhhdmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhpcyB0eXBlIG9mICUtLjY0cyBwYXJ0aXRpb25pbmcAUm93IGV4cHJlc3Npb25zIGluIFZBTFVFUyBJTiBvbmx5IGFsbG93ZWQgZm9yIG11bHRpLWZpZWxkIGNvbHVtbiBwYXJ0aXRpb25pbmcARmllbGQgJyUtLjE5MnMnIGlzIG9mIGEgbm90IGFsbG93ZWQgdHlwZSBmb3IgdGhpcyB0eXBlIG9mIHBhcnRpdGlvbmluZwBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBwYXJ0aXRpb25pbmcgZmllbGRzIGlzIHRvbyBsYXJnZQBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBib3RoIHJvdy1pbmNhcGFibGUgZW5naW5lcyBhbmQgc3RhdGVtZW50LWluY2FwYWJsZSBlbmdpbmVzIGFyZSBpbnZvbHZlZC4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2UgQklOTE9HX0ZPUk1BVCA9IFJPVyBhbmQgYXQgbGVhc3Qgb25lIHRhYmxlIHVzZXMgYSBzdG9yYWdlIGVuZ2luZSBsaW1pdGVkIHRvIHN0YXRlbWVudC1iYXNlZCBsb2dnaW5nLgBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBzdGF0ZW1lbnQgaXMgdW5zYWZlLCBzdG9yYWdlIGVuZ2luZSBpcyBsaW1pdGVkIHRvIHN0YXRlbWVudC1iYXNlZCBsb2dnaW5nLCBhbmQgQklOTE9HX0ZPUk1BVCA9IE1JWEVELiAlcwBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBzdGF0ZW1lbnQgaXMgaW4gcm93IGZvcm1hdCBhbmQgYXQgbGVhc3Qgb25lIHRhYmxlIHVzZXMgYSBzdG9yYWdlIGVuZ2luZSBsaW1pdGVkIHRvIHN0YXRlbWVudC1iYXNlZCBsb2dnaW5nLgBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBCSU5MT0dfRk9STUFUID0gU1RBVEVNRU5UIGFuZCBhdCBsZWFzdCBvbmUgdGFibGUgdXNlcyBhIHN0b3JhZ2UgZW5naW5lIGxpbWl0ZWQgdG8gcm93LWJhc2VkIGxvZ2dpbmcuJXMAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50OiBpbXBvc3NpYmxlIHRvIHdyaXRlIHRvIGJpbmFyeSBsb2cgc2luY2Ugc3RhdGVtZW50IGlzIGluIHJvdyBmb3JtYXQgYW5kIEJJTkxPR19GT1JNQVQgPSBTVEFURU1FTlQuAENhbm5vdCBleGVjdXRlIHN0YXRlbWVudDogaW1wb3NzaWJsZSB0byB3cml0ZSB0byBiaW5hcnkgbG9nIHNpbmNlIG1vcmUgdGhhbiBvbmUgZW5naW5lIGlzIGludm9sdmVkIGFuZCBhdCBsZWFzdCBvbmUgZW5naW5lIGlzIHNlbGYtbG9nZ2luZy4AVGhlIHN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgTElNSVQgY2xhdXNlLiBUaGlzIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBzZXQgb2Ygcm93cyBpbmNsdWRlZCBjYW5ub3QgYmUgcHJlZGljdGVkLgBUaGUgc3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgSU5TRVJUIERFTEFZRUQuIFRoaXMgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIHRpbWVzIHdoZW4gcm93cyBhcmUgaW5zZXJ0ZWQgY2Fubm90IGJlIHByZWRpY3RlZC4AVGhlIHN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIHRoZSBnZW5lcmFsIGxvZywgc2xvdyBxdWVyeSBsb2csIG9yIHBlcmZvcm1hbmNlX3NjaGVtYSB0YWJsZShzKS4gVGhpcyBpcyB1bnNhZmUgYmVjYXVzZSBzeXN0ZW0gdGFibGVzIG1heSBkaWZmZXIgb24gcmVwbGljYXMuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCBpbnZva2VzIGEgdHJpZ2dlciBvciBhIHN0b3JlZCBmdW5jdGlvbiB0aGF0IGluc2VydHMgaW50byBhbiBBVVRPX0lOQ1JFTUVOVCBjb2x1bW4uIEluc2VydGVkIHZhbHVlcyBjYW5ub3QgYmUgbG9nZ2VkIGNvcnJlY3RseS4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgYSBVREYgd2hpY2ggbWF5IG5vdCByZXR1cm4gdGhlIHNhbWUgdmFsdWUgb24gdGhlIHJlcGxpY2EuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgc3lzdGVtIHZhcmlhYmxlIHRoYXQgbWF5IGhhdmUgYSBkaWZmZXJlbnQgdmFsdWUgb24gdGhlIHJlcGxpY2EuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgc3lzdGVtIGZ1bmN0aW9uIHRoYXQgbWF5IHJldHVybiBhIGRpZmZlcmVudCB2YWx1ZSBvbiB0aGUgcmVwbGljYS4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IGFjY2Vzc2VzIGEgbm9uLXRyYW5zYWN0aW9uYWwgdGFibGUgYWZ0ZXIgYWNjZXNzaW5nIGEgdHJhbnNhY3Rpb25hbCB0YWJsZSB3aXRoaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24uACVzIFN0YXRlbWVudDogJXMAQ29sdW1uICVkIG9mIHRhYmxlICclLS4xOTJzLiUtLjE5MnMnIGNhbm5vdCBiZSBjb252ZXJ0ZWQgZnJvbSB0eXBlICclLS4zMnMnIHRvIHR5cGUgJyUtLjMycycAQ2FuJ3QgY3JlYXRlIGNvbnZlcnNpb24gdGFibGUgZm9yIHRhYmxlICclLS4xOTJzLiUtLjE5MnMnAENhbm5vdCBtb2RpZnkgQEBzZXNzaW9uLmJpbmxvZ19mb3JtYXQgaW5zaWRlIGEgdHJhbnNhY3Rpb24AVGhlIHBhdGggc3BlY2lmaWVkIGZvciAlLjY0cyBpcyB0b28gbG9uZy4AJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4ATmF0aXZlIHRhYmxlICclLS42NHMnLiclLS42NHMnIGhhcyB0aGUgd3Jvbmcgc3RydWN0dXJlAEludmFsaWQgcGVyZm9ybWFuY2Vfc2NoZW1hIHVzYWdlLgBUYWJsZSAnJXMnLiclcycgd2FzIHNraXBwZWQgc2luY2UgaXRzIGRlZmluaXRpb24gaXMgYmVpbmcgbW9kaWZpZWQgYnkgY29uY3VycmVudCBEREwgc3RhdGVtZW50AENhbm5vdCBtb2RpZnkgQEBzZXNzaW9uLmJpbmxvZ19kaXJlY3Rfbm9uX3RyYW5zYWN0aW9uYWxfdXBkYXRlcyBpbnNpZGUgYSB0cmFuc2FjdGlvbgBDYW5ub3QgY2hhbmdlIHRoZSBiaW5sb2cgZGlyZWN0IGZsYWcgaW5zaWRlIGEgc3RvcmVkIGZ1bmN0aW9uIG9yIHRyaWdnZXIAQSBTUEFUSUFMIGluZGV4IG1heSBvbmx5IGNvbnRhaW4gYSBnZW9tZXRyaWNhbCB0eXBlIGNvbHVtbgBDb21tZW50IGZvciBpbmRleCAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBXYWl0IG9uIGEgbG9jayB3YXMgYWJvcnRlZCBkdWUgdG8gYSBwZW5kaW5nIGV4Y2x1c2l2ZSBsb2NrACVzIHZhbHVlIGlzIG91dCBvZiByYW5nZSBpbiAnJXMnAEEgdmFyaWFibGUgb2YgYSBub24taW50ZWdlciBiYXNlZCB0eXBlIGluIExJTUlUIGNsYXVzZQBNaXhpbmcgc2VsZi1sb2dnaW5nIGFuZCBub24tc2VsZi1sb2dnaW5nIGVuZ2luZXMgaW4gYSBzdGF0ZW1lbnQgaXMgdW5zYWZlLgBTdGF0ZW1lbnQgYWNjZXNzZXMgbm9udHJhbnNhY3Rpb25hbCB0YWJsZSBhcyB3ZWxsIGFzIHRyYW5zYWN0aW9uYWwgb3IgdGVtcG9yYXJ5IHRhYmxlLCBhbmQgd3JpdGVzIHRvIGFueSBvZiB0aGVtLgBDYW5ub3QgbW9kaWZ5IEBAc2Vzc2lvbi5zcWxfbG9nX2JpbiBpbnNpZGUgYSB0cmFuc2FjdGlvbgBDYW5ub3QgY2hhbmdlIHRoZSBzcWxfbG9nX2JpbiBpbnNpZGUgYSBzdG9yZWQgZnVuY3Rpb24gb3IgdHJpZ2dlcgBGYWlsZWQgdG8gcmVhZCBmcm9tIHRoZSAucGFyIGZpbGUAVkFMVUVTIHZhbHVlIGZvciBwYXJ0aXRpb24gJyUtLjY0cycgbXVzdCBoYXZlIHR5cGUgSU5UANCU0L7RgdGC0YPQvyDQt9Cw0LHQvtGA0L7QvdC10L3QviDQtNC70Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsDogJyUtLjQ4cydAJyUtLjY0cycAU0VUIFBBU1NXT1JEIGhhcyBubyBzaWduaWZpY2FuY2UgZm9yIHVzZXJzIGF1dGhlbnRpY2F0aW5nIHZpYSBwbHVnaW5zAEdSQU5UIHdpdGggSURFTlRJRklFRCBXSVRIIGlzIGlsbGVnYWwgYmVjYXVzZSB0aGUgdXNlciAlLS4qcyBhbHJlYWR5IGV4aXN0cwBDYW5ub3QgdHJ1bmNhdGUgYSB0YWJsZSByZWZlcmVuY2VkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAoJS4xOTJzKQBQbHVnaW4gJyVzJyBpcyBmb3JjZV9wbHVzX3Blcm1hbmVudCBhbmQgY2FuIG5vdCBiZSB1bmxvYWRlZABUaGUgcmVxdWVzdGVkIHZhbHVlIGZvciB0aGUgaGVhcnRiZWF0IHBlcmlvZCBpcyBsZXNzIHRoYW4gMSBtaWxsaXNlY29uZC4gVGhlIHZhbHVlIGlzIHJlc2V0IHRvIDAsIG1lYW5pbmcgdGhhdCBoZWFydGJlYXRpbmcgd2lsbCBlZmZlY3RpdmVseSBiZSBkaXNhYmxlZC4AVGhlIHJlcXVlc3RlZCB2YWx1ZSBmb3IgdGhlIGhlYXJ0YmVhdCBwZXJpb2QgZXhjZWVkcyB0aGUgdmFsdWUgb2YgYHJlcGxpY2FfbmV0X3RpbWVvdXQnIHNlY29uZHMuIEEgc2Vuc2libGUgdmFsdWUgZm9yIHRoZSBwZXJpb2Qgc2hvdWxkIGJlIGxlc3MgdGhhbiB0aGUgdGltZW91dC4ATXVsdGktcm93IHN0YXRlbWVudHMgcmVxdWlyZWQgbW9yZSB0aGFuICdtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZScgYnl0ZXMgb2Ygc3RvcmFnZTsgaW5jcmVhc2UgdGhpcyBteXNxbGQgdmFyaWFibGUgYW5kIHRyeSBhZ2FpbgBQcmltYXJ5IGtleS9wYXJ0aXRpb24ga2V5IHVwZGF0ZSBpcyBub3QgYWxsb3dlZCBzaW5jZSB0aGUgdGFibGUgaXMgdXBkYXRlZCBib3RoIGFzICclLS4xOTJzJyBhbmQgJyUtLjE5MnMnLgBUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGAlLS42NHNgIEZPUkNFIiBvciBkdW1wL3JlbG9hZCB0byBmaXggaXQhAFRoZSB2YWx1ZSBvZiAnJXMnIHNob3VsZCBiZSBubyBsZXNzIHRoYW4gdGhlIHZhbHVlIG9mICclcycASW5kZXggY29sdW1uIHNpemUgdG9vIGxhcmdlLiBUaGUgbWF4aW11bSBjb2x1bW4gc2l6ZSBpcyAlbHUgYnl0ZXMuAFRyaWdnZXIgJyUtLjY0cycgaGFzIGFuIGVycm9yIGluIGl0cyBib2R5OiAnJS0uMjU2cycAVW5rbm93biB0cmlnZ2VyIGhhcyBhbiBlcnJvciBpbiBpdHMgYm9keTogJyUtLjI1NnMnAEluZGV4ICVzIGlzIGNvcnJ1cHRlZABVbmRvIGxvZyByZWNvcmQgaXMgdG9vIGJpZy4ASU5TRVJUIElHTk9SRS4uLiBTRUxFQ1QgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgaWdub3JlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAElOU0VSVC4uLiBTRUxFQ1QuLi4gT04gRFVQTElDQVRFIEtFWSBVUERBVEUgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgdXBkYXRlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAFJFUExBQ0UuLi4gU0VMRUNUIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCByb3dzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIFNFTEVDVCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIHJlcGxhY2VkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AQ1JFQVRFLi4uIElHTk9SRSBTRUxFQ1QgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBieSB0aGUgU0VMRUNUIGRldGVybWluZXMgd2hpY2ggKGlmIGFueSkgcm93cyBhcmUgaWdub3JlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAENSRUFURS4uLiBSRVBMQUNFIFNFTEVDVCBpcyB1bnNhZmUgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggcm93cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSByZXBsYWNlZC4gVGhpcyBvcmRlciBjYW5ub3QgYmUgcHJlZGljdGVkIGFuZCBtYXkgZGlmZmVyIG9uIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuAFVQREFURSBJR05PUkUgaXMgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHVwZGF0ZWQgZGV0ZXJtaW5lcyB3aGljaCAoaWYgYW55KSByb3dzIGFyZSBpZ25vcmVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4AUGx1Z2luICclcycgaXMgbWFya2VkIGFzIG5vdCBkeW5hbWljYWxseSB1bmluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gdW5pbnN0YWxsIGl0LgBQbHVnaW4gJyVzJyBpcyBtYXJrZWQgYXMgbm90IGR5bmFtaWNhbGx5IGluc3RhbGxhYmxlLiBZb3UgaGF2ZSB0byBzdG9wIHRoZSBzZXJ2ZXIgdG8gaW5zdGFsbCBpdC4AU3RhdGVtZW50cyB3cml0aW5nIHRvIGEgdGFibGUgd2l0aCBhbiBhdXRvLWluY3JlbWVudCBjb2x1bW4gYWZ0ZXIgc2VsZWN0aW5nIGZyb20gYW5vdGhlciB0YWJsZSBhcmUgdW5zYWZlIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHJvd3MgYXJlIHJldHJpZXZlZCBkZXRlcm1pbmVzIHdoYXQgKGlmIGFueSkgcm93cyB3aWxsIGJlIHdyaXR0ZW4uIFRoaXMgb3JkZXIgY2Fubm90IGJlIHByZWRpY3RlZCBhbmQgbWF5IGRpZmZlciBvbiBzb3VyY2UgYW5kIHRoZSByZXBsaWNhLgBDUkVBVEUgVEFCTEUuLi4gU0VMRUNULi4uICBvbiBhIHRhYmxlIHdpdGggYW4gYXV0by1pbmNyZW1lbnQgY29sdW1uIGlzIHVuc2FmZSBiZWNhdXNlIHRoZSBvcmRlciBpbiB3aGljaCByb3dzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIFNFTEVDVCBkZXRlcm1pbmVzIHdoaWNoIChpZiBhbnkpIHJvd3MgYXJlIGluc2VydGVkLiBUaGlzIG9yZGVyIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYW5kIG1heSBkaWZmZXIgb24gc291cmNlIGFuZCB0aGUgcmVwbGljYS4ASU5TRVJULi4uIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFICBvbiBhIHRhYmxlIHdpdGggbW9yZSB0aGFuIG9uZSBVTklRVUUgS0VZIGlzIHVuc2FmZQBUYWJsZSBpcyBiZWluZyB1c2VkIGluIGZvcmVpZ24ga2V5IGNoZWNrLgBTdG9yYWdlIGVuZ2luZSAnJXMnIGRvZXMgbm90IHN1cHBvcnQgc3lzdGVtIHRhYmxlcy4gWyVzLiVzXQBJTlNFUlQgaW50byBhdXRvaW5jcmVtZW50IGZpZWxkIHdoaWNoIGlzIG5vdCB0aGUgZmlyc3QgcGFydCBpbiB0aGUgY29tcG9zZWQgcHJpbWFyeSBrZXkgaXMgdW5zYWZlLgBDYW5ub3QgbG9hZCBmcm9tICVzLiVzLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkAFRoZSByZXF1ZXN0ZWQgdmFsdWUgJXMgZm9yIHRoZSBzb3VyY2UgZGVsYXkgZXhjZWVkcyB0aGUgbWF4aW11bSAldQBPbmx5IEZvcm1hdF9kZXNjcmlwdGlvbl9sb2dfZXZlbnQgYW5kIHJvdyBldmVudHMgYXJlIGFsbG93ZWQgaW4gQklOTE9HIHN0YXRlbWVudHMgKGJ1dCAlcyB3YXMgcHJvdmlkZWQpAE5vbiBtYXRjaGluZyBhdHRyaWJ1dGUgJyUtLjY0cycgYmV0d2VlbiBwYXJ0aXRpb24gYW5kIHRhYmxlAFRhYmxlIHRvIGV4Y2hhbmdlIHdpdGggcGFydGl0aW9uIGlzIHBhcnRpdGlvbmVkOiAnJS0uNjRzJwBUYWJsZSB0byBleGNoYW5nZSB3aXRoIHBhcnRpdGlvbiBpcyB0ZW1wb3Jhcnk6ICclLS42NHMnAFN1YnBhcnRpdGlvbmVkIHRhYmxlLCB1c2Ugc3VicGFydGl0aW9uIGluc3RlYWQgb2YgcGFydGl0aW9uAFVua25vd24gcGFydGl0aW9uICclLS42NHMnIGluIHRhYmxlICclLS42NHMnAFRhYmxlcyBoYXZlIGRpZmZlcmVudCBkZWZpbml0aW9ucwBGb3VuZCBhIHJvdyB0aGF0IGRvZXMgbm90IG1hdGNoIHRoZSBwYXJ0aXRpb24AT3B0aW9uIGJpbmxvZ19jYWNoZV9zaXplICglbHUpIGlzIGdyZWF0ZXIgdGhhbiBtYXhfYmlubG9nX2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX2NhY2hlX3NpemUgZXF1YWwgdG8gbWF4X2JpbmxvZ19jYWNoZV9zaXplLgBDYW5ub3QgdXNlICUtLjY0cyBhY2Nlc3Mgb24gaW5kZXggJyUtLjY0cycgZHVlIHRvIHR5cGUgb3IgY29sbGF0aW9uIGNvbnZlcnNpb24gb24gZmllbGQgJyUtLjY0cycAVGFibGUgdG8gZXhjaGFuZ2Ugd2l0aCBwYXJ0aXRpb24gaGFzIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXM6ICclLS42NHMnAEtleSB2YWx1ZSAnJS0uMTkycycgd2FzIG5vdCBmb3VuZCBpbiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJwBEYXRhIGZvciBjb2x1bW4gJyVzJyB0b28gbG9uZwBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBuZXR3b3JrLgBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBhIGxvZyBmaWxlLgBPcHRpb24gYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSAoJWx1KSBpcyBncmVhdGVyIHRoYW4gbWF4X2JpbmxvZ19zdG10X2NhY2hlX3NpemUgKCVsdSk7IHNldHRpbmcgYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSBlcXVhbCB0byBtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZS4AQ2FuJ3QgdXBkYXRlIHRhYmxlICclLS4xOTJzJyB3aGlsZSAnJS0uMTkycycgaXMgYmVpbmcgY3JlYXRlZC4AUEFSVElUSU9OICgpIGNsYXVzZSBvbiBub24gcGFydGl0aW9uZWQgdGFibGUARm91bmQgYSByb3cgbm90IG1hdGNoaW5nIHRoZSBnaXZlbiBwYXJ0aXRpb24gc2V0AHBhcnRpdGlvbiAnJS0uNjRzJyBkb2Vzbid0IGV4aXN0AEZhaWx1cmUgd2hpbGUgY2hhbmdpbmcgdGhlIHR5cGUgb2YgcmVwbGljYXRpb24gcmVwb3NpdG9yeTogJXMuAFRoZSBjcmVhdGlvbiBvZiBzb21lIHRlbXBvcmFyeSB0YWJsZXMgY291bGQgbm90IGJlIHJvbGxlZCBiYWNrLgBTb21lIHRlbXBvcmFyeSB0YWJsZXMgd2VyZSBkcm9wcGVkLCBidXQgdGhlc2Ugb3BlcmF0aW9ucyBjb3VsZCBub3QgYmUgcm9sbGVkIGJhY2suACVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gbXVsdGktdGhyZWFkZWQgcmVwbGljYSBtb2RlLiAlcwBUaGUgbnVtYmVyIG9mIG1vZGlmaWVkIGRhdGFiYXNlcyBleGNlZWRzIHRoZSBtYXhpbXVtICVkOyB0aGUgZGF0YWJhc2UgbmFtZXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlcGxpY2F0aW9uIGV2ZW50IG1ldGFkYXRhLgBDYW5ub3QgZXhlY3V0ZSB0aGUgY3VycmVudCBldmVudCBncm91cCBpbiB0aGUgcGFyYWxsZWwgbW9kZS4gRW5jb3VudGVyZWQgZXZlbnQgJXMsIHJlbGF5LWxvZyBuYW1lICVzLCBwb3NpdGlvbiAlcyB3aGljaCBwcmV2ZW50cyBleGVjdXRpb24gb2YgdGhpcyBldmVudCBncm91cCBpbiBwYXJhbGxlbCBtb2RlLiBSZWFzb246ICVzLgAlcwBGVUxMVEVYVCBpbmRleCBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMuAEludmFsaWQgY29uZGl0aW9uIG51bWJlcgBTZW5kaW5nIHBhc3N3b3JkcyBpbiBwbGFpbiB0ZXh0IHdpdGhvdXQgU1NML1RMUyBpcyBleHRyZW1lbHkgaW5zZWN1cmUuAFN0b3JpbmcgTXlTUUwgdXNlciBuYW1lIG9yIHBhc3N3b3JkIGluZm9ybWF0aW9uIGluIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkgaXMgbm90IHNlY3VyZSBhbmQgaXMgdGhlcmVmb3JlIG5vdCByZWNvbW1lbmRlZC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHRoZSBVU0VSIGFuZCBQQVNTV09SRCBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIFNUQVJUIFJFUExJQ0E7IHNlZSB0aGUgJ1NUQVJUIFJFUExJQ0EgU3ludGF4JyBpbiB0aGUgTXlTUUwgTWFudWFsIGZvciBtb3JlIGluZm9ybWF0aW9uLgBGb3JlaWduIGtleSBjb25zdHJhaW50IGZvciB0YWJsZSAnJS4xOTJzJywgcmVjb3JkICclLS4xOTJzJyB3b3VsZCBsZWFkIHRvIGEgZHVwbGljYXRlIGVudHJ5IGluIHRhYmxlICclLjE5MnMnLCBrZXkgJyUuMTkycycARm9yZWlnbiBrZXkgY29uc3RyYWludCBmb3IgdGFibGUgJyUuMTkycycsIHJlY29yZCAnJS0uMTkycycgd291bGQgbGVhZCB0byBhIGR1cGxpY2F0ZSBlbnRyeSBpbiBhIGNoaWxkIHRhYmxlAFNldHRpbmcgYXV0aGVudGljYXRpb24gb3B0aW9ucyBpcyBub3QgcG9zc2libGUgd2hlbiBvbmx5IHRoZSBSZXBsaWNhIFNRTCBUaHJlYWQgaXMgYmVpbmcgc3RhcnRlZC4AVGhlIHRhYmxlIGRvZXMgbm90IGhhdmUgRlVMTFRFWFQgaW5kZXggdG8gc3VwcG9ydCB0aGlzIHF1ZXJ5AFRoZSBzeXN0ZW0gdmFyaWFibGUgJS4yMDBzIGNhbm5vdCBiZSBzZXQgaW4gc3RvcmVkIGZ1bmN0aW9ucyBvciB0cmlnZ2Vycy4AVGhlIHN5c3RlbSB2YXJpYWJsZSAlLjIwMHMgY2Fubm90IGJlIHNldCB3aGVuIHRoZXJlIGlzIGFuIG9uZ29pbmcgdHJhbnNhY3Rpb24uAFRoZSBzeXN0ZW0gdmFyaWFibGUgQEBTRVNTSU9OLkdUSURfTkVYVCBoYXMgdGhlIHZhbHVlICUuMjAwcywgd2hpY2ggaXMgbm90IGxpc3RlZCBpbiBAQFNFU1NJT04uR1RJRF9ORVhUX0xJU1QuAFRoZSBzeXN0ZW0gdmFyaWFibGUgQEBTRVNTSU9OLkdUSURfTkVYVCBjYW5ub3QgY2hhbmdlIGluc2lkZSBhIHRyYW5zYWN0aW9uLgBUaGUgc3RhdGVtZW50ICdTRVQgJS4yMDBzJyBjYW5ub3QgaW52b2tlIGEgc3RvcmVkIGZ1bmN0aW9uLgBUaGUgc3lzdGVtIHZhcmlhYmxlIEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlICdBVVRPTUFUSUMnIHdoZW4gQEBTRVNTSU9OLkdUSURfTkVYVF9MSVNUIGlzIG5vbi1OVUxMLgBTa2lwcGluZyB0cmFuc2FjdGlvbiAlLjIwMHMgYmVjYXVzZSBpdCBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkIGFuZCBsb2dnZWQuAE1hbGZvcm1lZCBHVElEIHNldCBzcGVjaWZpY2F0aW9uICclLjIwMHMnLgBNYWxmb3JtZWQgR1RJRCBzZXQgZW5jb2RpbmcuAE1hbGZvcm1lZCBHVElEIHNwZWNpZmljYXRpb24gJyUuMjAwcycuAEltcG9zc2libGUgdG8gZ2VuZXJhdGUgR1RJRDogdGhlIGludGVnZXIgY29tcG9uZW50IHJlYWNoZWQgdGhlIG1heGltdW0gdmFsdWUuIFJlc3RhcnQgdGhlIHNlcnZlciB3aXRoIGEgbmV3IHNlcnZlcl91dWlkLgBQYXJhbWV0ZXJzIFNPVVJDRV9MT0dfRklMRSwgU09VUkNFX0xPR19QT1MsIFJFTEFZX0xPR19GSUxFIGFuZCBSRUxBWV9MT0dfUE9TIGNhbm5vdCBiZSBzZXQgd2hlbiBTT1VSQ0VfQVVUT19QT1NJVElPTiBpcyBhY3RpdmUuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0FVVE9fUE9TSVRJT04gPSAxIGNhbm5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50cyB3aXRoIGltcGxpY2l0IGNvbW1pdCBpbnNpZGUgYSB0cmFuc2FjdGlvbiB3aGVuIEBAU0VTU0lPTi5HVElEX05FWFQgPT0gJ1VVSUQ6TlVNQkVSJy4AR1RJRF9NT0RFID0gT04gcmVxdWlyZXMgRU5GT1JDRV9HVElEX0NPTlNJU1RFTkNZID0gT04uAEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OIG9yIE9OX1BFUk1JU1NJVkUgb3IgT0ZGX1BFUk1JU1NJVkUgcmVxdWlyZXMgLS1sb2ctYmluIGFuZCAtLWxvZy1yZXBsaWNhLXVwZGF0ZXMuAEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlIHNldCB0byBVVUlEOk5VTUJFUiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQEBTRVNTSU9OLkdUSURfTkVYVCBjYW5ub3QgYmUgc2V0IHRvIEFOT05ZTU9VUyB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLgBAQFNFU1NJT04uR1RJRF9ORVhUX0xJU1QgY2Fubm90IGJlIHNldCB0byBhIG5vbi1OVUxMIHZhbHVlIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBGb3VuZCBhIEd0aWRfbG9nX2V2ZW50IHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogVXBkYXRlcyB0byBub24tdHJhbnNhY3Rpb25hbCB0YWJsZXMgY2FuIG9ubHkgYmUgZG9uZSBpbiBlaXRoZXIgYXV0b2NvbW1pdHRlZCBzdGF0ZW1lbnRzIG9yIHNpbmdsZS1zdGF0ZW1lbnQgdHJhbnNhY3Rpb25zLCBhbmQgbmV2ZXIgaW4gdGhlIHNhbWUgc3RhdGVtZW50IGFzIHVwZGF0ZXMgdG8gdHJhbnNhY3Rpb25hbCB0YWJsZXMuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBDUkVBVEUgVEFCTEUgLi4uIFNFTEVDVC4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IENSRUFURSBURU1QT1JBUlkgVEFCTEUgYW5kIERST1AgVEVNUE9SQVJZIFRBQkxFIGNhbiBvbmx5IGJlIGV4ZWN1dGVkIG91dHNpZGUgdHJhbnNhY3Rpb25hbCBjb250ZXh0LiAgVGhlc2Ugc3RhdGVtZW50cyBhcmUgYWxzbyBub3QgYWxsb3dlZCBpbiBhIGZ1bmN0aW9uIG9yIHRyaWdnZXIgYmVjYXVzZSBmdW5jdGlvbnMgYW5kIHRyaWdnZXJzIGFyZSBhbHNvIGNvbnNpZGVyZWQgdG8gYmUgbXVsdGktc3RhdGVtZW50IHRyYW5zYWN0aW9ucy4AVGhlIHZhbHVlIG9mIEBAR0xPQkFMLkdUSURfTU9ERSBjYW4gb25seSBiZSBjaGFuZ2VkIG9uZSBzdGVwIGF0IGEgdGltZTogT0ZGIDwtPiBPRkZfUEVSTUlTU0lWRSA8LT4gT05fUEVSTUlTU0lWRSA8LT4gT04uIEFsc28gbm90ZSB0aGF0IHRoaXMgdmFsdWUgbXVzdCBiZSBzdGVwcGVkIHVwIG9yIGRvd24gc2ltdWx0YW5lb3VzbHkgb24gYWxsIHNlcnZlcnMuIFNlZSB0aGUgTWFudWFsIGZvciBpbnN0cnVjdGlvbnMuAENhbm5vdCByZXBsaWNhdGUgYmVjYXVzZSB0aGUgc291cmNlIHB1cmdlZCByZXF1aXJlZCBiaW5hcnkgbG9ncy4gUmVwbGljYXRlIHRoZSBtaXNzaW5nIHRyYW5zYWN0aW9ucyBmcm9tIGVsc2V3aGVyZSwgb3IgcHJvdmlzaW9uIGEgbmV3IHJlcGxpY2EgZnJvbSBiYWNrdXAuIENvbnNpZGVyIGluY3JlYXNpbmcgdGhlIHNvdXJjZSdzIGJpbmFyeSBsb2cgZXhwaXJhdGlvbiBwZXJpb2QuICVzAEBAU0VTU0lPTi5HVElEX05FWFQgY2Fubm90IGJlIGNoYW5nZWQgYnkgYSBjbGllbnQgdGhhdCBvd25zIGEgR1RJRC4gVGhlIGNsaWVudCBvd25zICVzLiBPd25lcnNoaXAgaXMgcmVsZWFzZWQgb24gQ09NTUlUIG9yIFJPTExCQUNLLgBVbmtub3duIEVYUExBSU4gZm9ybWF0IG5hbWU6ICclcycAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGluIGEgUkVBRCBPTkxZIHRyYW5zYWN0aW9uLgBDb21tZW50IGZvciB0YWJsZSBwYXJ0aXRpb24gJyUtLjY0cycgaXMgdG9vIGxvbmcgKG1heCA9ICVsdSkAUmVwbGljYSBpcyBub3QgY29uZmlndXJlZCBvciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBwcm9wZXJseS4gWW91IG11c3QgYXQgbGVhc3Qgc2V0IC0tc2VydmVyLWlkIHRvIGVuYWJsZSBlaXRoZXIgYSBzb3VyY2Ugb3IgYSByZXBsaWNhLiBBZGRpdGlvbmFsIGVycm9yIG1lc3NhZ2VzIGNhbiBiZSBmb3VuZCBpbiB0aGUgTXlTUUwgZXJyb3IgbG9nLgBJbm5vREIgcHJlc2VudGx5IHN1cHBvcnRzIG9uZSBGVUxMVEVYVCBpbmRleCBjcmVhdGlvbiBhdCBhIHRpbWUAQ2Fubm90IGNyZWF0ZSBGVUxMVEVYVCBpbmRleCBvbiB0ZW1wb3JhcnkgSW5ub0RCIHRhYmxlAENvbHVtbiAnJS0uMTkycycgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZVTExURVhUIGluZGV4AEluZGV4ICclLS4xOTJzJyBpcyBvZiB3cm9uZyB0eXBlIGZvciBhbiBJbm5vREIgRlVMTFRFWFQgaW5kZXgAQ3JlYXRpbmcgaW5kZXggJyUtLjE5MnMnIHJlcXVpcmVkIG1vcmUgdGhhbiAnaW5ub2RiX29ubGluZV9hbHRlcl9sb2dfbWF4X3NpemUnIGJ5dGVzIG9mIG1vZGlmaWNhdGlvbiBsb2cuIFBsZWFzZSB0cnkgYWdhaW4uAFVua25vd24gQUxHT1JJVEhNICclcycAVW5rbm93biBMT0NLIHR5cGUgJyVzJwBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIGNhbm5vdCBiZSBleGVjdXRlZCB3aGVuIHRoZSByZXBsaWNhIHdhcyBzdG9wcGVkIHdpdGggYW4gZXJyb3Igb3Iga2lsbGVkIGluIE1UQSBtb2RlLiBDb25zaWRlciB1c2luZyBSRVNFVCBSRVBMSUNBIG9yIFNUQVJUIFJFUExJQ0EgVU5USUwuAENhbm5vdCByZWNvdmVyIGFmdGVyIFJFUExJQ0EgZXJyb3JlZCBvdXQgaW4gcGFyYWxsZWwgZXhlY3V0aW9uIG1vZGUuIEFkZGl0aW9uYWwgZXJyb3IgbWVzc2FnZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBNeVNRTCBlcnJvciBsb2cuAENhbm5vdCBjbGVhbiB1cCB3b3JrZXIgaW5mbyB0YWJsZXMuIEFkZGl0aW9uYWwgZXJyb3IgbWVzc2FnZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBNeVNRTCBlcnJvciBsb2cuAENvbHVtbiBjb3VudCBvZiAlcy4lcyBpcyB3cm9uZy4gRXhwZWN0ZWQgJWQsIGZvdW5kICVkLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkAFJlcGxpY2EgbXVzdCBzaWxlbnRseSByZXRyeSBjdXJyZW50IHRyYW5zYWN0aW9uAFRoZXJlIGlzIGEgZm9yZWlnbiBrZXkgY2hlY2sgcnVubmluZyBvbiB0YWJsZSAnJS0uMTkycycuIENhbm5vdCBkaXNjYXJkIHRoZSB0YWJsZS4AU2NoZW1hIG1pc21hdGNoICglcykAVGFibGUgJyUtLjE5MnMnIGluIHN5c3RlbSB0YWJsZXNwYWNlAElPIFJlYWQgZXJyb3I6ICglbHUsICVzKSAlcwBJTyBXcml0ZSBlcnJvcjogKCVsdSwgJXMpICVzAFRhYmxlc3BhY2UgaXMgbWlzc2luZyBmb3IgdGFibGUgJXMuAFRhYmxlc3BhY2UgJyUtLjE5MnMnIGV4aXN0cy4AVGFibGVzcGFjZSBoYXMgYmVlbiBkaXNjYXJkZWQgZm9yIHRhYmxlICclLS4xOTJzJwBJbnRlcm5hbCBlcnJvcjogJXMAQUxURVIgVEFCTEUgJS0uMTkycyBJTVBPUlQgVEFCTEVTUEFDRSBmYWlsZWQgd2l0aCBlcnJvciAlbHUgOiAnJXMnAEluZGV4IGNvcnJ1cHQ6ICVzAEludmFsaWQgZGlzcGxheSB3aWR0aC4gVXNlIFlFQVIgaW5zdGVhZC4AWW91ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJlbWVudHMAWW91IG11c3QgcmVzZXQgeW91ciBwYXNzd29yZCB1c2luZyBBTFRFUiBVU0VSIHN0YXRlbWVudCBiZWZvcmUgZXhlY3V0aW5nIHRoaXMgc3RhdGVtZW50LgBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50LiBNaXNzaW5nIGluZGV4IGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIGZvcmVpZ24gdGFibGUgJyVzJwBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50LiBNaXNzaW5nIGluZGV4IGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgJyVzJwBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclcycgdG8gc3lzdGVtIHRhYmxlcwBGYWlsZWQgdG8gb3BlbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSAnJXMnAEZhaWxlZCB0byBhZGQgdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgb24gdGFibGUgJyVzJy4gSW5jb3JyZWN0IG9wdGlvbnMgaW4gRk9SRUlHTiBLRVkgY29uc3RyYWludCAnJXMnAER1cGxpY2F0ZSBmb3JlaWduIGtleSBjb25zdHJhaW50IG5hbWUgJyVzJwBUaGUgcGFzc3dvcmQgaGFzaCBkb2Vzbid0IGhhdmUgdGhlIGV4cGVjdGVkIGZvcm1hdC4AQ2Fubm90IGRyb3AgY29sdW1uICclLS4xOTJzJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycAQ2Fubm90IGRyb3AgY29sdW1uICclLS4xOTJzJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycgb2YgdGFibGUgJyUtLjE5MnMnAENvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIE5PVCBOVUxMOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJyBTRVQgTlVMTABEdXBsaWNhdGUgaW5kZXggJyUtLjY0cycgZGVmaW5lZCBvbiB0aGUgdGFibGUgJyUtLjY0cy4lLS42NHMnLiBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgZGlzYWxsb3dlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBDYW5ub3QgY2hhbmdlIGNvbHVtbiAnJS0uMTkycyc6IHVzZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJwBDYW5ub3QgY2hhbmdlIGNvbHVtbiAnJS0uMTkycyc6IHVzZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJyBvZiB0YWJsZSAnJS0uMTkycycAQ2Fubm90IGRlbGV0ZSByb3dzIGZyb20gdGFibGUgd2hpY2ggaXMgcGFyZW50IGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycycgb2YgdGFibGUgJyUtLjE5MnMnAE1hbGZvcm1lZCBjb21tdW5pY2F0aW9uIHBhY2tldC4AUnVubmluZyBpbiByZWFkLW9ubHkgbW9kZQBXaGVuIEBAU0VTU0lPTi5HVElEX05FWFQgaXMgc2V0IHRvIGEgR1RJRCwgeW91IG11c3QgZXhwbGljaXRseSBzZXQgaXQgdG8gYSBkaWZmZXJlbnQgdmFsdWUgYWZ0ZXIgYSBDT01NSVQgb3IgUk9MTEJBQ0suIFBsZWFzZSBjaGVjayBHVElEX05FWFQgdmFyaWFibGUgbWFudWFsIHBhZ2UgZm9yIGRldGFpbGVkIGV4cGxhbmF0aW9uLiBDdXJyZW50IEBAU0VTU0lPTi5HVElEX05FWFQgaXMgJyVzJy4AVGhlIHN5c3RlbSB2YXJpYWJsZSAlLjIwMHMgY2Fubm90IGJlIHNldCBpbiBzdG9yZWQgcHJvY2VkdXJlcy4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgY2FuIG9ubHkgYmUgc2V0IHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT04uAEBAR0xPQkFMLkdUSURfUFVSR0VEIGNhbiBvbmx5IGJlIHNldCB3aGVuIEBAR0xPQkFMLkdUSURfRVhFQ1VURUQgaXMgZW1wdHkuAEBAR0xPQkFMLkdUSURfUFVSR0VEIGNhbiBvbmx5IGJlIHNldCB3aGVuIHRoZXJlIGFyZSBubyBvbmdvaW5nIHRyYW5zYWN0aW9ucyAobm90IGV2ZW4gaW4gb3RoZXIgY2xpZW50cykuAEBAR0xPQkFMLkdUSURfUFVSR0VEIHdhcyBjaGFuZ2VkIGZyb20gJyVzJyB0byAnJXMnLgBAQEdMT0JBTC5HVElEX0VYRUNVVEVEIHdhcyBjaGFuZ2VkIGZyb20gJyVzJyB0byAnJXMnLgBDYW5ub3QgZXhlY3V0ZSBzdGF0ZW1lbnQ6IGltcG9zc2libGUgdG8gd3JpdGUgdG8gYmluYXJ5IGxvZyBzaW5jZSBCSU5MT0dfRk9STUFUID0gU1RBVEVNRU5ULCBhbmQgYm90aCByZXBsaWNhdGVkIGFuZCBub24gcmVwbGljYXRlZCB0YWJsZXMgYXJlIHdyaXR0ZW4gdG8uACVzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgb3BlcmF0aW9uLiBUcnkgJXMuACVzIGlzIG5vdCBzdXBwb3J0ZWQuIFJlYXNvbjogJXMuIFRyeSAlcy4AQ09QWSBhbGdvcml0aG0gcmVxdWlyZXMgYSBsb2NrAFBhcnRpdGlvbiBzcGVjaWZpYyBvcGVyYXRpb25zIGRvIG5vdCB5ZXQgc3VwcG9ydCBMT0NLL0FMR09SSVRITQBDb2x1bW5zIHBhcnRpY2lwYXRpbmcgaW4gYSBmb3JlaWduIGtleSBhcmUgcmVuYW1lZABDYW5ub3QgY2hhbmdlIGNvbHVtbiB0eXBlIElOUExBQ0UAQWRkaW5nIGZvcmVpZ24ga2V5cyBuZWVkcyBmb3JlaWduX2tleV9jaGVja3M9T0ZGAENyZWF0aW5nIHVuaXF1ZSBpbmRleGVzIHdpdGggSUdOT1JFIHJlcXVpcmVzIENPUFkgYWxnb3JpdGhtIHRvIHJlbW92ZSBkdXBsaWNhdGUgcm93cwBEcm9wcGluZyBhIHByaW1hcnkga2V5IGlzIG5vdCBhbGxvd2VkIHdpdGhvdXQgYWxzbyBhZGRpbmcgYSBuZXcgcHJpbWFyeSBrZXkAQWRkaW5nIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbiByZXF1aXJlcyBhIGxvY2sAQ2Fubm90IHJlcGxhY2UgaGlkZGVuIEZUU19ET0NfSUQgd2l0aCBhIHVzZXItdmlzaWJsZSBvbmUAQ2Fubm90IGRyb3Agb3IgcmVuYW1lIEZUU19ET0NfSUQARnVsbHRleHQgaW5kZXggY3JlYXRpb24gcmVxdWlyZXMgYSBsb2NrAHNxbF9yZXBsaWNhX3NraXBfY291bnRlciBjYW4gbm90IGJlIHNldCB3aGVuIHRoZSBzZXJ2ZXIgaXMgcnVubmluZyB3aXRoIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLiBJbnN0ZWFkLCBmb3IgZWFjaCB0cmFuc2FjdGlvbiB0aGF0IHlvdSB3YW50IHRvIHNraXAsIGdlbmVyYXRlIGFuIGVtcHR5IHRyYW5zYWN0aW9uIHdpdGggdGhlIHNhbWUgR1RJRCBhcyB0aGUgdHJhbnNhY3Rpb24A0JTRg9Cx0LvRjtGO0YfQuNC5INC30LDQv9C40YEg0LTQu9GPINC60LvRjtGH0LAgJyUtLjE5MnMnAExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIHBhdGggbGVuZ3RoIGV4Y2VlZGluZyAlZCBjaGFyYWN0ZXJzLiBQYXRoOiAnJXMnLgBjYW5ub3Qgc2lsZW50bHkgY29udmVydCBOVUxMIHZhbHVlcywgYXMgcmVxdWlyZWQgaW4gdGhpcyBTUUxfTU9ERQBZb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiBUbyBsb2cgaW4geW91IG11c3QgY2hhbmdlIGl0IHVzaW5nIGEgY2xpZW50IHRoYXQgc3VwcG9ydHMgZXhwaXJlZCBwYXNzd29yZHMuAEZvdW5kIGEgcm93IGluIHdyb25nIHBhcnRpdGlvbiAlcwBDYW5ub3Qgc2NoZWR1bGUgZXZlbnQgJXMsIHJlbGF5LWxvZyBuYW1lICVzLCBwb3NpdGlvbiAlcyB0byBXb3JrZXIgdGhyZWFkIGJlY2F1c2UgaXRzIHNpemUgJWx1IGV4Y2VlZHMgJWx1IG9mIHJlcGxpY2FfcGVuZGluZ19qb2JzX3NpemVfbWF4LgBDYW5ub3QgQ1JFQVRFIEZVTExURVhUIElOREVYIFdJVEggUEFSU0VSIG9uIElubm9EQiB0YWJsZQBUaGUgYmluYXJ5IGxvZyBmaWxlICclcycgaXMgbG9naWNhbGx5IGNvcnJ1cHRlZDogJXMAZmlsZSAlcyB3YXMgbm90IHB1cmdlZCBiZWNhdXNlIGl0IHdhcyBiZWluZyByZWFkIGJ5ICVkIHRocmVhZChzKSwgcHVyZ2VkIG9ubHkgJWQgb3V0IG9mICVkIGZpbGVzLgBmaWxlICVzIHdhcyBub3QgcHVyZ2VkIGJlY2F1c2UgaXQgaXMgdGhlIGFjdGl2ZSBsb2cgZmlsZS4AQXV0by1pbmNyZW1lbnQgdmFsdWUgaW4gVVBEQVRFIGNvbmZsaWN0cyB3aXRoIGludGVybmFsbHkgZ2VuZXJhdGVkIHZhbHVlcwBSb3cgZXZlbnRzIGFyZSBub3QgbG9nZ2VkIGZvciAlcyBzdGF0ZW1lbnRzIHRoYXQgbW9kaWZ5IEJMQUNLSE9MRSB0YWJsZXMgaW4gcm93IGZvcm1hdC4gVGFibGUocyk6ICclLS4xOTJzJwBSZXBsaWNhIGZhaWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3Rpb24gbWV0YWRhdGEgc3RydWN0dXJlIGZyb20gdGhlIHJlcG9zaXRvcnkAUmVwbGljYSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBhcHBsaWVyIG1ldGFkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSByZXBvc2l0b3J5AEFjY2VzcyBkZW5pZWQgdHJ5aW5nIHRvIGNoYW5nZSB0byB1c2VyICclLS40OHMnQCclLS42NHMnICh1c2luZyBwYXNzd29yZDogJXMpLiBEaXNjb25uZWN0aW5nLgBJbm5vREIgaXMgaW4gcmVhZCBvbmx5IG1vZGUuAFNUT1AgUkVQTElDQSBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBSZXBsaWNhIFNRTCB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIFNRTCB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgSU8gdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwsIHRocmVhZCBpcyBidXN5LCBJTyB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AT3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQuIFRoZSB0YWJsZSAnJS0uNjRzLiUtLjY0cycgaXMgbWlzc2luZywgY29ycnVwdCBvciBjb250YWlucyBiYWQgZGF0YS4AVGVtcG9yYXJ5IGZpbGUgd3JpdGUgZmFpbHVyZS4AVXBncmFkZSBpbmRleCBuYW1lIGZhaWxlZCwgcGxlYXNlIHVzZSBjcmVhdGUgaW5kZXgoYWx0ZXIgdGFibGUpIGFsZ29yaXRobSBjb3B5IHRvIHJlYnVpbGQgaW5kZXguAFRJTUUvVElNRVNUQU1QL0RBVEVUSU1FIGNvbHVtbnMgb2Ygb2xkIGZvcm1hdCBoYXZlIGJlZW4gdXBncmFkZWQgdG8gdGhlIG5ldyBmb3JtYXQuAE9wZXJhdGlvbiBub3QgYWxsb3dlZCB3aGVuIGlubm9kYl9mb3JjZV9yZWNvdmVyeSA+IDAuAFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Igc3VwcGxpZWQgdG8gJXMgaXMgdG9vIHNob3J0LiBNdXN0IGJlIGF0IGxlYXN0ICVkIGJ5dGVzIGxvbmcAUGx1Z2luICclcycgY2Fubm90IGJlIHVuaW5zdGFsbGVkIG5vdy4gJXMAQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IGJlY2F1c2UgaXQgbmVlZHMgdG8gYmUgd3JpdHRlbiB0byB0aGUgYmluYXJ5IGxvZyBhcyBtdWx0aXBsZSBzdGF0ZW1lbnRzLCBhbmQgdGhpcyBpcyBub3QgYWxsb3dlZCB3aGVuIEBAU0VTU0lPTi5HVElEX05FWFQgPT0gJ1VVSUQ6TlVNQkVSJy4AUmVwbGljYSBoYXMgbW9yZSBHVElEcyB0aGFuIHRoZSBzb3VyY2UgaGFzLCB1c2luZyB0aGUgc291cmNlJ3MgU0VSVkVSX1VVSUQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQgdGhlIHRoZSBsYXN0IGJpbmFyeSBsb2cgZmlsZSB3YXMgdHJ1bmNhdGVkIG9yIGxvc3QsIGUuZy4sIGFmdGVyIGEgcG93ZXIgZmFpbHVyZSB3aGVuIHN5bmNfYmlubG9nICE9IDEuIFRoZSBzb3VyY2UgbWF5IGhhdmUgcm9sbGVkIGJhY2sgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBhbHJlYWR5IHJlcGxpY2F0ZWQgdG8gdGhlIHJlcGxpY2EuIFJlcGxpY2F0ZSBhbnkgdHJhbnNhY3Rpb25zIHRoYXQgc291cmNlIGhhcyByb2xsZWQgYmFjayBmcm9tIHJlcGxpY2EgdG8gc291cmNlLCBhbmQvb3IgY29tbWl0IGVtcHR5IHRyYW5zYWN0aW9ucyBvbiBzb3VyY2UgdG8gYWNjb3VudCBmb3IgdHJhbnNhY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGNvbW1pdHRlZCBvbiBzb3VyY2UgYnV0IGFyZSBub3QgaW5jbHVkZWQgaW4gR1RJRF9FWEVDVVRFRC4AVGhlIHRhYmxlICclcy4lcycgZG9lcyBub3QgaGF2ZSB0aGUgbmVjZXNzYXJ5IGtleShzKSBkZWZpbmVkIG9uIGl0LiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlIGRlZmluaXRpb24gYW5kIGNyZWF0ZSBpbmRleChzKSBhY2NvcmRpbmdseS4AU2V0dGluZyBuYW1lZF9waXBlX2Z1bGxfYWNjZXNzX2dyb3VwPSclcycgaXMgaW5zZWN1cmUuIENvbnNpZGVyIHVzaW5nIGEgV2luZG93cyBncm91cCB3aXRoIGZld2VyIG1lbWJlcnMuAEZpbGUgJXMgaXMgY29ycnVwdGVkAFF1ZXJ5IHBhcnRpYWxseSBjb21wbGV0ZWQgb24gdGhlIHNvdXJjZSAoZXJyb3Igb24gc291cmNlOiAlZCkgYW5kIHdhcyBhYm9ydGVkLiBUaGVyZSBpcyBhIGNoYW5jZSB0aGF0IHlvdXIgc291cmNlIGlzIGluY29uc2lzdGVudCBhdCB0aGlzIHBvaW50LiBJZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3VyIHNvdXJjZSBpcyBvaywgcnVuIHRoaXMgcXVlcnkgbWFudWFsbHkgb24gdGhlIHJlcGxpY2EgYW5kIHRoZW4gcmVzdGFydCB0aGUgcmVwbGljYSB3aXRoIFNFVCBHTE9CQUwgU1FMX1JFUExJQ0FfU0tJUF9DT1VOVEVSPTE7IFNUQVJUIFJFUExJQ0E7LiBRdWVyeTonJXMnAFF1ZXJ5IGNhdXNlZCBkaWZmZXJlbnQgZXJyb3JzIG9uIHNvdXJjZSBhbmQgcmVwbGljYS4gRXJyb3Igb24gc291cmNlOiBtZXNzYWdlIChmb3JtYXQpPSclcycgZXJyb3IgY29kZT0lZDsgRXJyb3Igb24gcmVwbGljYTphY3R1YWwgbWVzc2FnZT0nJXMnLCBlcnJvciBjb2RlPSVkLiBEZWZhdWx0IGRhdGFiYXNlOiclcycuIFF1ZXJ5OiclcycAU3RvcmFnZSBlbmdpbmUgZm9yIHRhYmxlICclcycuJyVzJyBpcyBub3QgbG9hZGVkLgBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyB3aGVuIGhhbmRsZXIgbm90IGFjdGl2ZQAlcyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiBUaGUgc3RhdGVtZW50IHdhcyBjb252ZXJ0ZWQgdG8gJXMuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIGEgZnVsbHRleHQgcGFyc2VyIHBsdWdpbiB3aGljaCBtYXkgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBvbiB0aGUgcmVwbGljYS4AQ2Fubm90IERJU0NBUkQvSU1QT1JUIHRhYmxlc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRlbXBvcmFyeSB0YWJsZQBGb3JlaWduIGtleSBjYXNjYWRlIGRlbGV0ZS91cGRhdGUgZXhjZWVkcyBtYXggZGVwdGggb2YgJWQuAFRoZSBjb2x1bW4gY291bnQgb2YgJXMuJXMgaXMgd3JvbmcuIEV4cGVjdGVkICVkLCBmb3VuZCAlZC4gQ3JlYXRlZCB3aXRoIE15U1FMICVkLCBub3cgcnVubmluZyAlZC4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBUcmlnZ2VyICVzLiVzLiVzIGRvZXMgbm90IGhhdmUgQ1JFQVRFRCBhdHRyaWJ1dGUuAFJlZmVyZW5jZWQgdHJpZ2dlciAnJXMnIGZvciB0aGUgZ2l2ZW4gYWN0aW9uIHRpbWUgYW5kIGV2ZW50IHR5cGUgZG9lcyBub3QgZXhpc3QuAEVYUExBSU4gRk9SIENPTk5FQ1RJT04gY29tbWFuZCBpcyBzdXBwb3J0ZWQgb25seSBmb3IgU0VMRUNUL1VQREFURS9JTlNFUlQvREVMRVRFL1JFUExBQ0UASW52YWxpZCBzaXplIGZvciBjb2x1bW4gJyUtLjE5MnMnLgBUYWJsZSBzdG9yYWdlIGVuZ2luZSAnJS0uNjRzJyBmb3VuZCByZXF1aXJlZCBjcmVhdGUgb3B0aW9uIG1pc3NpbmcAT3V0IG9mIG1lbW9yeSBpbiBzdG9yYWdlIGVuZ2luZSAnJS0uNjRzJy4AVGhlIHBhc3N3b3JkIGZvciBhbm9ueW1vdXMgdXNlciBjYW5ub3QgYmUgZXhwaXJlZC4AVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCB3aXRoIGEgcnVubmluZyByZXBsaWNhIHNxbCB0aHJlYWQ7IHJ1biBTVE9QIFJFUExJQ0EgU1FMX1RIUkVBRCBmaXJzdABDYW5ub3QgY3JlYXRlIEZVTExURVhUIGluZGV4IG9uIG1hdGVyaWFsaXplZCBzdWJxdWVyeQBVbmRvIExvZyBlcnJvcjogJXMASW52YWxpZCBhcmd1bWVudCBmb3IgbG9nYXJpdGhtAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgd2l0aCBhIHJ1bm5pbmcgcmVwbGljYSBpbyB0aHJlYWQ7IHJ1biBTVE9QIFJFUExJQ0EgSU9fVEhSRUFEIEZPUiBDSEFOTkVMICclcycgZmlyc3QuAFRoaXMgb3BlcmF0aW9uIG1heSBub3QgYmUgc2FmZSB3aGVuIHRoZSByZXBsaWNhIGhhcyB0ZW1wb3JhcnkgdGFibGVzLiBUaGUgdGFibGVzIHdpbGwgYmUga2VwdCBvcGVuIHVudGlsIHRoZSBzZXJ2ZXIgcmVzdGFydHMgb3IgdW50aWwgdGhlIHRhYmxlcyBhcmUgZGVsZXRlZCBieSBhbnkgcmVwbGljYXRlZCBEUk9QIHN0YXRlbWVudC4gU3VnZ2VzdCB0byB3YWl0IHVudGlsIHJlcGxpY2Ffb3Blbl90ZW1wX3RhYmxlcyA9IDAuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gd2l0aCBhIFNPVVJDRV9MT0dfRklMRSBjbGF1c2UgYnV0IG5vIFNPVVJDRV9MT0dfUE9TIGNsYXVzZSBtYXkgbm90IGJlIHNhZmUuIFRoZSBvbGQgcG9zaXRpb24gdmFsdWUgbWF5IG5vdCBiZSB2YWxpZCBmb3IgdGhlIG5ldyBiaW5hcnkgbG9nIGZpbGUuAFF1ZXJ5IGV4ZWN1dGlvbiB3YXMgaW50ZXJydXB0ZWQsIG1heGltdW0gc3RhdGVtZW50IGV4ZWN1dGlvbiB0aW1lIGV4Y2VlZGVkAFNlbGVjdCBpcyBub3QgYSByZWFkIG9ubHkgc3RhdGVtZW50LCBkaXNhYmxpbmcgdGltZXIARHVwbGljYXRlIGVudHJ5ICclLS4xOTJzJy4AJyVzJyBtb2RlIG5vIGxvbmdlciBoYXMgYW55IGVmZmVjdC4gVXNlIFNUUklDVF9BTExfVEFCTEVTIG9yIFNUUklDVF9UUkFOU19UQUJMRVMgaW5zdGVhZC4ARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY29udGFpbnMgYWdncmVnYXRlIGZ1bmN0aW9uIGFuZCBhcHBsaWVzIHRvIGEgVU5JT04sIEVYQ0VQVCBvciBJTlRFUlNFQ1QARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY29udGFpbnMgYWdncmVnYXRlIGZ1bmN0aW9uIGFuZCBhcHBsaWVzIHRvIHRoZSByZXN1bHQgb2YgYSBub24tYWdncmVnYXRlZCBxdWVyeQBSZXBsaWNhIHdvcmtlciBoYXMgc3RvcHBlZCBhZnRlciBhdCBsZWFzdCBvbmUgcHJldmlvdXMgd29ya2VyIGVuY291bnRlcmVkIGFuIGVycm9yIHdoZW4gcmVwbGljYS1wcmVzZXJ2ZS1jb21taXQtb3JkZXIgd2FzIGVuYWJsZWQuIFRvIHByZXNlcnZlIGNvbW1pdCBvcmRlciwgdGhlIGxhc3QgdHJhbnNhY3Rpb24gZXhlY3V0ZWQgYnkgdGhpcyB0aHJlYWQgaGFzIG5vdCBiZWVuIGNvbW1pdHRlZC4gV2hlbiByZXN0YXJ0aW5nIHRoZSByZXBsaWNhIGFmdGVyIGZpeGluZyBhbnkgZmFpbGVkIHRocmVhZHMsIHlvdSBzaG91bGQgZml4IHRoaXMgd29ya2VyIGFzIHdlbGwuAHJlcGxpY2FfcHJlc2VydmVfY29tbWl0X29yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgJXMuAFRoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IGluIG9mZmxpbmUgbW9kZQBCaW5hcnkgZ2VvbWV0cnkgZnVuY3Rpb24gJXMgZ2l2ZW4gdHdvIGdlb21ldHJpZXMgb2YgZGlmZmVyZW50IHNyaWRzOiAldSBhbmQgJXUsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gaWRlbnRpY2FsLgBDYWxsaW5nIGdlb21ldHJ5IGZ1bmN0aW9uICVzIHdpdGggdW5zdXBwb3J0ZWQgdHlwZXMgb2YgYXJndW1lbnRzLgBVbmtub3duIEdJUyBlcnJvciBvY2N1cnJlZCBpbiBmdW5jdGlvbiAlcy4AVW5rbm93biBleGNlcHRpb24gY2F1Z2h0IGluIEdJUyBmdW5jdGlvbiAlcy4ASW52YWxpZCBHSVMgZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlcy4AVGhlIGdlb21ldHJ5IGhhcyBubyBkYXRhIGluIGZ1bmN0aW9uICVzLgBVbmFibGUgdG8gY2FsY3VsYXRlIGNlbnRyb2lkIGJlY2F1c2UgZ2VvbWV0cnkgaXMgZW1wdHkgaW4gZnVuY3Rpb24gJXMuAEdlb21ldHJ5IG92ZXJsYXkgY2FsY3VsYXRpb24gZXJyb3I6IGdlb21ldHJ5IGRhdGEgaXMgaW52YWxpZCBpbiBmdW5jdGlvbiAlcy4AR2VvbWV0cnkgdHVybiBpbmZvIGNhbGN1bGF0aW9uIGVycm9yOiBnZW9tZXRyeSBkYXRhIGlzIGludmFsaWQgaW4gZnVuY3Rpb24gJXMuAEFuYWx5c2lzIHByb2NlZHVyZXMgb2YgaW50ZXJzZWN0aW9uIHBvaW50cyBpbnRlcnJ1cHRlZCB1bmV4cGVjdGVkbHkgaW4gZnVuY3Rpb24gJXMuAFVua25vd24gZXhjZXB0aW9uIHRocm93biBpbiBmdW5jdGlvbiAlcy4ATWVtb3J5IGFsbG9jYXRpb24gZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAERvbWFpbiBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4ATGVuZ3RoIGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBJbnZhbGlkIGFyZ3VtZW50IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBPdXQgb2YgcmFuZ2UgZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAE92ZXJmbG93IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBSYW5nZSBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AVW5kZXJmbG93IGVycm9yOiAlLS4yNTZzIGluIGZ1bmN0aW9uICVzLgBMb2dpYyBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AUnVudGltZSBlcnJvcjogJS0uMjU2cyBpbiBmdW5jdGlvbiAlcy4AVW5rbm93biBleGNlcHRpb246ICUtLjM4NHMgaW4gZnVuY3Rpb24gJXMuAEdlb21ldHJ5IGJ5dGUgc3RyaW5nIG11c3QgYmUgbGl0dGxlIGVuZGlhbi4AVGhlIHBhc3N3b3JkIHByb3ZpZGVkIGZvciB0aGUgcmVwbGljYXRpb24gdXNlciBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiAzMiBjaGFyYWN0ZXJzAEluY29ycmVjdCB1c2VyLWxldmVsIGxvY2sgbmFtZSAnJS0uMTkycycuIFRoZSBuYW1lIGlzIGVtcHR5LCBOVUxMLCBvciBjYW4gbm90IGJlIGV4cHJlc3NlZCBpbiB0aGUgY3VycmVudCBjaGFyYWN0ZXItc2V0LgBEZWFkbG9jayBmb3VuZCB3aGVuIHRyeWluZyB0byBnZXQgdXNlci1sZXZlbCBsb2NrOyB0cnkgcm9sbGluZyBiYWNrIHRyYW5zYWN0aW9uL3JlbGVhc2luZyBsb2NrcyBhbmQgcmVzdGFydGluZyBsb2NrIGFjcXVpc2l0aW9uLgBSRVBMQUNFIGNhbm5vdCBiZSBleGVjdXRlZCBhcyBpdCByZXF1aXJlcyBkZWxldGluZyByb3dzIHRoYXQgYXJlIG5vdCBpbiB0aGUgdmlldwBEbyBub3Qgc3VwcG9ydCBvbmxpbmUgb3BlcmF0aW9uIG9uIHRhYmxlIHdpdGggR0lTIGluZGV4AFVzZXIgdmFyaWFibGUgbmFtZSAnJS0uMTAwcycgaXMgaWxsZWdhbABDYW5ub3QgJXMgd2hlbiBHVElEX01PREUgPSBPRkYuAENhbm5vdCAlcyBmcm9tIGEgcmVwbGljYSB0aHJlYWQuAEluY29ycmVjdCB0eXBlIGZvciBhcmd1bWVudCAlcyBpbiBmdW5jdGlvbiAlcy4ARXhwcmVzc2lvbiAjJXUgb2YgT1JERVIgQlkgY2xhdXNlIGlzIG5vdCBpbiBTRUxFQ1QgbGlzdCwgcmVmZXJlbmNlcyBjb2x1bW4gJyUtLjE5MnMnIHdoaWNoIGlzIG5vdCBpbiBTRUxFQ1QgbGlzdDsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAlcwBFeHByZXNzaW9uICMldSBvZiBPUkRFUiBCWSBjbGF1c2UgaXMgbm90IGluIFNFTEVDVCBsaXN0LCBjb250YWlucyBhZ2dyZWdhdGUgZnVuY3Rpb247IHRoaXMgaXMgaW5jb21wYXRpYmxlIHdpdGggJXMAU3VwcGxpZWQgZmlsdGVyIGxpc3QgY29udGFpbnMgYSB2YWx1ZSB3aGljaCBpcyBub3QgaW4gdGhlIHJlcXVpcmVkIGZvcm1hdCAnZGJfcGF0dGVybi50YWJsZV9wYXR0ZXJuJwBPSyBwYWNrZXQgdG9vIGxhcmdlAEludmFsaWQgSlNPTiBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiAlcwBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWlzc2luZyByZXF1aXJlZCBtZW1iZXIgJyVzJwBJbnZhbGlkIEdlb0pTT04gZGF0YSBwcm92aWRlZCB0byBmdW5jdGlvbiAlczogTWVtYmVyICclcycgbXVzdCBiZSBvZiB0eXBlICclcycASW52YWxpZCBHZW9KU09OIGRhdGEgcHJvdmlkZWQgdG8gZnVuY3Rpb24gJXMAVW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNvb3JkaW5hdGUgZGltZW5zaW9ucyBpbiBmdW5jdGlvbiAlczogRm91bmQgJXUsIGV4cGVjdGVkICV1AFJlcGxpY2EgY2hhbm5lbCAnJXMnIGRvZXMgbm90IGV4aXN0LgBBIHJlcGxpY2EgY2hhbm5lbCAnJXMnIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgZ2l2ZW4gaG9zdCBhbmQgcG9ydCBjb21iaW5hdGlvbi4AQ291bGRuJ3QgY3JlYXRlIGNoYW5uZWw6IENoYW5uZWwgbmFtZSBpcyBlaXRoZXIgaW52YWxpZCBvciB0b28gbG9uZy4AVG8gaGF2ZSBtdWx0aXBsZSBjaGFubmVscywgcmVwb3NpdG9yeSBjYW5ub3QgYmUgb2YgdHlwZSBGSUxFOyBQbGVhc2UgY2hlY2sgdGhlIHJlcG9zaXRvcnkgY29uZmlndXJhdGlvbiBhbmQgY29udmVydCB0aGVtIHRvIFRBQkxFLgBDYW5ub3QgZGVsZXRlIHJlcGxpY2EgaW5mbyBvYmplY3RzIGZvciBjaGFubmVsICclcycuAE11bHRpcGxlIGNoYW5uZWxzIGV4aXN0IG9uIHRoZSByZXBsaWNhLiBQbGVhc2UgcHJvdmlkZSBjaGFubmVsIG5hbWUgYXMgYW4gYXJndW1lbnQuAE1heGltdW0gbnVtYmVyIG9mIHJlcGxpY2F0aW9uIGNoYW5uZWxzIGFsbG93ZWQgZXhjZWVkZWQuAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgd2l0aCBydW5uaW5nIHJlcGxpY2F0aW9uIHRocmVhZHM7IHJ1biBTVE9QIFJFUExJQ0EgRk9SIENIQU5ORUwgJyVzJyBmaXJzdABUaGlzIG9wZXJhdGlvbiByZXF1aXJlcyBydW5uaW5nIHJlcGxpY2F0aW9uIHRocmVhZHM7IGNvbmZpZ3VyZSByZXBsaWNhIGFuZCBydW4gU1RBUlQgUkVQTElDQSBGT1IgQ0hBTk5FTCAnJXMnAFJlcGxpY2F0aW9uIHRocmVhZChzKSBmb3IgY2hhbm5lbCAnJXMnIGFyZSBhbHJlYWR5IHJ1bm5uaW5nLgBSZXBsaWNhdGlvbiB0aHJlYWQocykgZm9yIGNoYW5uZWwgJyVzJyBhcmUgYWxyZWFkeSBzdG9wcGVkLgBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHdpdGggYSBydW5uaW5nIHJlcGxpY2Egc3FsIHRocmVhZDsgcnVuIFNUT1AgUkVQTElDQSBTUUxfVEhSRUFEIEZPUiBDSEFOTkVMICclcycgZmlyc3QuAFdoZW4gc3FsX3JlcGxpY2Ffc2tpcF9jb3VudGVyID4gMCwgaXQgaXMgbm90IGFsbG93ZWQgdG8gc3RhcnQgbW9yZSB0aGFuIG9uZSBTUUwgdGhyZWFkIGJ5IHVzaW5nICdTVEFSVCBSRVBMSUNBIFtTUUxfVEhSRUFEXScuIFZhbHVlIG9mIHNxbF9yZXBsaWNhX3NraXBfY291bnRlciBjYW4gb25seSBiZSB1c2VkIGJ5IG9uZSBTUUwgdGhyZWFkIGF0IGEgdGltZS4gUGxlYXNlIHVzZSAnU1RBUlQgUkVQTElDQSBbU1FMX1RIUkVBRF0gRk9SIENIQU5ORUwnIHRvIHN0YXJ0IHRoZSBTUUwgdGhyZWFkIHdoaWNoIHdpbGwgdXNlIHRoZSB2YWx1ZSBvZiBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIuAEV4cHJlc3Npb24gIyV1IG9mICVzIGlzIG5vdCBpbiBHUk9VUCBCWSBjbGF1c2UgYW5kIGNvbnRhaW5zIG5vbmFnZ3JlZ2F0ZWQgY29sdW1uICclLS4xOTJzJyB3aGljaCBpcyBub3QgZnVuY3Rpb25hbGx5IGRlcGVuZGVudCBvbiBjb2x1bW5zIGluIEdST1VQIEJZIGNsYXVzZTsgdGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzcWxfbW9kZT1vbmx5X2Z1bGxfZ3JvdXBfYnkASW4gYWdncmVnYXRlZCBxdWVyeSB3aXRob3V0IEdST1VQIEJZLCBleHByZXNzaW9uICMldSBvZiAlcyBjb250YWlucyBub25hZ2dyZWdhdGVkIGNvbHVtbiAnJS0uMTkycyc7IHRoaXMgaXMgaW5jb21wYXRpYmxlIHdpdGggc3FsX21vZGU9b25seV9mdWxsX2dyb3VwX2J5AFVwZGF0aW5nICclcycgaXMgZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSBtYWRlIHJlYWQtb25seSBpbiBhIGZ1dHVyZSByZWxlYXNlLgBDaGFuZ2luZyBzcWwgbW9kZSAnJXMnIGlzIGRlcHJlY2F0ZWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBEUk9QIERBVEFCQVNFIGZhaWxlZDsgc29tZSB0YWJsZXMgbWF5IGhhdmUgYmVlbiBkcm9wcGVkIGJ1dCB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5IHJlbWFpbnMuIFRoZSBHVElEIGhhcyBub3QgYmVlbiBhZGRlZCB0byBHVElEX0VYRUNVVEVEIGFuZCB0aGUgc3RhdGVtZW50IHdhcyBub3Qgd3JpdHRlbiB0byB0aGUgYmluYXJ5IGxvZy4gRml4IHRoaXMgYXMgZm9sbG93czogKDEpIHJlbW92ZSBhbGwgZmlsZXMgZnJvbSB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5ICUtLjE5MnM7ICgyKSBTRVQgR1RJRF9ORVhUPSclLS4xOTJzJzsgKDMpIERST1AgREFUQUJBU0UgYCUtLjE5MnNgLgBUaGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5IHRvIGJlIGFuIGFjdGl2ZSBtZW1iZXIgb2YgdGhlIGdyb3VwLiBQbGVhc2Ugc2VlIG1vcmUgZGV0YWlscyBvbiBlcnJvciBsb2cuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCBzaW5jZSB0aGUgZ3JvdXAgaXMgYWxyZWFkeSBydW5uaW5nLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlIGFwcGxpZXIgbW9kdWxlIGZhaWxlZCB0byBzdGFydC4AVGhlIFNUT1AgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogVGhlIGFwcGxpZXIgdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwgd2hpbGUgaXQgd2FzIGJ1c3kuIFRoZSBhcHBsaWVyIHRocmVhZCB3aWxsIHN0b3Agb25jZSB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBncm91cCBjb21tdW5pY2F0aW9uIGxheWVyLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgYXMgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gam9pbmluZyB0aGUgY29tbXVuaWNhdGlvbiBncm91cC4AVGhlIHRhYmxlIGRvZXMgbm90IGNvbXBseSB3aXRoIHRoZSByZXF1aXJlbWVudHMgYnkgYW4gZXh0ZXJuYWwgcGx1Z2luLgBDYW5ub3QgY2hhbmdlIHRoZSB2YWx1ZSBvZiB2YXJpYWJsZSAlcyB3aXRob3V0IGJpbmFyeSBsb2cgZm9ybWF0IGFzIFJPVy4ARXJyb3Igb24gb2JzZXJ2ZXIgd2hpbGUgcnVubmluZyByZXBsaWNhdGlvbiBob29rICclcycuAFBsdWdpbiBpbnN0cnVjdGVkIHRoZSBzZXJ2ZXIgdG8gcm9sbGJhY2sgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbi4ASU5QTEFDRSBBREQgb3IgRFJPUCBvZiB2aXJ0dWFsIGNvbHVtbnMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgQUxURVIgVEFCTEUgYWN0aW9ucwBDYW5ub3QgZGVmaW5lIGZvcmVpZ24ga2V5IHdpdGggJXMgY2xhdXNlIG9uIGEgZ2VuZXJhdGVkIGNvbHVtbi4AVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGluIHRhYmxlICclcycgaXMgbm90IGFsbG93ZWQuACclcycgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2VuZXJhdGVkIGNvbHVtbnMuAEdlbmVyYXRlZCBjb2x1bW4gY2FuIHJlZmVyIG9ubHkgdG8gZ2VuZXJhdGVkIGNvbHVtbnMgZGVmaW5lZCBwcmlvciB0byBpdC4AQ29sdW1uICclcycgaGFzIGEgZ2VuZXJhdGVkIGNvbHVtbiBkZXBlbmRlbmN5LgBHZW5lcmF0ZWQgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHRvIGF1dG8taW5jcmVtZW50IGNvbHVtbi4AVGhlICclLS42NHMnIGZlYXR1cmUgaXMgbm90IGF2YWlsYWJsZTsgeW91IG5lZWQgdG8gcmVtb3ZlICclLS42NHMnIG9yIHVzZSBNeVNRTCBidWlsdCB3aXRoICclLS42NHMnAFNFVCBAQEdMT0JBTC5HVElEX01PREUgPSAlLS42NHMgaXMgbm90IGFsbG93ZWQgYmVjYXVzZSAlLS4zODRzLgBUaGUgcmVwbGljYXRpb24gcmVjZWl2ZXIgdGhyZWFkJS0uMTkycyBjYW5ub3Qgc3RhcnQgaW4gQVVUT19QT1NJVElPTiBtb2RlOiB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9GRi4AQ2Fubm90IHJlcGxpY2F0ZSBhbm9ueW1vdXMgdHJhbnNhY3Rpb24gd2hlbiBBVVRPX1BPU0lUSU9OID0gMSwgYXQgZmlsZSAlLjUxMnMsIHBvc2l0aW9uICVsbGQuAENhbm5vdCByZXBsaWNhdGUgYW5vbnltb3VzIHRyYW5zYWN0aW9uIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT04sIGF0IGZpbGUgJS41MTJzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3QgcmVwbGljYXRlIEdUSUQtdHJhbnNhY3Rpb24gd2hlbiBAQEdMT0JBTC5HVElEX01PREUgPSBPRkYsIGF0IGZpbGUgJS41MTJzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3Qgc2V0IEVORk9SQ0VfR1RJRF9DT05TSVNURU5DWSA9IE9OIGJlY2F1c2UgdGhlcmUgYXJlIG9uZ29pbmcgdHJhbnNhY3Rpb25zIHRoYXQgdmlvbGF0ZSBHVElEIGNvbnNpc3RlbmN5LgBUaGVyZSBhcmUgb25nb2luZyB0cmFuc2FjdGlvbnMgdGhhdCB2aW9sYXRlIEdUSUQgY29uc2lzdGVuY3kuAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycuIEFjY291bnQgaXMgbG9ja2VkLgBJbmNvcnJlY3QgdGFibGVzcGFjZSBuYW1lIGAlLS4xOTJzYABUYWJsZXNwYWNlIGAlLS4xOTJzYCBpcyBub3QgZW1wdHkuAEluY29ycmVjdCBGaWxlIE5hbWUgJyVzJy4ASW5jb25zaXN0ZW50IGludGVyc2VjdGlvbiBwb2ludHMuAE9wdGltaXplciBoaW50IHN5bnRheCBlcnJvcgBVbnN1cHBvcnRlZCBNQVhfRVhFQ1VUSU9OX1RJTUUATUFYX0VYRUNVVElPTl9USU1FIGhpbnQgaXMgc3VwcG9ydGVkIGJ5IHRvcC1sZXZlbCBzdGFuZGFsb25lIFNFTEVDVCBzdGF0ZW1lbnRzIG9ubHkASGludCAlcyBpcyBpZ25vcmVkIGFzIGNvbmZsaWN0aW5nL2R1cGxpY2F0ZWQAUXVlcnkgYmxvY2sgbmFtZSAlcyBpcyBub3QgZm91bmQgZm9yICVzIGhpbnQAVW5yZXNvbHZlZCBuYW1lICVzIGZvciAlcyBoaW50AFBsZWFzZSBkbyBub3QgbW9kaWZ5IHRoZSAlcyB0YWJsZS4gVGhpcyBpcyBhIG15c3FsIGludGVybmFsIHN5c3RlbSB0YWJsZSB0byBzdG9yZSBHVElEcyBmb3IgY29tbWl0dGVkIHRyYW5zYWN0aW9ucy4gTW9kaWZ5aW5nIGl0IGNhbiBsZWFkIHRvIGFuIGluY29uc2lzdGVudCBHVElEIHN0YXRlLgBDb21tYW5kIG5vdCBzdXBwb3J0ZWQgYnkgcGx1Z2dhYmxlIHByb3RvY29scwBJbmNvcnJlY3QgbG9ja2luZyBzZXJ2aWNlIGxvY2sgbmFtZSAnJS0uMTkycycuAERlYWRsb2NrIGZvdW5kIHdoZW4gdHJ5aW5nIHRvIGdldCBsb2NraW5nIHNlcnZpY2UgbG9jazsgdHJ5IHJlbGVhc2luZyBsb2NrcyBhbmQgcmVzdGFydGluZyBsb2NrIGFjcXVpc2l0aW9uLgBTZXJ2aWNlIGxvY2sgd2FpdCB0aW1lb3V0IGV4Y2VlZGVkLgBQYXJhbWV0ZXIgJXMgZXhjZWVkcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcG9pbnRzIGluIGEgZ2VvbWV0cnkgKCVsdSkgaW4gZnVuY3Rpb24gJXMuACdOT19aRVJPX0RBVEUnLCAnTk9fWkVST19JTl9EQVRFJyBhbmQgJ0VSUk9SX0ZPUl9ESVZJU0lPTl9CWV9aRVJPJyBzcWwgbW9kZXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBzdHJpY3QgbW9kZS4gVGhleSB3aWxsIGJlIG1lcmdlZCB3aXRoIHN0cmljdCBtb2RlIGluIGEgZnV0dXJlIHJlbGVhc2UuAFZlcnNpb24gdG9rZW4gbWlzbWF0Y2ggZm9yICUuKnMuIENvcnJlY3QgdmFsdWUgJS4qcwBWZXJzaW9uIHRva2VuICUuKnMgbm90IGZvdW5kLgBWYXJpYWJsZSAlLS4xOTJzIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IGEgY2xpZW50IHRoYXQgb3ducyBhIEdUSUQuIFRoZSBjbGllbnQgb3ducyAlcy4gT3duZXJzaGlwIGlzIHJlbGVhc2VkIG9uIENPTU1JVCBvciBST0xMQkFDSy4AJS0uMTkycyBjYW5ub3QgYmUgcGVyZm9ybWVkIG9uIGNoYW5uZWwgJyUtLjE5MnMnLgBJbnZhbGlkIEpTT04gdGV4dDogIiVzIiBhdCBwb3NpdGlvbiAldSBpbiB2YWx1ZSBmb3IgY29sdW1uICclLS4yMDBzJy4ASW52YWxpZCBKU09OIHRleHQgaW4gYXJndW1lbnQgJXUgdG8gZnVuY3Rpb24gJXM6ICIlcyIgYXQgcG9zaXRpb24gJXUuJS0uMHMAVGhlIEpTT04gYmluYXJ5IHZhbHVlIGNvbnRhaW5zIGludmFsaWQgZGF0YS4ASW52YWxpZCBKU09OIHBhdGggZXhwcmVzc2lvbi4gVGhlIGVycm9yIGlzIGFyb3VuZCBjaGFyYWN0ZXIgcG9zaXRpb24gJXUuJS0uMjAwcwBDYW5ub3QgY3JlYXRlIGEgSlNPTiB2YWx1ZSBmcm9tIGEgc3RyaW5nIHdpdGggQ0hBUkFDVEVSIFNFVCAnJXMnLgBJbnZhbGlkIEpTT04gY2hhcmFjdGVyIGRhdGEgcHJvdmlkZWQgdG8gZnVuY3Rpb24gJXM6ICclcyc7IHV0ZjggaXMgcmVxdWlyZWQuAEludmFsaWQgZGF0YSB0eXBlIGZvciBKU09OIGRhdGEgaW4gYXJndW1lbnQgJXUgdG8gZnVuY3Rpb24gJXM7IGEgSlNPTiBzdHJpbmcgb3IgSlNPTiB0eXBlIGlzIHJlcXVpcmVkLgBDYW5ub3QgQ0FTVCB2YWx1ZSB0byBKU09OLgBBIHBhdGggZXhwcmVzc2lvbiBtdXN0IGJlIGVuY29kZWQgaW4gdGhlIHV0ZjggY2hhcmFjdGVyIHNldC4gVGhlIHBhdGggZXhwcmVzc2lvbiAnJS0uMjAwcycgaXMgZW5jb2RlZCBpbiBjaGFyYWN0ZXIgc2V0ICclLS4yMDBzJy4ASW4gdGhpcyBzaXR1YXRpb24sIHBhdGggZXhwcmVzc2lvbnMgbWF5IG5vdCBjb250YWluIHRoZSAqIGFuZCAqKiB0b2tlbnMgb3IgYW4gYXJyYXkgcmFuZ2UuAFRoZSBKU09OIHZhbHVlIGlzIHRvbyBiaWcgdG8gYmUgc3RvcmVkIGluIGEgSlNPTiBjb2x1bW4uAFRoZSBKU09OIG9iamVjdCBjb250YWlucyBhIGtleSBuYW1lIHRoYXQgaXMgdG9vIGxvbmcuAEpTT04gY29sdW1uICclLS4xOTJzJyBzdXBwb3J0cyBpbmRleGluZyBvbmx5IHZpYSBnZW5lcmF0ZWQgY29sdW1ucyBvbiBhIHNwZWNpZmllZCBKU09OIHBhdGguAFRoZSBwYXRoIGV4cHJlc3Npb24gJyQnIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29udGV4dC4AVGhlIG9uZU9yQWxsIGFyZ3VtZW50IHRvICVzIG1heSB0YWtlIHRoZXNlIHZhbHVlczogJ29uZScgb3IgJ2FsbCcuAE91dCBvZiByYW5nZSBKU09OIHZhbHVlIGZvciBDQVNUIHRvICVzJS0uMHMgZnJvbSBjb2x1bW4gJXMgYXQgcm93ICVsZABJbnZhbGlkIEpTT04gdmFsdWUgZm9yIENBU1QgdG8gJXMlLS4wcyBmcm9tIGNvbHVtbiAlcyBhdCByb3cgJWxkAFRoZSBKU09OIGRvY3VtZW50IGV4Y2VlZHMgdGhlIG1heGltdW0gZGVwdGguAEpTT04gZG9jdW1lbnRzIG1heSBub3QgY29udGFpbiBOVUxMIG1lbWJlciBuYW1lcy4AQ29ubmVjdGlvbnMgdXNpbmcgaW5zZWN1cmUgdHJhbnNwb3J0IGFyZSBwcm9oaWJpdGVkIHdoaWxlIC0tcmVxdWlyZV9zZWN1cmVfdHJhbnNwb3J0PU9OLgBObyBzZWN1cmUgdHJhbnNwb3J0cyAoU1NMIG9yIFNoYXJlZCBNZW1vcnkpIGFyZSBjb25maWd1cmVkLCB1bmFibGUgdG8gc2V0IC0tcmVxdWlyZV9zZWN1cmVfdHJhbnNwb3J0PU9OLgBTdG9yYWdlIGVuZ2luZSAlcyBpcyBkaXNhYmxlZCAoVGFibGUgY3JlYXRpb24gaXMgZGlzYWxsb3dlZCkuAEF1dGhvcml6YXRpb24gSUQgJXMgZG9lcyBub3QgZXhpc3QuAEF1dGhvcml6YXRpb24gSUQgJXMgYWxyZWFkeSBleGlzdHMuAEFib3J0ZWQgYnkgQXVkaXQgQVBJICgnJS0uNDhzJzslZCkuAEEgcGF0aCBleHByZXNzaW9uIGlzIG5vdCBhIHBhdGggdG8gYSBjZWxsIGluIGFuIGFycmF5LgBBbm90aGVyIGJ1ZmZlciBwb29sIHJlc2l6ZSBpcyBhbHJlYWR5IGluIHByb2dyZXNzLgBUaGUgJyVzJyBmZWF0dXJlIGlzIGRpc2FibGVkOyBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yICclcycAU2VydmVyIGlzbid0IGF2YWlsYWJsZQBTZXNzaW9uIHdhcyBraWxsZWQATWVtb3J5IGNhcGFjaXR5IG9mICVsbHUgYnl0ZXMgZm9yICclcycgZXhjZWVkZWQuICVzAFJhbmdlIG9wdGltaXphdGlvbiB3YXMgbm90IGRvbmUgZm9yIHRoaXMgcXVlcnkuAFBhcnRpdGlvbmluZyB1cGdyYWRlIHJlcXVpcmVkLiBQbGVhc2UgZHVtcC9yZWxvYWQgdG8gZml4IGl0IG9yIGRvOiBBTFRFUiBUQUJMRSBgJS0uMTkyc2AuYCUtLjE5MnNgIFVQR1JBREUgUEFSVElUSU9OSU5HAFRoZSBjbGllbnQgaG9sZHMgb3duZXJzaGlwIG9mIHRoZSBHVElEICVzLiBUaGVyZWZvcmUsIFdBSVRfRk9SX0VYRUNVVEVEX0dUSURfU0VUIGNhbm5vdCB3YWl0IGZvciB0aGlzIEdUSUQuAENhbm5vdCBhZGQgZm9yZWlnbiBrZXkgb24gdGhlIGJhc2UgY29sdW1uIG9mIGluZGV4ZWQgdmlydHVhbCBjb2x1bW4uAENhbm5vdCBjcmVhdGUgaW5kZXggb24gdmlydHVhbCBjb2x1bW4gd2hvc2UgYmFzZSBjb2x1bW4gaGFzIGZvcmVpZ24gY29uc3RyYWludC4AUGxlYXNlIGRvIG5vdCBtb2RpZnkgdGhlICVzIHRhYmxlIHdpdGggYW4gWEEgdHJhbnNhY3Rpb24uIFRoaXMgaXMgYW4gaW50ZXJuYWwgc3lzdGVtIHRhYmxlIHVzZWQgdG8gc3RvcmUgR1RJRHMgZm9yIGNvbW1pdHRlZCB0cmFuc2FjdGlvbnMuIEFsdGhvdWdoIG1vZGlmeWluZyBpdCBjYW4gbGVhZCB0byBhbiBpbmNvbnNpc3RlbnQgR1RJRCBzdGF0ZSwgaWYgbmVjZXNzYXJ5IHlvdSBjYW4gbW9kaWZ5IGl0IHdpdGggYSBub24tWEEgdHJhbnNhY3Rpb24uAExvY2sgYWNxdWlzaXRpb24gcmVmdXNlZCBieSBzdG9yYWdlIGVuZ2luZS4AQUREIENPTFVNTiBjb2wuLi5WSVJUVUFMLCBBREQgSU5ERVgoY29sKQBNYXN0ZXIga2V5IHJvdGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RvcmFnZSBlbmdpbmUuAEVuY3J5cHRpb24ga2V5IHJvdGF0aW9uIGVycm9yIHJlcG9ydGVkIGJ5IFNFOiAlcwBXcml0ZSB0byBiaW5sb2cgZmFpbGVkLiBIb3dldmVyLCBtYXN0ZXIga2V5IHJvdGF0aW9uIGhhcyBiZWVuIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuAFN0b3JhZ2UgZW5naW5lIGlzIG5vdCBhdmFpbGFibGUuAFRoaXMgdGFibGVzcGFjZSBjYW4ndCBiZSBlbmNyeXB0ZWQuAEludmFsaWQgZW5jcnlwdGlvbiBvcHRpb24uAENhbid0IGZpbmQgbWFzdGVyIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpbiB0aGUgc2VydmVyIGxvZyBpZiBhIGtleXJpbmcgaXMgbG9hZGVkIGFuZCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkuAFBhcnNlciBiYWlsZWQgb3V0IGZvciB0aGlzIHF1ZXJ5LgBDYW5ub3QgYWx0ZXIgZW5jcnlwdGlvbiBhdHRyaWJ1dGUgYnkgaW5wbGFjZSBhbGdvcml0aG0uAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2UgdW5kZXJseWluZyBrZXlyaW5nIHNlcnZpY2UgcmV0dXJuZWQgYW4gZXJyb3IuIFBsZWFzZSBjaGVjayBpZiBhIGtleXJpbmcgaXMgaW5zdGFsbGVkIGFuZCB0aGF0IHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgdmFsaWQgZm9yIHRoZSBrZXlyaW5nIHlvdSBhcmUgdXNpbmcuAEl0IHNlZW1zIHRoYXQgeW91ciBkYiBzY2hlbWEgaXMgb2xkLiBUaGUgJXMgY29sdW1uIGlzIDc3IGNoYXJhY3RlcnMgbG9uZyBhbmQgc2hvdWxkIGJlIDkzIGNoYXJhY3RlcnMgbG9uZy4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBSRVNFVCBTT1VSQ0UgaXMgbm90IGFsbG93ZWQgYmVjYXVzZSAlLS4zODRzLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgc2luY2UgdGhlIGdyb3VwIGFscmVhZHkgaGFzIDkgbWVtYmVycy4AQ2Fubm90IGFkZCBmb3JlaWduIGtleSBvbiB0aGUgYmFzZSBjb2x1bW4gb2Ygc3RvcmVkIGNvbHVtbi4gAENhbm5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGJlY2F1c2UgdGFibGUgaXMgcmVmZXJlbmNlZCBieSBhbm90aGVyIGNvbm5lY3Rpb24uAFRoZSBwYXJ0aXRpb24gZW5naW5lLCB1c2VkIGJ5IHRhYmxlICclLS4xOTJzLiUtLjE5MnMnLCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIHVzZSBuYXRpdmUgcGFydGl0aW9uaW5nIGluc3RlYWQuACUuMTkycyhnZW9tZXRyeSkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZXBsYWNlZCBieSBzdF9zcmlkKGdlb21ldHJ5LCAwKSBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBVc2UgJS4xOTJzKHN0X2Fzd2tiKGdlb21ldHJ5KSwgMCkgaW5zdGVhZC4AJS4xOTJzKGdlb21ldHJ5LCBzcmlkKSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHN0X3NyaWQoZ2VvbWV0cnksIHNyaWQpIGluIGEgZnV0dXJlIHZlcnNpb24uIFVzZSAlLjE5MnMoc3RfYXN3a2IoZ2VvbWV0cnkpLCBzcmlkKSBpbnN0ZWFkLgBUaGUgcmVzb3VyY2UgbWFuYWdlciBpcyBub3QgYWJsZSB0byBjb21taXQgdGhlIHRyYW5zYWN0aW9uIGJyYW5jaCBhdCB0aGlzIHRpbWUuIFBsZWFzZSByZXRyeSBsYXRlci4ARnVuY3Rpb24gJXMgZmFpbGVkIGR1ZSB0bzogJXMuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCBpcyBiZWluZyB1c2VkIGluc2lkZSBhIFhBIHRyYW5zYWN0aW9uLiBDb25jdXJyZW50IFhBIHRyYW5zYWN0aW9ucyBtYXkgZGVhZGxvY2sgb24gcmVwbGljYXMgd2hlbiByZXBsaWNhdGVkIHVzaW5nIHN0YXRlbWVudHMuACVzIFVERiBmYWlsZWQ7ICVzAENhbiBub3QgcGVyZm9ybSBrZXlyaW5nIG1pZ3JhdGlvbiA6ICVzAEFjY2VzcyBkZW5pZWQ7IHlvdSBuZWVkICUtLjEyOHMgcHJpdmlsZWdlcyBmb3IgdGhpcyBvcGVyYXRpb24AS2V5cmluZyBtaWdyYXRpb24gJXMuAEZhaWxlZCB0byBvcGVuIHRoZSAlcyBmaWx0ZXIgdGFibGVzLgBGYWlsZWQgdG8gb3BlbiAnJXMuJXMnICVzIHRhYmxlLgBObyBrZXlyaW5nIHBsdWdpbiBpbnN0YWxsZWQuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGhhcyBub3QgYmVlbiBzZXQ7IGl0IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuIFVzZSBhdWRpdF9sb2dfZW5jcnlwdGlvbl9wYXNzd29yZF9nZXQgdG8gb2J0YWluIHRoZSBwYXNzd29yZCBvciBhdWRpdF9sb2dfZW5jcnlwdGlvbl9wYXNzd29yZF9zZXQgdG8gc2V0IGEgbmV3IG9uZS4AQ291bGQgbm90IGNyZWF0ZSBBRVMga2V5LiBPcGVuU1NMJ3MgRVZQX0J5dGVzVG9LZXkgZnVuY3Rpb24gZmFpbGVkLgBBdWRpdCBsb2cgZW5jcnlwdGlvbiBwYXNzd29yZCBjYW5ub3QgYmUgZmV0Y2hlZCBmcm9tIHRoZSBrZXlyaW5nLiBQYXNzd29yZCB1c2VkIHNvIGZhciBpcyB1c2VkIGZvciBlbmNyeXB0aW9uLgBBdWRpdCBMb2cgZmlsdGVyaW5nIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQuAFJlcXVlc3QgaWdub3JlZCBmb3IgJyVzJ0AnJXMnLiBTVVBFUiBwcml2aWxlZ2Ugb3IgQVVESVRfQURNSU4gcm9sZSBuZWVkZWQgdG8gcGVyZm9ybSBvcGVyYXRpb24AU1VQRVIgcHJpdmlsZWdlIG9yIEFVRElUX0FETUlOIHJvbGUgcmVxdWlyZWQgZm9yICclcydAJyVzJyB1c2VyLgBDb3VsZCBub3QgcmVpbml0aWFsaXplIGF1ZGl0IGxvZyBmaWx0ZXJzLgBJbnZhbGlkIGFyZ3VtZW50IHR5cGUASW52YWxpZCBhcmd1bWVudCBjb3VudABhdWRpdF9sb2cgcGx1Z2luIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgdXNpbmcgSU5TVEFMTCBQTFVHSU4gc3ludGF4LgBJbnZhbGlkICJtYXhfYXJyYXlfbGVuZ3RoIiBhcmd1bWVudCB0eXBlLgBJbnZhbGlkICJtYXhfYXJyYXlfbGVuZ3RoIiBhcmd1bWVudCB2YWx1ZS4AJXMARmlsdGVyIG5hbWUgY2Fubm90IGJlIGVtcHR5LgBVc2VyIGNhbm5vdCBiZSBlbXB0eS4AU3BlY2lmaWVkIGZpbHRlciBoYXMgbm90IGJlZW4gZm91bmQuAEZpcnN0IGNoYXJhY3RlciBvZiB0aGUgdXNlciBuYW1lIG11c3QgYmUgYWxwaGFudW1lcmljLgBJbnZhbGlkIGNoYXJhY3RlciBpbiB0aGUgdXNlciBuYW1lLgBJbnZhbGlkIGNoYXJhY3RlciBpbiB0aGUgaG9zdCBuYW1lLgBXaXRoIHRoZSBNQVhEQiBTUUwgbW9kZSBlbmFibGVkLCBUSU1FU1RBTVAgaXMgaWRlbnRpY2FsIHdpdGggREFURVRJTUUuIFRoZSBNQVhEQiBTUUwgbW9kZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGRpc2FibGUgdGhlIE1BWERCIFNRTCBtb2RlIGFuZCB1c2UgREFURVRJTUUgaW5zdGVhZC4AVGhlIHVzZSBvZiByZXBsaWNhdGlvbiBmaWx0ZXJzIHdpdGggWEEgdHJhbnNhY3Rpb25zIGlzIG5vdCBzdXBwb3J0ZWQsIGFuZCBjYW4gbGVhZCB0byBhbiB1bmRlZmluZWQgc3RhdGUgaW4gdGhlIHJlcGxpY2EuAENvdWxkIG5vdCBvcGVuIGZpbGUgJyVzJyBmb3IgZXJyb3IgbG9nZ2luZyVzJXMAR3JvdXBpbmcgb24gdGVtcG9yYWwgaXMgbm9uLWRldGVybWluaXN0aWMgZm9yIHRpbWV6b25lcyBoYXZpbmcgRFNULiBQbGVhc2UgY29uc2lkZXIgc3dpdGNoaW5nIHRvIFVUQyBmb3IgdGhpcyBxdWVyeS4AQ2FuJ3Qgc3RhcnQgc2VydmVyIDogTmFtZWQgUGlwZSAiJXMiIGFscmVhZHkgaW4gdXNlLgBUaGUgc2l6ZSBvZiB3cml0ZXNldCBkYXRhIGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBleGNlZWRzIGEgbGltaXQgaW1wb3NlZCBieSBhbiBleHRlcm5hbCBjb21wb25lbnQuIElmIHVzaW5nIEdyb3VwIFJlcGxpY2F0aW9uIGNoZWNrICdncm91cF9yZXBsaWNhdGlvbl90cmFuc2FjdGlvbl9zaXplX2xpbWl0Jy4AQWNjZXB0ZWQgYSBjb25uZWN0aW9uIHdpdGggZGVwcmVjYXRlZCBwcm90b2NvbCAnJXMnIGZvciBhY2NvdW50IGAlc2BAYCVzYCBmcm9tIGhvc3QgYCVzYC4gQ2xpZW50IHN1cHBsaWVkIHVzZXJuYW1lIGAlc2AAQSBkZXByZWNhdGVkIFRMUyB2ZXJzaW9uICVzIGlzIGVuYWJsZWQuIFBsZWFzZSB1c2UgVExTdjEuMiBvciBoaWdoZXIuAE9wdGlvbmFsIG5hdGl2ZSB0YWJsZSAnJS0uNjRzJy4nJS0uNjRzJyBoYXMgdGhlIHdyb25nIHN0cnVjdHVyZSBvciBpcyBtaXNzaW5nLgBLREYgbWV0aG9kIG5hbWUgaXMgbm90IHZhbGlkLiBQbGVhc2UgdXNlIGhrZGYgb3IgcGJrZGYyX2htYWMgbWV0aG9kIG5hbWUARm9yIEtERiBtZXRob2QgcGJrZGYyX2htYWMgaXRlcmF0aW9ucyB2YWx1ZSBsZXNzIHRoYW4gMTAwMCBvciBtb3JlIHRoYW4gNjU1MzUgaXMgbm90IGFsbG93ZWQgZHVlIHRvIHNlY3VyaXR5IHJlYXNvbnMuIFBsZWFzZSBwcm92aWRlIGl0ZXJhdGlvbnMgPj0gMTAwMCBhbmQgaXRlcmF0aW9ucyA8IDY1NTM1AEFFUyBrZXkgc2l6ZSBzaG91bGQgYmUgJWQgYnl0ZXMgbGVuZ3RoIG9yIHNlY3VyZSBLREYgbWV0aG9kcyBoa2RmIG9yIHBia2RmMl9obWFjIHNob3VsZCBiZSB1c2VkLCBwbGVhc2UgcHJvdmlkZSBleGFjdCBBRVMga2V5IHNpemUgb3IgdXNlIEtERiBtZXRob2RzIGZvciBiZXR0ZXIgc2VjdXJpdHkuAEtERiBvcHRpb24gc2l6ZSBpcyBpbnZhbGlkLCBwbGVhc2UgcHJvdmlkZSB2YWxpZCBzaXplIDwgJWQgYnl0ZXMgYW5kIG5vdCBOVUxMAENSRUFURSBURU1QT1JBUlkgVEFCTEUgaXMgbm90IGFsbG93ZWQgd2l0aCBST1dfRk9STUFUPUNPTVBSRVNTRUQgb3IgS0VZX0JMT0NLX1NJWkUuAFRoZSBBQ0wgb3BlcmF0aW9uIGZhaWxlZCBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvciBmcm9tIFNFOiBlcnJjb2RlICVkIC0gJS4yNTZzAFRoaXMgc3RvcmFnZSBlbmdpbmUgZG9lcyBub3Qgc3VwcG9ydCB0aGUgJXMgaW5kZXggYWxnb3JpdGhtLCBzdG9yYWdlIGVuZ2luZSBkZWZhdWx0IHdhcyB1c2VkIGluc3RlYWQuAERhdGFiYXNlICclLS4xOTJzJyBkb2Vzbid0IGV4aXN0AFRvbyBtYW55IGVudW1lcmF0aW9uIHZhbHVlcyBmb3IgY29sdW1uICUuMTkycy4AVG9vIGxvbmcgZW51bWVyYXRpb24vc2V0IHZhbHVlIGZvciBjb2x1bW4gJS4xOTJzLgAlcyBkaWN0aW9uYXJ5IG9iamVjdCBpcyBpbnZhbGlkLiAoJS4xOTJzKQBGYWlsZWQgdG8gdXBkYXRlICUuMTkycyBkaWN0aW9uYXJ5IG9iamVjdC4ARGljdGlvbmFyeSBvYmplY3QgaWQgKCVsdSkgZG9lcyBub3QgZXhpc3QuAERpY3Rpb25hcnkgb2JqZWN0IG5hbWUgJyVzJyBpcyBpbnZhbGlkLiAoJS4xOTJzKQBUYWJsZXNwYWNlICUtLjE5MnMgZG9lc24ndCBleGlzdC4AQ29tbWVudCBmb3Igcm91dGluZSAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBGYWlsZWQgdG8gbG9hZCByb3V0aW5lICclLS42NHMnLgBCaW5hcnkgb3BlcmFuZHMgb2YgYml0d2lzZSBvcGVyYXRvcnMgbXVzdCBiZSBvZiBlcXVhbCBsZW5ndGgAQWdncmVnYXRlIGJpdHdpc2UgZnVuY3Rpb25zIGNhbm5vdCBhY2NlcHQgYXJndW1lbnRzIGxvbmdlciB0aGFuIDUxMSBieXRlczsgY29uc2lkZXIgdXNpbmcgdGhlIFNVQlNUUklORygpIGZ1bmN0aW9uAEhpbnRzIGFyZW4ndCBzdXBwb3J0ZWQgaW4gJXMAJS42NHMgdmFsdWUgaXMgYSBnZW9tZXRyeSBvZiB1bmV4cGVjdGVkIHR5cGUgJS42NHMgaW4gJS42NHMuAENhbid0IHBhcnNlIHRoZSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gZGVmaW5pdGlvbiBvZiBTUklEICV1LgBUaGUgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIGRlZmluaXRpb24gZm9yIFNSSUQgJXUgZG9lcyBub3Qgc3BlY2lmeSB0aGUgbWFuZGF0b3J5ICVzIChFUFNHICV1KSBwcm9qZWN0aW9uIHBhcmFtZXRlci4AVGhlcmUncyBubyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LgBGdW5jdGlvbiAlcyBpcyBvbmx5IGRlZmluZWQgZm9yIENhcnRlc2lhbiBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLCBidXQgb25lIG9mIGl0cyBhcmd1bWVudHMgaXMgaW4gU1JJRCAldSwgd2hpY2ggaXMgbm90IENhcnRlc2lhbi4ARnVuY3Rpb24gJXMgaXMgb25seSBkZWZpbmVkIGZvciBDYXJ0ZXNpYW4gc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcywgYnV0IG9uZSBvZiBpdHMgYXJndW1lbnRzIGlzIGluIFNSSUQgJXUsIHdoaWNoIGhhcyBub3QgYmVlbiBkZWZpbmVkLgBBIHByaW1hcnkga2V5IGluZGV4IGNhbm5vdCBiZSBpbnZpc2libGUAVW5rbm93biBhdXRob3JpemF0aW9uIElEIGAlLjY0c2BAYCUuNjRzYABGYWlsZWQgdG8gZ3JhbnQgJS45MHNgIHRvICUuOTBzAEZhaWxlZCB0byBvcGVuIHRoZSBzZWN1cml0eSBzeXN0ZW0gdGFibGVzAEZhaWxlZCB0byBzZXQgZGVmYXVsdCByb2xlcwBDYW5ub3QgZmluZCBzY2hlbWEgaW4gc3BlY2lmaWVkIFVSTjogJyUuMTkycycuAENhbm5vdCBhY3F1aXJlIHNjaGVtZSBsb2FkIHNlcnZpY2UgaW1wbGVtZW50YXRpb24gZm9yIHNjaGVtYSAnJS4xOTJzJyBpbiBzcGVjaWZpZWQgVVJOOiAnJS4xOTJzJy4AQ2Fubm90IGxvYWQgY29tcG9uZW50IGZyb20gc3BlY2lmaWVkIFVSTjogJyUuMTkycycuAGAlLjY0c2BAYCUuNjRzYCBpcyBub3QgZ3JhbnRlZCB0byBgJS42NHNgQGAlLjY0c2AAQ291bGQgbm90IHJldm9rZSByb2xlIGZyb20gYCUuNjRzYEBgJS42NHNgAFJlbmFtaW5nIG9mIGEgcm9sZSBpZGVudGlmaWVyIGlzIGZvcmJpZGRlbgBDYW5ub3QgYWNxdWlyZSBzcGVjaWZpZWQgc2VydmljZSBpbXBsZW1lbnRhdGlvbjogJyUuMTkycycuAENhbm5vdCBzYXRpc2Z5IGRlcGVuZGVuY3kgZm9yIHNlcnZpY2UgJyUuMTkycycgcmVxdWlyZWQgYnkgY29tcG9uZW50ICclLjE5MnMnLgBDYW5ub3QgcmVnaXN0ZXIgc2VydmljZSBpbXBsZW1lbnRhdGlvbiAnJS4xOTJzJyBwcm92aWRlZCBieSBjb21wb25lbnQgJyUuMTkycycuAEluaXRpYWxpemF0aW9uIG1ldGhvZCBwcm92aWRlZCBieSBjb21wb25lbnQgJyUuMTkycycgZmFpbGVkLgBDb21wb25lbnQgc3BlY2lmaWVkIGJ5IFVSTiAnJS4xOTJzJyB0byB1bmxvYWQgaGFzIG5vdCBiZWVuIGxvYWRlZCBiZWZvcmUuAERlLWluaXRpYWxpemF0aW9uIG1ldGhvZCBwcm92aWRlZCBieSBjb21wb25lbnQgJyUuMTkycycgZmFpbGVkLgBSZWxlYXNlIG9mIHByZXZpb3VzbHkgYWNxdWlyZWQgc2VydmljZSBpbXBsZW1lbnRhdGlvbiBmYWlsZWQuAFVucmVnaXN0cmF0aW9uIG9mIHNlcnZpY2UgaW1wbGVtZW50YXRpb24gJyUuMTkycycgcHJvdmlkZWQgYnkgY29tcG9uZW50ICclLjE5MnMnIGZhaWxlZCBkdXJpbmcgdW5sb2FkaW5nIG9mIHRoZSBjb21wb25lbnQuAENhbm5vdCB1bmxvYWQgY29tcG9uZW50IGZyb20gc3BlY2lmaWVkIFVSTjogJyUuMTkycycuAFRoZSBQZXJzaXN0ZW50IER5bmFtaWMgTG9hZGVyIHdhcyB1c2VkIHRvIHVubG9hZCBhIGNvbXBvbmVudCAnJS4xOTJzJywgYnV0IGl0IHdhcyBub3QgdXNlZCB0byBsb2FkIHRoYXQgY29tcG9uZW50IGJlZm9yZS4AVGhlIG15c3FsLmNvbXBvbmVudCB0YWJsZSBpcyBtaXNzaW5nIG9yIGhhcyBhbiBpbmNvcnJlY3QgZGVmaW5pdGlvbi4ARmFpbGVkIHRvIG1hbmlwdWxhdGUgY29tcG9uZW50ICclLjE5MnMnIHBlcnNpc3RlbmNlIGRhdGEuIEVycm9yIGNvZGUgJWQgZnJvbSBzdG9yYWdlIGVuZ2luZS4AVGhlIGNvbXBvbmVudCB3aXRoIHNwZWNpZmllZCBVUk46ICclLjE5MnMnIHdhcyBzcGVjaWZpZWQgaW4gZ3JvdXAgbW9yZSB0aGFuIG9uY2UuAEBAR0xPQkFMLkdUSURfUFVSR0VEIGNhbm5vdCBiZSBjaGFuZ2VkOiAlcwBDYW4gbm90IGxvY2sgdXNlciBtYW5hZ2VtZW50IGNhY2hlcyBmb3IgcHJvY2Vzc2luZy4AVGhlcmUncyBubyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LgBWYXJpYWJsZXMgY2Fubm90IGJlIHBlcnNpc3RlZC4gUGxlYXNlIHJldHJ5LgBJbmZvcm1hdGlvbiBzY2hlbWEgcXVlcmllcyBkbyBub3Qgc3VwcG9ydCB0aGUgJyVzJyBjbGF1c2UuAFVuYWJsZSB0byBzdG9yZSBkeW5hbWljICVzIHN0YXRpc3RpY3MgaW50byBkYXRhIGRpY3Rpb25hcnkuAEFjY2VzcyB0byBzeXN0ZW0gc2NoZW1hICclLjY0cycgaXMgcmVqZWN0ZWQuAEFjY2VzcyB0byBzeXN0ZW0gdGFibGVzcGFjZSAnJS42NHMnIGlzIHJlamVjdGVkLgBBY2Nlc3MgdG8gJS42NHMgJyUuNjRzLiUuNjRzJyBpcyByZWplY3RlZC4AZGF0YSBkaWN0aW9uYXJ5IHRhYmxlAHN5c3RlbSB0YWJsZQB0YWJsZQBJbnZhbGlkIG9wdGlvbiBrZXkgJyUuMTkycycgaW4gZnVuY3Rpb24gJS4xOTJzLgBJbnZhbGlkIHZhbHVlICclLjE5MnMnIGZvciBvcHRpb24gJyUuMTkycycgaW4gZnVuY3Rpb24gJyUuMTkycycuAFRoZSBzdHJpbmcgJyUuMTkycycgaXMgbm90IGEgdmFsaWQga2V5ICVjIHZhbHVlIHBhaXIgaW4gZnVuY3Rpb24gJS4xOTJzLgBUaGUgb3B0aW9ucyBhcmd1bWVudCBpbiBmdW5jdGlvbiAlLjE5MnMgc3RhcnRzIHdpdGggdGhlIGludmFsaWQgY2hhcmFjdGVyICclYycuAFRoZSBvcHRpb25zIGFyZ3VtZW50IGluIGZ1bmN0aW9uICUuMTkycyBlbmRzIHdpdGggdGhlIGludmFsaWQgY2hhcmFjdGVyICclYycuAFRoZSBvcHRpb25zIGFyZ3VtZW50IGluIGZ1bmN0aW9uICUuMTkycyBjb250YWlucyB0aGUgaW52YWxpZCBjaGFyYWN0ZXIgc2VxdWVuY2UgJyUuMTkycycuAER1cGxpY2F0ZSBvcHRpb24ga2V5ICclLjE5MnMnIGluIGZ1bnRpb24gJyUuMTkycycuAFRoZXJlJ3Mgbm8gc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIHdpdGggU1JJRCAldS4gVGhlIGF4aXMgb3JkZXIgaXMgdW5rbm93bi4AQWNjZXNzIHRvIG5hdGl2ZSBmdW5jdGlvbiAnJS42NHMnIGlzIHJlamVjdGVkLgBUaGUgcmVxdWVzdGVkIHZhbHVlICclbGx1JyBmb3IgdGhlIG5leHQgYmluYXJ5IGxvZyBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuIFBsZWFzZSB1c2UgYSB2YWx1ZSBiZXR3ZWVuICcxJyBhbmQgJyVsdScuAFVucmVzb2x2ZWQgdGFibGUgbmFtZSAlcyBpbiBsb2NraW5nIGNsYXVzZS4AVGFibGUgJXMgYXBwZWFycyBpbiBtdWx0aXBsZSBsb2NraW5nIGNsYXVzZXMuAFN0YXRlbWVudCBpcyB1bnNhZmUgYmVjYXVzZSBpdCB1c2VzIFNLSVAgTE9DS0VELiBUaGUgc2V0IG9mIGluc2VydGVkIHZhbHVlcyBpcyBub24tZGV0ZXJtaW5pc3RpYy4AU3RhdGVtZW50IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHVzZXMgTk9XQUlULiBXaGV0aGVyIHRoZSBjb21tYW5kIHdpbGwgc3VjY2VlZCBvciBmYWlsIGlzIG5vdCBkZXRlcm1pbmlzdGljLgBTdGF0ZW1lbnQgYWJvcnRlZCBiZWNhdXNlIGxvY2socykgY291bGQgbm90IGJlIGFjcXVpcmVkIGltbWVkaWF0ZWx5IGFuZCBOT1dBSVQgaXMgc2V0LgBSZWN1cnNpdmUgQ29tbW9uIFRhYmxlIEV4cHJlc3Npb24gJyVzJyBzaG91bGQgY29udGFpbiBhIFVOSU9OAFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnIHNob3VsZCBoYXZlIG9uZSBvciBtb3JlIG5vbi1yZWN1cnNpdmUgcXVlcnkgYmxvY2tzIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIHJlY3Vyc2l2ZSBvbmVzAFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnIGNhbiBjb250YWluIG5laXRoZXIgYWdncmVnYXRpb24gbm9yIHdpbmRvdyBmdW5jdGlvbnMgaW4gcmVjdXJzaXZlIHF1ZXJ5IGJsb2NrAEluIHJlY3Vyc2l2ZSBxdWVyeSBibG9jayBvZiBSZWN1cnNpdmUgQ29tbW9uIFRhYmxlIEV4cHJlc3Npb24gJyVzJywgdGhlIHJlY3Vyc2l2ZSB0YWJsZSBtdXN0IG5laXRoZXIgYmUgaW4gdGhlIHJpZ2h0IGFyZ3VtZW50IG9mIGEgTEVGVCBKT0lOLCBub3IgYmUgZm9yY2VkIHRvIGJlIG5vbi1maXJzdCB3aXRoIGpvaW4gb3JkZXIgaGludHMASW4gcmVjdXJzaXZlIHF1ZXJ5IGJsb2NrIG9mIFJlY3Vyc2l2ZSBDb21tb24gVGFibGUgRXhwcmVzc2lvbiAnJXMnLCB0aGUgcmVjdXJzaXZlIHRhYmxlIG11c3QgYmUgcmVmZXJlbmNlZCBvbmx5IG9uY2UsIGFuZCBub3QgaW4gYW55IHN1YnF1ZXJ5ACclcycgcmVxdWlyZXMgQEBpbnRlcm5hbF90bXBfZGlza19zdG9yYWdlX2VuZ2luZT1Jbm5vREIAV2luZG93IG5hbWUgJyVzJyBpcyBub3QgZGVmaW5lZC4AVGhlcmUgaXMgYSBjaXJjdWxhcml0eSBpbiB0aGUgd2luZG93IGRlcGVuZGVuY3kgZ3JhcGguAEEgd2luZG93IHdoaWNoIGRlcGVuZHMgb24gYW5vdGhlciBjYW5ub3QgZGVmaW5lIHBhcnRpdGlvbmluZy4AV2luZG93ICclcycgaGFzIGEgZnJhbWUgZGVmaW5pdGlvbiwgc28gY2Fubm90IGJlIHJlZmVyZW5jZWQgYnkgYW5vdGhlciB3aW5kb3cuAFdpbmRvdyAnJXMnIGNhbm5vdCBpbmhlcml0ICclcycgc2luY2UgYm90aCBjb250YWluIGFuIE9SREVSIEJZIGNsYXVzZS4AV2luZG93ICclcyc6IGZyYW1lIHN0YXJ0IGNhbm5vdCBiZSBVTkJPVU5ERUQgRk9MTE9XSU5HLgBXaW5kb3cgJyVzJzogZnJhbWUgZW5kIGNhbm5vdCBiZSBVTkJPVU5ERUQgUFJFQ0VESU5HLgBXaW5kb3cgJyVzJzogZnJhbWUgc3RhcnQgb3IgZW5kIGlzIG5lZ2F0aXZlLCBOVUxMIG9yIG9mIG5vbi1pbnRlZ3JhbCB0eXBlAFdpbmRvdyAnJXMnIHdpdGggUkFOR0UgTiBQUkVDRURJTkcvRk9MTE9XSU5HIGZyYW1lIHJlcXVpcmVzIGV4YWN0bHkgb25lIE9SREVSIEJZIGV4cHJlc3Npb24sIG9mIG51bWVyaWMgb3IgdGVtcG9yYWwgdHlwZQBXaW5kb3cgJyVzJyB3aXRoIFJBTkdFIGZyYW1lIGhhcyBPUkRFUiBCWSBleHByZXNzaW9uIG9mIGRhdGV0aW1lIHR5cGUuIE9ubHkgSU5URVJWQUwgYm91bmQgdmFsdWUgYWxsb3dlZC4AV2luZG93ICclcycgd2l0aCBSQU5HRSBmcmFtZSBoYXMgT1JERVIgQlkgZXhwcmVzc2lvbiBvZiBudW1lcmljIHR5cGUsIElOVEVSVkFMIGJvdW5kIHZhbHVlIG5vdCBhbGxvd2VkLgBXaW5kb3cgJyVzJyBoYXMgYSBub24tY29uc3RhbnQgZnJhbWUgYm91bmQuAFdpbmRvdyAnJXMnIGlzIGRlZmluZWQgdHdpY2UuAFdpbmRvdyAnJXMnOiBPUkRFUiBCWSBvciBQQVJUSVRJT04gQlkgdXNlcyBsZWdhY3kgcG9zaXRpb24gaW5kaWNhdGlvbiB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLCB1c2UgZXhwcmVzc2lvbi4AWW91IGNhbm5vdCB1c2UgdGhlIHdpbmRvdyBmdW5jdGlvbiAnJXMnIGluIHRoaXMgY29udGV4dC4nAFlvdSBjYW5ub3QgdXNlIHRoZSBhbGlhcyAnJXMnIG9mIGFuIGV4cHJlc3Npb24gY29udGFpbmluZyBhIHdpbmRvdyBmdW5jdGlvbiBpbiB0aGlzIGNvbnRleHQuJwBZb3UgY2Fubm90IG5lc3QgYSB3aW5kb3cgZnVuY3Rpb24gaW4gdGhlIHNwZWNpZmljYXRpb24gb2Ygd2luZG93ICclcycuAFdpbmRvdyAnJXMnOiBJTlRFUlZBTCBjYW4gb25seSBiZSB1c2VkIHdpdGggUkFOR0UgZnJhbWVzLgBBU0Mgb3IgREVTQyB3aXRoIEdST1VQIEJZIGlzbid0IGFsbG93ZWQgd2l0aCB3aW5kb3cgZnVuY3Rpb25zOyBwdXQgQVNDIG9yIERFU0MgaW4gT1JERVIgQlkAVG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IHdpbmRvdyBmdW5jdGlvbnMgdXNlIEVYUExBSU4gRk9STUFUPUpTT04AV2luZG93IGZ1bmN0aW9uICclcycgaWdub3JlcyB0aGUgZnJhbWUgY2xhdXNlIG9mIHdpbmRvdyAnJXMnIGFuZCBhZ2dyZWdhdGVzIG92ZXIgdGhlIHdob2xlIHBhcnRpdGlvbgBXaW5kb3dpbmcgcmVxdWlyZXMgQEBpbnRlcm5hbF90bXBfbWVtX3N0b3JhZ2VfZW5naW5lPVRlbXBUYWJsZS4AVG9vIG1hbnkgYXJndW1lbnRzIGZvciBmdW5jdGlvbiAlczogJWx1OyBtYXhpbXVtIGFsbG93ZWQgaXMgJXMuAEFyZ3VtZW50ICMldSBvZiBHUk9VUElORyBmdW5jdGlvbiBpcyBub3QgaW4gR1JPVVAgQlkAQ29tbWVudCBmb3IgdGFibGVzcGFjZSAnJS0uNjRzJyBpcyB0b28gbG9uZyAobWF4ID0gJWx1KQBTdG9yYWdlIGVuZ2luZSBjYW4ndCBkcm9wIHRhYmxlICclLS4xMjlzJwBTdG9yYWdlIGVuZ2luZSBjYW4ndCBkcm9wIHRhYmxlICclLS4xMjlzJyBiZWNhdXNlIGl0IGlzIG1pc3NpbmcuIFVzZSBEUk9QIFRBQkxFIElGIEVYSVNUUyB0byByZW1vdmUgaXQgZnJvbSBkYXRhLWRpY3Rpb25hcnkuAER1cGxpY2F0ZSBmaWxlIG5hbWUgZm9yIHRhYmxlc3BhY2UgJyUtLjY0cycAUHJvYmxlbSB3aGlsZSBkcm9wcGluZyBkYXRhYmFzZS4gQ2FuJ3QgcmVtb3ZlIGRhdGFiYXNlIGRpcmVjdG9yeSAoJXMpLiBQbGVhc2UgcmVtb3ZlIGl0IG1hbnVhbGx5LgBObyBTREkgZmlsZXMgbWF0Y2hlZCB0aGUgcGF0dGVybiAnJXMnAFNjaGVtYSAnJS4yNTZzJywgcmVmZXJlbmNlZCBpbiBTREksIGRvZXMgbm90IGV4aXN0LgBUYWJsZSAnJS4yNTZzLiUuMjU2cycsIHJlZmVyZW5jZWQgaW4gU0RJLCBhbHJlYWR5IGV4aXN0cy4ASW1wb3J0ZWQgbXlzcWxkX3ZlcnNpb24gKCVsbHUpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggY3VycmVudCAoJWxsdSkASW1wb3J0ZWQgZGQgdmVyc2lvbiAoJXUpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggY3VycmVudCAoJXUpAEltcG9ydGVkIHNkaSB2ZXJzaW9uICglbGx1KSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgKCVsbHUpAEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgaGludCAlcwBWYXJpYWJsZSAlcyBkb2VzIG5vdCBleGlzdCBpbiBwZXJzaXN0ZWQgY29uZmlnIGZpbGUATG9uZ2l0dWRlICVmIGlzIG91dCBvZiByYW5nZSBpbiBmdW5jdGlvbiAlLjE5MnMuIEl0IG11c3QgYmUgd2l0aGluICglZiwgJWZdLgBMYXRpdHVkZSAlZiBpcyBvdXQgb2YgcmFuZ2UgaW4gZnVuY3Rpb24gJS4xOTJzLiBJdCBtdXN0IGJlIHdpdGhpbiBbJWYsICVmXS4AJS4xOTJzKCUuODBzKSBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGdlb2dyYXBoaWMgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtcy4ASWxsZWdhbCBwcml2aWxlZ2UgbGV2ZWwgc3BlY2lmaWVkIGZvciAlcwBBY2Nlc3MgdG8gc3lzdGVtIHZpZXcgSU5GT1JNQVRJT05fU0NIRU1BLiclLjY0cycgaXMgcmVqZWN0ZWQuAFRoZSBsb2ctZmlsdGVyIGNvbXBvbmVudCAiJXMiIGdvdCBjb25mdXNlZCBhdCAiJXMiIC4uLgBQYXJ0aXRpb25pbmcgZXhwcmVzc2lvbiBpcyB0b28gbG9uZy4ARFJPUCBGVU5DVElPTiBjYW4ndCBkcm9wIGEgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZCB1c2VyIGRlZmluZWQgZnVuY3Rpb24AVW5hYmxlIHRvIHN0b3JlIGNvbHVtbiBzdGF0aXN0aWNzIGZvciBjb2x1bW4gJyUuNjRzJyBpbiB0YWJsZSAnJS42NHMnLiclLjY0cycAVW5hYmxlIHRvIHVwZGF0ZSBjb2x1bW4gc3RhdGlzdGljcyBmb3IgY29sdW1uICclLjY0cycgaW4gdGFibGUgJyUuNjRzJy4nJS42NHMnAFVuYWJsZSB0byByZW1vdmUgY29sdW1uIHN0YXRpc3RpY3MgZm9yIGNvbHVtbiAnJS42NHMnIGluIHRhYmxlICclLjY0cycuJyUuNjRzJwBVbmFibGUgdG8gYnVpbGQgaGlzdG9ncmFtIHN0YXRpc3RpY3MgZm9yIGNvbHVtbiAnJS42NHMnIGluIHRhYmxlICclLjY0cycuJyUuNjRzJwBUaGUgcm9sZSAlcyBpcyBhIG1hbmRhdG9yeSByb2xlIGFuZCBjYW4ndCBiZSByZXZva2VkIG9yIGRyb3BwZWQuIFRoZSByZXN0cmljdGlvbiBjYW4gYmUgbGlmdGVkIGJ5IGV4Y2x1ZGluZyB0aGUgcm9sZSBpZGVudGlmaWVyIGZyb20gdGhlIGdsb2JhbCB2YXJpYWJsZSBtYW5kYXRvcnlfcm9sZXMuAFRhYmxlc3BhY2UgJyUuMTkycycgZG9lcyBub3QgaGF2ZSBhIGZpbGUgbmFtZWQgJyUuMTkycycAQWNjZXNzIGRlbmllZDsgeW91IG5lZWQgJS0uMTI4cyBwcml2aWxlZ2VzIGZvciB0aGlzIG9wZXJhdGlvbgBZb3UgbmVlZCB0aGUgU1VQRVIgcHJpdmlsZWdlIGZvciBjb21tYW5kICclLS4xOTJzJwBQYXRoIGlzIHdpdGhpbiB0aGUgY3VycmVudCBkYXRhIGRpcmVjdG9yeSAnJS0uMTkycycAQ29uY3VycmVudCBEREwgaXMgcGVyZm9ybWVkIGR1cmluZyBjbG9uZSBvcGVyYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uAFRvbyBtYW55IGNvbmN1cnJlbnQgY2xvbmUgb3BlcmF0aW9ucy4gTWF4aW11bSBhbGxvd2VkIC0gJWQuAFRoZSB0YWJsZSBpbiB0cmFuc2FjdGlvbiAlcyBkb2VzIG5vdCBjb21wbHkgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIGJ5IGFuIGV4dGVybmFsIHBsdWdpbi4AUmVjdXJzaXZlIHF1ZXJ5IGFib3J0ZWQgYWZ0ZXIgJXUgaXRlcmF0aW9ucy4gVHJ5IGluY3JlYXNpbmcgQEBjdGVfbWF4X3JlY3Vyc2lvbl9kZXB0aCB0byBhIGxhcmdlciB2YWx1ZS4AVmFyaWFibGUgJXMgY2Fubm90IGJlIHNldCB1c2luZyBTRVRfVkFSIGhpbnQuAENhbm5vdCB1c2UgdGhlc2UgY3JlZGVudGlhbHMgZm9yICclLipzQCUuKnMnIGJlY2F1c2UgdGhleSBjb250cmFkaWN0IHRoZSBwYXNzd29yZCBoaXN0b3J5IHBvbGljeQBOb24temVybyBwYXNzd29yZCBoaXN0b3J5IGNsYXVzZXMgaWdub3JlZCBmb3IgdXNlciAnJXMnQCclcycgYXMgaXRzIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiAlcyBkb2VzIG5vdCBzdXBwb3J0IHBhc3N3b3JkIGhpc3RvcnkAVGhlIGNsaWVudCBkb2Vzbid0IHN1cHBvcnQgJXMAVGFibGVzcGFjZSAnJXMnIHdhcyBza2lwcGVkIHNpbmNlIGl0cyBkZWZpbml0aW9uIGlzIGJlaW5nIG1vZGlmaWVkIGJ5IGNvbmN1cnJlbnQgRERMIHN0YXRlbWVudABFbmdpbmUgJyUuMTkycycgZG9lcyBub3QgbWF0Y2ggc3RvcmVkIGVuZ2luZSAnJS4xOTJzJyBmb3IgdGFibGVzcGFjZSAnJS4xOTJzJwBUaGUgU1JJRCBvZiB0aGUgZ2VvbWV0cnkgZG9lcyBub3QgbWF0Y2ggdGhlIFNSSUQgb2YgdGhlIGNvbHVtbiAnJS42NHMnLiBUaGUgU1JJRCBvZiB0aGUgZ2VvbWV0cnkgaXMgJWx1LCBidXQgdGhlIFNSSUQgb2YgdGhlIGNvbHVtbiBpcyAlbHUuIENvbnNpZGVyIGNoYW5naW5nIHRoZSBTUklEIG9mIHRoZSBnZW9tZXRyeSBvciB0aGUgU1JJRCBwcm9wZXJ0eSBvZiB0aGUgY29sdW1uLgBUaGUgU1JJRCBzcGVjaWZpY2F0aW9uIG9uIHRoZSBjb2x1bW4gJyUuNjRzJyBjYW5ub3QgYmUgY2hhbmdlZCBiZWNhdXNlIHRoZXJlIGlzIGEgc3BhdGlhbCBpbmRleCBvbiB0aGUgY29sdW1uLiBQbGVhc2UgcmVtb3ZlIHRoZSBzcGF0aWFsIGluZGV4IGJlZm9yZSBhbHRlcmluZyB0aGUgU1JJRCBzcGVjaWZpY2F0aW9uLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnM9JS4xOTJzIHdpbGwgYmUgaWdub3JlZCBhbmQgdXBkYXRlcyB3aWxsIGJlIHdyaXR0ZW4gaW4gZnVsbCBmb3JtYXQgdG8gYmluYXJ5IGxvZy4AV2hlbiAlLjE5MnMsIHRoZSBvcHRpb24gbG9nX2Jpbl91c2VfdjFfcm93X2V2ZW50cz0xIHdpbGwgYmUgaWdub3JlZCBhbmQgcm93IGV2ZW50cyB3aWxsIGJlIHdyaXR0ZW4gaW4gbmV3IGZvcm1hdCB0byBiaW5hcnkgbG9nLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBiaW5sb2dfcm93X3ZhbHVlX29wdGlvbnM9JS4xOTJzIHdpbGwgYmUgdXNlZCBvbmx5IGZvciB0aGUgYWZ0ZXItaW1hZ2UuIEZ1bGwgdmFsdWVzIHdpbGwgYmUgd3JpdHRlbiBpbiB0aGUgYmVmb3JlLWltYWdlLCBzbyB0aGUgc2F2aW5nIGluIGRpc2sgc3BhY2UgZHVlIHRvIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucyBpcyBsaW1pdGVkIHRvIGxlc3MgdGhhbiA1MCUlLgBDb3VsZCBub3QgYXBwbHkgSlNPTiBkaWZmIGluIHRhYmxlICUuKnMsIGNvbHVtbiAlcy4AQ29ycnVwdGVkIEpTT04gZGlmZiBmb3IgdGFibGUgJS4qcywgY29sdW1uICVzLgBSZXNvdXJjZSBHcm91cCAnJS0uMTkycycgZXhpc3RzAFJlc291cmNlIEdyb3VwICclLS4xOTJzJyBkb2VzIG5vdCBleGlzdC4ASW52YWxpZCBjcHUgaWQgJXUASW52YWxpZCBWQ1BVIHJhbmdlICV1LSV1AEludmFsaWQgdGhyZWFkIHByaW9yaXR5IHZhbHVlICVkIGZvciAlcyByZXNvdXJjZSBncm91cCAlcy4gQWxsb3dlZCByYW5nZSBpcyBbJWQsICVkXS4AJXMgb3BlcmF0aW9uIGlzIGRpc2FsbG93ZWQgb24gJXMAUmVzb3VyY2UgZ3JvdXAgJXMgaXMgYnVzeS4AUmVzb3VyY2UgZ3JvdXAgJXMgaXMgZGlzYWJsZWQuAEZlYXR1cmUgJXMgaXMgdW5zdXBwb3J0ZWQgKCVzKS4AQXR0cmlidXRlICVzIGlzIGlnbm9yZWQgKCVzKS4ASW52YWxpZCB0aHJlYWQgaWQgKCVsbHUpLgBVbmFibGUgdG8gYmluZCByZXNvdXJjZSBncm91cCAlcyB3aXRoIHRocmVhZCBpZCAoJWxsdSkuKCVzKS4AT3B0aW9uIEZPUkNFIGludmFsaWQgYXMgRElTQUJMRSBvcHRpb24gaXMgbm90IHNwZWNpZmllZC4AVGhlICVzIGNvbW1hbmQgZW5jb3VudGVyZWQgYSBmYWlsdXJlLiAlcwBGYWlsZWQgdG8gJXMgU0RJICclLjE5MnMuJS4xOTJzJyBpbiB0YWJsZXNwYWNlICclLjE5MnMnLgBNaXNzaW5nIHZhbHVlIGZvciBKU09OX1RBQkxFIGNvbHVtbiAnJS4xOTJzJwBDYW4ndCBzdG9yZSBhbiBhcnJheSBvciBhbiBvYmplY3QgaW4gdGhlIHNjYWxhciBKU09OX1RBQkxFIGNvbHVtbiAnJS4xOTJzJwBFdmVyeSB0YWJsZSBmdW5jdGlvbiBtdXN0IGhhdmUgYW4gYWxpYXMASU5ORVIgb3IgTEVGVCBKT0lOIG11c3QgYmUgdXNlZCBmb3IgTEFURVJBTCByZWZlcmVuY2VzIG1hZGUgYnkgJyUuMTkycycAVmFsdWUgaXMgb3V0IG9mIHJhbmdlIGZvciBKU09OX1RBQkxFJ3MgY29sdW1uICclLjE5MnMnAE1vcmUgdGhhbiBzdXBwb3J0ZWQgJXUgTkVTVEVEIFBBVEhzIHdlcmUgZm91bmQgaW4gSlNPTl9UQUJMRSAnJS4xOTJzJwBUaGUgc2VsZWN0ZWQgYXV0aGVudGljYXRpb24gbWV0aG9kICUuKnMgZG9lcyBub3Qgc3VwcG9ydCBwYXNzd29yZCBleHBpcmF0aW9uAEludmFsaWQgR2VvSlNPTiBkYXRhIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiBNZW1iZXIgJ2NycycgbXVzdCBiZSBzcGVjaWZpZWQgaW4gdGhlIHRvcCBsZXZlbCBvYmplY3QuAENvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIG51bGwAVGhlIHNwYXRpYWwgaW5kZXggb24gY29sdW1uICclLjY0cycgd2lsbCBub3QgYmUgdXNlZCBieSB0aGUgcXVlcnkgb3B0aW1pemVyIHNpbmNlIHRoZSBjb2x1bW4gZG9lcyBub3QgaGF2ZSBhbiBTUklEIGF0dHJpYnV0ZS4gQ29uc2lkZXIgYWRkaW5nIGFuIFNSSUQgYXR0cmlidXRlIHRvIHRoZSBjb2x1bW4uAENyZWF0ZSB0YWJsZS90YWJsZXNwYWNlICclLS4xOTJzJyBmYWlsZWQsIGFzIGRpc2sgaXMgZnVsbABDb3VsZCBub3QgcGFyc2UgYXJndW1lbnQgdG8gZGlnZXN0IGZ1bmN0aW9uOiAiJXMiLgBDb3VsZCBub3QgcGFyc2UgYXJndW1lbnQgdG8gZGlnZXN0IGZ1bmN0aW9uLgBTY2hlbWEgZGlyZWN0b3J5ICclLjE5MnMnIGFscmVhZHkgZXhpc3RzLiBUaGlzIG11c3QgYmUgcmVzb2x2ZWQgbWFudWFsbHkgKGUuZy4gYnkgbW92aW5nIHRoZSBzY2hlbWEgZGlyZWN0b3J5IHRvIGFub3RoZXIgbG9jYXRpb24pLgBTY2hlbWEgZGlyZWN0b3J5ICclLjE5MnMnIGRvZXMgbm90IGV4aXN0AEZhaWxlZCB0byBjcmVhdGUgc2NoZW1hIGRpcmVjdG9yeSAnJS4xOTJzJyAoZXJybm86ICVkIC0gJXMpAFNjaGVtYSAnJS4xOTJzJyBkb2VzIG5vdCBleGlzdCwgYnV0IHNjaGVtYSBkaXJlY3RvcnkgJyUuMTkycycgd2FzIGZvdW5kLiBUaGlzIG11c3QgYmUgcmVzb2x2ZWQgbWFudWFsbHkgKGUuZy4gYnkgbW92aW5nIHRoZSBzY2hlbWEgZGlyZWN0b3J5IHRvIGFub3RoZXIgbG9jYXRpb24pLgBGdW5jdGlvbiAlLjE5MnMgaXMgb25seSBkZWZpbmVkIGZvciBTUklEIDAgYW5kIFNSSUQgNDMyNi4AVGhlIG9wdGlvbiBleHBpcmVfbG9nc19kYXlzIGFuZCBiaW5sb2dfZXhwaXJlX2xvZ3Nfc2Vjb25kcyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBiaW5sb2dfZXhwaXJlX2xvZ3Nfc2Vjb25kcyB0byBzZXQgdGhlIGV4cGlyZSB0aW1lIChleHBpcmVfbG9nc19kYXlzIGlzIGRlcHJlY2F0ZWQpAFRoZSByZXN1bHQgc3RyaW5nIGlzIGxhcmdlciB0aGFuIHRoZSByZXN1bHQgYnVmZmVyLgBJbGxlZ2FsIGFyZ3VtZW50IHRvIGEgcmVndWxhciBleHByZXNzaW9uLgBJbmRleCBvdXQgb2YgYm91bmRzIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBzZWFyY2guAEludGVybmFsIGVycm9yIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbGlicmFyeS4AU3ludGF4IGVycm9yIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBvbiBsaW5lICV1LCBjaGFyYWN0ZXIgJXUuAFVucmVjb2duaXplZCBlc2NhcGUgc2VxdWVuY2UgaW4gcmVndWxhciBleHByZXNzaW9uLgBUaGUgcmVndWxhciBleHByZXNzaW9uIGNvbnRhaW5zIGEgZmVhdHVyZSB0aGF0IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGxpYnJhcnkgdmVyc2lvbi4ATWlzbWF0Y2hlZCBwYXJlbnRoZXNpcyBpbiByZWd1bGFyIGV4cHJlc3Npb24uAEluY29ycmVjdCBkZXNjcmlwdGlvbiBvZiBhIHttaW4sbWF4fSBpbnRlcnZhbC4AVGhlIG1heGltdW0gaXMgbGVzcyB0aGFuIHRoZSBtaW51bXVtIGluIGEge21pbixtYXh9IGludGVydmFsLgBJbnZhbGlkIGJhY2stcmVmZXJlbmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4AVGhlIGxvb2stYmVoaW5kIGFzc2VydGlvbiBleGNlZWRzIHRoZSBsaW1pdCBpbiByZWd1bGFyIGV4cHJlc3Npb24uAFRoZSByZWd1bGFyIGV4cHJlc3Npb24gY29udGFpbnMgYW4gdW5jbG9zZWQgYnJhY2tldCBleHByZXNzaW9uLgBUaGUgcmVndWxhciBleHByZXNzaW9uIGNvbnRhaW5zIGFuIFt4LXldIGNoYXJhY3RlciByYW5nZSB3aGVyZSB4IGNvbWVzIGFmdGVyIHkuAE92ZXJmbG93IGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYmFja3RyYWNrIHN0YWNrLgBUaW1lb3V0IGV4Y2VlZGVkIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaC4AVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGV4Y2VlZHMgbGltaXRzIG9uIHNpemUgb3IgY29tcGxleGl0eS4AVmFsdWUgZm9yICVzIGdvdCBjb25mdXNpbmcgYXQgb3IgYXJvdW5kICIlcyIuIFN5bnRheCBtYXkgYmUgd3JvbmcsIGNvbXBvbmVudCBtYXkgbm90IGJlIElOU1RBTExlZCwgb3IgYSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbmNlcyBtYXkgYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLgBTZXR0aW5nIGFuIGVtcHR5ICVzIHBpcGVsaW5lIGRpc2FibGVzIGVycm9yIGxvZ2dpbmchAGZpbHRlciAlczogJXMAJS4xOTJzKCUuODBzKSBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgZm9yIENhcnRlc2lhbiBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLgAlLjE5MnMoJS44MHMpIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCBmb3IgcHJvamVjdGVkIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbXMuAEludmFsaWQgcmFkaXVzIHByb3ZpZGVkIHRvIGZ1bmN0aW9uICVzOiBSYWRpdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AUmVzdGFydCBzZXJ2ZXIgZmFpbGVkICglcykuAE1pc3NpbmcgbWFuZGF0b3J5IGF0dHJpYnV0ZSAlcy4ATXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgYXR0cmlidXRlICVzLgBUaGUgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIG5hbWUgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nIG9yIHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UuAFRoZSBvcmdhbml6YXRpb24gbmFtZSBjYW4ndCBiZSBhbiBlbXB0eSBzdHJpbmcgb3Igc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZS4AVGhlcmUgaXMgYWxyZWFkeSBhIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSB3aXRoIFNSSUQgJXUuAFRoZXJlIGlzIGFscmVhZHkgYSBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW0gd2l0aCBTUklEICV1LgBTUklEIDAgaXMgbm90IG1vZGlmaWFibGUuAFRoZSBTUklEIHJhbmdlIFsldSwgJXVdIGhhcyBiZWVuIHJlc2VydmVkIGZvciBzeXN0ZW0gdXNlLiBTUlNzIGluIHRoaXMgcmFuZ2UgbWF5IGJlIGFkZGVkLCBtb2RpZmllZCBvciByZW1vdmVkIHdpdGhvdXQgd2FybmluZyBkdXJpbmcgdXBncmFkZS4AQ2FuJ3QgbW9kaWZ5IFNSSUQgJXUuIFRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjb2x1bW4gZGVwZW5kaW5nIG9uIGl0LgBJbnZhbGlkIGNoYXJhY3RlciBpbiBhdHRyaWJ1dGUgJXMuAEF0dHJpYnV0ZSAlcyBpcyB0b28gbG9uZy4gVGhlIG1heGltdW0gbGVuZ3RoIGlzICV1IGNoYXJhY3RlcnMuACd1dGY4JyBpcyBjdXJyZW50bHkgYW4gYWxpYXMgZm9yIHRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMsIGJ1dCB3aWxsIGJlIGFuIGFsaWFzIGZvciBVVEY4TUI0IGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IGluIG9yZGVyIHRvIGJlIHVuYW1iaWd1b3VzLgBOQVRJT05BTC9OQ0hBUi9OVkFSQ0hBUiBpbXBsaWVzIHRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMsIHdoaWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgQ0hBUih4KSBDSEFSQUNURVIgU0VUIFVURjhNQjQgaW4gb3JkZXIgdG8gYmUgdW5hbWJpZ3VvdXMuAEludmFsaWQgZGVmYXVsdCBjb2xsYXRpb24gJXM6IHV0ZjhtYjRfMDkwMF9haV9jaSBvciB1dGY4bWI0X2dlbmVyYWxfY2kgZXhwZWN0ZWQAVW5hYmxlIHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gZm9yIGNvbHVtbiAnJS0uMTkycyc6ICUtLjE5MnMuAFRoZSB0YWJsZSAnJS0uMTkycycgbWF5IG5vdCBiZSBjcmVhdGVkIGluIHRoZSByZXNlcnZlZCB0YWJsZXNwYWNlICclLS4xOTJzJy4AVGhpcyBvcHRpb24gY2Fubm90IGJlIHNldCAlcy4AQSBjb21taXQgZm9yIGFuIGF0b21pYyBEREwgc3RhdGVtZW50IHdhcyB1bnN1Y2Nlc3NmdWwgb24gdGhlIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuIFRoZSByZXBsaWNhIHN1cHBvcnRzIGF0b21pYyBEREwgc3RhdGVtZW50cyBidXQgdGhlIHNvdXJjZSBkb2VzIG5vdCwgc28gdGhlIGFjdGlvbiB0YWtlbiBieSB0aGUgcmVwbGljYSBhbmQgc291cmNlIG1pZ2h0IGRpZmZlci4gQ2hlY2sgdGhhdCB0aGVpciBzdGF0ZXMgaGF2ZSBub3QgZGl2ZXJnZWQgYmVmb3JlIHByb2NlZWRpbmcuAEZ1bmN0aW9uICVzIGlzIG9ubHkgZGVmaW5lZCBmb3IgZ2VvZ3JhcGhpYyBzcGF0aWFsIHJlZmVyZW5jZSBzeXN0ZW1zLCBidXQgb25lIG9mIGl0cyBhcmd1bWVudHMgaXMgaW4gU1JJRCAldSwgd2hpY2ggaXMgbm90IGdlb2dyYXBoaWMuAEZ1bmN0aW9uICVzIGVuY291bnRlcmVkIGEgcG9seWdvbiB0aGF0IHdhcyB0b28gbGFyZ2UuIFBvbHlnb25zIG11c3QgY292ZXIgbGVzcyB0aGFuIGhhbGYgdGhlIHBsYW5ldC4AU3BhdGlhbCBpbmRleGVzIGNhbid0IGJlIHByaW1hcnkgb3IgdW5pcXVlIGluZGV4ZXMuAFRoZSBpbmRleCB0eXBlICUuMjBzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHNwYXRpYWwgaW5kZXhlcy4AQ2Fubm90IGRyb3AgdGFibGUgJyVzJyByZWZlcmVuY2VkIGJ5IGEgZm9yZWlnbiBrZXkgY29uc3RyYWludCAnJXMnIG9uIHRhYmxlICclcycuAEEgcGFyYW1ldGVyIG9mIGZ1bmN0aW9uICUuMTkycyBjb250YWlucyBhIGdlb21ldHJ5IHdpdGggbG9uZ2l0dWRlICVmLCB3aGljaCBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgd2l0aGluICglZiwgJWZdLgBBIHBhcmFtZXRlciBvZiBmdW5jdGlvbiAlLjE5MnMgY29udGFpbnMgYSBnZW9tZXRyeSB3aXRoIGxhdGl0dWRlICVmLCB3aGljaCBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgd2l0aGluIFslZiwgJWZdLgBGb3JlaWduIGtleSAnJXMnIHVzZXMgdmlydHVhbCBjb2x1bW4gJyVzJyB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLgBGYWlsZWQgdG8gYWRkIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50LiBNaXNzaW5nIGNvbHVtbiAnJXMnIGZvciBjb25zdHJhaW50ICclcycgaW4gdGhlIHJlZmVyZW5jZWQgdGFibGUgJyVzJwAlczogQ291bGQgbm90IGFkZCBzdXBwcmVzc2lvbiBydWxlIGZvciBjb2RlICIlcyIuIFJ1bGUtc2V0IG1heSBiZSBmdWxsLCBvciBjb2RlIG1heSBub3QgY29ycmVzcG9uZCB0byBhbiBlcnJvci1sb2cgbWVzc2FnZS4AVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBkZWZpbml0aW9uIGZvciBTUklEICV1IHNwZWNpZmllcyBpbnZhbGlkIGdlb2dyYXBoaWMgYXhlcyAnJS4yMHMnIGFuZCAnJS4yMHMnLiBPbmUgYXhpcyBtdXN0IGJlIE5PUlRIIG9yIFNPVVRIIGFuZCB0aGUgb3RoZXIgbXVzdCBiZSBFQVNUIG9yIFdFU1QuAFRoZSBsZW5ndGggb2YgdGhlIHNlbWktbWFqb3IgYXhpcyBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLgBUaGUgaW52ZXJzZSBmbGF0dGVuaW5nIG11c3QgYmUgbGFyZ2VyIHRoYW4gMS4wLCBvciAwLjAgaWYgdGhlIGVsbGlwc29pZCBpcyBhIHNwaGVyZS4AVGhlIGFuZ3VsYXIgdW5pdCBjb252ZXJzaW9uIGZhY3RvciBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLgBUaGUgcHJpbWUgbWVyaWRpYW4gbXVzdCBiZSB3aXRoaW4gKC0xODAsIDE4MF0gZGVncmVlcywgc3BlY2lmaWVkIGluIHRoZSBTUlMgYW5ndWxhciB1bml0LgBUcmFuc2Zvcm1hdGlvbiBmcm9tIFNSSUQgJXUgaXMgbm90IHN1cHBvcnRlZC4AVHJhbnNmb3JtYXRpb24gdG8gU1JJRCAldSBpcyBub3Qgc3VwcG9ydGVkLgBUcmFuc2Zvcm1hdGlvbiBmcm9tIFNSSUQgJXUgaXMgbm90IHN1cHBvcnRlZC4gVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBoYXMgbm8gVE9XR1M4NCBjbGF1c2UuAFRyYW5zZm9ybWF0aW9uIHRvIFNSSUQgJXUgaXMgbm90IHN1cHBvcnRlZC4gVGhlIHNwYXRpYWwgcmVmZXJlbmNlIHN5c3RlbSBoYXMgbm8gVE9XR1M4NCBjbGF1c2UuAENoYW5naW5nIEBAc2Vzc2lvbi5iaW5sb2dfZm9ybWF0IGlzIGRpc2FsbG93ZWQgd2hlbiB0aGUgc2Vzc2lvbiBoYXMgb3BlbiB0ZW1wb3JhcnkgdGFibGUocykuIFlvdSBjb3VsZCB3YWl0IHVudGlsIHRoZXNlIHRlbXBvcmFyeSB0YWJsZShzKSBhcmUgZHJvcHBlZCBhbmQgdHJ5IGFnYWluLgBDaGFuZ2luZyBAQGdsb2JhbC5iaW5sb2dfZm9ybWF0IG9yIEBAcGVyc2lzdC5iaW5sb2dfZm9ybWF0IGlzIGRpc2FsbG93ZWQgd2hlbiBhbnkgcmVwbGljYXRpb24gY2hhbm5lbCBoYXMgb3BlbiB0ZW1wb3JhcnkgdGFibGUocykuIFlvdSBjb3VsZCB3YWl0IHVudGlsIFJlcGxpY2Ffb3Blbl90ZW1wX3RhYmxlcyA9IDAgYW5kIHRyeSBhZ2FpbgBDaGFuZ2luZyBAQGdsb2JhbC5iaW5sb2dfZm9ybWF0IG9yIEBAcGVyc2lzdC5iaW5sb2dfZm9ybWF0IGlzIGRpc2FsbG93ZWQgd2hlbiBhbnkgcmVwbGljYXRpb24gY2hhbm5lbCBhcHBsaWVyIHRocmVhZCBpcyBydW5uaW5nLiBZb3UgY291bGQgZXhlY3V0ZSBTVE9QIFJFUExJQ0EgU1FMX1RIUkVBRCBhbmQgdHJ5IGFnYWluLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBhbmQgRFJPUCBURU1QT1JBUlkgVEFCTEUgYXJlIG5vdCBhbGxvd2VkIGluc2lkZSBhIHRyYW5zYWN0aW9uIG9yIGluc2lkZSBhIHByb2NlZHVyZSBpbiBhIHRyYW5zYWN0aW9uYWwgY29udGV4dCB3aGVuIEBAc2Vzc2lvbi5iaW5sb2dfZm9ybWF0PVNUQVRFTUVOVC4AWEE6IEZhaWxlZCB0byB0YWtlIE1ETCBMb2NrIGJhY2t1cCBvZiBQUkVQQVJFRCBYQSB0cmFuc2FjdGlvbiBkdXJpbmcgY2xpZW50IGRpc2Nvbm5lY3QuAFVuYWJsZSB0byBjcmVhdGUgb3IgY2hhbmdlIGEgdGFibGUgd2l0aG91dCBhIHByaW1hcnkga2V5LCB3aGVuIHRoZSBzeXN0ZW0gdmFyaWFibGUgJ3NxbF9yZXF1aXJlX3ByaW1hcnlfa2V5JyBpcyBzZXQuIEFkZCBhIHByaW1hcnkga2V5IHRvIHRoZSB0YWJsZSBvciB1bnNldCB0aGlzIHZhcmlhYmxlIHRvIGF2b2lkIHRoaXMgbWVzc2FnZS4gTm90ZSB0aGF0IHRhYmxlcyB3aXRob3V0IGEgcHJpbWFyeSBrZXkgY2FuIGNhdXNlIHBlcmZvcm1hbmNlIHByb2JsZW1zIGluIHJvdy1iYXNlZCByZXBsaWNhdGlvbiwgc28gcGxlYXNlIGNvbnN1bHQgeW91ciBEQkEgYmVmb3JlIGNoYW5naW5nIHRoaXMgc2V0dGluZy4ARGF0YSB0cnVuY2F0ZWQgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBhdCByb3cgJWxkAFZhbHVlIGlzIG91dCBvZiByYW5nZSBmb3IgZnVuY3Rpb25hbCBpbmRleCAnJXMnIGF0IHJvdyAlbGQAQ2Fubm90IGNyZWF0ZSBhIGZ1bmN0aW9uYWwgaW5kZXggb24gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBKU09OIG9yIEdFT01FVFJZIHZhbHVlLgBGdW5jdGlvbmFsIGluZGV4ICclLjY0cycgY2Fubm90IHJlZmVyIHRvIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbi4AQ2Fubm90IGRyb3AgY29sdW1uICclLS42NHMnIGJlY2F1c2UgaXQgaXMgdXNlZCBieSBhIGZ1bmN0aW9uYWwgaW5kZXguIEluIG9yZGVyIHRvIGRyb3AgdGhlIGNvbHVtbiwgeW91IG11c3QgcmVtb3ZlIHRoZSBmdW5jdGlvbmFsIGluZGV4LgBUaGUgcHJpbWFyeSBrZXkgY2Fubm90IGJlIGEgZnVuY3Rpb25hbCBpbmRleABDYW5ub3QgY3JlYXRlIGEgZnVuY3Rpb25hbCBpbmRleCBvbiBhbiBleHByZXNzaW9uIHRoYXQgcmV0dXJucyBhIEJMT0Igb3IgVEVYVC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIENBU1QuAEV4cHJlc3Npb24gb2YgZnVuY3Rpb25hbCBpbmRleCAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbi4ARnVsbHRleHQgZnVuY3Rpb25hbCBpbmRleCBpcyBub3Qgc3VwcG9ydGVkLgBTcGF0aWFsIGZ1bmN0aW9uYWwgaW5kZXggaXMgbm90IHN1cHBvcnRlZC4AVGhlIHVzZWQgc3RvcmFnZSBlbmdpbmUgY2Fubm90IGluZGV4IHRoZSBleHByZXNzaW9uICclcycuAEZ1bmN0aW9uYWwgaW5kZXggb24gYSBjb2x1bW4gaXMgbm90IHN1cHBvcnRlZC4gQ29uc2lkZXIgdXNpbmcgYSByZWd1bGFyIGluZGV4IGluc3RlYWQuAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbjogJXMuAEV4cHJlc3Npb24gb2YgZ2VuZXJhdGVkIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB0byBhIHJvdyB2YWx1ZS4ARXhwcmVzc2lvbiBvZiBnZW5lcmF0ZWQgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHVzZXIgb3Igc3lzdGVtIHZhcmlhYmxlcy4AQ29sdW1uICclcycgb2YgdGFibGUgJyVzJyBoYXMgYSBkZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gZGVwZW5kZW5jeSBhbmQgY2Fubm90IGJlIGRyb3BwZWQgb3IgcmVuYW1lZC4ARGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIG9mIGNvbHVtbiAnJXMnIGNhbm5vdCByZWZlciB0byBhIGNvbHVtbiBkZWZpbmVkIGFmdGVyIGl0IGlmIHRoYXQgY29sdW1uIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbiBvciBoYXMgYW4gZXhwcmVzc2lvbiBhcyBkZWZhdWx0IHZhbHVlLgBEZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gb2YgY29sdW1uICclcycgY2Fubm90IHJlZmVyIHRvIGFuIGF1dG8taW5jcmVtZW50IGNvbHVtbi4ARGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIG9mIGNvbHVtbiAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbi4ARGVmYXVsdCB2YWx1ZSBleHByZXNzaW9uIG9mIGNvbHVtbiAnJXMnIGNvbnRhaW5zIGEgZGlzYWxsb3dlZCBmdW5jdGlvbjogJXMuAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSByb3cgdmFsdWUuAERlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBvZiBjb2x1bW4gJyVzJyBjYW5ub3QgcmVmZXIgdXNlciBvciBzeXN0ZW0gdmFyaWFibGVzLgBERUZBVUxUIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggZGVmYXVsdCB2YWx1ZSBleHByZXNzaW9ucwAnJXMnIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbnMuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBBTFRFUiBUQUJMRSAuLi4gQUREIENPTFVNTiAuLiB3aXRoIGV4cHJlc3Npb24gYXMgREVGQVVMVC4AQ2Fubm90IGNoYW5nZSB0YWJsZSdzIHN0b3JhZ2UgZW5naW5lIGJlY2F1c2UgdGhlIHRhYmxlIHBhcnRpY2lwYXRlcyBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQuAFNldHRpbmcgdXNlciB2YXJpYWJsZXMgd2l0aGluIGV4cHJlc3Npb25zIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciBhbHRlcm5hdGl2ZXM6ICdTRVQgdmFyaWFibGU9ZXhwcmVzc2lvbiwgLi4uJywgb3IgJ1NFTEVDVCBleHByZXNzaW9uKHMpIElOVE8gdmFyaWFibGVzKHMpJy4AJyUtLjY0cycgaXMgYSBjb2xsYXRpb24gb2YgdGhlIGRlcHJlY2F0ZWQgY2hhcmFjdGVyIHNldCBVVEY4TUIzLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCB3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbGxhdGlvbiBpbnN0ZWFkLgBOZXN0ZWQgY29tbWVudCBzeW50YXggaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAFJlZmVyZW5jaW5nIGNvbHVtbiAnJXMnIGFuZCByZWZlcmVuY2VkIGNvbHVtbiAnJXMnIGluIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyVzJyBhcmUgaW5jb21wYXRpYmxlLgBUaW1lb3V0IGV4Y2VlZGVkIGZvciBoZWxkIHN0YXRlbWVudCB3aGlsZSBuZXcgR3JvdXAgUmVwbGljYXRpb24gcHJpbWFyeSBtZW1iZXIgaXMgYXBwbHlpbmcgYmFja2xvZy4ASGVsZCBzdGF0ZW1lbnQgYWJvcnRlZCBiZWNhdXNlIEdyb3VwIFJlcGxpY2F0aW9uIHBsdWdpbiBnb3Qgc2h1dCBkb3duIG9yIHRocmVhZCB3YXMga2lsbGVkIHdoaWxlIG5ldyBwcmltYXJ5IG1lbWJlciB3YXMgYXBwbHlpbmcgYmFja2xvZy4ASGVsZCBzdGF0ZW1lbnQgd2FzIGFib3J0ZWQgZHVlIHRvIG1lbWJlciBiZWluZyBpbiBlcnJvciBzdGF0ZSwgd2hpbGUgYmFja2xvZyBpcyBiZWluZyBhcHBsaWVkIGR1cmluZyBHcm91cCBSZXBsaWNhdGlvbiBwcmltYXJ5IGVsZWN0aW9uLgBGYWlsZWQgdG8gZmV0Y2gga2V5IGZyb20ga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBDYW4ndCBmaW5kIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpbiB0aGUgc2VydmVyIGxvZyBpZiBhIGtleXJpbmcgaXMgbG9hZGVkIGFuZCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkuAEZldGNoZWQgYW4gaW52YWxpZCBrZXkgZnJvbSBrZXlyaW5nLgBFcnJvciByZWFkaW5nIGEgcmVwbGljYXRpb24gbG9nIGVuY3J5cHRpb24gaGVhZGVyOiAlcy4ARmFpbGVkIHRvIHJvdGF0ZSBzb21lIGxvZ3MgYWZ0ZXIgY2hhbmdpbmcgYmlubG9nIGVuY3J5cHRpb24gc2V0dGluZ3MuIFBsZWFzZSBmaXggdGhlIHByb2JsZW0gYW5kIHJvdGF0ZSB0aGUgbG9ncyBtYW51YWxseS4AS2V5ICVzIGV4aXN0cyB1bmV4cGVjdGVkLgBGYWlsZWQgdG8gZ2VuZXJhdGUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byBzdG9yZSBrZXksIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIHJlbW92ZSBrZXksIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIGNoYW5nZSBiaW5sb2dfZW5jcnlwdGlvbiB2YWx1ZS4gJS0uODBzLgBVbmFibGUgdG8gcmVjb3ZlciBiaW5sb2cgZW5jcnlwdGlvbiBtYXN0ZXIga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAHNsb3cgcXVlcnkgbG9nIGZpbGUgZm9ybWF0IGNoYW5nZWQgYXMgcmVxdWVzdGVkLCBidXQgc2V0dGluZyB3aWxsIGhhdmUgbm8gZWZmZWN0IHdoZW4gbm90IGFjdHVhbGx5IGxvZ2dpbmcgdG8gYSBmaWxlLgBUaGUgb3B0aW9uIGdyb3VwX3JlcGxpY2F0aW9uX2NvbnNpc3RlbmN5IGNhbm5vdCBiZSB1c2VkIG9uIHRoZSBjdXJyZW50IG1lbWJlciBzdGF0ZS4ARXJyb3Igd2hpbGUgd2FpdGluZyBmb3IgZ3JvdXAgdHJhbnNhY3Rpb25zIGNvbW1pdCBvbiBncm91cF9yZXBsaWNhdGlvbl9jb25zaXN0ZW5jeT0gJ0JFRk9SRScuAEVycm9yIHdoaWxlIHdhaXRpbmcgZm9yIHRyYW5zYWN0aW9ucyB3aXRoIGdyb3VwX3JlcGxpY2F0aW9uX2NvbnNpc3RlbmN5PSAnQUZURVInIHRvIGNvbW1pdC4AVGhlIEdyb3VwIFJlcGxpY2F0aW9uIHBsdWdpbiBpcyBzdG9wcGluZywgdGhlcmVmb3JlIG5ldyB0cmFuc2FjdGlvbnMgYXJlIG5vdCBhbGxvd2VkIHRvIHN0YXJ0LgBFeHByZXNzaW9uIG9mIGZ1bmN0aW9uYWwgaW5kZXggJyVzJyBjYW5ub3QgcmVmZXIgdG8gYSByb3cgdmFsdWUuAEZhaWxlZCB0byBlbmNyeXB0IGNvbnRlbnQgdG8gd3JpdGUgaW50byBiaW5sb2cgZmlsZTogJXMuAFBhZ2UgVHJhY2tpbmcgaXMgbm90IHN0YXJ0ZWQgeWV0LgBUcmFja2luZyB3YXMgbm90IGVuYWJsZWQgZm9yIHRoZSBMU04gcmFuZ2Ugc3BlY2lmaWVkAENhbm5vdCBwdXJnZSBkYXRhIHdoZW4gY29uY3VycmVudCBjbG9uZSBpcyBpbiBwcm9ncmVzcy4gVHJ5IGxhdGVyLgBDYW5ub3Qgcm90YXRlIGJpbmFyeSBsb2cgbWFzdGVyIGtleSB3aGVuICdiaW5sb2ctZW5jcnlwdGlvbicgaXMgb2ZmLgBVbmFibGUgdG8gcmVjb3ZlciBiaW5hcnkgbG9nIG1hc3RlciBrZXksIHRoZSBjb21iaW5hdGlvbiBvZiBuZXdfbWFzdGVyX2tleV9zZXFubz0ldSwgbWFzdGVyX2tleV9zZXFubz0ldSBhbmQgb2xkX21hc3Rlcl9rZXlfc2Vxbm89JXUgYXJlIHdyb25nLgBGYWlsZWQgdG8gb3BlcmF0ZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgb24ga2V5cmluZywgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLiBUaGUgc3RhdGVtZW50IGhhZCBubyBlZmZlY3Q6IHRoZSBvbGQgYmluYXJ5IGxvZyBtYXN0ZXIga2V5IGlzIHN0aWxsIGluIHVzZSwgdGhlIGtleXJpbmcsIGJpbmFyeSBhbmQgcmVsYXkgbG9nIGZpbGVzIGFyZSB1bmNoYW5nZWQsIGFuZCB0aGUgc2VydmVyIGNvdWxkIG5vdCBzdGFydCB1c2luZyBhIG5ldyBiaW5hcnkgbG9nIG1hc3RlciBrZXkgZm9yIGVuY3J5cHRpbmcgbmV3IGJpbmFyeSBhbmQgcmVsYXkgbG9nIGZpbGVzLgBGYWlsZWQgdG8gcm90YXRlIG9uZSBvciBtb3JlIGJpbmFyeSBvciByZWxheSBsb2cgZmlsZXMuIEEgbmV3IGJpbmFyeSBsb2cgbWFzdGVyIGtleSB3YXMgZ2VuZXJhdGVkIGFuZCB3aWxsIGJlIHVzZWQgdG8gZW5jcnlwdCBuZXcgYmluYXJ5IGFuZCByZWxheSBsb2cgZmlsZXMuIFRoZXJlIG1heSBzdGlsbCBleGlzdCBiaW5hcnkgb3IgcmVsYXkgbG9nIGZpbGVzIHVzaW5nIHRoZSBwcmV2aW91cyBiaW5hcnkgbG9nIG1hc3RlciBrZXkuACVzLiBBIG5ldyBiaW5hcnkgbG9nIG1hc3RlciBrZXkgd2FzIGdlbmVyYXRlZCBhbmQgd2lsbCBiZSB1c2VkIHRvIGVuY3J5cHQgbmV3IGJpbmFyeSBhbmQgcmVsYXkgbG9nIGZpbGVzLiBUaGVyZSBtYXkgc3RpbGwgZXhpc3QgYmluYXJ5IG9yIHJlbGF5IGxvZyBmaWxlcyB1c2luZyB0aGUgcHJldmlvdXMgYmluYXJ5IGxvZyBtYXN0ZXIga2V5LgBGYWlsZWQgdG8gcmVtb3ZlIHVudXNlZCBiaW5hcnkgbG9nIGVuY3J5cHRpb24ga2V5cyBmcm9tIHRoZSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuIFRoZSB1bnVzZWQgYmluYXJ5IGxvZyBlbmNyeXB0aW9uIGtleXMgbWF5IHN0aWxsIGV4aXN0IGluIHRoZSBrZXlyaW5nLCBhbmQgdGhleSB3aWxsIGJlIHJlbW92ZWQgdXBvbiBzZXJ2ZXIgcmVzdGFydCBvciBuZXh0ICdBTFRFUiBJTlNUQU5DRSBST1RBVEUgQklOTE9HIE1BU1RFUiBLRVknIGV4ZWN1dGlvbi4ARmFpbGVkIHRvIHJlbW92ZSBhdXhpbGlhcnkgYmluYXJ5IGxvZyBlbmNyeXB0aW9uIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4gVGhlIGNsZWFudXAgb2YgdGhlIGJpbmFyeSBsb2cgbWFzdGVyIGtleSByb3RhdGlvbiBwcm9jZXNzIGRpZCBub3QgZmluaXNoIGFzIGV4cGVjdGVkIGFuZCB0aGUgY2xlYW51cCB3aWxsIHRha2UgcGxhY2UgdXBvbiBzZXJ2ZXIgcmVzdGFydCBvciBuZXh0ICdBTFRFUiBJTlNUQU5DRSBST1RBVEUgQklOTE9HIE1BU1RFUiBLRVknIGV4ZWN1dGlvbi4AQW4gZXhwcmVzc2lvbiBvZiBub24tYm9vbGVhbiB0eXBlIHNwZWNpZmllZCB0byBhIGNoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnLgBDb2x1bW4gY2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgcmVmZXJlbmNlcyBvdGhlciBjb2x1bW4uAEFuIGV4cHJlc3Npb24gb2YgYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBjb250YWlucyBkaXNhbGxvd2VkIGZ1bmN0aW9uOiAlcy4AQW4gZXhwcmVzc2lvbiBvZiBhIGNoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnIGNvbnRhaW5zIGRpc2FsbG93ZWQgZnVuY3Rpb24uAEFuIGV4cHJlc3Npb24gb2YgYSBjaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBjYW5ub3QgcmVmZXIgdG8gYSB1c2VyIG9yIHN5c3RlbSB2YXJpYWJsZS4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgY2Fubm90IHJlZmVyIHRvIGEgcm93IHZhbHVlLgBDaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBjYW5ub3QgcmVmZXIgdG8gYW4gYXV0by1pbmNyZW1lbnQgY29sdW1uLgBDaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBpcyB2aW9sYXRlZC4AQ2hlY2sgY29uc3RyYWludCAnJS0uMTkycycgcmVmZXJzIHRvIG5vbi1leGlzdGluZyBjb2x1bW4gJyUtLjE5MnMnLgBDaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyBpcyBub3QgZm91bmQgaW4gdGhlIHRhYmxlLgBEdXBsaWNhdGUgY2hlY2sgY29uc3RyYWludCBuYW1lICclLS4xOTJzJy4AQ29sdW1uICclLS4xOTJzJyBjYW5ub3QgYmUgdXNlZCBpbiBhIGNoZWNrIGNvbnN0cmFpbnQgJyUtLjE5MnMnOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJyByZWZlcmVudGlhbCBhY3Rpb24uAENyZWF0aW5nIGFuIHVuZW5jcnlwdGVkIHRhYmxlIGluIGEgZGF0YWJhc2Ugd2l0aCBkZWZhdWx0IGVuY3J5cHRpb24gZW5hYmxlZC4AUmVxdWVzdCB0byBjcmVhdGUgJXMgdGFibGUgd2hpbGUgdXNpbmcgYW4gJXMgdGFibGVzcGFjZS4AVGFibGUgZW5jcnlwdGlvbiBkaWZmZXIgZnJvbSBpdHMgZGF0YWJhc2UgZGVmYXVsdCBlbmNyeXB0aW9uLCBhbmQgdXNlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHByaXZpbGVnZS4ARGF0YWJhc2UgZGVmYXVsdCBlbmNyeXB0aW9uIGRpZmZlciBmcm9tICdkZWZhdWx0X3RhYmxlX2VuY3J5cHRpb24nIHNldHRpbmcsIGFuZCB1c2VyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJpdmlsZWdlLgBUYWJsZXNwYWNlIGVuY3J5cHRpb24gZGlmZmVyIGZyb20gJ2RlZmF1bHRfdGFibGVfZW5jcnlwdGlvbicgc2V0dGluZywgYW5kIHVzZXIgZG9lc24ndCBoYXZlIGVub3VnaCBwcml2aWxlZ2UuAFRoaXMgdGFibGVzcGFjZSBjYW4ndCBiZSBlbmNyeXB0ZWQsIGJlY2F1c2Ugb25lIG9mIHRhYmxlJ3Mgc2NoZW1hIGhhcyBkZWZhdWx0IGVuY3J5cHRpb24gT0ZGIGFuZCB1c2VyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJpdmlsZWdlLgBUaGlzIHRhYmxlc3BhY2UgY2FuJ3QgYmUgZGVjcnlwdGVkLCBiZWNhdXNlIG9uZSBvZiB0YWJsZSdzIHNjaGVtYSBoYXMgZGVmYXVsdCBlbmNyeXB0aW9uIE9OIGFuZCB1c2VyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJpdmlsZWdlLgBDYW5ub3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIHRoZSB0YWJsZXNwYWNlIG5hbWVkICclcycuAFNvdXJjZSB0YWJsZXNwYWNlIGlzIGVuY3J5cHRlZCBidXQgdGFyZ2V0IHRhYmxlc3BhY2UgaXMgbm90LgBFTkNSWVBUSU9OIGNsYXVzZSBpcyBub3QgdmFsaWQgZm9yICVzIHRhYmxlc3BhY2UuAE11bHRpcGxlICVzIGNsYXVzZXMAR1JBTlQgLi4uIEFTIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb25seSBmb3IgZ2xvYmFsIHByaXZpbGVnZXMuAEVpdGhlciBzb21lIG9mIHRoZSBhdXRob3JpemF0aW9uIElEcyBpbiB0aGUgQVMgY2xhdXNlIGFyZSBpbnZhbGlkIG9yIHRoZSBjdXJyZW50IHVzZXIgbGFja3MgcHJpdmlsZWdlcyB0byBleGVjdXRlIHRoZSBzdGF0ZW1lbnQuAENvbHVtbiAnJXMnIGhhcyBhIGZ1bmN0aW9uYWwgaW5kZXggZGVwZW5kZW5jeSBhbmQgY2Fubm90IGJlIGRyb3BwZWQgb3IgcmVuYW1lZC4AUGx1Z2luICclcycgaXMgbm90IHRvIGJlIHVzZWQgYXMgYW4gImVhcmx5IiBwbHVnaW4uIERvbid0IGFkZCBpdCB0byAtLWVhcmx5LXBsdWdpbi1sb2FkLCBrZXlyaW5nIG1pZ3JhdGlvbiBldGMuAFJlZG8gbG9nIGFyY2hpdmluZyBzdGFydCBwcm9oaWJpdHMgcGF0aCBuYW1lIGluICdzdWJkaXInIGFyZ3VtZW50AFJlZG8gbG9nIGFyY2hpdmluZyBzdGFydCB0aW1lZCBvdXQAU2VydmVyIHZhcmlhYmxlICdpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9kaXJzJyBpcyBOVUxMIG9yIGVtcHR5AExhYmVsICclLjE5MnMnIG5vdCBmb3VuZCBpbiBzZXJ2ZXIgdmFyaWFibGUgJ2lubm9kYl9yZWRvX2xvZ19hcmNoaXZlX2RpcnMnAERpcmVjdG9yeSBpcyBlbXB0eSBhZnRlciBsYWJlbCAnJS4xOTJzJyBpbiBzZXJ2ZXIgdmFyaWFibGUgJ2lubm9kYl9yZWRvX2xvZ19hcmNoaXZlX2RpcnMnAFJlZG8gbG9nIGFyY2hpdmUgZGlyZWN0b3J5ICclLjE5MnMnIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhIGRpcmVjdG9yeQBSZWRvIGxvZyBhcmNoaXZlIGRpcmVjdG9yeSAnJS4xOTJzJyBpcyBpbiwgdW5kZXIsIG9yIG92ZXIgc2VydmVyIGRpcmVjdG9yeSAnJS4xOTJzJyAtICclLjE5MnMnAFJlZG8gbG9nIGFyY2hpdmUgZGlyZWN0b3J5ICclLjE5MnMnIGlzIGFjY2Vzc2libGUgdG8gYWxsIE9TIHVzZXJzAENhbm5vdCBjcmVhdGUgcmVkbyBsb2cgYXJjaGl2ZSBmaWxlICclLjUxMnMnIChPUyBlcnJubzogJWQgLSAlLjEyOHMpAFJlZG8gbG9nIGFyY2hpdmluZyBoYXMgYmVlbiBzdGFydGVkIG9uICclLjUxMnMnIC0gQ2FsbCBpbm5vZGJfcmVkb19sb2dfYXJjaGl2ZV9zdG9wKCkgZmlyc3QAUmVkbyBsb2cgYXJjaGl2aW5nIGlzIG5vdCBhY3RpdmUAUmVkbyBsb2cgYXJjaGl2aW5nIGZhaWxlZDogJS41MTJzAFJlZG8gbG9nIGFyY2hpdmluZyBoYXMgbm90IGJlZW4gc3RhcnRlZCBieSB0aGlzIHNlc3Npb24AUmVnZXggZXJyb3I6ICUtLjI1NnMgaW4gZnVuY3Rpb24gJXMuAEludmFsaWQgSlNPTiB0eXBlIGluIGFyZ3VtZW50ICV1IHRvIGZ1bmN0aW9uICVzOyBhbiAlcyBpcyByZXF1aXJlZC4AQ2Fubm90IGNvbnZlcnQgc3RyaW5nICclLjY0cycgZnJvbSAlcyB0byAlcwBDb2x1bW4gJyVzJyBoYXMgYSBwYXJ0aXRpb25pbmcgZnVuY3Rpb24gZGVwZW5kZW5jeSBhbmQgY2Fubm90IGJlIGRyb3BwZWQgb3IgcmVuYW1lZC4AQVVUT19JTkNSRU1FTlQgc3VwcG9ydCBmb3IgRkxPQVQvRE9VQkxFIGNvbHVtbnMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHJlbW92aW5nIEFVVE9fSU5DUkVNRU5UIGZyb20gY29sdW1uICclLS4xOTJzJy4AQ2Fubm90IHN0b3AgdGhlIHJlcGxpY2EgU1FMIHRocmVhZCB3aGlsZSB0aGUgaW5zdGFuY2UgaXMgbG9ja2VkIGZvciBiYWNrdXAuIFRyeSBydW5uaW5nIGBVTkxPQ0sgSU5TVEFOQ0VgIGZpcnN0LgBTcGVjaWZ5aW5nIG51bWJlciBvZiBkaWdpdHMgZm9yIGZsb2F0aW5nIHBvaW50IGRhdGEgdHlwZXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAFVOU0lHTkVEIGZvciBkZWNpbWFsIGFuZCBmbG9hdGluZyBwb2ludCBkYXRhIHR5cGVzIGlzIGRlcHJlY2F0ZWQgYW5kIHN1cHBvcnQgZm9yIGl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBJbnRlZ2VyIGRpc3BsYXkgd2lkdGggaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAFRoZSBaRVJPRklMTCBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFVzZSB0aGUgTFBBRCBmdW5jdGlvbiB0byB6ZXJvLXBhZCBudW1iZXJzLCBvciBzdG9yZSB0aGUgZm9ybWF0dGVkIG51bWJlcnMgaW4gYSBDSEFSIGNvbHVtbi4AQ2xvbmUgRG9ub3IgRXJyb3I6ICUuNTEycy4AQ2xvbmUgcmVjZWl2ZWQgdW5leHBlY3RlZCByZXNwb25zZSBmcm9tIERvbm9yIDogJS41MTJzLgBDbG9uZSBEb25vciBNeVNRTCB2ZXJzaW9uOiAlLjY0cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgTXlTUUwgdmVyc2lvbiAlLjY0cy4AQ2xvbmUgRG9ub3IgT1M6ICUuNjRzIGlzIGRpZmZlcmVudCBmcm9tIFJlY2lwaWVudCBPUzogJS42NHMuAENsb25lIERvbm9yIHBsYXRmb3JtOiAlLjY0cyBpcyBkaWZmZXJlbnQgZnJvbSBSZWNpcGllbnQgcGxhdGZvcm06ICUuNjRzLgBDbG9uZSBEb25vciBjb2xsYXRpb246ICUuMTI4cyBpcyB1bmF2YWlsYWJsZSBpbiBSZWNpcGllbnQuAENsb25lIENvbmZpZ3VyYXRpb24gJS4xMjhzOiBEb25vciB2YWx1ZTogJS4xMjhzIGlzIGRpZmZlcmVudCBmcm9tIFJlY2lwaWVudCB2YWx1ZTogJS4xMjhzLgBDbG9uZSBzeXN0ZW0gY29uZmlndXJhdGlvbjogJS41MTJzAENsb25lIERvbm9yIHBsdWdpbiAlLjEyOHMgaXMgbm90IGFjdGl2ZSBpbiBSZWNpcGllbnQuAENsb25lIGNhbm5vdCB1c2UgbG9vcCBiYWNrIGNvbm5lY3Rpb24gd2hpbGUgY2xvbmluZyBpbnRvIGN1cnJlbnQgZGF0YSBkaXJlY3RvcnkuAENsb25lIG5lZWRzIFNTTCBjb25uZWN0aW9uIGZvciBlbmNyeXB0ZWQgdGFibGUuAENsb25lIGVzdGltYXRlZCBkYXRhYmFzZSBzaXplIGlzICUuNjRzLiBBdmFpbGFibGUgc3BhY2UgJS42NHMgaXMgbm90IGVub3VnaC4AQ29uY3VycmVudCBjbG9uZSBpbiBwcm9ncmVzcy4gUGxlYXNlIHRyeSBhZnRlciBjbG9uZSBpcyBjb21wbGV0ZS4AVGhlIGNsb25lIG9wZXJhdGlvbiBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hlbiAlcy4AQ2Fubm90IGdyYW50IHJvbGVzIHRvIGFuIGFub255bW91cyB1c2VyLgAlcwBFbXB0eSBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGFzIHNlY29uZCBwYXNzd29yZCBmb3IgdXNlciAnJXMnQCclcycuAEFjY2VzcyBkZW5pZWQgZm9yIEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgdG8gZGF0YWJhc2UgJyUtLjE5MnMnLgBDYW5ub3Qgc2V0IG1hbmRhdG9yeV9yb2xlczogQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBoYXMgJyVzJyBwcml2aWxlZ2UuAEd0aWQgdGFibGUgaXMgbm90IHJlYWR5IHRvIGJlIHVzZWQuIFRhYmxlICclcy4lcycgY2Fubm90IGJlIG9wZW5lZC4AVGhlIGdlb21ldHJ5IHBhc3NlZCB0byBmdW5jdGlvbiAlcyBpcyBpbiBTUklEIDAsIHdoaWNoIGRvZXNuJ3Qgc3BlY2lmeSBhIGxlbmd0aCB1bml0LiBDYW4ndCBjb252ZXJ0IHRvICclcycuAEVycm9yIGluc3RhbGxpbmcgcGx1Z2luICclcyc6ICVzAFN0b3JhZ2UgZW5naW5lIGNvdWxkIG5vdCBhbGxvY2F0ZSB0ZW1wb3JhcnkgdGFibGVzcGFjZSBmb3IgdGhpcyBzZXNzaW9uLgBHb3QgdW5rbm93biBlcnJvcjogJWQAQ291bGQgbm90IGNoYW5nZSBjb2x1bW4gJyVzJyBvZiB0YWJsZSAnJXMnLiBUaGUgcmVzdWx0aW5nIHNpemUgb2YgaW5kZXggJyVzJyB3b3VsZCBleGNlZWQgdGhlIG1heCBrZXkgbGVuZ3RoIG9mICVkIGJ5dGVzLgBBIGNhcHR1cmUgZ3JvdXAgaGFzIGFuIGludmFsaWQgbmFtZS4ARmFpbGVkIHRvIHNldCB1cCBTU0wgYmVjYXVzZSBvZiB0aGUgZm9sbG93aW5nIFNTTCBsaWJyYXJ5IGVycm9yOiAlcwBTZWNvbmRhcnkgZW5naW5lIG9wZXJhdGlvbiBmYWlsZWQuICVzLgBERExzIG9uIGEgdGFibGUgd2l0aCBhIHNlY29uZGFyeSBlbmdpbmUgZGVmaW5lZCBhcmUgbm90IGFsbG93ZWQuAEluY29ycmVjdCBjdXJyZW50IHBhc3N3b3JkLiBTcGVjaWZ5IHRoZSBjb3JyZWN0IHBhc3N3b3JkIHdoaWNoIGhhcyB0byBiZSByZXBsYWNlZC4AQ3VycmVudCBwYXNzd29yZCBuZWVkcyB0byBiZSBzcGVjaWZpZWQgaW4gdGhlIFJFUExBQ0UgY2xhdXNlIGluIG9yZGVyIHRvIGNoYW5nZSBpdC4ARG8gbm90IHNwZWNpZnkgdGhlIGN1cnJlbnQgcGFzc3dvcmQgd2hpbGUgY2hhbmdpbmcgaXQgZm9yIG90aGVyIHVzZXJzLgBDdXJyZW50IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGJlY2F1c2UgYXV0aGVudGljYXRpb24gcGx1Z2luIGlzIGJlaW5nIGNoYW5nZWQuAEN1cnJlbnQgcGFzc3dvcmQgY2FuIG5vdCBiZSByZXRhaW5lZCBmb3IgdXNlciAnJXMnQCclcycgYmVjYXVzZSBuZXcgcGFzc3dvcmQgaXMgZW1wdHkuAEF0IGxlYXN0IG9uZSBwYXJ0aWFsIHJldm9rZSBleGlzdHMgb24gYSBkYXRhYmFzZS4gVGhlIHN5c3RlbSB2YXJpYWJsZSAnQEBwYXJ0aWFsX3Jldm9rZXMnIG11c3QgYmUgc2V0IHRvIE9OLgBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIGlzIHNldCBhcyBtYW5kYXRvcnlfcm9sZXMuIENhbm5vdCBncmFudCB0aGUgJyVzJyBwcml2aWxlZ2UuAFRoZSB1c2Ugb2YgcmVwbGljYXRpb24gZmlsdGVycyB3aXRoIFhBIHRyYW5zYWN0aW9ucyBpcyBub3Qgc3VwcG9ydGVkLCBhbmQgY2FuIGxlYWQgdG8gYW4gdW5kZWZpbmVkIHN0YXRlIGluIHRoZSByZXBsaWNhLgBzcWxfbW9kZT0weCUwOHggaXMgbm90IHN1cHBvcnRlZC4ASW52YWxpZCBtYXRjaCBtb2RlIGZsYWcgaW4gcmVndWxhciBleHByZXNzaW9uLgAnJXMnIHByaXZpbGVnZSBmb3IgZGF0YWJhc2UgJyVzJyBleGlzdHMgYm90aCBhcyBwYXJ0aWFsIHJldm9rZSBhbmQgbXlzcWwuZGIgc2ltdWx0YW5lb3VzbHkuIEl0IGNvdWxkIG1lYW4gdGhhdCB0aGUgJ215c3FsJyBzY2hlbWEgaXMgY29ycnVwdGVkLgBUaGVyZSdzIG5vIHVuaXQgb2YgbWVhc3VyZSBuYW1lZCAnJXMnLgBJbnZhbGlkIEpTT04gdmFsdWUgZm9yIENBU1QgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycuAE91dCBvZiByYW5nZSBKU09OIHZhbHVlIGZvciBDQVNUIGZvciBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnLgBFeGNlZWRlZCBtYXggbnVtYmVyIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgdmFsdWUocykuAEV4Y2VlZGVkIG1heCB0b3RhbCBsZW5ndGggb2YgdmFsdWVzIHBlciByZWNvcmQgZm9yIG11bHRpLXZhbHVlZCBpbmRleCAnJS0uNjRzJyBieSAldSBieXRlcy4ARGF0YSB0b28gbG9uZyBmb3IgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJy4AQ2Fubm90IHN0b3JlIGFuIGFycmF5IG9yIGFuIG9iamVjdCBpbiBhIHNjYWxhciBrZXkgcGFydCBvZiB0aGUgaW5kZXggJyUuMTkycycuAENhbm5vdCB1c2UgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJyBkdWUgdG8gdHlwZSBvciBjb2xsYXRpb24gY29udmVyc2lvbi4AVGhlIGZ1bmN0aW9uICclcycgZmFpbGVkLiAlcwBDYW5ub3QgdXBkYXRlIEdUSURfUFVSR0VEIHdpdGggdGhlIEdyb3VwIFJlcGxpY2F0aW9uIHBsdWdpbiBydW5uaW5nAEdyb3VwaW5nIG9uIHRlbXBvcmFsIGlzIG5vbi1kZXRlcm1pbmlzdGljIGZvciB0aW1lem9uZXMgaGF2aW5nIERTVC4gUGxlYXNlIGNvbnNpZGVyIHN3aXRjaGluZyB0byBVVEMgZm9yIHRoaXMgcXVlcnkuAExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIGEgcGF0aCBsZW5ndGggdG9vIGxvbmcgZm9yIHRhYmxlICclcycuIFBsZWFzZSBjaGVjayB0aGUgcGF0aCBsaW1pdCBmb3IgeW91ciBPUy4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJS42NHMnQCclLjY0cycuIFJvbGUgbmVlZGVkIHRvIHBlcmZvcm0gb3BlcmF0aW9uOiAnJS4zMnMnACdhdWRpdF9sb2cnIHBhc3N3b3JkIGhhcyBiZWVuIGNvcGllZCBpbnRvICclLjMycycgYW5kIHdpbGwgYmUgcmVtb3ZlZCB3aXRoIGZpcnN0IHB1cmdlZCBwYXNzd29yZC4AU3RhcnRlZCBhdXRvLXJlam9pbiBwcm9jZWR1cmUgYXR0ZW1wdCAlbHUgb2YgJWx1AEEgcGx1Z2luIHdhcyBsb2FkZWQgb3IgdW5sb2FkZWQgZHVyaW5nIGEgcXVlcnksIGEgc3lzdGVtIHZhcmlhYmxlIHRhYmxlIHdhcyBjaGFuZ2VkLgBBIHBsdWdpbiB3YXMgbG9hZGVkIG9yIHVubG9hZGVkIGR1cmluZyBhIHF1ZXJ5LCBhIGdsb2JhbCBzdGF0dXMgdmFyaWFibGUgd2FzIGNoYW5nZWQuAFRoZSBTVEFSVCBHUk9VUF9SRVBMSUNBVElPTiBjb21tYW5kIGZhaWxlZCB0byBzdGFydCBpdHMgbWVzc2FnZSBzZXJ2aWNlLgBJbnZhbGlkIFNPVVJDRV9DT01QUkVTU0lPTl9BTEdPUklUSE1TICclLjE5MnMnIGZvciBjaGFubmVsICclLjE5MnMnLgBJbnZhbGlkIFNPVVJDRV9aU1REX0NPTVBSRVNTSU9OX0xFVkVMICV1IGZvciBjaGFubmVsICclLjE5MnMnLgBJbnZhbGlkIGNvbXByZXNzaW9uIGFsZ29yaXRobSAnJS4xOTJzJy4ASW52YWxpZCB6c3RkIGNvbXByZXNzaW9uIGxldmVsIGZvciBhbGdvcml0aG0gJyUuMTkycycuAFNwZWNpZmllZCBjb21wcmVzc2lvbiBhbGdvcml0aG0gbGlzdCAnJS4xOTJzJyBleGNlZWRzIHRvdGFsIGNvdW50IG9mIDMgZm9yIGNoYW5uZWwgJyUuMTkycycuAFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgc2V0IHRvIGBgQGAlLjI1NXNgLCBidXQgYW5vbnltb3VzIHVzZXJzIGFyZSBkaXNhbGxvd2VkIGZvciBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIuAFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgc2V0IHRvIGAlLjY0c2BAYCUuMjU1c2AsIGJ1dCB0aGlzIGlzIG5vdCBhbiBleGlzdGluZyB1c2VyLgBJbnZhbGlkLCBjb3JydXB0ZWQgUFJJVklMRUdFX0NIRUNLU19VU0VSIHdhcyBmb3VuZCBpbiB0aGUgcmVwbGljYXRpb24gY29uZmlndXJhdGlvbiByZXBvc2l0b3J5IGZvciBjaGFubmVsICclLjE5MnMnLiBVc2UgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgdG8gY29ycmVjdCB0aGUgY29uZmlndXJhdGlvbi4AUFJJVklMRUdFX0NIRUNLU19VU0VSIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdhcyBzZXQgdG8gYCUuNjRzYEBgJS4yNTVzYCwgYnV0IHRoaXMgdXNlciBkb2VzIG5vdCBoYXZlIFJFUExJQ0FUSU9OX0FQUExJRVIgcHJpdmlsZWdlLgBEeW5hbWljIHByaXZpbGVnZSAnJXMnIGlzIG5vdCByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZlci4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSBrZXkgaXMgaW52YWxpZC4ARnVuY3Rpb24gJyVzJyBmYWlsZWQgYmVjYXVzZSBrZXkgdHlwZSBpcyBpbnZhbGlkLgBGdW5jdGlvbiAnJXMnIGZhaWxlZCBiZWNhdXNlIGtleSBsZW5ndGggaXMgdG9vIGxvbmcuAEZ1bmN0aW9uICclcycgZmFpbGVkIGJlY2F1c2Uga2V5IHR5cGUgaXMgdG9vIGxvbmcuACVzLgBJbnZhbGlkIGNoYXJhY3RlciBzZXQgJyVzJyB3YXMgc3BlY2lmaWVkLiBJdCBtdXN0IGJlIGVpdGhlciBjaGFyYWN0ZXIgc2V0IG5hbWUgb3IgY29sbGF0aW9uIG5hbWUgYXMgc3VwcG9ydGVkIGJ5IHNlcnZlci4ASW52YWxpZCBjaGFyYWN0ZXIgc2V0ICclcycgd2FzIHNwZWNpZmllZC4gSXQgbXVzdCBiZSBhIGNoYXJhY3RlciBzZXQgbmFtZSBhcyBzdXBwb3J0ZWQgYnkgc2VydmVyLgBJbnZhbGlkIGNvbGxhdGlvbiAnJXMnIHdhcyBzcGVjaWZpZWQuIEl0IG11c3QgYmUgYSBjb2xsYXRpb24gbmFtZSBhcyBzdXBwb3J0ZWQgYnkgc2VydmVyLgBJbnZhbGlkIGV4dGVuc2lvbiBhcmd1bWVudCB0eXBlICclcycgd2FzIHNwZWNpZmllZC4gUmVmZXIgdGhlIE15U1FMIG1hbnVhbCBmb3IgdGhlIHZhbGlkIFVERiBleHRlbnNpb24gYXJndW1lbnRzIHR5cGUuAFRhYmxlIGhhcyBtdWx0aXBsZSBjb25zdHJhaW50cyB3aXRoIHRoZSBuYW1lICclLS4xOTJzJy4gUGxlYXNlIHVzZSBjb25zdHJhaW50IHNwZWNpZmljICclcycgY2xhdXNlLgBDb25zdHJhaW50ICclLS4xOTJzJyBkb2VzIG5vdCBleGlzdC4AQWx0ZXJpbmcgY29uc3RyYWludCBlbmZvcmNlbWVudCBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgY29uc3RyYWludCAnJS0uMTkycycuIEVuZm9yY2VtZW50IHN0YXRlIGFsdGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoZSBQUklNQVJZLCBVTklRVUUgYW5kIEZPUkVJR04gS0VZIHR5cGUgY29uc3RyYWludHMuAEVhY2ggcm93IG9mIGEgVkFMVUVTIGNsYXVzZSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbiwgdW5sZXNzIHdoZW4gdXNlZCBhcyBzb3VyY2UgaW4gYW4gSU5TRVJUIHN0YXRlbWVudC4AQSBWQUxVRVMgY2xhdXNlIGNhbm5vdCB1c2UgREVGQVVMVCB2YWx1ZXMsIHVubGVzcyB1c2VkIGFzIGEgc291cmNlIGluIGFuIElOU0VSVCBzdGF0ZW1lbnQuAFRoZSBxdWVyeSBkb2VzIG5vdCBjb21wbHkgd2l0aCB2YXJpYWJsZSByZXF1aXJlX3Jvd19mb3JtYXQgcmVzdHJpY3Rpb25zLgBUaGUgcmVxdWVzdGVkIHZhbHVlICVzIGlzIGludmFsaWQgZm9yIFJFUVVJUkVfUk9XX0ZPUk1BVCwgbXVzdCBiZSBlaXRoZXIgMCBvciAxLgBGYWlsZWQgdG8gYWNxdWlyZSBsb2NrIG9uIHVzZXIgbWFuYWdlbWVudCBzZXJ2aWNlLCB1bmFibGUgdG8gZGV0ZXJtaW5lIGlmIHJvbGUgYCVzYEBgJXNgIGlzIG1hbmRhdG9yeQBGYWlsZWQgdG8gYWNxdWlyZSBsb2NrIG9uIHVzZXIgbWFuYWdlbWVudCBzZXJ2aWNlLCB1bmFibGUgdG8gZmV0Y2ggbWFuZGF0b3J5IHJvbGUgbGlzdABMb2FkaW5nIGxvY2FsIGRhdGEgaXMgZGlzYWJsZWQ7IHRoaXMgbXVzdCBiZSBlbmFibGVkIG9uIGJvdGggdGhlIGNsaWVudCBhbmQgc2VydmVyIHNpZGVzAEZhaWxlZCB0byBpbXBvcnQgJXMgYmVjYXVzZSB0aGUgQ0ZHIGZpbGUgdmVyc2lvbiAoJXUpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiAoJXUpAE91dCBvZiBtZW1vcnkAQ2hhcmFjdGVyIHNldCBjYW4gYmUgc2V0IG9ubHkgZm9yIHRoZSBVREYgYXJndW1lbnQgdHlwZSBTVFJJTkcuAENoYXJhY3RlciBzZXQgY2FuIGJlIHNldCBvbmx5IGZvciB0aGUgVURGIFJFVFVSTiB0eXBlIFNUUklORy4ATXVsdGlwbGUgSU5UTyBjbGF1c2VzIGluIG9uZSBxdWVyeSBibG9jay4ATWlzcGxhY2VkIElOVE8gY2xhdXNlLCBJTlRPIGlzIG5vdCBhbGxvd2VkIGluc2lkZSBzdWJxdWVyaWVzLCBhbmQgbXVzdCBiZSBwbGFjZWQgYXQgZW5kIG9mIFVOSU9OIGNsYXVzZXMuAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycuIEFjY291bnQgaXMgYmxvY2tlZCBmb3IgJXMgZGF5KHMpICglcyBkYXkocykgcmVtYWluaW5nKSBkdWUgdG8gJXUgY29uc2VjdXRpdmUgZmFpbGVkIGxvZ2lucy4AVU5TSUdORUQgZm9yIHRoZSBZRUFSIGRhdGEgdHlwZSBpcyBkZXByZWNhdGVkIGFuZCBzdXBwb3J0IGZvciBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4AQ2xvbmUgbmVlZHMgbWF4X2FsbG93ZWRfcGFja2V0IHZhbHVlIHRvIGJlICV1IG9yIG1vcmUuIEN1cnJlbnQgdmFsdWUgaXMgJXUARmFpbGVkIHRvICVzIHNkaSBmb3IgJXMuJXMgaW4gJXMgZHVlIHRvIG1pc3NpbmcgcmVjb3JkLgBDaGVjayBjb25zdHJhaW50ICclLS4xOTJzJyB1c2VzIGNvbHVtbiAnJS0uMTkycycsIGhlbmNlIGNvbHVtbiBjYW5ub3QgYmUgZHJvcHBlZCBvciByZW5hbWVkLgBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHdoaWxlIEdyb3VwIFJlcGxpY2F0aW9uIGlzIHJ1bm5pbmc7IHJ1biBTVE9QIEdST1VQX1JFUExJQ0FUSU9OIGZpcnN0AFNwZWNpZnlpbmcgYW4gT04gRU1QVFkgY2xhdXNlIGFmdGVyIHRoZSBPTiBFUlJPUiBjbGF1c2UgaW4gYSBKU09OX1RBQkxFIGNvbHVtbiBkZWZpbml0aW9uIGlzIGRlcHJlY2F0ZWQgc3ludGF4IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gU3BlY2lmeSBPTiBFTVBUWSBiZWZvcmUgT04gRVJST1IgaW5zdGVhZC4AVGhlIElOVE8gY2xhdXNlIGlzIGRlcHJlY2F0ZWQgaW5zaWRlIHF1ZXJ5IGJsb2NrcyBvZiBxdWVyeSBleHByZXNzaW9ucyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBtb3ZlIHRoZSBJTlRPIGNsYXVzZSB0byB0aGUgZW5kIG9mIHN0YXRlbWVudCBpbnN0ZWFkLgBUaGUgVkFMVUVTIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBJdCBhbHdheXMgcmV0dXJucyBOVUxMIGluIHRoaXMgY29udGV4dC4gSWYgeW91IG1lYW50IHRvIGFjY2VzcyBhIHZhbHVlIGZyb20gdGhlIFZBTFVFUyBjbGF1c2Ugb2YgdGhlIElOU0VSVCBzdGF0ZW1lbnQsIGNvbnNpZGVyIHVzaW5nIGFuIGFsaWFzIChJTlNFUlQgSU5UTyAuLi4gVkFMVUVTICguLi4pIEFTIGFsaWFzKSBhbmQgcmVmZXJlbmNlIGFsaWFzLmNvbCBpbnN0ZWFkIG9mIFZBTFVFUyhjb2wpIGluIHRoZSBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBjbGF1c2UuAFNRTF9DQUxDX0ZPVU5EX1JPV1MgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIHR3byBzZXBhcmF0ZSBxdWVyaWVzIGluc3RlYWQuAEZPVU5EX1JPV1MoKSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgQ09VTlQoKikgaW5zdGVhZC4ATm8gdmFsdWUgd2FzIGZvdW5kIGJ5ICclLjE5MnMnIG9uIHRoZSBzcGVjaWZpZWQgcGF0aC4ATW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQgYnkgJyUuMTkycycgb24gdGhlIHNwZWNpZmllZCBwYXRoLgBIb3N0bmFtZSBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gJWQgY2hhcmFjdGVycy4AQ29sdW1uICclLjY0cy4lLjY0cy4lLjY0cycgaGF2aW5nIHByZWZpeCBrZXkgcGFydCAnJS42NHMoJXUpJyBpcyBpZ25vcmVkIGJ5IHRoZSBwYXJ0aXRpb25pbmcgZnVuY3Rpb24uIFVzZSBvZiBwcmVmaXhlZCBjb2x1bW5zIGluIHRoZSBQQVJUSVRJT04gQlkgS0VZKCkgY2xhdXNlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgc2luY2UgdGhlIHVzZXJuYW1lIHByb3ZpZGVkIGZvciByZWNvdmVyeSBjaGFubmVsIGlzIGVtcHR5LgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgc2luY2UgdGhlIFVTRVIgb3B0aW9uIHdhcyBub3QgcHJvdmlkZWQgd2l0aCBQQVNTV09SRCBmb3IgcmVjb3ZlcnkgY2hhbm5lbC4AVGhlIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIGNvbW1hbmQgZmFpbGVkIHNpbmNlIHRoZSBwYXNzd29yZCBwcm92aWRlZCBmb3IgdGhlIHJlY292ZXJ5IGNoYW5uZWwgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgMzIgY2hhcmFjdGVycy4AU3RhdGVtZW50IHJlcXVpcmVzIGEgdHJhbnNmb3JtIG9mIGEgc3VicXVlcnkgdG8gYSBub24tU0VUIG9wZXJhdGlvbiAobGlrZSBJTjJFWElTVFMsIG9yIHN1YnF1ZXJ5LXRvLUxBVEVSQUwtZGVyaXZlZC10YWJsZSkuIFRoaXMgaXMgbm90IGFsbG93ZWQgd2l0aCBvcHRpbWl6ZXIgc3dpdGNoICdzdWJxdWVyeV90b19kZXJpdmVkJyBvbgBJbnZhbGlkIGlucHV0IHZhbHVlIGZvciByZWNvdmVyeSBzb2NrZXQgZW5kcG9pbnRzICclcycuIFBsZWFzZSwgcHJvdmlkZSBhIHZhbGlkLCBjb21tYSBzZXBhcmF0ZWQsIGxpc3Qgb2YgZW5kcG9pbnRzIChJUDpwb3J0KQBUaGUgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgb24gZW5kcG9pbnQgJyVzJy4gT25seSBlbmRwb2ludHMgdGhhdCB0aGUgc2VydmVyIGlzIGxpc3RlbmluZyBvbiBhcmUgdmFsaWQgcmVjb3ZlcnkgZW5kcG9pbnRzLgBWYXJpYWJsZSAnJS0uNjRzJyBjYW5ub3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnJS0uMjAwcycuICUtLjIwMHMAT25seSBCSU5MT0cgSU5TRVJULCBDT01NSVQgYW5kIFJPTExCQUNLIHN0YXRlbWVudHMgYXJlIGFsbG93ZWQgYWZ0ZXIgQ1JFQVRFIFRBQkxFIHdpdGggU1RBUlQgVFJBTlNBQ1RJT04gc3RhdGVtZW50LgBGb3JlaWduIGtleSBjcmVhdGlvbiBpcyBub3QgYWxsb3dlZCB3aXRoIENSRUFURSBUQUJMRSBhcyBTRUxFQ1QgYW5kIENSRUFURSBUQUJMRSB3aXRoIFNUQVJUIFRSQU5TQUNUSU9OIHN0YXRlbWVudC4AU1RBUlQgVFJBTlNBQ1RJT04gY2xhdXNlIGNhbm5vdCBiZSB1c2VkICUuMTI4cwBJbnZhbGlkIGpzb24gYXR0cmlidXRlLCBlcnJvcjogIiVzIiBhdCBwb3MgJXU6ICclcycAU3RvcmFnZSBlbmdpbmUgJyVzJyBkb2VzIG5vdCBzdXBwb3J0IEVOR0lORV9BVFRSSUJVVEUuAFRoZSB1c2VyIGF0dHJpYnV0ZSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QAQ2Fubm90IHBlcmZvcm0gb3BlcmF0aW9uIGFzIElubm9EQiByZWRvIGxvZ2dpbmcgaXMgZGlzYWJsZWQuIFBsZWFzZSByZXRyeSBhZnRlciBlbmFibGluZyByZWRvIGxvZyB3aXRoIEFMVEVSIElOU1RBTkNFAENhbm5vdCBwZXJmb3JtIG9wZXJhdGlvbiBhcyBJbm5vREIgaXMgYXJjaGl2aW5nIHJlZG8gbG9nLiBQbGVhc2UgcmV0cnkgYWZ0ZXIgc3RvcHBpbmcgcmVkbyBhcmNoaXZlIGJ5IGludm9raW5nIGlubm9kYl9yZWRvX2xvZ19hcmNoaXZlX3N0b3AoKQBOb3QgZW5vdWdoIHJlc291cmNlcyB0byBjb21wbGV0ZSBsb2NrIHJlcXVlc3QuAEV2YWx1YXRpbmcgYSBKU09OIHZhbHVlIGluIFNRTCBib29sZWFuIGNvbnRleHQgZG9lcyBhbiBpbXBsaWNpdCBjb21wYXJpc29uIGFnYWluc3QgSlNPTiBpbnRlZ2VyIDA7IGlmIHRoaXMgaXMgbm90IHdoYXQgeW91IHdhbnQsIGNvbnNpZGVyIGNvbnZlcnRpbmcgSlNPTiB0byBhIFNRTCBudW1lcmljIHR5cGUgd2l0aCBKU09OX1ZBTFVFIFJFVFVSTklORwBUaGUgZnVuY3Rpb24gJXMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY2hhcmFjdGVyIHNldCAnJXMnLgBDb252ZXJzaW9uIGZyb20gY29sbGF0aW9uICVzIGludG8gJXMgaW1wb3NzaWJsZSBmb3IgJXMAU2NoZW1hICclcycgaXMgaW4gcmVhZCBvbmx5IG1vZGUuAEZhaWxlZCB0byBlbmFibGUgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgZmVhdHVyZS4gVGhlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEgY2FuIG9ubHkgYmUgc2V0IHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT04uAEZhaWxlZCB0byBlbmFibGUgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgZmVhdHVyZS4gVGhlIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEgY2FuIG9ubHkgYmUgc2V0IHdoZW4gU09VUkNFX0FVVE9fUE9TSVRJT04gb3B0aW9uIG9mIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gaXMgZW5hYmxlZC4AVGhlIEBAR0xPQkFMLkdUSURfTU9ERSA9ICUtLjY0cyBjYW5ub3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBBc3luY2hyb25vdXMgUmVwbGljYXRpb24gQ29ubmVjdGlvbiBGYWlsb3ZlciBpcyBlbmFibGVkIGkuZS4gQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSID0gMS4AQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQVVUT19QT1NJVElPTiA9IDAgY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgQXN5bmNocm9ub3VzIFJlcGxpY2F0aW9uIENvbm5lY3Rpb24gRmFpbG92ZXIgaXMgZW5hYmxlZCBpLmUuIENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiA9IDEuAEludmFsaWQgdXNlIG9mIHBhcmFtZXRlcnMgaW4gJyVzJwBDaGFyYWN0ZXIgc2V0ICclcycgY2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnJXMnIGluIGNhbGwgdG8gJXMuAENoYW5naW5nICVzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4gRmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0LgBJbnZhbGlkIHRpbWUgem9uZSBpbnRlcnZhbDogJyVzJwBDYW5ub3QgY2FzdCB2YWx1ZSB0byAlcy4AVGhlIGh5cGVyZ3JhcGggb3B0aW1pemVyIGRvZXMgbm90IHlldCBzdXBwb3J0ICclcycAVGhlIGh5cGVyZ3JhcGggb3B0aW1pemVyIGlzIGhpZ2hseSBleHBlcmltZW50YWwgYW5kIGlzIG1lYW50IGZvciB0ZXN0aW5nIG9ubHkuIERvIG5vdCBlbmFibGUgaXQgdW5sZXNzIHlvdSBhcmUgYSBNeVNRTCBkZXZlbG9wZXIuAE5vbmUgb2YgdGhlIGxvZy1zaW5rcyBzZWxlY3RlZCB3aXRoIC0tbG9nLWVycm9yLXNlcnZpY2VzPS4uLiBwcm92aWRlcyBhIGxvZy1wYXJzZXIuIFRoZSBzZXJ2ZXIgd2lsbCBub3QgYmUgYWJsZSB0byBtYWtlIHRoZSBwcmV2aW91cyBydW5zJyBlcnJvci1sb2dzIGF2YWlsYWJsZSBpbiBwZXJmb3JtYW5jZV9zY2hlbWEuZXJyb3JfbG9nLgBOb25lIG9mIHRoZSBsb2ctc2lua3Mgc2VsZWN0ZWQgaW4gQEBnbG9iYWwubG9nX2Vycm9yX3NlcnZpY2VzIHN1cHBvcnRzIHdyaXRpbmcgdG8gdGhlIHBlcmZvcm1hbmNlIHNjaGVtYS4gVGhlIHNlcnZlciB3aWxsIG5vdCBiZSBhYmxlIHRvIG1ha2UgdGhlIGN1cnJlbnQgcnVucycgZXJyb3IgZXZlbnRzIGF2YWlsYWJsZSBpbiBwZXJmb3JtYW5jZV9zY2hlbWEuZXJyb3JfbG9nLiBUbyBjaGFuZ2UgdGhpcywgYWRkIGEgbG9nLXNpbmsgdGhhdCBzdXBwb3J0cyB0aGUgcGVyZm9ybWFuY2Ugc2NoZW1hIHRvIEBAZ2xvYmFsLmxvZ19lcnJvcl9zZXJ2aWNlcy4AQEBnbG9iYWwubG9nX2Vycm9yX3NlcnZpY2VzIGxpc3RzIG1vcmUgdGhhbiBvbmUgbG9nLWZpbHRlciBzZXJ2aWNlLiBUaGlzIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHdpbGwgbWFrZSBpdCBoYXJkIHRvIHVuZGVyc3RhbmQgd2hpY2ggcnVsZSBpbiB3aGljaCBmaWx0ZXIgYWZmZWN0ZWQgYSBsb2ctZXZlbnQuAENvdWxkIG5vdCBvcGVuIGZpbGUgJyVzJyBmb3IgZXJyb3IgbG9nZ2luZyVzJXMAVXNlciAlLjI1NnMgaXMgcmVmZXJlbmNlZCBhcyBhIGRlZmluZXIgYWNjb3VudCBpbiAlcy4AT3BlcmF0aW9uICVzIGZhaWxlZCBmb3IgJS4yNTZzIGFzIGl0IGlzIHJlZmVyZW5jZWQgYXMgYSBkZWZpbmVyIGFjY291bnQgaW4gJXMuAERlY2ltYWwgbnVtYmVyIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyB0b28gbGFyZ2UuAFRoZSB2YXJpYWJsZSAiJXMiIGhhcyBhIG5vbi1pbnRlZ2VyIGJhc2VkIHR5cGUAUmVhZHMgd2l0aCBzZXJpYWxpemFibGUgaXNvbGF0aW9uL1NFTEVDVCBGT1IgU0hBUkUgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIEFDTCB0YWJsZXMuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXBkYXRlcyBhIHRhYmxlIGRlcGVuZGluZyBvbiBBQ0wgdGFibGUgcmVhZCBvcGVyYXRpb24uIEFzIHN0b3JhZ2UgZW5naW5lIHJvdyBsb2NrcyBhcmUgc2tpcHBlZCBmb3IgQUNMIHRhYmxlLCBpdCBtYXkgbm90IGhhdmUgc2FtZSBlZmZlY3Qgb24gc291cmNlIGFuZCByZXBsaWNhLgBTVE9QIFJFUExJQ0EgY29tbWFuZCBleGVjdXRpb24gaXMgaW5jb21wbGV0ZTogUmVwbGljYSBNb25pdG9yIHRocmVhZCBnb3QgdGhlIHN0b3Agc2lnbmFsLCB0aHJlYWQgaXMgYnVzeSwgTW9uaXRvciB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AVGhlIFJlcGxpY2EgTW9uaXRvciB0aHJlYWQgZmFpbGVkIHRvIHN0YXJ0LgBSZXBsaWNhdGlvbiBjYW5ub3Qgc3RhcnQlLjE5MnMgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPiBhcyB0aGlzIHNlcnZlciB1c2VzIEBAR0xPQkFMLkdUSURfTU9ERSA8PiBPTi4AVGhlIG9wdGlvbnMgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBMT0NBTHw8VVVJRD4gYW5kIFNPVVJDRV9BVVRPX1BPU0lUSU9OID0gMSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4AQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPiBjYW5ub3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBAQEdMT0JBTC5HVElEX01PREUgPD4gT04uAFRoZSB2YWx1ZSBvZiBzcWxfcmVwbGljYV9za2lwX2NvdW50ZXIgd2lsbCBvbmx5IHRha2UgZWZmZWN0IGZvciBjaGFubmVscyBydW5uaW5nIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPD4gT0ZGLgBVc2luZyBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyBjcmVhdGVzIGxpbWl0YXRpb25zIG9uIHRoZSByZXBsaWNhdGlvbiB0b3BvbG9neSAtIHlvdSBjYW5ub3QgZmFpbCBvdmVyIGJldHdlZW4gZG93bnN0cmVhbSBhbmQgdXBzdHJlYW0gc2VydmVycy4gT25seSB1c2UgdGhpcyBvcHRpb24gaWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGVuYWJsZSBHVElEcyBvbiB0aGUgc291cmNlLCBmb3IgaW5zdGFuY2UsIGJlY2F1c2Ugb2YgbGFjayBvZiBwZXJtaXNzaW9ucy4gSWYgcG9zc2libGUsIHVzZSB0aGUgcHJvY2VkdXJlIGZvciBlbmFibGluZyBHVElEIHRyYW5zYWN0aW9ucyBvbmxpbmUgaW5zdGVhZCwgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgBXQUlUX1VOVElMX1NRTF9USFJFQURfQUZURVJfR1RJRFMgY2Fubm90IGJlIHVzZWQgb24gYSBjaGFubmVsIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPgBUaGUgU1FMX0FGVEVSX0dUSURTIG9yIFNRTF9CRUZPUkVfR1RJRFMgY2xhdXNlcyBmb3IgU1RBUlQgUkVQTElDQSBjYW5ub3QgYmUgdXNlZCB3aGVuIHRoZSByZXBsaWNhdGlvbiBjaGFubmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IExPQ0FMfDxVVUlEPi4AUmVwbGljYXRpb24gJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gPFVVSUQ+IHdoZXJlIHRoZSBVVUlEIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSA8VVVJRD4gY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgdGhlIFVVSUQgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUuAFRoZSBncm91cF9yZXBsaWNhdGlvbl9yZWNvdmVyeSBjaGFubmVsIGlzIHN0aWxsIHJ1bm5pbmcsIG1vc3QgbGlrZWx5IGl0IGlzIHdhaXRpbmcgZm9yIGEgZGF0YWJhc2UvdGFibGUgbG9jaywgd2hpY2ggaXMgcHJldmVudGluZyB0aGUgY2hhbm5lbCBmcm9tIHN0b3BwaW5nLiBQbGVhc2UgY2hlY2sgZGF0YWJhc2UvdGFibGUgbG9ja3MsIGluY2x1ZGluZyB0aGUgb25lcyBjcmVhdGVkIGJ5IGJhY2t1cCB0b29scy4AQVVUT0VYVEVORF9TSVpFIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICV1TQBJbm5vREI6ICIlcyIgbm90IGFsbG93ZWQgd2l0aCBnZW5lcmFsIHRhYmxlc3BhY2VzAEFVVE9FWFRFTkRfU0laRSB2YWx1ZSBzaG91bGQgYmUgYmV0d2VlbiAldU0gYW5kICV1TQBBVVRPRVhURU5EX1NJWkUgY2xhdXNlIGlzIG5vdCB2YWxpZCBmb3IgJXMgdGFibGVzcGFjZS4AVXNlciBhY2NvdW50ICVzIGlzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZ3JhbnRlZCB0byB0aGUgcm9sZSAlcy4gVGhlIEdSQU5UIHdvdWxkIGNyZWF0ZSBhIGxvb3AAQSB0YWJsZSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHZpc2libGUgY29sdW1uLgBDb21wcmVzc2lvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yIDogJXMAVGhlIHBhcmFtZXRlciBuZXR3b3JrX25hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4gUGxlYXNlIHVzZSB0aGUgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBjb21tYW5kIHRvIHNldCBjaGFubmVsIG5ldHdvcmtfbmFtZXNwYWNlIHBhcmFtZXRlci4AVGhlIGNsaWVudCB3YXMgZGlzY29ubmVjdGVkIGJ5IHRoZSBzZXJ2ZXIgYmVjYXVzZSBvZiBpbmFjdGl2aXR5LiBTZWUgd2FpdF90aW1lb3V0IGFuZCBpbnRlcmFjdGl2ZV90aW1lb3V0IGZvciBjb25maWd1cmluZyB0aGlzIGJlaGF2aW9yLgBJbnZhbGlkIGNhc3QgZnJvbSAlcyB0byAlcy4ASW52YWxpZCBjYXN0IGZyb20gJXMgdG8gJXMuIEEgcG9seWdvbiByaW5nIGlzIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24uAEFyZ3VtZW50cyB0byBmdW5jdGlvbiAlcyBjb250YWlucyBnZW9tZXRyaWVzIHdpdGggZGlmZmVyZW50IFNSSURzOiAldSBhbmQgJXUuIEFsbCBnZW9tZXRyaWVzIG11c3QgaGF2ZSB0aGUgc2FtZSBTUklELgBLZXlyaW5nIHJlbG9hZCBmYWlsZWQuIFBsZWFzZSBjaGVjayBlcnJvciBsb2cgZm9yIG1vcmUgZGV0YWlscy4AVGFibGVzcGFjZSAnJS4xOTJzJyBpcyBpbnZhbGlkIGZvciBTREkgb3BlcmF0aW9ucy4AVmFsdWUgdG9vIGxvbmcgc2V0dGluZyBTT1VSQ0VfQ09NUFJFU1NJT05fQUxHT1JJVEhNUyBvcHRpb24gdG8gYSAlZCBjaGFycyBsb25nIHN0cmluZyBmb3IgY2hhbm5lbCAnJS4xOTJzJy4AQSBkZXByZWNhdGVkIFRMUyB2ZXJzaW9uICVzIGlzIGVuYWJsZWQgZm9yIGNoYW5uZWwgJXMuIFBsZWFzZSB1c2UgVExTdjEuMiBvciBoaWdoZXIuAENIQU5HRSBSRVBMSUNBVElPTiBTT1VSQ0UgVE8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSA8VVVJRD4gY2Fubm90IGJlIGV4ZWN1dGVkIGJlY2F1c2UgdGhlIFVVSUQgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQuAFJlcGxpY2F0aW9uICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUyA9IDxVVUlEPiB3aGVyZSB0aGUgVVVJRCB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZABVbmFibGUgdG8gcmV0cmlldmUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCB2YXJpYWJsZSBkdXJpbmcgc2VydmVyIGNoZWNrcyBvbiByZXBsaWNhdGlvbiBvcGVyYXRpb25zLgBCb3RoIGF1ZGl0X2xvZ19tYXhfc2l6ZSBhbmQgYXVkaXRfbG9nX3BydW5lX3NlY29uZHMgYXJlIHNldCB0byBub24temVyby4gYXVkaXRfbG9nX21heF9zaXplIHRha2VzIHByZWNlZGVuY2UgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGlzIGlnbm9yZWQAYXVkaXRfbG9nX3JvdGF0ZV9vbl9zaXplIGlzIG5vdCBncmFudWxhciBlbm91Z2ggZm9yIHRoZSB2YWx1ZSBvZiBhdWRpdF9sb2dfbWF4X3NpemUgc3VwcGxpZWQuIFNob3VsZCBiZSBhdCBsZWFzdCAlZCB0aW1lcyBzbWFsbGVyLgBDcmVhdGUvQWx0ZXIgdXNlciBoYXMgZmFpbGVkLCBDb25maWd1cmVkIHVzZXIgcmVhbG0gYXMgYXV0aGVudGljYXRpb24gc3RyaW5nIGlzIGVtcHR5LCBQbGVhc2UgbWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiBzdHJpbmcgYXMgdXNlciByZWFsbS4AQ2Fubm90IGluc3RhbGwgdGhlICUuMTkycyBwbHVnaW4gd2hlbiB0aGUgJS4xOTJzIHBsdWdpbiBpcyBpbnN0YWxsZWQuACVkIGVycm9yIGxvZ2dpbmcgY29tcG9uZW50KHMpIGZhaWxlZCB0byBmbHVzaC4gRm9yIGZpbGUtYmFzZWQgbG9ncyB0aGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgcGF0aCBvciBwZXJtaXNzaW9ucyBvZiB0aGUgbG9nLWZpbGUgaGF2ZSBjaGFuZ2VkLiBGYWlsdXJlIHRvIGZsdXNoIGZpbGVkLWJhc2VkIGxvZ3MgbWF5IGFmZmVjdCBsb2ctcm90YXRpb24uAFRoZSB1bnRpbCBjbGF1c2UgU1FMX0FGVEVSX01UU19HQVBTIGlzIGJlaW5nIHVzZWQgZm9yIGNoYW5uZWwgJyUuMTkycycgd2hlbiBHVElEX01PREUgPSBPTiBhbmQgU09VUkNFX0FVVE9fUE9TSVRJT049MSBtZWFuaW5nIHRoZSBzZXJ2ZXIgZGlkIG5vdCBjb21wdXRlIGludGVybmFsbHkgd2hhdCBnYXBzIG1heSBleGlzdCBpbiB0aGUgcmVsYXkgbG9nIHRyYW5zYWN0aW9uIGV4ZWN1dGlvbi4gVG8gY2xvc2UgYW55IGV4ZWN1dGlvbiBnYXBzIHVzZSBlaXRoZXIgdGhlIFNRTF9CRUZPUkVfR1RJRFMgb3IgU1FMX0FGVEVSX0dUSURTIHVudGlsIGNsYXVzZS4ASW52YWxpZCB0YXJnZXQgZm9yIGFzc2lnbm1lbnQgaW4gSU5TRVJUIG9yIFVQREFURSBzdGF0ZW1lbnQgJyUuMTkycycuAFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gYSBHcm91cCBSZXBsaWNhdGlvbiBzZWNvbmRhcnkgbWVtYmVyLCBpdCBtdXN0IGJlIGRvbmUgb24gdGhlIGdyb3VwIHByaW1hcnkuAFVuYWJsZSB0byBwcm9wYWdhdGUgdGhlIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgdmFsdWUgZm9yIGNoYW5uZWwgJyVzJyB0byBncm91cCByZXBsaWNhdGlvbiBtZW1iZXJzLiBQbGVhc2UgcmV0cnkgdGhlIG9wZXJhdGlvbi4AYXVkaXRfbG9nX2Zvcm1hdF91bml4X3RpbWVzdGFtcCBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiBhdWRpdF9sb2dfZm9ybWF0ID0gSlNPTi4ASW52YWxpZCBwbHVnaW4gIiVzIiBzcGVjaWZpZWQgYXMgJWQgZmFjdG9yIGR1cmluZyAiJXMiLgBJREVOVElGSUVEIEJZIGNsYXVzZSBkdXJpbmcgIiVzIiBub3Qgc3VwcG9ydGVkIGZvciBwbHVnaW4gIiVzIi4AVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGx1Z2luICIlcyIuAEF1dGhlbnRpY2F0aW9uIHBsdWdpbiByZXF1aXJlcyByZWdpc3RyYXRpb24uIFBsZWFzZSByZWZlciBBTFRFUiBVU0VSIHN5bnRheCBvciBzZXQgLS1maWRvLXJlZ2lzdGVyLWZhY3RvciBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGRvIHJlZ2lzdHJhdGlvbi4AJWQgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBleGlzdHMuIFBsZWFzZSBkbyBBTFRFUiBVU0VSLi4uIERST1AgJWQgZmFjdG9yIGJlZm9yZSBkb2luZyB0aGlzIG9wZXJhdGlvbiBPUiBkbyBBTFRFUiBVU0VSLi4uIE1PRElGWSAlZCBmYWN0b3IuLi4gdG8gbW9kaWZ5IGV4aXN0aW5nICVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QuACVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QgZG9lc24ndCBleGlzdC4gUGxlYXNlIGRvIEFMVEVSIFVTRVIuLi4gQUREICVkIGZhY3Rvci4uLiBiZWZvcmUgZG9pbmcgdGhpcyBvcGVyYXRpb24uACVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QgZG9lcyBub3QgbWF0Y2ggYWdhaW5zdCBhdXRoZW50aWNhdGlvbiBwb2xpY3kuIFBsZWFzZSByZWZlciBAQGF1dGhlbnRpY2F0aW9uX3BvbGljeSBzeXN0ZW0gdmFyaWFibGUuAFRoZSByZWdpc3RyYXRpb24gZm9yICVkIGZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2QgaXMgYWxyZWFkeSBjb21wbGV0ZWQuIFlvdSBjYW5ub3QgcGVyZm9ybSByZWdpc3RyYXRpb24gbXVsdGlwbGUgdGltZXMuAFRoZSByZWdpc3RyYXRpb24gb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkIGZvciB1c2VyICclcydAJyVzJy4gVGhlIG9wZXJhdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgaW4gdXNlcidzIG93biBzZXNzaW9uLgBBdXRoZW50aWNhdGlvbiBwbHVnaW4ncyByZWdpc3RyYXRpb24gZmFpbGVkLgAlZCBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kIHNob3VsZCBiZSBhZGRlZCBiZWZvcmUgJWQgZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZC4AQXV0aGVudGljYXRpb24gZmFjdG9yIHNob3VsZCBiZSBkaWZmZXJlbnQuAFRoZSBvcGVyYXRpb24gIiVzIiBjYW5ub3QgYmUgcGVyZm9ybWVkIGZvciB1c2VyICclcydAJyVzJyBjb25maWd1cmVkIHRvIGNvbm5lY3Qgd2l0aG91dCBhIHBhc3N3b3JkLgBHVElEX09OTFkgY2Fubm90IGJlIGVuYWJsZWQgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycuIFlvdSBuZWVkIEdUSURfTU9ERSA9IE9OLCBTT1VSQ0VfQVVUT19QT1NJVElPTiA9IDEgYW5kIFJFUVVJUkVfUk9XX0ZPUk1BVCA9IDEuAFJFUVVJUkVfUk9XX0ZPUk1BVCBjYW5ub3QgYmUgZGlzYWJsZWQgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2hlbiBHVElEX09OTFk9MS4AU09VUkNFX0FVVE9fUE9TSVRJT04gY2Fubm90IGJlIGRpc2FibGVkIGZvciByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdoZW4gR1RJRF9PTkxZPTEuAFdoZW4gZGlzYWJsaW5nIEdUSURfT05MWSBhbmQgU09VUkNFX0FVVE9fUE9TSVRJT04gRk9SIENIQU5ORUwgJyUuMTkycycgeW91IG11c3QgcHJvdmlkZSBTT1VSQ0VfTE9HX0ZJTEUgYW5kIFNPVVJDRV9MT0dfUE9TIGFzIHNvdXJjZSBwb3NpdGlvbnMgYXJlIGludmFsaWQuAFdoZW4gZGlzYWJsaW5nIFNPVVJDRV9BVVRPX1BPU0lUSU9OIEZPUiBDSEFOTkVMICclLjE5MnMnIHlvdSBtdXN0IHByb3ZpZGUgU09VUkNFX0xPR19GSUxFIGFuZCBTT1VSQ0VfTE9HX1BPUyBhcyBzb3VyY2UgcG9zaXRpb25zIGFyZSBpbnZhbGlkLgBXaGVuIGNvbmZpZ3VyaW5nIGEgZ3JvdXAgcmVwbGljYXRpb24gY2hhbm5lbCB5b3UgbXVzdCBkbyBpdCB3aGVuIEdUSURfTU9ERSA9IE9OLgBSZXBsaWNhdGlvbiBjYW5ub3Qgc3RhcnQlLjE5MnMgd2l0aCBHVElEX09OTFkgPSAxIGFzIHRoaXMgc2VydmVyIHVzZXMgQEBHTE9CQUwuR1RJRF9NT0RFIDw+IE9OLgBUaGUgcmVwbGljYXRpb24gcG9zaXRpb25zIHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgbWF5IGJlIG91dC1vZi1kYXRlIG9uIGNoYW5uZWwgJyUuMTkycycsIGR1ZSB0byB0aGUgdXNlIG9mIEdUSURfT05MWT0xLiBUaGUgb3V0LW9mLWRhdGUgcG9zaXRpb25zIGNhbiBzdGlsbCBiZSB1c2VkIGluIHNvbWUgY2FzZXMgc28sIGluIG9yZGVyIHRvIHVwZGF0ZSB0aGVtLCB3ZSBzdWdnZXN0IHRoYXQgeW91IHN0YXJ0IHRoZSByZXBsaWNhdGlvbiB0byByZWNlaXZlIGFuZCBhcHBseSBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24sIHdoaWNoIHdpbGwgc2V0IHRoZSBwb3NpdGlvbnMgdG8gdmFsaWQgdmFsdWVzLgBTU0wgZmlwcyBtb2RlIGVycm9yOiAlcwAlcz0lbGx1IGlzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlIFslbGx1LCVsbHVdLiAlbGx1IHdpbGwgYmUgdXNlZC4ATUFUQ0ggZG9lcyBub3Qgc3VwcG9ydCBST0xMVVAgY29sdW1ucy4ATWlzc2luZyBsb2NhbGUgcmVzb3VyY2UgaW4gcmVndWxhciBleHByZXNzaW9uIGxpYnJhcnkuAFJlZ3VsYXIgZXhwcmVzc2lvbiBsaWJyYXJ5IHVzZWQgZGVmYXVsdCAocm9vdCkgbG9jYWxlLgBNaXNzaW5nIGRhdGEgZmlsZSBpbiByZWd1bGFyIGV4cHJlc3Npb24gbGlicmFyeS4AJyUtLjY0cycgaXMgYSBjb2xsYXRpb24gb2YgdGhlIGRlcHJlY2F0ZWQgY2hhcmFjdGVyIHNldCAlcy4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nICVzIHdpdGggYW4gYXBwcm9wcmlhdGUgY29sbGF0aW9uIGluc3RlYWQuAFRoZSAlcyB3YXMgY2FsbGVkIHdoZW4gdGhlcmUgd2FzIGFscmVhZHkgYW5vdGhlciBjb25jdXJyZW50IGNhbGwgdG8gdGhpcyBwcm9jZWR1cmUuIE5vIGFjdGlvbiB3YXMgdGFrZW4uIFdhaXQgZm9yIG90aGVyIGNhbGxzIHRvICVzIHRvIGZpbmlzaCBiZWZvcmUgcmV0cnlpbmcuAENvbm5lY3Rpb24gY2xvc2VkLiBHbG9iYWwgY29ubmVjdGlvbiBtZW1vcnkgbGltaXQgJWxsdSBieXRlcyBleGNlZWRlZC4gQ29uc3VtZWQgJWxsdSBieXRlcy4AQ29ubmVjdGlvbiBjbG9zZWQuIENvbm5lY3Rpb24gbWVtb3J5IGxpbWl0ICVsbHUgYnl0ZXMgZXhjZWVkZWQuIENvbnN1bWVkICVsbHUgYnl0ZXMuAE5lZWQgdG8gcmVidWlsZCB0aGUgdGFibGUgdG8gY2hhbmdlIGNvbHVtbiB0eXBlAFRoaXMgZnVuY3Rpb24gJyUtLjE5MnMnIGhhcyB0aGUgc2FtZSBuYW1lIGFzIGEgbG9hZGFibGUgZnVuY3Rpb24gKFVERikuIFRvIGludm9rZSB0aGUgc3RvcmVkIGZ1bmN0aW9uLCBpdCBpcyBuZWNlc3NhcnkgdG8gcXVhbGlmeSBpdCB3aXRoIHRoZSBzY2hlbWEgbmFtZS4AQ291bGQgbm90IHB1cmdlIGJpbmFyeSBsb2dzIHNpbmNlIGFub3RoZXIgc2Vzc2lvbiBpcyBleGVjdXRpbmcgTE9DSyBJTlNUQU5DRSBGT1IgQkFDS1VQLiBXYWl0IGZvciB0aGF0IHNlc3Npb24gdG8gcmVsZWFzZSB0aGUgbG9jay4AVG9vIG1hbnkgd2luZG93cyBpbiBTRUxFQ1Q6ICVkLiBNYXhpbXVtIGFsbG93ZWQgaXMgJWQuIFVzZSBuYW1lZCB3aW5kb3dzIHRvIHNoYXJlIHdpbmRvd3MgYmV0d2VlbiB3aW5kb3cgZnVuY3Rpb25zLgAlcwBDb21tZW50IGZvciAlcyAnJXMnIGNvbnRhaW5zIGFuIGludmFsaWQgJXMgY2hhcmFjdGVyIHN0cmluZzogJyUuNjRzJy4ARGVmaW5pdGlvbiBvZiAlcyAnJS0uMTkycy4lLS4xOTJzJyBjb250YWlucyBhbiBpbnZhbGlkICVzIGNoYXJhY3RlciBzdHJpbmc6ICclLjY0cycuAENhbid0IGV4ZWN1dGUgdGhlIGdpdmVuIGNvbW1hbmQgd2hlbiBAQFNFU1NJT04uR1RJRF9ORVhUID09ICdVVUlEOk5VTUJFUicuAFhBOiBUZW1wb3JhcnkgdGFibGVzIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbnNpZGUgWEEgdHJhbnNhY3Rpb25zIHdoZW4geGFfZGV0YWNoX29uX3ByZXBhcmU9T04ATWF4aW11bSByb3cgdmVyc2lvbnMgcmVhY2hlZCBmb3IgdGFibGUgJXMuIE5vIG1vcmUgY29sdW1ucyBjYW4gYmUgYWRkZWQgb3IgZHJvcHBlZCBpbnN0YW50bHkuIFBsZWFzZSB1c2UgQ09QWS9JTlBMQUNFLgBDb2x1bW4gY2FuJ3QgYmUgYWRkZWQgd2l0aCBBTEdPUklUSE09SU5TVEFOVCBhcyBhZnRlciB0aGlzIG1heCBwb3NzaWJsZSByb3cgc2l6ZSBjcm9zc2VzIG1heCBwZXJtaXNzaWJsZSByb3cgc2l6ZS4gVHJ5IEFMR09SSVRITT1JTlBMQUNFL0NPUFkuAEFsbCBxdWVyaWVzIGhhdmUgYmVlbiBibG9ja2VkIHdoaWxlIGZ1bmN0aW9uICdncm91cF9yZXBsaWNhdGlvbl9zZXRfYXNfcHJpbWFyeSgpJyBpcyBleGVjdXRpbmcuIFBsZWFzZSByZWZlciB0aW1lb3V0IHBhcmFtZXRlciBvZiBmdW5jdGlvbiAnZ3JvdXBfcmVwbGljYXRpb25fc2V0X2FzX3ByaW1hcnkoKScuAERlbGltaXRlciAnJXMnIGluIHBvc2l0aW9uICVkIGluIGRhdGV0aW1lIHZhbHVlICclcycgYXQgcm93ICVkIGlzIGRlcHJlY2F0ZWQuIFByZWZlciB0aGUgc3RhbmRhcmQgJyVjJy4ARGVsaW1pdGVyICclcycgaW4gcG9zaXRpb24gJWQgaW4gZGF0ZXRpbWUgdmFsdWUgJyVzJyBhdCByb3cgJWQgaXMgc3VwZXJmbHVvdXMgYW5kIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSByZW1vdmUuAENhbm5vdCBwZXJzaXN0IFNFTlNJVElWRSBzeXN0ZW0gdmFyaWFibGUgJyVzJyBiZWNhdXNlIGtleXJpbmcgY29tcG9uZW50IHN1cHBvcnQgaXMgdW5hdmFpbGFibGUuAFNFTlNJVElWRSBzeXN0ZW0gdmFyaWFibGUgJyVzJyB3YXMgcGVyc2lzdGVkIHdpdGhvdXQgZW5jcnlwdGlvbi4gQ29uc2lkZXIgcmVzdGFydGluZyBzZXJ2ZXIgd2l0aCBrZXlyaW5nIGNvbXBvbmVudCBzdXBwb3J0IHRvIHBlcnNpc3QgU0VOU0lUSVZFIHZhcmlhYmxlcyBzZWN1cmVseS4AVHJpZ2dlciAnJS0uMTkycycgYWxyZWFkeSBleGlzdHMgb24gdGhlIHRhYmxlICclLS4xOTJzJy4nJS0uMTkycycuAFRyaWdnZXIgJyUtLjE5MnMnLiclLS4xOTJzJyBhbHJlYWR5IGV4aXN0cyBvbiBhIGRpZmZlcmVudCB0YWJsZS4gVGhlICdJRiBOT1QgRVhJU1RTJyBjbGF1c2UgaXMgb25seSBzdXBwb3J0ZWQgZm9yIHRyaWdnZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSB0YWJsZS4AVGhpcyBmdW5jdGlvbiAnJS0uMTkycycgaGFzIHRoZSBzYW1lIG5hbWUgYXMgYSBuYXRpdmUgZnVuY3Rpb24uIFRoZSAnSUYgTk9UIEVYSVNUUycgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2hpbGUgY3JlYXRpbmcgYSBsb2FkYWJsZSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYSBuYXRpdmUgZnVuY3Rpb24uAFNFVCBQQVNTV09SRCBoYXMgbm8gc2lnbmlmaWNhbmNlIGZvciB1c2VyICclcydAJyVzJyBhcyB0aGUgYXV0aGVudGljYXRpb24gbWV0aG9kIHVzZWQgZG9lc24ndCBzdG9yZSBhdXRoZW50aWNhdGlvbiBkYXRhIGluIHRoZSBNeVNRTCBzZXJ2ZXIuIFBsZWFzZSBjb25zaWRlciB1c2luZyBBTFRFUiBVU0VSIGluc3RlYWQgaWYgeW91IHdhbnQgdG8gY2hhbmdlIGF1dGhlbnRpY2F0aW9uIHBhcmFtZXRlcnMuAENhbm5vdCByZWNvdmVyIGZyb20gZGV0ZWN0X29ubHkgZG91Ymxld3JpdGUgYnVmZmVyIGFzIHBhZ2UgJXUgZnJvbSBiYXRjaCBkb3VibGV3cml0ZSBmaWxlIGlzIGNvcnJ1cHRlZC4ARGF0YWJhc2UgcGFnZSBjb3JydXB0aW9uIG9mIHRhYmxlc3BhY2UgJXMgc3BhY2VfaWQ6ICV1IHBhZ2VfbnVtOiAldS4gQ2Fubm90IHJlY292ZXIgaXQgZnJvbSB0aGUgZG91Ymxld3JpdGUgYnVmZmVyIGJlY2F1c2UgaXQgd2FzIHdyaXR0ZW4gaW4gZGV0ZWN0X29ubHktZG91Ymxld3JpdGUgbW9kZS4ATGF0aXR1ZGUgb2Ygb3JpZ2luIG11c3QgYmUgd2l0aGluIFstOTAsIDkwXSBkZWdyZWVzLCBzcGVjaWZpZWQgaW4gdGhlIFNSUyBhbmd1bGFyIHVuaXQuAExvbmdpdHVkZSBvZiBvcmlnaW4gbXVzdCBiZSB3aXRoaW4gKC0xODAsIDE4MF0gZGVncmVlcywgc3BlY2lmaWVkIGluIHRoZSBTUlMgYW5ndWxhciB1bml0LgBUaGUgc3BhdGlhbCByZWZlcmVuY2Ugc3lzdGVtIGRlZmluaXRpb24gZm9yIFNSSUQgJXUgY29udGFpbnMgdW51c2VkIHByb2plY3Rpb24gcGFyYW1ldGVyICIlcyIuAEZhaWxlZCB0byBnZW5lcmF0ZSBpbnZpc2libGUgcHJpbWFyeSBrZXkuIENvbHVtbiAnbXlfcm93X2lkJyBhbHJlYWR5IGV4aXN0cy4ARmFpbGVkIHRvIGdlbmVyYXRlIGludmlzaWJsZSBwcmltYXJ5IGtleS4gQXV0by1pbmNyZW1lbnQgY29sdW1uIGFscmVhZHkgZXhpc3RzLgBBbHRlcmluZyBnZW5lcmF0ZWQgaW52aXNpYmxlIHByaW1hcnkga2V5IGNvbHVtbiAnbXlfcm93X2lkJyBpcyBub3QgYWxsb3dlZC4AUGxlYXNlIGRyb3AgcHJpbWFyeSBrZXkgY29sdW1uIHRvIGJlIGFibGUgdG8gZHJvcCBnZW5lcmF0ZWQgaW52aXNpYmxlIHByaW1hcnkga2V5LgBHZW5lcmF0aW5nIGFuIGludmlzaWJsZSBwcmltYXJ5IGtleSBmb3IgYSB0YWJsZSBjcmVhdGVkIHVzaW5nIENSRUFURSBUQUJMRSAuLi4gU0VMRUNUIC4uLiBpcyBkaXNhbGxvd2VkIHdoZW4gYmlubG9nX2Zvcm1hdD1TVEFURU1FTlQuIEl0IGNhbm5vdCBiZSBndWFyYW50ZWVkIHRoYXQgdGhlIFNFTEVDVCByZXRyaWV2ZXMgcm93cyBpbiB0aGUgc2FtZSBvcmRlciBvbiBzb3VyY2UgYW5kIHJlcGxpY2EuIFRoZXJlZm9yZSwgaXQgY2Fubm90IGJlIGd1YXJhbnRlZWQgdGhhdCB0aGUgdmFsdWUgZ2VuZXJhdGVkIGZvciB0aGUgZ2VuZXJhdGVkIGltcGxpY2l0IHByaW1hcnkga2V5IGNvbHVtbiB3aWxsIGJlIHRoZSBzYW1lIG9uIHNvdXJjZSBhbmQgcmVwbGljYSBmb3IgYWxsIHJvd3MuIFVzZSBiaW5sb2dfZm9ybWF0PVJPVyBvciBNSVhFRCB0byBleGVjdXRlIHRoaXMgc3RhdGVtZW50LgBUaGUgb3B0aW9uIGV4cGlyZV9sb2dzX2RheXMgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBvcHRpb24gYmlubG9nX2V4cGlyZV9sb2dzX3NlY29uZHMuIFRvIHNldCBvbmUsIGZpcnN0IHVuc2V0IHRoZSBvdGhlciBieSBzZXR0aW5nIGl0IHRvIDAuAFJlY3Vyc2l2ZSB0YWJsZSByZWZlcmVuY2UgaW4gRVhDRVBUIG9yIElOVEVSU0VDVCBvcGVyYW5kIGlzIG5vdCBhbGxvd2VkLgBFcnJvciB3aGVuIHRyeWluZyB0byBmZXRjaCBpbmZvcm1hdGlvbiBmcm9tIHNlY3VyaXR5IGNvbnRleHQgb2JqZWN0LCB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRoZSBzZXJ2ZXIuAEVycm9yIGluIGNvbW1hbmQgc2VydmljZSBiYWNrZW5kIGludGVyZmFjZSwgYmVjYXVzZSBvZiA6ICIlcyIAVGhlIFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgY2hhbm5lbCAnJS4xOTJzJyB3b3VsZCBuZWVkIEZJTEUgcHJpdmlsZWdlIHRvIGV4ZWN1dGUgYSBMT0FEIERBVEEgSU5GSUxFIHN0YXRlbWVudCByZXBsaWNhdGVkIGluIHN0YXRlbWVudCBmb3JtYXQuIENvbnNpZGVyIHVzaW5nIGJpbmxvZ19mb3JtYXQ9Uk9XIG9uIHNvdXJjZS4gSWYgdGhlIHJlcGxpY2F0ZWQgZXZlbnRzIGFyZSB0cnVzdGVkLCByZWNvdmVyIGZyb20gdGhlIGZhaWx1cmUgYnkgdGVtcG9yYXJpbHkgZ3JhbnRpbmcgRklMRSB0byB0aGUgUFJJVklMRUdFX0NIRUNLU19VU0VSLgBUaGUgJ1NFVCBHTE9CQUwgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycz0lcycgY29tbWFuZCBlbmNvdW50ZXJlZCBhIGZhaWx1cmUuICVzAFVzaW5nICVzIGFzIHVucXVvdGVkIGlkZW50aWZpZXIgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBxdW90ZXMgb3IgcmVuYW1lIHRoZSBpZGVudGlmaWVyLgBNYXggbnVtYmVyIG9mIGR1cGxpY2F0ZSByb3dzIGluIElOVEVSU0VDVCBBTEwgZXhjZWVkZWQuAFF1ZXJ5IHRocmVhZHMgY291bnQoJXUpIGV4Y2VlZHMgdHJhbnNhY3Rpb24gdGhyZWFkcyBsaW1pdCgldSkgcGVyIGdyb3VwLiBQbGVhc2UgdXNlIHF1ZXJ5IHRocmVhZHMgY291bnQgcGVyIGdyb3VwIHNtYWxsZXIgb3IgZXF1YWwgdG8gbWF4IHRyYW5zYWN0aW9uIHRocmVhZHMgbGltaXQgcGVyIGdyb3VwAEludmFsaWQgdGltZXN0YW1wIGZvcm1hdCBpbiAlcyB1ZGYAU0hBUEVfUFJFRElDVElPTiBVREYgJXMgZ290IGVycm9yIGJlY2F1c2Ugb2YgJXMuAEhlaWdodCBwYXJhbWV0ZXIgbXVzdCBiZSBub24gbmVnYXRpdmUuAFNjYWxpbmcgcGFyYW1ldGVyIG11c3QgYmUgbm9uIG5lZ2F0aXZlLgBab25lIHdpZHRoIHBhcmFtZXRlciBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAxLTYwLgBMYXRpdHVkZSBvZiBvcmlnaW4gbXVzdCBiZSArLTkwIGRlZ3JlZXMsIHNwZWNpZmllZCBpbiB0aGUgU1JTIGFuZ3VsYXIgdW5pdCwgaW4gUG9sYXIgU3RlcmVvZ3JhcGhpYyAodmFyaWFudCBBKSBwcm9qZWN0aW9uIG1ldGhvZCAoRVBTRzo5ODEwKS4AVGhlIGNsaWVudCBpcyB1c2luZyBhIGRlcHJlY2F0ZWQgQ0xJRU5UX05PX1NDSEVNQSBjbGllbnQgb3B0aW9uLiBDTElFTlRfTk9fU0NIRU1BIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgBUYWJsZSAnJS0uMTkycycgaXMgbm90IGVtcHR5LgBUYWJsZSAnJS0uMTkycycgaGFzIG5vIHByaW1hcnkga2V5LgBUYWJsZSAnJS0uMTkycycgaXMgaW4gYSBzaGFyZWQgdGFibGVzcGFjZS4AVGFibGUgJyUtLjE5MnMnIGhhcyBpbmRleGVzIG90aGVyIHRoYW4gcHJpbWFyeSBrZXkuAFtJTiBQUklNQVJZIEtFWSBPUkRFUl0gc3BlY2lmaWVkIGJ1dCBkYXRhIG5vdCBzb3J0ZWQ6IExPQUQgQlVMSyBEQVRBIGludG8gdGFibGUgJyUtLjE5MnMnIGZhaWxlZDogJXMAQnVsayBleGVjdXRvciBlcnJvcjogJXMAQnVsayByZWFkZXIgZmFpbGVkIHRvIGluaXRpYWxpemUgbGliY3VybABCdWxrIHJlYWRlciBnb3QgbGliY3VybCBlcnJvcjogJXMAQnVsayByZWFkZXIgZ290IGVycm9yIHJlc3BvbnNlIGZyb20gc2VydmVyOiAlbGQAQnVsayByZWFkZXIgZ290IGVycm9yIGluIGNvbW11bmljYXRpb24gd2l0aCBzb3VyY2Ugc2VydmVyLCBjaGVjayB0aGUgZXJyb3IgbG9nIGZvciBhZGRpdGlvbmFsIGRldGFpbHMuAEJ1bGsgbG9hZGVyIGZhaWxlZCwgbXlzcWxfbG9hZC0+bG9hZCByZXR1cm5lZCBhbiBlcnJvciwgY2hlY2sgdGhlIGVycm9yIGxvZyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgBDU1YgY29sdW1uIHRvbyBiaWcgZm9yIGxlZnRvdmVyIGJ1ZmZlci4AQnVsayBsb2FkZXIgY29tcG9uZW50IGVycm9yOiAlcwBUaGUgZmlyc3QgZmlsZSBiZWluZyBsb2FkZWQgY29udGFpbmVkIGxlc3MgbGluZXMgdGhhbiB0aGUgaWdub3JlIGNsYXVzZQBNaXNzaW5nIEVOQ0xPU0VEIEJZIGNoYXJhY3RlciBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4gQWRkIE9QVElPTkFMTFkgdG8gdGhlIEVOQ0xPU0VEIEJZIGNsYXVzZSB0byBhbGxvdyB0aGlzIGlucHV0LgBUaGUgbnVtYmVyIG9mIGlucHV0IGNvbHVtbnMgdGhhdCBuZWVkIHRvIGJlIGJ1ZmZlcmVkIGZvciBwYXJzaW5nIGV4Y2VlZGVkIHByZWRlZmluZWQgYnVmZmVyIG1heCBzaXplIGZvciBmaWxlICclcycuAFRoZSBjb2x1bW4gZGF0YSB0aGF0IG5lZWRlZCB0byBiZSBjb3BpZWQgZHVlIHRvIGVzY2FwZWQgY2hhcmFjdGVycyBleGNlZWRlZCB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgY29weSBidWZmZXIgZm9yIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuIERhdGEgZm9yIHNvbWUgY29sdW1ucyBpcyBtaXNzaW5nLgBVbmV4cGVjdGVkIHJvdyB0ZXJtaW5hdG9yIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLiBEYXRhIGZvciBzb21lIGNvbHVtbnMgaXMgbWlzc2luZy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGVuZGluZyBFTkNMT1NFRCBCWSBjaGFyYWN0ZXIgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBOVUxMIGVzY2FwZSAoTikgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuAFVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciBjb2x1bW4gdGVybWluYXRvciBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycgcmVzdWx0aW5nIGluIGluY29tcGxldGUgZXNjYXBlIHNlcXVlbmNlLgBMT0FEIEJVTEsgREFUQSBpbnRvIHRhYmxlICclLS4xOTJzJyBmYWlsZWQ6ICVzAEluY29ycmVjdCAlLS4zMnMgdmFsdWU6ICclLS4xMjhzJyBmb3IgY29sdW1uICclLS4xOTJzJyBhdCByb3cgJWxkIGluIGZpbGUgJyUtLjE5MnMnAE5VTEwgc3VwcGxpZWQgdG8gTk9UIE5VTEwgY29sdW1uICclcycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwBPbiBhIEdyb3VwIFJlcGxpY2F0aW9uIGNoYW5uZWwsIHNldHRpbmcgUkVRVUlSRV9UQUJMRV9QUklNQVJZX0tFWV9DSEVDSyB0byAnR0VORVJBVEUnIGlzIG5vdCBhbGxvd2VkLgBDYW5ub3QgY2hhbmdlIHRoZSAnJXMnIHN5c3RlbSB2YXJpYWJsZSBpbiByZWFkLW9ubHkgbW9kZS4AQ29sdW1uIGNhbid0IGJlIGFkZGVkIG9yIGRyb3BwZWQgd2l0aCBBTEdPUklUSE09SU5TVEFOVCBhcyBlaXRoZXIgbWF4IHBvc3NpYmxlIHJvdyBzaXplIGFscmVhZHkgY3Jvc3NlcyBtYXggcGVybWlzc2libGUgcm93IHNpemUgb3IgbWF5IGNyb3NzIGl0IGFmdGVyIGFkZC4gVHJ5IEFMR09SSVRITT1JTlBMQUNFL0NPUFkuAENvbHVtbiBjYW4ndCBiZSBhZGRlZCB0byAnJXMnIHdpdGggQUxHT1JJVEhNPUlOU1RBTlQgYW55bW9yZS4gUGxlYXNlIHRyeSBBTEdPUklUSE09SU5QTEFDRS9DT1BZLgBGYWlsZWQgdG8gc2V0IHBlcnNpc3RlZCBvcHRpb25zLgBUaGUgdmFsdWUgc3VwcGxpZWQgZm9yICVzIGluIHRoZSBTRVQgbGlzdCBjYW5ub3QgYmUgbnVsbABUaGUgYXNzaWdubWVudCBvZiAlcyBpbiBTRVQgZG9lc24ndCBtYXRjaCBhbnkgb2YgdGhlIHZhcmlhYmxlcyByZWdpc3RlcmVkIGJ5IHRoZSBjb21wb25lbnQocykAJyVzJyBpcyBhIHVzZXIgZGVmaW5lZCBjb2xsYXRpb24uIFVzZXIgZGVmaW5lZCBjb2xsYXRpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgYSBjb21waWxlZCBjb2xsYXRpb24gaW5zdGVhZC4AVXNlci1sZXZlbCBsb2NrIG5hbWUgJyUtLjE5MnMnIHNob3VsZCBub3QgZXhjZWVkICVkIGNoYXJhY3RlcnMuAEltbWVkaWF0ZWx5IHN0YXJ0aW5nIHRoZSB2ZXJzaW9uIGNvbW1lbnQgYWZ0ZXIgdGhlIHZlcnNpb24gbnVtYmVyIGlzIGRlcHJlY2F0ZWQgYW5kIG1heSBjaGFuZ2UgYmVoYXZpb3IgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGluc2VydCBhIHdoaXRlLXNwYWNlIGNoYXJhY3RlciBhZnRlciB0aGUgdmVyc2lvbiBudW1iZXIuAFRoZSBuZXcgcGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0ICcldScgY2hhcmFjdGVycyB0aGF0IGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkIHBhc3N3b3JkLiBJdCBoYXMgb25seSAnJXUnIGNoYXJhY3RlcihzKSBkaWZmZXJlbnQuIEZvciB0aGlzIGNvbXBhcmlzb24sIHVwcGVyY2FzZSBsZXR0ZXJzIGFuZCBsb3dlcmNhc2UgbGV0dGVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBlcXVhbC4AJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gJXMAUGFyc2VyIHNhdzogJXMAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgYm9vdHN0cmFwIChlcnJubzogJWQpAFRyaWdnZXIgZm9yIHRhYmxlICclcycuJyVzJzogaW52YWxpZCAlcyB2YWx1ZSAoJXMpLgBXcm9uZyB0cmVlOiAlcwBFcnJvcjogSW52YWxpZCAlcwBTa2lwIHJlLXBvcHVsYXRpbmcgY29sbGF0aW9ucyBhbmQgY2hhcmFjdGVyIHNldHMgdGFibGVzIGluICVzJXNyZWFkLW9ubHkgbW9kZS4AVXNpbmcgZGF0YSBkaWN0aW9uYXJ5IHdpdGggdmVyc2lvbiAnJWQnLgBJbnN0YWxsZWQgZGF0YSBkaWN0aW9uYXJ5IHdpdGggdmVyc2lvbiAlZABEYXRhIERpY3Rpb25hcnkgdmVyc2lvbiAnJWQnIG5vdCBzdXBwb3J0ZWQuAEZhaWxlZCB0byBzZXQgc3lzbG9nIGZhY2lsaXR5IHRvICIlcyIsIHNldHRpbmcgdG8gIiVzIiAoJWQpIGluc3RlYWQuAENhbm5vdCBvcGVuICVzOyBjaGVjayBwcml2aWxlZ2VzLCBvciByZW1vdmUgc3lzZXZlbnRsb2cgZnJvbSAtLWxvZy1lcnJvci1zZXJ2aWNlcyEAIGVpdGhlciByZXN0YXJ0IHRoZSBxdWVyeSBsb2dnaW5nIGJ5IHVzaW5nICJTRVQgR0xPQkFMIFNMT1dfUVVFUllfTE9HPU9OIiBvcgAgZWl0aGVyIHJlc3RhcnQgdGhlIHF1ZXJ5IGxvZ2dpbmcgYnkgdXNpbmcgIlNFVCBHTE9CQUwgR0VORVJBTF9MT0c9T04iIG9yAEZhaWxlZCB0byB3cml0ZSB0byAlczogJXMAV2hpbGUgaW5pdGlhbGl6aW5nIGR1bXAgdGhyZWFkIGZvciByZXBsaWNhIHdpdGggJXMgPCVzPiwgZm91bmQgYSB6b21iaWUgZHVtcCB0aHJlYWQgd2l0aCB0aGUgc2FtZSAlcy4gU291cmNlIGlzIGtpbGxpbmcgdGhlIHpvbWJpZSBkdW1wIHRocmVhZCgldSkuAEd0aWQgdGFibGUgaXMgbm90IHJlYWR5IHRvIGJlIHVzZWQuIFRhYmxlICclcy4lcycgY2Fubm90IGJlIG9wZW5lZC4AU3lzdGVtIHNjaGVtYSBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuAEVycm9yIGluIGluaXRpYWxpemluZyBkaWN0aW9uYXJ5LCB1cGdyYWRlIHdpbGwgZG8gYSBjbGVhbnVwIGFuZCBleGl0AFZpZXcgJyVzJy4nJXMnOiB1bmtub3duIGNoYXJzZXQgbmFtZSBhbmQvb3IgY29sbGF0aW9uIG5hbWUgKGNsaWVudDogJyVzJzsgY29ubmVjdGlvbjogJyVzJykuAEVycm9yIGluIGFsbG9jYXRpbmcgbWVtb3J5IGZvciBjaGFyYWN0ZXIgc2V0IG5hbWUgZm9yIHZpZXcgJXMuJXMuAERhdGEgRGljdGlvbmFyeSBpbml0aWFsaXphdGlvbiBmYWlsZWQuAEZhaWxlZCB0byB1cGRhdGUgcGx1Z2luIG1ldGFkYXRhIGluIGRpY3Rpb25hcnkgdGFibGVzLgBGYWlsZWQgdG8gUG9wdWxhdGUgREQgdGFibGVzLgBFcnJvciBpbiBDcmVhdGluZyBWaWV3ICVzLiVzAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIENhbm5vdCBmaW5kIHRoZSBtZXRhIGRhdGEgZm9yIGRhdGEgZGljdGlvbmFyeSB0YWJsZSAnJXMnLgBEaWN0aW9uYXJ5IGNhY2hlIG5vdCBlbXB0eSBhdCBzaHV0ZG93bi4ARGljdGlvbmFyeSBvYmplY3RzIHVzZWQgYnV0IG5vdCByZWxlYXNlZC4ARGljdGlvbmFyeSBvYmplY3RzIGxlZnQgaW4gZGVmYXVsdCByZWxlYXNlci4ARGljdGlvbmFyeSBvYmplY3QgYXV0byByZWxlYXNlciBub3QgZGVsZXRlZABFcnJvcjogVW5hYmxlIHRvIGNyZWF0ZSBwcmltYXJ5IG9iamVjdCBrZXkARXJyb3I6IFVuYWJsZSB0byBjcmVhdGUgb2JqZWN0IGtleQBDYW4ndCBjcmVhdGUgaGFuZGxlX21hbmFnZXIgdGhyZWFkIChlcnJubz0gJWQpAEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIHJlbGF5IGxvZydzIHJlcG9zaXRvcnkgYmVjYXVzZSB0aGVyZSBhcmUgd29ya2VycycgcmVwb3NpdG9yaWVzIHdpdGggZ2Fwcy4gUGxlYXNlLCBmaXggdGhlIGdhcHMgZmlyc3QgYmVmb3JlIGRvaW5nIHN1Y2ggY2hhbmdlLgBvcHRpb24gJ2VuZm9yY2UtZ3RpZC1jb25zaXN0ZW5jeSc6IHZhbHVlICclcycgd2FzIG5vdCByZWNvZ25pemVkLiBTZXR0aW5nIGVuZm9yY2UtZ3RpZC1jb25zaXN0ZW5jeSB0byBPRkYuAENoYW5nZWQgRU5GT1JDRV9HVElEX0NPTlNJU1RFTkNZIGZyb20gJXMgdG8gJXMuAENoYW5nZWQgR1RJRF9NT0RFIGZyb20gJXMgdG8gJXMuACVzIGlzIHNldCB0byBhIGRpc2FibGVkIHN0b3JhZ2UgZW5naW5lICVzLgBEZWJ1ZyBzeW5jIHBvaW50cyBoaXQ6ICAgICAgICAgICAgICAgICAgICUyMnMARGVidWcgc3luYyBwb2ludHMgZXhlY3V0ZWQ6ICAgICAgICAgICAgICAlMjJzAERlYnVnIHN5bmMgcG9pbnRzIG1heCBhY3RpdmUgcGVyIHRocmVhZDogJTIycwBEZWJ1ZyBTeW5jIEZhY2lsaXR5IGRpc2FibGVkIGR1ZSB0byBsYWNrIG9mIG1lbW9yeS4AQ2FuJ3QgaW5pdCB0YyBsb2cARXZlbnQgU2NoZWR1bGVyOiBDYW4ndCBpbml0aWFsaXplIHRoZSBleGVjdXRpb24gcXVldWUARXZlbnQgU2NoZWR1bGVyOiBQdXJnaW5nIHRoZSBxdWV1ZS4gJXUgZXZlbnRzAEV2ZW50IFNjaGVkdWxlcjogTGFzdCBleGVjdXRpb24gb2YgJXMuJXMuICVzACUqcwBFdmVudCBTY2hlZHVsZXI6IFslc10uWyVzLiVzXSBldmVudCBleGVjdXRpb24gZmFpbGVkLgBFdmVudCBTY2hlZHVsZXI6IENhbm5vdCBpbml0aWFsaXplIHRoZSBzY2hlZHVsZXIgdGhyZWFkAEV2ZW50IFNjaGVkdWxlcjogU3RvcHBlZABFdmVudCBzY2hlZHVsZXI6IEZhaWxlZCB0byBzdGFydCBzY2hlZHVsZXIsIENhbiBub3QgY3JlYXRlIHRocmVhZCBmb3IgZXZlbnQgc2NoZWR1bGVyIChlcnJubz0lZCkARXZlbnQgU2NoZWR1bGVyOiBXYWl0aW5nIGZvciB0aGUgc2NoZWR1bGVyIHRocmVhZCB0byByZXBseQBFdmVudCBTY2hlZHVsZXI6IHNjaGVkdWxlciB0aHJlYWQgc3RhcnRlZCB3aXRoIGlkICV1AEV2ZW50IFNjaGVkdWxlcjogU2VyaW91cyBlcnJvciBkdXJpbmcgZ2V0dGluZyBuZXh0IGV2ZW50IHRvIGV4ZWN1dGUuIFN0b3BwaW5nAEV2ZW50X3NjaGVkdWxlcjo6ZXhlY3V0ZV90b3A6IENhbiBub3QgY3JlYXRlIGV2ZW50IHdvcmtlciB0aHJlYWQgKGVycm5vPSVkKS4gU3RvcHBpbmcgZXZlbnQgc2NoZWR1bGVyAEV2ZW50IFNjaGVkdWxlcjogS2lsbGluZyB0aGUgc2NoZWR1bGVyIHRocmVhZCwgdGhyZWFkIGlkICV1AElQIGFkZHJlc3MgJyVzJyBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICVzAEhvc3QgbmFtZSAnJXMnIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogJXMASVAgYWRkcmVzcyAnJXMnIGhhcyBiZWVuIHJlc29sdmVkIHRvIHRoZSBob3N0IG5hbWUgJyVzJywgd2hpY2ggcmVzZW1ibGVzIElQdjQtYWRkcmVzcyBpdHNlbGYuAEhvc3RuYW1lICclcycgZG9lcyBub3QgcmVzb2x2ZSB0byAnJXMnLgBIb3N0bmFtZSAnJXMnIGhhcyB0aGUgZm9sbG93aW5nIElQIGFkZHJlc3NlczoAIC0gJXMARGVmaW5lciBjbGF1c2UgaXMgbWlzc2luZyBpbiBUcmlnZ2VyIG9mIFRhYmxlICVzLiBSZWJ1aWxkIFRyaWdnZXIgdG8gZml4IGRlZmluZXIuAENsaWVudCBjaGFyYWN0ZXIgc2V0IGlzIG1pc3NpbmcgZm9yIHRyaWdnZXIgb2YgdGFibGUgJXMuIFVzaW5nIGRlZmF1bHQgY2hhcmFjdGVyIHNldC4ARXJyb3IgaW4gcGFyc2luZyB2aWV3ICVzLiVzAEZhaWxlZCB0byBib290c3RyYXAgY29tcG9uZW50cyBpbmZyYXN0cnVjdHVyZS4ARmFpbGVkIHRvIHNodXRkb3duIGNvbXBvbmVudHMgaW5mcmFzdHJ1Y3R1cmUuAEZhaWxlZCB0byBib290c3RyYXAgcGVyc2lzdGVudCBjb21wb25lbnRzIGxvYWRlci4AR2l2aW5nICVkIGNsaWVudCB0aHJlYWRzIGEgY2hhbmNlIHRvIGRpZSBncmFjZWZ1bGx5AENBIGNlcnRpZmljYXRlICVzIGlzIHNlbGYgc2lnbmVkLgBGYWlsZWQgdG8gc2V0IHVwIFNTTCBiZWNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgU1NMIGxpYnJhcnkgZXJyb3I6ICVzAEZhaWxlZCB0byBnZW5lcmF0ZSBhIHNlcnZlciBVVUlEIGJlY2F1c2UgaXQgaXMgZmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBUSEQuAFNhbHRpbmcgdXVpZCBnZW5lcmF0b3IgdmFyaWFibGVzLCBjdXJyZW50X3BpZDogJWx1LCBzZXJ2ZXJfc3RhcnRfdGltZTogJWx1LCBieXRlc19zZW50OiAlbGx1LCAAR2VuZXJhdGVkIHV1aWQ6ICclcycsIHNlcnZlcl9zdGFydF90aW1lOiAlbHUsIGJ5dGVzX3NlbnQ6ICVsbHUAVGhlIHNlcnZlcl91dWlkIHN0b3JlZCBpbiBhdXRvLmNuZiBmaWxlIGlzIG5vdCBhIHZhbGlkIFVVSUQuAEdhcmJhZ2UgY2hhcmFjdGVycyBmb3VuZCBhdCB0aGUgZW5kIG9mIHRoZSBzZXJ2ZXJfdXVpZCB2YWx1ZSBpbiBhdXRvLmNuZiBmaWxlLiBJdCBzaG91bGQgYmUgb2YgbGVuZ3RoICclZCcgKFVVSURfTEVOR1RIKS4gQ2xlYXIgaXQgYW5kIHJlc3RhcnQgdGhlIHNlcnZlci4gAE5vIGV4aXN0aW5nIFVVSUQgaGFzIGJlZW4gZm91bmQsIHNvIHdlIGFzc3VtZSB0aGF0IHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhhdCB0aGlzIHNlcnZlciBoYXMgYmVlbiBzdGFydGVkLiBHZW5lcmF0aW5nIGEgbmV3IFVVSUQ6ICVzLgBJbml0aWFsaXphdGlvbiBvZiB0aGUgc2VydmVyJ3MgVVVJRCBmYWlsZWQgYmVjYXVzZSBpdCBjb3VsZCBub3QgYmUgcmVhZCBmcm9tIHRoZSBhdXRvLmNuZiBmaWxlLiBJZiB0aGlzIGlzIGEgbmV3IHNlcnZlciwgdGhlIGluaXRpYWxpemF0aW9uIGZhaWxlZCBiZWNhdXNlIGl0IHdhcyBub3QgcG9zc2libGUgdG8gZ2VuZXJhdGUgYSBuZXcgVVVJRC4AVW5rbm93bi91bnN1cHBvcnRlZCBzdG9yYWdlIGVuZ2luZTogJXMAVW5zdXBwb3J0ZWQgdmFsdWUgMCBmb3Igc2VjdXJlLWF1dGgASW52YWxpZCBpbnN0cnVtZW50IG5hbWUgb3IgdmFsdWUgZm9yIHBlcmZvcm1hbmNlX3NjaGVtYV9pbnN0cnVtZW50ICclcycAVGhlIHVzZSBvZiBJbm5vREIgaXMgbWFuZGF0b3J5IHNpbmNlIE15U1FMIDUuNy4gVGhlIGZvcm1lciBvcHRpb25zIGxpa2UgJy0taW5ub2RiPTAvMS9PRkYvT04nIG9yICctLXNraXAtaW5ub2RiJyBhcmUgaWdub3JlZC4AaWdub3JlLWJ1aWx0aW4taW5ub2RiIGlzIGlnbm9yZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgcmVsZWFzZXMuAEludmFsaWQgb2xkX3Bhc3N3b3JkcyBtb2RlOiAxLiBWYWxpZCB2YWx1ZXMgYXJlIDIgYW5kIDAALS12ZXJib3NlIGlzIGZvciB1c2Ugd2l0aCAtLWhlbHA7IGRpZCB5b3UgbWVhbiAtLWxvZy1lcnJvci12ZXJib3NpdHk/AG9wdGlvbnMgLS1sb2ctc2xvdy1hZG1pbi1zdGF0ZW1lbnRzLCAtLWxvZy1xdWVyaWVzLW5vdC11c2luZy1pbmRleGVzIGFuZCAtLWxvZy1zbG93LXJlcGxpY2Etc3RhdGVtZW50cyBoYXZlIG5vIGVmZmVjdCBpZiAtLXNsb3ctcXVlcnktbG9nIGlzIG5vdCBzZXQAbmV0X2J1ZmZlcl9sZW5ndGggKCVsdSkgaXMgc2V0IHRvIGJlIGxhcmdlciB0aGFuIG1heF9hbGxvd2VkX3BhY2tldCAoJWx1KS4gUGxlYXNlIHJlY3RpZnkuAFRJTUVTVEFNUCB3aXRoIGltcGxpY2l0IERFRkFVTFQgdmFsdWUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAtLWV4cGxpY2l0X2RlZmF1bHRzX2Zvcl90aW1lc3RhbXAgc2VydmVyIG9wdGlvbiAoc2VlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscykuAEludmFsaWQgZnQtYm9vbGVhbi1zeW50YXggc3RyaW5nOiAlcwAnTk9fQVVUT19DUkVBVEVfVVNFUicgc3FsIG1vZGUgd2FzIG5vdCBzZXQuAENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGNvbm5lY3Rpb24gaGFuZGxpbmcAQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhyZWFkIGhhbmRsaW5nAENhbid0IGNyZWF0ZSB0ZXN0IGZpbGUgJXMAQ2FuJ3Qgc3RhcnQgc2VydmVyOiBjYW4ndCBjcmVhdGUgUElEIGZpbGU6ICVzAFVuYWJsZSB0byBkZWxldGUgcGlkIGZpbGU6ICVzAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIHNodXRkb3duIHJlcXVlc3RzIChlcnJubz0gJWQpAEZhaWxlZCB0byBhY2Nlc3MgZGlyZWN0b3J5IGZvciAtLXNlY3VyZS1maWxlLXByaXYuIFBsZWFzZSBtYWtlIHN1cmUgdGhhdCBkaXJlY3RvcnkgZXhpc3RzIGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IE15U1FMIFNlcnZlci4gU3VwcGxpZWQgdmFsdWUgOiAlcwBJZ25vcmluZyAtLXNlY3VyZS1maWxlLXByaXYgdmFsdWUgYXMgc2VydmVyIGlzIHJ1bm5pbmcgd2l0aCAtLWluaXRpYWxpemUoLWluc2VjdXJlKS4ASW5zZWN1cmUgY29uZmlndXJhdGlvbiBmb3IgLS1zZWN1cmUtZmlsZS1wcml2OiBDdXJyZW50IHZhbHVlIGRvZXMgbm90IHJlc3RyaWN0IGxvY2F0aW9uIG9mIGdlbmVyYXRlZCBmaWxlcy4gQ29uc2lkZXIgc2V0dGluZyBpdCB0byBhIHZhbGlkLCBub24tZW1wdHkgcGF0aC4ALS1zZWN1cmUtZmlsZS1wcml2IGlzIHNldCB0byBOVUxMLiBPcGVyYXRpb25zIHJlbGF0ZWQgdG8gaW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgZGF0YSBhcmUgZGlzYWJsZWQASW5zZWN1cmUgY29uZmlndXJhdGlvbiBmb3IgLS1zZWN1cmUtZmlsZS1wcml2OiAlcyBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggLS1zZWN1cmUtZmlsZS1wcml2LiBDb25zaWRlciBjaG9vc2luZyBhIGRpZmZlcmVudCBkaXJlY3RvcnkuAEZhaWxlZCB0byBnZXQgc3RhdCBmb3IgZGlyZWN0b3J5IHBvaW50ZWQgb3V0IGJ5IC0tc2VjdXJlLWZpbGUtcHJpdgBJbnNlY3VyZSBjb25maWd1cmF0aW9uIGZvciAtLXNlY3VyZS1maWxlLXByaXY6IExvY2F0aW9uIGlzIGFjY2Vzc2libGUgdG8gYWxsIE9TIHVzZXJzLiBDb25zaWRlciBjaG9vc2luZyBhIGRpZmZlcmVudCBkaXJlY3RvcnkuAFZhbHVlIGZvciAtLXNlY3VyZS1maWxlLXByaXYgaXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBsaW1pdCBvZiAlZABDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBuYW1lZCBwaXBlcyAoZXJybm89ICVkKQBDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBUQ1AvSVAgKGVycm5vPSAlZCkAQ2FuJ3QgY3JlYXRlIHRocmVhZCB0byBoYW5kbGUgc2hhcmVkIG1lbW9yeSAoZXJybm89ICVkKQBDYW4ndCBjcmVhdGUgaW50ZXJydXB0LXRocmVhZCAoZXJyb3IgJWQsIGVycm5vOiAlZCkAV29ybGQtd3JpdGFibGUgY29uZmlnIGZpbGUgJyVzJyBoYXMgYmVlbiByZW1vdmVkLgBzZXRybGltaXQgY291bGQgbm90IGNoYW5nZSB0aGUgc2l6ZSBvZiBjb3JlIGZpbGVzIHRvICdpbmZpbml0eSc7ICBXZSBtYXkgbm90IGJlIGFibGUgdG8gZ2VuZXJhdGUgYSBjb3JlIGZpbGUgb24gc2lnbmFscwBXcm9uZyBkYXRlL3RpbWUgZm9ybWF0IHNwZWNpZmllcjogJXMAQ291bGQgbm90IGFsbG9jYXRlIHJlcGxpY2F0aW9uIGFuZCBiaW5sb2cgZmlsdGVyczogJXMAQ2Fubm90IGFsbG9jYXRlIHRoZSBrZXljYWNoZQBDdXJyZW50IHRpbWUgaGFzIGdvdCBwYXN0IHllYXIgMjAzOC4gVmFsaWRhdGluZyBjdXJyZW50IHRpbWUgd2l0aCAlZCBpdGVyYXRpb25zIGJlZm9yZSBpbml0aWF0aW5nIHRoZSBub3JtYWwgc2VydmVyIHNodXRkb3duIHByb2Nlc3MuAEl0ZXJhdGlvbiAlZDogT2J0YWluZWQgdmFsaWQgY3VycmVudCB0aW1lIGZyb20gc3lzdGVtAEl0ZXJhdGlvbiAlZDogQ3VycmVudCB0aW1lIG9idGFpbmVkIGZyb20gc3lzdGVtIGlzIGdyZWF0ZXIgdGhhbiAyMDM4AFRoaXMgTXlTUUwgc2VydmVyIGRvZXNuJ3Qgc3VwcG9ydCBkYXRlcyBsYXRlciB0aGVuIDIwMzgAJXMgKG15c3FsZCAlcykgc3RhcnRpbmcgYXMgcHJvY2VzcyAlbHUAU2h1dHRpbmcgZG93biByZXBsaWNhIHRocmVhZHMARm9yY2VmdWxseSBkaXNjb25uZWN0aW5nICVkIHJlbWFpbmluZyBjbGllbnRzAEFib3J0aW5nAEJpbmxvZyBlbmQAZ2V0aG9zdG5hbWUgZmFpbGVkLCB1c2luZyAnJXMnIGFzIGhvc3RuYW1lAE9uZSBjYW4gb25seSB1c2UgdGhlIC0tdXNlciBzd2l0Y2ggaWYgcnVubmluZyBhcyByb290AEZhdGFsIGVycm9yOiBQbGVhc2UgcmVhZCAiU2VjdXJpdHkiIHNlY3Rpb24gb2YgdGhlIG1hbnVhbCB0byBmaW5kIG91dCBob3cgdG8gcnVuIG15c3FsZCBhcyByb290IQBGYXRhbCBlcnJvcjogQ2FuJ3QgY2hhbmdlIHRvIHJ1biBhcyB1c2VyICclcycgOyAgUGxlYXNlIGNoZWNrIHRoYXQgdGhlIHVzZXIgZXhpc3RzIQBTZXJ2ZXIgaXMgc3RhcnRlZCB3aXRoIC0tcmVxdWlyZS1zZWN1cmUtdHJhbnNwb3J0PU9OIGJ1dCBubyBzZWN1cmUgdHJhbnNwb3J0cyAoU1NMIG9yIFNoYXJlZCBNZW1vcnkpIGFyZSBjb25maWd1cmVkLgBzZXRnaWQ6ICVzAHNldHVpZDogJXMAc2V0cmVnaWQ6ICVzAHNldHJldWlkOiAlcwBjaHJvb3Q6ICVzAFRDUC9JUCwgLS1zaGFyZWQtbWVtb3J5LCBvciAtLW5hbWVkLXBpcGUgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgb24gTlQgT1MAQ1RSTC1DIGlnbm9yZWQgZHVyaW5nIHN0YXJ0dXAAJyVzJyBjYW4gbm90IGJlIHVzZWQgYXMgY2xpZW50IGNoYXJhY3RlciBzZXQuICclcycgd2lsbCBiZSB1c2VkIGFzIGRlZmF1bHQgY2xpZW50IGNoYXJhY3RlciBzZXQuAE91dCBvZiBtZW1vcnkARmFpbGVkIHRvIGxvY2sgbWVtb3J5LiBFcnJubzogJWQAbXlfaW5pdCgpIGZhaWxlZC4ARXhlY3V0aW9uIG9mIGluaXRfZmlsZSAnJXMnIHN0YXJ0ZWQuAEV4ZWN1dGlvbiBvZiBpbml0X2ZpbGUgJyVzJyBlbmRlZC4AQ2hhbmdlZCBsaW1pdHM6IG1heF9vcGVuX2ZpbGVzOiAlbHUgKHJlcXVlc3RlZCAlbHUpAENvdWxkIG5vdCBpbmNyZWFzZSBudW1iZXIgb2YgbWF4X29wZW5fZmlsZXMgdG8gbW9yZSB0aGFuICVsdSAocmVxdWVzdDogJWx1KQBDaGFuZ2VkIGxpbWl0czogbWF4X2Nvbm5lY3Rpb25zOiAlbHUgKHJlcXVlc3RlZCAlbHUpAENoYW5nZWQgbGltaXRzOiB0YWJsZV9vcGVuX2NhY2hlOiAlbHUgKHJlcXVlc3RlZCAlbHUpAElnbm9yaW5nIHVzZXIgY2hhbmdlIHRvICclcycgYmVjYXVzZSB0aGUgdXNlciB3YXMgc2V0IHRvICclcycgZWFybGllciBvbiB0aGUgY29tbWFuZCBsaW5lAENvdWxkIG5vdCBhZGQgZG8gdGFibGUgcnVsZSAnJXMnIQBDb3VsZCBub3QgYWRkIGlnbm9yZSB0YWJsZSBydWxlICclcychAFRoZSB2YXJpYWJsZSBzZXNzaW9uX3RyYWNrX3N5c3RlbV92YXJpYWJsZXMgZWl0aGVyIGhhcyBkdXBsaWNhdGUgdmFsdWVzIG9yIGludmFsaWQgdmFsdWVzLgBUb28gbWFueSBhcmd1bWVudHMgKGZpcnN0IGV4dHJhIGlzICclcycpLgBVc2UgLS12ZXJib3NlIC0taGVscCB0byBnZXQgYSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zIQBVbmFibGUgdG8gcmVhZCBlcnJtc2cuc3lzIGZpbGUAQ2FuJ3QgaW5pdCBkYXRhYmFzZXMAVGhlcmUgd2VyZSBvdGhlciB2YWx1ZXMgc3BlY2lmaWVkIHRvIGxvZy1vdXRwdXQgYmVzaWRlcyBOT05FLiBEaXNhYmxpbmcgc2xvdyBhbmQgZ2VuZXJhbCBsb2dzIGFueXdheS4AQ1NWIGVuZ2luZSBpcyBub3QgcHJlc2VudCwgZmFsbGluZyBiYWNrIHRvIHRoZSBsb2cgZmlsZXMAQmFkIHN5bnRheCBpbiByZXBsaWNhdGUtcmV3cml0ZS1kYiAtIG1pc3NpbmcgJy0+JyEAQmFkIHN5bnRheCBpbiByZXBsaWNhdGUtcmV3cml0ZS1kYiAtIGVtcHR5IEZST00gZGIhAEJhZCBzeW50YXggaW4gcmVwbGljYXRlLXJld3JpdGUtZGIgLSBlbXB0eSBUTyBkYiEAQWx0aG91Z2ggYSBwYXRoIHdhcyBzcGVjaWZpZWQgZm9yIHRoZSAlcywgbG9nIHRhYmxlcyBhcmUgdXNlZC4gVG8gZW5hYmxlIGxvZ2dpbmcgdG8gZmlsZXMgdXNlIHRoZSAtLWxvZy1vdXRwdXQ9ZmlsZSBvcHRpb24uAEludmFsaWQgdmFsdWUgZm9yICVzOiAlcwBUaGUgc2VydmVyIG9wdGlvbiAnbG93ZXJfY2FzZV90YWJsZV9uYW1lcycgaXMgY29uZmlndXJlZCB0byB1c2UgY2FzZSBzZW5zaXRpdmUgdGFibGUgbmFtZXMgYnV0IHRoZSBkYXRhIGRpcmVjdG9yeSBpcyBvbiBhIGNhc2UtaW5zZW5zaXRpdmUgZmlsZSBzeXN0ZW0gd2hpY2ggaXMgYW4gdW5zdXBwb3J0ZWQgY29tYmluYXRpb24uIFBsZWFzZSBjb25zaWRlciBlaXRoZXIgdXNpbmcgYSBjYXNlIHNlbnNpdGl2ZSBmaWxlIHN5c3RlbSBmb3IgeW91ciBkYXRhIGRpcmVjdG9yeSBvciBzd2l0Y2hpbmcgdG8gYSBjYXNlLWluc2Vuc2l0aXZlIHRhYmxlIG5hbWUgbW9kZS4AU2V0dGluZyBsb3dlcl9jYXNlX3RhYmxlX25hbWVzPTIgYmVjYXVzZSBmaWxlIHN5c3RlbSBmb3IgJXMgaXMgY2FzZSBpbnNlbnNpdGl2ZQBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIHdhcyBzZXQgdG8gMiwgZXZlbiB0aG91Z2ggeW91ciB0aGUgZmlsZSBzeXN0ZW0gJyVzJyBpcyBjYXNlIHNlbnNpdGl2ZS4gIE5vdyBzZXR0aW5nIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgdG8gMCB0byBhdm9pZCBmdXR1cmUgcHJvYmxlbXMuAFlvdSBuZWVkIHRvIHVzZSAtLWxvZy1iaW4gdG8gbWFrZSAlcyB3b3JrLgBQYXRoICclcycgaXMgYSBkaXJlY3RvcnkgbmFtZSwgcGxlYXNlIHNwZWNpZnkgYSBmaWxlIG5hbWUgZm9yICVzIG9wdGlvbgBObyBhcmd1bWVudCB3YXMgcHJvdmlkZWQgdG8gLS1sb2ctYmluLCBhbmQgLS1sb2ctYmluLWluZGV4IHdhcyBub3QgdXNlZDsgc28gcmVwbGljYXRpb24gbWF5IGJyZWFrIHdoZW4gdGhpcyBNeVNRTCBzZXJ2ZXIgYWN0cyBhcyBhIHNvdXJjZSBhbmQgaGFzIGhpcyBob3N0bmFtZSBjaGFuZ2VkISEgUGxlYXNlIHVzZSAnLS1sb2ctYmluPSVzJyB0byBhdm9pZCB0aGlzIHByb2JsZW0uAFlvdSBoYXZlIGVuYWJsZWQgdGhlIGJpbmFyeSBsb2csIGJ1dCB5b3UgaGF2ZW4ndCBwcm92aWRlZCB0aGUgbWFuZGF0b3J5IHNlcnZlci1pZC4gUGxlYXNlIHJlZmVyIHRvIHRoZSBwcm9wZXIgc2VydmVyIHN0YXJ0LXVwIHBhcmFtZXRlcnMgZG9jdW1lbnRhdGlvbgBVbmFibGUgdG8gY3JlYXRlIHJlcGxpY2F0aW9uIHBhdGggbmFtZXM6IG91dCBvZiBtZW1vcnkgb3IgcGF0aCBuYW1lcyB0b28gbG9uZyAocGF0aCBuYW1lIGV4Y2VlZHMgJWQgb3IgZmlsZSBuYW1lIGV4Y2VlZHMgJWQpLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBHVElEIHN0cnVjdHVyZXMuAEZhaWxlZCB0byBpbml0aWFsaXplIGVhcmx5IHBsdWdpbnMuAEZhaWxlZCB0byBpbml0aWFsaXplIGJ1aWx0aW4gcGx1Z2lucy4ARmFpbGVkIHRvIGluaXRpYWxpemUgZHluYW1pYyBwbHVnaW5zLgBQZXJmb3JtYW5jZSBzY2hlbWEgZGlzYWJsZWQgKHJlYXNvbjogaW5pdCBmYWlsZWQpLgBBc2tlZCBmb3IgJWx1IHRocmVhZCBzdGFjaywgYnV0IGdvdCAlbGQAZmFpbGVkIHRvIHNldCBkYXRhZGlyIHRvICVzAENhbid0IHJlYWQgZGF0YSBkaXJlY3RvcnkncyBzdGF0cyAoJWQpOiAlcy4gQXNzdW1pbmcgdGhhdCBpdCdzIG5vdCBvd25lZCBieSB0aGUgc2FtZSB1c2VyL2dyb3VwAENhbid0IGNoYW5nZSBkYXRhIGRpcmVjdG9yeSBvd25lciB0byAlcwBTZXR0aW5nIHBlcnNpc3RlbnQgb3B0aW9ucyBmYWlsZWQuAEZhaWxlZCB0byBzYXZlIHRoZSBzZXQgb2YgR2xvYmFsIFRyYW5zYWN0aW9uIElkZW50aWZpZXJzIG9mIHRoZSBsYXN0IGJpbmFyeSBsb2cgaW50byB0aGUgbXlzcWwuZ3RpZF9leGVjdXRlZCB0YWJsZSB3aGlsZSB0aGUgc2VydmVyIHdhcyBzaHV0dGluZyBkb3duLiBUaGUgbmV4dCBzZXJ2ZXIgcmVzdGFydCB3aWxsIG1ha2UgYW5vdGhlciBhdHRlbXB0IHRvIHNhdmUgR2xvYmFsIFRyYW5zYWN0aW9uIElkZW50aWZpZXJzIGludG8gdGhlIHRhYmxlLgBDYW4ndCBzdGFydCBzZXJ2ZXI6IEludmFsaWQgdmFsdWUgZm9yIC0tZGVmYXVsdC1hdXRoZW50aWNhdGlvbi1wbHVnaW4AQ291bGQgbm90IGpvaW4gJXN0aHJlYWQuIGVycm9yOiVkAEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGJ1aWxkaW5nIGRvX3RhYmxlIGFuZCBpZ25vcmVfdGFibGUgcnVsZXMgdG8gaGFzaGVzIGZvciBnbG9iYWwgcmVwbGljYXRpb24gZmlsdGVyLgBFcnJvciBvcGVuaW5nIENBIGNlcnRpZmljYXRlIGZpbGUARXJyb3IgYWNjZXNzaW5nIGRpcmVjdG9yeSBwb2ludGVkIGJ5IC0tc3NsLWNhcGF0aABGb3VuZCAlcywgJXMgYW5kICVzIGluIGRhdGEgZGlyZWN0b3J5LiBUcnlpbmcgdG8gZW5hYmxlIFNTTCBzdXBwb3J0IHVzaW5nIHRoZW0uAEZhaWxlZCB0byBjcmVhdGUgJXMoZmlsZTogJyVzJywgZXJybm8gJWQpAEZhaWxlZCB0byBpbml0aWFsaXplIHRpbWVyIGNvbXBvbmVudCAoZXJybm8gJWQpLgBzZXJ2ZXItaWQgY29uZmlndXJlZCBpcyB0b28gbGFyZ2UgdG8gcmVwcmVzZW50IHdpdGggc2VydmVyLWlkLWJpdHMgY29uZmlndXJlZC4ARGVmYXVsdCVzIHN0b3JhZ2UgZW5naW5lICglcykgaXMgbm90IGF2YWlsYWJsZQBDb3VsZCBub3Qgb3BlbiBmaWxlICclcycgZm9yIGVycm9yIGxvZ2dpbmclcyVzAEludmFsaWQgbG9nIGZpbGUgbmFtZSBhZnRlciBleHBhbmRpbmcgc3ltbGlua3M6ICclcycAdXNpbmcgLS1yZXBsaWNhdGUtc2FtZS1zZXJ2ZXItaWQgaW4gY29uanVuY3Rpb24gd2l0aCAtLWxvZy1yZXBsaWNhLXVwZGF0ZXMgaXMgaW1wb3NzaWJsZSwgaXQgd291bGQgbGVhZCB0byBpbmZpbml0ZSBsb29wcyBpbiB0aGlzIHNlcnZlci4AdXNpbmcgLS1yZXBsaWNhdGUtc2FtZS1zZXJ2ZXItaWQgaW4gY29uanVuY3Rpb24gd2l0aCAtLWxvZy1yZXBsaWNhLXVwZGF0ZXMgd291bGQgbGVhZCB0byBpbmZpbml0ZSBsb29wcyBpbiB0aGlzIHNlcnZlci4gSG93ZXZlciB0aGlzIHdpbGwgYmUgaWdub3JlZCBhcyB0aGUgLS1sb2ctYmluIG9wdGlvbiBpcyBub3QgZGVmaW5lZCBvciB5b3VyIHNlcnZlciBpcyBydW5uaW5nIHdpdGggZ2xvYmFsIHRyYW5zYWN0aW9uIGlkZW50aWVycyBlbmFibGVkLgBOREIgOiBUYWJsZXMgbm90IGF2YWlsYWJsZSBhZnRlciAlbHUgc2Vjb25kcy4gQ29uc2lkZXIgaW5jcmVhc2luZyAtLW5kYi13YWl0LXNldHVwIHZhbHVlACVzAFVuYWJsZSB0byBzdGFydCBzZXJ2ZXIuIFRoZSBkYXRhIGRpY3Rpb25hcnkgdGFibGVzcGFjZSAnJXMnIGRvZXMgbm90IGV4aXN0LgBDb25uZWN0aW9uIGNvbGxhdGlvbiBpcyBtaXNzaW5nIGZvciB0cmlnZ2VyIG9mIHRhYmxlICVzLiBVc2luZyBkZWZhdWx0IGNvbm5lY3Rpb24gY29sbGF0aW9uLgBEYXRhYmFzZSBjb2xsYXRpb24gaXMgbWlzc2luZyBmb3IgdHJpZ2dlciBvZiB0YWJsZSAlcy4gVXNpbmcgRGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgBFcnJvciBpbiBNZW1vcnkgYWxsb2NhdGlvbiBmb3IgRGVmaW5lciAlcyBmb3IgVHJpZ2dlci4ARXJyb3IgaW4gcmVhZGluZyAlcy5UUkcgZmlsZS4ARXJyb3IgaW4gcGFyc2luZyBUcmlnZ2VycyBmcm9tICVzLlRSRyBmaWxlLgBFcnJvciBpbiBjcmVhdGluZyBERCBlbnRyeSBmb3IgVHJpZ2dlciAlcy4lcwBSZXNvbHZpbmcgZGVwZW5kZW5jeSBmb3IgdGhlIHZpZXcgJyVzLiVzJyBmYWlsZWQuIFZpZXcgaXMgbm8gbW9yZSB2YWxpZCB0byB1c2UAJXMuJXMgaGFzIG5vIGRlZmluZXIgKGFzIHBlciBhbiBvbGQgdmlldyBmb3JtYXQpLiBDdXJyZW50IHVzZXIgaXMgdXNlZCBhcyBkZWZpbmVyLiBQbGVhc2UgcmVjcmVhdGUgdGhlIHZpZXcuAFBsdWdpbiAnJXMnIGluaXQgZnVuY3Rpb24gcmV0dXJuZWQgZXJyb3IuAEluaXRpYWxpemF0aW9uIG9mIHRyYW5zYWN0aW9uIGRlbGVnYXRlcyBmYWlsZWQuIFBsZWFzZSByZXBvcnQgYSBidWcuAEluaXRpYWxpemF0aW9uIGJpbmxvZyBzdG9yYWdlIGRlbGVnYXRlcyBmYWlsZWQuIFBsZWFzZSByZXBvcnQgYSBidWcuAEluaXRpYWxpemF0aW9uIG9mIGJpbmxvZyB0cmFuc21pdCBkZWxlZ2F0ZXMgZmFpbGVkLiBQbGVhc2UgcmVwb3J0IGEgYnVnLgBJbml0aWFsaXphdGlvbiBiaW5sb2cgcmVsYXkgSU8gZGVsZWdhdGVzIGZhaWxlZC4gUGxlYXNlIHJlcG9ydCBhIGJ1Zy4AUnVuIGZ1bmN0aW9uICcuLi4nIGluIHBsdWdpbiAnJXMnIGZhaWxlZABteXNxbF9oYV9yZWFkOiBHb3QgZXJyb3IgJWQgd2hlbiByZWFkaW5nIHRhYmxlICclcycAU3RvcmVkIHJvdXRpbmUgJyVzJy4nJXMnOiBpbnZhbGlkIHZhbHVlIGluIGNvbHVtbiAlcy4ASW52YWxpZCBjcmVhdGlvbiBjb250ZXh0ICclcy4lcycuAEdvdCBlcnJvciAlZCB3aGVuIHJlYWRpbmcgdGFibGUgJyVzJwBsb2FkX2Rlc19maWxlOiAgRm91bmQgd3Jvbmcga2V5X251bWJlcjogJWMARmFpbGVkIHRvIHNldCBwZXJzaXN0ZWQgb3B0aW9ucy4AUGVyc2lzdGVkIGNvbmZpZyBmaWxlIGlzIGNvcnJ1cHQuIFBsZWFzZSBlbnN1cmUgbXlzcWxkLWF1dG8uY25mIGZpbGUgaXMgdmFsaWQgSlNPTi4ARm91bmQgb3B0aW9uIHdpdGhvdXQgcHJlY2VkaW5nIGdyb3VwIGluIGNvbmZpZyBmaWxlAFZBTEdSSU5EX0RPX1FVSUNLX0xFQUtfQ0hFQ0sAVkFMR1JJTkRfQ09VTlRfTEVBS1MgcmVwb3J0cyAlbHUgbGVha2VkIGJ5dGVzIGZvciBxdWVyeSAnJS4qcycATE9BRCBEQVRBIElORklMRSBpbiB0aGUgcmVwbGljYSBTUUwgVGhyZWFkIGNhbiBvbmx5IHJlYWQgZnJvbSAtLXJlcGxpY2EtbG9hZC10bXBkaXIuIFBsZWFzZSwgcmVwb3J0IGEgYnVnLgBHb3QgdW5rbm93biBlcnJvcjogJWQAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciB1ZGYgc3RydWN0dXJlcwBDYW4ndCBhbGxvYyBtZW1vcnkgZm9yIHVkZiBmdW5jdGlvbjogJyUuNjRzJwBJbnZhbGlkIHJvdyBpbiBteXNxbC5mdW5jIHRhYmxlIGZvciBmdW5jdGlvbiAnJS42NHMnAENvdWxkIG5vdCBvcGVuIHRoZSBteXNxbC5mdW5jIHRhYmxlLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAEZvdW5kICVkIHByZXBhcmVkIHRyYW5zYWN0aW9uKHMpIGluICVzAEZvdW5kICVkIHByZXBhcmVkIFhBIHRyYW5zYWN0aW9ucwBpZ25vcmUgeGlkICVzAGNvbW1pdCB4aWQgJXMAcm9sbGJhY2sgeGlkICVzAFN0YXJ0aW5nIFhBIGNyYXNoIHJlY292ZXJ5Li4uAC0tdGMtaGV1cmlzdGljLXJlY292ZXIgcm9sbGJhY2sgc3RyYXRlZ3kgaXMgbm90IHNhZmUgb24gc3lzdGVtcyB3aXRoIG1vcmUgdGhhbiBvbmUgMi1waGFzZS1jb21taXQtY2FwYWJsZSBzdG9yYWdlIGVuZ2luZS4gQWJvcnRpbmcgY3Jhc2ggcmVjb3ZlcnkuAEZvdW5kICVkIHByZXBhcmVkIHRyYW5zYWN0aW9ucyEgSXQgbWVhbnMgdGhhdCBteXNxbGQgd2FzIG5vdCBzaHV0IGRvd24gcHJvcGVybHkgbGFzdCB0aW1lIGFuZCBjcml0aWNhbCByZWNvdmVyeSBpbmZvcm1hdGlvbiAobGFzdCBiaW5sb2cgb3IgJXMgZmlsZSkgd2FzIG1hbnVhbGx5IGRlbGV0ZWQgYWZ0ZXIgYSBjcmFzaC4gWW91IGhhdmUgdG8gc3RhcnQgbXlzcWxkIHdpdGggLS10Yy1oZXVyaXN0aWMtcmVjb3ZlciBzd2l0Y2ggdG8gY29tbWl0IG9yIHJvbGxiYWNrIHBlbmRpbmcgdHJhbnNhY3Rpb25zLgBYQSBjcmFzaCByZWNvdmVyeSBmaW5pc2hlZC4ARmFpbGVkIHRvIGNvbGxlY3QgR1RJRCB0byBzZW5kIGluIHRoZSByZXNwb25zZSBwYWNrZXQhAE1ZU1FMLkRFRkFVTFRfUk9MRVMgY291bGRuJ3QgYmUgdXBkYXRlZCBmb3IgYXV0aG9yaXphdGlvbiBpZGVudGlmaWVyICVzAEZvbGxvd2luZyB1c2VycyB3ZXJlIHNwZWNpZmllZCBpbiBDUkVBVEUgVVNFUiBJRiBOT1QgRVhJU1RTIGJ1dCB0aGV5IGFscmVhZHkgZXhpc3QuIENvcnJlc3BvbmRpbmcgZW50cnkgaW4gYmluYXJ5IGxvZyB1c2VkIGRlZmF1bHQgYXV0aGVudGljYXRpb24gcGx1Z2luICclcycgdG8gcmV3cml0ZSBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbiAoaWYgYW55KSBmb3IgdGhlbTogJXMARm9sbG93aW5nIHVzZXJzIHdlcmUgc3BlY2lmaWVkIGluIEFMVEVSIFVTRVIgSUYgRVhJU1RTIGJ1dCB0aGV5IGRvIG5vdCBleGlzdC4gQ29ycmVzcG9uZGluZyBlbnRyeSBpbiBiaW5hcnkgbG9nIHVzZWQgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJyVzJyB0byByZXdyaXRlIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIChpZiBhbnkpIGZvciB0aGVtOiAlcwBUYWJsZSAnJS0xOTJzJyBjb3JydXB0ZWQ6IHJvdyBpbiB3cm9uZyBwYXJ0aXRpb246ICVzIC0tIFBsZWFzZSBSRVBBSVIgdGhlIHRhYmxlIQBHb3QgYW4gZXJyb3IgZnJvbSB0aHJlYWRfaWQ9JXUsICVzOiVkAEdvdCBhbiBlcnJvciBmcm9tIHVua25vd24gdGhyZWFkLCAlczolZABUb28gbWFueSBzdG9yYWdlIGVuZ2luZXMhAFN0b3JhZ2UgZW5naW5lICclcycgaGFzIGNvbmZsaWN0aW5nIHR5cGVjb2RlLiBBc3NpZ25pbmcgdmFsdWUgJWQuAE91dCBvZiBtZW1vcnkgb24gdHJhbnNhY3Rpb24gd3JpdGUgc2V0IGV4dHJhY3Rpb24AVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgcGx1Z2luICclcycgaGFuZGxlcnRvbi4AU2hhcmVkIG1lbW9yeSBzZXR0aW5nIHVwIGxpc3RlbmVyAENhbid0IGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlcnZpY2U6ICVzLiA6ICVzAENhbid0IGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGNvbm5lY3Rpb246ICVzLiA6ICVzAENhbid0IGNyZWF0ZSBldmVudCwgbGFzdCBlcnJvcj0ldQBDYW4ndCBjcmVhdGUgbmV3IG5hbWVkIHBpcGUhOiAlcwBDYW4ndCBjcmVhdGUgdGhyZWFkIHRvIGhhbmRsZSBuZXcgY29ubmVjdGlvbihlcnJubz0gJWQpAEZhaWxlZCB0byBjcmVhdGUgYSBzb2NrZXQgZm9yICVzICclcyc6IGVycm5vOiAlZC4AU2VydmVyIHNvY2tldCBjcmVhdGVkIG9uIElQOiAnJXMnLgBTZXJ2ZXIgaG9zdG5hbWUgKGJpbmQtYWRkcmVzcyk6ICclcyc7IHBvcnQ6ICVkAElQdjYgaXMgYXZhaWxhYmxlLgBJUHY2IGlzIG5vdCBhdmFpbGFibGUuAENhbid0IGNyZWF0ZSBJUCBzb2NrZXQ6ICVzAENhbid0IHN0YXJ0IHNlcnZlcjogY2Fubm90IHJlc29sdmUgaG9zdG5hbWUhAERvIHlvdSBhbHJlYWR5IGhhdmUgYW5vdGhlciBteXNxbGQgc2VydmVyIHJ1bm5pbmcgb24gcG9ydDogJWQgPwBEbyB5b3UgYWxyZWFkeSBoYXZlIGFub3RoZXIgbXlzcWxkIHNlcnZlciBydW5uaW5nIG9uIHNvY2tldDogJXMgPwBBbm90aGVyIHByb2Nlc3Mgd2l0aCBwaWQgJWQgaXMgdXNpbmcgdW5peCBzb2NrZXQgZmlsZS4ARmFpbGVkIHRvIHJlc2V0IElQVjZfVjZPTkxZIGZsYWcgKGVycm9yOiAlZCkuIFRoZSBzZXJ2ZXIgd2lsbCBsaXN0ZW4gdG8gSVB2NiBhZGRyZXNzZXMgb25seS4AUmV0cnlpbmcgYmluZCBvbiBUQ1AvSVAgcG9ydCAldQBDYW4ndCBzdGFydCBzZXJ2ZXI6IEJpbmQgb24gVENQL0lQIHBvcnQ6ICVzAEZhaWxzIHRvIHByaW50IG91dCBJUC1hZGRyZXNzLgAgIC0gJyVzJyByZXNvbHZlcyB0byAnJXMnOwBDYW4ndCBzdGFydCBzZXJ2ZXI6IGxpc3RlbigpIG9uIFRDUC9JUCBwb3J0OiAlcwBsaXN0ZW4oKSBvbiBUQ1AvSVAgZmFpbGVkIHdpdGggZXJyb3IgJWQAVGhlIHNvY2tldCBmaWxlIHBhdGggaXMgdG9vIGxvbmcgKD4gJXUpOiAlcwBVbmFibGUgdG8gc2V0dXAgdW5peCBzb2NrZXQgbG9jayBmaWxlLgBDYW4ndCBzdGFydCBzZXJ2ZXI6IFVOSVggU29ja2V0IDogJXMAQ2FuJ3Qgc3RhcnQgc2VydmVyIDogQmluZCBvbiB1bml4IHNvY2tldDogJXMAbGlzdGVuKCkgb24gVW5peCBzb2NrZXQgZmFpbGVkIHdpdGggZXJyb3IgJWQAVW5hYmxlIHRvIGNyZWF0ZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgYWZ0ZXIgcmV0cmllcy4AQ291bGQgbm90IGNyZWF0ZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMuAENvdWxkIG5vdCBvcGVuIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcy4AQ291bGQgbm90IHJlYWQgdW5peCBzb2NrZXQgbG9jayBmaWxlICVzLgBVbml4IHNvY2tldCBsb2NrIGZpbGUgaXMgZW1wdHkgJXMuAEludmFsaWQgcGlkIGluIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcy4AQ291bGQgbm90IHdyaXRlIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcyBlcnJubyAlZC4AQ291bGQgbm90IHJlbW92ZSB1bml4IHNvY2tldCBsb2NrIGZpbGUgJXMgZXJybm8gJWQuAENvdWxkIG5vdCBzeW5jIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcyBlcnJubyAlZC4AQ291bGQgbm90IGNsb3NlIHVuaXggc29ja2V0IGxvY2sgZmlsZSAlcyBlcnJubyAlZC4AbXlzcWxkOiBHb3QgZXJyb3IgJWQgZnJvbSBzZWxlY3QARXJyb3IgaW4gYWNjZXB0OiAlcwBSU0EgJXMga2V5IGZpbGUgbm90IGZvdW5kOiAlcy4gU29tZSBhdXRoZW50aWNhdGlvbiBwbHVnaW5zIHdpbGwgbm90IHdvcmsuAEZhaWx1cmUgdG8gcGFyc2UgUlNBICVzIGtleSAoZmlsZSBleGlzdHMpOiAlczogJXMARmFpbHVyZSB0byByZWFkIGtleSBmaWxlOiAlcwBSU0Ega2V5IGZpbGVzIG5vdCBmb3VuZC4gU29tZSBhdXRoZW50aWNhdGlvbiBwbHVnaW5zIHdpbGwgbm90IHdvcmsuAENvbm5lY3Rpb24gYXR0cmlidXRlcyBvZiBsZW5ndGggJWx1IHdlcmUgdHJ1bmNhdGVkICglZCBieXRlcyBsb3N0KSBmb3IgY29ubmVjdGlvbiAlbGx1LCB1c2VyICVzQCVzIChhcyAlcyksIGF1dGg6ICVzAFguNTA5IGNpcGhlcnMgbWlzbWF0Y2g6IHNob3VsZCBiZSAnJXMnIGJ1dCBpcyAnJXMnAFguNTA5IGlzc3VlciBtaXNtYXRjaDogc2hvdWxkIGJlICclcycgYnV0IGlzICclcycAWC41MDkgc3ViamVjdCBtaXNtYXRjaDogc2hvdWxkIGJlICclcycgYnV0IGlzICclcycARmFpbGVkIHRvIGFjdGl2YXRlIGRlZmF1bHQgcm9sZSAlcyBmb3IgJXMAQ291bGQgbm90IGdlbmVyYXRlIFJTQSBwcml2YXRlIGtleSByZXF1aXJlZCBmb3IgWC41MDkgY2VydGlmaWNhdGUuAENvdWxkIG5vdCB3cml0ZSBrZXkgZmlsZTogJXMAQ291bGQgbm90IHNldCBmaWxlIHBlcm1pc3Npb24gZm9yICVzAENvdWxkIG5vdCByZWFkIENBIGtleSBmaWxlOiAlcwBDb3VsZCBub3QgcmVhZCBDQSBjZXJ0aWZpY2F0ZSBmaWxlOiAlcwBDb3VsZCBub3QgZ2VuZXJhdGUgWC41MDkgY2VydGlmaWNhdGUuAENvdWxkIG5vdCB3cml0ZSBjZXJ0aWZpY2F0ZSBmaWxlOiAlcwBDb3VsZCBub3QgZ2VuZXJhdGUgUlNBIFByaXZhdGUvUHVibGljIGtleSBwYWlyAENvdWxkIG5vdCB3cml0ZSBwcml2YXRlIGtleSBmaWxlOiAlcwBDb3VsZCBub3Qgd3JpdGUgcHVibGljIGtleSBmaWxlOiAlcwBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFNTTCBjZXJ0aWZpY2F0ZXMgYXMgb3B0aW9ucyByZWxhdGVkIHRvIFNTTCBhcmUgc3BlY2lmaWVkLgBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFNTTCBjZXJ0aWZpY2F0ZXMgYXMgY2VydGlmaWNhdGUgZmlsZXMgYXJlIHByZXNlbnQgaW4gZGF0YSBkaXJlY3RvcnkuAEF1dG8gZ2VuZXJhdGVkIFNTTCBjZXJ0aWZpY2F0ZXMgYXJlIHBsYWNlZCBpbiBkYXRhIGRpcmVjdG9yeS4AU2tpcHBpbmcgZ2VuZXJhdGlvbiBvZiBTU0wgY2VydGlmaWNhdGVzIGFzIC0tYXV0b19nZW5lcmF0ZV9jZXJ0cyBpcyBzZXQgdG8gT0ZGLgBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFJTQSBrZXkgcGFpciB0aHJvdWdoICVzIGFzIG9wdGlvbnMgcmVsYXRlZCB0byBSU0Ega2V5cyBhcmUgc3BlY2lmaWVkLgBTa2lwcGluZyBnZW5lcmF0aW9uIG9mIFJTQSBrZXkgcGFpciB0aHJvdWdoICVzIGFzIGtleSBmaWxlcyBhcmUgcHJlc2VudCBpbiBkYXRhIGRpcmVjdG9yeS4AQXV0byBnZW5lcmF0ZWQgUlNBIGtleSBmaWxlcyB0aHJvdWdoICVzIGFyZSBwbGFjZWQgaW4gZGF0YSBkaXJlY3RvcnkuAFNraXBwaW5nIGdlbmVyYXRpb24gb2YgUlNBIGtleSBwYWlyIGFzICVzIGlzIHNldCB0byBPRkYuACdwcm94aWVzX3ByaXYnIGVudHJ5ICclc0AlcyAlc0AlcycgaWdub3JlZCBpbiAtLXNraXAtbmFtZS1yZXNvbHZlIG1vZGUuAFRoZSBwbHVnaW4gJyUuKnMnIHVzZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJyVzJ0AnJS4qcycgaXMgbm90IGxvYWRlZC4gTm9ib2R5IGNhbiBjdXJyZW50bHkgbG9naW4gdXNpbmcgdGhpcyBhY2NvdW50LgBUaGUgcGx1Z2luICclcycgaXMgdXNlZCB0byBhdXRoZW50aWNhdGUgdXNlciAnJXMnQCclLipzJywgJXMgY29uZmlndXJlZC4gTm9ib2R5IGNhbiBjdXJyZW50bHkgbG9naW4gdXNpbmcgdGhpcyBhY2NvdW50LgBDb3VsZCBub3QgbG9hZCBteXNxbC5yb2xlX2VkZ2VzIGFuZCBteXNxbC5kZWZhdWx0X3JvbGVzIHRhYmxlcy4gQUNMIERETHMgd2lsbCBub3Qgd29yayB1bmxlc3MgdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlIGlzIHBlcmZvcm1lZC4AJ3VzZXInIGVudHJ5ICclc0AlcycgaWdub3JlZCBpbiAtLXNraXAtbmFtZS1yZXNvbHZlIG1vZGUuAEZhdGFsIGVycm9yOiBDb3VsZCBub3QgcmVhZCB0aGUgY29sdW1uICdhdXRoZW50aWNhdGlvbl9zdHJpbmcnIGZyb20gdGFibGUgJ215c3FsLnVzZXInLiBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAFVzZXIgZW50cnkgJyVzJ0AnJXMnIGhhcyBhIGRlcHJlY2F0ZWQgcHJlLTQuMSBwYXNzd29yZC4gVGhlIHVzZXIgd2lsbCBiZSBpZ25vcmVkIGFuZCBubyBvbmUgY2FuIGxvZ2luIHdpdGggdGhpcyB1c2VyIGFueW1vcmUuAFVzZXIgZW50cnkgJyVzJ0AnJXMnIGhhcyBhbiBlbXB0eSBwbHVnaW4gdmFsdWUuIFRoZSB1c2VyIHdpbGwgYmUgaWdub3JlZCBhbmQgbm8gb25lIGNhbiBsb2dpbiB3aXRoIHRoaXMgdXNlciBhbnltb3JlLgBGb3VuZCBpbnZhbGlkIHBhc3N3b3JkIGZvciB1c2VyOiAnJXNAJXMnOyBJZ25vcmluZyB1c2VyACd1c2VyJyBlbnRyeSAnJXNAJXMnIGhhcyB0aGUgcGFzc3dvcmQgaWdub3JlIGZsYWcgcmFpc2VkLCBidXQgaXRzIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgcGFzc3dvcmQgZXhwaXJhdGlvbi4gVGhlIHVzZXIgaWQgd2lsbCBiZSBpZ25vcmVkLgBTb21lIG9mIHRoZSB1c2VyIGFjY291bnRzIHdpdGggU1VQRVIgcHJpdmlsZWdlcyB3ZXJlIGRpc2FibGVkIGJlY2F1c2Ugb2YgZW1wdHkgbXlzcWwudXNlci5wbHVnaW4gdmFsdWUuIElmIHlvdSBhcmUgdXBncmFkaW5nIGZyb20gTXlTUUwgNS42IHRvIE15U1FMIDUuNyBpdCBtZWFucyB0aGF0IHN1YnN0aXR1dGlvbiBmb3IgdGhlIGVtcHR5IHBsdWdpbiBjb2x1bW4gd2FzIG5vdCBwb3NzaWJsZS4gUHJvYmFibHkgYmVjYXVzZSBvZiBwcmUgNC4xIHBhc3N3b3JkIGhhc2guIElmIHlvdXIgYWNjb3VudCBpcyBkaXNhYmxlZCB5b3Ugd2lsbCBuZWVkIHRvIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLiBGb3IgY29tcGxldGUgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byB1cGdyYWRlIE15U1FMIHRvIGEgbmV3IHZlcnNpb24gcGxlYXNlIHNlZSB0aGUgJ1VwZ3JhZGluZyBNeVNRTCcgc2VjdGlvbiBmcm9tIHRoZSBNeVNRTCBtYW51YWwuAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAnZGInIHRhYmxlIHdpdGggZW1wdHkgZGF0YWJhc2UgbmFtZTsgU2tpcHBlZAAnZGInIGVudHJ5ICclcyAlc0AlcycgaWdub3JlZCBpbiAtLXNraXAtbmFtZS1yZXNvbHZlIG1vZGUuACdkYicgZW50cnkgJyVzICVzQCVzJyBoYWQgZGF0YWJhc2UgaW4gbWl4ZWQgY2FzZSB0aGF0IGhhcyBiZWVuIGZvcmNlZCB0byBsb3dlcmNhc2UgYmVjYXVzZSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIGlzIHNldC4gSXQgd2lsbCBub3QgYmUgcG9zc2libGUgdG8gcmVtb3ZlIHRoaXMgcHJpdmlsZWdlIHVzaW5nIFJFVk9LRS4AVGhlIHN5c3RlbSB0YWJsZSBteXNxbC5wcm94aWVzX3ByaXYgaXMgbWlzc2luZy4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBGYXRhbCBlcnJvcjogQ2FuJ3Qgb3BlbiBhbmQgbG9jayBwcml2aWxlZ2UgdGFibGVzOiAlcwBGYXRhbDogY2FuJ3QgaW5pdGlhbGl6ZSBncmFudCBzdWJzeXN0ZW0gLSAnJXMnACdwcm9jc19wcml2JyBlbnRyeSAnJXMgJXNAJXMnIGlnbm9yZWQgaW4gLS1za2lwLW5hbWUtcmVzb2x2ZSBtb2RlLgAncHJvY3NfcHJpdicgZW50cnkgJyVzJyBpZ25vcmVkLCBiYWQgcm91dGluZSB0eXBlACd0YWJsZXNfcHJpdicgZW50cnkgJyVzICVzQCVzJyBpZ25vcmVkIGluIC0tc2tpcC1uYW1lLXJlc29sdmUgbW9kZS4ARmFpbGVkIHRvIGFkZCAlcyBpbiBleHRyYV91c2Vycy4gQmluYXJ5IGxvZyBlbnRyeSBtYXkgbWlzcyBzb21lIG9mIHRoZSB1c2Vycy4AVW5hYmxlIHRvIHN0YXJ0IHNlcnZlci4gVGhlIGRhdGEgZGljdGlvbmFyeSBzY2hlbWEgJyVzJyBkb2VzIG5vdCBleGlzdC4AVW5hYmxlIHRvIHN0YXJ0IHNlcnZlci4gVGhlIGRhdGEgZGljdGlvbmFyeSB0YWJsZSAnJXMnIGRvZXMgbm90IGV4aXN0LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBERCBTdG9yYWdlIEVuZ2luZQBGb3VuZCBwYXJ0aWFsbHkgdXBncmFkZWQgREQuIEFib3J0aW5nIHVwZ3JhZGUgYW5kIGRlbGV0aW5nIGFsbCBERCB0YWJsZXMuIFN0YXJ0IHRoZSB1cGdyYWRlIHByb2Nlc3MgYWdhaW4uAEZvdW5kIC5mcm0gZmlsZSB3aXRoIHNhbWUgbmFtZSBhcyBvbmUgb2YgdGhlIERpY3Rpb25hcnkgVGFibGVzLgBDcmVhdGVkIERhdGEgRGljdGlvbmFyeSBmb3IgdXBncmFkZQBDYW4ndCBmaW5kIGVycm9yLW1lc3NhZ2UgZmlsZSAnJXMnLiBDaGVjayBlcnJvci1tZXNzYWdlIGZpbGUgbG9jYXRpb24gYW5kICdsYy1tZXNzYWdlcy1kaXInIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlLgBVc2luZyBwcmUgNS41IHNlbWFudGljcyB0byBsb2FkIGVycm9yIG1lc3NhZ2VzIGZyb20gJXMuIElmIHRoaXMgaXMgbm90IGludGVuZGVkLCByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdmFsaWQgdXNhZ2Ugb2YgLS1sYy1tZXNzYWdlcy1kaXIgYW5kIC0tbGFuZ3VhZ2UgcGFyYW1ldGVycy4ARXJyb3IgbWVzc2FnZSBmaWxlICclcycgaGFkIG9ubHkgJWQgZXJyb3IgbWVzc2FnZXMsIGJ1dCBpdCBzaG91bGQgY29udGFpbiBhdCBsZWFzdCAlZCBlcnJvciBtZXNzYWdlcy4gQ2hlY2sgdGhhdCB0aGUgYWJvdmUgZmlsZSBpcyB0aGUgcmlnaHQgdmVyc2lvbiBmb3IgdGhpcyBwcm9ncmFtIQBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgbWVzc2FnZWZpbGUgJyVzJwBDYW4ndCByZWFkIGZyb20gbWVzc2FnZWZpbGUgJyVzJwBGb3VuZCBpbmNvbXBhdGlibGUgREVDSU1BTCBmaWVsZCAnJXMnIGluICVzOyBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGAlc2AgRk9SQ0UiIHRvIGZpeCBpdCEARm91bmQgaW5jb21wYXRpYmxlIFlFQVIoeCkgZmllbGQgJyVzJyBpbiAlczsgUGxlYXNlIGRvICJBTFRFUiBUQUJMRSBgJXNgIEZPUkNFIiB0byBmaXggaXQhACclcycgaGFkIG5vIG9yIGludmFsaWQgY2hhcmFjdGVyIHNldCwgYW5kIGRlZmF1bHQgY2hhcmFjdGVyIHNldCBpcyBtdWx0aS1ieXRlLCBzbyBjaGFyYWN0ZXIgY29sdW1uIHNpemVzIG1heSBoYXZlIGNoYW5nZWQARm91bmQgd3Jvbmcga2V5IGRlZmluaXRpb24gaW4gJXM7IFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYCVzYCBGT1JDRSAiIHRvIGZpeCBpdCEAVW5hYmxlIHRvIG9wZW4gZmlsZSAlcwBFcnJvciBpbiByZWFkaW5nIGZpbGUgJXMAVGFibGUgJyVzJyB3YXMgY3JlYXRlZCB3aXRoIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgTXlTUUwgYW5kIGNhbm5vdCBiZSByZWFkAFVuYWJsZSB0byByZWFkIHZpZXcgJXMARmlsZSAlcyBoYXMgdW5rbm93biB0eXBlIGluIGl0cyBoZWFkZXIuAEluY29ycmVjdCBpbmZvcm1hdGlvbiBpbiBmaWxlICVzAENhbid0IG9wZW4gYW5kIGxvY2sgcHJpdmlsZWdlIHRhYmxlczogJXMAUGx1Z2luICclcycgY2Fubm90IHN1YnNjcmliZSB0byBNWVNRTF9BVURJVF9BVVRIT1JJWkFUSU9OIGV2ZW50cy4gQ3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuAFBsdWdpbiAnJXMnIGhhcyBpbnZhbGlkIGRhdGEuAEZhdGFsIGVycm9yOiBPT00gd2hpbGUgaW5pdGlhbGl6aW5nIHRpbWUgem9uZXMAQ2FuJ3Qgb3BlbiBhbmQgbG9jayB0aW1lIHpvbmUgdGFibGU6ICVzIHRyeWluZyB0byBsaXZlIHdpdGhvdXQgdGhlbQBGYXRhbCBlcnJvcjogT3V0IG9mIG1lbW9yeSB3aGlsZSBsb2FkaW5nIG15c3FsLnRpbWVfem9uZV9sZWFwX3NlY29uZCB0YWJsZQBGYXRhbCBlcnJvcjogV2hpbGUgbG9hZGluZyBteXNxbC50aW1lX3pvbmVfbGVhcF9zZWNvbmQgdGFibGU6IHRvbyBtdWNoIGxlYXBzAEZhdGFsIGVycm9yOiBFcnJvciB3aGlsZSBsb2FkaW5nIG15c3FsLnRpbWVfem9uZV9sZWFwX3NlY29uZCB0YWJsZQBGYXRhbCBlcnJvcjogSWxsZWdhbCBvciB1bmtub3duIGRlZmF1bHQgdGltZSB6b25lICclcycAQ2FuJ3QgZmluZCBkZXNjcmlwdGlvbiBvZiB0aW1lIHpvbmUgJyUuKnMnAENhbid0IGZpbmQgZGVzY3JpcHRpb24gb2YgdGltZSB6b25lICcldScARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIHRhYmxlOiB0b28gYmlnIHRyYW5zaXRpb24gdHlwZSBpZABFcnJvciB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZSBkZXNjcmlwdGlvbiBmcm9tIG15c3FsLnRpbWVfem9uZV90cmFuc2l0aW9uX3R5cGUgdGFibGU6IG5vdCBlbm91Z2ggcm9vbSBmb3IgYWJicmV2aWF0aW9ucwBFcnJvciB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZSBkZXNjcmlwdGlvbiBmcm9tIG15c3FsLnRpbWVfem9uZV90cmFuc2l0aW9uX3R5cGUgdGFibGUARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbiB0YWJsZTogdG9vIG11Y2ggdHJhbnNpdGlvbnMARXJyb3Igd2hpbGUgbG9hZGluZyB0aW1lIHpvbmUgZGVzY3JpcHRpb24gZnJvbSBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbiB0YWJsZTogYmFkIHRyYW5zaXRpb24gdHlwZSBpZABFcnJvciB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZSBkZXNjcmlwdGlvbiBmcm9tIG15c3FsLnRpbWVfem9uZV90cmFuc2l0aW9uIHRhYmxlAGxvYWRpbmcgdGltZSB6b25lIHdpdGhvdXQgdHJhbnNpdGlvbiB0eXBlcwBPdXQgb2YgbWVtb3J5IHdoaWxlIGxvYWRpbmcgdGltZSB6b25lIGRlc2NyaXB0aW9uAFVuYWJsZSB0byBidWlsZCBta3RpbWUgbWFwIGZvciB0aW1lIHpvbmUAT3V0IG9mIG1lbW9yeSB3aGlsZSBsb2FkaW5nIHRpbWUgem9uZQBGYXRhbCBlcnJvcjogT3V0IG9mIG1lbW9yeSB3aGlsZSBzZXR0aW5nIG5ldyB0aW1lIHpvbmUAUmVwbGljYSBTUUwgdGhyZWFkIGlzIHN0b3BwZWQgYmVjYXVzZSBVTlRJTCBjb25kaXRpb24gaXMgYmFkKCVzOiVsbHUpLgBSZXBsaWNhIFNRTCB0aHJlYWQgc3RvcHBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgaXRzIFVOVElMIHBvc2l0aW9uICVsbHUAUmVwbGljYSBTUUwgdGhyZWFkIHN0b3BwZWQgYmVjYXVzZSBVTlRJTCBTUUxfQkVGT1JFX0dUSURTICVzIGlzIGFscmVhZHkgYXBwbGllZABSZXBsaWNhIFNRTCB0aHJlYWQgc3RvcHBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgVU5USUwgU1FMX0JFRk9SRV9HVElEUyAlcwBSZXBsaWNhIFNRTCB0aHJlYWQgc3RvcHBlZCBiZWNhdXNlIGl0IHJlYWNoZWQgVU5USUwgU1FMX0FGVEVSX0dUSURTICVzAFJlcGxpY2EgU1FMIHRocmVhZCBzdG9wcGVkIGFjY29yZGluZyB0byBVTlRJTCBTUUxfQUZURVJfTVRTX0dBUFMgYXMgaXQgaGFzIHByb2Nlc3NlZCBhbGwgZ2FwIHRyYW5zYWN0aW9ucyBsZWZ0IGZyb20gdGhlIHByZXZpb3VzIHJlcGxpY2Egc2Vzc2lvbi4AR3JvdXAgUmVwbGljYXRpb24gcGx1Z2luIGlzIG5vdCBpbnN0YWxsZWQuAFRoZSB0cmFuc2FjdGlvbiBvd25lZCBHVElEIGlzIGFscmVhZHkgaW4gdGhlICVzIHRhYmxlLCB3aGljaCBpcyBjYXVzZWQgYnkgYW4gZXhwbGljaXQgbW9kaWZ5aW5nIGZyb20gdXNlciBjbGllbnQuAEZhaWxlZCB0byBkZWxldGUgdGhlIHJvdzogJyVzJyBmcm9tIHRoZSBndGlkX2V4ZWN1dGVkIHRhYmxlLgBGYWlsZWQgdG8gY29tcHJlc3MgdGhlIGd0aWRfZXhlY3V0ZWQgdGFibGUuAEZhaWxlZCB0byBjb21wcmVzcyB0aGUgZ3RpZF9leGVjdXRlZCB0YWJsZSwgYmVjYXVzZSBpdCBpcyBmYWlsZWQgdG8gYWxsb2NhdGUgdGhlIFRIRC4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhyZWFkIGF0dHJpYnV0ZSB3aGVuIGNyZWF0aW5nIGNvbXByZXNzaW9uIHRocmVhZC4AQ2FuIG5vdCBjcmVhdGUgdGhyZWFkIHRvIGNvbXByZXNzIGd0aWRfZXhlY3V0ZWQgdGFibGUgKGVycm5vPSAlZCkAQ291bGQgbm90IGpvaW4gZ3RpZF9leGVjdXRlZCB0YWJsZSBjb21wcmVzc2lvbiB0aHJlYWQuIGVycm9yOiVkAENhbid0IHN0YXJ0IHNlcnZlciA6IEluaXRpYWxpemUgc2VjdXJpdHkgZGVzY3JpcHRvcjogJXMAQ2FuJ3Qgc3RhcnQgc2VydmVyIDogU2V0IHNlY3VyaXR5IGRlc2NyaXB0b3I6ICVzAENhbid0IHN0YXJ0IHNlcnZlciA6IE5hbWVkIFBpcGUgIiVzIiBhbHJlYWR5IGluIHVzZS4ATkRCIFJlcGxpY2EgOiBBdCBTUUwgdGhyZWFkIHN0YXJ0IGFwcGx5aW5nIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgZnJvbSBTb3VyY2UgU2VydmVySWQgJXUgd2hpY2ggaXMgbG93ZXIgdGhhbiBwcmV2aW91c2x5IGFwcGxpZWQgZXBvY2ggJWxsdS8lbGx1ICglbGx1KS4gIEdyb3VwIFNvdXJjZSBMb2cgOiAlcyAgR3JvdXAgU291cmNlIExvZyBQb3MgOiAlbGx1LiAgQ2hlY2sgcmVwbGljYSBwb3NpdGlvbmluZy4ATkRCIFJlcGxpY2EgOiBTUUwgdGhyZWFkIHN0b3BwZWQgYXMgYXBwbHlpbmcgZXBvY2ggJWxsdS8lbGx1ICglbGx1KSBmcm9tIFNvdXJjZSBTZXJ2ZXJJZCAldSB3aGljaCBpcyBsb3dlciB0aGFuIHByZXZpb3VzbHkgYXBwbGllZCBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpLiAgR3JvdXAgU291cmNlIExvZyA6ICVzICBHcm91cCBTb3VyY2UgTG9nIFBvcyA6ICVsbHUATkRCIFJlcGxpY2EgOiBTUUwgdGhyZWFkIHN0b3BwZWQgYXMgYXR0ZW1wdGVkIHRvIHJlYXBwbHkgYWxyZWFkeSBjb21taXR0ZWQgZXBvY2ggJWxsdS8lbGx1ICglbGx1KSBmcm9tIHNlcnZlciBpZCAldS4gIEdyb3VwIFNvdXJjZSBMb2cgOiAlcyAgR3JvdXAgU291cmNlIExvZyBQb3MgOiAlbGx1LgBOREIgUmVwbGljYSA6IFNRTCB0aHJlYWQgc3RvcHBlZCBhcyBhdHRlbXB0aW5nIHRvIGFwcGx5IG5ldyBlcG9jaCAlbGx1LyVsbHUgKCVsbHUpIHdoaWxlIGxvd2VyIHJlY2VpdmVkIGVwb2NoICVsbHUvJWxsdSAoJWxsdSkgaGFzIG5vdCBiZWVuIGNvbW1pdHRlZC4gIFNvdXJjZSBzZXJ2ZXIgaWQgOiAldS4gIEdyb3VwIFNvdXJjZSBMb2cgOiAlcyAgR3JvdXAgU291cmNlIExvZyBQb3MgOiAlbGx1LgBOREIgUmVwbGljYTogbWlzc2luZyBkYXRhIGZvciAlcyB0aW1lc3RhbXAgY29sdW1uICV1LgBOREIgUmVwbGljYTogVGFibGUgJXMuJXMgbG9nZ2luZyBleGNlcHRpb25zIHRvICVzLiVzAE5EQiBSZXBsaWNhOiBUYWJsZSAlcy4lcyA6ICVzLCBsb3cgZXBvY2ggcmVzb2x1dGlvbgBGb3VuZCB1bmV4cGVjdGVkIGZpZWxkIHR5cGUgJXUARmFpbGVkIHRvIGNyZWF0ZSBOZGJJbmZvAEZhaWxlZCB0byBpbml0IE5kYkluZm8AbmRiX3NlcmlhbGl6ZV9jb25kOiBVbmV4cGVjdGVkIG1pc21hdGNoIG9mIGZvdW5kIGFuZCBleHBlY3RlZCBudW1iZXIgb2YgZnVuY3Rpb24gYXJndW1lbnRzICV1ACVzIC0gJXMuJXMAJXMASW5mbyB0YWJsZSBpcyBub3QgcmVhZHkgdG8gYmUgdXNlZC4gVGFibGUgJyVzLiVzJyBjYW5ub3QgYmUgb3BlbmVkLgBJbmZvIHRhYmxlIGlzIG5vdCByZWFkeSB0byBiZSB1c2VkLiBUYWJsZSAnJXMuJXMnIGNhbm5vdCBiZSBzY2FubmVkLgBDb3JydXB0ZWQgdGFibGUgJXMuJXMuIENoZWNrIG91dCB0YWJsZSBkZWZpbml0aW9uLgBJbmZvIHRhYmxlIGhhcyBhIHByb2JsZW0gd2l0aCBpdHMga2V5IGZpZWxkKHMpLiBUYWJsZSAnJXMuJXMnIGV4cGVjdGVkIGZpZWxkICMldSB0byBiZSAnJXMnIGJ1dCBmb3VuZCAnJXMnIGluc3RlYWQuAENob29zaW5nIHdvcmtlciBpZCAlbHUsIHRoZSBmb2xsb3dpbmcgaXMgZ29pbmcgdG8gYmUgJWx1AFRyYW5zYWN0aW9uIGlzIHRhZ2dlZCB3aXRoIGluY29uc2lzdGVudCBsb2dpY2FsIHRpbWVzdGFtcHM6IHNlcXVlbmNlX251bWJlciAoJWxsZCkgPD0gbGFzdF9jb21taXR0ZWQgKCVsbGQpAFRyYW5zYWN0aW9uJ3Mgc2VxdWVuY2UgbnVtYmVyIGlzIGluY29uc2lzdGVudCB3aXRoIHRoYXQgb2YgYSBwcmVjZWRpbmcgb25lOiBzZXF1ZW5jZV9udW1iZXIgKCVsbGQpIDw9IHByZXZpb3VzIHNlcXVlbmNlX251bWJlciAoJWxsZCkARm9yIHRoZSBjcmVhdGlvbiBvZiByZXBsaWNhdGlvbiBjaGFubmVscyB0aGUgY29ubmVjdGlvbiBtZXRhZGF0YSBhbmQgYXBwbGllciBtZXRhZGF0YSByZXBvc2l0b3JpZXMgbXVzdCBiZSBzZXQgdG8gVEFCTEUARm9yIHRoZSBjcmVhdGlvbiBvZiByZXBsaWNhdGlvbiBjaGFubmVscyB0aGUgc2VydmVyIGlkIG11c3QgYmUgZGlmZmVyZW50IGZyb20gMABSZXBsaWNhOiBXcm9uZyByZXBvc2l0b3J5LiBSZXBvc2l0b3J5IHNob3VsZCBiZSBUQUJMRQBFcnJvciBjcmVhdGluZyBjb25uZWN0aW9uIG1ldGFkYXRhOiAlcy4ARXJyb3IgY2hhbmdpbmcgdGhlIHR5cGUgb2YgY29ubmVjdGlvbiBtZXRhZGF0YSdzIHJlcG9zaXRvcnk6ICVzLgBJdCBpcyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSB0eXBlIG9mIHRoZSByZWxheSBsb2cgcmVwb3NpdG9yeSBiZWNhdXNlIHRoZXJlIGFyZSB3b3JrZXJzIHJlcG9zaXRvcmllcyB3aXRoIHBvc3NpYmxlIGV4ZWN1dGlvbiBnYXBzLiBUaGUgdmFsdWUgb2YgLS1yZWxheV9sb2dfaW5mb19yZXBvc2l0b3J5IGlzIGFsdGVyZWQgdG8gb25lIG9mIHRoZSBmb3VuZCBXb3JrZXIgcmVwb3NpdG9yaWVzLiBUaGUgZ2FwcyBoYXZlIHRvIGJlIHNvcnRlZCBvdXQgYmVmb3JlIHJlc3VtaW5nIHdpdGggdGhlIHR5cGUgY2hhbmdlLgBFcnJvciBjcmVhdGluZyBhcHBsaWVyIG1ldGFkYXRhOiAlcy4ARXJyb3IgY2hhbmdpbmcgdGhlIHR5cGUgb2YgYXBwbGllciBtZXRhZGF0YSdzIHJlcG9zaXRvcnk6ICVzLgBDb3VsZCBub3QgZGVsZXRlIGZyb20gUmVwbGljYSBXb3JrZXJzIGluZm8gcmVwb3NpdG9yeS4AQ291bGQgbm90IHN0b3JlIHRoZSByZXNldCBSZXBsaWNhIFdvcmtlciBzdGF0ZSBpbnRvIHRoZSByZXBsaWNhIGluZm8gcmVwb3NpdG9yeS4ARXJyb3IgaW4gY2hlY2tpbmcgJXMgcmVwb3NpdG9yeSBpbmZvIHR5cGUgb2YgJXMuAFJlcGxpY2E6ICVzAFJlcGxpY2E6IENvdWxkIG5vdCBjcmVhdGUgY2hhbm5lbCBsaXN0AFJlcGxpY2E6IFRoaXMgcmVwbGljYSB3YXMgYSBtdWx0aXNvdXJjZWQgcmVwbGljYSBwcmV2aW91c2x5IHdoaWNoIGlzIHN1cHBvcnRlZCBvbmx5IGJ5IGJvdGggVEFCTEUgYmFzZWQgY29ubmVjdGlvbiBtZXRhZGF0YSBhbmQgYXBwbGllciBtZXRhZGF0YSByZXBvc2l0b3JpZXMuIEZvdW5kIG9uZSBvciBib3RoIG9mIHRoZSBpbmZvIHJlcG9zIHRvIGJlIHR5cGUgRklMRS4gU2V0IGJvdGggcmVwb3MgdG8gdHlwZSBUQUJMRS4AUmVwbGljYTogRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGNvbm5lY3Rpb24gbWV0YWRhdGEgc3RydWN0dXJlIGZvciBjaGFubmVsICclcyc7IGl0cyByZWNvcmQgbWF5IHN0aWxsIGJlIHByZXNlbnQgaW4gdGhlIGFwcGxpZXIgbWV0YWRhdGEgcmVwb3NpdG9yeSwgY29uc2lkZXIgZGVsZXRpbmcgaXQuAEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSVzAFJlcGxpY2E6IEZhaWxlZCB0byBjcmVhdGUgYSBjaGFubmVsIGZyb20gY29ubmVjdGlvbiBtZXRhZGF0YSByZXBvc2l0b3J5LgBGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IGluZm8gZmlsZSAoZmlsZSAnJXMnLCBlcnJubyAlZCkARmFpbGVkIHRvIGNyZWF0ZSBhIGNhY2hlIG9uIGluZm8gZmlsZSAoZmlsZSAnJXMnKQBGYWlsZWQgdG8gb3BlbiB0aGUgZXhpc3RpbmcgaW5mbyBmaWxlIChmaWxlICclcycsIGVycm5vICVkKQBTZXJ2ZXIgb3ZlcmNvbWVzIHRoZSB0ZW1wb3JhcnkgJ291dCBvZiBtZW1vcnknIGluICclZCcgdHJpZXMgd2hpbGUgYWxsb2NhdGluZyBhIG5ldyBjaHVuayBvZiBpbnRlcnZhbHMgZm9yIHN0b3JpbmcgR1RJRHMuAFVua25vd24gY29zdCBjb25zdGFudCAiJXMiIGluIG15c3FsLnNlcnZlcl9jb3N0IHRhYmxlAEludmFsaWQgdmFsdWUgZm9yIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5zZXJ2ZXJfY29zdCB0YWJsZTogJS4xZgBVbmtub3duIGNvc3QgY29uc3RhbnQgIiVzIiBpbiBteXNxbC5lbmdpbmVfY29zdCB0YWJsZQBVbmtub3duIHN0b3JhZ2UgZW5naW5lICIlcyIgaW4gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGUASW52YWxpZCBkZXZpY2UgdHlwZSAlZCBmb3IgIiVzIiBzdG9yYWdlIGVuZ2luZSBmb3IgY29zdCBjb25zdGFudCAiJXMiIGluIG15c3FsLmVuZ2luZV9jb3N0IHRhYmxlAEludmFsaWQgdmFsdWUgZm9yIGNvc3QgY29uc3RhbnQgIiVzIiBmb3IgIiVzIiBzdG9yYWdlIGVuZ2luZSBhbmQgZGV2aWNlIHR5cGUgJWQgaW4gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGU6ICUuMWYARXJyb3Igd2hpbGUgcmVhZGluZyBmcm9tIG15c3FsLnNlcnZlcl9jb3N0IHRhYmxlLgBFcnJvciB3aGlsZSByZWFkaW5nIGZyb20gbXlzcWwuZW5naW5lX2Nvc3QgdGFibGUuAEZhaWxlZCB0byBvcGVuIG9wdGltaXplciBjb3N0IGNvbnN0YW50IHRhYmxlcwBVbnN1cHBvcnRlZCBub24taWdub3JhYmxlIGV2ZW50IGZlZCBpbnRvIHRoZSBldmVudCBzdHJlYW0uAEdUSURfTE9HX0VWRU5UIG9yIEFOT05ZTU9VU19HVElEX0xPR19FVkVOVCBpcyBub3QgZXhwZWN0ZWQgaW4gYW4gZXZlbnQgc3RyZWFtICVzLgBRVUVSWShCRUdJTikgaXMgbm90IGV4cGVjdGVkIGluIGFuIGV2ZW50IHN0cmVhbSBpbiB0aGUgbWlkZGxlIG9mIGEgJXMuAFFVRVJZKENPTU1JVCBvciBST0xMQkFDSykgb3IgWElEX0xPR19FVkVOVCBpcyBub3QgZXhwZWN0ZWQgaW4gYW4gZXZlbnQgc3RyZWFtICVzLgBRVUVSWShYQSBST0xMQkFDSykgaXMgbm90IGV4cGVjdGVkIGluIGFuIGV2ZW50IHN0cmVhbSAlcy4ARXZlbnQgU2NoZWR1bGVyOiBbJXNdLlslcy4lc10gZXhlY3V0aW9uIGZhaWxlZCwgZmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlci4ARXZlbnQgU2NoZWR1bGVyOiBbJXNdLlslcy4lc10gZXhlY3V0aW9uIGZhaWxlZCwgdXNlciBubyBsb25nZXIgaGFzIEVWRU5UIHByaXZpbGVnZS4ARXZlbnQgU2NoZWR1bGVyOiAlc2Vycm9yIGR1cmluZyBjb21waWxhdGlvbiBvZiAlcy4lcwBFdmVudCBTY2hlZHVsZXI6IERyb3BwaW5nICVzLiVzAE5kYiBzY2hlbWFbJXMuJXNdOiAlcwBJbiBSQlIgbW9kZSwgUmVwbGljYSByZWNlaXZlZCBpbmNvbXBhdGlibGUgREVDSU1BTCBmaWVsZCAob2xkLXN0eWxlIGRlY2ltYWwgZmllbGQpIGZyb20gU291cmNlIHdoaWxlIGNyZWF0aW5nIGNvbnZlcnNpb24gdGFibGUuIFBsZWFzZSBjb25zaWRlciBjaGFuZ2luZyBkYXRhdHlwZSBvbiBTb3VyY2UgdG8gbmV3IHN0eWxlIGRlY2ltYWwgYnkgZXhlY3V0aW5nIEFMVEVSIGNvbW1hbmQgZm9yIGNvbHVtbiBOYW1lOiAlcy4lcy4lcy4Acm9vdEBsb2NhbGhvc3QgaXMgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IHBhc3N3b3JkICEgUGxlYXNlIGNvbnNpZGVyIHN3aXRjaGluZyBvZmYgdGhlIC0taW5pdGlhbGl6ZS1pbnNlY3VyZSBvcHRpb24uAEEgdGVtcG9yYXJ5IHBhc3N3b3JkIGlzIGdlbmVyYXRlZCBmb3Igcm9vdEBsb2NhbGhvc3Q6ICVzAEZhaWxlZCB0byBvcGVuIHRoZSBib290c3RyYXAgZmlsZSAlcwBCb290c3RyYXBwaW5nIGNvbXBsZXRlAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgYnV0IHRoZSBkYXRhIGRpcmVjdG9yeSBoYXMgZmlsZXMgaW4gaXQuIEFib3J0aW5nLgAtLWluaXRpYWxpemUgc3BlY2lmaWVkIG9uIGFuIGV4aXN0aW5nIGRhdGEgZGlyZWN0b3J5LgAtLWluaXRpYWxpemUgc3BlY2lmaWVkIGJ1dCB0aGUgZGF0YSBkaXJlY3RvcnkgZXhpc3RzIGFuZCB0aGUgcGF0aCBpcyB0b28gbG9uZy4gQWJvcnRpbmcuAC0taW5pdGlhbGl6ZSBzcGVjaWZpZWQgYnV0IHRoZSBkYXRhIGRpcmVjdG9yeSBleGlzdHMgYW5kIGlzIG5vdCB3cml0YWJsZS4gQWJvcnRpbmcuAENyZWF0aW5nIHRoZSBkYXRhIGRpcmVjdG9yeSAlcwBTdGFydCBiaW5sb2dfZHVtcCB0byBzb3VyY2VfdGhyZWFkX2lkKCV1KSByZXBsaWNhX3NlcnZlcigldSksIHBvcyglcywgJWxsdSkAc291cmNlIHNlbmRzIGhlYXJ0YmVhdCBtZXNzYWdlAHRoZSByZXN0IG9mIGhlYXJ0YmVhdCBpbmZvIHNraXBwZWQgLi4uAFNvdXJjZSBpcyBjb25maWd1cmVkIHRvIGxvZyByZXBsaWNhdGlvbiBldmVudHMgd2l0aCBjaGVja3N1bSwgYnV0IHdpbGwgbm90IHNlbmQgc3VjaCBldmVudHMgdG8gcmVwbGljYXMgdGhhdCBjYW5ub3QgcHJvY2VzcyB0aGVtAE5EQjogUXVlcnkgJyVzJyBmYWlsZWQsIGVycm9yOiAlZDogJXMAS2lsbGluZyB0aHJlYWQgJWx1AFBsdWdpbiAlcyBpcyBkZWluaXRpYWxpemluZyBhIHRocmVhZCBidXQgbGVmdCBhIHNlc3Npb24gYXR0YWNoZWQuIERldGFjaGluZyBpdCBmb3JjZWZ1bGx5LgBGYWlsZWQgdG8gZGV0YWNoIHRoZSBzZXNzaW9uLgBDbG9zZWQgZm9yY2VmdWxseSAldSBzZXNzaW9uJXMgbGVmdCBvcGVuZWQgYnkgcGx1Z2luICVzAEZhaWxlZCB0byBkZWNyZW1lbnQgdGhlIG51bWJlciBvZiB0aHJlYWRzAFBsdWdpbiAlcyBkaWQgbm90IGRlaW5pdGlhbGl6ZSAldSB0aHJlYWRzAEtpbGxlZCAldSB0aHJlYWRzIG9mIHBsdWdpbiAlcwBOREIgUmVwbGljYSA6IENvdWxkIG5vdCBkZXRlcm1pbmUgbWF4aW11bSByZXBsaWNhdGVkIGVwb2NoIGZyb20gJXMuJXMgYXQgUmVwbGljYSBzdGFydCwgZXJyb3IgJXUgJXMATkRCIFJlcGxpY2EgOiBNYXhSZXBsaWNhdGVkRXBvY2ggc2V0IHRvICVsbHUgKCV1LyV1KSBhdCBSZXBsaWNhIHN0YXJ0AE5EQjogTm9kZUlEIGlzICVsdSwgbWFuYWdlbWVudCBzZXJ2ZXIgJyVzOiVsdScAdGlkICV1OiBub2RlWyV1XSB0cmFuc2FjdGlvbl9oaW50PSV1LCB0cmFuc2FjdGlvbl9ub19oaW50PSV1AE5EQiBJbnRlcm5hbCBlcnJvcjogRGVmYXVsdCB2YWx1ZXMgZGlmZmVyIGZvciBjb2x1bW4gJXUsIG5kYl9kZWZhdWx0OiAlZABOREIgSW50ZXJuYWwgZXJyb3I6IENvbHVtbiAldSBoYXMgbmF0aXZlIGRlZmF1bHQsIGJ1dCBzaG91bGRuJ3QuIEZsYWdzPSV1LCB0eXBlPSV1AGZpZWxkWyBuYW1lOiAnJXMnLCB0eXBlOiAldSwgcmVhbF90eXBlOiAldSwgZmxhZ3M6IDB4JXgsIGlzX251bGw6ICVkXQBuZGJDb2xbbmFtZTogJyVzJywgdHlwZTogJXUsIGNvbHVtbl9ubzogJWQsIG51bGxhYmxlOiAlZF0AZml4X3VuaXF1ZV9pbmRleF9hdHRyX29yZGVyOiBteV9tYWxsb2MoJXUpIGZhaWx1cmUATkRCIFJlcGxpY2EgOiBNYWxmb3JtZWQgZXZlbnQgcmVjZWl2ZWQgb24gdGFibGUgJXMgY2Fubm90IHBhcnNlLiAgU3RvcHBpbmcgUmVwbGljYS4ATkRCIFJlcGxpY2EgOiBDb25mbGljdCBmdW5jdGlvbiAlcyBkZWZpbmVkIG9uIHRhYmxlICVzIHJlcXVpcmVzIG5kYl9yZXBsaWNhX2NvbmZsaWN0X3JvbGUgdmFyaWFibGUgdG8gYmUgc2V0LiAgU3RvcHBpbmcgcmVwbGljYS4ATkRCIFJlcGxpY2EgOiBUcmFuc2FjdGlvbmFsIGNvbmZsaWN0IGRldGVjdGlvbiBkZWZpbmVkIG9uIHRhYmxlICVzLCBidXQgZXZlbnRzIHJlY2VpdmVkIHdpdGhvdXQgdHJhbnNhY3Rpb24gaWRzLiAgQ2hlY2sgLS1uZGItbG9nLXRyYW5zYWN0aW9uLWlkIHNldHRpbmcgb24gdXBzdHJlYW0gQ2x1c3Rlci4ATkRCIFJlcGxpY2EgOiBCaW5sb2cgZXZlbnQgb24gdGFibGUgJXMgbWlzc2luZyBpbmZvIG5lY2Vzc2FyeSBmb3IgY29uZmxpY3QgZGV0ZWN0aW9uLiAgQ2hlY2sgYmlubG9nIGZvcm1hdCBvcHRpb25zIG9uIHVwc3RyZWFtIGNsdXN0ZXIuAEVycm9yICVsdSBpbiByZWFkQXV0b0luY3JlbWVudFZhbHVlKCk6ICVzAGZvdW5kIHVuY29tbWl0dGVkIGF1dG9jb21taXQrcmJ3ciB0cmFuc2FjdGlvbiwgY29tbWl0IHN0YXR1czogJWQATmRiIHJlcGxpY2EgcmV0cmllZCB0cmFuc2FjdGlvbiAldSB0aW1lKHMpIGluIHZhaW4uICBHaXZpbmcgdXAuAEVycm9yICVsdSBpbiA6OnVwZGF0ZV9jcmVhdGVfaW5mbygpOiAlcwBOREI6IGFsbG9jYXRpbmcgdGFibGUgc2hhcmUgZm9yICVzIGZhaWxlZABOREIgQmlubG9nOiAoJWQpJXMATkRCIEJpbmxvZzogQ1JFQVRFIFRBQkxFIEV2ZW50OiAlcwBOREIgQmlubG9nOiBGQUlMRUQgQ1JFQVRFIFRBQkxFIGV2ZW50IG9wZXJhdGlvbnMuIEV2ZW50OiAlcwBOREIgQmlubG9nOiBSRU5BTUUgRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IEZBSUxFRCBjcmVhdGUgZXZlbnQgb3BlcmF0aW9ucyBkdXJpbmcgUkVOQU1FLiBFdmVudCAlcwBVbmV4cGVjdGVkIHJlbmFtZSBjYXNlIGRldGVjdGVkLCBzcWxfY29tbWFuZDogJWQARXJyb3IgJWx1IGluIDo6Z2V0X2F1dG9faW5jcmVtZW50KCk6ICVzAENhbGxpbmcgbmRiY2x1c3Rlcl9jcmVhdGVfYmlubG9nX3NldHVwKCVzKSBpbiA6Om9wZW4AdGFibGUgJyVzJyBvcGVuZWQgcmVhZCBvbmx5AE5EQjogJy0taW5pdGlhbGl6ZScgLT4gbmRiY2x1c3RlciBwbHVnaW4gZGlzYWJsZWQATkRCOiBDaGFuZ2VkIGdsb2JhbCB2YWx1ZSBvZiBiaW5sb2dfZm9ybWF0IGZyb20gU1RBVEVNRU5UIHRvIE1JWEVEAE5EQl9TSEFSRTogdHJhaWxpbmcgc2hhcmUgJXMsIHJlbGVhc2VkIGJ5IGNsb3NlX2NhY2hlZF90YWJsZXMATkRCX1NIQVJFOiAlcyBhbHJlYWR5IGV4aXN0cyB1c2VfY291bnQ9JWQuIE1vdmluZyBhd2F5IGZvciBzYWZldHksIGJ1dCBwb3NzaWJsZSBtZW1sZWFrLgBoYW5kbGVfdHJhaWxpbmdfc2hhcmU6ICVzIHVzZV9jb3VudDogJXUAbmRiY2x1c3Rlcl9nZXRfc2hhcmU6ICVzIHVzZV9jb3VudDogJXUAbmRiY2x1c3Rlcl9yZWFsX2ZyZWVfc2hhcmU6ICVzIHVzZV9jb3VudDogJXUAbmRiY2x1c3Rlcl9yZWFsX2ZyZWVfc2hhcmU6ICVzLCBzdGlsbCBvcGVuIC0gaWdub3JlZCAnZnJlZScgKGxlYWtlZD8pAG5kYmNsdXN0ZXJfZnJlZV9zaGFyZTogJXMgdXNlX2NvdW50OiAldQBuZGJjbHVzdGVyX21hcmtfc2hhcmVfZHJvcHBlZDogJXMgdXNlX2NvdW50OiAldQBuZGJjbHVzdGVyX21hcmtfc2hhcmVfZHJvcHBlZDogZGVzdHJveXMgc2hhcmUgJXMAQ291bGQgbm90IGFsbG9jYXRlIFRoZF9uZGIgb2JqZWN0AE5EQiBCaW5sb2c6IE5kYiB0YWJsZXMgaW5pdGlhbGx5IHJlYWQgb25seS4AbmRiIHV0aWwgdGhyZWFkOiBtYWxsb2MgZmFpbHVyZSwgcXVlcnkgY2FjaGUgbm90IG1haW50YWluZWQgcHJvcGVybHkAVHJ5aW5nIHRvIHNldCBuZGJfcmVjdl90aHJlYWRfY3B1X21hc2sgdG8gaWxsZWdhbCB2YWx1ZSA9ICVzLCBpZ25vcmVkAFRyeWluZyB0byBzZXQgdG9vIG1hbnkgQ1BVJ3MgaW4gbmRiX3JlY3ZfdGhyZWFkX2NwdV9tYXNrLCBpZ25vcmVkIHRoaXMgdmFyaWFibGUsIGVycm9uZXVzIHZhbHVlID0gJXMAZGJ1Z19jaGVja19zaGFyZXMgb3BlbjoAICAlcy4lczogc3RhdGU6ICVzKCV1KSB1c2VfY291bnQ6ICV1AGRidWdfY2hlY2tfc2hhcmVzIGRyb3BwZWQ6AEludmFsaWQgKG9sZD8pIHRhYmxlIG9yIGRhdGFiYXNlIG5hbWUgJyVzJwBSZWNvdmVyaW5nIGFmdGVyIGEgY3Jhc2ggdXNpbmcgJXMAQ2Fubm90IHBlcmZvcm0gYXV0b21hdGljIGNyYXNoIHJlY292ZXJ5IHdoZW4gLS10Yy1oZXVyaXN0aWMtcmVjb3ZlciBpcyB1c2VkAEJhZCBtYWdpYyBoZWFkZXIgaW4gdGMgbG9nAFJlY292ZXJ5IGZhaWxlZCEgWW91IG11c3QgZW5hYmxlIGV4YWN0bHkgJWQgc3RvcmFnZSBlbmdpbmVzIHRoYXQgc3VwcG9ydCB0d28tcGhhc2UgY29tbWl0IHByb3RvY29sAENyYXNoIHJlY292ZXJ5IGZhaWxlZC4gRWl0aGVyIGNvcnJlY3QgdGhlIHByb2JsZW0gKGlmIGl0J3MsIGZvciBleGFtcGxlLCBvdXQgb2YgbWVtb3J5IGVycm9yKSBhbmQgcmVzdGFydCwgb3IgZGVsZXRlIHRjIGxvZyBhbmQgc3RhcnQgbXlzcWxkIHdpdGggLS10Yy1oZXVyaXN0aWMtcmVjb3Zlcj17Y29tbWl0fHJvbGxiYWNrfQBIZXVyaXN0aWMgY3Jhc2ggcmVjb3ZlcnkgbW9kZQBIZXVyaXN0aWMgY3Jhc2ggcmVjb3ZlcnkgZmFpbGVkAFBsZWFzZSByZXN0YXJ0IG15c3FsZCB3aXRob3V0IC0tdGMtaGV1cmlzdGljLXJlY292ZXIARmFpbGVkIHRvIGNyZWF0ZSBvciByZWNvdmVyIHJlcGxpY2F0aW9uIGluZm8gcmVwb3NpdG9yaWVzLgBEZXRlY3RlZCBtaXNjb25maWd1cmF0aW9uOiByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdhcyBjb25maWd1cmVkIHdpdGggQVVUT19QT1NJVElPTiA9IDEsIGJ1dCB0aGUgc2VydmVyIHdhcyBzdGFydGVkIHdpdGggLS1ndGlkLW1vZGU9b2ZmLiBFaXRoZXIgcmVjb25maWd1cmUgcmVwbGljYXRpb24gdXNpbmcgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQVVUT19QT1NJVElPTiA9IDAgRk9SIENIQU5ORUwgJyUuMTkycycsIG9yIGNoYW5nZSBHVElEX01PREUgdG8gc29tZSB2YWx1ZSBvdGhlciB0aGFuIE9GRiwgYmVmb3JlIHN0YXJ0aW5nIHRoZSByZXBsaWNhIHJlY2VpdmVyIHRocmVhZC4AUmVwbGljYTogQ291bGQgbm90IHN0YXJ0IHJlcGxpY2EgZm9yIGNoYW5uZWwgJyVzJy4gb3BlcmF0aW9uIGRpc2NvbnRpbnVlZABSZXBsaWNhOiBDb3VsZCBub3Qgc3RvcCByZXBsaWNhIGZvciBjaGFubmVsICclcycgb3BlcmF0aW9uIGRpc2NvbnRpbnVlZABFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6IENvdWxkIG5vdCBsb2NhdGUgcm90YXRlIGV2ZW50IGZyb20gdGhlIHNvdXJjZS4ARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiBFcnJvciByZWFkaW5nIGV2ZW50cyBmcm9tIHJlbGF5IGxvZzogJWQARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiBFcnJvciB3aGlsZSBmcmVlaW5nIElPX0NBQ0hFIG9iamVjdABSZWxheSBsb2cgcmVjb3Zlcnkgc2tpcHBlZCBmb3IgZ3JvdXAgcmVwbGljYXRpb24gY2hhbm5lbC4ARXJyb3IgZHVyaW5nIC0tcmVsYXktbG9nLXJlY292ZXJ5OiAlcwBFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6IENvdWxkIG5vdCByZWFkIHJlbGF5IGxvZyBpbmRleCBmaWxlIGR1ZSB0byBhbiBJTyBlcnJvci4AUmVjb3ZlcnkgZnJvbSBzb3VyY2UgcG9zICVsZCBhbmQgZmlsZSAlcyVzLiBQcmV2aW91cyByZWxheSBsb2cgcG9zIGFuZCByZWxheSBsb2cgZmlsZSBoYWQgYmVlbiBzZXQgdG8gJWxsZCwgJXMgcmVzcGVjdGl2ZWx5LgBFcnJvciBkdXJpbmcgLS1yZWxheS1sb2ctcmVjb3Zlcnk6IHJlcGxpY2F0ZV9zYW1lX3NlcnZlcl9pZCBpcyBpbiB1c2UgYW5kIHNxbCB0aHJlYWQncyBwb3NpdGlvbnMgYXJlIG5vdCBpbml0aWFsaXplZCwgaGVuY2UgcmVsYXkgbG9nIHJlY292ZXJ5IGNhbm5vdCBoYXBwZW4uAE1UQSByZWNvdmVyeTogc3RhcnRpbmcgY29vcmRpbmF0b3IgdGhyZWFkIHRvIGZpbGwgTVRBIGdhcHMuAE1UQSByZWNvdmVyeTogZmFpbGVkIHRvIHN0YXJ0IHRoZSBjb29yZGluYXRvciB0aHJlYWQuIENoZWNrIHRoZSBlcnJvciBsb2cgZm9yIGFkZGl0aW9uYWwgZGV0YWlscy4ATVRBIHJlY292ZXJ5OiBhdXRvbWF0aWMgcmVjb3ZlcnkgZmFpbGVkLiBFaXRoZXIgdGhlIHJlcGxpY2Egc2VydmVyIGhhZCBzdG9wcGVkIGR1ZSB0byBhbiBlcnJvciBkdXJpbmcgYW4gZWFybGllciBzZXNzaW9uIG9yIHJlbGF5IGxvZ3MgYXJlIGNvcnJ1cHRlZC5GaXggdGhlIGNhdXNlIG9mIHRoZSByZXBsaWNhIHNpZGUgZXJyb3IgYW5kIHJlc3RhcnQgdGhlIHJlcGxpY2Egc2VydmVyIG9yIGNvbnNpZGVyIHVzaW5nIFJFU0VUIFJFUExJQ0EuAEZhaWxlZCB0byBvcGVuIHRoZSByZWxheSBsb2cgJyVzJyAocmVsYXlfbG9nX3BvcyAlcykuAE1UQSByZWNvdmVyeTogY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4AU2VydmVyIGlkIG5vdCBzZXQsIHdpbGwgbm90IHN0YXJ0IHJlcGxpY2ElcwBDYW4ndCBjcmVhdGUgcmVwbGljYSB0aHJlYWQlcy4AVGhlIHJlcGxpY2EgSU8gdGhyZWFkJXMgd2FzIGtpbGxlZCB3aGlsZSBleGVjdXRpbmcgaW5pdGlhbGl6YXRpb24gcXVlcnkgJyVzJwBUaGUgc291cmNlJ3MgVVVJRCBoYXMgY2hhbmdlZCwgYWx0aG91Z2ggdGhpcyBzaG91bGQgbm90IGhhcHBlbiB1bmxlc3MgeW91IGhhdmUgY2hhbmdlZCBpdCBtYW51YWxseS4gVGhlIG9sZCBVVUlEIHdhcyAlcy4ARm91bmQgYSBzb3VyY2Ugd2l0aCBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBvbGRlciB0aGFuIDUuMC4gV2l0aCBjaGVja3N1bXMgZW5hYmxlZCBvbiB0aGUgcmVwbGljYSwgcmVwbGljYXRpb24gbWlnaHQgbm90IHdvcmsgY29ycmVjdGx5LiBUbyBlbnN1cmUgY29ycmVjdCByZXBsaWNhdGlvbiwgcmVzdGFydCB0aGUgcmVwbGljYSBzZXJ2ZXIgd2l0aCAtLXJlcGxpY2Ffc3FsX3ZlcmlmeV9jaGVja3N1bT0wLgAiU0VMRUNUIFVOSVhfVElNRVNUQU1QKCkiIGZhaWxlZCBvbiBzb3VyY2UsIGRvIG5vdCB0cnVzdCBjb2x1bW4gU2Vjb25kc19CZWhpbmRfU291cmNlIG9mIFNIT1cgUkVQTElDQSBTVEFUVVMuIEVycm9yOiAlcyAoJWQpAEZhaWxlZCB0byBmbHVzaCBjb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkuAFRoZSBsZW5ndGggb2YgcmVwb3J0X2hvc3QgaXMgJXp1LiBJdCBpcyBsYXJnZXIgdGhhbiB0aGUgbWF4IGxlbmd0aCglZCksIHNvIHRoaXMgcmVwbGljYSBjYW5ub3QgYmUgcmVnaXN0ZXJlZCB0byB0aGUgc291cmNlJXMuAFRoZSBsZW5ndGggb2YgcmVwb3J0X3VzZXIgaXMgJXp1LiBJdCBpcyBsYXJnZXIgdGhhbiB0aGUgbWF4IGxlbmd0aCglZCksIHNvIHRoaXMgcmVwbGljYSBjYW5ub3QgYmUgcmVnaXN0ZXJlZCB0byB0aGUgc291cmNlJXMuAFRoZSBsZW5ndGggb2YgcmVwb3J0X3Bhc3N3b3JkIGlzICV6dS4gSXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heCBsZW5ndGgoJWQpLCBzbyB0aGlzIHJlcGxpY2EgY2Fubm90IGJlIHJlZ2lzdGVyZWQgdG8gdGhlIHNvdXJjZSVzLgBFcnJvciBvbiAlczogJWQgICVzLCB3aWxsIHJldHJ5IGluICVkIHNlY3MARXJyb3IgcmVhZGluZyBwYWNrZXQgZnJvbSBzZXJ2ZXIlczogJXMgKHNlcnZlcl9lcnJubz0lZCkAUmVwbGljYSVzOiByZWNlaXZlZCBlbmQgcGFja2V0IGZyb20gc2VydmVyIGR1ZSB0byBkdW1wIHRocmVhZCBiZWluZyBraWxsZWQgb24gc291cmNlLiBEdW1wIHRocmVhZHMgYXJlIGtpbGxlZCBmb3IgZXhhbXBsZSBkdXJpbmcgc291cmNlIHNodXRkb3duLCBleHBsaWNpdGx5IGJ5IGEgdXNlciwgb3Igd2hlbiB0aGUgc291cmNlIHJlY2VpdmVzIGEgYmlubG9nIHNlbmQgcmVxdWVzdCBmcm9tIGEgZHVwbGljYXRlIHNlcnZlciBVVUlEIDwlcz4gOiBFcnJvciAlcwBNdWx0aS10aHJlYWRlZCByZXBsaWNhIHN0YXRpc3RpY3Mlczogc2Vjb25kcyBlbGFwc2VkID0gJWx1OyBldmVudHMgYXNzaWduZWQgPSAlbGx1OyB3b3JrZXIgcXVldWVzIGZpbGxlZCBvdmVyIG92ZXJydW4gbGV2ZWwgPSAlbHU7IHdhaXRlZCBkdWUgYSBXb3JrZXIgcXVldWUgZnVsbCA9ICVsdTsgd2FpdGVkIGR1ZSB0aGUgdG90YWwgc2l6ZSA9ICVsdTsgd2FpdGVkIGF0IGNsb2NrIGNvbmZsaWN0cyA9ICVsbHUgd2FpdGVkIChjb3VudCkgd2hlbiBXb3JrZXJzIG9jY3VwaWVkID0gJWx1IHdhaXRlZCB3aGVuIFdvcmtlcnMgb2NjdXBpZWQgPSAlbGx1AFJlcGxpY2ElczogTVRBIFJlY292ZXJ5IGhhcyBjb21wbGV0ZWQgYXQgcmVsYXkgbG9nICVzLCBwb3NpdGlvbiAlbGx1IHNvdXJjZSBsb2cgJXMsIHBvc2l0aW9uICVsbHUuAEVycm9yIGluaXRpYWxpemluZyByZWxheSBsb2cgcG9zaXRpb24lczogJXMAUmVwbGljYSBJL08gdGhyZWFkJXM6IGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzQCVzOiVkJyxyZXBsaWNhdGlvbiBzdGFydGVkIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzAFJlcGxpY2EgSS9PIHRocmVhZCVzIGtpbGxlZCB3aGlsZSBjb25uZWN0aW5nIHRvIHNvdXJjZQBSZXBsaWNhIEkvTyB0aHJlYWQgY291bGRuJ3QgcmVnaXN0ZXIgb24gc291cmNlAEZvcmNpbmcgdG8gcmVjb25uZWN0IHJlcGxpY2EgSS9PIHRocmVhZCVzAEZhaWxlZCBvbiByZXF1ZXN0X2R1bXAoKSVzAExvZyBlbnRyeSBvbiBzb3VyY2UgaXMgbG9uZ2VyIHRoYW4gcmVwbGljYV9tYXhfYWxsb3dlZF9wYWNrZXQgKCVsdSkgb24gcmVwbGljYS4gSWYgdGhlIGVudHJ5IGlzIGNvcnJlY3QsIHJlc3RhcnQgdGhlIHNlcnZlciB3aXRoIGEgaGlnaGVyIHZhbHVlIG9mIHJlcGxpY2FfbWF4X2FsbG93ZWRfcGFja2V0AFN0b3BwaW5nIHJlcGxpY2EgSS9PIHRocmVhZCBkdWUgdG8gb3V0LW9mLW1lbW9yeSBlcnJvciBmcm9tIHNvdXJjZQBSZXBsaWNhIEkvTyB0aHJlYWQgYWJvcnRlZCB3aGlsZSB3YWl0aW5nIGZvciByZWxheSBsb2cgc3BhY2UAUmVwbGljYSBJL08gdGhyZWFkIGV4aXRpbmclcywgcmVhZCB1cCB0byBsb2cgJyVzJywgcG9zaXRpb24gJXMARmFpbGVkIGR1cmluZyByZXBsaWNhIHdvcmtlciBpbml0aWFsaXphdGlvbiVzAFJlcGxpY2E6IE1UQSBncm91cCByZWNvdmVyeSBhcHBsaWVyIG1ldGFkYXRhIGJhc2VkIG9uIFdvcmtlci1JZCAlbHUsIGdyb3VwX3JlbGF5X2xvZ19uYW1lICVzLCBncm91cF9yZWxheV9sb2dfcG9zICVsbHUgZ3JvdXBfc291cmNlX2xvZ19uYW1lICVzLCBncm91cF9zb3VyY2VfbG9nX3BvcyAlbGx1AEVycm9yIGxvb2tpbmcgZm9yICVzLgBSZXBsaWNhOiBNVEEgZ3JvdXAgcmVjb3ZlcnkgYXBwbGllciBtZXRhZGF0YSBncm91cF9zb3VyY2VfbG9nX25hbWUgJXMsIGV2ZW50X3NvdXJjZV9sb2dfcG9zICVsbHUuAEVycm9yIGxvb2tpbmcgZm9yIGZpbGUgYWZ0ZXIgJXMuAFRoaXMgYW4gZXJyb3IgY250ICE9IG10YV9jaGVja3BvaW50X3BlcmlvZABGYWlsZWQgZHVyaW5nIHJlcGxpY2Egd29ya2VyIHRocmVhZCBjcmVhdGlvbiVzAEZhaWxlZCBkdXJpbmcgcmVwbGljYSB3b3JrZXIgdGhyZWFkIGNyZWF0aW9uJXMgKGVycm5vPSAlZCkARmFpbGVkIHRvIGluaXQgcGFydGl0aW9ucyBoYXNoAFJlcGxpY2EgU1FMIHRocmVhZCA6IE5EQiA6IFRhYmxlcyBub3QgYXZhaWxhYmxlIGFmdGVyICVsdSBzZWNvbmRzLiBDb25zaWRlciBpbmNyZWFzaW5nIC0tbmRiLXdhaXQtc2V0dXAgdmFsdWUAUmVwbGljYSBTUUwgdGhyZWFkJXMgaW5pdGlhbGl6ZWQsIHN0YXJ0aW5nIHJlcGxpY2F0aW9uIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzLCByZWxheSBsb2cgJyVzJyBwb3NpdGlvbjogJXMAJ1NRTF9SRVBMSUNBX1NLSVBfQ09VTlRFUj0lbGQnIGV4ZWN1dGVkIGF0IHJlbGF5X2xvZ19maWxlPSclcycsIHJlbGF5X2xvZ19wb3M9JyVsZCcsIHNvdXJjZV9sb2dfbmFtZT0nJXMnLCBzb3VyY2VfbG9nX3Bvcz0nJWxkJyBhbmQgbmV3IHBvc2l0aW9uIGF0IHJlbGF5X2xvZ19maWxlPSclcycsIHJlbGF5X2xvZ19wb3M9JyVsZCcsIHNvdXJjZV9sb2dfbmFtZT0nJXMnLCBzb3VyY2VfbG9nX3Bvcz0nJWxkJyAAUmVwbGljYSAoYWRkaXRpb25hbCBpbmZvKTogJXMgRXJyb3JfY29kZTogTVktJTA2ZABSZXBsaWNhOiAlcyBFcnJvcl9jb2RlOiBNWS0lMDZkAEVycm9yIGxvYWRpbmcgdXNlci1kZWZpbmVkIGxpYnJhcnksIHJlcGxpY2EgU1FMIHRocmVhZCBhYm9ydGVkLiBJbnN0YWxsIHRoZSBtaXNzaW5nIGxpYnJhcnksIGFuZCByZXN0YXJ0IHRoZSByZXBsaWNhIFNRTCB0aHJlYWQgd2l0aCAiU1RBUlQgUkVQTElDQSIuIFdlIHN0b3BwZWQgYXQgbG9nICclcycgcG9zaXRpb24gJXMARXJyb3IgcnVubmluZyBxdWVyeSwgcmVwbGljYSBTUUwgdGhyZWFkIGFib3J0ZWQuIEZpeCB0aGUgcHJvYmxlbSwgYW5kIHJlc3RhcnQgdGhlIHJlcGxpY2EgU1FMIHRocmVhZCB3aXRoICJTVEFSVCBSRVBMSUNBIi4gV2Ugc3RvcHBlZCBhdCBsb2cgJyVzJyBwb3NpdGlvbiAlcwBSZXBsaWNhIFNRTCB0aHJlYWQlcyBleGl0aW5nLCByZXBsaWNhdGlvbiBzdG9wcGVkIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzAFJlYWQgaW52YWxpZCBldmVudCBmcm9tIHNvdXJjZTogJyVzJywgc291cmNlIGNvdWxkIGJlIGNvcnJ1cHQgYnV0IGEgbW9yZSBsaWtlbHkgY2F1c2Ugb2YgdGhpcyBpcyBhIGJ1ZwBUaGUgcXVldWUgZXZlbnQgZmFpbGVkIGZvciBjaGFubmVsICclcycgYXMgaXRzIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4AQW4gdW5leHBlY3RlZCBldmVudCBzZXF1ZW5jZSB3YXMgZGV0ZWN0ZWQgYnkgdGhlIElPIHRocmVhZCB3aGlsZSBxdWV1aW5nIHRoZSBldmVudCByZWNlaXZlZCBmcm9tIHNvdXJjZSAnJXMnIGJpbmFyeSBsb2cgZmlsZSwgYXQgcG9zaXRpb24gJWxsdS4AJyVzJyBjYW4gbm90IGJlIHVzZWQgYXMgY2xpZW50IGNoYXJhY3RlciBzZXQuICclcycgd2lsbCBiZSB1c2VkIGFzIGRlZmF1bHQgY2xpZW50IGNoYXJhY3RlciBzZXQgd2hpbGUgY29ubmVjdGluZyB0byBzb3VyY2UuAFJlcGxpY2ElczogY29ubmVjdGVkIHRvIHNvdXJjZSAnJXNAJXM6JWQnLHJlcGxpY2F0aW9uIHJlc3VtZWQgaW4gbG9nICclcycgYXQgcG9zaXRpb24gJXMAbmV4dCBsb2cgJyVzJyBpcyBhY3RpdmUAbmV4dCBsb2cgJyVzJyBpcyBub3QgYWN0aXZlAFJlcGxpY2EgU1FMIHRocmVhZCVzOiBJL08gZXJyb3IgcmVhZGluZyBldmVudCAoZXJybm86ICVkICBjdXJfbG9nLT5lcnJvcjogJWQpAEVycm9yIHJlYWRpbmcgcmVsYXkgbG9nIGV2ZW50JXM6ICVzACdDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPJXMgZXhlY3V0ZWQnLiBQcmV2aW91cyBzdGF0ZSBzb3VyY2VfaG9zdD0nJXMnLCBzb3VyY2VfcG9ydD0gJXUsIHNvdXJjZV9sb2dfZmlsZT0nJXMnLCBzb3VyY2VfbG9nX3Bvcz0gJWxkLCBzb3VyY2VfYmluZD0nJXMnLiBOZXcgc3RhdGUgc291cmNlX2hvc3Q9JyVzJywgc291cmNlX3BvcnQ9ICV1LCBzb3VyY2VfbG9nX2ZpbGU9JyVzJywgc291cmNlX2xvZ19wb3M9ICVsZCwgc291cmNlX2JpbmQ9JyVzJy4AUmVwbGljYTogQ2Fubm90IGNyZWF0ZSBuZXcgY29ubmVjdGlvbiBtZXRhZGF0YSBzdHJ1Y3R1cmUgd2hlbiByZXBvc2l0b3JpZXMgYXJlIG9mIHR5cGUgRklMRS4gQ29udmVydCByZXBsaWNhIHJlcG9zaXRvcmllcyB0byBUQUJMRSB0byByZXBsaWNhdGUgZnJvbSBtdWx0aXBsZSBzb3VyY2VzLgBsb2cgJXMgbGlzdGVkIGluIHRoZSBpbmRleCwgYnV0IGZhaWxlZCB0byBzdGF0LgBDb3VsZCBub3QgZmluZCBmaXJzdCBsb2cgd2hpbGUgY291bnRpbmcgcmVsYXkgbG9nIHNwYWNlLgBVbmFibGUgdG8gdXNlIHJlcGxpY2EncyB0ZW1wb3JhcnkgZGlyZWN0b3J5ICclcycuAFBhdGggJyVzJyBpcyBhIGRpcmVjdG9yeSBuYW1lLCBwbGVhc2Ugc3BlY2lmeSBhIGZpbGUgbmFtZSBmb3IgLS1yZWxheS1sb2cgb3B0aW9uLgBQYXRoICclcycgaXMgYSBkaXJlY3RvcnkgbmFtZSwgcGxlYXNlIHNwZWNpZnkgYSBmaWxlIG5hbWUgZm9yIC0tcmVsYXktbG9nLWluZGV4IG9wdGlvbi4ATmVpdGhlciAtLXJlbGF5LWxvZyBub3IgLS1yZWxheS1sb2ctaW5kZXggd2VyZSB1c2VkOyBzbyByZXBsaWNhdGlvbiBtYXkgYnJlYWsgd2hlbiB0aGlzIE15U1FMIHNlcnZlciBhY3RzIGFzIGEgcmVwbGljYSBhbmQgaGFzIGhpcyBob3N0bmFtZSBjaGFuZ2VkISEgUGxlYXNlIHVzZSAnLS1yZWxheS1sb2c9JXMnIHRvIGF2b2lkIHRoaXMgcHJvYmxlbS4ARmFpbGVkIGluIG9wZW5faW5kZXhfZmlsZSgpIGNhbGxlZCBmcm9tIFJlbGF5X2xvZ19pbmZvOjpybGlfaW5pdF9pbmZvKCkuAEZhaWxlZCBpbiBpbml0X2d0aWRfc2V0cygpIGNhbGxlZCBmcm9tIFJlbGF5X2xvZ19pbmZvOjpybGlfaW5pdF9pbmZvKCkuAEZhaWxlZCBpbiBvcGVuX2xvZygpIGNhbGxlZCBmcm9tIFJlbGF5X2xvZ19pbmZvOjpybGlfaW5pdF9pbmZvKCkuAEVycm9yIHdyaXRpbmcgcmVsYXkgbG9nIGNvbmZpZ3VyYXRpb24uAGdldF9uZGJfYmxvYnNfdmFsdWU6IG15X21hbGxvYygldSkgZmFpbGVkAE5EQjogVGhyZWFkIGlkICV1IHRpbWVkIG91dCAoMzBzKSB3YWl0aW5nIGZvciBlcG9jaCAldS8ldSB0byBiZSBoYW5kbGVkLiAgUHJvZ3Jlc3MgOiAldS8ldSAtPiAldS8ldS4ATkRCOiBJbmNvbnNpc3RlbmN5IGRldGVjdGVkIGluIGRpc3RyaWJ1dGVkIHByaXZpbGVnZSB0YWJsZXMuIFRhYmxlICclcy4lcycgaXMgbm90IGRpc3RyaWJ1dGVkAE5EQjogQ3JlYXRpbmcgJXMuJXMATkRCOiBGbHVzaGluZyAlcy4lcwBOREI6IENsZWFuaW5nIHN0cmF5IHRhYmxlcyBmcm9tIGRhdGFiYXNlICclcycATkRCOiBEaXNjb3ZlcmVkIG1pc3NpbmcgZGF0YWJhc2UgJyVzJwBOREI6IERpc2NvdmVyZWQgcmVtYWluaW5nIGRhdGFiYXNlICclcycATkRCOiBuZGJjbHVzdGVyX2ZpbmRfYWxsX2RhdGFiYXNlcyByZXRyeTogJXUgLSAlcwBOREI6IG5kYmNsdXN0ZXJfZmluZF9hbGxfZGF0YWJhc2VzIGZhaWw6ICV1IC0gJXMATkRCOiBza2lwcGluZyBzZXR1cCB0YWJsZSAlcy4lcywgaW4gc3RhdGUgJWQATkRCOiBmYWlsZWQgdG8gc2V0dXAgdGFibGUgJXMuJXMsIGVycm9yOiAlZCwgJXMATkRCOiBtaXNzaW5nIGZybSBmb3IgJXMuJXMsIGRpc2NvdmVyaW5nLi4uAE5EQjogbWlzbWF0Y2ggaW4gZnJtIGZvciAlcy4lcywgZGlzY292ZXJpbmcuLi4AbmRiX2JpbmxvZ19zZXR1cDogQ2xlYW4gdXAgbGVmdG92ZXJzAE5EQiAlczogd2FpdGluZyBtYXggJXUgc2VjIGZvciAlcyAlcy4gIGVwb2NoczogKCV1LyV1LCV1LyV1LCV1LyV1KSAgaW5qZWN0b3IgcHJvY19pbmZvOiAlcwBOREIgJXM6IHdhaXRpbmcgbWF4ICV1IHNlYyBmb3IgJXMgJXMuICBlcG9jaHM6ICgldS8ldSwldS8ldSwldS8ldSkgIGluamVjdG9yIHByb2NfaW5mbzogJXMgbWFwOiAleCUwOHgATkRCICVzOiBkaXN0cmlidXRpbmcgJXMgdGltZWQgb3V0LiBJZ25vcmluZy4uLgBOREIgJXM6IG5vdCB3YWl0aW5nIGZvciBkaXN0cmlidXRpbmcgJXMATkRCOiBkaXN0cmlidXRlZCAlcy4lcygldS8ldSkgdHlwZTogJXMoJXUpIHF1ZXJ5OiAnJXMnIHRvICV4JTA4eABOREI6IGRpc3RyaWJ1dGlvbiBvZiAlcy4lcygldS8ldSkgdHlwZTogJXMoJXUpIHF1ZXJ5OiAnJXMnIC0gY29tcGxldGUhAE5EQiBTY2hlbWEgZGlzdDogRGF0YSBub2RlOiAlZCBmYWlsZWQsIHN1YnNjcmliZXIgYml0bWFzayAleCUwOHgATkRCIFNjaGVtYSBkaXN0OiBEYXRhIG5vZGU6ICVkIHJlcG9ydHMgc3Vic2NyaWJlIGZyb20gbm9kZSAlZCwgc3Vic2NyaWJlciBiaXRtYXNrICV4JTA4eABOREIgU2NoZW1hIGRpc3Q6IERhdGEgbm9kZTogJWQgcmVwb3J0cyB1bnN1YnNjcmliZSBmcm9tIG5vZGUgJWQsIHN1YnNjcmliZXIgYml0bWFzayAleCUwOHgATkRCIEJpbmxvZzogQ291bGQgbm90IGRpc2NvdmVyIHRhYmxlICclcy4lcycgZnJvbSBiaW5sb2cgc2NoZW1hIGV2ZW50ICclcycgZnJvbSBub2RlICVkLiBteV9lcnJubzogJWQATkRCOiB1bmtub3duIHZhbHVlIGZvciBiaW5sb2cgc2lnbmFsbGluZyAweCVYLCAlcyBub3QgbG9nZ2VkAE5EQjogcmVwbHkgdG8gJXMuJXMoJXUvJXUpIGZyb20gJXMgdG8gJXglMDh4AE5EQjogQ291bGQgbm90IHJlbGVhc2Ugc2xvY2sgb24gJyVzLiVzJywgRXJyb3IgY29kZTogJWQgTWVzc2FnZTogJXMATkRCIHNjaGVtYTogQ291bGQgbm90IGZpbmQgdGFibGUgJyVzLiVzJyBpbiBOREIATkRCOiBEaXNjYXJkaW5nIGV2ZW50Li4ubm8gb2JqOiAlcyAoJXUvJXUpAE5EQjogRGlzY2FyZGluZyBldmVudC4uLmtleTogJXMgbm9uIG1hdGNoaW5nIGlkL3ZlcnNpb24gWyV1LyV1XSAhPSBbJXUvJXVdAE5EQjogQ0xFQVJfU0xPQ0sga2V5OiAlcygldS8ldSkgJXglMDh4LCBmcm9tICVzIHRvICV4JTA4eABOREIgQmlubG9nOiBTa2lwcGluZyBsb2NhbGx5IGRlZmluZWQgdGFibGUgJyVzLiVzJyBmcm9tIGJpbmxvZyBzY2hlbWEgZXZlbnQgJyVzJyBmcm9tIG5vZGUgJWQuAE5EQiBCaW5sb2c6IGhhbmRsaW5nIG9ubGluZSBhbHRlci9yZW5hbWUATkRCIEJpbmxvZzogRmFpbGVkIHRvIHJlLW9wZW4gc2hhZG93IHRhYmxlICVzLiVzAE5EQiBCaW5sb2c6IGhhbmRsaW5nIG9ubGluZSBhbHRlci9yZW5hbWUgZG9uZQBOREIgQmlubG9nOiBTa2lwcGluZyBkcm9wIG9mIGxvY2FsbHkgZGVmaW5lZCB0YWJsZSAnJXMuJXMnIGZyb20gYmlubG9nIHNjaGVtYSBldmVudCAnJXMnIGZyb20gbm9kZSAlZC4gAE5EQiBCaW5sb2c6IFNraXBwaW5nIHJlbmFtaW5nIGxvY2FsbHkgZGVmaW5lZCB0YWJsZSAnJXMuJXMnIGZyb20gYmlubG9nIHNjaGVtYSBldmVudCAnJXMnIGZyb20gbm9kZSAlZC4gAE5EQiBCaW5sb2c6IFNraXBwaW5nIGRyb3AgZGF0YWJhc2UgJyVzJyBzaW5jZSBpdCBjb250YWluZWQgbG9jYWwgdGFibGVzIGJpbmxvZyBzY2hlbWEgZXZlbnQgJyVzJyBmcm9tIG5vZGUgJWQuIABHb3QgZGlzdF9wcml2IGV2ZW50OiAlcywgZmx1c2hpbmcgcHJpdmlsZWdlcwBOREI6IGdvdCBzY2hlbWEgZXZlbnQgb24gJXMuJXMoJXUvJXUpIHF1ZXJ5OiAnJXMnIHR5cGU6ICVzKCVkKSBub2RlOiAldSBzbG9jazogJXglMDh4AE5EQiBzY2hlbWE6IFNraXBwaW5nIG9sZCBzY2hlbWEgb3BlcmF0aW9uKFJFTkFNRV9UQUJMRV9ORVcpIG9uICVzLiVzAE5EQiBTY2hlbWEgZGlzdDogY2x1c3RlciBmYWlsdXJlIGF0IGVwb2NoICV1LyV1LgBOREIgQmlubG9nOiBuZGIgdGFibGVzIGluaXRpYWxseSByZWFkIG9ubHkgb24gcmVjb25uZWN0LgBOREIgU2NoZW1hIGRpc3Q6IHVua25vd24gZXZlbnQgJXUsIGlnbm9yaW5nLi4uAE5EQiBCaW5sb2c6IE9wZW5pbmcgbmRiX2JpbmxvZ19pbmRleDogJWQsICclcycATkRCIEJpbmxvZzogVW5hYmxlIHRvIGxvY2sgdGFibGUgbmRiX2JpbmxvZ19pbmRleABOREIgQmlubG9nOiBJbmplY3RpbmcgcmFuZG9tIHdyaXRlIGZhaWx1cmUATkRCIEJpbmxvZzogRmFpbGVkIHdyaXRpbmcgdG8gbmRiX2JpbmxvZ19pbmRleCBmb3IgZXBvY2ggJXUvJXUgIG9yaWdfc2VydmVyX2lkICV1IG9yaWdfZXBvY2ggJXUvJXUgd2l0aCBlcnJvciAlZC4ATkRCIEJpbmxvZzogV3JpdGluZyByb3cgKCVzKSB0byBuZGJfYmlubG9nX2luZGV4IC0gJXMATkRCIEJpbmxvZzogRmFpbGVkIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24gdG8gbmRiX2JpbmxvZ19pbmRleCB3aXRoIGVycm9yICVkLgBOREIgQmlubG9nOiBGYWlsZWQgd3JpdGluZyB0byBuZGJfYmlubG9nX2luZGV4IHRhYmxlIHdoaWxlIHJldHJ5aW5nIGFmdGVyIGtpbGwgZHVyaW5nIHNodXRkb3duAE5EQjogc2VydmVyIGlkIHNldCB0byB6ZXJvIC0gY2hhbmdlcyBsb2dnZWQgdG8gYmluIGxvZyB3aXRoIHNlcnZlciBpZCB6ZXJvIHdpbGwgYmUgbG9nZ2VkIHdpdGggYW5vdGhlciBzZXJ2ZXIgaWQgYnkgcmVwbGljYSBteXNxbGRzAE5EQjogc2VydmVyIGlkIHByb3ZpZGVkIGlzIHRvbyBsYXJnZSB0byBiZSByZXByZXNlbnRlZCBpbiBvcHRfc2VydmVyX2lkX2JpdHMgb3IgaXMgcmVzZXJ2ZWQATkRCOiAtLW5kYi1sb2ctdHJhbnNhY3Rpb24taWQgcmVxdWlyZXMgdjIgQmlubG9nIHJvdyBldmVudHMgYnV0IHNlcnZlciBpcyB1c2luZyB2MS4ATkRCOiBuZGItbG9nLWFwcGx5LXN0YXR1cyBmb3JjaW5nICVzLiVzIHRvIEZVTEwgVVNFX1dSSVRFAE5EQiBCaW5sb2c6ICVzACVzACVzAE5EQiBSZXBsaWNhOiBUYWJsZSAlcy4lcyA6IFBhcnNlIGVycm9yIG9uIGNvbmZsaWN0IGZuIDogJXMATkRCIFJlcGxpY2E6IFRhYmxlICVzLiVzIDogJXMATkRCIEJpbmxvZzogRmFpbGVkIHRvIGdldCB0YWJsZSAlcyBmcm9tIG5kYjogJXMsICVkAE5EQiBCaW5sb2c6IE5PVCBsb2dnaW5nICVzAE5EQiBCaW5sb2c6IEZBSUxFRCBDUkVBVEUgKERJU0NPVkVSKSBUQUJMRSBFdmVudDogJXMATkRCIEJpbmxvZzogQ1JFQVRFIChESVNDT1ZFUikgVEFCTEUgRXZlbnQ6ICVzAE5EQiBCaW5sb2c6IERJU0NPVkVSIFRBQkxFIEV2ZW50OiAlcwBOREIgQmlubG9nOiBsb2dnaW5nIG9mIHRhYmxlICVzIHdpdGggQkxPQiBhdHRyaWJ1dGUgYW5kIG5vIFBLIGlzIG5vdCBzdXBwb3J0ZWQATkRCIEJpbmxvZzogVW5hYmxlIHRvIGNyZWF0ZSBldmVudCBpbiBkYXRhYmFzZS4gRXZlbnQ6ICVzICBFcnJvciBDb2RlOiAlZCAgTWVzc2FnZTogJXMATkRCIEJpbmxvZzogVW5hYmxlIHRvIGNyZWF0ZSBldmVudCBpbiBkYXRhYmFzZS4gIEF0dGVtcHQgdG8gY29ycmVjdCB3aXRoIGRyb3AgZmFpbGVkLiBFdmVudDogJXMgRXJyb3IgQ29kZTogJWQgTWVzc2FnZTogJXMATkRCIEJpbmxvZzogVW5hYmxlIHRvIGNyZWF0ZSBldmVudCBpbiBkYXRhYmFzZS4gIEF0dGVtcHQgdG8gY29ycmVjdCB3aXRoIGRyb3Agb2ssIGJ1dCBjcmVhdGUgZmFpbGVkLiBFdmVudDogJXMgRXJyb3IgQ29kZTogJWQgTWVzc2FnZTogJXMATkRCIEJpbmxvZzogZGlzY292ZXIgcmV1c2luZyBvbGQgZXYgb3AATkRCIEJpbmxvZzogQ3JlYXRpbmcgTmRiRXZlbnRPcGVyYXRpb24gZmFpbGVkIGZvciAlcwBOREIgQmlubG9nOiBDcmVhdGluZyBOZGJFdmVudE9wZXJhdGlvbiBibG9iIGZpZWxkICV1IGhhbmRsZXMgZmFpbGVkIChjb2RlPSVkKSBmb3IgJXMATkRCIEJpbmxvZzogbmRiZXZlbnQtPmV4ZWN1dGUgZmFpbGVkIGZvciAlczsgJWQgJXMATkRCIEJpbmxvZzogbG9nZ2luZyAlcyAoJXMsJXMpAE5EQiBCaW5sb2c6IFVuYWJsZSB0byBkcm9wIGV2ZW50IGluIGRhdGFiYXNlLiBFdmVudDogJXMgRXJyb3IgQ29kZTogJWQgTWVzc2FnZTogJXMATkRCICVzOiAlcyB0aW1lZCBvdXQuIElnbm9yaW5nLi4uAE5EQiBCaW5sb2c6IHVuaGFuZGxlZCBlcnJvciAlZCBmb3IgdGFibGUgJXMATkRCIEJpbmxvZzogY2x1c3RlciBmYWlsdXJlIGZvciAlcyBhdCBlcG9jaCAldS8ldS4ATkRCIEJpbmxvZzogdW5rbm93biBub24gZGF0YSBldmVudCAlZCBmb3IgJXMuIElnbm9yaW5nLi4uAE5EQjogQmlubG9nIEluamVjdG9yIGRpc2NhcmRpbmcgcm93IGV2ZW50IG1ldGEgZGF0YSBhcyBzZXJ2ZXIgaXMgdXNpbmcgdjEgcm93IGV2ZW50cy4gKCV1ICV4KQByZW1vdmVfYWxsX2V2ZW50X29wZXJhdGlvbnM6IFJlbWFpbmluZyBvcGVuIHRhYmxlczogACAgJXMuJXMsIHVzZV9jb3VudDogJXUATkRCOiBDb3VsZCBub3QgZ2V0IGFwcGx5IHN0YXR1cyBzaGFyZQBOREIgQmlubG9nOiBTZXJ2ZXIgc2h1dGRvd24gZGV0ZWN0ZWQgd2hpbGUgd2FpdGluZyBmb3IgbmRiY2x1c3RlciB0byBzdGFydC4uLgBOREIgQmlubG9nOiBjbHVzdGVyIGhhcyBiZWVuIHJlc3RhcnRlZCAtLWluaXRpYWwgb3Igd2l0aCBvbGRlciBmaWxlc3lzdGVtLiBuZGJfbGF0ZXN0X2hhbmRsZWRfYmlubG9nX2Vwb2NoOiAldS8ldSwgd2hpbGUgY3VycmVudCBlcG9jaDogJXUvJXUuIFJFU0VUIFNPVVJDRSBzaG91bGQgYmUgaXNzdWVkLiBSZXNldHRpbmcgbmRiX2xhdGVzdF9oYW5kbGVkX2JpbmxvZ19lcG9jaC4ATkRCIEJpbmxvZzogY2x1c3RlciBoYXMgcmVjb25uZWN0ZWQuIENoYW5nZXMgdG8gdGhlIGRhdGFiYXNlIHRoYXQgb2NjdXJyZWQgd2hpbGUgZGlzY29ubmVjdGVkIHdpbGwgbm90IGJlIGluIHRoZSBiaW5sb2cATkRCIEJpbmxvZzogc3RhcnRpbmcgbG9nIGF0IGVwb2NoICV1LyV1AE5EQiBCaW5sb2c6IG5kYiB0YWJsZXMgd3JpdGFibGUATkRCIEJpbmxvZzogU2VydmVyIHNodXRkb3duIGRldGVjdGVkLi4uAE5EQiBCaW5sb2c6IEp1c3QgbG9zdCBzY2hlbWEgY29ubmVjdGlvbiwgaGFuZ2luZyBhcm91bmQATkRCIEJpbmxvZzogLi4uYW5kIG9uIG91ciB3YXkATkRCOiBlcnJvciAlbHUgKCVzKSBvbiBoYW5kbGluZyBiaW5sb2cgc2NoZW1hIGV2ZW50AE5EQiBCaW5sb2c6IEZhaWxlZCB0byBpbmplY3QgYXBwbHkgc3RhdHVzIHdyaXRlIHJvdwBOREIgQmlubG9nOiBFcnJvciBkdXJpbmcgUk9MTEJBQ0sgb2YgR0NJICV1LyV1LiBFcnJvcjogJWQATkRCIEJpbmxvZzogRXJyb3IgZHVyaW5nIENPTU1JVCBvZiBHQ0kuIEVycm9yOiAlZABOREIgQmlubG9nOiBsYXRlc3QgdHJhbnNhY3Rpb24gaW4gZXBvY2ggJXUvJXUgbm90IGluIGJpbmxvZyBhcyBsYXRlc3QgaGFuZGxlZCBlcG9jaCBpcyAldS8ldQBOREIgQmlubG9nOiBSZWxlYXNlIGV4dHJhIHNoYXJlIHJlZmVyZW5jZXMATkRCIEJpbmxvZzogcmVtYWluaW5nIG9wZW4gdGFibGVzOiAAICAlcy4lcyBzdGF0ZTogJXUgdXNlX2NvdW50OiAldQBXcm9uZyB0cmVlOiBQYXJlbnQgZG9lc24ndCBwb2ludCBhdCBwYXJlbnQAV3JvbmcgdHJlZTogUm9vdCBzaG91bGQgYmUgYmxhY2sAV3JvbmcgdHJlZTogRm91bmQgdHdvIHJlZCBpbiBhIHJvdwBXcm9uZyB0cmVlOiBGb3VuZCByaWdodCA9PSBsZWZ0AFdyb25nIHRyZWU6IEluY29ycmVjdCBibGFjay1jb3VudDogJWQgLSAlZABVc2VfY291bnQ6IFdyb25nIGNvdW50ICVsdSBmb3Igb3JpZ2luICVwAFVzZV9jb3VudDogV3JvbmcgY291bnQgZm9yIGtleSBhdCAlcCwgJWx1IHNob3VsZCBiZSAlbHUAV3JvbmcgbnVtYmVyIG9mIGVsZW1lbnRzOiAldSAoc2hvdWxkIGJlICV1KSBmb3IgdHJlZSBhdCAlcABFcnJvciByZWFkaW5nIHJlcGxpY2Egd29ya2VyIGNvbmZpZ3VyYXRpb24ARXJyb3Igd3JpdGluZyByZXBsaWNhIHdvcmtlciBjb25maWd1cmF0aW9uAEZhaWxlZCB0byBvcGVuIHJlbGF5IGxvZyAlcywgZXJyb3I6ICVzAEVycm9yIHdoZW4gd29ya2VyIHJlYWQgcmVsYXkgbG9nIGV2ZW50cyxyZWxheSBsb2cgbmFtZSAlcywgcG9zaXRpb24gJWxsdQBGYWlsZWQgdG8gZmluZCBuZXh0IHJlbGF5IGxvZyB3aGVuIHJldHJ5aW5nIHRoZSB0cmFuc2FjdGlvbiwgY3VycmVudCByZWxheSBsb2cgaXMgJXMATXVsdGktdGhyZWFkZWQgcmVwbGljYTogQ29vcmRpbmF0b3IgaGFzIHdhaXRlZCAlbHUgdGltZXMgaGl0dGluZyByZXBsaWNhX3BlbmRpbmdfam9ic19zaXplX21heDsgY3VycmVudCBldmVudCBzaXplID0gJXp1LgBGYWlsZWQgdG8gd3JpdGUgdGhlIERST1Agc3RhdGVtZW50IGZvciB0ZW1wb3JhcnkgdGFibGVzIHRvIGJpbmFyeSBsb2cAV2hlbiBvcGVuaW5nIEhFQVAgdGFibGUsIGNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgdG8gd3JpdGUgJ0RFTEVURSBGUk9NIGAlc2AuYCVzYCcgdG8gdGhlIGJpbmFyeSBsb2cAQ291bGRuJ3QgcmVwYWlyIHRhYmxlOiAlcy4lcwBDb3VsZCBub3QgcmVtb3ZlIHRlbXBvcmFyeSB0YWJsZTogJyVzJywgZXJyb3I6ICVkAFN5c3RlbSB0YWJsZSAnJS4qcycgaXMgZXhwZWN0ZWQgdG8gYmUgdHJhbnNhY3Rpb25hbC4ARXJyb3Igd3JpdGluZyBzb3VyY2UgY29uZmlndXJhdGlvbi4ARXJyb3IgcmVhZGluZyBzb3VyY2UgY29uZmlndXJhdGlvbi4AU1NMIGluZm9ybWF0aW9uIGluIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkgYXJlIGlnbm9yZWQgYmVjYXVzZSB0aGlzIE15U1FMIHJlcGxpY2Egd2FzIGNvbXBpbGVkIHdpdGhvdXQgU1NMIHN1cHBvcnQuAFBsdWdpbiAnJXMnIG9mIHR5cGUgJXMgZmFpbGVkIGRlaW5pdGlhbGl6YXRpb24AUGx1Z2luICclcycgaGFzIHJlZl9jb3VudD0lZCBhZnRlciBkZWluaXRpYWxpemF0aW9uLgBTaHV0dGluZyBkb3duIHBsdWdpbiAnJXMnAFBsdWdpbiAnJXMnIHJlZ2lzdHJhdGlvbiBhcyBhICVzIGZhaWxlZC4AQ291bGQgbm90IG9wZW4gdGhlIG15c3FsLnBsdWdpbiB0YWJsZS4gUGxlYXNlIHBlcmZvcm0gdGhlIE15U1FMIHVwZ3JhZGUgcHJvY2VkdXJlLgBDb3VsZG4ndCBsb2FkIHBsdWdpbiBuYW1lZCAnJXMnIHdpdGggc29uYW1lICclcycuAHBsdWdpbi1sb2FkIHBhcmFtZXRlciB0b28gbG9uZwBQbHVnaW4gJyVzJyB3aWxsIGJlIGZvcmNlZCB0byBzaHV0ZG93bgBQbHVnaW4gJyVzJyBoYXMgcmVmX2NvdW50PSVkIGFmdGVyIHNodXRkb3duLgBVbmtub3duIHZhcmlhYmxlIHR5cGUgY29kZSAweCV4IGluIHBsdWdpbiAnJXMnLgBTZXJ2ZXIgdmFyaWFibGUgJXMgb2YgcGx1Z2luICVzIHdhcyBmb3JjZWQgdG8gYmUgcmVhZC1vbmx5OiBzdHJpbmcgdmFyaWFibGUgd2l0aG91dCB1cGRhdGVfZnVuYyBhbmQgUExVR0lOX1ZBUl9NRU1BTExPQyBmbGFnAE1pc3NpbmcgdmFyaWFibGUgbmFtZSBpbiBwbHVnaW4gJyVzJy4AVGhyZWFkIGxvY2FsIHZhcmlhYmxlICclcycgbm90IGFsbG9jYXRlZCBpbiBwbHVnaW4gJyVzJy4AT3V0IG9mIG1lbW9yeSBmb3IgcGx1Z2luICclcycuAEJhZCBvcHRpb25zIGZvciBwbHVnaW4gJyVzJy4AUGFyc2luZyBvcHRpb25zIGZvciBwbHVnaW4gJyVzJyBmYWlsZWQuAFBsdWdpbiAnJXMnIGlzIGRpc2FibGVkLgBQbHVnaW4gJyVzJyBoYXMgY29uZmxpY3Rpbmcgc3lzdGVtIHZhcmlhYmxlcwBTZXR0aW5nIHBlcnNpc3RlbnQgb3B0aW9ucyBmb3IgcGx1Z2luICclcycgZmFpbGVkLgBGYWlsZWQgb24gbXlfbmV0X3dyaXRlLCB3cml0aW5nIHRvIHN0ZGVyciBpbnN0ZWFkOiAlcwBSZXRyeWluZyByZXBhaXIgb2Y6ICclcycgd2l0aG91dCBxdWljawBSZXRyeWluZyByZXBhaXIgb2Y6ICclcycgd2l0aCBrZXljYWNoZQBGb3VuZCAlcyBvZiAlcyByb3dzIHdoZW4gcmVwYWlyaW5nICclcycAV2FybmluZzogT3B0aW1pemUgdGFibGUgZ290IGVycm5vICVkIG9uICVzLiVzLCByZXRyeWluZwBXYXJuaW5nOiBFbmFibGluZyBrZXlzIGdvdCBlcnJubyAlZCBvbiAlcy4lcywgcmV0cnlpbmcAQ2hlY2tpbmcgdGFibGU6ICAgJyVzJwBSZWNvdmVyaW5nIHRhYmxlOiAnJXMnAEVycm9yIGluIGNyZWF0aW5nIFRBQkxFX1NIQVJFIGZyb20gJXMuZnJtIGZpbGUuAFVuYWJsZSB0byBhY3F1aXJlIGxvY2sgb24gJXMuJXMARXJyb3IgaW4gYWxsb2NhdGlvbiBtZW1vcnkgZm9yIFRBQkxFIG9iamVjdC4ARXJyb3IgaW4gY3JlYXRpbmcgaGFuZGxlciBvYmplY3QgZm9yIHRhYmxlICVzLiVzAEVycm9yIGluIHNldHRpbmcgaGFuZGxlciByZWZlcmVuY2UgZm9yIHRhYmxlICVzLiVzAFVuYWJsZSB0byBhY3F1aXJlIGxvY2sgb24gdGFibGVzcGFjZSBuYW1lICVzAEVycm9yIGluIHByb2Nlc3NpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgZm9yIHRhYmxlICVzLiVzAEVycm9yIGluIENyZWF0aW5nIEREIGVudHJ5IGZvciAlcy4lcwBFcnJvciBpbiBmZXRjaGluZyAlcy4lcyB0YWJsZSBkYXRhIGZyb20gZGljdGlvbmFyeQBFcnJvciBpbiBmaXhpbmcgU0UgZGF0YSBmb3IgJXMuJXMARXJyb3IgaW4gY3JlYXRpbmcgc3RvcmVkIHByb2dyYW0gJyVzLiVzJwBVbmFibGUgdG8gb3BlbiBkYi5vcHQgZmlsZSAlcy4gVXNpbmcgZGVmYXVsdCBDaGFyYWN0ZXIgc2V0LgBVbmFibGUgdG8gaW50aWFsaXplIElPIGNhY2hlIHRvIG9wZW4gZGIub3B0IGZpbGUgJXMuIABVbmFibGUgdG8gaWRlbnRpZnkgdGhlIGNoYXJzZXQgaW4gJXMuIFVzaW5nIGRlZmF1bHQgY2hhcmFjdGVyIHNldC4AZGIub3B0IGZpbGUgbm90IGZvdW5kIGZvciAlcyBkYXRhYmFzZS4gVXNpbmcgZGVmYXVsdCBDaGFyYWN0ZXIgc2V0LgBFdmVudCAnJXMnLiclcyc6IGludmFsaWQgdmFsdWUgaW4gY29sdW1uIG15c3FsLmV2ZW50LnRpbWVfem9uZS4ARXZlbnQgJyVzJy4nJXMnOiBoYXMgaW52YWxpZCB0aW1lIHpvbmUgdmFsdWUgAEV2ZW50ICclcycuJyVzJzogaW52YWxpZCB2YWx1ZSBpbiBjb2x1bW4gbXlzcWwuZXZlbnQuY2hhcmFjdGVyX3NldF9jbGllbnQuAEV2ZW50ICclcycuJyVzJzogaW52YWxpZCB2YWx1ZSBpbiBjb2x1bW4gbXlzcWwuZXZlbnQuY29sbGF0aW9uX2Nvbm5lY3Rpb24uAEZhaWxlZCB0byBvcGVuIG15c3FsLmV2ZW50IFRhYmxlLgBQYXJzaW5nICclcy4lcycgcm91dGluZSBib2R5IGZhaWxlZC4lcwBGYWlsZWQgdG8gb3BlbiBteXNxbC5wcm9jIFRhYmxlLgBGYWlsZWQgdG8gcmVhZCBteXNxbC5wcm9jIHRhYmxlLgBGb3VuZCAlcyBmaWxlIGluIG15c3FsIHNjaGVtYS4gREQgd2lsbCBjcmVhdGUgLmliZCBmaWxlIHdpdGggc2FtZSBuYW1lLiBQbGVhc2UgcmVuYW1lIHRhYmxlIGFuZCBzdGFydCB1cGdyYWRlIHByb2Nlc3MgYWdhaW4uAFVuYWJsZSB0byBvcGVuIHRoZSBkYXRhIGRpcmVjdG9yeSAlcyBkdXJpbmcgY2xlYW4gdXAgYWZ0ZXIgdXBncmFkZSBmYWlsZWQARmFpbGVkIHRvIHNldCBwYXRoICVzAEZhaWxlZCB0byBvcGVuIGRpciAlcwBOREI6IEZvdW5kIGVtcHR5IG5vZGVpZCBzcGVjaWZpZWQgaW4gLS1uZGItY2x1c3Rlci1jb25uZWN0aW9uLXBvb2wtbm9kZWlkcz0nJXMnLgBOREI6IENvdWxkIG5vdCBwYXJzZSAnJXMnIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiBJbnZhbGlkIG5vZGVpZCAlZCBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogRm91bmQgZHVwbGljYXRlIG5vZGVpZCAlZCBpbiAtLW5kYi1jbHVzdGVyLWNvbm5lY3Rpb24tcG9vbC1ub2RlaWRzPSclcycuAE5EQjogVGhlIHNpemUgb2YgdGhlIGNsdXN0ZXIgY29ubmVjdGlvbiBwb29sIG11c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBub2RlaWRzIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiBUaGUgbm9kZWlkIHNwZWNpZmllZCBieSAtLW5kYi1ub2RlaWQgbXVzdCBiZSBlcXVhbCB0byB0aGUgZmlyc3Qgbm9kZWlkIGluIC0tbmRiLWNsdXN0ZXItY29ubmVjdGlvbi1wb29sLW5vZGVpZHM9JyVzJy4ATkRCOiB1c2luZyBub2RlaWQgJXUATkRCOiBmYWlsZWQgdG8gYWxsb2NhdGUgZ2xvYmFsIG5kYiBjbHVzdGVyIGNvbm5lY3Rpb24ATkRCOiBmYWlsZWQgdG8gYWxsb2NhdGUgZ2xvYmFsIG5kYiBvYmplY3QATkRCWyV1XTogdXNpbmcgbm9kZWlkICV1AE5EQlsldV06IGZhaWxlZCB0byBhbGxvY2F0ZSBjbHVzdGVyIGNvbm5lY3Qgb2JqZWN0AE5EQlsldV06IHN0YXJ0aW5nIGNvbm5lY3QgdGhyZWFkAE5EQlsldV06IE5vZGVJRDogJWQsICVzAE5EQlsldV06IGZhaWxlZCB0byBzdGFydCBjb25uZWN0IHRocmVhZABOREI6IGVycm9yICgldSkgJXMASWdub3JlZCByZWNlaXZlIHRocmVhZCBDUFUgbWFzaywgbWFzayB0b28gc2hvcnQsICV1IENQVXMgbmVlZGVkIGluIG1hc2ssIG9ubHkgJXUgQ1BVcyBwcm92aWRlZABFdmVudCBFcnJvcjogQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgY3JlYXRpbmcgcXVlcnkgc3RyaW5nLCBiZWZvcmUgd3JpdGluZyBpdCBpbnRvIGJpbmFyeSBsb2cuAEV2ZW50IFNjaGVkdWxlcjogRXJyb3Igd2hpbGUgbG9hZGluZyBmcm9tIGRpc2suAEV2ZW50IFNjaGVkdWxlcjogRXJyb3IgZ2V0dGluZyBldmVudCBvYmplY3QuAEV2ZW50IFNjaGVkdWxlcjogRXJyb3Igd2hpbGUgbG9hZGluZyBldmVudHMgZnJvbSBteXNxbC5ldmVudHMuVGhlIHRhYmxlIHByb2JhYmx5IGNvbnRhaW5zIGJhZCBkYXRhIG9yIGlzIGNvcnJ1cHRlZABVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGRyb3BwaW5nIGV2ZW50ICVzIGZyb20gc2NoZW1hICVzAFVuYWJsZSB0byBkcm9wIGV2ZW50ICVzIGZyb20gc2NoZW1hICVzAFNlcnZlciBvdmVyY29tZXMgdGhlIHRlbXBvcmFyeSAnb3V0IG9mIG1lbW9yeScgaW4gJyVkJyB0cmllcyB3aGlsZSBhdHRhY2hpbmcgdG8gc2Vzc2lvbiB0aHJlYWQgZHVyaW5nIHRoZSBncm91cCBjb21taXQgcGhhc2UuAFVuYWJsZSB0byByZXNpemUgYmlubG9nIElPQ0FDSEUgYXV4aWxpYXJ5IGZpbGUAZmlsZSAlcyB3YXMgbm90IHB1cmdlZCBiZWNhdXNlIGl0IHdhcyBiZWluZyByZWFkIGJ5IHRocmVhZCBudW1iZXIgJXUASS9PIGVycm9yIHJlYWRpbmcgdGhlIGhlYWRlciBmcm9tIHRoZSBiaW5hcnkgbG9nLCBlcnJubz0lZCwgaW8gY2FjaGUgY29kZT0lZABGYWlsZWQgdG8gb3BlbiBsb2cgKGZpbGUgJyVzJywgZXJybm8gJWQpAEZhaWxlZCB0byBjcmVhdGUgYSBjYWNoZSBvbiBsb2cgKGZpbGUgJyVzJykATG9nIGZpbGVuYW1lIGV4dGVuc2lvbiBudW1iZXIgZXhoYXVzdGVkOiAlMDZsdS4gUGxlYXNlIGZpeCB0aGlzIGJ5IGFyY2hpdmluZyBvbGQgbG9ncyBhbmQgdXBkYXRpbmcgdGhlIGluZGV4IGZpbGVzLgBMb2cgZmlsZW5hbWUgdG9vIGxhcmdlOiAlcyVzICglenUpLiBQbGVhc2UgZml4IHRoaXMgYnkgYXJjaGl2aW5nIG9sZCBsb2dzIGFuZCB1cGRhdGluZyB0aGUgaW5kZXggZmlsZXMuAE5leHQgbG9nIGV4dGVuc2lvbjogJWx1LiBSZW1haW5pbmcgbG9nIGZpbGVuYW1lIGV4dGVuc2lvbnM6ICVsdS4gUGxlYXNlIGNvbnNpZGVyIGFyY2hpdmluZyBzb21lIGxvZ3MuAENvdWxkIG5vdCBvcGVuICVzIGZvciBsb2dnaW5nIChlcnJvciAlZCkuIFR1cm5pbmcgbG9nZ2luZyBvZmYgZm9yIHRoZSB3aG9sZSBkdXJhdGlvbiBvZiB0aGUgTXlTUUwgc2VydmVyIHByb2Nlc3MuIFRvIHR1cm4gaXQgb24gYWdhaW46IGZpeCB0aGUgY2F1c2UsIHNodXRkb3duIHRoZSBNeVNRTCBzZXJ2ZXIgYW5kIHJlc3RhcnQgaXQuAE1ZU1FMX0JJTl9MT0c6Om9wZW5faW5kZXhfZmlsZSBmYWlsZWQgdG8gc3luYyB0aGUgaW5kZXggZmlsZS4ARXJyb3IgcmVhZGluZyBHVElEcyBmcm9tIHJlbGF5bG9nOiAlZAAlbHUgZXZlbnRzIHJlYWQgaW4gcmVsYXlsb2cgZmlsZSAnJXMnIGZvciB1cGRhdGluZyBSZXRyaWV2ZWRfR3RpZF9TZXQgYW5kL29yIElPIHRocmVhZCB0cmFuc2FjdGlvbiBwYXJzZXIgc3RhdGUuAEVycm9yIHJlYWRpbmcgR1RJRHMgZnJvbSBiaW5hcnkgbG9nOiAlZABSZWFkICVsdSBldmVudHMgZnJvbSBiaW5hcnkgbG9nIGZpbGUgJyVzJyB0byBkZXRlcm1pbmUgdGhlIEdUSURzIHB1cmdlZCBmcm9tIGJpbmFyeSBsb2dzLgBNWVNRTF9CSU5fTE9HOjpvcGVuIGZhaWxlZCB0byBnZW5lcmF0ZSBuZXcgZmlsZSBuYW1lLgBNWVNRTF9CSU5fTE9HOjpvcGVuIGZhaWxlZCB0byBzeW5jIHRoZSBpbmRleCBmaWxlLgBDb3VsZCBub3QgdXNlICVzIGZvciBsb2dnaW5nIChlcnJvciAlZCkuIFR1cm5pbmcgbG9nZ2luZyBvZmYgZm9yIHRoZSB3aG9sZSBkdXJhdGlvbiBvZiB0aGUgTXlTUUwgc2VydmVyIHByb2Nlc3MuIFRvIHR1cm4gaXQgb24gYWdhaW46IGZpeCB0aGUgY2F1c2UsIHNodXRkb3duIHRoZSBNeVNRTCBzZXJ2ZXIgYW5kIHJlc3RhcnQgaXQuAFdoaWxlIHJlYnVpbGRpbmcgaW5kZXggZmlsZSAlczogRmFpbGVkIHRvIGNsb3NlIHRoZSBpbmRleCBmaWxlLgBXaGlsZSByZWJ1aWxkaW5nIGluZGV4IGZpbGUgJXM6IEZhaWxlZCB0byBkZWxldGUgdGhlIGV4aXN0aW5nIGluZGV4IGZpbGUuIEl0IGNvdWxkIGJlIHRoYXQgZmlsZSBpcyBiZWluZyB1c2VkIGJ5IHNvbWUgb3RoZXIgcHJvY2Vzcy4AV2hpbGUgcmVidWlsZGluZyBpbmRleCBmaWxlICVzOiBGYWlsZWQgdG8gcmVuYW1lIHRoZSBuZXcgaW5kZXggZmlsZSB0byB0aGUgZXhpc3RpbmcgaW5kZXggZmlsZS4AQWZ0ZXIgcmVidWlsZGluZyB0aGUgaW5kZXggZmlsZSAlczogRmFpbGVkIHRvIG9wZW4gdGhlIGluZGV4IGZpbGUuAE1ZU1FMX0JJTl9MT0c6OmFkZF9sb2dfdG9faW5kZXggZmFpbGVkIHRvIGFwcGVuZCBsb2cgZmlsZSBuYW1lOiAlcywgdG8gY3Jhc2ggc2FmZSBpbmRleCBmaWxlLgBGYWlsZWQgdG8gbG9jYXRlIG9sZCBiaW5sb2cgb3IgcmVsYXkgbG9nIGZpbGVzAEZhaWxlZCB0byBkZWxldGUgZmlsZSAnJXMnAE1ZU1FMX0JJTl9MT0c6OnNldF9jcmFzaF9zYWZlX2luZGV4X2ZpbGVfbmFtZSBmYWlsZWQgdG8gc2V0IGZpbGUgbmFtZS4ATVlTUUxfQklOX0xPRzo6b3Blbl9jcmFzaF9zYWZlX2luZGV4X2ZpbGUgZmFpbGVkIHRvIG9wZW4gdGVtcG9yYXJ5IGluZGV4IGZpbGUuAG5leHQgbG9nIGVycm9yOiAlZCAgb2Zmc2V0OiAlcyAgbG9nOiAlcyBpbmNsdWRlZDogJWQAJXMgZmFpbGVkIHRvIG9wZW4gdGhlIGNyYXNoIHNhZmUgaW5kZXggZmlsZS4AJXMgZmFpbGVkIHRvIGNvcHkgaW5kZXggZmlsZSB0byBjcmFzaCBzYWZlIGluZGV4IGZpbGUuACVzIGZhaWxlZCB0byBjbG9zZSB0aGUgY3Jhc2ggc2FmZSBpbmRleCBmaWxlLgAlcyBmYWlsZWQgdG8gbW92ZSBjcmFzaCBzYWZlIGluZGV4IGZpbGUgdG8gaW5kZXggZmlsZS4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyB3YXMgY2FsbGVkIHdpdGggZmlsZSAlcyBub3QgbGlzdGVkIGluIHRoZSBpbmRleC4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyBmYWlsZWQgdG8gc3luYyB0aGUgaW5kZXggZmlsZS4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyBmYWlsZWQgdG8gY29weSAlcyB0byByZWdpc3RlciBmaWxlLgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIGZhaWxlZCB0byBmbHVzaCByZWdpc3RlciBmaWxlLgBNWVNRTF9CSU5fTE9HOjpwdXJnZV9sb2dzIGZhaWxlZCB0byB1cGRhdGUgdGhlIGluZGV4IGZpbGUATVlTUUxfQklOX0xPRzo6cHVyZ2VfbG9ncyBmYWlsZWQgdG8gcHJvY2VzcyByZWdpc3RlcmVkIGZpbGVzIHRoYXQgd291bGQgYmUgcHVyZ2VkLgBNWVNRTF9CSU5fTE9HOjpzZXRfcHVyZ2VfaW5kZXhfZmlsZV9uYW1lIGZhaWxlZCB0byBzZXQgZmlsZSBuYW1lLgBNWVNRTF9CSU5fTE9HOjpvcGVuX3B1cmdlX2luZGV4X2ZpbGUgZmFpbGVkIHRvIG9wZW4gcmVnaXN0ZXIgZmlsZS4ATVlTUUxfQklOX0xPRzo6cHVyZ2VfaW5kZXhfZW50cnkgZmFpbGVkIHRvIHJlaW5pdCByZWdpc3RlciBmaWxlIGZvciByZWFkAE1ZU1FMX0JJTl9MT0c6OnB1cmdlX2luZGV4X2VudHJ5IGVycm9yICVkIHJlYWRpbmcgZnJvbSByZWdpc3RlciBmaWxlLgBGYWlsZWQgdG8gZXhlY3V0ZSBteXNxbF9maWxlX3N0YXQgb24gZmlsZSAnJXMnAEZhaWxlZCB0byBkZWxldGUgbG9nIGZpbGUgJyVzJzsgY29uc2lkZXIgZXhhbWluaW5nIGNvcnJlc3BvbmRlbmNlIG9mIHlvdXIgYmlubG9nIGluZGV4IGZpbGUgdG8gdGhlIGFjdHVhbCBiaW5sb2cgZmlsZXMARmFpbGVkIHRvIGRlbGV0ZSBmaWxlICclcycgYW5kIHJlYWQgdGhlIGJpbmxvZyBpbmRleCBmaWxlAEZhaWxlZCB0byBkZWxldGUgbG9nIGZpbGUgJyVzJwAlcyBBbiBpbmNpZGVudCBldmVudCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSBiaW5hcnkgbG9nIHdoaWNoIHdpbGwgc3RvcCB0aGUgcmVwbGljYXMuAGZpbmRfbG9nX3BvcygpIGZhaWxlZCAoZXJyb3I6ICVkKQBSZWNvdmVyaW5nIGFmdGVyIGEgY3Jhc2ggdXNpbmcgJXMARmFpbGVkIHRvIG9wZW4gdGhlIGNyYXNoZWQgYmlubG9nIGZpbGUgd2hlbiBzb3VyY2Ugc2VydmVyIGlzIHJlY292ZXJpbmcgaXQuAEZhaWxlZCB0byB0cmltIHRoZSBjcmFzaGVkIGJpbmxvZyBmaWxlIHdoZW4gc291cmNlIHNlcnZlciBpcyByZWNvdmVyaW5nIGl0LgBDcmFzaGVkIGJpbmxvZyBmaWxlICVzIHNpemUgaXMgJWxsdSwgYnV0IHJlY292ZXJlZCB1cCB0byAlbGx1LiBCaW5sb2cgdHJpbW1lZCB0byAlbGx1IGJ5dGVzLgBGYWlsZWQgdG8gY2xlYXIgTE9HX0VWRU5UX0JJTkxPR19JTl9VU0VfRiBmb3IgdGhlIGNyYXNoZWQgYmlubG9nIGZpbGUgd2hlbiBzb3VyY2Ugc2VydmVyIGlzIHJlY292ZXJpbmcgaXQuAEZhaWxlZCB0byBydW4gJ2FmdGVyX3N5bmMnIGhvb2tzACVzIEhlbmNlIHR1cm5pbmcgbG9nZ2luZyBvZmYgZm9yIHRoZSB3aG9sZSBkdXJhdGlvbiBvZiB0aGUgTXlTUUwgc2VydmVyIHByb2Nlc3MuIFRvIHR1cm4gaXQgb24gYWdhaW46IGZpeCB0aGUgY2F1c2UsIHNodXRkb3duIHRoZSBNeVNRTCBzZXJ2ZXIgYW5kIHJlc3RhcnQgaXQuAEZhaWxlZCB0byBydW4gJ2FmdGVyX2ZsdXNoJyBob29rcwBDcmFzaCByZWNvdmVyeSBmYWlsZWQuIEVpdGhlciBjb3JyZWN0IHRoZSBwcm9ibGVtIChpZiBpdCdzLCBmb3IgZXhhbXBsZSwgb3V0IG9mIG1lbW9yeSBlcnJvcikgYW5kIHJlc3RhcnQsIG9yIGRlbGV0ZSAob3IgcmVuYW1lKSBiaW5hcnkgbG9nIGFuZCBzdGFydCBteXNxbGQgd2l0aCAtLXRjLWhldXJpc3RpYy1yZWNvdmVyPXtjb21taXR8cm9sbGJhY2t9AFRoZSBmb2xsb3dpbmcgd2FybmluZyB3YXMgc3VwcHJlc3NlZCAlZCB0aW1lcyBkdXJpbmcgdGhlIGxhc3QgJWQgc2Vjb25kcyBpbiB0aGUgZXJyb3IgbG9nAE5EQjogJXMATkRCICVzOiAlcwBOREI6IFVuYWJsZSB0byBwdXJnZSAlcy4lcyBGaWxlPSVzIChmYWlsZWQgdG8gc2V0dXAgdGhkKQBVbmtub3duIGNvbGxhdGlvbiAjJWx1LgBzeW50YXggZXJyb3IgaW4gaW5ub2RiX2xvZ19ncm91cF9ob21lX2RpcgBzeW50YXggZXJyb3IgaW4gaW5ub2RiX3VuZG9fZGlyZWN0b3J5AElubm9EQjogaW5ub2RiX2J1ZmZlcl9wb29sX2ZpbGVuYW1lIGNhbm5vdCBoYXZlIGNvbG9uICg6KSBpbiB0aGUgZmlsZSBuYW1lLgBJbm5vREI6IEludmFsaWQgcGFnZSBzaXplPSVsdS4ASW5ub0RCOiBpbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdF9sd20gY2Fubm90IGJlIHNldCBoaWdoZXIgdGhhbiBpbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdC4gU2V0dGluZyBpbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdF9sd20gdG8gJWxmAElubm9EQjogaW5ub2RiX2lvX2NhcGFjaXR5IGNhbm5vdCBiZSBzZXQgaGlnaGVyIHRoYW4gaW5ub2RiX2lvX2NhcGFjaXR5X21heC4gU2V0dGluZyBpbm5vZGJfaW9fY2FwYWNpdHkgdG8gJWx1ACVzIGFuZCAlcyBmaWxlIG5hbWVzIHNlZW0gdG8gYmUgdGhlIHNhbWUuAFRyYW5zYWN0aW9uIG5vdCByZWdpc3RlcmVkIGZvciBNeVNRTCAyUEMsIGJ1dCB0cmFuc2FjdGlvbiBpcyBhY3RpdmUATXlTUUwgaXMgY2xvc2luZyBhIGNvbm5lY3Rpb24gdGhhdCBoYXMgYW4gYWN0aXZlIElubm9EQiB0cmFuc2FjdGlvbi4gJWxsdSByb3cgbW9kaWZpY2F0aW9ucyB3aWxsIHJvbGwgYmFjay4ASW5ub0RCOiBmYWlsIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgaW5kZXggdHJhbnNsYXRpb24gdGFibGUuIE51bWJlciBvZiBJbmRleDolbHUsIGFycmF5IHNpemU6JWx1AENhbm5vdCBmaW5kIGluZGV4ICVzIGluIElubm9EQiBpbmRleCBkaWN0aW9uYXJ5LgBGb3VuZCBpbmRleCAlcyB3aG9zZSBjb2x1bW4gaW5mbyBkb2VzIG5vdCBtYXRjaCB0aGF0IG9mIE15U1FMLgBGYWlsZWQgdG8gb3BlbiB0YWJsZSAlcy4AQnVpbGQgSW5ub0RCIGluZGV4IHRyYW5zbGF0aW9uIHRhYmxlIGZvciBUYWJsZSAlcyBmYWlsZWQAVGFibGUgJXMgaGFzIGEgcHJpbWFyeSBrZXkgaW4gSW5ub0RCIGRhdGEgZGljdGlvbmFyeSwgYnV0IG5vdCBpbiBNeVNRTCEAVGFibGUgJXMgaGFzIG5vIHByaW1hcnkga2V5IGluIElubm9EQiBkYXRhIGRpY3Rpb25hcnksIGJ1dCBoYXMgb25lIGluIE15U1FMISBJZiB5b3UgY3JlYXRlZCB0aGUgdGFibGUgd2l0aCBhIE15U1FMIHZlcnNpb24gPCAzLjIzLjU0IGFuZCBkaWQgbm90IGRlZmluZSBhIHByaW1hcnkga2V5LCBidXQgZGVmaW5lZCBhIHVuaXF1ZSBrZXkgd2l0aCBhbGwgbm9uLU5VTEwgY29sdW1ucywgdGhlbiBNeVNRTCBpbnRlcm5hbGx5IHRyZWF0cyB0aGF0IGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuIFlvdSBjYW4gZml4IHRoaXMgZXJyb3IgYnkgZHVtcCArIERST1AgKyBDUkVBVEUgKyByZWltcG9ydCBvZiB0aGUgdGFibGUuAFRhYmxlICVzIGtleV91c2VkX29uX3NjYW4gaXMgJWx1IGV2ZW4gdGhvdWdoIHRoZXJlIGlzIG5vIHByaW1hcnkga2V5IGluc2lkZSBJbm5vREIuAFBhcnRpdGlvbiB0YWJsZSAlcyBvcGVuZWQgYWZ0ZXIgY29udmVydGluZyB0byBsb3dlciBjYXNlLiBUaGUgdGFibGUgbWF5IGhhdmUgYmVlbiBtb3ZlZCBmcm9tIGEgY2FzZS1pbnNlbnNpdGl2ZSBmaWxlIHN5c3RlbS4gUGxlYXNlIHJlY3JlYXRlIHRoZSB0YWJsZSBpbiB0aGUgY3VycmVudCBmaWxlIHN5c3RlbS4AQ2Fubm90IHJlcGxhY2UgZXJyb3IgbWVzc2FnZSAoJXMsJXMsJXMpICIlcyIgd2l0aCAiJXMiOyB3cm9uZyBudW1iZXIgb3IgdHlwZSBvZiAlJSBzdWJzaXR1dGlvbnMuAFRhYmxlIGZvciBlcnJvciBtZXNzYWdlIHJlcGxhY2VtZW50cyBjb3VsZCBub3QgYmUgZm91bmQgb3IgcmVhZCwgb3Igb25lIG9yIG1vcmUgcmVwbGFjZW1lbnRzIGNvdWxkIG5vdCBiZSBhcHBsaWVkLgAlczogJXMAVGFibGUgJyUtMTkycyc6IERlbGV0ZSBmcm9tIHBhcnQgJWQgZmFpbGVkIHdpdGggZXJyb3IgJWQuIEJ1dCBpdCB3YXMgYWxyZWFkeSBpbnNlcnRlZCBpbnRvIHBhcnQgJWQsIHdoZW4gbW92aW5nIHRoZSBtaXNwbGFjZWQgcm93ISBQbGVhc2UgbWFudWFsbHkgZml4IHRoZSBkdXBsaWNhdGUgcm93OiAlcwBDb21tYW5kICclcycgY2Fubm90IGJlIGFib3J0ZWQuIFRoZSB0cmlnZ2VyIGVycm9yIHdhcyAoJWQpIFslc106ICVzAEV2ZW50ICclcycgY2Fubm90IGJlIGFib3J0ZWQuIFRoZSB0cmlnZ2VyIGVycm9yIHdhcyAoJWQpIFslc106ICVzACVzLiBUaGUgdHJpZ2dlciBlcnJvciB3YXMgKCVkKSBbJXNdOiAlcwBSZXBsaWNhIFNRTDogQ29uZmlndXJhdGlvbiB3aXRoIG51bWJlciBvZiByZXBsaWNhdGlvbiBzb3VyY2VzID0gJXUnIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhcHBseWluZyB0byBOZGIAUmVwbGljYSBTUUw6IENvbmZpZ3VyYXRpb24gJ3JlcGxpY2FfcGFyYWxsZWxfd29ya2VycyA9ICVsdScgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGFwcGx5aW5nIHRvIE5kYgBOREIgJXM6IGRpc3RyaWJ1dGluZyAlcyBlcnI6ICV1AFN0b3JpbmcgTXlTUUwgdXNlciBuYW1lIG9yIHBhc3N3b3JkIGluZm9ybWF0aW9uIGluIHRoZSBjb25uZWN0aW9uIG1ldGFkYXRhIHJlcG9zaXRvcnkgaXMgbm90IHNlY3VyZSBhbmQgaXMgdGhlcmVmb3JlIG5vdCByZWNvbW1lbmRlZC4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHRoZSBVU0VSIGFuZCBQQVNTV09SRCBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIFNUQVJUIFJFUExJQ0E7IHNlZSB0aGUgJ1NUQVJUIFJFUExJQ0EgU3ludGF4JyBpbiB0aGUgTXlTUUwgTWFudWFsIGZvciBtb3JlIGluZm9ybWF0aW9uLgBGTFVTSCBSRUxBWSBMT0dTIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gY2hhbm5lbCAnJS0uMTkycycuAFJlcGxpY2EgY2hhbm5lbCAnJXMnIGRvZXMgbm90IGV4aXN0LgBDYW4ndCBmaW5kIHN5bWJvbCAnJS0uMTI4cycgaW4gbGlicmFyeS4AQ2FuJ3Qgb3BlbiBzaGFyZWQgbGlicmFyeSAnJS0uMTkycycgKGVycm5vOiAlZCAlLS4xMjhzKS4AVGhyZWFkIHByaW9yaXR5IGF0dHJpYnV0ZSBzZXR0aW5nIGluIFJlc291cmNlIEdyb3VwIFNRTCBzaGFsbCBiZSBpZ25vcmVkIGR1ZSB0byB1bnN1cHBvcnRlZCBwbGF0Zm9ybSBvciBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlLgBPcHRpb24gYmlubG9nX2NhY2hlX3NpemUgKCVsdSkgaXMgZ3JlYXRlciB0aGFuIG1heF9iaW5sb2dfY2FjaGVfc2l6ZSAoJWx1KTsgc2V0dGluZyBiaW5sb2dfY2FjaGVfc2l6ZSBlcXVhbCB0byBtYXhfYmlubG9nX2NhY2hlX3NpemUuAE9wdGlvbiBiaW5sb2dfc3RtdF9jYWNoZV9zaXplICglbHUpIGlzIGdyZWF0ZXIgdGhhbiBtYXhfYmlubG9nX3N0bXRfY2FjaGVfc2l6ZSAoJWx1KTsgc2V0dGluZyBiaW5sb2dfc3RtdF9jYWNoZV9zaXplIGVxdWFsIHRvIG1heF9iaW5sb2dfc3RtdF9jYWNoZV9zaXplLgBDYW4ndCBnZW5lcmF0ZSBhIHVuaXF1ZSBsb2ctZmlsZW5hbWUgJS0uMjAwcy4oMS05OTkpLgBFcnJvciByZWFkaW5nIGZpbGUgJyUtLjIwMHMnIChlcnJubzogJWQgLSAlcykARXJyb3Igd3JpdGluZyBmaWxlICclLS4yMDBzJyAoZXJybm86ICVkIC0gJXMpACVzIFN0YXRlbWVudDogJXMAJXM6IEZvcmNpbmcgY2xvc2Ugb2YgdGhyZWFkICVsZCAgdXNlcjogJyUtLjQ4cycuACVzOiBTaHV0ZG93biBjb21wbGV0ZSAobXlzcWxkICVzKSAgJXMuAENhbm5vdCBoYXZlIHNhbWUgYmFzZSBuYW1lICclcycgZm9yIGJvdGggYmluYXJ5IGFuZCByZWxheSBsb2dzLiBQbGVhc2UgY2hlY2sgJXMgKGRlZmF1bHQgJyVzJyBpZiAtLWxvZy1iaW4gb3B0aW9uIGlzIG5vdCB1c2VkLCBkZWZhdWx0ICclcycgaWYgLS1sb2ctYmluIG9wdGlvbiBpcyB1c2VkIHdpdGhvdXQgYXJndW1lbnQpIGFuZCAlcyAoZGVmYXVsdCAnJXMnKSBvcHRpb25zIHRvIGVuc3VyZSB0aGV5IGRvIG5vdCBjb25mbGljdC4AR1RJRF9NT0RFID0gT04gcmVxdWlyZXMgRU5GT1JDRV9HVElEX0NPTlNJU1RFTkNZID0gT04uAFlvdSBoYXZlIG5vdCBwcm92aWRlZCBhIG1hbmRhdG9yeSBzZXJ2ZXItaWQuIFNlcnZlcnMgaW4gYSByZXBsaWNhdGlvbiB0b3BvbG9neSBtdXN0IGhhdmUgdW5pcXVlIHNlcnZlci1pZHMuIFBsZWFzZSByZWZlciB0byB0aGUgcHJvcGVyIHNlcnZlciBzdGFydC11cCBwYXJhbWV0ZXJzIGRvY3VtZW50YXRpb24uAEFib3J0ZWQgY29ubmVjdGlvbiAldSB0byBkYjogJyUtLjE5MnMnIHVzZXI6ICclLS40OHMnIGhvc3Q6ICclLS4yNTVzJyAoJS0uNjRzKS4AJ05PX1pFUk9fREFURScsICdOT19aRVJPX0lOX0RBVEUnIGFuZCAnRVJST1JfRk9SX0RJVklTSU9OX0JZX1pFUk8nIHNxbCBtb2RlcyBzaG91bGQgYmUgdXNlZCB3aXRoIHN0cmljdCBtb2RlLiBUaGV5IHdpbGwgYmUgbWVyZ2VkIHdpdGggc3RyaWN0IG1vZGUgaW4gYSBmdXR1cmUgcmVsZWFzZS4AQEBHTE9CQUwuR1RJRF9QVVJHRUQgd2FzIGNoYW5nZWQgZnJvbSAnJXMnIHRvICclcycuAEBAR0xPQkFMLkdUSURfRVhFQ1VURUQgd2FzIGNoYW5nZWQgZnJvbSAnJXMnIHRvICclcycuACclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSB1c2UgJXMgaW5zdGVhZC4AVHJpZ2dlcnMgZm9yIHRhYmxlIGAlLS42NHNgLmAlLS42NHNgIGhhdmUgbm8gY3JlYXRpb24gY29udGV4dAAnJS0uMTkycycgaGFzIGFuIG9sZCBmb3JtYXQsIHlvdSBzaG91bGQgcmUtY3JlYXRlIHRoZSAnJXMnIG9iamVjdChzKQBWaWV3IGAlLS42NHNgLmAlLS42NHNgIGhhcyBubyBjcmVhdGlvbiBjb250ZXh0AExvbmcgZGF0YWJhc2UgbmFtZSBhbmQgaWRlbnRpZmllciBmb3Igb2JqZWN0IHJlc3VsdGVkIGluIGEgcGF0aCBsZW5ndGggdG9vIGxvbmcgZm9yIHRhYmxlICclcycuIFBsZWFzZSBjaGVjayB0aGUgcGF0aCBsaW1pdCBmb3IgeW91ciBPUy4AVGFibGUgdXBncmFkZSByZXF1aXJlZC4gUGxlYXNlIGRvICJSRVBBSVIgVEFCTEUgYCUtLjY0c2AiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEAR290IGVycm9yICVkIC0gJyUtLjE5MnMnIGZyb20gc3RvcmFnZSBlbmdpbmUuAEFjY2VzcyBkZW5pZWQgZm9yIHVzZXIgJyUtLjQ4cydAJyUtLjY0cycAQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJS0uNDhzJ0AnJS0uNjRzJyAodXNpbmcgcGFzc3dvcmQ6ICVzKQBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnLiBBY2NvdW50IGlzIGxvY2tlZC4AWW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gVG8gbG9nIGluIHlvdSBtdXN0IGNoYW5nZSBpdCB1c2luZyBhIGNsaWVudCB0aGF0IHN1cHBvcnRzIGV4cGlyZWQgcGFzc3dvcmRzLgBTdG9yYWdlIGVuZ2luZSAnJXMnIGRvZXMgbm90IHN1cHBvcnQgc3lzdGVtIHRhYmxlcy4gWyVzLiVzXS4AU29ydCBhYm9ydGVkACVzOiByZWFkeSBmb3IgY29ubmVjdGlvbnMuIFZlcnNpb246ICclcycgIHNvY2tldDogJyVzJyAgcG9ydDogJWQgICVzLgBVbmtub3duIGxvY2FsZTogJyUtLjY0cycuAFVua25vd24gY29sbGF0aW9uOiAnJS0uNjRzJy4AT3V0IG9mIG1lbW9yeTsgY2hlY2sgaWYgbXlzcWxkIG9yIHNvbWUgb3RoZXIgcHJvY2VzcyB1c2VzIGFsbCBhdmFpbGFibGUgbWVtb3J5OyBpZiBub3QsIHlvdSBtYXkgaGF2ZSB0byB1c2UgJ3VsaW1pdCcgdG8gYWxsb3cgbXlzcWxkIHRvIHVzZSBtb3JlIG1lbW9yeSBvciB5b3UgY2FuIGFkZCBtb3JlIHN3YXAgc3BhY2UAT3V0IG9mIG1lbW9yeTsgcmVzdGFydCBzZXJ2ZXIgYW5kIHRyeSBhZ2FpbiAobmVlZGVkICVkIGJ5dGVzKQBDT0xMQVRJT04gJyVzJyBpcyBub3QgdmFsaWQgZm9yIENIQVJBQ1RFUiBTRVQgJyVzJwBGYWlsZWQgdG8gc2V0ICVzIGF0IG9yIGFyb3VuZCAiJXMiIC0tIHNlcnZpY2UgaXMgdmFsaWQsIGJ1dCBjYW4gbm90IGJlIGluaXRpYWxpemVkOyBwbGVhc2UgY2hlY2sgaXRzIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2Ugc3VyZSBpdCBjYW4gcmVhZCBpdHMgaW5wdXQocykgYW5kIHdyaXRlIHRvIGl0cyBvdXRwdXQocykuAEdlbmVyYXRpbmcgYSBuZXcgVVVJRDogJXMuAEZhaWxlZCB0byBnZXQgYWJzb2x1dGUgcGF0aCBvZiBwcm9ncmFtIGV4ZWN1dGFibGUgJXMARmFpbGVkIHRvIGJvb3RzdHJhcCBwZXJmb3JtYW5jZSBzY2hlbWEgY29tcG9uZW50cyBpbmZyYXN0cnVjdHVyZS4ARmFpbGVkIHRvIGRlaW5pdCBwZXJmb3JtYW5jZSBzY2hlbWEgY29tcG9uZW50cyBpbmZyYXN0cnVjdHVyZS4AQ291bGQgbm90IG9wZW4gZHVwbGljYXRlIGZkIGZvciAlczogJXMuAFN5c3RlbSB2aWV3cyBpbml0aWFsaXphdGlvbiBmYWlsZWQuAFJlc291cmNlIGdyb3VwIHBvc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBSZXNvdXJjZSBHcm91cCBzdWJzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZmFpbGVkLgBGYWlsZWQgdG8gc3RhcnQgbXlzcWxkIGRhZW1vbi4gQ2hlY2sgbXlzcWxkIGVycm9yIGxvZy4AQ2Fubm90IGNoYW5nZSB0byByb290IGRpcmVjdG9yeTogJXMuAEZhaWxlZCB0byBib290c3RyYXAgcGVyc2lzdGVudCBwcml2aWxlZ2VzLgBCYXNlZGlyIHNldCB0byAlcy4AQ291bGQgbm90IGFkZCB3aWxkIGRvIHRhYmxlIHJ1bGUgJyVzJyEAQ291bGQgbm90IGFkZCB3aWxkIGlnbm9yZSB0YWJsZSBydWxlICclcychAFRoZSBwcml2aWxlZ2Ugc3lzdGVtIGZhaWxlZCB0byBpbml0aWFsaXplIGNvcnJlY3RseS4gRm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucyBvbiBob3cgdG8gdXBncmFkZSBNeVNRTCB0byBhIG5ldyB2ZXJzaW9uIHBsZWFzZSBzZWUgdGhlICdVcGdyYWRpbmcgTXlTUUwnIHNlY3Rpb24gZnJvbSB0aGUgTXlTUUwgbWFudWFsLgBDYW5ub3Qgc2V0IHNlcnZpY2VzICIlcyIgcmVxdWVzdGVkIGluIC0tbG9nLWVycm9yLXNlcnZpY2VzLCB1c2luZyBkZWZhdWx0cy4AUGVyZm9ybWFuY2Ugc2NoZW1hIHRhYmxlcyBpbml0aWFsaXphdGlvbiBmYWlsZWQuAFRoZSB0cmFuc2FjdGlvbl93cml0ZV9zZXRfZXh0cmFjdGlvbiBtdXN0IGJlIHNldCB0byAlcyB3aGVuIGJpbmxvZ190cmFuc2FjdGlvbl9kZXBlbmRlbmN5X3RyYWNraW5nIGlzICVzLgBJbnZhbGlkIHJlcGxpY2F0aW9uIHRpbWVzdGFtcHM6IG9yaWdpbmFsIGNvbW1pdCB0aW1lc3RhbXAgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGUgaW1tZWRpYXRlIGNvbW1pdCB0aW1lc3RhbXAuIFRoaXMgbWF5IGJlIGFuIGlzc3VlIGlmIGRlbGF5ZWQgcmVwbGljYXRpb24gaXMgYWN0aXZlLiBNYWtlIHN1cmUgdGhhdCBzZXJ2ZXJzIGhhdmUgdGhlaXIgY2xvY2tzIHNldCB0byB0aGUgY29ycmVjdCB0aW1lLiBObyBmdXJ0aGVyIG1lc3NhZ2Ugd2lsbCBiZSBlbWl0dGVkIHVudGlsIGFmdGVyIHRpbWVzdGFtcHMgYmVjb21lIHZhbGlkIGFnYWluLgBUaGUgcmVwbGljYXRpb24gdGltZXN0YW1wcyBoYXZlIHJldHVybmVkIHRvIG5vcm1hbCB2YWx1ZXMuACVzLgBGYWlsZWQgdG8gd3JpdGUgYW4gaW5jaWRlbnQgZXZlbnQgaW50byBzdG10X2NhY2hlLgBSZWxheWxvZyBmaWxlICVzIHNpemUgd2FzICVsbHUsIGJ1dCB3YXMgdHJ1bmNhdGVkIGF0ICVsbHUuAFVuYWJsZSB0byBwdXJnZSByZWxheSBsb2cgZmlsZXMuICVzOiVzLgBSZXBsaWNhOiBmYWlsZWQgaW4gY3JlYXRpbmcgZmlsdGVyIGZvciBjaGFubmVsICclcycuAFJlcGxpY2E6IGZhaWxlZCBpbiBjb3B5aW5nIHRoZSBnbG9iYWwgZmlsdGVycyB0byBpdHMgb3duIHBlci1jaGFubmVsIGZpbHRlcnMgb24gY29uZmlndXJhdGlvbiBmb3IgY2hhbm5lbCAnJXMnLgBUaGVyZSBhcmUgcGVyLWNoYW5uZWwgcmVwbGljYXRpb24gZmlsdGVyKHMpIGNvbmZpZ3VyZWQgZm9yIGNoYW5uZWwgJyUuMTkycycgd2hpY2ggZG9lcyBub3QgZXhpc3QuIFRoZSBmaWx0ZXIocykgaGF2ZSBiZWVuIGRpc2NhcmRlZC4AVGhlIHN5c3RlbSB0YWJsZSBteXNxbC5nbG9iYWxfZ3JhbnRzIGlzIG1pc3NpbmcuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4AQUNMIHRhYmxlIG15c3FsLiUuKnMgbWlzc2luZy4gU29tZSBvcGVyYXRpb25zIG1heSBmYWlsLgBDYW4ndCBzZXQgbWFuZGF0b3J5X3JvbGUgJXNAJXM6IEFub255bW91cyBhdXRob3JpemF0aW9uIElEcyBhcmUgbm90IGFsbG93ZWQgYXMgcm9sZXMuAENhbid0IHNldCBtYW5kYXRvcnlfcm9sZTogVGhlcmUncyBubyBzdWNoIGF1dGhvcml6YXRpb24gSUQgJXNAJXMuAFRhYmxlICclLTE5MnMnIGZhaWxlZCB0byBtb3ZlL2luc2VydCBhIHJvdyBmcm9tIHBhcnQgJWQgaW50byBwYXJ0ICVkOiAlcy4AU2tpcHBlZCB1cGRhdGluZyByZXNvdXJjZSBncm91cCBtZXRhZGF0YSBpbiBJbm5vREIgcmVhZCBvbmx5IG1vZGUuAEZhaWxlZCB0byBwZXJzaXN0IHJlc291cmNlIGdyb3VwICVzIHRvIERhdGEgRGljdGlvbmFyeS4ARmFpbGVkIHRvIGRlc2VyaWFsaXplIHJlc291cmNlIGdyb3VwICVzLgBVcGRhdGUgb2YgcmVzb3VyY2UgZ3JvdXAgJXMgZmFpbGVkLgBWYWxpZGF0aW9uIG9mIHJlc291cmNlIGdyb3VwICVzIGZhaWxlZC4gUmVzb3VyY2UgZ3JvdXAgaXMgZGlzYWJsZWQuAFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIFJlc291cmNlIEdyb3VwICVzLgBGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciByZXNvdXJjZSBncm91cCBoYXNoLgBGYWlsZWQgdG8gYWRkIHJlc291cmNlIGdyb3VwICVzIHRvIHJlc291cmNlIGdyb3VwIG1hcC4AUmVzb3VyY2UgZ3JvdXAgZmVhdHVyZSBpcyBkaXNhYmxlZC4gKFNlcnZlciBpcyBjb21waWxlZCB3aXRoIERJU0FCTEVfUFNJX1RIUkVBRCkuAFVuYWJsZSB0byBhcHBseSByZXNvdXJjZSBncm91cCBjb250cm9sbGVyICVzLgBVbmFibGUgdG8gYWNxdWlyZSBsb2NrIG9uIHRoZSByZXNvdXJjZSBncm91cCAlcy4gSGludCB0byBzd2l0Y2ggcmVzb3VyY2UgZ3JvdXAgc2hhbGwgYmUgaWdub3JlZC4AUEZTICVzIG5vdGlmaWNhdGlvbiBmdW5jdGlvbiByZWdpc3RyYXRpb24gZmFpbGVkLgBVbmFibGUgdG8gYmluZCB0aHJlYWQgaWQgJWxsdSB0byBjcHUgaWQgJXUgKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AVW5hYmxlIHRvIGJpbmQgdGhyZWFkIGlkICVsbHUgdG8gY3B1IGlkcyAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBVbmJpbmQgdGhyZWFkIGlkICVsbHUgZmFpbGVkLiAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBTZXR0aW5nIHRocmVhZCBwcmlvcml0eSAlZCB0byB0aHJlYWQgaWQgJWxsdSBmYWlsZWQuIChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAFVuYWJsZSB0byBkZXRlcm1pbmUgQ0FQX1NZU19OSUNFIGNhcGFiaWxpdHkuACVzIGZhaWxlZDogRmFpbGVkIHRvIGdldCBoYW5kbGUgZm9yIHRocmVhZCAlbGx1LgBSZXRyaWV2YWwgb2YgdGhyZWFkIHByaW9yaXR5IHVuc3VwcG9ydGVkIG9uICVzLgBVbmFibGUgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgQ1BVcy4AUmVzb3VyY2UgZ3JvdXAgZmVhdHVyZSBzaGFsbCBub3QgYmUgYXZhaWxhYmxlLiBJbmNvbXBhdGlibGUgdGhyZWFkIGhhbmRsaW5nIG9wdGlvbi4ASW52YWxpZCB0aHJlYWQgcHJpb3JpdHkgJWQgZm9yIGEgJXMgcmVzb3VyY2UgZ3JvdXAuIEFsbG93ZWQgcmFuZ2UgaXMgWyVkLCAlZF0uAGJpbmRfdG9fY3B1IGZhaWxlZDogcHJvY2Vzc29yX2JpbmQgZm9yIGNwdWlkICV1IGZhaWxlZCAoZXJyb3IgY29kZSAlZCAtICUtLjE5MnMpLgBiaW5kX3RvX2NwdSBmYWlsZWQ6IHByb2Nlc3Nvcl9iaW5kIGZvciB0aHJlYWQgJSVsbHggd2l0aCBjcHUgaWQgJXUgKGVycm9yIGNvZGUgJWQgLSAlLS4xOTJzKS4AJXMgZmFpbGVkOiBwcm9jZXNzb3JfYWZmaW5pdHkgZmFpbGVkIChlcnJvciBjb2RlICVkIC0gJS0uMTkycykuAEVycm9yIGluIHJlbmFtaW5nIG15c3FsX2luZGV4X3N0YXRzLmliZC4ARXJyb3IgaW4gb3BlbmluZyBkYXRhIGRpcmVjdG9yeSAlcy4ARXJyb3IgaW4gZmV0Y2hpbmcgbGlzdCBvZiB0YWJsZXNwYWNlcy4ARXJyb3IgaW4gYWNxdWlyaW5nIFRhYmxlc3BhY2UgZm9yIFNESSBpbnNlcnRpb24gJXMuAEVycm9yIGluIHJlc29sdmluZyBFbmdpbmUgbmFtZSBmb3IgdGFibGVzcGFjZSAlcyB3aXRoIGVuZ2luZSAlcy4ARXJyb3IgaW4gY3JlYXRpbmcgU0RJIGZvciAlcyB0YWJsZXNwYWNlLgBFcnJvciBpbiBzdG9yaW5nIFNESSBmb3IgJXMgdGFibGVzcGFjZS4ARXJyb3IgaW4gZmV0Y2hpbmcgbGlzdCBvZiB0YWJsZXMuAEZpbmlzaGVkIHBvcHVsYXRpbmcgRGF0YSBEaWN0aW9uYXJ5IHRhYmxlcyB3aXRoIGRhdGEuAENvdWxkIG5vdCBvcGVuIHRoZSB1cGdyYWRlIGluZm8gZmlsZSAnJXMnIGluIHRoZSBNeVNRTCBzZXJ2ZXJzIGRhdGFkaXIsIGVycm5vOiAlZC4AQ291bGQgbm90IGNsb3NlIHRoZSB1cGdyYWRlIGluZm8gZmlsZSAnJXMnIGluIHRoZSBNeVNRTCBzZXJ2ZXJzIGRhdGFkaXIsIGVycm5vOiAlZC4AR290IGVycm9yICVkIGZyb20gU0Ugd2hpbGUgbWlncmF0aW5nIHRhYmxlc3BhY2VzLgBFcnJvciBpbiBjcmVhdGluZyBUQUJMRSBzdGF0aXN0aWNzIGVudHJ5LiBGaXggc3RhdGlzdGljcyBkYXRhIGJ5IHVzaW5nIEFOQUxZWkUgY29tbWFuZC4ARmluaXNoZWQgbWlncmF0aW5nIFRBQkxFIHN0YXRpc3RpY3MgZGF0YS4ARXJyb3IgaW4gY3JlYXRpbmcgSW5kZXggc3RhdGlzdGljcyBlbnRyeS4gRml4IHN0YXRpc3RpY3MgZGF0YSBieSB1c2luZyBBTkFMWVpFIGNvbW1hbmQuAEZpbmlzaGVkIG1pZ3JhdGluZyBJTkRFWCBzdGF0aXN0aWNzIGRhdGEuAEZhaWxlZCB0byBmaW5kIHZhbGlkIGRhdGEgZGlyZWN0b3J5LgBTdGFydGluZyB1cGdyYWRlIG9mIGRhdGEgZGlyZWN0b3J5LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBERCBTdG9yYWdlIEVuZ2luZS4ARm91bmQgcGFydGlhbGx5IHVwZ3JhZGVkIERELiBBYm9ydGluZyB1cGdyYWRlIGFuZCBkZWxldGluZyBhbGwgREQgdGFibGVzLiBTdGFydCB0aGUgdXBncmFkZSBwcm9jZXNzIGFnYWluLgBGb3VuZCBwYXJ0aWFsbHkgdXBncmFkZWQgREQuIFVwZ3JhZGUgd2lsbCBjb250aW51ZSBhbmQgc3RhcnQgdGhlIHNlcnZlci4ARXJyb3IgaW4gdXBncmFkaW5nIGVuZ2luZSBsb2dzLgBFcnJvciBpbiB1cGRhdGluZyBTREkgaW5mb3JtYXRpb24uAFNraXAgdXBkYXRpbmcgJXMgbWV0YWRhdGEgaW4gSW5ub0RCIHJlYWQtb25seSBtb2RlLgBDcmVhdGVkIHN5c3RlbSB2aWV3cyB3aXRoIElfUyB2ZXJzaW9uICVkLgBVbmtub3duIGVycm9yIGRldGVjdGVkICVkIGluIGhhbmRsZXIuAEVycm9yIGluIExvZ19ldmVudDo6cmVhZF9sb2dfZXZlbnQoKTogJyVzJywgZGF0YV9sZW46ICVsdSwgZXZlbnRfdHlwZTogJWQuAFRoZSByb3cgZGF0YSBpcyBncmVhdGVyIHRoYW4gNEdCLCB3aGljaCBpcyB0b28gYmlnIHRvIHdyaXRlIHRvIHRoZSBiaW5hcnkgbG9nLgBVbmFibGUgdG8gY29uc3RydWN0IERST1AgRVZFTlQgU1FMIHF1ZXJ5IHN0cmluZy4AVW5hYmxlIHRvIGJpbmxvZyBkcm9wIGV2ZW50ICVzLiVzLgBGYWlsZWQgdG8gc3RhcnQgcmVwbGljYSB0aHJlYWRzIGZvciBjaGFubmVsICclcycuACVzJXMuAEZhaWxlZCByZWdpc3RlcmluZyBvbiBzb3VyY2UsIHJlY29ubmVjdGluZyB0byB0cnkgYWdhaW4sIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzLiAlcy4AUmVwbGljYSBJL08gdGhyZWFkIGtpbGxlZCBkdXJpbmcgb3IgYWZ0ZXIgcmVjb25uZWN0LgBTb21lIG9mIHRoZSBjaGFubmVscyBhcmUgbm90IGNyZWF0ZWQvaW5pdGlhbGl6ZWQgcHJvcGVybHkuIENoZWNrIGZvciBhZGRpdGlvbmFsIG1lc3NhZ2VzIGFib3ZlLiBZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byBzdGFydCByZXBsaWNhdGlvbiBvbiB0aG9zZSBjaGFubmVscyB1bnRpbCB0aGUgaXNzdWUgaXMgcmVzb2x2ZWQgYW5kIHRoZSBzZXJ2ZXIgcmVzdGFydGVkLgBGYWlsZWQgdG8gYWRkIGEgcmVwbGljYXRpb24gZmlsdGVyIGludG8gZmlsdGVyIG1hcCBmb3IgY2hhbm5lbCAnJS4xOTJzJy4AVGhlcmUgYXJlIHBlci1jaGFubmVsIHJlcGxpY2F0aW9uIGZpbHRlcihzKSBjb25maWd1cmVkIGZvciBncm91cCByZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIHdoaWNoIGlzIGRpc2FsbG93ZWQuIFRoZSBmaWx0ZXIocykgaGF2ZSBiZWVuIGRpc2NhcmRlZC4AVGhlcmUgYXJlIHBlci1jaGFubmVsIHJlcGxpY2F0aW9uIGZpbHRlcihzKSBjb25maWd1cmVkIGZvciBjaGFubmVsICclLjE5MnMnIHdoaWNoIGRvZXMgbm90IGV4aXN0LiBUaGUgZmlsdGVyKHMpIGhhdmUgYmVlbiBkaXNjYXJkZWQuAEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGJ1aWxkaW5nIGRvX3RhYmxlIGFuZCBpZ25vcmVfdGFibGUgcnVsZXMgdG8gaGFzaGVzIGZvciBwZXItY2hhbm5lbCBmaWx0ZXIuAENsb25lIHBsdWdpbiBjYW5ub3QgYmUgbG9hZGVkLgBDbG9uZSBIYW5kbGVyIGV4aXN0cy4AQ291bGQgbm90IGNyZWF0ZSBDbG9uZSBIYW5kbGVyLgBUaGUgQ1lDTEUgdGltZXIgaXMgbm90IGF2YWlsYWJsZS4gV0FJVCBldmVudHMgaW4gdGhlIHBlcmZvcm1hbmNlX3NjaGVtYSB3aWxsIG5vdCBiZSB0aW1lZC4AVGhlIE5BTk9TRUNPTkQgdGltZXIgaXMgbm90IGF2YWlsYWJsZS4gSURMRS9TVEFHRS9TVEFURU1FTlQvVFJBTlNBQ1RJT04gZXZlbnRzIGluIHRoZSBwZXJmb3JtYW5jZV9zY2hlbWEgd2lsbCBub3QgYmUgdGltZWQuAFRoZSBNSUNST1NFQ09ORCB0aW1lciBpcyBub3QgYXZhaWxhYmxlLiBJRExFL1NUQUdFL1NUQVRFTUVOVC9UUkFOU0FDVElPTiBldmVudHMgaW4gdGhlIHBlcmZvcm1hbmNlX3NjaGVtYSB3aWxsIG5vdCBiZSB0aW1lZC4ARmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgJXp1IGNodW5rcyBlYWNoIG9mIHNpemUgJXp1IGZvciBidWZmZXIgJyVzJyBkdWUgdG8gb3ZlcmZsb3cuAEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgZm9yIGJ1ZmZlciAnJXMnIGR1ZSB0byBvdXQtb2YtbWVtb3J5LgBJbm5vREIgY291bGQgbm90IGZpbmQgaW5kZXggJXMga2V5IG5vICV1IGZvciB0YWJsZSAlcyB0aHJvdWdoIGl0cyBpbmRleCB0cmFuc2xhdGlvbiB0YWJsZS4AQ2Fubm90IGZpbmQgaW5kZXggJXMgaW4gSW5ub0RCIGluZGV4IHRyYW5zbGF0aW9uIHRhYmxlLgBJbm5vREIgY291bGQgbm90IGZpbmQga2V5IG5vICV1IHdpdGggbmFtZSAlcyBmcm9tIGRpY3QgY2FjaGUgZm9yIHRhYmxlICVzLgBJbm5vREI6IGNoYW5nZV9hY3RpdmVfaW5kZXgoJXUpIGZhaWxlZC4AU3RvcmVkIHJlZiBsZW4gaXMgJWx1LCBidXQgdGFibGUgcmVmIGxlbiBpcyAlbHUuAE15U1FMIGlzIHRyeWluZyB0byBjcmVhdGUgYSBjb2x1bW4gcHJlZml4IGluZGV4IGZpZWxkLCBvbiBhbiBpbmFwcHJvcHJpYXRlIGRhdGEgdHlwZS4gVGFibGUgbmFtZSAlcywgY29sdW1uIG5hbWUgJXMuAENhbm5vdCBjcmVhdGUgdGFibGUgJXMuAEZvdW5kIGluZGV4ICVzIGluIElubm9EQiBpbmRleCBsaXN0IGJ1dCBub3QgaXRzIE15U1FMIGluZGV4IG51bWJlci4gSXQgY291bGQgYmUgYW4gSW5ub0RCIGludGVybmFsIGluZGV4LgBJbm5vREI6IFRhYmxlICVzIGNvbnRhaW5zICVsdSBpbmRleGVzIGluc2lkZSBJbm5vREIsIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBudW1iZXIgb2YgaW5kZXhlcyAldSBkZWZpbmVkIGluIE15U1FMLgBUYWJsZSAlcyBjb250YWlucyBmZXdlciBpbmRleGVzIGluc2lkZSBJbm5vREIgdGhhbiBhcmUgZGVmaW5lZCBpbiB0aGUgTXlTUUwuIEhhdmUgeW91IG1peGVkIHVwIHdpdGggZGF0YSBkaWN0aW9uYXJ5IGZyb20gZGlmZmVyZW50IGluc3RhbGxhdGlvbj8ASW5kZXggJXMgb2YgJXMgaGFzICVsdSBjb2x1bW5zIHVuaXF1ZSBpbnNpZGUgSW5ub0RCLCBidXQgTXlTUUwgaXMgYXNraW5nIHN0YXRpc3RpY3MgZm9yICVsdSBjb2x1bW5zLiBIYXZlIHlvdSBtaXhlZCBkYXRhIGRpY3Rpb25hcnkgZnJvbSBkaWZmZXJlbnQgaW5zdGFsbGF0aW9uPwBNb25pdG9yIGNvdW50ZXIgJyVzJyBjYW5ub3QgYmUgdHVybmVkIG9uL29mZiBpbmRpdmlkdWFsbHkuIFBsZWFzZSB1c2UgaXRzIG1vZHVsZSBuYW1lIHRvIHR1cm4gb24vb2ZmIHRoZSBjb3VudGVycyBpbiB0aGUgbW9kdWxlIGFzIGEgZ3JvdXAuAERlZmF1bHQgdmFsdWUgaXMgbm90IGRlZmluZWQgZm9yIHRoaXMgc2V0IG9wdGlvbi4gUGxlYXNlIHNwZWNpZnkgY29ycmVjdCBjb3VudGVyIG9yIG1vZHVsZSBuYW1lLgBJbm5vREI6IE1vbml0b3IgJXMgaXMgYWxyZWFkeSBlbmFibGVkLgBJbnZhbGlkIG1vbml0b3IgY291bnRlciA6ICVzLgBMb2FkTGlicmFyeSgiJXMiKSBmYWlsZWQ6IEdldExhc3RFcnJvciByZXR1cm5zICVsdS4AJXMuACVzLgAlcy4AJXMuACVzLgAlcy4AVW5hYmxlIHRvIHdhaXQgZm9yIHByb2Nlc3MgJWxsZC4AVW5hYmxlIHRvIGRldGVybWluZSBpZiBkYWVtb24gaXMgcnVubmluZzogJXMgKHJjPSVkKS4AJXMAW0ZBVEFMXSBJbm5vREI6ICVzAFRoZSBzeW50YXggJyVzJyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIHVzZSAlcyBpbnN0ZWFkLgBUaGUgc3ludGF4ICclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuACclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuACVzAEJpbmFyeSBsb2dnaW5nIG5vdCBwb3NzaWJsZS4gTWVzc2FnZTogJXMuAEZhaWxlZCB0byBzZXQgcGVyc2lzdGVkIG9wdGlvbnMuAENhbm5vdCBhY3F1aXJlIHNwZWNpZmllZCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uOiAnJS4xOTJzJy4ASW52YWxpZCBWQ1BVIHJhbmdlICV1LSV1LgBJbnZhbGlkIGNwdSBpZCAldS4AR290IGVycm9yICVkIGR1cmluZyBGTFVTSF9MT0dTLgBQcm9ibGVtIHdoaWxlIGRyb3BwaW5nIGRhdGFiYXNlLiBDYW4ndCByZW1vdmUgZGF0YWJhc2UgZGlyZWN0b3J5ICglcykuIFBsZWFzZSByZW1vdmUgaXQgbWFudWFsbHkuAFRoZSBvcHRpb24gZXhwaXJlX2xvZ3NfZGF5cyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIG9wdGlvbiBiaW5sb2dfZXhwaXJlX2xvZ3Nfc2Vjb25kcy4gVGhlcmVmb3JlLCB2YWx1ZSBvZiBleHBpcmVfbG9nc19kYXlzIGlzIGlnbm9yZWQuAG1hbGZvcm1lZCBvciB2ZXJ5IG9sZCByZWxheSBsb2cgd2hpY2ggZG9lcyBub3QgaGF2ZSBGb3JtYXREZXNjcmlwdG9yLgBVcGdyYWRlIG9mIHZpZXcgJyVzLiVzJyBmYWlsZWQuIFJlLWNyZWF0ZSB0aGUgdmlldyB3aXRoIHRoZSBleHBsaWNpdCBjb2x1bW4gbmFtZSBsZXNzZXIgdGhhbiA2NCBjaGFyYWN0ZXJzLgBUYWJsZSB1cGdyYWRlIHJlcXVpcmVkIGZvciBgJS0uNjRzYC5gJS0uNjRzYC4gUGxlYXNlIGR1bXAvcmVsb2FkIHRhYmxlIHRvIGZpeCBpdCEARXJyb3IgaW4gdXBkYXRpbmcgdmVyc2lvbiBudW1iZXIgaW4gJXMgdGFibGVzcGFjZS4AS2V5cmluZyBtaWdyYXRpb24gZmFpbGVkLgBLZXlyaW5nIG1pZ3JhdGlvbiBzdWNjZXNzZnVsLgBSZWNlaXZlZCBSRVNUQVJUIGZyb20gdXNlciAlcy4gIFJlc3RhcnRpbmcgbXlzcWxkIChWZXJzaW9uOiAlcykuAERpZmZlcmVudCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzIHNldHRpbmdzIGZvciBzZXJ2ZXIgKCcldScpIGFuZCBkYXRhIGRpY3Rpb25hcnkgKCcldScpLgBEYXRhIGRpY3Rpb25hcnkgaW5pdGlhbGl6aW5nIHZlcnNpb24gJyV1Jy4ARGF0YSBkaWN0aW9uYXJ5IHJlc3RhcnRpbmcgdmVyc2lvbiAnJXUnLgBEYXRhIGRpY3Rpb25hcnkgdXBncmFkaW5nIGZyb20gdmVyc2lvbiAnJXUnIHRvICcldScuAERhdGEgZGljdGlvbmFyeSB1cGdyYWRlIHByb2hpYml0ZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gJy0tbm9fZGRfdXBncmFkZScuAFVwZ3JhZGluZyB0aGUgZGF0YSBkaWN0aW9uYXJ5IGZyb20gZGljdGlvbmFyeSB2ZXJzaW9uICcldScgaXMgbm90IHN1cHBvcnRlZC4AVXBncmFkaW5nIHRoZSBkYXRhIGRpY3Rpb25hcnkgZmFpbGVkLCB0ZW1wb3Jhcnkgc2NoZW1hIG5hbWUgJyUtLjE5MnMnIG5vdCBhdmFpbGFibGUuAERhdGEgZGljdGlvbmFyeSBtaW5vciBkb3duZ3JhZGUgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1Jy4ATWlub3IgZG93bmdyYWRlIG9mIHRoZSBEYXRhIGRpY3Rpb25hcnkgZnJvbSBkaWN0aW9uYXJ5IHZlcnNpb24gJyV1JyBpcyBub3Qgc3VwcG9ydGVkLgBObyBkYXRhIGRpY3Rpb25hcnkgdmVyc2lvbiBudW1iZXIgZm91bmQuAFRocmVhZCBwb29sIG5vdCBzdXBwb3J0ZWQsIHJlcXVpcmVzIGEgbWluaW11bSBvZiAlcy4AdGhyZWFkX3Bvb2xfc2l6ZT0wIG1lYW5zIHRocmVhZCBwb29sIGRpc2FibGVkLCBBbGxvd2VkIHJhbmdlIG9mIHRocmVhZF9wb29sX3NpemUgaXMgJWQtJWQuAHRocmVhZF9wb29sX3NpemU9JWx1IGlzIHRvbyBoaWdoLCAlZCBpcyBtYXhpbXVtLCB0aHJlYWQgcG9vbCBpcyBkaXNhYmxlZC4gQWxsb3dlZCByYW5nZSBvZiB0aHJlYWRfcG9vbF9zaXplIGlzICVkLSVkLgB0aHJlYWRfcG9vbF9hbGdvcml0aG0gY2FuIGJlIHNldCB0byAwIGFuZCAxLCAwIGluZGljYXRlcyB0aGUgZGVmYXVsdCBsb3cgY29uY3VycmVuY3kgYWxnb3JpdGhtLCAxIG1lYW5zIGEgaGlnaCBjb25jdXJyZW5jeSBhbGdvcml0aG0uAHRocmVhZF9wb29sX3N0YWxsX2xpbWl0IGNhbiBiZSAlZCBhdCBtaW5pbXVtIGFuZCAlZCBhdCBtYXhpbXVtLCBzbWFsbGVyIHZhbHVlcyB3b3VsZCByZW5kZXIgdGhlIHRocmVhZCBwb29sIGZhaXJseSB1c2VsZXNzIGFuZCBoaWdoZXIgdmFsdWVzIGNvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gaGF2ZSB1bmRldGVjdGVkIGRlYWRsb2NrIGlzc3VlcyBpbiB0aGUgTXlTUUwgU2VydmVyLgBJbnZhbGlkIHZhbHVlIG9mIHRocmVhZF9wb29sX3ByaW9fa2lja3VwX3RpbWVyIHNwZWNpZmllZC4gVmFsdWUgb2YgdGhyZWFkX3Bvb2xfcHJpb19raWNrdXBfdGltZXIgc2hvdWxkIGJlIGluIHJhbmdlIDAtNDI5NDk2NzI5NC4AdGhyZWFkX3Bvb2xfbWF4X3VudXNlZF90aHJlYWRzIGNhbm5vdCBiZSBzZXQgaGlnaGVyIHRoYW4gJWQuAEZhaWxlZCB0byBpbnN0YW50aWF0ZSB0aGUgY29ubmVjdGlvbiBoYW5kbGVyIG9iamVjdC4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhyZWFkIHBvb2wgcGx1Z2luLgBUaHJlYWQgcG9vbCBwbHVnaW4gc3RhcnRlZCBzdWNjZXNzZnVsbHkgd2l0aCBwYXJhbWV0ZXJzOiB0aHJlYWRfcG9vbF9zaXplID0gJWx1LCB0aHJlYWRfcG9vbF9hbGdvcml0aG0gPSAlcywgdGhyZWFkX3Bvb2xfc3RhbGxfbGltaXQgPSAldSwgdGhyZWFkX3Bvb2xfcHJpb19raWNrdXBfdGltZXIgPSAldSwgdGhyZWFkX3Bvb2xfbWF4X3VudXNlZF90aHJlYWRzID0gJXUsIHRocmVhZF9wb29sX2hpZ2hfcHJpb3JpdHlfY29ubmVjdGlvbiA9ICVkLgBDYW4ndCBzZXR1cCBjb25uZWN0aW9uIHRlYXJkb3duIHRocmVhZC1zcGVjaWZpYyBkYXRhLgBDcmVhdGlvbiBvZiBjb25uZWN0IGhhbmRsZXIgdGhyZWFkIGZhaWxlZC4ARmFpbGVkIHRvIGNyZWF0ZSB0aGQgYW5kIGF1dGhlbnRpY2F0ZSBjb25uZWN0aW9uLgBGYWlsZWQgdG8gcHJvY2VzcyBjb25uZWN0aW9uIGV2ZW50LgBDYW4ndCBjcmVhdGUgcG9vbCB0aHJlYWQgKGVycm9yICVkLCBlcnJubzogJWQpLgAlLipzLgB0cF9ncm91cF9sb3dfbGV2ZWxfaW5pdCgpIGZhaWxlZC4AUmVhcm0gZmFpbGVkIGV2ZW4gYWZ0ZXIgMzAgc2Vjb25kcywgY2FuJ3QgY29udGludWUgd2l0aG91dCBub3RpZnkgc29ja2V0LgAlczogJXMgYnVmZmVyIGlzIHRvbyBzbWFsbABNZWNhYiB2JXMgaXMgbm90IHN1cHBvcnRlZCwgdGhlIGxvd2VzdCB2ZXJzaW9uIHN1cHBvcnRlZCBpcyB2JXMuAE1lY2FiIHYlcyBpcyBub3QgdmVyaWZpZWQsIHRoZSBoaWdoZXN0IHZlcnNpb24gc3VwcG9ydGVkIGlzIHYlcy4ATWVjYWI6IFRyeWluZyBjcmVhdGVNb2RlbCglcykuAE1lY2FiOiBjcmVhdGVNb2RlbCgpIGZhaWxlZDogJXMuAE1lY2FiOiBjcmVhdGVUYWdnZXIoKSBmYWlsZWQ6ICVzLgBNZWNhYjogVW5zdXBwb3J0ZWQgZGljdGlvbmFyeSBjaGFyc2V0ICVzLgBNZWNhYjogTG9hZGVkIGRpY3Rpb25hcnkgY2hhcnNldCBpcyAlcy4ATWVjYWI6IHBhcnNlKCkgZmFpbGVkOiAlcy4ATWVjYWI6IHBhcnNlKCkgZmFpbGVkOiBvdXQgb2YgbWVtb3J5LgBNZWNhYjogY3JlYXRlTGF0dGljZSgpIGZhaWxlZDogJXMuAC0tLT4gJXMgZW50ZXIuADwtLS0gJXMgZXhpdCAoJWQpLgA8LS0tICVzIGV4aXQgKCVzKS4APC0tLSAlcyBleGl0LgBTZW1pLXN5bmMgcmVwbGljYXRpb24gaW5pdGlhbGl6ZWQgZm9yIHRyYW5zYWN0aW9ucy4AJXM6IHRyYW5zYWN0aW9uIG5vZGUgYWxsb2NhdGlvbiBmYWlsZWQgZm9yOiAoJXMsICVsdSkuACVzOiBiaW5sb2cgd3JpdGUgb3V0LW9mLW9yZGVyLCB0YWlsICglcywgJWx1KSwgbmV3IG5vZGUgKCVzLCAlbHUpLgAlczogaW5zZXJ0ICglcywgJWx1KSBpbiBlbnRyeSgldSkuACVzOiBwcm9iZSAoJXMsICVsdSkgaW4gZW50cnkoJXUpLgAlczogY2xlYXJlZCBhbGwgbm9kZXMuACVzOiBjbGVhcmVkICVkIG5vZGVzIGJhY2sgdW50aWwgcG9zICglcywgJWx1KS4AUmVhZCBzZW1pLXN5bmMgcmVwbHkgbWFnaWMgbnVtYmVyIGVycm9yLgBSZWFkIHNlbWktc3luYyByZXBseSBsZW5ndGggZXJyb3I6IHBhY2tldCBpcyB0b28gc21hbGwuAFJlYWQgc2VtaS1zeW5jIHJlcGx5IGJpbmxvZyBmaWxlIGxlbmd0aCB0b28gbGFyZ2UuACVzOiBHb3QgcmVwbHkoJXMsICVsdSkgZnJvbSBzZXJ2ZXIgJXUuACVzIGNhbGxlZCB0d2ljZS4AU2VtaS1zeW5jIHJlcGxpY2F0aW9uIGVuYWJsZWQgb24gdGhlIHNvdXJjZS4AQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSB0byBlbmFibGUgc2VtaS1zeW5jIG9uIHRoZSBzb3VyY2UuAFNlbWktc3luYyByZXBsaWNhdGlvbiBkaXNhYmxlZCBvbiB0aGUgc291cmNlLgBTRU1JU1lOQzogRm9yY2VkIHNodXRkb3duLiBTb21lIHVwZGF0ZXMgbWlnaHQgbm90IGJlIHJlcGxpY2F0ZWQuACVzOiBHb3QgcmVwbHkgYXQgKCVzLCAlbHUpLgAlczogc2lnbmFsIGFsbCB3YWl0aW5nIHRocmVhZHMuACVzOiB3YWl0IHBvcyAoJXMsICVsdSksIHJlcGwoJWQpLgAlczogQmlubG9nIHJlcGx5IGlzIGFoZWFkICglcywgJWx1KS4AJXM6IG1vdmUgYmFjayB3YWl0IHBvc2l0aW9uICglcywgJWx1KS4AJXM6IGluaXQgd2FpdCBwb3NpdGlvbiAoJXMsICVsdSkuACVzOiB3YWl0ICVsdSBtcyBmb3IgYmlubG9nIHNlbnQgKCVzLCAlbHUpLgBUaW1lb3V0IHdhaXRpbmcgZm9yIHJlcGx5IG9mIGJpbmxvZyAoZmlsZTogJXMsIHBvczogJWx1KSwgc2VtaS1zeW5jIHVwIHRvIGZpbGUgJXMsIHBvc2l0aW9uICVsdS4AQXNzZXNzbWVudCBvZiB3YWl0aW5nIHRpbWUgZm9yIGNvbW1pdFRyeCBmYWlsZWQgYXQgd2FpdCBwb3NpdGlvbiAoJXMsICVsdSkuAFNlbWktc3luYyByZXBsaWNhdGlvbiBzd2l0Y2hlZCBPRkYuAFNlbWktc3luYyByZXBsaWNhdGlvbiBzd2l0Y2hlZCBPTiBhdCAoJXMsICVsdSkuAE5vIGVub3VnaCBzcGFjZSBpbiB0aGUgcGFja2V0IGZvciBzZW1pLXN5bmMgZXh0cmEgaGVhZGVyLCBzZW1pLXN5bmMgcmVwbGljYXRpb24gZGlzYWJsZWQuACVzOiBzZXJ2ZXIoJWQpLCAoJXMsICVsdSkgc3luYyglZCksIHJlcGwoJWQpLgBTZW1pLXN5bmMgZmFpbGVkIHRvIGluc2VydCB0cmFueF9ub2RlIGZvciBiaW5sb2cgZmlsZTogJXMsIHBvc2l0aW9uOiAlbHUuACVzOiBUcmFuc2FjdGlvbiBza2lwcGVkIGF0ICglcywgJWx1KS4AU2VtaS1zeW5jIHNvdXJjZSBmYWlsZWQgb24gbmV0X2ZsdXNoKCkgYmVmb3JlIHdhaXRpbmcgZm9yIHJlcGxpY2EgcmVwbHkuAFRoZSByZWNlaXZlZCBhY2sgaXMgc21hbGxlciB0aGFuIG1fZ3JlYXRlc3RfYWNrLgBBZGQgdGhlIGFjayBpbnRvIHNsb3QgJXUuAFVwZGF0ZSBhbiBleHNpdGluZyBhY2sgaW4gc2xvdCAldS4ARmFpbGVkIHRvIHN0YXJ0IHNlbWktc3luYyBBQ0sgcmVjZWl2ZXIgdGhyZWFkLCAgY291bGQgbm90IGNyZWF0ZSB0aHJlYWQoZXJybm86JWQpLgBTdGFydGluZyBhY2sgcmVjZWl2ZXIgdGhyZWFkLgBGYWlsZWQgdG8gd2FpdCBvbiBzZW1pLXN5bmMgZHVtcCBzb2NrZXRzLCBlcnJvcjogZXJybm89JWQuAFN0b3BwaW5nIGFjayByZWNlaXZlciB0aHJlYWQuAEZhaWxlZCB0byByZWdpc3RlciByZXBsaWNhIHRvIHNlbWktc3luYyBBQ0sgcmVjZWl2ZXIgdGhyZWFkLgBTdGFydCAlcyBiaW5sb2dfZHVtcCB0byByZXBsaWNhIChzZXJ2ZXJfaWQ6ICVkKSwgcG9zKCVzLCAlbHUpLgBTdG9wICVzIGJpbmxvZ19kdW1wIHRvIHJlcGxpY2EgKHNlcnZlcl9pZDogJWQpLgB1bnJlZ2lzdGVyX3RyYW5zX29ic2VydmVyIGZhaWxlZC4AdW5yZWdpc3Rlcl9iaW5sb2dfc3RvcmFnZV9vYnNlcnZlciBmYWlsZWQuAHVucmVnaXN0ZXJfYmlubG9nX3RyYW5zbWl0X29ic2VydmVyIGZhaWxlZC4AdW5yZWdpc3Rlcl9yZXBsaWNhdG9yIE9LLgBTZW1pc3luYyByZXBsaWNhIHNvY2tldCBmZCBpcyAldS4gc2VsZWN0KCkgY2Fubm90IGhhbmRsZSBpZiB0aGUgc29ja2V0IGZkIGlzIGJpZ2dlciB0aGFuICV1IChGRF9TRVRTSVpFKS4AJXM6IHJlcGx5IC0gJWQuAE1pc3NpbmcgbWFnaWMgbnVtYmVyIGZvciBzZW1pLXN5bmMgcGFja2V0LCBwYWNrZXQgbGVuOiAlbHUuAFJlcGxpY2EgSS9PIHRocmVhZDogU3RhcnQgJXMgcmVwbGljYXRpb24gdG8gc291cmNlICclc0AlczolZCcgaW4gbG9nICclcycgYXQgcG9zaXRpb24gJWx1LgAlczogcmVwbHkgKCVzLCAlbHUpLgBTZW1pLXN5bmMgcmVwbGljYSBuZXRfZmx1c2goKSByZXBseSBmYWlsZWQuAFNlbWktc3luYyByZXBsaWNhIHNlbmQgcmVwbHkgZmFpbGVkOiAlcyAoJWQpLgBFeGVjdXRpb24gZmFpbGVkIG9uIHNvdXJjZTogJXM7IGVycm9yICVkAFNvdXJjZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCBzZW1pLXN5bmMsIGZhbGxiYWNrIHRvIGFzeW5jaHJvbm91cyByZXBsaWNhdGlvbgBTZXQgJ3JwbF9zZW1pX3N5bmNfcmVwbGljYT0xJyBvbiBzb3VyY2UgZmFpbGVkAEZhaWxlZCB0byBzdG9wIGFjayByZWNlaXZlciB0aHJlYWQgb24gbXlfdGhyZWFkX2pvaW4sIGVycm5vKCVkKS4ARmFpbGVkIHRvIHJlYWQgdGhlIGZpcmV3YWxsIHRhYmxlcwBGYWlsZWQgdG8gcmVnaXN0ZXIgZHluYW1pYyBwcml2aWxlZ2VzAFN0YXRlbWVudCB3YXMgdHJ1bmNhdGVkIGFuZCBub3QgcmVjb3JkZWQ6ICVzAFN0YXRlbWVudCB3aXRoIG5vIHRleHQgd2FzIG5vdCByZWNvcmRlZABTVVNQSUNJT1VTIFNUQVRFTUVOVCBmcm9tICclcycuIFJlYXNvbjogJXMgU3RhdGVtZW50OiAlcwBBQ0NFU1MgREVOSUVEIGZvciAnJXMnLiBSZWFzb246ICVzIFN0YXRlbWVudDogJXMAU2tpcHBlZCB1bmtub3duIHVzZXIgbW9kZSAnJXMnAFJlbG9hZGluZyBjYWNoZSBmcm9tIGRpc2sARklSRVdBTEwgUkVTRVQgZm9yICclcycAQ291bnRlcnMgYXJlIHJlc2V0IHRvIHplcm8AJXMAQXVkaXQgTG9nIHBsdWdpbiBzdXBwb3J0cyBmaWx0ZXJpbmcgbW9kZSwgd2hpY2ggaGFzIG5vdCBiZWVuIGluc3RhbGxlZCB5ZXQuIEF1ZGl0IExvZyBwbHVnaW4gd2lsbCBydW4gaW4gdGhlIGxlZ2FjeSBtb2RlLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgcmVsZWFzZS4AUHJldmlvdXNseSBleGNsdWRlIGxpc3QgaXMgdXNlZCwgbm93IHdlIHN0YXJ0IHVzaW5nIGluY2x1ZGUgbGlzdCwgZXhjbHVkZSBsaXN0IGlzIHNldCB0byBOVUxMLgBDYW5ub3Qgc2V0IGF1ZGl0X2xvZ19wb2xpY3kgc2ltdWx0YW5lb3VzbHkgd2l0aCBlaXRoZXIgYXVkaXRfbG9nX2Nvbm5lY3Rpb25fcG9saWN5IG9yICBhdWRpdF9sb2dfc3RhdGVtZW50X3BvbGljeSwgc2V0dGluZyBhdWRpdF9sb2dfY29ubmVjdGlvbl9wb2xpY3kgYW5kIGF1ZGl0X2xvZ19zdGF0ZW1lbnRfcG9saWN5IGJhc2VkIG9uIGF1ZGl0X2xvZ19wb2xpY3kuAEJvdGggaW5jbHVkZSBhbmQgZXhjbHVkZSBsaXN0cyBwcm92aWRlZCwgaW5jbHVkZSBsaXN0IGlzIHByZWZlcnJlZCwgZXhjbHVkZSBsaXN0IGlzIHNldCB0byBOVUxMLgBDb3VsZCBub3QgYWNjZXNzICclcycgZGlyZWN0b3J5LgBDb3VsZCBub3QgcmVuYW1lIGZpbGUgZnJvbSAnJXMnIHRvICclcycuAEZpbGUgJyVzJyBzaG91bGQgbm90IGV4aXN0LiBJdCBtYXkgYmUgaW5jb21wbGV0ZS4gVGhlIHNlcnZlciBjcmFzaGVkLgBDb3VsZCBub3QgcmVuYW1lIGZpbGUgZnJvbSAnJXMnIHRvICclcycuIFJlbW92ZSB0aGUgZmlsZSBtYW51YWxseS4ASW5jb21wbGV0ZSBmaWxlIHJlbmFtZWQgZnJvbSAnJXMnIHRvICclcycuAEVycm9yIHdyaXRpbmcgZmlsZSAnJS0uMjAwcycgKGVycm5vOiAlZCAtICVzKS4AQ291bGQgbm90IGluaXRpYWxpemUgYXVkaXQgbG9nIGZpbGUgZW5jcnlwdGlvbi4AQ291bGQgbm90IGluaXRpYWxpemUgYXVkaXQgbG9nIGZpbGUgY29tcHJlc3Npb24uAENvdWxkIG5vdCBjcmVhdGUgJyVzJyBmaWxlIGZvciBhdWRpdCBsb2dnaW5nLgBBdWRpdCBsb2cgZmlsZSAoJXMpIG11c3QgYmUgbWFudWFsbHkgcmVuYW1lZCBiZWZvcmUgYXVkaXRfbG9nX2ZsdXNoIGlzIHNldCB0byB0cnVlLgAlcwBFcnJvciBwYXJzaW5nIEpTT04gZXZlbnQuIEV2ZW50IG5vdCBhY2Nlc3NpYmxlLgBCdWZmZXIgaXMgdG9vIHNtYWxsIHRvIGhvbGQgSlNPTiBldmVudC4gTnVtYmVyIG9mIGV2ZW50cyBza2lwcGVkOiAlenUuAENvdWxkIG5vdCBvcGVuIEpTT04gZmlsZSBmb3IgcmVhZGluZy4gUmVhZGluZyBuZXh0IGZpbGUgaWYgZXhpc3RzLgBKU09OIGZpbGUgcGFyc2luZyBlcnJvci4gUmVhZGluZyBuZXh0IGZpbGUgaWYgZXhpc3RzAEludmFsaWQgY29sdW1uIGNvdW50IGluIHRoZSAnJXMuJXMnIHRhYmxlLgBJbnZhbGlkIGNvbHVtbiBkZWZpbml0aW9uIG9mIHRoZSAnJXMuJXMnIHRhYmxlLgBDb3VsZCBub3Qgc3RvcmUgZmllbGQgb2YgdGhlICVzIHRhYmxlLgBDb3VsZCBub3QgdXBkYXRlICVzIHRhYmxlLgBDb3VsZCBub3QgaW5zZXJ0IGludG8gJXMgdGFibGUuAENvdWxkIG5vdCBkZWxldGUgZnJvbSAlcyB0YWJsZS4AQ291bGQgbm90IGluaXRpYWxpemUgJXMgdGFibGUgZm9yIHJlYWRpbmcuAENvdWxkIG5vdCByZWFkICVzIHRhYmxlLgBDb3VsZCBub3QgY2xvc2UgJXMgdGFibGUgcmVhZGluZy4AQm90aCB1c2VyIGFuZCBob3N0IGNvbHVtbnMgb2YgJXMgdGFibGUgY2Fubm90IGJlIGVtcHR5LgBGaWx0ZXJuYW1lIGNvbHVtbiBvZiAlcyB0YWJsZSBjYW5ub3QgYmUgZW1wdHkuAERpY3Rpb25hcnkgZmlsZSBub3Qgc3BlY2lmaWVkAERpY3Rpb25hcnkgZmlsZSBub3QgbG9hZGVkAERpY3Rpb25hcnkgZmlsZSBzaXplIGV4Y2VlZGVkIE1BWF9ESUNUSU9OQVJZX0ZJTEVfTEVOR1RILCBub3QgbG9hZGVkAEV4Y2VwdGlvbiB3aGlsZSByZWFkaW5nIHRoZSBkaWN0aW9uYXJ5IGZpbGUAQ2FuJ3QgcmV0cmlldmUgdGhlICVzIGZyb20gdGhlIHNlY3VyaXR5IGNvbnRleHQAQ2FuJ3QgcmV0cmlldmUgdGhlIHNlY3VyaXR5IGNvbnRleHQARWZmZWN0aXZlIHZhbHVlIG9mIHZhbGlkYXRlX3Bhc3N3b3JkX2xlbmd0aCBpcyBjaGFuZ2VkLiBOZXcgdmFsdWUgaXMgJWQAJXMAUmV3cml0dGVuIHF1ZXJ5IGZhaWxlZCB0byBwYXJzZTolcwBTdGFydHVwIGZhaWxlZCB3aXRoIGVycm9yICIlcyIARXhpdGluZwBFeGl0IGRvbmUAVXNpbmcgU1NMIGNvbmZpZ3VyYXRpb24gZnJvbSBNeVNRTCBTZXJ2ZXIAVXNpbmcgU1NMIGNvbmZpZ3VyYXRpb24gZnJvbSBNeXNxbHggUGx1Z2luAE5laXRoZXIgTXlTUUwgU2VydmVyIG5vciBNeXNxbHggUGx1Z2luIGhhcyB2YWxpZCBTU0wgY29uZmlndXJhdGlvbgBVc2luZyAlcyBmb3IgVExTIGNvbm5lY3Rpb25zAEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSBVc2luZyBTZWN1cmUgQ29ubmVjdGlvbnMgd2l0aCBYIFBsdWdpbiBzZWN0aW9uIGluIHRoZSBNeVNRTCBkb2N1bWVudGF0aW9uACVzAEZhaWxlZCB0byBwYXJzZSBzdG9yZWQgYXV0aGVudGljYXRpb24gc3RyaW5nIGZvciAlcy4gUGxlYXNlIGNoZWNrIGlmIG15c3FsLnVzZXIgdGFibGUgbm90IGNvcnJ1cHRlZABFcnJvciBpbiBnZW5lcmF0aW5nIG11bHRpLXJvdW5kIGhhc2ggZm9yICVzLiBQbHVnaW4gY2FuIG5vdCBwZXJmb3JtIGF1dGhlbnRpY2F0aW9uIHdpdGhvdXQgaXQuIFRoaXMgbWF5IGJlIGEgdHJhbnNpZW50IHByb2JsZW0AQXV0aGVudGljYXRpb24gcmVxdWlyZXMgZWl0aGVyIFJTQSBrZXlzIG9yIFNTTCBlbmNyeXB0aW9uAFJTQSBrZXkgY2lwaGVyIGxlbmd0aCBvZiAldSBpcyB0b28gbG9uZy4gTWF4IHZhbHVlIGlzICV1AEZhaWxlZCB0byBvcGVuIHRoZSAlcyBmaWx0ZXIgdGFibGVzAEZhaWxlZCB0byBvcGVuICclcy4lcycgJXMgdGFibGUAJXMAJXMAJXMAUGFzc3dvcmQgc2FsdCBmb3IgdXNlciAnJXMnIGlzIGNvcnJ1cHQAT3V0IG9mIG1lbW9yeSBmb3IgY29tcG9uZW50IHN5c3RlbSB2YXJpYWJsZSAnJXMnLgB2YXJpYWJsZSAlcyBvZiBjb21wb25lbnQgJXMgd2FzIGZvcmNlZCB0byBiZSByZWFkLW9ubHk6IHN0cmluZyB2YXJpYWJsZSB3aXRob3V0IHVwZGF0ZV9mdW5jIGFuZCBQTFVHSU5fVkFSX01FTUFMTE9DIGZsYWcuAFVua25vd24gdmFyaWFibGUgdHlwZSBjb2RlIDB4JXggaW4gY29tcG9uZW50ICclcycuAFBhcnNpbmcgb3B0aW9ucyBmb3IgdmFyaWFibGUgJyVzJyBmYWlsZWQuAFNldHRpbmcgcGVyc2lzdGVudCBvcHRpb25zIGZvciBjb21wb25lbnQgdmFyaWFibGUgJyVzJyBmYWlsZWQuAFRoZSBsb2ctZmlsdGVyIGNvbXBvbmVudCAiJXMiIGdvdCBjb25mdXNlZCBhdCAiJXMiIChzdGF0ZTogJXMpIC4uLgBXYWl0aW5nIHVudGlsIEkvTyB0aHJlYWQgZm9yIGNoYW5uZWwgJyVzJyBmaW5pc2ggd3JpdGluZyB0byBkaXNrIGJlZm9yZSBzdG9wcGluZy4gRnJlZSBzb21lIGRpc2sgc3BhY2Ugb3IgdXNlICdLSUxMJyB0byBhYm9ydCBJL08gdGhyZWFkIG9wZXJhdGlvbi4gTm90aWNlIHRoYXQgYWJvcnRpbmcgdGhlIEkvTyB0aHJlYWQgd2hpbGUgcm90YXRpbmcgdGhlIHJlbGF5IGxvZyBtaWdodCBjb3JydXB0IHRoZSByZWxheSBsb2dzLCByZXF1aXJpbmcgYSBzZXJ2ZXIgcmVzdGFydCB0byBmaXggaXQuAENvdWxkIG5vdCB1c2UgJXMgZm9yIGxvZ2dpbmcgKGVycm9yICVkIC0gJXMpLiBUdXJuaW5nIGxvZ2dpbmcgb2ZmIGZvciB0aGUgc2VydmVyIHByb2Nlc3MuIFRvIHR1cm4gaXQgb24gYWdhaW46IGZpeCB0aGUgY2F1c2UsIHRoZW4lcyByZXN0YXJ0IHRoZSBNeVNRTCBzZXJ2ZXIuAFVuYWJsZSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGZvciBjb2x1bW4gJyUtLjE5MnMnOiAlLS4xOTJzLgAndXRmOCcgaXMgY3VycmVudGx5IGFuIGFsaWFzIGZvciB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCB3aGljaCB3aWxsIGJlIHJlcGxhY2VkIGJ5IFVURjhNQjQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIFVURjhNQjQgaW4gb3JkZXIgdG8gYmUgdW5hbWJpZ3VvdXMuAE5BVElPTkFML05DSEFSL05WQVJDSEFSIGltcGxpZXMgdGhlIGNoYXJhY3RlciBzZXQgVVRGOE1CMywgd2hpY2ggd2lsbCBiZSByZXBsYWNlZCBieSBVVEY4TUI0IGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyBDSEFSKHgpIENIQVJBQ1RFUiBTRVQgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4AQSBjb21taXQgZm9yIGFuIGF0b21pYyBEREwgc3RhdGVtZW50IHdhcyB1bnN1Y2Nlc3NmdWwgb24gdGhlIHNvdXJjZSBhbmQgdGhlIHJlcGxpY2EuIFRoZSByZXBsaWNhIHN1cHBvcnRzIGF0b21pYyBEREwgc3RhdGVtZW50cyBidXQgdGhlIHNvdXJjZSBkb2VzIG5vdCwgc28gdGhlIGFjdGlvbiB0YWtlbiBieSB0aGUgcmVwbGljYSBhbmQgc291cmNlIG1pZ2h0IGRpZmZlci4gQ2hlY2sgdGhhdCB0aGVpciBzdGF0ZXMgaGF2ZSBub3QgZGl2ZXJnZWQgYmVmb3JlIHByb2NlZWRpbmcuAENvbmZpZ3VyaW5nIHBlcnNpc3RlZCBvcHRpb25zIGZhaWxlZDogIiVzIi4AVGhlIHN0b3JhZ2UgZW5naW5lICclLS4xOTJzJyBkb2VzIG5vdCBwcm92aWRlIGR5bmFtaWMgdGFibGUgc3RhdGlzdGljcwBUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0ICVzLgBUaGUgdGFibGUgJyUtLjE5MnMnIG1heSBub3QgYmUgY3JlYXRlZCBpbiB0aGUgcmVzZXJ2ZWQgdGFibGVzcGFjZSAnJS0uMTkycycuAFNTTCBmaXBzIG1vZGUgZXJyb3I6ICVzAGluaXRfY29ubmVjdCB2YXJpYWJsZSBpcyBpZ25vcmVkIGZvciB1c2VyOiAlcyBob3N0OiAlcyBkdWUgdG8gZXhwaXJlZCBwYXNzd29yZC4Ac3FsX21vZGU9MHglMDh4IGlzIG5vdCBzdXBwb3J0ZWQAT3V0IG9mIG1lbW9yeS4AV3JvbmcgY29sdW1uIGNvdW50IG9yIG5hbWVzIHdoZW4gbG9hZGluZyBydWxlcy4AU29tZSBydWxlcyBmYWlsZWQgdG8gbG9hZC4AR290IGVycm9yIGZyb20gc3RvcmFnZSBlbmdpbmUgd2hpbGUgcmVmcmVzaGluZyByZXdyaXRlIHJ1bGVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDb25uZWN0aW9uX2V2ZW50X2Nvb3JkaW5hdG9yAEZhaWxlZCB0byB1cGRhdGUgY29ubmVjdGlvbiBkZWxheSB0cmlnZ2VyZWQgc3RhdHMARmFpbGVkIHRvIHJlc2V0IGNvbm5lY3Rpb24gZGVsYXkgdHJpZ2dlcmVkIHN0YXRzAFVuZXhwZWN0ZWQgb3B0aW9uIHR5cGUgZm9yIGNvbm5lY3Rpb24gZGVsYXkuAEZhaWxlZCB0byBpbml0aWFsaXplIENvbm5lY3Rpb25fZGVsYXlfYWN0aW9uAENvdWxkIG5vdCBzZXQgJXMgZGVsYXkgZm9yIGNvbm5lY3Rpb24gZGVsYXkuAEZhaWxlZCB0byB1cGRhdGUgY29ubmVjdGlvbiBkZWxheSBoYXNoIGZvciBhY2NvdW50IDogJXMAJXM6IEZvcmNlIHN0b3BwaW5nIGNsaWVudCBiZWNhdXNlIGV4Y2VwdGlvbiBvY2N1cnJlZDogJXMAJXMuJXU6IE1heGltdW0gbnVtYmVyIG9mIGF1dGhlbnRpY2F0aW9uIGF0dGVtcHRzIHJlYWNoZWQsIGxvZ2luIGZhaWxlZC4ARXJyb3IgYWxsb2NhdGluZyBCdWZmZXJfcGFnZTogJXMARGV0ZWN0ZWQgJXUgaGFuZ2luZyBjbGllbnQocykARXJyb3IgYWNjZXB0aW5nIGNsaWVudABJbnRlcm5hbCBlcnJvciBzY2hlZHVsaW5nIGNsaWVudCBmb3IgZXhlY3V0aW9uAFByZXBhcmF0aW9uIG9mIEkvTyBpbnRlcmZhY2VzIGZhaWxlZCwgWCBQcm90b2NvbCB3b24ndCBiZSBhY2Nlc3NpYmxlAHNydl9zZXNzaW9uX2luaXRfdGhyZWFkIHJldHVybmVkIGVycm9yAFVuYWJsZSB0byB1c2UgdXNlciBteXNxbC5zZXNzaW9uIGFjY291bnQgd2hlbiBjb25uZWN0aW5nIHRoZSBzZXJ2ZXIgZm9yIGludGVybmFsIHBsdWdpbiByZXF1ZXN0cy4ARm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhlIFggUGx1Z2luIFVzZXIgQWNjb3VudCBzZWN0aW9uIGluIHRoZSBNeVNRTCBkb2N1bWVudGF0aW9uACVzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiBkaXNwYXRjaGluZyBjb21tYW5kOiAlcwBFeGNlcHRpb24gaW4gcG9zdDogJXMASW50ZXJuYWwgZXJyb3Igc2NoZWR1bGluZyB0YXNrAEV4Y2VwdGlvbiBpbiBldmVudCBsb29wOiAiJXMiOiAlcwBTZXR1cCBvZiAlcyBmYWlsZWQsICVzACVzAEZhaWxlZCBhdCBTU0wgY29uZmlndXJhdGlvbjogIiVzIgBFcnJvciBkdXJpbmcgU1NMIGhhbmRzaGFrZSBmb3IgY2xpZW50IGNvbm5lY3Rpb24gKCVpKQAlczogRXJyb3IgZHVyaW5nIFNTTCBoYW5kc2hha2UAJXM6IEVycm9yIGNyZWF0aW5nIHNlc3Npb24gZm9yIGNvbm5lY3Rpb24gZnJvbSAlcwAlczogRXJyb3IgaW5pdGlhbGl6aW5nIHNlc3Npb24gZm9yIGNvbm5lY3Rpb246ICVzACVzOiBNZXNzYWdlIG9mIHNpemUgJXUgcmVjZWl2ZWQsIGV4Y2VlZGluZyB0aGUgbGltaXQgb2YgJWkATWVzc2FnZSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQ6ICVzAFVuYWJsZSB0byBzZXQgbWluaW1hbCBudW1iZXIgb2Ygd29ya2VycyB0byAldTsgYWN0dWFsIHZhbHVlIGlzICVpAFVuYWJsZSB0byBhY2NlcHQgY29ubmVjdGlvbiwgZGlzY29ubmVjdGluZyBjbGllbnQAQWxsIEkvTyBpbnRlcmZhY2VzIGFyZSBkaXNhYmxlZCwgWCBQcm90b2NvbCB3b24ndCBiZSBhY2Nlc3NpYmxlACVzOiBJbnZhbGlkIG1lc3NhZ2UgJWkgcmVjZWl2ZWQgZHVyaW5nIGNsaWVudCBpbml0aWFsaXphdGlvbgAlczogY2xvc2luZyBjbGllbnQgYmVjYXVzZSBvZiBzaHV0ZG93biAoc3RhdGU6ICVpKQAlczogRXJyb3IgcmVhZGluZyBmcm9tIHNvY2tldCAlcyAoJWkpACVzOiBwZWVyIGRpc2Nvbm5lY3RlZCB3aGlsZSByZWFkaW5nIG1lc3NhZ2UgYm9keQBjbGllbnRfaWQ6JXMgLSAlcyB3aGlsZSByZWFkaW5nIGZyb20gc29ja2V0LCBjbG9zaW5nIGNvbm5lY3Rpb24AJXMuJXU6IEludmFsaWQgYXV0aGVudGljYXRpb24gbWV0aG9kICVzACVzOiBVbmV4cGVjdGVkIG1lc3NhZ2Ugb2YgdHlwZSAlaSByZWNlaXZlZCBkdXJpbmcgYXV0aGVudGljYXRpb24ARXJyb3Igd3JpdGluZyB0byBjbGllbnQ6ICVzICglaSkAU2NoZWR1bGVyICIlcyIgc3RhcnRlZC4AU2NoZWR1bGVyICIlcyIgc3RvcHBlZC4AUGxlYXNlIHNlZSB0aGUgTXlTUUwgZG9jdW1lbnRhdGlvbiBmb3IgJyVzJyBzeXN0ZW0gdmFyaWFibGVzIHRvIGZpeCB0aGUgZXJyb3IAWCBQbHVnaW4gcmVhZHkgZm9yIGNvbm5lY3Rpb25zLiAlcwBSZXRyeWluZyBgYmluZCgpYCBvbiBUQ1AvSVAgcG9ydCAlaQBTaHV0ZG93biB0cmlnZ2VyZWQgYnkgbXlzcWxkIGFib3J0IGZsYWcAVXNpbmcgJXMgYWNjb3VudCBmb3IgYXV0aGVudGljYXRpb24gd2hpY2ggaGFzIGFsbCByZXF1aXJlZCBwZXJtaXNzaW9ucwBVc2luZyBleGlzdGluZyAlcyBhY2NvdW50IGZvciBhdXRoZW50aWNhdGlvbi4gSW5jb21wbGV0ZSBncmFudHMgd2lsbCBiZSBmaXhlZABTZXJ2ZXIgc3RhcnRzIGhhbmRsaW5nIGluY29taW5nIGNvbm5lY3Rpb25zAFN0b3BwZWQgaGFuZGxpbmcgaW5jb21pbmcgY29ubmVjdGlvbnMAJXM6IENvdWxkIG5vdCBpbnRlcnJ1cHQgY2xpZW50IHNlc3Npb24AJXM6IHJlbGVhc2UgdHJpZ2dlcmVkIGJ5IHRpbWVvdXQgaW4gc3RhdGU6JWkASVB2NiBpcyBhdmFpbGFibGUAVU5JWCBzb2NrZXQgbm90IGNvbmZpZ3VyZWQAS2lsbCBjbGllbnQ6ICVpICVzAENvdWxkIG5vdCBnZXQgc2VjdXJpdHkgY29udGV4dCBmb3Igc2Vzc2lvbgBVbmFibGUgdG8gc3dpdGNoIHNlY3VyaXR5IGNvbnRleHQgdG8gcm9vdABFcnJvciBjbG9zaW5nIFNRTCBzZXNzaW9uAEVycm9yIGV4ZWN1dGluZyBhZG1pbiBjb21tYW5kICVzOiAlcwBFcnJvciBleGVjdXRpbmcgZW1wdHkgYWRtaW4gY29tbWFuZABVbmFibGUgdG8gcmV0cmlldmUgc3lzdGVtIHZhcmlhYmxlICclcycAVW5hYmxlIHRvIGdldCBjcmVhdGlvbiBzdG10IGZvciBjb2xsZWN0aW9uICclcyc7IHF1ZXJ5IHJlc3VsdCBzaXplOiAlbHUAVW5hYmxlIHRvIGdldCBlbmdpbmUgaW5mbyBmb3IgY29sbGVjdGlvbiAnJXMnOyBjcmVhdGlvbiBzdG10OiAlcwBFcnJvciBnZXR0aW5nIHJlc3VsdCBkYXRhOiAlcwBDYXBhYmlsaXR5IGV4cGlyZWQgcGFzc3dvcmQgZmFpbGVkIHdpdGggZXJyb3I6ICVzAEZhaWxlZCB0byBzZXQgU09fUkVVU0VBRERSIGZsYWcgKGVycm9yOiAlZCkuAENvdWxkIG5vdCBvcGVuIGludGVybmFsIE15U1FMIHNlc3Npb24AVW5hYmxlIHRvIHN3aXRjaCBjb250ZXh0IHRvIHVzZXIgJXMAQ2FuJ3QgdW5yZWdpc3RlciAnJXMnIHVzZXIgZGVmaW5lZCBmdW5jdGlvbgAlczogZ2V0IHBlZXIgYWRkcmVzcyBmYWlsZWQsIGNhbid0IHJlc29sdmUgSVAgdG8gaG9zdG5hbWUAQ2FwYWJpbGl0eSBjbGllbnQgaW50ZXJhY3RpdmUgZmFpbGVkIHdpdGggZXJyb3I6ICVzAEZhaWxlZCB0byByZXNldCBJUFY2X1Y2T05MWSBmbGFnIChlcnJvcjogJWQpLiBUaGUgc2VydmVyIHdpbGwgbGlzdGVuIHRvIElQdjYgYWRkcmVzc2VzIG9ubHkuAEludmFsaWQga2V5IHR5cGUASW52YWxpZCBrZXkgbGVuZ3RoIGZvciBnaXZlbiBibG9jayBjaXBoZXIAQ291bGQgbm90IGNyZWF0ZSBrZXlyaW5nIGRpcmVjdG9yeS4gVGhlIGtleXJpbmdfZmlsZSB3aWxsIHN0YXkgdW51c2FibGUgdW50aWwgY29ycmVjdCBwYXRoIHRvIHRoZSBrZXlyaW5nIGRpcmVjdG9yeSBnZXRzIHByb3ZpZGVkAGtleXJpbmdfZmlsZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLiBQbGVhc2UgY2hlY2sgaWYgdGhlIGtleXJpbmdfZmlsZV9kYXRhIHBvaW50cyB0byByZWFkYWJsZSBrZXlyaW5nIGZpbGUgb3Iga2V5cmluZyBmaWxlIGNhbiBiZSBjcmVhdGVkIGluIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24uIFRoZSBrZXlyaW5nX2ZpbGUgd2lsbCBzdGF5IHVudXNhYmxlIHVudGlsIGNvcnJlY3QgcGF0aCB0byB0aGUga2V5cmluZyBmaWxlIGdldHMgcHJvdmlkZWQAa2V5cmluZ19maWxlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUgdGhlIHBsdWdpbi4ARmFpbGVkIHRvIGdlbmVyYXRlIGEga2V5IGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIGtleXJpbmdfZmlsZSBwbHVnaW4ARXJyb3Igd2hpbGUgJXMga2V5OiBpbnZhbGlkIGtleV90eXBlAEVycm9yIHdoaWxlICVzIGtleToga2V5X2lkIGNhbm5vdCBiZSBlbXB0eQBGYWlsZWQgdG8gJXMgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUgJXMgcGx1Z2luAEluY29ycmVjdCBLZXlyaW5nIGZpbGUARm91bmQgbWFsZm9ybWVkIGtleXJpbmcgYmFja3VwIGZpbGUgLSByZW1vdmluZyBpdABFcnJvciB3aGlsZSByZXN0b3Jpbmcga2V5cmluZyBmcm9tIGJhY2t1cCBmaWxlIGNhbm5vdCBvdmVyd3JpdGUga2V5cmluZyB3aXRoIGJhY2t1cABFcnJvciB3aGlsZSBmbHVzaGluZyBpbi1tZW1vcnkga2V5cmluZyBpbnRvIGtleXJpbmcgZmlsZQBFcnJvciB3aGlsZSByZWFkaW5nIHN0YXQgZm9yICVzLlBsZWFzZSBjaGVjayBpZiBmaWxlICVzIHdhcyBub3QgcmVtb3ZlZC4gT1MgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHJlbW92ZSBmaWxlICVzIE9TIHJldHVuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHRydW5jYXRlIGZpbGUgJXMuIE9TIHJldHVuZWQgdGhpcyBlcnJvcjogJXMAVW5rbm93biBlcnJvciAlZABrZXlyaW5nX2ZpbGVfZGF0YSBjYW5ub3QgYmUgc2V0IHRvIG5ldyB2YWx1ZSBhcyB0aGUga2V5cmluZyBmaWxlIGNhbm5vdCBiZSBjcmVhdGVkL2FjY2Vzc2VkIGluIHRoZSBwcm92aWRlZCBwYXRoACVzAEVycm9yIHdoaWxlIGxvYWRpbmcga2V5cmluZyBjb250ZW50LiBUaGUga2V5cmluZyBtaWdodCBiZSBtYWxmb3JtZWQAQ291bGQgbm90IGZsdXNoIGtleXMgdG8ga2V5cmluZwBDb3VsZCBub3QgZmx1c2gga2V5cyB0byBrZXlyaW5nJ3MgYmFja3VwAEVycm9yIHdoaWxlIGZldGNoaW5nIGtleToga2V5X2lkIGNhbm5vdCBiZSBlbXB0eQBFcnJvciB3aGlsZSByZW1vdmluZyBrZXk6IGtleV9pZCBjYW5ub3QgYmUgZW1wdHkARm9yIGtleXJpbmdfb2t2IHRvIGJlIGluaXRpYWxpemVkLCBwbGVhc2UgcG9pbnQga2V5cmluZ19va3ZfY29uZl9kaXIgdmFyaWFibGUgdG8gYSBkaXJlY3Rvcnkgd2l0aCBPcmFjbGUgS2V5IFZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgc3NsIG1hdGVyaWFscwBrZXlyaW5nX29rdiBpbml0aWFsaXphdGlvbiBmYWlsdXJlLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUga2V5cmluZ19va3ZfY29uZl9kaXIgcG9pbnRzIHRvIGEgcmVhZGFibGUgZGlyZWN0b3J5IGFuZCB0aGF0IHRoZSBkaXJlY3RvcnkgY29udGFpbnMgT3JhY2xlIEtleSBWYXVsdCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHNzbCBtYXRlcmlhbHMuIFBsZWFzZSBhbHNvIGNoZWNrIHRoYXQgT3JhY2xlIEtleSBWYXVsdCBpcyB1cCBhbmQgcnVubmluZy4Aa2V5cmluZ19va3YgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBkdWUgdG8gaW50ZXJuYWwgZXhjZXB0aW9uIGluc2lkZSB0aGUgcGx1Z2luAEludmFsaWQga2V5IHR5cGUASW52YWxpZCBrZXkgbGVuZ3RoIGZvciBnaXZlbiBibG9jayBjaXBoZXIARmFpbGVkIHRvIGdlbmVyYXRlIGEga2V5IGR1ZSB0byBpbnRlcm5hbCBleGNlcHRpb24gaW5zaWRlIGtleXJpbmdfb2t2IHBsdWdpbgBDb3VsZCBub3QgZmluZCBlbnRyeSBmb3Igc2VydmVyIGluIGNvbmZpZ3VyYXRpb24gZmlsZSAlcwBDb3VsZCBub3QgZmluZCBlbnRyeSBmb3Igc3RhbmRieSBzZXJ2ZXIgaW4gY29uZmlndXJhdGlvbiBmaWxlICVzAENvdWxkIG5vdCBwYXJzZSB0aGUgJXMgZmlsZSBwcm92aWRlZABDb3VsZCBub3QgbG9hZCBrZXlzJyB1aWRzIGZyb20gdGhlIE9LViBzZXJ2ZXIAQ291bGQgbm90IGluaXRpYWxpemUgc3NsIGxheWVyAENvdWxkIG5vdCBpbml0aWFsaXplIE9LViBjbGllbnQAQ291bGQgbm90IGNvbm5lY3QgdG8gdGhlIE9LViBzZXJ2ZXIAQ291bGQgbm90IHJlbW92ZSB0aGUga2V5AENvdWxkIG5vdCBhZGQgYXR0cmlidXRlLCBhdHRyaWJ1dGVfbmFtZT0lcyBhdHRyaWJ1dGUgdmFsdWU9JXMAQ291bGQgbm90IGdlbmVyYXRlIHRoZSBrZXkuAENvdWxkIG5vdCBzdG9yZSB0aGUga2V5LgBDb3VsZCBub3QgYWN0aXZhdGUgdGhlIGtleS4AQ291bGQgbm90IGZldGNoIGdlbmVyYXRlZCBrZXkAQ291bGQgbm90IHN0b3JlL2dlbmVyYXRlIHRoZSBrZXkgLSBmYWlsZWQgdG8gc2V0IGtleSBhdHRyaWJ1dGUgeC1rZXktcmVhZHkAQ291bGQgbm90IHJldHJpZXZlIGtleSBzaWduYXR1cmUgZnJvbSBjdXN0b20gYXR0cmlidXRlcwBDb3VsZCBub3QgcmV0cmlldmUga2V5IGZyb20gT0tWAEVycm9yIGxvYWRpbmcgdHJ1c3Qgc3RvcmUARXJyb3Igc2V0dGluZyB0aGUgY2VydGlmaWNhdGUgZmlsZS4ARXJyb3Igc2V0dGluZyB0aGUga2V5IGZpbGUuAFByaXZhdGUga2V5IGRvZXMgbm90IG1hdGNoIHRoZSBjZXJ0aWZpY2F0ZSBwdWJsaWMga2V5AEluY29ycmVjdCBLZXlyaW5nIGZpbGUAS2V5cmluZ19lbmNyeXB0ZWRfZmlsZSBkZWNyeXB0aW9uIGZhaWxlZC4gUGxlYXNlIHZlcmlmeSAtLWtleXJpbmctZW5jcnlwdGVkLWZpbGUtcGFzc3dvcmQgb3B0aW9uIHZhbHVlLgBGb3VuZCBtYWxmb3JtZWQga2V5cmluZyBiYWNrdXAgZmlsZSAtIHJlbW92aW5nIGl0AEVycm9yIHdoaWxlIHJlc3RvcmluZyBrZXlyaW5nIGZyb20gYmFja3VwIGZpbGUgY2Fubm90IG92ZXJ3cml0ZSBrZXlyaW5nIHdpdGggYmFja3VwAEVycm9yIHdoaWxlIGZsdXNoaW5nIGluLW1lbW9yeSBrZXlyaW5nIGludG8ga2V5cmluZyBmaWxlAEtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgZW5jcnlwdGlvbiBmYWlsZWQuIFBsZWFzZSB2ZXJpZnkgLS1rZXlyaW5nLWVuY3J5cHRlZC1maWxlLXBhc3N3b3JkIG9wdGlvbiB2YWx1ZS4Aa2V5cmluZ19lbmNyeXB0ZWRfZmlsZV9kYXRhIGNhbm5vdCBiZSBzZXQgdG8gbmV3IHZhbHVlIGFzIHRoZSBrZXlyaW5nIGZpbGUgY2Fubm90IGJlIGNyZWF0ZWQvYWNjZXNzZWQgaW4gdGhlIHByb3ZpZGVkIHBhdGgAQ291bGQgbm90IGNyZWF0ZSBrZXlyaW5nIGRpcmVjdG9yeSBUaGUga2V5cmluZ19lbmNyeXB0ZWRfZmlsZSB3aWxsIHN0YXkgdW51c2FibGUgdW50aWwgY29ycmVjdCBwYXRoIHRvIHRoZSBrZXlyaW5nIGRpcmVjdG9yeSBnZXRzIHByb3ZpZGVkAFRoZSBrZXlyaW5nX2VuY3J5cHRlZF9maWxlX3Bhc3N3b3JkIG11c3QgYmUgc2V0IHRvIGEgdmFsaWQgdmFsdWUuAFRvbyBsb25nIGtleXJpbmdfZW5jcnlwdGVkX2ZpbGVfcGFzc3dvcmQgdmFsdWUuAGtleXJpbmdfZW5jcnlwdGVkX2ZpbGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4gUGxlYXNlIGNoZWNrIGlmIHRoZSBrZXlyaW5nX2VuY3J5cHRlZF9maWxlX2RhdGEgcG9pbnRzIHRvIHJlYWRhYmxlIGtleXJpbmcgZmlsZSBvciBrZXlyaW5nIGZpbGUgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIHNwZWNpZmllZCBsb2NhdGlvbiBvciBwYXNzd29yZCB0byBkZWNyeXB0IGtleXJpbmcgZmlsZSBpcyBjb3JyZWN0LgBrZXlyaW5nX2VuY3J5cHRlZF9maWxlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUgdGhlIHBsdWdpbgBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBrZXkgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUga2V5cmluZ19lbmNyeXB0ZWRfZmlsZSBwbHVnaW4Aa2V5cmluZ19hd3NfY21rX2lkIGNhbm5vdCBiZSBzZXQgdG8gdGhlIG5ldyB2YWx1ZSBhcyBBV1MgS01TIHNlZW1zIHRvIG5vdCB1bmRlcnN0YW5kIHRoZSBpZCBwcm92aWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgQ01LIGlkIHByb3ZpZGVkIGlzIGNvcnJlY3QuAGtleXJpbmdfYXdzX3JlZ2lvbiBjYW5ub3QgYmUgc2V0IHRvIHRoZSBuZXcgdmFsdWUgYXMgQVdTIEtNUyBzZWVtcyB0byBub3QgdW5kZXJzdGFuZCB0aGUgcmVnaW9uIHByb3ZpZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCByZWdpb24gcHJvdmlkZWQgaXMgY29ycmVjdC4AQ291bGQgbm90IG9wZW4ga2V5cmluZ19hd3MgY29uZmlndXJhdGlvbiBmaWxlOiAlcy4gT1MgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IHJlYWQgQVdTIGFjY2VzcyBrZXkgaWQgZnJvbSBrZXlyaW5nX2F3cyBjb25maWd1cmF0aW9uIGZpbGU6ICVzLiBPUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgcmVhZCBBV1MgYWNjZXNzIGtleSBmcm9tIGtleXJpbmdfYXdzIGNvbmZpZ3VyYXRpb24gZmlsZTogJXMuIE9TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAFBhdGggdG8ga2V5cmluZyBhd3MgY29uZmlndXJhdGlvbiBmaWxlIGNhbm5vdCBiZSBlbXB0eQBQYXRoIHRvIGtleXJpbmdfYXdzIHN0b3JhZ2UgZmlsZSBjYW5ub3QgYmUgZW1wdHkuAFVuYWJsZSB0byBjcmVhdGUvYWNjZXNzIGtleXJpbmcgZGlyZWN0b3J5LgBVbmFibGUgdG8gY3JlYXRlL2FjY2VzcyBrZXlyaW5nX2F3cyBzdG9yYWdlIGZpbGUuIFBsZWFzZSBjaGVjayBpZiBrZXlyaW5nX2F3c19kYXRhX2ZpbGUgcG9pbnRzIHRvIGxvY2F0aW9uIHdoZXJlIGtleXJpbmcgZmlsZSBjYW4gYmUgY3JlYXRlZC9hY2Nlc3NlZC4gUGxlYXNlIGFsc28gbWFrZSBzdXJlIHRoYXQgTXlTUUwgc2VydmVyJ3MgdXNlciBoYXMgaGlnaCBlbm91Z2ggcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBsb2NhdGlvbi4Aa2V5cmluZ19hd3MgaW5pdGlhbGl6YXRpb24gZmFpbGVkIGR1ZSB0byBpbnRlcm5hbCBlcnJvciB3aGVuIGluaXRpYWxpemluZyBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlIC0gJXMuIE9TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzOgBDb3VsZCBub3QgYWNjZXNzIGtleXJpbmdfYXdzIHN0b3JhZ2UgZmlsZSBpbiB0aGUgcGF0aCBwcm92aWRlZC4gUGxlYXNlIGNoZWNrIGlmIHRoZSBrZXlyaW5nX2F3cyBkaXJlY3RvcnkgY2FuIGJlIGFjY2Vzc2VkIGJ5IE15U1FMIFNlcnZlcgBrZXlyaW5nX2F3c19jbWtfaWQgaGFzIHRvIGJlIHNldABDb3VsZCBub3QgZ2V0IEFXUyBLTVMgY3JlZGVudGlhbHMgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBmaWxlAGtleXJpbmdfYXdzIGluaXRpYWxpemF0aW9uIGZhaWx1cmUuAGtleXJpbmdfYXdzIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUgdGhlIHBsdWdpbgBJbnZhbGlkIGtleSBsZW5ndGggZm9yIGdpdmVuIGJsb2NrIGNpcGhlcgBGYWlsZWQgdG8gZ2VuZXJhdGUgYSBrZXkgZHVlIHRvIGludGVybmFsIGV4Y2VwdGlvbiBpbnNpZGUga2V5cmluZ19maWxlIHBsdWdpbgBJbmNvcnJlY3QgS2V5cmluZyBmaWxlAEZvdW5kIG1hbGZvcm1lZCBrZXlyaW5nIGJhY2t1cCBmaWxlIC0gcmVtb3ZpbmcgaXQARXJyb3Igd2hpbGUgcmVzdG9yaW5nIGtleXJpbmcgZnJvbSBiYWNrdXAgZmlsZSBjYW5ub3Qgb3ZlcndyaXRlIGtleXJpbmcgd2l0aCBiYWNrdXAARXJyb3Igd2hpbGUgZmx1c2hpbmcgaW4tbWVtb3J5IGtleXJpbmcgaW50byBrZXlyaW5nIGZpbGUAV3JvbmcgcmVnaW9uAENvdWxkIG5vdCBjb25uZWN0IHRvIEFXUyBLTVMgd2l0aCB0aGUgY3JlZGVudGlhbHMgcHJvdmlkZWQuIFBsZWFzZSBtYWtlIHN1cmUgdGhleSBhcmUgY29ycmVjdC4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgZ2VuZXJhdGUgYSBuZXcga2V5LiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCBlbmNyeXB0IGtleS4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBDb3VsZCBub3QgcmUtZW5jcnlwdCBrZXkuIEFXUyBLTVMgcmV0dXJuZWQgdGhpcyBlcnJvcjogJXMAQ291bGQgbm90IGRlY3J5cHQga2V5LiBBV1MgS01TIHJldHVybmVkIHRoaXMgZXJyb3I6ICVzAENvdWxkIG5vdCByb3RhdGUgdGhlIENNSy4gQVdTIEtNUyByZXR1cm5lZCB0aGlzIGVycm9yOiAlcwBUaGUgcmVxdWVzdGVkIEdUSUQgJyVzOiVsbGQnIHdhcyBhbHJlYWR5IHVzZWQsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrLgBUaGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciB0aHJlYWQgd2FzIGtpbGxlZC4ARXJyb3IgYXQgZXZlbnQgaGFuZGxpbmchIEdvdCBlcnJvcjogJWQuAEVycm9yIHdoZW4gZXh0cmFjdGluZyBncm91cCBHVElEIGV4ZWN1dGlvbiBpbmZvcm1hdGlvbiwgc29tZSByZWNvdmVyeSBvcGVyYXRpb25zIG1heSBmYWNlIGZ1dHVyZSBpc3N1ZXMuAEFuIGVycm9yIG9jY3VycmVkIHdoZW4gdHJ5aW5nIHRvIHJlZHVjZSB0aGUgQ2VydGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBzaXplIGZvciB0cmFuc21pc3Npb24uAEZhaWxlZCB0byBjcmVhdGUgZ3JvdXAgcmVwbGljYXRpb24gcGlwZWxpbmUgYXBwbGllciBjYWNoZSEAVW5ibG9ja2luZyB0aGUgZ3JvdXAgcmVwbGljYXRpb24gdGhyZWFkIHdhaXRpbmcgZm9yIGFwcGxpZXIgdG8gc3RhcnQsIGFzIHRoZSBzdGFydCBncm91cCByZXBsaWNhdGlvbiB3YXMga2lsbGVkLgBUaGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBwaXBlbGluZSB3YXMgbm90IHByb3Blcmx5IGRpc3Bvc2VkLiBDaGVjayB0aGUgZXJyb3IgbG9nIGZvciBmdXJ0aGVyIGluZm8uAFRoZSBhcHBsaWVyIHRocmVhZCBleGVjdXRpb24gd2FzIGFib3J0ZWQuIFVuYWJsZSB0byBwcm9jZXNzIG1vcmUgdHJhbnNhY3Rpb25zLCB0aGlzIG1lbWJlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAuAEZhdGFsIGVycm9yIGR1cmluZyBleGVjdXRpb24gb24gdGhlIEFwcGxpZXIgcHJvY2VzcyBvZiBHcm91cCBSZXBsaWNhdGlvbi4gVGhlIHNlcnZlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAuAEVycm9yIHN0b3BwaW5nIGFsbCByZXBsaWNhdGlvbiBjaGFubmVscyB3aGlsZSBzZXJ2ZXIgd2FzIGxlYXZpbmcgdGhlIGdyb3VwLiAlcwBFcnJvciBzZW5kaW5nIHNpbmdsZSBwcmltYXJ5IG1lc3NhZ2UgaW5mb3JtaW5nIHRoYXQgcHJpbWFyeSBkaWQgYXBwbHkgcmVsYXkgbG9ncy4ARXJyb3IgdXBkYXRpbmcgdHJhbnNhY3Rpb24gc25hcHNob3QgdmVyc2lvbiBhZnRlciB0cmFuc2FjdGlvbiBiZWluZyBwb3NpdGl2ZWx5IGNlcnRpZmllZC4ARXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24gc2lkbm8gYWZ0ZXIgdHJhbnNhY3Rpb24gYmVpbmcgcG9zaXRpdmVseSBjZXJ0aWZpZWQuAEJyb2FkY2FzdCBvZiBjb21taXR0ZWQgdHJhbnNhY3Rpb25zIG1lc3NhZ2UgZmFpbGVkLgBVbmFibGUgdG8gcGFyc2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIGFkZCB0aGUgZ3JvdXBfc2lkIGluIHRoZSBncm91cF9ndGlkX3NpZF9tYXAgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4ARXJyb3IgdXBkYXRpbmcgZ3JvdXBfZ3RpZF9leGVjdXRlZCBHSVREIHNldCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBVbmFibGUgdG8gaGFuZGxlIHRoZSBkb25vcidzIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb25mbGljdCBkZXRlY3Rpb24gY29tcG9uZW50LiBQb3NzaWJsZSBvdXQgb2YgbWVtb3J5IGVycm9yLgBFcnJvciB3aGVuIGVzdGFibGlzaGluZyBhIHNlcnZlciBjb25uZWN0aW9uIGR1cmluZyB0aGUgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAEVycm9yIHdoZW4gZXh0cmFjdGluZyB0aGlzIG1lbWJlciBHVElEIGV4ZWN1dGVkIHNldC4gQ2VydGlmaWNhdGlvbiBtb2R1bGUgY2FuJ3QgYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuAEVycm9yIHdoaWxlIGFkZGluZyB0aGUgc2VydmVyIEdUSUQgRVhFQ1VURUQgc2V0IHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGUgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIHJldHJpZXZlZCBzZXQgZm9yIGl0cyBhcHBsaWVyLiBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBjYW4ndCBiZSBwcm9wZXJseSBpbml0aWFsaXplZC4ARXJyb3Igd2hpbGUgYWRkaW5nIHRoZSBtZW1iZXIgcmV0cmlldmVkIHNldCB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciBkdXJpbmcgQ2VydGlmaWNhdGlvbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24uAFVuYWJsZSB0byB1cGRhdGUgbGFzdCBjb25mbGljdCBmcmVlIHRyYW5zYWN0aW9uLCB0aGlzIHRyYW5zYWN0aW9uIHdpbGwgbm90IGJlIHRyYWNrZWQgb24gcGVyZm9ybWFuY2Vfc2NoZW1hLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9zdGF0cy5sYXN0X2NvbmZsaWN0X2ZyZWVfdHJhbnNhY3Rpb24uAEVycm9yIHVwZGF0aW5nIHRyYW5zYWN0aW9uIHNuYXBzaG90IHZlcnNpb24gcmVmZXJlbmNlIGZvciBpbnRlcm5hbCBzdG9yYWdlLgBFcnJvciBmZXRjaGluZyB0cmFuc2FjdGlvbiBzaWRubyB3aGlsZSBhZGRpbmcgdG8gdGhlIGdyb3VwX2d0aWRfZXhlY3V0ZWQgc2V0LgBFcnJvciB3aGlsZSBlbnN1cmluZyB0aGUgc2lkbm8gYmUgcHJlc2VudCBpbiB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZC4ASW1wb3NzaWJsZSB0byBnZW5lcmF0ZSBHbG9iYWwgVHJhbnNhY3Rpb24gSWRlbnRpZmllcjogdGhlIGludGVnZXIgY29tcG9uZW50IHJlYWNoZWQgdGhlIG1heGltYWwgdmFsdWUuIFJlc3RhcnQgdGhlIGdyb3VwIHdpdGggYSBuZXcgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZS4ASW52YWxpZCBzdGFibGUgdHJhbnNhY3Rpb25zIHNldC4ARXJyb3IgdXBkYXRpbmcgc3RhYmxlIHRyYW5zYWN0aW9ucyBzZXQuAFRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIGZpbGxpbmcgdGhlIG1pc3NpbmcgR1RJRHMgb24gdGhlIGFwcGxpZXIgY2hhbm5lbCByZWNlaXZlZCBzZXQuIERlc3BpdGUgbm90IGNyaXRpY2FsLCBvbiB0aGUgbG9uZyBydW4gdGhpcyBtYXkgY2F1c2UgcGVyZm9ybWFuY2UgaXNzdWVzLgBTa2lwcGluZyB0aGUgY29tcHV0YXRpb24gb2YgdGhlIFRyYW5zYWN0aW9uc19jb21taXR0ZWRfYWxsX21lbWJlcnMgZmllbGQgYXMgYW4gb2xkZXIgaW5zdGFuY2Ugb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBzdGlsbCBvbmdvaW5nLgBOdWxsIHBhY2tldCBvbiBjZXJ0aWZpZXIncyBxdWV1ZS4ARXJyb3IgcmVhZGluZyBHVElEcyBmcm9tIHRoZSBtZXNzYWdlLgBFcnJvciBwcm9jZXNzaW5nIHN0YWJsZSB0cmFuc2FjdGlvbnMgc2V0LgBFcnJvciBwcm9jZXNzaW5nIGludGVyc2VjdGlvbiBvZiBzdGFibGUgdHJhbnNhY3Rpb25zIHNldC4ARXJyb3Igc2V0dGluZyBzdGFibGUgdHJhbnNhY3Rpb25zIHNldC4ARXJyb3IgcmVhZGluZyBncm91cF9ndGlkX2V4dHJhY3RlZCBmcm9tIHRoZSBWaWV3X2NoYW5nZV9sb2dfZXZlbnQuAEVycm9yIHJlYWRpbmcgdGhlIHdyaXRlIHNldCBpdGVtICclcycgZnJvbSB0aGUgVmlld19jaGFuZ2VfbG9nX2V2ZW50LgBFcnJvciBkdXJpbmcgY2VydGlmaWNhdGlvbl9pbmZvIGluaXRpYWxpemF0aW9uLgBQcmltYXJ5IGhhZCBhcHBsaWVkIGFsbCByZWxheSBsb2dzLCBkaXNhYmxlZCBjb25mbGljdCBkZXRlY3Rpb24uAE1lc3NhZ2UgcmVjZWl2ZWQgd2hpbGUgdGhlIHBsdWdpbiBpcyBub3QgcmVhZHksIG1lc3NhZ2UgZGlzY2FyZGVkLgBNZXNzYWdlIHJlY2VpdmVkIHdpdGhvdXQgYSBwcm9wZXIgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllci4ARXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlIGluIENlcnRpZmllci4AVGhpcyBzZXJ2ZXIgd2FzIG5vdCBkZWNsYXJlZCBvbmxpbmUgc2luY2UgaXQgaXMgb24gc3RhdHVzICVzLgBUaGlzIHNlcnZlciB3YXMgZGVjbGFyZWQgb25saW5lIHdpdGhpbiB0aGUgcmVwbGljYXRpb24gZ3JvdXAuAFdoZW4gZGVjbGFyaW5nIHRoZSBwbHVnaW4gb25saW5lIGl0IHdhcyBub3QgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgc2VydmVyIHJlYWQgbW9kZSBzZXR0aW5ncy4gVHJ5IHRvIGRpc2FibGUgaXQgbWFudWFsbHkuAFRoZSBtZW1iZXIgd2l0aCBhZGRyZXNzICVzOiV1IHdhcyBkZWNsYXJlZCBvbmxpbmUgd2l0aGluIHRoZSByZXBsaWNhdGlvbiBncm91cC4ATWVtYmVyIHdpdGggYWRkcmVzcyAlczoldSBoYXMgYmVjb21lIHVucmVhY2hhYmxlLgBNZW1iZXIgd2l0aCBhZGRyZXNzICVzOiV1IGlzIHJlYWNoYWJsZSBhZ2Fpbi4AVGhpcyBzZXJ2ZXIgaXMgbm90IGFibGUgdG8gcmVhY2ggYSBtYWpvcml0eSBvZiBtZW1iZXJzIGluIHRoZSBncm91cC4gVGhpcyBzZXJ2ZXIgd2lsbCBub3cgYmxvY2sgYWxsIHVwZGF0ZXMuIFRoZSBzZXJ2ZXIgd2lsbCByZW1haW4gYmxvY2tlZCB1bnRpbCBjb250YWN0IHdpdGggdGhlIG1ham9yaXR5IGlzIHJlc3RvcmVkLiBJdCBpcyBwb3NzaWJsZSB0byB1c2UgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyB0byBmb3JjZSBhIG5ldyBncm91cCBtZW1iZXJzaGlwLgBUaGlzIHNlcnZlciBpcyBub3QgYWJsZSB0byByZWFjaCBhIG1ham9yaXR5IG9mIG1lbWJlcnMgaW4gdGhlIGdyb3VwLiBUaGlzIHNlcnZlciB3aWxsIG5vdyBibG9jayBhbGwgdXBkYXRlcy4gVGhlIHNlcnZlciB3aWxsIHJlbWFpbiBibG9ja2VkIGZvciB0aGUgbmV4dCAlbHUgc2Vjb25kcy4gVW5sZXNzIGNvbnRhY3Qgd2l0aCB0aGUgbWFqb3JpdHkgaXMgcmVzdG9yZWQsIGFmdGVyIHRoaXMgdGltZSB0aGUgbWVtYmVyIHdpbGwgZXJyb3Igb3V0IGFuZCBsZWF2ZSB0aGUgZ3JvdXAuIEl0IGlzIHBvc3NpYmxlIHRvIHVzZSBncm91cF9yZXBsaWNhdGlvbl9mb3JjZV9tZW1iZXJzIHRvIGZvcmNlIGEgbmV3IGdyb3VwIG1lbWJlcnNoaXAuAEEgZ3JvdXAgbWVtYmVyc2hpcCBjaGFuZ2Ugd2FzIHJlY2VpdmVkIGJ1dCB0aGUgcGx1Z2luIGlzIGFscmVhZHkgbGVhdmluZyBkdWUgdG8gdGhlIGNvbmZpZ3VyZWQgdGltZW91dCBvbiBncm91cF9yZXBsaWNhdGlvbl91bnJlYWNoYWJsZV9tYWpvcml0eV90aW1lb3V0IG9wdGlvbi4AVGhlIG1lbWJlciBoYXMgcmVzdW1lZCBjb250YWN0IHdpdGggYSBtYWpvcml0eSBvZiB0aGUgbWVtYmVycyBpbiB0aGUgZ3JvdXAuIFJlZ3VsYXIgb3BlcmF0aW9uIGlzIHJlc3RvcmVkIGFuZCB0cmFuc2FjdGlvbnMgYXJlIHVuYmxvY2tlZC4ATWVtYmVycyByZW1vdmVkIGZyb20gdGhlIGdyb3VwOiAlcwBQcmltYXJ5IHNlcnZlciB3aXRoIGFkZHJlc3MgJXMgbGVmdCB0aGUgZ3JvdXAuIEVsZWN0aW5nIG5ldyBQcmltYXJ5LgBNZW1iZXJzIGpvaW5lZCB0aGUgZ3JvdXA6ICVzAFRoZXJlIHdhcyBhIHByZXZpb3VzIHBsdWdpbiBlcnJvciB3aGlsZSB0aGUgbWVtYmVyIGpvaW5lZCB0aGUgZ3JvdXAuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAEdyb3VwIG1lbWJlcnNoaXAgY2hhbmdlZCB0byAlcyBvbiB2aWV3ICVzLgBHcm91cCBtZW1iZXJzaGlwIGNoYW5nZWQ6IFRoaXMgbWVtYmVyIGhhcyBsZWZ0IHRoZSBncm91cC4ATWVtYmVyIHdhcyBleHBlbGxlZCBmcm9tIHRoZSBncm91cCBkdWUgdG8gbmV0d29yayBmYWlsdXJlcywgY2hhbmdpbmcgbWVtYmVyIHN0YXR1cyB0byBFUlJPUi4AVW5hYmxlIHRvIG9wZW4gc2Vzc2lvbiB0byAocmUpc2V0IHJlYWQgb25seSBtb2RlLiBTa2lwcGluZy4AQSBuZXcgcHJpbWFyeSB3aXRoIGFkZHJlc3MgJXM6JXUgd2FzIGVsZWN0ZWQuICVzAFVuYWJsZSB0byBkaXNhYmxlIHN1cGVyIHJlYWQgb25seSBmbGFnLiBUcnkgdG8gZGlzYWJsZSBpdCBtYW51YWxseQBVbmFibGUgdG8gc2V0IHN1cGVyIHJlYWQgb25seSBmbGFnLiBUcnkgdG8gc2V0IGl0IG1hbnVhbGx5LgBUaGlzIHNlcnZlciBpcyB3b3JraW5nIGFzIHByaW1hcnkgbWVtYmVyLgBUaGlzIHNlcnZlciBpcyB3b3JraW5nIGFzIHNlY29uZGFyeSBtZW1iZXIgd2l0aCBwcmltYXJ5IG1lbWJlciBhZGRyZXNzICVzOiV1LgBVbmFibGUgdG8gc2V0IGFueSBtZW1iZXIgYXMgcHJpbWFyeS4gTm8gc3VpdGFibGUgY2FuZGlkYXRlLgBFcnJvciB3aGVuIGFjdGl2YXRpbmcgc3VwZXJfcmVhZF9vbmx5IG1vZGUgb24gc3RhcnQuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAEdyb3VwIGNvbnRhaW5zICVsdSBtZW1iZXJzIHdoaWNoIGlzIGdyZWF0ZXIgdGhhbiBncm91cF9yZXBsaWNhdGlvbl9hdXRvX2luY3JlbWVudF9pbmNyZW1lbnQgdmFsdWUgb2YgJWx1LiBUaGlzIGNhbiBsZWFkIHRvIGEgaGlnaGVyIHRyYW5zYWN0aW9uYWwgYWJvcnQgcmF0ZS4ATWVtYmVyIHdpdGggYWRkcmVzcyAnJXM6JXUnIGRpZG4ndCBwcm92aWRlIGFueSBkYXRhIGR1cmluZyB0aGUgbGFzdCBncm91cCBjaGFuZ2UuIEdyb3VwIGluZm9ybWF0aW9uIGNhbiBiZSBvdXRkYXRlZCBhbmQgbGVhZCB0byBlcnJvcnMgb24gcmVjb3ZlcnkuAFRoZXJlIGlzIGFscmVhZHkgYSBtZW1iZXIgd2l0aCBzZXJ2ZXJfdXVpZCAlcy4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIGluZm9ybWF0aW9uIGZvciBncm91cCBjaGFuZ2UuIE9wZXJhdGlvbnMgYW5kIGNoZWNrcyBtYWRlIHRvIGdyb3VwIGpvaW5lcnMgbWF5IGJlIGluY29tcGxldGUuAEVycm9yIHdoZW4gZXh0cmFjdGluZyB0aGlzIG1lbWJlciBHVElEIGV4ZWN1dGVkIHNldC4gT3BlcmF0aW9ucyBhbmQgY2hlY2tzIG1hZGUgdG8gZ3JvdXAgam9pbmVycyBtYXkgYmUgaW5jb21wbGV0ZS4ARXJyb3Igd2hlbiBleHRyYWN0aW5nIHRoaXMgbWVtYmVyIHJldHJpZXZlZCBzZXQgZm9yIGl0cyBhcHBsaWVyLiBPcGVyYXRpb25zIGFuZCBjaGVja3MgbWFkZSB0byBncm91cCBqb2luZXJzIG1heSBiZSBpbmNvbXBsZXRlLgBUaGUgU1RBUlQgR1JPVVBfUkVQTElDQVRJT04gY29tbWFuZCBmYWlsZWQgc2luY2UgdGhlIGdyb3VwIGFscmVhZHkgaGFzIDkgbWVtYmVycy4ATWVtYmVyIHZlcnNpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGdyb3VwLgBUaGUgbWVtYmVyIGNvbnRhaW5zIHRyYW5zYWN0aW9ucyBub3QgcHJlc2VudCBpbiB0aGUgZ3JvdXAuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAEl0IHdhcyBub3QgcG9zc2libGUgdG8gYXNzZXNzIGlmIHRoZSBtZW1iZXIgaGFzIG1vcmUgdHJhbnNhY3Rpb25zIHRoYW4gdGhlIGdyb3VwLiBUaGUgbWVtYmVyIHdpbGwgbm93IGV4aXQgdGhlIGdyb3VwLgBNZW1iZXIgdmVyc2lvbiBpcyBsb3dlciB0aGFuIHNvbWUgZ3JvdXAgbWVtYmVyLCBidXQgc2luY2Ugb3B0aW9uICdncm91cF9yZXBsaWNhdGlvbl9hbGxvd19sb2NhbF9sb3dlcl92ZXJzaW9uX2pvaW4gaXMgZW5hYmxlZCwgbWVtYmVyIHdpbGwgYmUgYWxsb3dlZCB0byBqb2luLgBFcnJvciBwcm9jZXNzaW5nIGxvY2FsIEdUSUQgc2V0cyB3aGVuIGNvbXBhcmluZyB0aGlzIG1lbWJlciB0cmFuc2FjdGlvbnMgYWdhaW5zdCB0aGUgZ3JvdXAuAFRoaXMgbWVtYmVyIGhhcyBtb3JlIGV4ZWN1dGVkIHRyYW5zYWN0aW9ucyB0aGFuIHRob3NlIHByZXNlbnQgaW4gdGhlIGdyb3VwLiBMb2NhbCB0cmFuc2FjdGlvbnM6ICVzID4gR3JvdXAgdHJhbnNhY3Rpb25zOiAlcwBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX2d0aWRfYXNzaWdubWVudF9ibG9ja19zaXplIG9wdGlvbiB2YWx1ZSAnJWxsdScgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICclbGx1Jy4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4AVGhlIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSB0cmFuc2FjdGlvbi13cml0ZS1zZXQtZXh0cmFjdGlvbiBvcHRpb24gdmFsdWUgJyVzJyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAgJyVzJy4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4AVGhlIG1lbWJlciBjb25maWd1cmF0aW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGdyb3VwIGNvbmZpZ3VyYXRpb24uIFZhcmlhYmxlcyBzdWNoIGFzIGdyb3VwX3JlcGxpY2F0aW9uX3NpbmdsZV9wcmltYXJ5X21vZGUgb3IgZ3JvdXBfcmVwbGljYXRpb25fZW5mb3JjZV91cGRhdGVfZXZlcnl3aGVyZV9jaGVja3MgbXVzdCBoYXZlIHRoZSBzYW1lIHZhbHVlIG9uIGV2ZXJ5IHNlcnZlciBpbiB0aGUgZ3JvdXAuIChtZW1iZXIgY29uZmlndXJhdGlvbiBvcHRpb246IFslc10sIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3B0aW9uOiBbJXNdKS4ARXJyb3Igc3RvcHBpbmcgYWxsIHJlcGxpY2F0aW9uIGNoYW5uZWxzIHdoaWxlIHNlcnZlciB3YXMgbGVhdmluZyB0aGUgZ3JvdXAuICVzAERldGVjdGVkIHByZXZpb3VzIFJFU0VUIFNPVVJDRSBpbnZvY2F0aW9uIG9yIGFuIGlzc3VlIGV4aXN0cyBpbiB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciByZWxheSBsb2cuIFB1cmdpbmcgZXhpc3RpbmcgYXBwbGllciBsb2dzLgBVbmtub3duIGVycm9yIG9jY3VycmVkIHdoaWxlIHJlc2V0dGluZyBhcHBsaWVyJ3MgbW9kdWxlIGxvZ3MuAEZhaWxlZCB0byBzZXR1cCB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciB0aHJlYWQuAEVycm9yIHdoaWxlIHN0YXJ0aW5nIHRoZSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIHRocmVhZABGYWlsZWQgdG8gc3RvcCB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciB0aHJlYWQuAEZhaWxlZCB0byBmZXRjaCB0cmFuc2FjdGlvbiBkYXRhIGNvbnRhaW5pbmcgcmVxdWlyZWQgdHJhbnNhY3Rpb24gaW5mbyBmb3IgYXBwbGllcgBDYW4ndCBzdGFydCByZXBsaWNhIElPIFRIUkVBRCBvZiBjaGFubmVsICclcycgd2hlbiBncm91cCByZXBsaWNhdGlvbiBpcyBydW5uaW5nIHdpdGggc2luZ2xlLXByaW1hcnkgbW9kZSBhbmQgdGhlIHByaW1hcnkgbWVtYmVyIGlzIG5vdCBrbm93bi4AQ2FuJ3Qgc3RhcnQgcmVwbGljYSBJTyBUSFJFQUQgb2YgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyB3aXRoIHNpbmdsZS1wcmltYXJ5IG1vZGUgb24gYSBzZWNvbmRhcnkgbWVtYmVyLgBDYW4ndCBzdGFydCByZXBsaWNhIFNRTCBUSFJFQUQgb2YgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyB3aXRoIHNpbmdsZS1wcmltYXJ5IG1vZGUgYW5kIHRoZSBwcmltYXJ5IG1lbWJlciBpcyBub3Qga25vd24uAENhbid0IHN0YXJ0IHJlcGxpY2EgU1FMIFRIUkVBRCBvZiBjaGFubmVsICclcycgd2hlbiBncm91cCByZXBsaWNhdGlvbiBpcyBydW5uaW5nIHdpdGggc2luZ2xlLXByaW1hcnkgbW9kZSBvbiBhIHNlY29uZGFyeSBtZW1iZXIuAFRhYmxlICVzIGRvZXMgbm90IHVzZSB0aGUgSW5ub0RCIHN0b3JhZ2UgZW5naW5lLiBUaGlzIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggR3JvdXAgUmVwbGljYXRpb24uAFRhYmxlICVzIGRvZXMgbm90IGhhdmUgYW55IFBSSU1BUlkgS0VZLiBUaGlzIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggR3JvdXAgUmVwbGljYXRpb24uAFRhYmxlICVzIGhhcyBhIGZvcmVpZ24ga2V5IHdpdGggJ0NBU0NBREUnLCAnU0VUIE5VTEwnIG9yICdTRVQgREVGQVVMVCcgY2xhdXNlLiBUaGlzIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggR3JvdXAgUmVwbGljYXRpb24uAGdyb3VwX3JlcGxpY2F0aW9uX2F1dG9faW5jcmVtZW50X2luY3JlbWVudCBpcyByZXNldCB0byAlbHUAYXV0b19pbmNyZW1lbnRfb2Zmc2V0IGlzIHJlc2V0IHRvICVsdQBncm91cF9yZXBsaWNhdGlvbl9hdXRvX2luY3JlbWVudF9pbmNyZW1lbnQgaXMgc2V0IHRvICVsdQBhdXRvX2luY3JlbWVudF9vZmZzZXQgaXMgc2V0IHRvICVsdQBGYWlsZWQgdG8gZmV0Y2ggdHJhbnNhY3Rpb24gY29udGV4dCBjb250YWluaW5nIHJlcXVpcmVkIHRyYW5zYWN0aW9uIGluZm8gZm9yIGNlcnRpZmljYXRpb24ARmFpbGVkIHRvIGZldGNoIEZvcm1hdF9kZXNjcmlwdGlvbl9sb2dfZXZlbnQgY29udGFpbmluZyByZXF1aXJlZCBzZXJ2ZXIgaW5mbyBmb3IgYXBwbGllcgBGYWlsZWQgdG8gZmV0Y2ggVHJhbnNhY3Rpb25fY29udGV4dF9sb2dfZXZlbnQgY29udGFpbmluZyByZXF1aXJlZCB0cmFuc2FjdGlvbiBpbmZvIGZvciBjZXJ0aWZpY2F0aW9uAEZhaWxlZCB0byByZWFkIHNuYXBzaG90IHZlcnNpb24gZnJvbSB0cmFuc2FjdGlvbiBjb250ZXh0IGV2ZW50IHJlcXVpcmVkIGZvciBjZXJ0aWZpY2F0aW9uAEZhaWxlZCB0byBmZXRjaCBHdGlkX2xvZ19ldmVudCBjb250YWluaW5nIHJlcXVpcmVkIHRyYW5zYWN0aW9uIGluZm8gZm9yIGNlcnRpZmljYXRpb24AVW5hYmxlIHRvIHVwZGF0ZSBjZXJ0aWZpY2F0aW9uIHJlc3VsdCBvbiBzZXJ2ZXIgc2lkZSwgdGhyZWFkX2lkOiAlbHUAVW5hYmxlIHRvIGFkZCBndGlkIGluZm9ybWF0aW9uIHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIHNldCB3aGVuIGd0aWQgd2FzIHByb3ZpZGVkIGZvciBsb2NhbCB0cmFuc2FjdGlvbnMAVW5hYmxlIHRvIGFkZCBndGlkIGluZm9ybWF0aW9uIHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIHNldCB3aGVuIG5vIGd0aWQgd2FzIHByb3ZpZGVkIGZvciBsb2NhbCB0cmFuc2FjdGlvbnMARmFpbGVkIHRvIG5vdGlmeSBjZXJ0aWZpY2F0aW9uIG91dGNvbWUAVW5hYmxlIHRvIGFkZCBndGlkIGluZm9ybWF0aW9uIHRvIHRoZSBncm91cF9ndGlkX2V4ZWN1dGVkIHNldCB3aGVuIGd0aWQgd2FzIHByb3ZpZGVkIGZvciByZW1vdGUgdHJhbnNhY3Rpb25zAFVuYWJsZSB0byBhZGQgZ3RpZCBpbmZvcm1hdGlvbiB0byB0aGUgZ3JvdXBfZ3RpZF9leGVjdXRlZCBzZXQgd2hlbiBndGlkIHdhcyBub3QgcHJvdmlkZWQgZm9yIHJlbW90ZSB0cmFuc2FjdGlvbnMARmFpbGVkIHRvIGZldGNoIFZpZXdfY2hhbmdlX2xvZ19ldmVudCBjb250YWluaW5nIHJlcXVpcmVkIGluZm8gZm9yIGNlcnRpZmljYXRpb24ARXJyb3Igd2hlbiBjb250YWN0aW5nIHRoZSBzZXJ2ZXIgdG8gZW5zdXJlIHRoZSBwcm9wZXIgbG9nZ2luZyBvZiBhIGdyb3VwIGNoYW5nZSBpbiB0aGUgYmlubG9nAFRpbWVvdXQgd2hlbiB3YWl0aW5nIGZvciB0aGUgc2VydmVyIHRvIGV4ZWN1dGUgbG9jYWwgdHJhbnNhY3Rpb25zIGluIG9yZGVyIGFzc3VyZSB0aGUgZ3JvdXAgY2hhbmdlIHByb3BlciBsb2dnaW5nAEZhaWxlZCB0byBmZXRjaCBMb2dfZXZlbnQgY29udGFpbmluZyByZXF1aXJlZCBzZXJ2ZXIgaW5mbyBmb3IgYXBwbGllcgBVbmFibGUgdG8gc3RhcnQgR3JvdXAgUmVwbGljYXRpb24uIFJlcGxpY2F0aW9uIGFwcGxpZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgbm90IGluaXRpYWxpemVkIHNpbmNlIHRoZSBzZXJ2ZXIgd2FzIHN0YXJ0ZWQgd2l0aCAtLWluaXRpYWxpemUsIC0taW5pdGlhbGl6ZS1pbnNlY3VyZSBvciAtLXVwZ3JhZGU9TUlOSU1BTCBvbiBhIHNlcnZlciB1cGdyYWRlLgBGYWlsZWQgdG8gZXN0YWJsaXNoIGFuIGludGVybmFsIHNlcnZlciBjb25uZWN0aW9uIHRvIGV4ZWN1dGUgcGx1Z2luIG9wZXJhdGlvbnMAU2V0dGluZyBzdXBlcl9yZWFkX29ubHk9T04uAFNldHRpbmcgc3VwZXJfcmVhZF9vbmx5PU9GRi4Aa2lsbGVkIHNlc3Npb24gaWQ6ICVkIHN0YXR1czogJWQAa2lsbGVkIGZhaWxlZCBpZDogJWQgZmFpbGVkOiAlZABJbnRlcm5hbCBxdWVyeTogJXMgcmVzdWx0IGluIGVycm9yLiBFcnJvciBudW1iZXI6ICVsZABFcnJvciBjb3B5aW5nIGZyb20gZW1wdHkgc3RyaW5nIABRdWVyeSBleGVjdXRpb24gcmVzdWx0ZWQgaW4gZmFpbHVyZS4gZXJybm86ICVkAFVuYWJsZSB0byBjcmVhdGUgYSBzZXNzaW9uIGZvciBleGVjdXRpbmcgdGhlIHF1ZXJpZXMgb24gdGhlIHNlcnZlcgBUaGUgbWVtYmVyIHdpdGggYWRkcmVzcyAlczoldSBoYXMgdW5leHBlY3RlZGx5IGRpc2FwcGVhcmVkLCBraWxsaW5nIHRoZSBjdXJyZW50IGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IGNvbm5lY3Rpb24ATWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIGEgZG9ub3IgcmVhY2hlZC4gQWJvcnRpbmcgZ3JvdXAgcmVwbGljYXRpb24gaW5jcmVtZW50YWwgcmVjb3ZlcnkuAEFsbCBkb25vcnMgbGVmdC4gQWJvcnRpbmcgZ3JvdXAgcmVwbGljYXRpb24gaW5jcmVtZW50YWwgcmVjb3ZlcnkuAEVzdGFibGlzaGluZyBncm91cCByZWNvdmVyeSBjb25uZWN0aW9uIHdpdGggYSBwb3NzaWJsZSBkb25vci4gQXR0ZW1wdCAlZC8lZABSZXRyeWluZyBncm91cCByZWNvdmVyeSBjb25uZWN0aW9uIHdpdGggYW5vdGhlciBkb25vci4gQXR0ZW1wdCAlZC8lZABObyB2YWxpZCBkb25vcnMgZXhpc3QgaW4gdGhlIGdyb3VwLCByZXRyeWluZwBFcnJvciB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBhc3luY2hyb25vdXMgcmVjb3ZlcnkgY2hhbm5lbCBjb25uZWN0aW9uIHRvIHRoZSBkb25vci4ARXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24gdG8gYSBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBkb25vciAlcyBhdCAlcyBwb3J0OiAlZC4ARXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IGNoYW5uZWwgd2l0aCBkb25vciAlcyBhdCAlcyBwb3J0OiAlZC4AVGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gY29ubmVjdGluZyB0byB0aGUgZG9ub3Igc2VydmVyLiBQbGVhc2UgY2hlY2sgdGhhdCBncm91cF9yZXBsaWNhdGlvbl9yZWNvdmVyeSBjaGFubmVsIGNyZWRlbnRpYWxzIGFuZCBhbGwgTUVNQkVSX0hPU1QgY29sdW1uIHZhbHVlcyBvZiBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVycyB0YWJsZSBhcmUgY29ycmVjdCBhbmQgRE5TIHJlc29sdmFibGUuAEZvciBkZXRhaWxzIHBsZWFzZSBjaGVjayBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fY29ubmVjdGlvbl9zdGF0dXMgdGFibGUgYW5kIGVycm9yIGxvZyBtZXNzYWdlcyBvZiBSZXBsaWNhIEkvTyBmb3IgY2hhbm5lbCBncm91cF9yZXBsaWNhdGlvbl9yZWNvdmVyeS4ARXJyb3Igd2hpbGUgc3RhcnRpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGluY3JlbWVudGFsIHJlY292ZXJ5IHJlY2VpdmVyL2FwcGxpZXIgdGhyZWFkcwBUZXJtaW5hdGluZyBleGlzdGluZyBncm91cCByZXBsaWNhdGlvbiBkb25vciBjb25uZWN0aW9uIGFuZCBwdXJnaW5nIHRoZSBjb3JyZXNwb25kaW5nIGxvZ3MuAEVycm9yIHdoZW4gc3RvcHBpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGluY3JlbWVudGFsIHJlY292ZXJ5J3MgZG9ub3IgY29ubmVjdGlvbgBFcnJvciB3aGVuIHB1cmdpbmcgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5J3MgcmVsYXkgbG9ncwBVbmFibGUgdG8ga2lsbCB0aGUgY3VycmVudCBncm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSBkb25vciBjb25uZWN0aW9uIGFmdGVyIGFuIGFwcGxpZXIgZXJyb3IuIEluY3JlbWVudGFsIHJlY292ZXJ5IHdpbGwgc2h1dGRvd24uAFVuYWJsZSB0byBraWxsIHRoZSBjdXJyZW50IGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IGRvbm9yIGNvbm5lY3Rpb24gZHVyaW5nIGZhaWxvdmVyLiBJbmNyZW1lbnRhbCByZWNvdmVyeSB3aWxsIHNodXRkb3duLgBVbmV4cGVjdGVkIGVycm9yIHdoZW4gbm90aWZ5aW5nIGFuIGludGVybmFsIGNvbXBvbmVudCBuYW1lZCAlcyByZWdhcmRpbmcgYSBncm91cCBtZW1iZXJzaGlwIGV2ZW50LgBBbiB1bmRlZmluZWQgZXJyb3Igd2FzIGZvdW5kIHdoaWxlIGJyb2FkY2FzdGluZyBhbiBpbnRlcm5hbCBncm91cCBtZW1iZXJzaGlwIG5vdGlmaWNhdGlvbiEgVGhpcyBpcyBsaWtlbHkgdG8gaGFwcGVuIGlmIHlvdXIgY29tcG9uZW50cyBvciBwbHVnaW5zIGFyZSBub3QgcHJvcGVybHkgbG9hZGVkIG9yIGFyZSBtYWxmdW5jdGlvbmluZyEAQW4gdW5kZWZpbmVkIGVycm9yIHdhcyBmb3VuZCB3aGlsZSBicm9hZGNhc3RpbmcgYW4gaW50ZXJuYWwgZ3JvdXAgbWVtYmVyIHN0YXR1cyBub3RpZmljYXRpb24hIFRoaXMgaXMgbGlrZWx5IHRvIGhhcHBlbiBpZiB5b3VyIGNvbXBvbmVudHMgb3IgcGx1Z2lucyBhcmUgbm90IHByb3Blcmx5IGxvYWRlZCBvciBhcmUgbWFsZnVuY3Rpb25pbmchAE5vIG1lbW9yeSB0byBnZW5lcmF0ZSB3cml0ZSBpZGVudGlmaWNhdGlvbiBoYXNoAEJhc2UgNjQgZW5jb2Rpbmcgb2YgdGhlIHdyaXRlIGlkZW50aWZpY2F0aW9uIGhhc2ggZmFpbGVkAEJpbmxvZyBmb3JtYXQgc2hvdWxkIGJlIFJPVyBmb3IgR3JvdXAgUmVwbGljYXRpb24AYmlubG9nX2NoZWNrc3VtIHNob3VsZCBiZSBOT05FIGZvciBHcm91cCBSZXBsaWNhdGlvbgBBIHRyYW5zYWN0aW9uX3dyaXRlX3NldF9leHRyYWN0aW9uIGFsZ29yaXRobSBzaG91bGQgYmUgc2VsZWN0ZWQgd2hlbiBydW5uaW5nIEdyb3VwIFJlcGxpY2F0aW9uAFRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbCAodHhfaXNvbGF0aW9uKSBpcyBzZXQgdG8gU0VSSUFMSVpBQkxFLCB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEdyb3VwIFJlcGxpY2F0aW9uAFRyYW5zYWN0aW9uIGNhbm5vdCBiZSBleGVjdXRlZCB3aGlsZSBHcm91cCBSZXBsaWNhdGlvbiBpcyBzdG9wcGluZy4AVHJhbnNhY3Rpb24gY2Fubm90IGJlIGV4ZWN1dGVkIHdoaWxlIEdyb3VwIFJlcGxpY2F0aW9uIGlzIHJlY292ZXJpbmcuIFRyeSBhZ2FpbiB3aGVuIHRoZSBzZXJ2ZXIgaXMgT05MSU5FLgBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hpbGUgR3JvdXAgUmVwbGljYXRpb24gaXMgb24gRVJST1Igc3RhdGUuIENoZWNrIGZvciBlcnJvcnMgYW5kIHJlc3RhcnQgdGhlIHBsdWdpbgBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgZXhlY3V0ZWQgd2hpbGUgR3JvdXAgUmVwbGljYXRpb24gaXMgT0ZGTElORS4gQ2hlY2sgZm9yIGVycm9ycyBhbmQgcmVzdGFydCB0aGUgcGx1Z2luAFdlIGNhbiBvbmx5IHVzZSBvbmUgY2FjaGUgdHlwZSBhdCBhIHRpbWUgb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gcmVpbml0IGJpbmxvZyBjYWNoZSBsb2cgZm9yIHJlYWQgb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIGV4dHJhY3QgdGhlIHNldCBvZiBpdGVtcyB3cml0dGVuIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG9uIHNlc3Npb24gJXUARmFpbGVkIHRvIGdhdGhlciB0aGUgc2V0IG9mIGl0ZW1zIHdyaXR0ZW4gZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gb24gc2Vzc2lvbiAldQBFcnJvciBvbiBzZXNzaW9uICV1LiBUcmFuc2FjdGlvbiBvZiBzaXplICVsbHUgZXhjZWVkcyBzcGVjaWZpZWQgbGltaXQgJWx1LiBUbyBpbmNyZWFzZSB0aGUgbGltaXQgcGxlYXNlIGFkanVzdCBncm91cF9yZXBsaWNhdGlvbl90cmFuc2FjdGlvbl9zaXplX2xpbWl0IG9wdGlvbi4ARXJyb3Igd2hpbGUgcmUtaW5pdGlhbGl6aW5nIGFuIGludGVybmFsIGNhY2hlLCBmb3IgcmVhZCBvcGVyYXRpb25zLCBvbiBzZXNzaW9uICV1AEVycm9yIHdoaWxlIGFwcGVuZGluZyBkYXRhIHRvIGFuIGludGVybmFsIGNhY2hlIG9uIHNlc3Npb24gJXUARXJyb3Igd2hpbGUgd3JpdGluZyB0byB0cmFuc2FjdGlvbiBtZXNzYWdlIG9uIHNlc3Npb24gJXUAVW5hYmxlIHRvIHJlZ2lzdGVyIGZvciBnZXR0aW5nIG5vdGlmaWNhdGlvbnMgcmVnYXJkaW5nIHRoZSBvdXRjb21lIG9mIHRoZSB0cmFuc2FjdGlvbiBvbiBzZXNzaW9uICV1AEVycm9yIGJyb2FkY2FzdGluZyB0cmFuc2FjdGlvbiB0byB0aGUgZ3JvdXAgb24gc2Vzc2lvbiAldS4gTWVzc2FnZSBpcyB0b28gYmlnLgBFcnJvciB3aGlsZSBicm9hZGNhc3RpbmcgdGhlIHRyYW5zYWN0aW9uIHRvIHRoZSBncm91cCBvbiBzZXNzaW9uICV1AEVycm9yIHdoaWxlIHdhaXRpbmcgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiBwcm9jZWR1cmUgdG8gZmluaXNoIG9uIHNlc3Npb24gJXUARXJyb3Igd2hpbGUgcmUtaW5pdGlhbGl6aW5nIGFuIGludGVybmFsIGNhY2hlLCBmb3Igd3JpdGUgb3BlcmF0aW9ucywgb24gc2Vzc2lvbiAldQBGYWlsZWQgdG8gY3JlYXRlIGdyb3VwIHJlcGxpY2F0aW9uIGNvbW1pdCBjYWNoZSBvbiBzZXNzaW9uICV1AEZhaWxlZCB0byByZWluaXQgZ3JvdXAgcmVwbGljYXRpb24gY29tbWl0IGNhY2hlIGZvciB3cml0ZSBvbiBzZXNzaW9uICV1AEEgcHJldmlvdXMgcmVjb3Zlcnkgc2Vzc2lvbiBpcyBzdGlsbCBydW5uaW5nLiBQbGVhc2Ugc3RvcCB0aGUgZ3JvdXAgcmVwbGljYXRpb24gcGx1Z2luIGFuZCB3YWl0IGZvciBpdCB0byBzdG9wAEZhdGFsIGVycm9yIGR1cmluZyB0aGUgaW5jcmVtZW50YWwgcmVjb3ZlcnkgcHJvY2VzcyBvZiBHcm91cCBSZXBsaWNhdGlvbi4gVGhlIHNlcnZlciB3aWxsIGxlYXZlIHRoZSBncm91cC4ARXJyb3Igc3RvcHBpbmcgYWxsIHJlcGxpY2F0aW9uIGNoYW5uZWxzIHdoaWxlIHNlcnZlciB3YXMgbGVhdmluZyB0aGUgZ3JvdXAuICVzAFVuYWJsZSB0byBldmFsdWF0ZSB0aGUgZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBleGVjdXRpb24gc3RhdHVzLiBHcm91cCByZXBsaWNhdGlvbiByZWNvdmVyeSB3aWxsIHNodXRkb3duIHRvIGF2b2lkIGRhdGEgY29ycnVwdGlvbi4AT25seSBvbmUgc2VydmVyIGFsaXZlLiBEZWNsYXJpbmcgdGhpcyBzZXJ2ZXIgYXMgb25saW5lIHdpdGhpbiB0aGUgcmVwbGljYXRpb24gZ3JvdXAARXJyb3Igd2hlbiBwcm9jZXNzaW5nIGNlcnRpZmljYXRpb24gaW5mb3JtYXRpb24gaW4gdGhlIGluY3JlbWVudGFsIHJlY292ZXJ5IHByb2Nlc3MAVW5hYmxlIHRvIGVuc3VyZSB0aGUgZXhlY3V0aW9uIG9mIGdyb3VwIHRyYW5zYWN0aW9ucyByZWNlaXZlZCBkdXJpbmcgcmVjb3ZlcnkuAEVycm9yIHdoaWxlIHNlbmRpbmcgbWVzc2FnZSBpbiB0aGUgZ3JvdXAgcmVwbGljYXRpb24gaW5jcmVtZW50YWwgcmVjb3ZlcnkgcHJvY2Vzcy4AVW5hYmxlIHRvIHJlYWQgdGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhlIHN1cGVyX3JlYWRfb25seSB2YXJpYWJsZS4AVW5hYmxlIHRvIHJlYWQgdGhlIHNlcnZlciB2YWx1ZXMgZm9yIHRoZSByZWFkX29ubHkgYW5kIHN1cGVyX3JlYWRfb25seSB2YXJpYWJsZXMuAFVuYWJsZSB0byByZXNldCB0aGUgc2VydmVyIHJlYWQgbW9kZSBzZXR0aW5ncy4gVHJ5IHRvIHJlc2V0IHRoZW0gbWFudWFsbHkuAER1ZSB0byBhIHBsdWdpbiBlcnJvciwgc29tZSB0cmFuc2FjdGlvbnMgd2VyZSB1bmFibGUgdG8gYmUgY2VydGlmaWVkIGFuZCB3aWxsIG5vdyByb2xsYmFjay4ARXJyb3Igd2hlbiB0cnlpbmcgdG8gdW5ibG9jayBub24gY2VydGlmaWVkIG9yIGNvbnNpc3RlbnQgdHJhbnNhY3Rpb25zLiBDaGVjayBmb3IgY29uc2lzdGVuY3kgZXJyb3JzIHdoZW4gcmVzdGFydGluZyB0aGUgc2VydmljZQBUaGlzIHNlcnZlciBpcyB3b3JraW5nIGFzIHNlY29uZGFyeSBtZW1iZXIgd2l0aCBwcmltYXJ5IG1lbWJlciBhZGRyZXNzICVzOiV1LgBVbmFibGUgdG8gc3RhcnQgR3JvdXAgUmVwbGljYXRpb24uIFJlcGxpY2F0aW9uIGFwcGxpZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgbm90IGluaXRpYWxpemVkIHNpbmNlIHRoZSBzZXJ2ZXIgd2FzIHN0YXJ0ZWQgd2l0aCBzZXJ2ZXJfaWQ9MC4gUGxlYXNlLCByZXN0YXJ0IHRoZSBzZXJ2ZXIgd2l0aCBzZXJ2ZXJfaWQgbGFyZ2VyIHRoYW4gMC4AZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyBtdXN0IGJlIGVtcHR5IG9uIGdyb3VwIHN0YXJ0LiBDdXJyZW50IHZhbHVlOiAnJXMnAEl0IHdhcyBub3QgcG9zc2libGUgdG8gZ3VhcmFudGVlIHRoZSBpbml0aWFsaXphdGlvbiBvZiBwbHVnaW4gc3RydWN0dXJlcyBvbiBzZXJ2ZXIgc3RhcnQAQ291bGQgbm90IGVuYWJsZSB0aGUgc2VydmVyIHJlYWQgb25seSBtb2RlIGFuZCBndWFyYW50ZWUgYSBzYWZlIHJlY292ZXJ5IGV4ZWN1dGlvbgBFcnJvciBvbiBncm91cCBjb21tdW5pY2F0aW9uIGVuZ2luZSBpbml0aWFsaXphdGlvbgBDYW4ndCBzdGFydCBncm91cCByZXBsaWNhdGlvbiBvbiBzZWNvbmRhcnkgbWVtYmVyIHdpdGggc2luZ2xlLXByaW1hcnkgbW9kZSB3aGlsZSBhc3luY2hyb25vdXMgcmVwbGljYXRpb24gY2hhbm5lbHMgYXJlIHJ1bm5pbmcuAEVycm9yIG9uIGdyb3VwIGNvbW11bmljYXRpb24gZW5naW5lIHN0YXJ0AFRpbWVvdXQgb24gd2FpdCBmb3IgdmlldyBhZnRlciBqb2luaW5nIGdyb3VwAEVycm9yIGNhbGxpbmcgZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzAE1lbWJlciBzZXJ2ZXJfdXVpZCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZ3JvdXAuIFNlcnZlcl91dWlkICVzIG1hdGNoZXMgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAlcy4ATWVtYmVyIGNvbmZpZ3VyYXRpb246IG1lbWJlcl9pZDogJWx1OyBtZW1iZXJfdXVpZDogIiVzIjsgc2luZ2xlLXByaW1hcnkgbW9kZTogIiVzIjsgZ3JvdXBfcmVwbGljYXRpb25fYXV0b19pbmNyZW1lbnRfaW5jcmVtZW50OiAlbHU7IGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQ6ICIlcyI7AFVuYWJsZSB0byBjb25maXJtIHdoZXRoZXIgdGhlIHNlcnZlciBoYXMgbGVmdCB0aGUgZ3JvdXAgb3Igbm90LiBDaGVjayBwZXJmb3JtYW5jZV9zY2hlbWEucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVycyB0byBjaGVjayBncm91cCBtZW1iZXJzaGlwIGluZm9ybWF0aW9uLgBTa2lwcGluZyBsZWF2ZSBvcGVyYXRpb246IGNvbmN1cnJlbnQgYXR0ZW1wdCB0byBsZWF2ZSB0aGUgZ3JvdXAgaXMgb24tZ29pbmcuAFNraXBwaW5nIGxlYXZlIG9wZXJhdGlvbjogbWVtYmVyIGFscmVhZHkgbGVmdCB0aGUgZ3JvdXAuAEdvaW5nIHRvIHdhaXQgZm9yIHZpZXcgbW9kaWZpY2F0aW9uAFdoaWxlIGxlYXZpbmcgdGhlIGdyb3VwIGR1ZSB0byBhIHN0b3AsIHNodXRkb3duIG9yIGZhaWx1cmUgdGhlcmUgd2FzIGEgdGltZW91dCByZWNlaXZpbmcgYSB2aWV3IGNoYW5nZS4gVGhpcyBjYW4gbGVhZCB0byBhIHBvc3NpYmxlIGluY29uc2lzdGVudCBzdGF0ZS4gQ2hlY2sgdGhlIGxvZyBmb3IgbW9yZSBkZXRhaWxzAFJlcXVlc3RpbmcgdG8gbGVhdmUgdGhlIGdyb3VwIGRlc3BpdGUgb2Ygbm90IGJlaW5nIGEgbWVtYmVyAFBsdWdpbiAnZ3JvdXBfcmVwbGljYXRpb24nIGlzIHN0b3BwaW5nLgBQbHVnaW4gJ2dyb3VwX3JlcGxpY2F0aW9uJyBoYXMgYmVlbiBzdG9wcGVkLgBPbiBwbHVnaW4gc2h1dGRvd24gaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBlbmFibGUgdGhlIHNlcnZlciByZWFkIG9ubHkgbW9kZS4gTG9jYWwgdHJhbnNhY3Rpb25zIHdpbGwgYmUgYWNjZXB0ZWQgYW5kIGNvbW1pdHRlZC4AT24gc2h1dGRvd24gdGhlcmUgd2FzIGEgdGltZW91dCBvbiB0aGUgR3JvdXAgUmVwbGljYXRpb24gcmVjb3ZlcnkgbW9kdWxlIHRlcm1pbmF0aW9uLiBDaGVjayB0aGUgbG9nIGZvciBtb3JlIGRldGFpbHMAT24gc2h1dGRvd24gdGhlcmUgd2FzIGEgdGltZW91dCBvbiB0aGUgR3JvdXAgUmVwbGljYXRpb24gYXBwbGllciB0ZXJtaW5hdGlvbi4AVW5leHBlY3RlZCBmYWlsdXJlIHdoaWxlIHNodXR0aW5nIGRvd24gcmVnaXN0cnkgbW9kdWxlIQBGYWlsdXJlIGR1cmluZyBHcm91cCBSZXBsaWNhdGlvbiBoYW5kbGVyIGluaXRpYWxpemF0aW9uAEZhaWx1cmUgd2hlbiByZWdpc3RlcmluZyB0aGUgc2VydmVyIHN0YXRlIG9ic2VydmVycwBGYWlsdXJlIHdoZW4gcmVnaXN0ZXJpbmcgdGhlIHRyYW5zYWN0aW9ucyBzdGF0ZSBvYnNlcnZlcnMARmFpbHVyZSB3aGVuIHJlZ2lzdGVyaW5nIHRoZSBiaW5sb2cgc3RhdGUgb2JzZXJ2ZXJzAFVuYWJsZSB0byBzdGFydCBHcm91cCBSZXBsaWNhdGlvbiBvbiBib290AEZhaWx1cmUgd2hlbiBzdG9wcGluZyBHcm91cCBSZXBsaWNhdGlvbiBvbiBwbHVnaW4gdW5pbnN0YWxsAEZhaWx1cmUgd2hlbiB1bnJlZ2lzdGVyaW5nIHRoZSBzZXJ2ZXIgc3RhdGUgb2JzZXJ2ZXJzAEZhaWx1cmUgd2hlbiB1bnJlZ2lzdGVyaW5nIHRoZSB0cmFuc2FjdGlvbnMgc3RhdGUgb2JzZXJ2ZXJzAEZhaWx1cmUgd2hlbiB1bnJlZ2lzdGVyaW5nIHRoZSBiaW5sb2cgc3RhdGUgb2JzZXJ2ZXJzAEFsbCBHcm91cCBSZXBsaWNhdGlvbiBzZXJ2ZXIgb2JzZXJ2ZXJzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZS4AVW5hYmxlIHRvIHBhcnNlIHRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lLgBDYW5ub3Qgc3RhcnQgdGhlIEdyb3VwIFJlcGxpY2F0aW9uIGFwcGxpZXIgYXMgYSBwcmV2aW91cyBzaHV0ZG93biBpcyBzdGlsbCBydW5uaW5nOiBUaGUgdGhyZWFkIHdpbGwgc3RvcCBvbmNlIGl0cyB0YXNrIGlzIGNvbXBsZXRlLgBVbmFibGUgdG8gaW5pdGlhbGl6ZSB0aGUgR3JvdXAgUmVwbGljYXRpb24gYXBwbGllciBtb2R1bGUuAEdyb3VwIFJlcGxpY2F0aW9uIGFwcGxpZXIgbW9kdWxlIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCEAR3JvdXAgY29tbXVuaWNhdGlvbiBTU0wgY29uZmlndXJhdGlvbjogZ3JvdXBfcmVwbGljYXRpb25fc3NsX21vZGU6ICIlcyI7IHNlcnZlcl9rZXlfZmlsZTogIiVzIjsgc2VydmVyX2NlcnRfZmlsZTogIiVzIjsgY2xpZW50X2tleV9maWxlOiAiJXMiOyBjbGllbnRfY2VydF9maWxlOiAiJXMiOyBjYV9maWxlOiAiJXMiOyBjYV9wYXRoOiAiJXMiOyBjaXBoZXI6ICIlcyI7IHRsc192ZXJzaW9uOiAiJXMiOyB0bHNfY2lwaGVyc3VpdGVzOiAiJXMiOyBjcmxfZmlsZTogIiVzIjsgY3JsX3BhdGg6ICIlcyI7IHNzbF9maXBzX21vZGU6ICIlcyIATXlTUUwgc2VydmVyIGRvZXMgbm90IGhhdmUgU1NMIHN1cHBvcnQgYW5kIGdyb3VwX3JlcGxpY2F0aW9uX3NzbF9tb2RlIGlzICIlcyIsIFNUQVJUIEdST1VQX1JFUExJQ0FUSU9OIHdpbGwgYWJvcnQAR3JvdXAgY29tbXVuaWNhdGlvbiBTU0wgY29uZmlndXJhdGlvbjogZ3JvdXBfcmVwbGljYXRpb25fc3NsX21vZGU6ICIlcyIAVW5hYmxlIHRvIGluaXRpYWxpemUgdGhlIGdyb3VwIGNvbW11bmljYXRpb24gZW5naW5lAEJpbmxvZyBtdXN0IGJlIGVuYWJsZWQgZm9yIEdyb3VwIFJlcGxpY2F0aW9uAEd0aWQgbW9kZSBzaG91bGQgYmUgT04gZm9yIEdyb3VwIFJlcGxpY2F0aW9uAExPR19SRVBMSUNBX1VQREFURVMgc2hvdWxkIGJlIE9OIGZvciBHcm91cCBSZXBsaWNhdGlvbgBFeHRyYWN0aW9uIG9mIHRyYW5zYWN0aW9uIHdyaXRlIHNldHMgcmVxdWlyZXMgYW4gaGFzaCBhbGdvcml0aG0gY29uZmlndXJhdGlvbi4gUGxlYXNlLCBkb3VibGUgY2hlY2sgdGhhdCB0aGUgcGFyYW1ldGVyIHRyYW5zYWN0aW9uLXdyaXRlLXNldC1leHRyYWN0aW9uIGlzIHNldCB0byBhIHZhbGlkIGFsZ29yaXRobS4AQXBwbGllciBtZXRhZGF0YSByZXBvc2l0b3J5IG11c3QgYmUgc2V0IHRvIFRBQkxFAENvbm5lY3Rpb24gbWV0YWRhdGEgcmVwb3NpdG9yeSBtdXN0IGJlIHNldCB0byBUQUJMRS4ASW4gb3JkZXIgdG8gdXNlIHBhcmFsbGVsIGFwcGxpZXIgb24gR3JvdXAgUmVwbGljYXRpb24sIHBhcmFtZXRlciByZXBsaWNhLXBhcmFsbGVsLXR5cGUgbXVzdCBiZSBzZXQgdG8gJ0xPR0lDQUxfQ0xPQ0snLgBHcm91cCBSZXBsaWNhdGlvbiByZXF1aXJlcyByZXBsaWNhLXByZXNlcnZlLWNvbW1pdC1vcmRlciB0byBiZSBzZXQgdG8gT04gd2hlbiB1c2luZyBtb3JlIHRoYW4gMSBhcHBsaWVyIHRocmVhZHMuAEl0IGlzIG5vdCBhbGxvd2VkIHRvIHJ1biBzaW5nbGUgcHJpbWFyeSBtb2RlIHdpdGggJ2dyb3VwX3JlcGxpY2F0aW9uX2VuZm9yY2VfdXBkYXRlX2V2ZXJ5d2hlcmVfY2hlY2tzJyBlbmFibGVkLgBlcnJvcl9tZXNzYWdlOiAlcwBUaGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSBvcHRpb24gaXMgbWFuZGF0b3J5AFRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lICclcycgaXMgbm90IGEgdmFsaWQgVVVJRCwgaXRzIGxlbmd0aCBpcyB0b28gYmlnAFRoZSBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lICclcycgaXMgbm90IGEgdmFsaWQgVVVJRABncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWluX3F1b3RhIGNhbm5vdCBiZSBsYXJnZXIgdGhhbiBncm91cF9yZXBsaWNhdGlvbl9mbG93X2NvbnRyb2xfbWF4X3F1b3RhAGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9taW5fcmVjb3ZlcnlfcXVvdGEgY2Fubm90IGJlIGxhcmdlciB0aGFuIGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9tYXhfcXVvdGEAZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21heF9xdW90YSBjYW5ub3QgYmUgc21hbGxlciB0aGFuIGdyb3VwX3JlcGxpY2F0aW9uX2Zsb3dfY29udHJvbF9taW5fcXVvdGEgb3IgZ3JvdXBfcmVwbGljYXRpb25fZmxvd19jb250cm9sX21pbl9yZWNvdmVyeV9xdW90YQBUaGUgZ2l2ZW4gdmFsdWUgZm9yIHJlY292ZXJ5IHNzbCBvcHRpb24gJ2dyb3VwX3JlcGxpY2F0aW9uXyVzJyBpcyBpbnZhbGlkIGFzIGl0cyBsZW5ndGggaXMgYmV5b25kIHRoZSBsaW1pdABUaGVyZSBpcyBvbmUgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyBvcGVyYXRpb24gYWxyZWFkeSBvbmdvaW5nAGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgY2FuIG9ubHkgYmUgdXBkYXRlZCB3aGVuIEdyb3VwIFJlcGxpY2F0aW9uIGlzIHJ1bm5pbmcgYW5kIGEgbWFqb3JpdHkgb2YgdGhlIG1lbWJlcnMgYXJlIHVucmVhY2hhYmxlAEluaXRpYWxpemVkIGdyb3VwIGNvbW11bmljYXRpb24gd2l0aCBjb25maWd1cmF0aW9uOiBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lOiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9sb2NhbF9hZGRyZXNzOiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9zZWVkczogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fYm9vdHN0cmFwX2dyb3VwOiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9wb2xsX3NwaW5fbG9vcHM6ICVsdTsgZ3JvdXBfcmVwbGljYXRpb25fY29tcHJlc3Npb25fdGhyZXNob2xkOiAlbHU7IGdyb3VwX3JlcGxpY2F0aW9uX2lwX2FsbG93bGlzdDogJyVzJzsgZ3JvdXBfcmVwbGljYXRpb25fY29tbXVuaWNhdGlvbl9kZWJ1Z19vcHRpb25zOiAnJXMnOyBncm91cF9yZXBsaWNhdGlvbl9tZW1iZXJfZXhwZWxfdGltZW91dDogJyVsdSc7IGdyb3VwX3JlcGxpY2F0aW9uX2NvbW11bmljYXRpb25fbWF4X21lc3NhZ2Vfc2l6ZTogJWx1OyBncm91cF9yZXBsaWNhdGlvbl9tZXNzYWdlX2NhY2hlX3NpemU6ICclbHV1OyBncm91cF9yZXBsaWNhdGlvbl9jb21tdW5pY2F0aW9uX3N0YWNrOiAnJWx1JwBVbmtub3duIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgcGlwZWxpbmUgcmVxdWVzdGVkAFVuYWJsZSB0byBib290c3RyYXAgZ3JvdXAgcmVwbGljYXRpb24gZXZlbnQgaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUuIFVua25vd24gaGFuZGxlciB0eXBlOiAlZABPbmUgb2YgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgaGFuZGxlcnMgaXMgbnVsbCBkdWUgdG8gYW4gaW5pdGlhbGl6YXRpb24gZXJyb3IAQSBncm91cCByZXBsaWNhdGlvbiBhcHBsaWVyIGhhbmRsZXIsIG1hcmtlZCBhcyB1bmlxdWUsIGlzIGFscmVhZHkgaW4gdXNlLgBBIGdyb3VwIHJlcGxpY2F0aW9uIGFwcGxpZXIgaGFuZGxlciByb2xlLCB0aGF0IHdhcyBtYXJrZWQgYXMgdW5pcXVlLCBpcyBhbHJlYWR5IGluIHVzZS4ARXJyb3Igb24gZ3JvdXAgcmVwbGljYXRpb24gYXBwbGllciBoYW5kbGVyIGluaXRpYWxpemF0aW9uAEVycm9yIHdoZW4gaW5pdGlhbGl6aW5nIGEgc2Vzc2lvbiB0aHJlYWQgZm9yIGludGVybmFsIHNlcnZlciBjb25uZWN0aW9uLgBFcnJvciBydW5uaW5nIGludGVybmFsIFNRTCBxdWVyeTogJXMuIFRoZSBpbnRlcm5hbCBzZXJ2ZXIgY29tbXVuaWNhdGlvbiBzZXNzaW9uIGlzIG5vdCBpbml0aWFsaXplZABFcnJvciBydW5uaW5nIGludGVybmFsIFNRTCBxdWVyeTogJXMuIFRoZSBpbnRlcm5hbCBzZXJ2ZXIgc2Vzc2lvbiB3YXMga2lsbGVkIG9yIHNlcnZlciBpcyBzaHV0dGluZyBkb3duLgBFcnJvciBydW5uaW5nIGludGVybmFsIFNRTCBxdWVyeTogJXMuIEdvdCBpbnRlcm5hbCBTUUwgZXJyb3I6ICVzKCVkKQBFcnJvciBydW5uaW5nIGludGVybmFsIFNRTCBxdWVyeTogJXMuIEludGVybmFsIGZhaWx1cmUuAEVycm9yLCBtYXhpbXVtIG51bWJlciBvZiByZXRyaWVzIGV4Y2VlZGVkIHdoZW4gd2FpdGluZyBmb3IgdGhlIGludGVybmFsIHNlcnZlciBzZXNzaW9uIHN0YXRlIHRvIGJlIG9wZXJhdGluZwBFcnJvciB3aGVuIHRyeWluZyB0byBmZXRjaCBzZWN1cml0eSBjb250ZXh0IHdoZW4gY29udGFjdGluZyB0aGUgc2VydmVyIGZvciBpbnRlcm5hbCBwbHVnaW4gcmVxdWVzdHMuAFRoZXJlIHdhcyBhbiBlcnJvciB3aGVuIHRyeWluZyB0byBhY2Nlc3MgdGhlIHNlcnZlciB3aXRoIHVzZXI6ICVzLiBNYWtlIHN1cmUgdGhlIHVzZXIgaXMgcHJlc2VudCBpbiB0aGUgc2VydmVyIGFuZCB0aGF0IHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZSB3YXMgcnVuIGNvcnJlY3RseS4ARmFpbGVkIHRvIGVzdGFibGlzaCBhbiBpbnRlcm5hbCBzZXJ2ZXIgY29ubmVjdGlvbiB0byBleGVjdXRlIHBsdWdpbiBvcGVyYXRpb25zIHNpbmNlIHRoZSBzZXJ2ZXIgZG9lcyBub3QgaGF2ZSBhdmFpbGFibGUgY29ubmVjdGlvbnMsIHBsZWFzZSBpbmNyZWFzZSBAQEdMT0JBTC5NQVhfQ09OTkVDVElPTlMuIFNlcnZlciBlcnJvcjogJWkuAEZhaWxlZCB0byBlc3RhYmxpc2ggYW4gaW50ZXJuYWwgc2VydmVyIGNvbm5lY3Rpb24gdG8gZXhlY3V0ZSBwbHVnaW4gb3BlcmF0aW9ucy4gU2VydmVyIGVycm9yOiAlaS4gU2VydmVyIGVycm9yIG1lc3NhZ2U6ICVzAFRoaXMgbWVtYmVyIGNvdWxkIG5vdCByZWFjaCBhIG1ham9yaXR5IG9mIHRoZSBtZW1iZXJzIGZvciBtb3JlIHRoYW4gJWxkIHNlY29uZHMuIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwIGFzIGluc3RydWN0ZWQgYnkgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3VucmVhY2hhYmxlX21ham9yaXR5X3RpbWVvdXQgb3B0aW9uLgBUaGUgc2VydmVyIHdhcyBhdXRvbWF0aWNhbGx5IHNldCBpbnRvIHJlYWQgb25seSBtb2RlIGFmdGVyIGFuIGVycm9yIHdhcyBkZXRlY3RlZC4AVW5hYmxlIHRvIGxvZyBub3RpZmljYXRpb24gdG8gdGFibGUgKGVycm5vOiAlbHUpIChyZXM6ICVkKSEgTWVzc2FnZTogJXMARmFpbHVyZSBpbiBncm91cCBjb21tdW5pY2F0aW9uIGVuZ2luZSAnJXMnIGluaXRpYWxpemF0aW9uAFVuYWJsZSB0byBzZXQgdGhlIGdyb3VwIGNvbW11bmljYXRpb24gZW5naW5lIGxvZ2dlcgBDdXJyZW50IGRlYnVnIG9wdGlvbnMgYXJlOiAnJXMnLgBTb21lIGRlYnVnIG9wdGlvbnMgaW4gJyVzJyBhcmUgbm90IHZhbGlkLgBFcnJvciBjYWxsaW5nIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcyB3aGlsZSB0cnlpbmcgdG8gbGVhdmUgdGhlIGdyb3VwAE1lbWJlciBpcyBub3QgT05MSU5FLCBpdCBpcyBub3QgcG9zc2libGUgdG8gZm9yY2UgYSBuZXcgZ3JvdXAgbWVtYmVyc2hpcABFcnJvciBjYWxsaW5nIGdyb3VwIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcwBFcnJvciBzZXR0aW5nIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgdmFsdWUgJyVzJyBvbiBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMAVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2ZvcmNlX21lbWJlcnMgdmFsdWUgJyVzJyB3YXMgc2V0IGluIHRoZSBncm91cCBjb21tdW5pY2F0aW9uIGludGVyZmFjZXMAVGltZW91dCBvbiB3YWl0IGZvciB2aWV3IGFmdGVyIHNldHRpbmcgZ3JvdXBfcmVwbGljYXRpb25fZm9yY2VfbWVtYmVycyB2YWx1ZSAnJXMnIGludG8gZ3JvdXAgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzAEJyb2FkY2FzdCBvZiBjb21taXR0ZWQgdHJhbnNhY3Rpb25zIG1lc3NhZ2UgZmFpbGVkLiBNZXNzYWdlIGlzIHRvbyBiaWcuAEVycm9yIHdoaWxlIHNlbmRpbmcgc3RhdHMgbWVzc2FnZQBGbG93IGNvbnRyb2wgLSB1cGRhdGUgbWVtYmVyIHN0YXRzOiAlcyBzdGF0cyBjZXJ0aWZpZXJfcXVldWUgJWQsIGFwcGxpZXJfcXVldWUgJWQgY2VydGlmaWVkICVsZCAoJWxkKSwgYXBwbGllZCAlbGQgKCVsZCksIGxvY2FsICVsZCAoJWxkKSwgcXVvdGEgJWxkICglbGQpIG1vZGU9JWQARmxvdyBjb250cm9sOiB0aHJvdHRsaW5nIHRvICVsZCBjb21taXRzIHBlciAlbGQgc2VjLCB3aXRoICVkIHdyaXRpbmcgYW5kICVkIG5vbi1yZWNvdmVyaW5nIG1lbWJlcnMsIG1pbiBjYXBhY2l0eSAlbGxkLCBsaW0gdGhyb3R0bGUgJWxsZABVbmFibGUgdG8gY29udmVydCBhIHBhY2tldCBpbnRvIGFuIGV2ZW50IG9uIHRoZSBhcHBsaWVyLiBFcnJvcjogJXMARmFpbGVkIHRvIGNyZWF0ZSBncm91cCByZXBsaWNhdGlvbiBwaXBlbGluZSBjYWNoZS4ARmFpbGVkIHRvIHJlaW5pdCBncm91cCByZXBsaWNhdGlvbiBwaXBlbGluZSBjYWNoZSBmb3Igd3JpdGUuAFVuYWJsZSB0byBjb252ZXJ0IHRoZSBldmVudCBpbnRvIGEgcGFja2V0IG9uIHRoZSBhcHBsaWVyLiBFcnJvcjogJXMARmFpbGVkIHRvIGZsdXNoIGdyb3VwIHJlcGxpY2F0aW9uIHBpcGVsaW5lIGNhY2hlLgBGYWlsZWQgdG8gcmVpbml0IGdyb3VwIHJlcGxpY2F0aW9uIHBpcGVsaW5lIGNhY2hlIGZvciByZWFkLgBFcnJvciBzdG9wcGluZyBhbGwgcmVwbGljYXRpb24gY2hhbm5lbHMgd2hpbGUgc2VydmVyIHdhcyBsZWF2aW5nIHRoZSBncm91cC4gR290IGVycm9yOiAlZC4gUGxlYXNlIGNoZWNrIHRoZSBlcnJvciBsb2cgZm9yIG1vcmUgZGV0YWlscy4AJXMAVGhlIHJlcGxpY2EgSU8gdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyBpcyB1bmJsb2NrZWQgYXMgdGhlIG1lbWJlciBpcyBkZWNsYXJlZCBPTkxJTkUgbm93LgBUaGUgcmVwbGljYSBJTyB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIHdpbGwgZXJyb3Igb3V0IGFzIHRoZSBtZW1iZXIgZmFpbGVkIHRvIGNvbWUgT05MSU5FLgBUaGUgcmVwbGljYSBhcHBsaWVyIHRocmVhZCBvZiBjaGFubmVsICclcycgaXMgdW5ibG9ja2VkIGFzIHRoZSBtZW1iZXIgaXMgZGVjbGFyZWQgT05MSU5FIG5vdy4AVGhlIHJlcGxpY2EgYXBwbGllciB0aHJlYWQgb2YgY2hhbm5lbCAnJXMnIHdpbGwgZXJyb3Igb3V0IGFzIHRoZSBtZW1iZXIgZmFpbGVkIHRvIGNvbWUgT05MSU5FLgBMREFQIGF1dGhlbnRpY2F0aW9uIGluaXRpYWxpemU6IGZhaWxlZCB0byBjcmVhdGUvIGdldCBjb25uZWN0aW9uIGZyb20gdGhlIHBvb2wuIABMREFQIGF1dGhlbnRpY2F0aW9uIGRlX2luaXRpYWxpemUgRmFpbGVkAFNraXBwaW5nIGdyb3VwIHNlYXJjaCwgTm8gZ3JvdXAgYXR0cmlidXRlIG1lbnRpb25lZABQb29sIG1heCBzaXplIGlzIDAsIGNvbm5lY3Rpb24gcG9vbCBpcyBkaXNhYmxlZABDb25uZWN0aW9uIHBvb2wgaW5pdGlhbGl6YXRpb24sIGZhaWxlZCB0byBjcmVhdGUgTERBUCBvYmplY3QgY3JlYXRvcgBDb25uZWN0aW9uIHBvb2wgaW5pdGlhbGl6YXRpb24sIGZhaWxlZCB0byBjcmVhdGUgTERBUCBvYmplY3QATERBUCBUTFMgY29uZmlndXJhdGlvbgBMREFQIFRMUyBjb25uZWN0aW9uAExEQVAgcG9vbCBpcyBub3QgY3JlYXRlZC4ATERBUCBwb29sIGlzIGluaXRpYWxpemluZwBMREFQIHBvb2wgaXMgZGUtaW5pdGlhbGl6aW5nAFBvb2wgbWF4IHNpemUgb2xkIGFuZCBuZXcgdmFsdWVzIGFyZSAwAExEQVAgcG9vbCBpcyByZS1pbml0aWFsaXppbmcAUGx1Zy1pbiBoYXMgZmFpbGVkIHRvIHdyaXRlIHRoZSBwYWNrZXQuAFNldHRpbmcgTERBUCB1c2VyIG5hbWUgYXMgOiAlcwBVc2VyIGF1dGhlbnRpY2F0aW9uIGRhdGE6ICVzIHNpemU6ICVsdQBVc2VyIGlzIGF1dGhlbnRpY2F0ZWQgYXM6ICVzIGV4dGVybmFsIHVzZXI6ICVzAEdyb3VwIHNlYXJjaCBpbmZvcm1hdGlvbiBiYXNlIEROOiAlcyBzY29wZTogJWQgZmlsdGVyOiAlcyBhdHRyaWJ1dGU6ICVzAFNwZWNpYWwgaGFuZGxpbmcgZm9yIGdyb3VwIHNlYXJjaCwge0dBfSBmb3VuZABHcm91cCBzZWFyY2ggc3BlY2lhbCBoYW5kbGluZywgZ3JvdXAgZnVsbCBETiBmb3VuZC4gAFVzZXIgJXMgaXMgbm90IG1lbWJlciBvZiBhbnkgZ3JvdXAuAFVzZXIgJXMgaXMgbWVtYmVyIG9mIG1vcmUgdGhhbiBvbmUgZ3JvdXAARm9yIHVzZXIgJXMgaGFzIG11bHRpcGxlIHVzZXIgZ3JvdXAgbmFtZXMuIFBsZWFzZSBjaGVjayBpZiBncm91cCBhdHRyaWJ1dGUgbmFtZSBpcyBjb3JyZWN0AFNlYXJjaGVkIGdyb3VwIG5hbWU6ICVzAExEQVAgYXV0aGVudGljYXRpb24gb2JqZWN0IGNyZWF0aW9uIHRpbWVfc3RhbXA6ICVzIGRuOiAlcwBDZXJ0aWZpY2F0ZSBuYW1lOiAlcwBGYWlsZWQgdG8gcG9vbCBkZS1pbml0aWFsaXplZDogcG9vbCBpcyBhbHJlYWR5IHJlY29uc3RydWN0aW5nAFBvb2wgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBwb29sIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQAUG9vbCBpbml0aWFsaXphdGlvbiBmYWlsZWQ6IHBvb2wgaXMgaW5pdGlhbGl6aW5nAFBvb2wgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiBwb29sIGlzIGRlLWluaXRpYWxpemluZwBGYWlsZWQgdG8gcG9vbCBkZWluaXRpYWxpemVkOiBwb29sIGlzIGFscmVhZHkgcmVjb25zdHJ1Y3RpbmcARmFpbGVkIHRvIHBvb2wgZGVpbml0aWFsaXplZCA6IHBvb2wgaXMgbm90IHJlYWR5AExkYXBfY29ubmVjdGlvbl9wb29sOjpnZXQ6IEZhaWxlZCB0byByZXR1cm4gY29ubmVjdGlvbiBhcyBwbHVnLWluIGlzIG5vdCByZWFkeS9pbml0aWFsaXppbmcvZGUtaW5pdGlhbGl6aW5nAENvbm5lY3Rpb24gcG9vbCBoYXMgZmFpbGVkIHRvIGluaXRpYWxpemVkAExkYXBfY29ubmV0aW9uX3Bvb2w6OmdldCBMREFQIG1heGltdW0gY29ubmVjdGlvbiBhbGxvd2VkIHNpemUgaXMgcmVhY2hlZC4gSW5jcmVhc2UgdGhlIG1heGltdW0gbGltaXQuAFNldCBtYXggcG9vbCBzaXplIGZhaWxlZC4AUGx1Zy1pbiBoYXMgZmFpbGVkIHRvIHJlYWQgdGhlIHBhY2tldCBmcm9tIGNsaWVudABMZGFwX2F1dGhlbnRpY2F0aW9uOjppbml0aWFsaXplOiBjcmVhdGluZyBuZXcgTERBUCBjb25uZWN0aW9uLiAATGRhcF9hdXRoZW50aWNhdGlvbjo6aW5pdGlhbGl6ZTogZ2V0dGluZyBjb25uZWN0aW9uIGZyb20gcG9vbC4gAExkYXBfYXV0aGVudGljYXRpb246OmRlX2luaXRpYWxpemUgcHV0dGluZyBiYWNrIGNvbm5lY3Rpb24gaW4gdGhlIHBvb2wATGRhcF9hdXRoZW50aWNhdGlvbjo6c2VhcmNoX3VzZXJfZ3JvdXAgbm8gZ3JvdXAgYXR0cmlidXRlIGZvdW5kAExkYXBfY29ubmV0aW9uX3Bvb2w6OnB1dCBsZGFwIGluZm8gbnVsbABMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6cHV0IGNvbm5lY3Rpb24gaXMgZnJlZWluZy4gAExkYXBfY29ubmVjdGlvbl9wb29sOjpwdXQgY29ubmVjdGlvbiBpbiBwdXNoZWQgaW4gdGhlIHBvb2wATGRhcF9jb25uZWN0aW9uX2NyZWF0b3I6OkxkYXBfY29ubmVjdGlvbl9jcmVhdG9yAHN0YXJ0aW5nIFRMUwBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6Z2V0OiAobGRhcF9pbmZvID09IE5VTEwpfHwgKCpsZGFwX2luZm8pAExkYXBfY29ubmVjdGlvbl9wb29sOjpkZWluaXQ6IGRlbGV0aW5nIGNvbm5lY3Rpb24ga2V5ICVzACBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6Z2V0IHBvb2xlZCBjb25uZWN0aW9uIGtleTogJXMATGRhcF9jb25uZWN0aW9uX3Bvb2w6OmdldCBjcmVhdGUgY29ubmVjdGlvbiBrZXk6ICVzAExEQVAgY29tbXVuaWNhdGlvbiBob3N0ICVzIHBvcnQgJXUAU2VuZGluZyBhdXRoZW50aWNhdGlvbiBtZXRob2QgdG8gY2xpZW50IDogJXMAU0FTTCByZXF1ZXN0IHJlY2VpdmVkIGZyb20gbXlzcWwgY2xpZW50OiAlcwBMZGFwX3Nhc2xfYXV0aGVudGljYXRpb246OnByb2Nlc3Nfc2FzbCByYzogJXMATGRhcF9zYXNsX2F1dGhlbnRpY2F0aW9uOjpwcm9jZXNzX3Nhc2wgc2FzbCBiaW5kIHN1Y2NlZWQuIGRuOiAlcyBtZXRob2Q6ICVzIHNlcnZlciBjcmVkZW50aWFsOiAlcwBMREFQIGF1dGhlbnRpY2F0aW9uIHN0YXJ0ZWQgZm9yIHVzZXIgbmFtZTogJXMAJXMATERBUCBhdXRoZW50aWNhdGlvbiBpbml0aWFsaXplIGlzIGZhaWxlZCB3aXRoOiAlcwBMREFQIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCBvciBncm91cCByZXRyaWV2YWwgZmFpbGVkOiAlcwBTZWFyY2ggdXNlciBncm91cCBoYXMgZmFpbGVkOiAlcwBMREFQIHVzZXIgYmluZCBoYXMgZmFpbGVkOiAlcwBDb25uZWN0aW9uIHBvb2wgZ2V0OiBGYWlsZWQgdG8gY3JlYXRlIExEQVAgY29ubmVjdGlvbi4gJXMARmFpbGVkIHRvIGNyZWF0ZSBuZXcgTERBUCBjb25uZWN0aW9uOiAgJXMARmFpbGVkIHRvIGVzdGFibGlzaCBUTFMgY29ubmVjdGlvbjogICVzAEZhaWxlZCB0byBzZWFyY2ggdXNlciBmdWxsIGRuOiAlcwBMZGFwX2Nvbm5lY3Rpb25fcG9vbDo6cmVpbml0AFRoZSBwYXRoICclcycsIGZyb20gdGhlIE5PVElGWV9TT0NLRVQgZW52aXJvbm1lbnQgdmFyaWFibGUsIGlzIHRvbyBsb25nLiBBdCAldSBieXRlcyBpdCBleGNlZWRzIHRoZSBsaW1pdCBvZiAldSBieXRlcyBmb3IgYW4gQUZfVU5JWCBzb2NrZXQuAEZhaWxlZCB0byBjb25uZWN0IHRvIHN5c3RlbWQgbm90aWZpY2F0aW9uIHNvY2tldCBuYW1lZCAlcy4gRXJyb3I6ICclcycARmFpbGVkIHRvIHdyaXRlICclcycgdG8gc3lzdGVtZCBub3RpZmljYXRpb24uIEVycm9yOiAnJXMnAENhbm5vdCByZXBsaWNhdGUgdG8gc2VydmVyIHdpdGggc2VydmVyX3V1aWQ9JyUuMzZzJyBiZWNhdXNlIHRoZSBwcmVzZW50IHNlcnZlciBoYXMgcHVyZ2VkIHJlcXVpcmVkIGJpbmFyeSBsb2dzLiBUaGUgY29ubmVjdGluZyBzZXJ2ZXIgbmVlZHMgdG8gcmVwbGljYXRlIHRoZSBtaXNzaW5nIHRyYW5zYWN0aW9ucyBmcm9tIGVsc2V3aGVyZSwgb3IgYmUgcmVwbGFjZWQgYnkgYSBuZXcgc2VydmVyIGNyZWF0ZWQgZnJvbSBhIG1vcmUgcmVjZW50IGJhY2t1cC4gVG8gcHJldmVudCB0aGlzIGVycm9yIGluIHRoZSBmdXR1cmUsIGNvbnNpZGVyIGluY3JlYXNpbmcgdGhlIGJpbmFyeSBsb2cgZXhwaXJhdGlvbiBwZXJpb2Qgb24gdGhlIHByZXNlbnQgc2VydmVyLiAlcy4ASW5zZWN1cmUgY29uZmlndXJhdGlvbiBmb3IgLS1waWQtZmlsZTogTG9jYXRpb24gJyVzJyBpbiB0aGUgcGF0aCBpcyBhY2Nlc3NpYmxlIHRvIGFsbCBPUyB1c2Vycy4gQ29uc2lkZXIgY2hvb3NpbmcgYSBkaWZmZXJlbnQgZGlyZWN0b3J5LgBDYW4ndCBzdGFydCBzZXJ2ZXI6IGNhbid0IGNoZWNrIFBJRCBmaWxlcGF0aDogJXMAdmFsaWRhdGVfcGFzc3dvcmQgc3RhdHVzIHZhcmlhYmxlcyByZWdpc3RyYXRpb24gZmFpbGVkLgB2YWxpZGF0ZV9wYXNzd29yZCBzdGF0dXMgdmFyaWFibGVzIHVucmVnaXN0cmF0aW9uIGZhaWxlZC4ARGljdGlvbmFyeSBmaWxlIG9wZW4gZmFpbGVkAGdpdmVuIHBhc3N3b3JkIHN0cmluZyBjb3VsZCBiZSBudWxsAGZhaWxlZCB0byBjb252ZXJ0IHRoZSBwYXNzd29yZCBzdHJpbmcgdG8gbG93ZXIgY2FzZQBmYWlsZWQgdG8gY29udmVydCB0aGUgcGFzc3dvcmQgc3RyaW5nIGludG8gYSBidWZmZXIAbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIGZvciBzdHJpbmcgaGFuZGxlcgBTaW5jZSB0aGUgdmFsaWRhdGVfcGFzc3dvcmRfcG9saWN5IGlzIG1lbnRpb25lZCBhcyBTdHJvbmcsIGRpY3Rpb25hcnkgZmlsZSBtdXN0IGJlIHNwZWNpZmllZABjb252ZXJ0X3RvX2J1ZmZlciBzZXJ2aWNlIGZhaWxlZAAlcyB2YXJpYWJsZSByZWdpc3RyYXRpb24gZmFpbGVkLgAlcyB2YXJpYWJsZSB1bnJlZ2lzdHJhdGlvbiBmYWlsZWQuAFBsZWFzZSBzcGVjaWZ5IG9wdGlvbnMgc3BlY2lmaWMgdG8ga2V5cmluZyBtaWdyYXRpb24uIEFueSBhZGRpdGlvbmFsIG9wdGlvbnMgY2FuIGJlIGlnbm9yZWQuIE5PVEU6IEFsdGhvdWdoIHNvbWUgb3B0aW9ucyBhcmUgdmFsaWQsIG1pZ3JhdGlvbiB0b29sIGNhbiBzdGlsbCByZXBvcnQgZXJyb3IgZXhhbXBsZTogcGx1Z2luIHZhcmlhYmxlcyBmb3Igd2hpY2ggcGx1Z2luIGlzIG5vdCBsb2FkZWQgeWV0LgBJbnZhbGlkIGRlZmF1bHQgY29sbGF0aW9uICVzOiB1dGY4bWI0XzA5MDBfYWlfY2kgb3IgdXRmOG1iNF9nZW5lcmFsX2NpIGV4cGVjdGVkACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAEZhaWxlZCB0byBzZXQgTlVNQSBtZW1vcnkgcG9saWN5IG9mIGJ1ZmZlciBwb29sIHBhZ2UgZnJhbWVzIHdpdGggbWJpbmQoJXAsJXp1LCVzLC4uLiwuLi4sJXMpIGZhaWxlZCB3aXRoICVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFBhZ2Ugc3RpbGwgZml4ZWQgb3IgZGlydHkgYXQgc2h1dGRvd24uICVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAFdhaXRlZCBmb3IgJXUgc2VjcyBmb3IgaGFzaCBpbmRleCByZWZfY291bnQgKCV6dSkgdG8gZHJvcCB0byAwLiBpbmRleDogIiVzIiB0YWJsZTogIiVzIgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBUYWJsZSBmbGFncyBhcmUgMHglbHggaW4gdGhlIGRhdGEgZGljdGlvbmFyeSBidXQgdGhlIGZsYWdzIGluIGZpbGUgJXMgIGFyZSAweCVsbHghAENhbid0IHJlYWQgZW5jcnlwdGlvbiBrZXkgZnJvbSBmaWxlICVzIQBDYW5ub3QgY2xvc2UgZmlsZSAlcywgYmVjYXVzZSBuX3BlbmRpbmdfZmx1c2hlcyAlenUAQ2Fubm90IGNsb3NlIGZpbGUgJXMsIGJlY2F1c2UgbW9kaWZpY2F0aW9uIGNvdW50ICVsbGQgIT0gZmx1c2ggY291bnQgJWxsZABDYW5ub3QgY2xvc2UgZmlsZSAlcywgYmVjYXVzZSBpdCBpcyBpbiB1c2UAT3BlbiBmaWxlIGxpc3QgbGVuIGluIHNoYXJkICV6dSBpcyAlbGx1AFRhYmxlc3BhY2UgJXMsIHdhaXRpbmcgZm9yIElPIHRvIHN0b3AgZm9yICVsbGQgc2Vjb25kcwAlcwAlcwAlcwAlcwAlcwBZb3UgbXVzdCByYWlzZSB0aGUgdmFsdWUgb2YgaW5ub2RiX29wZW5fZmlsZXMgaW4gbXkuY25mISBSZW1lbWJlciB0aGF0IElubm9EQiBrZWVwcyBhbGwgcmVkbyBsb2cgZmlsZXMgYW5kIGFsbCBzeXN0ZW0gdGFibGVzcGFjZSBmaWxlcyBvcGVuIGZvciB0aGUgd2hvbGUgdGltZSBteXNxbGQgaXMgcnVubmluZywgYW5kIG5lZWRzIHRvIG9wZW4gYWxzbyBzb21lIC5pYmQgZmlsZXMgaWYgdGhlIGZpbGUtcGVyLXRhYmxlIHN0b3JhZ2UgbW9kZWwgaXMgdXNlZC4gQ3VycmVudCBvcGVuIGZpbGVzICV6dSwgbWF4IGFsbG93ZWQgb3BlbiBmaWxlcyAlenUuAE1heCB0YWJsZXNwYWNlIGlkIGlzIHRvbyBoaWdoLCAlbHUAVHJ5aW5nIHRvIGFjY2VzcyBtaXNzaW5nIHRhYmxlc3BhY2UgJWx1AFRyeWluZyB0byBjbG9zZS9kZWxldGUgdGFibGVzcGFjZSAnJXMnIGJ1dCB0aGVyZSBhcmUgJWx1IHBlbmRpbmcgb3BlcmF0aW9ucyBvbiBpdC4AVHJ5aW5nIHRvIGRlbGV0ZS9jbG9zZSB0YWJsZXNwYWNlICclcycgYnV0IHRoZXJlIGFyZSAlbHUgZmx1c2hlcyBhbmQgJXp1IHBlbmRpbmcgSS9PJ3Mgb24gaXQuACVzAENhbm5vdCBkZWxldGUgdGFibGVzcGFjZSAlbHUgYmVjYXVzZSBpdCBpcyBub3QgZm91bmQgaW4gdGhlIHRhYmxlc3BhY2UgbWVtb3J5IGNhY2hlLgBXaGlsZSBkZWxldGluZyB0YWJsZXNwYWNlICVsdSBpbiBESVNDQVJEIFRBQkxFU1BBQ0UuIEZpbGUgcmVuYW1lL2RlbGV0ZSBmYWlsZWQ6ICVzAENhbm5vdCBkZWxldGUgdGFibGVzcGFjZSAlbHUgaW4gRElTQ0FSRCBUQUJMRVNQQUNFOiAlcwBDYW5ub3QgcmVuYW1lICclcycgdG8gJyVzJyBmb3Igc3BhY2UgSUQgJWx1IGJlY2F1c2UgdGhlIHNvdXJjZSBmaWxlIGRvZXMgbm90IGV4aXN0LgBDYW5ub3QgcmVuYW1lICclcycgdG8gJyVzJyBmb3Igc3BhY2UgSUQgJWx1IGJlY2F1c2UgdGhlIHRhcmdldCBmaWxlIGV4aXN0cy4gUmVtb3ZlIHRoZSB0YXJnZXQgZmlsZSBhbmQgdHJ5IGFnYWluLgBDYW5ub3QgcmVuYW1lIGZpbGUgJyVzJyAoc3BhY2UgaWQgJWx1KSByZXRyaWVkICVsbHUgdGltZXMuIFRoZXJlIGFyZSBlaXRoZXIgcGVuZGluZyBJT3Mgb3IgZmx1c2hlcyBvciB0aGUgZmlsZSBpcyBiZWluZyBleHRlbmRlZC4AQ2Fubm90IGZpbmQgc3BhY2UgaWQgJWx1IGluIHRoZSB0YWJsZXNwYWNlIG1lbW9yeSBjYWNoZSwgdGhvdWdoIHRoZSBmaWxlICclcycgaW4gYSByZW5hbWUgb3BlcmF0aW9uIHNob3VsZCBoYXZlIHRoYXQgSUQuAFJlbmFtZSB3YWl0aW5nIGZvciBJTyB0byByZXN1bWUAQ2Fubm90IGZpbmQgdGFibGVzcGFjZSBmb3IgJyVzJyBpbiB0aGUgdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUAQ2Fubm90IGZpbmQgdGFibGVzcGFjZSBmb3IgJyVzJyBpbiB0aGUgdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUAVGFibGVzcGFjZSAnJXMnIGlzIGFscmVhZHkgaW4gdGhlIHRhYmxlc3BhY2UgbWVtb3J5IGNhY2hlAENhbm5vdCBjcmVhdGUgZmlsZSAnJXMnAFRoZSBmaWxlICclcycgYWxyZWFkeSBleGlzdHMgdGhvdWdoIHRoZSBjb3JyZXNwb25kaW5nIHRhYmxlIGRpZCBub3QgZXhpc3QuIEhhdmUgeW91IG1vdmVkIElubm9EQiAuaWJkIGZpbGVzIGFyb3VuZCB3aXRob3V0IHVzaW5nIHRoZSBTUUwgY29tbWFuZHMgRElTQ0FSRCBUQUJMRVNQQUNFIGFuZCBJTVBPUlQgVEFCTEVTUEFDRSwgb3IgZGlkIG15c3FsZCBjcmFzaCBpbiB0aGUgbWlkZGxlIG9mIENSRUFURSBUQUJMRT8gWW91IGNhbiByZXNvbHZlIHRoZSBwcm9ibGVtIGJ5IHJlbW92aW5nIHRoZSBmaWxlICclcycgdW5kZXIgdGhlICdkYXRhZGlyJyBvZiBNeVNRTC4AcG9zaXhfZmFsbG9jYXRlKCk6IEZhaWxlZCB0byBwcmVhbGxvY2F0ZSBkYXRhIGZvciBmaWxlICVzLCBkZXNpcmVkIHNpemUgJWxsdSBPcGVyYXRpbmcgc3lzdGVtIGVycm9yIG51bWJlciAlZCAtICVzLiBDaGVjayB0aGF0IHRoZSBkaXNrIGlzIG5vdCBmdWxsIG9yIGEgZGlzayBxdW90YSBleGNlZWRlZC4gTWFrZSBzdXJlIHRoZSBmaWxlIHN5c3RlbSBzdXBwb3J0cyB0aGlzIGZ1bmN0aW9uLiBSZWZlciB0byB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBmb3Igb3BlcmF0aW5nIHN5c3RlbSBlcnJvciBjb2RlIGluZm9ybWF0aW9uLgBDb3VsZCBub3Qgd3JpdGUgdGhlIGZpcnN0IHBhZ2UgdG8gdGFibGVzcGFjZSAnJXMnAEZpbGUgZmx1c2ggb2YgdGFibGVzcGFjZSAnJXMnIGZhaWxlZABDb3VsZCBub3QgZmluZCBhIHZhbGlkIHRhYmxlc3BhY2UgZmlsZSBmb3IgYCVzYC4gJXMASWdub3JpbmcgZGF0YSBmaWxlICclcycgd2l0aCBzcGFjZSBJRCAlbHUuIEFub3RoZXIgZGF0YSBmaWxlIGNhbGxlZCAnJXMnIGV4aXN0cyB3aXRoIHRoZSBzYW1lIHNwYWNlIElEACVzACVzACVzACVzAENhbid0IHNldCBlbmNyeXB0aW9uIGluZm9ybWF0aW9uIGZvciB0YWJsZXNwYWNlICVzIQAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBUaGUgZGF0YWZpbGUgJyVzJyBmb3IgdGFibGVzcGFjZSAlcyBpcyBpbiBhbiB1bnByb3RlY3RlZCBsb2NhdGlvbi4gVGhpcyBmaWxlIGNhbm5vdCBiZSByZWNvdmVyZWQgYWZ0ZXIgYSBjcmFzaCB1bnRpbCB0aGlzIGxvY2F0aW9uIGlzIGFkZGVkIHRvIGlubm9kYl9kaXJlY3Rvcmllcy4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAU2NhbiBwYXRoICclcycgaXMgaWdub3JlZCBiZWNhdXNlICVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAEEgZ2VuZXJhbCB0YWJsZXNwYWNlIGNhbm5vdCBiZSBsb2NhdGVkIHVuZGVyIHRoZSBkYXRhZGlyLiBDYW5ub3Qgb3BlbiBmaWxlICclcycuAEEgZmlsZS1wZXItdGFibGUgdGFibGVzcGFjZSBjYW5ub3QgYmUgbG9jYXRlZCBpbiB0aGUgZGF0YWRpci4gQ2Fubm90IG9wZW4gZmlsZSAnJXMnLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBDYW5ub3QgY3JlYXRlIGEgdGFibGVzcGFjZSBmb3IgdGFibGUgJXMgYmVjYXVzZSB0aGUgZGlyZWN0b3J5IGlzIG5vdCBhIHZhbGlkIGxvY2F0aW9uLiAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBCbG9ja2VkIEhpZ2ggUHJpb3JpdHkgVHJhbnNhY3Rpb24gKElEICVsbHUsIFRocmVhZCBJRCAlcykgZm9yY2VzIHJvbGxiYWNrIG9mIHRoZSBibG9ja2luZyB0cmFuc2FjdGlvbiAoSUQgJWxsdSAtICVzKS4AJXMAJXMAQmxvY2tlZCBIaWdoIFByaW9yaXR5IFRyYW5zYWN0aW9uIChUaHJlYWQgSUQgJXMpIHdha2luZyB1cCB0aGUgYmxvY2tpbmcgdHJhbnNhY3Rpb24gKElEICVsbHUpIGJ5IHByZXRlbmRpbmcgaXQncyBhIGRlYWRsb2NrIHZpY3RpbS4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVGhlIHRyYW5zYWN0aW9uIGxvZyBzaXplIGlzIHRvbyBsYXJnZSBmb3IgaW5ub2RiX2xvZ19idWZmZXJfc2l6ZSAoJWx1ID49ICVsdSAvIDIpLiBUcnlpbmcgdG8gZXh0ZW5kIGl0LgBpbm5vZGJfbG9nX2J1ZmZlcl9zaXplIHdhcyBleHRlbmRlZCB0byAlbHUgYnl0ZXMuAFRoZSB0cmFuc2FjdGlvbiBsb2cgZmlsZXMgYXJlIHRvbyBzbWFsbCBmb3IgdGhlIHNpbmdsZSB0cmFuc2FjdGlvbiBsb2cgKHNpemU9JWx1KS4gU28sIHRoZSBsYXN0IGNoZWNrcG9pbnQgYWdlIG1pZ2h0IGV4Y2VlZCB0aGUgbG9nIGdyb3VwIGNhcGFjaXR5ICVsbHUuAFRoZSBhZ2Ugb2YgdGhlIGxhc3QgY2hlY2twb2ludCBpcyAlbGx1LCB3aGljaCBleGNlZWRzIHRoZSBsb2cgZ3JvdXAgY2FwYWNpdHkgJWxsdS4AQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4gaWJfbG9nZmlsZXMgYXJlIHRvbyBzbWFsbCBmb3IgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSAlbHUuIFRoZSBjb21iaW5lZCBzaXplIG9mIGliX2xvZ2ZpbGVzIHNob3VsZCBiZSBiaWdnZXIgdGhhbiAyMDAga0IgKiBpbm5vZGJfdGhyZWFkX2NvbmN1cnJlbmN5LiBUbyBnZXQgbXlzcWxkIHRvIHN0YXJ0IHVwLCBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSBpbiBteS5jbmYgdG8gYSBsb3dlciB2YWx1ZSwgZm9yIGV4YW1wbGUsIHRvIDguIEFmdGVyIGFuIEVSUk9SLUZSRUUgc2h1dGRvd24gb2YgbXlzcWxkIHlvdSBjYW4gYWRqdXN0IHRoZSBzaXplIG9mIGliX2xvZ2ZpbGVzLiAlcwBSZWRvIGxvZyB3YXMgZW5jcnlwdGVkLCBidXQga2V5cmluZyBwbHVnaW4gaXMgbm90IGxvYWRlZC4AUmVhZCByZWRvIGxvZyBlbmNyeXB0aW9uIG1ldGFkYXRhIHN1Y2Nlc3NmdWwuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIGVuY3J5cHRpb24gbWV0YWRhdGEuAENhbm5vdCByZWFkIHRoZSBlbmNyeXB0aW9uIGluZm9ybWF0aW9uIGluIGxvZyBmaWxlIGhlYWRlciwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgcGx1Z2luIGxvYWRlZCBhbmQgdGhlIGtleSBmaWxlIGV4aXN0cy4AQ2FuJ3Qgc2V0IHJlZG8gbG9nIHRhYmxlc3BhY2UgdG8gYmUgZW5jcnlwdGVkIGluIHJlYWQtb25seSBtb2RlLgBDYW4ndCBzZXQgcmVkbyBsb2cgdGFibGVzcGFjZSB0byBiZSBlbmNyeXB0ZWQuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIHRvIGJlIGVuY3J5cHRlZC4AUmVkbyBsb2cgZW5jcnlwdGlvbiBpcyBlbmFibGVkLgBGbHVzaCB3YWl0aW5nIGZvciBhcmNoaXZlciB0byBjYXRjaCB1cCBsYWcgTFNOOiAlbGx1AEZsdXNoIG92ZXJ3cml0aW5nIGRhdGEgdG8gYXJjaGl2ZSAtIHdhaXQgdG9vIGxvbmcgKDEgbWludXRlKSBsYWcgTFNOOiAlbGx1ACVzAFN0YXJ0aW5nIHNodXRkb3duLi4uAFdhaXRpbmcgZm9yICVzIHRvIGV4aXQAV2FpdGluZyBmb3IgJWx1IGFjdGl2ZSB0cmFuc2FjdGlvbnMgdG8gZmluaXNoAFdhaXRpbmcgZm9yIG1hc3RlciB0aHJlYWQgdG8gYmUgc3VzcGVuZGVkAFdhaXRpbmcgZm9yIHBhZ2VfY2xlYW5lciB0byBmaW5pc2ggZmx1c2hpbmcgb2YgYnVmZmVyIHBvb2wAUGVuZGluZyBjaGVja3BvaW50X3dyaXRlczogJWx1LiBQZW5kaW5nIGxvZyBmbHVzaCB3cml0ZXM6ICVsdS4AV2FpdGluZyBmb3IgJWx1IGJ1ZmZlciBwYWdlIEkvT3MgdG8gY29tcGxldGUATXlTUUwgaGFzIHJlcXVlc3RlZCBhIHZlcnkgZmFzdCBzaHV0ZG93biB3aXRob3V0IGZsdXNoaW5nIHRoZSBJbm5vREIgYnVmZmVyIHBvb2wgdG8gZGF0YSBmaWxlcy4gQXQgdGhlIG5leHQgbXlzcWxkIHN0YXJ0dXAgSW5ub0RCIHdpbGwgZG8gYSBjcmFzaCByZWNvdmVyeSEAQmFja2dyb3VuZCB0aHJlYWQgJXMgd29rZSB1cCBkdXJpbmcgc2h1dGRvd24AV2FpdGluZyBmb3IgYXJjaGl2ZXIgdG8gZmluaXNoIGFyY2hpdmluZyBwYWdlIGFuZCBsb2cAQmFja2dyb3VuZCB0aHJlYWQgJXMgd29rZSB1cCBkdXJpbmcgc2h1dGRvd24AV2FpdGluZyBmb3IgZGlydHkgYnVmZmVyIHBhZ2VzIHRvIGJlIGZsdXNoZWQATG9nIHNlcXVlbmNlIG51bWJlciBhdCBzaHV0ZG93biAlbGx1IGlzIGxvd2VyIHRoYW4gYXQgc3RhcnR1cCAlbGx1IQBXYWl0aW5nIGZvciBhcmNoaXZlciB0byBmaW5pc2ggYXJjaGl2aW5nIHBhZ2UgYW5kIGxvZwAjIyMjIyMjIyMjIyMjIyMgQ09SUlVQVCBMT0cgUkVDT1JEIEZPVU5EICMjIyMjIyMjIyMjIyMjIwBMb2cgcmVjb3JkIHR5cGUgJWQsIHBhZ2UgJWx1OiVsdS4gTG9nIHBhcnNpbmcgcHJvY2VlZGVkIHN1Y2Nlc3NmdWxseSB1cCB0byAlbGx1LiBQcmV2aW91cyBsb2cgcmVjb3JkIHR5cGUgJWQsIGlzIG11bHRpICVsbHUgUmVjdiBvZmZzZXQgJXpkLCBwcmV2ICVsbHUASGV4IGR1bXAgc3RhcnRpbmcgJWxsdSBieXRlcyBiZWZvcmUgYW5kIGVuZGluZyAlbGx1IGJ5dGVzIGFmdGVyIHRoZSBjb3JydXB0ZWQgcmVjb3JkOgBTZXQgaW5ub2RiX2ZvcmNlX3JlY292ZXJ5IHRvIGlnbm9yZSB0aGlzIGVycm9yLgBUaGUgcmVkbyBsb2cgZmlsZSBtYXkgaGF2ZSBiZWVuIGNvcnJ1cHQgYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGxvZyBzY2FuIGRpZCBub3QgcHJvY2VlZCBmYXIgZW5vdWdoIGluIHJlY292ZXJ5ISBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uIHlvdXIgSW5ub0RCIHRhYmxlcyB0byBjaGVjayB0aGF0IHRoZXkgYXJlIG9rISBJZiBteXNxbGQgY3Jhc2hlcyBhZnRlciB0aGlzIHJlY292ZXJ5OyAlcwAlbGx1IHBhZ2VzIHdpdGggbG9nIHJlY29yZHMgd2VyZSBsZWZ0IHVucHJvY2Vzc2VkIQBVcGdyYWRlIGFmdGVyIGEgY3Jhc2ggaXMgbm90IHN1cHBvcnRlZC4gVGhpcyByZWRvIGxvZyB3YXMgY3JlYXRlZCB3aXRoICVzLCBhbmQgaXQgYXBwZWFycyBjb3JydXB0ZWQuIFBsZWFzZSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhdCAlcwBVcGdyYWRlIGlzIG5vdCBzdXBwb3J0ZWQgYWZ0ZXIgYSBjcmFzaCBvciBzaHV0ZG93biB3aXRoIGlubm9kYl9mYXN0X3NodXRkb3duID0gMi4gVGhpcyByZWRvIGxvZyB3YXMgY3JlYXRlZCB3aXRoICVzLCBhbmQgaXQgYXBwZWFycyBsb2dpY2FsbHkgbm9uIGVtcHR5LiBQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgYXQgJXMAJXMAJXMAUmVkbyBsb2cgZm9ybWF0IGlzIHYlbHUuIFRoZSByZWRvIGxvZyB3YXMgY3JlYXRlZCBiZWZvcmUgTXlTUUwgOC4wLjMwLgBVbmtub3duIHJlZG8gbG9nIGZvcm1hdCAodiVsdSkgaW4gZmlsZSAlcy4gUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGF0ICVzAE5vIHZhbGlkIGNoZWNrcG9pbnQgZm91bmQgKGNvcnJ1cHRlZCByZWRvIGxvZykuIFlvdSBjYW4gdHJ5IC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTYgYXMgYSBsYXN0IHJlc29ydC4AQXBwbHlpbmcgYSBiYXRjaCBvZiAlbGx1IHJlZG8gbG9nIHJlY29yZHMgLi4uACVzACVzAEFwcGx5IGJhdGNoIGNvbXBsZXRlZCEAJXMAJXMAJXMAJXMAJXMAJXMAQW4gb3B0aW1pemVkKHdpdGhvdXQgcmVkbyBsb2dnaW5nKSBEREwgb3BlcmF0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZC4gQWxsIG1vZGlmaWVkIHBhZ2VzIG1heSBub3QgaGF2ZSBiZWVuIGZsdXNoZWQgdG8gdGhlIGRpc2sgeWV0LgpUaGlzIG9mZmxpbmUgYmFja3VwIG1heSBub3QgYmUgY29uc2lzdGVudABFeHRlbmRpbmcgdGFibGVzcGFjZSA6ICVsdSBzcGFjZSBuYW1lOiAlcyB0byBuZXcgc2l6ZTogJWx1IHBhZ2VzIGR1cmluZyByZWNvdmVyeS4AQ291bGQgbm90IGV4dGVuZCB0YWJsZXNwYWNlOiAlbHUgc3BhY2UgbmFtZTogJXMgdG8gbmV3IHNpemU6ICVsdSBwYWdlcyBkdXJpbmcgcmVjb3ZlcnkuAExvZyBibG9jayAlbHUgYXQgbHNuICVsbHUgaGFzIHZhbGlkIGhlYWRlciwgYnV0IGNoZWNrc3VtIGZpZWxkIGNvbnRhaW5zICVsdSwgc2hvdWxkIGJlICVsdS4AUmVjb3Zlcnkgc2tpcHBlZCwgLS1pbm5vZGItcmVhZC1vbmx5IHNldCEATG9nIHNjYW4gcHJvZ3Jlc3NlZCBwYXN0IHRoZSBjaGVja3BvaW50IExTTiAlbGx1LgBMb2cgcGFyc2luZyBidWZmZXIgb3ZlcmZsb3cuIFJlY292ZXJ5IG1heSBoYXZlIGZhaWxlZCEgUGxlYXNlIHNldCBsb2dfYnVmZmVyX3NpemUgdG8gYSB2YWx1ZSBoaWdoZXIgdGhhbiAlbHUuAFNldCBpbm5vZGJfZm9yY2VfcmVjb3ZlcnkgdG8gaWdub3JlIHRoaXMgZXJyb3IuAERvaW5nIHJlY292ZXJ5OiBzY2FubmVkIHVwIHRvIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdQBEYXRhYmFzZSB3YXMgbm90IHNodXRkb3duIG5vcm1hbGx5IQBTdGFydGluZyBjcmFzaCByZWNvdmVyeS4AVGhlIHVzZXIgaGFzIHNldCBTUlZfRk9SQ0VfTk9fTE9HX1JFRE8gb24sIHNraXBwaW5nIGxvZyByZWRvAENhbm5vdCByZXN0b3JlIGZyb20gbXlzcWxiYWNrdXAsIElubm9EQiBydW5uaW5nIGluIHJlYWQtb25seSBtb2RlIQBUaGUgcmVkbyBsb2cgZmlsZSB3YXMgY3JlYXRlZCBieSBteXNxbGJhY2t1cCAtLWFwcGx5LWxvZyBhdCAlcy4gVGhlIGZvbGxvd2luZyBjcmFzaCByZWNvdmVyeSBpcyBwYXJ0IG9mIGEgbm9ybWFsIHJlc3RvcmUuAE9wZW5pbmcgY2xvbmVkIGRhdGFiYXNlAFJlZG8gbG9nIGlzIGZyb20gYW4gZWFybGllciB2ZXJzaW9uLCB2JWx1LgBSZWRvIGxvZyBmb3JtYXQgdiVsdSBub3Qgc3VwcG9ydGVkLiBDdXJyZW50IHN1cHBvcnRlZCBmb3JtYXQgaXMgdiVsdS4AQXJlIHlvdSBzdXJlIHlvdSBhcmUgdXNpbmcgdGhlIHJpZ2h0IHJlZG8gbG9nIGZpbGVzIHRvIHN0YXJ0IHVwIHRoZSBkYXRhYmFzZT8gTG9nIHNlcXVlbmNlIG51bWJlciBpbiB0aGUgcmVkbyBsb2cgZmlsZXMgaXMgJWxsdSwgbGVzcyB0aGFuIHRoZSBsb2cgc2VxdWVuY2UgbnVtYmVyIGluIHRoZSBmaXJzdCBzeXN0ZW0gdGFibGVzcGFjZSBmaWxlIGhlYWRlciwgJWxsdS4AVGhlIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdSBpbiB0aGUgc3lzdGVtIHRhYmxlc3BhY2UgZG9lcyBub3QgbWF0Y2ggdGhlIGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdSBpbiB0aGUgcmVkbyBsb2cgZmlsZXMhAENhbid0IGluaXRpYXRlIGRhdGFiYXNlIHJlY292ZXJ5LCBydW5uaW5nIGluIHJlYWQtb25seS1tb2RlLgBXZSBzY2FubmVkIHRoZSBsb2cgdXAgdG8gJWxsdS4gQSBjaGVja3BvaW50IHdhcyBhdCAlbGx1IGFuZCB0aGUgbWF4aW11bSBMU04gb24gYSBkYXRhYmFzZSBwYWdlIHdhcyAlbGx1LiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBkYXRhYmFzZSBpcyBub3cgY29ycnVwdCEAV2FpdGluZyBmb3IgcmVjdl93cml0ZXIgdG8gZmluaXNoIGZsdXNoaW5nIG9mIGJ1ZmZlciBwb29sAFJlY292ZXJ5IHBhcnNpbmcgYnVmZmVyIGV4dGVuZGVkIHRvICV6dS4AT3V0IG9mIG1lbW9yeSB3aGlsZSByZXNpemluZyByZWNvdmVyeSBwYXJzaW5nIGJ1ZmZlci4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAQ2FuJ3QgZW5jcnlwdCBkYXRhIG9mIHJlZG8gbG9nACVzACVzAERlY3J5cHRpb24gb2YgcmVkbyBsb2cgYmxvY2sgYXQgb2Zmc2V0ICVsbHUgaW4gZmlsZSAlcyBmYWlsZWQgYmVjYXVzZSB0aGVyZSdzIG5vIGtleXJpbmcgY29uZmlndXJlZAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBPbGQgbG9nIHNlcXVlbmNlIG51bWJlciAlbGx1IHdhcyBncmVhdGVyIHRoYW4gdGhlIG5ldyBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUuIFBsZWFzZSBzdWJtaXQgYSBidWcgcmVwb3J0IHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbQBTZW1hcGhvcmUgd2FpdCBoYXMgbGFzdGVkID4gJWxsdSBzZWNvbmRzLiBXZSBpbnRlbnRpb25hbGx5IGNyYXNoIHRoZSBzZXJ2ZXIgYmVjYXVzZSBpdCBhcHBlYXJzIHRvIGJlIGh1bmcuAFdhaXRpbmcgZm9yICVsbHUgdGFibGUocykgdG8gYmUgZHJvcHBlZABXYWl0aW5nIGZvciBjaGFuZ2UgYnVmZmVyIG1lcmdlIHRvIGNvbXBsZXRlIG51bWJlciBvZiBieXRlcyBvZiBjaGFuZ2UgYnVmZmVyIGp1c3QgbWVyZ2VkOiAlbGx1AENhbid0IHNldCB1bmRvIHRhYmxlc3BhY2UocykgdG8gYmUgZW5jcnlwdGVkIHNpbmNlIC0taW5ub2RiX3VuZG9fdGFibGVzcGFjZXM9MC4AQ2FuJ3Qgc2V0IHVuZG8gdGFibGVzcGFjZShzKSB0byBiZSBlbmNyeXB0ZWQgaW4gcmVhZC1vbmx5LW1vZGUuAENhbid0IHNldCB1bmRvIHRhYmxlc3BhY2UgJyVzJyB0byBiZSBlbmNyeXB0ZWQuAENhbid0IHNldCB1bmRvIHRhYmxlc3BhY2UgJyVzJyB0byBiZSBlbmNyeXB0ZWQuIEZhaWxlZCB0byB3cml0ZSBoZWFkZXIgcGFnZS4AQ2FuJ3Qgc2V0IHVuZG8gdGFibGVzcGFjZSAnJXMnIHRvIGJlIGVuY3J5cHRlZC4gRXJyb3IgJWQgLSAlcwBFbmNyeXB0aW9uIGlzIGVuYWJsZWQgZm9yIHVuZG8gdGFibGVzcGFjZSAnJXMnLgBDYW4ndCByb3RhdGUgZW5jcnlwdGlvbiBvbiB1bmRvIHRhYmxlc3BhY2UgJyVzJy4ARW5jcnlwdGlvbiBpcyBlbmFibGVkIGZvciB1bmRvIHRhYmxlc3BhY2UgJyVzJy4Ab3NfZmlsZV9nZXRfc3RhdHVzKCkgZmFpbGVkIG9uICclcycuIENhbid0IGRldGVybWluZSBmaWxlIHBlcm1pc3Npb25zLgAlcyBjYW4ndCBiZSBvcGVuZWQgaW4gJXMgbW9kZS4AJyVzJyBub3QgYSByZWd1bGFyIGZpbGUuAENhbm5vdCBjcmVhdGUgJXMAU2V0dGluZyBmaWxlICVzIHNpemUgdG8gJWxsdSBNQi4gUHJvZ3Jlc3MgOiAldSUlAENhbm5vdCByZXNpemUgcmVkbyBsb2cgZmlsZSAlcyB0byAlbGx1IE1CICglcykAQ2Fubm90IGNyZWF0ZSByZWRvIGxvZyBmaWxlcyBpbiByZWFkLW9ubHkgbW9kZSAoLS1pbm5vZGItcmVhZC1vbmx5KS4AUmVkbyBsb2cgZW5jcnlwdGlvbiBpcyBlbmFibGVkLCBidXQgdGhlIGtleXJpbmcgaXMgbm90IGxvYWRlZC4ARmFpbGVkIHRvIGNyZWF0ZSByZWRvIGxvZyBmaWxlICVzIChlcnJvcjogJWQpIGZvciBzdGFydCBMU04gJWxsdQBSZW5hbWluZyBsb2cgZmlsZSAlcyB0byAlcwBOZXcgcmVkbyBsb2cgZmlsZXMgY3JlYXRlZCwgTFNOPSVsbHUAVW5hYmxlIHRvIG9wZW4gJyVzJyAoZXJyb3I6ICVkKS4AQ2Fubm90IGNyZWF0ZSBjb25zdHJ1Y3Rpb24gbG9nIGZpbGUgJyVzJyBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuAENyZWF0aW5nIFVORE8gVGFibGVzcGFjZSAlcwBTZXR0aW5nIGZpbGUgJXMgc2l6ZSB0byAlbGx1IE1CAFBoeXNpY2FsbHkgd3JpdGluZyB0aGUgZmlsZSBmdWxsAEVycm9yIGluIGNyZWF0aW5nICVzOiBwcm9iYWJseSBvdXQgb2YgZGlzayBzcGFjZQBDYW4ndCBzZXQgZW5jcnlwdGlvbiBtZXRhZGF0YSBmb3Igc3BhY2UgJXMAQ2Fubm90IHJlYWQgZmlyc3QgcGFnZSBvZiAnJXMnIC0gJXMAVW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUgd2FzIGJlaW5nIHRydW5jYXRlZCB3aGVuIG15c3FsZCBxdWl0LgBDYW5ub3QgcmVjb3ZlciBhIHRydW5jYXRlZCB1bmRvIHRhYmxlc3BhY2UgaW4gcmVhZC1vbmx5IG1vZGUAUmVjb25zdHJ1Y3RpbmcgdW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUuAENhbm5vdCBjcmVhdGUgJXMgYmVjYXVzZSAlcyBhbHJlYWR5IHVzZXMgU3BhY2UgSUQ9JWx1ISBEaWQgeW91IGNoYW5nZSBpbm5vZGJfdW5kb19kaXJlY3Rvcnk/AFVORE8gdGFibGVzcGFjZSAlcyBtdXN0IGJlICVzAEVycm9yIGNyZWF0aW5nIGZpbGUgZm9yICVzAEVycm9yIHJlYWRpbmcgZW5jcnlwdGlvbiBmb3IgJXMAVW5hYmxlIHRvIG9wZW4gdW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUAT3BlbmVkICVsbHUgZXhpc3RpbmcgdW5kbyB0YWJsZXNwYWNlcy4AQ2Fubm90IGNyZWF0ZSB1bmRvIHRhYmxlc3BhY2VzIHNpbmNlIGlubm9kYl8lcyBoYXMgYmVlbiBzZXQuIFVzaW5nICVsbHUgZXhpc3RpbmcgdW5kbyB0YWJsZXNwYWNlcy4AQ2Fubm90IGNvbnRpbnVlIElubm9EQiBzdGFydHVwIGluICVzIG1vZGUgYmVjYXVzZSB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgdW5kbyB0YWJsZXNwYWNlcyBmb3VuZC4AQ291bGQgbm90IGNyZWF0ZSB1bmRvIHRhYmxlc3BhY2UgJyVzJy4ARXJyb3IgJWQgLSAlcyAtIG9wZW5pbmcgbmV3bHkgY3JlYXRlZCB1bmRvIHRhYmxlc3BhY2UgJyVzJy4AQ3JlYXRlZCAlbGx1IHVuZG8gdGFibGVzcGFjZXMuAFVuYWJsZSB0byBjcmVhdGUgZW5jcnlwdGVkIHVuZG8gdGFibGVzcGFjZSBudW1iZXIgJWx1LiBwbGVhc2UgY2hlY2sgaWYgdGhlIGtleXJpbmcgaXMgaW5pdGlhbGl6ZWQgY29ycmVjdGx5AEVuY3J5cHRpb24gaXMgZW5hYmxlZCBmb3IgdW5kbyB0YWJsZXNwYWNlIG51bWJlciAlbHUuAFVuYWJsZSB0byBpbml0aWFsaXplIHRoZSBoZWFkZXIgcGFnZSBpbiB1bmRvIHRhYmxlc3BhY2UgbnVtYmVyICVsdS4AQ2Fubm90IGRlbGV0ZSBvbGQgdW5kbyB0YWJsZXNwYWNlcyBiZWNhdXNlIHRoZXkgY29udGFpbiB1bmRvIGxvZ3MgZm9yIFhBIFBSRVBBUkVEIHRyYW5zYWN0aW9ucy4AVXBncmFkaW5nICV6dSBleGlzdGluZyB1bmRvIHRhYmxlc3BhY2VzIHRoYXQgd2VyZSB0cmFja2VkIGluIHRoZSBzeXN0ZW0gdGFibGVzcGFjZSB0byAlbHUgbmV3IGluZGVwZW5kZW50IHVuZG8gdGFibGVzcGFjZXMuAERlbGV0aW5nICVsbHUgbmV3IGluZGVwZW5kZW50IHVuZG8gdGFibGVzcGFjZXMgdGhhdCB3ZSBqdXN0IGNyZWF0ZWQuAFdhaXRpbmcgZm9yIHB1cmdlIHRvIHN0YXJ0AENyZWF0aW5nIHNoYXJlZCB0YWJsZXNwYWNlIGZvciB0ZW1wb3JhcnkgdGFibGVzAFRoZSAlcyBkYXRhIGZpbGUgbXVzdCBiZSB3cml0YWJsZSEAQ291bGQgbm90IGNyZWF0ZSB0aGUgc2hhcmVkICVzLgBVbmFibGUgdG8gY3JlYXRlIHRoZSBzaGFyZWQgJXMuAFRoZSAlcyBkYXRhIGZpbGUgY2Fubm90IGJlIHJlLW9wZW5lZCBhZnRlciBjaGVja19maWxlX3NwZWMoKSBzdWNjZWVkZWQhACVkIHRocmVhZHMgY3JlYXRlZCBieSBJbm5vREIgaGFkIG5vdCBleGl0ZWQgYXQgc2h1dGRvd24hAElubm9EQiBEYXRhYmFzZSBjcmVhdGlvbiB3YXMgYWJvcnRlZCAlc3dpdGggZXJyb3IgJXMuIFlvdSBtYXkgbmVlZCB0byBkZWxldGUgdGhlIGliZGF0YTEgZmlsZSBiZWZvcmUgdHJ5aW5nIHRvIHN0YXJ0IHVwIGFnYWluLgBQbHVnaW4gaW5pdGlhbGl6YXRpb24gYWJvcnRlZCAlc3dpdGggZXJyb3IgJXMuAFdhaXRpbmcgZm9yICV6dSBidWZmZXIgcGFnZSBJL09zIHRvIGNvbXBsZXRlLgBQVU5DSCBIT0xFIHN1cHBvcnQgYXZhaWxhYmxlAFBVTkNIIEhPTEUgc3VwcG9ydCBub3QgYXZhaWxhYmxlAFNpemUgb2YgSW5ub0RCJ3MgdWxpbnQgaXMgJXp1IGJ1dCBzaXplIG9mIHZvaWQqIGlzICV6dS4gVGhlIHNpemVzIHNob3VsZCBiZSB0aGUgc2FtZSBzbyB0aGF0IG9uIGEgNjQtYml0IHBsYXRmb3JtcyB5b3UgY2FuIGFsbG9jYXRlIG1vcmUgdGhhbiA0IEdCIG9mIG1lbW9yeS4ARGF0YWJhc2UgdXBncmFkZSBjYW5ub3QgYmUgYWNjb21wbGlzaGVkIGluIHJlYWQtb25seSBtb2RlLgBEYXRhYmFzZSB1cGdyYWRlIGNhbm5vdCBiZSBhY2NvbXBsaXNoZWQgd2l0aCBpbm5vZGJfZm9yY2VfcmVjb3ZlcnkgPiAwACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAE15U1FMIHdhcyBidWlsdCB3aXRob3V0IGEgbWVtb3J5IGJhcnJpZXIgY2FwYWJpbGl0eSBvbiB0aGlzIGFyY2hpdGVjdHVyZSwgd2hpY2ggbWlnaHQgYWxsb3cgYSBtdXRleC9yd19sb2NrIHZpb2xhdGlvbiB1bmRlciBoaWdoIHRocmVhZCBjb25jdXJyZW5jeS4gVGhpcyBtYXkgY2F1c2UgYSBoYW5nLgBDb21wcmVzc2VkIHRhYmxlcyB1c2UgemxpYiAlcwAlcwBTdGFydHVwIGNhbGxlZCBzZWNvbmQgdGltZSBkdXJpbmcgdGhlIHByb2Nlc3MgbGlmZXRpbWUuIEluIHRoZSBNeVNRTCBFbWJlZGRlZCBTZXJ2ZXIgTGlicmFyeSB5b3UgY2Fubm90IGNhbGwgc2VydmVyX2luaXQoKSBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIHByb2Nlc3MgbGlmZXRpbWUuACVzAFVuYWJsZSB0byBjcmVhdGUgbW9uaXRvciBmaWxlICVzOiAlcwBEaXNhYmxpbmcgYmFja2dyb3VuZCBpYnVmIElPIHJlYWQgdGhyZWFkcy4AQ2Fubm90IGluaXRpYWxpemUgQUlPIHN1Yi1zeXN0ZW0ASW5pdGlhbGl6aW5nIGJ1ZmZlciBwb29sLCB0b3RhbCBzaXplID0gJWxmJWMsIGluc3RhbmNlcyA9ICVsdSwgY2h1bmsgc2l6ZSA9JWxmJWMgAENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBidWZmZXIgcG9vbABDb21wbGV0ZWQgaW5pdGlhbGl6YXRpb24gb2YgYnVmZmVyIHBvb2wAU21hbGwgYnVmZmVyIHBvb2wgc2l6ZSAoJWxsdU0pLCB0aGUgZmxzdF92YWxpZGF0ZSgpIGRlYnVnIGZ1bmN0aW9uIGNhbiBjYXVzZSBhIGRlYWRsb2NrIGlmIHRoZSBidWZmZXIgcG9vbCBmaWxscyB1cC4AQ291bGQgbm90IG9wZW4gb3IgY3JlYXRlIHRoZSBzeXN0ZW0gdGFibGVzcGFjZS4gSWYgeW91IHRyaWVkIHRvIGFkZCBuZXcgZGF0YSBmaWxlcyB0byB0aGUgc3lzdGVtIHRhYmxlc3BhY2UsIGFuZCBpdCBmYWlsZWQgaGVyZSwgeW91IHNob3VsZCBub3cgZWRpdCBpbm5vZGJfZGF0YV9maWxlX3BhdGggaW4gbXkuY25mIGJhY2sgdG8gd2hhdCBpdCB3YXMsIGFuZCByZW1vdmUgdGhlIG5ldyBpYmRhdGEgZmlsZXMgSW5ub0RCIGNyZWF0ZWQgaW4gdGhpcyBmYWlsZWQgYXR0ZW1wdC4gSW5ub0RCIG9ubHkgd3JvdGUgdGhvc2UgZmlsZXMgZnVsbCBvZiB6ZXJvcywgYnV0IGRpZCBub3QgeWV0IHVzZSB0aGVtIGluIGFueSB3YXkuIEJ1dCBiZSBjYXJlZnVsOiBkbyBub3QgcmVtb3ZlIG9sZCBkYXRhIGZpbGVzIHdoaWNoIGNvbnRhaW4geW91ciBwcmVjaW91cyBkYXRhIQBDYW5ub3QgY3JlYXRlIHJlZG8gbG9nIGZpbGVzIGJlY2F1c2UgZGF0YSBmaWxlcyBhcmUgY29ycnVwdCBvciB0aGUgZGF0YWJhc2Ugd2FzIG5vdCBzaHV0IGRvd24gY2xlYW5seSBhZnRlciBjcmVhdGluZyB0aGUgZGF0YSBmaWxlcy4AT25seSBvbmUgcmVkbyBsb2cgZmlsZSBmb3VuZABUaGUgcmVkbyBsb2cgZmlsZSAlcyBzaXplICVsbHUgaXMgbm90IGEgbXVsdGlwbGUgb2YgaW5ub2RiX3BhZ2Vfc2l6ZQBUaGUgcmVkbyBsb2cgZmlsZSAlcyBpcyBvZiBkaWZmZXJlbnQgc2l6ZSAlbGx1IGJ5dGVzIHRoYW4gb3RoZXIgbG9nIGZpbGVzICVsbHUgYnl0ZXMhAFVzZSAtLWlubm9kYi1kaXJlY3RvcmllcyB0byBmaW5kIHRoZSB0YWJsZXNwYWNlIGZpbGVzLiBJZiB0aGF0IGZhaWxzIHRoZW4gdXNlIC0taW5ub2RiLWZvcmNlLXJlY292ZXJ5PTEgdG8gaWdub3JlIHRoaXMgYW5kIHRvIHBlcm1hbmVudGx5IGxvc2UgYWxsIGNoYW5nZXMgdG8gdGhlIG1pc3NpbmcgdGFibGVzcGFjZShzKQBUaGUgcmVkbyBsb2cgZmlsZSBtYXkgaGF2ZSBiZWVuIGNvcnJ1cHQgYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGxvZyBzY2FuIG9yIHBhcnNpbmcgZGlkIG5vdCBwcm9jZWVkIGZhciBlbm91Z2ggaW4gcmVjb3ZlcnkuIFBsZWFzZSBydW4gQ0hFQ0sgVEFCTEUgb24geW91ciBJbm5vREIgdGFibGVzIHRvIGNoZWNrIHRoYXQgdGhleSBhcmUgb2shIEl0IG1heSBiZSBzYWZlc3QgdG8gcmVjb3ZlciB5b3VyIElubm9EQiBkYXRhYmFzZSBmcm9tIGEgYmFja3VwIQBDYW5ub3QgcmVzaXplIHJlZG8gbG9nIGZpbGVzIGluIHJlYWQtb25seSBtb2RlLiBQcm92aWRlIC0taW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5ID49ICVsbHVNQiBvciBzdGFydCB3aXRob3V0IC0taW5ub2RiLXJlYWQtb25seS4AQ2Fubm90IG9wZW4gREQgdGFibGVzcGFjZS4AU3RhcnRpbmcgdG8gZGVsZXRlIGFuZCByZXdyaXRlIHJlZG8gbG9nIGZpbGVzLgBVbmRvIGZyb20gNS43IGZvdW5kLiBJdCB3aWxsIGJlIHB1cmdlZAAlcwAlcwBUYWJsZXNwYWNlIHNpemUgc3RvcmVkIGluIGhlYWRlciBpcyAlbHUgcGFnZXMsIGJ1dCB0aGUgc3VtIG9mIGRhdGEgZmlsZSBzaXplcyBpcyAlbHUgcGFnZXMAQ2Fubm90IHN0YXJ0IElubm9EQi4gVGhlIHRhaWwgb2YgdGhlIHN5c3RlbSB0YWJsZXNwYWNlIGlzIG1pc3NpbmcuIEhhdmUgeW91IGVkaXRlZCBpbm5vZGJfZGF0YV9maWxlX3BhdGggaW4gbXkuY25mIGluIGFuIGluYXBwcm9wcmlhdGUgd2F5LCByZW1vdmluZyBpYmRhdGEgZmlsZXMgZnJvbSB0aGVyZT8gWW91IGNhbiBzZXQgaW5ub2RiX2ZvcmNlX3JlY292ZXJ5PTEgaW4gbXkuY25mIHRvIGZvcmNlIGEgc3RhcnR1cCBpZiB5b3UgYXJlIHRyeWluZyB0byByZWNvdmVyIGEgYmFkbHkgY29ycnVwdCBkYXRhYmFzZS4AVGFibGVzcGFjZSBzaXplIHN0b3JlZCBpbiBoZWFkZXIgaXMgJWx1IHBhZ2VzLCBidXQgdGhlIHN1bSBvZiBkYXRhIGZpbGUgc2l6ZXMgaXMgb25seSAlbHUgcGFnZXMAQ2Fubm90IHN0YXJ0IElubm9EQi4gVGhlIHRhaWwgb2YgdGhlIHN5c3RlbSB0YWJsZXNwYWNlIGlzIG1pc3NpbmcuIEhhdmUgeW91IGVkaXRlZCBpbm5vZGJfZGF0YV9maWxlX3BhdGggaW4gbXkuY25mIGluIGFuIElubm9EQjogaW5hcHByb3ByaWF0ZSB3YXksIHJlbW92aW5nIGliZGF0YSBmaWxlcyBmcm9tIHRoZXJlPyBZb3UgY2FuIHNldCBpbm5vZGJfZm9yY2VfcmVjb3Zlcnk9MSBpbiBteS5jbmYgdG8gZm9yY2UgSW5ub0RCOiBhIHN0YXJ0dXAgaWYgeW91IGFyZSB0cnlpbmcgdG8gcmVjb3ZlciBhIGJhZGx5IGNvcnJ1cHQgZGF0YWJhc2UuACVzIHN0YXJ0ZWQ7IGxvZyBzZXF1ZW5jZSBudW1iZXIgJWxsdQBXYWl0aW5nIGZvciBwdXJnZSB0byBjb21wbGV0ZQBXYWl0aW5nIGZvciBkaWN0X3N0YXRzX3RocmVhZCB0byBleGl0AFF1ZXJ5IGNvdW50ZXIgc2hvd3MgJWxsZCBxdWVyaWVzIHN0aWxsIGluc2lkZSBJbm5vREIgYXQgc2h1dGRvd24AU2h1dGRvd24gY29tcGxldGVkOyBsb2cgc2VxdWVuY2UgbnVtYmVyICVsbHUAQ2Fubm90IGNvbnRpbnVlIG9wZXJhdGlvbi4AJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAJXMAVW5hYmxlIHRvIHJlYWQgdGhlIGV4aXN0aW5nIHVuZG8gdHJ1bmNhdGUgbG9nIGZpbGUgJyVzJy4gVGhlIGVycm9yIGlzICVzAFVuZG8gdGFibGVzcGFjZSAlcyBpcyBtYXJrZWQgZm9yIHRydW5jYXRlACVzAFRydW5jYXRpbmcgVU5ETyB0YWJsZXNwYWNlICVzACVzAENhbm5vdCBjcmVhdGUgdHJ1bmNhdGUgbG9nIGZvciB1bmRvIHRhYmxlc3BhY2UgJyVzJy4AJXMARmFpbGVkIHRvIHRydW5jYXRlIHVuZG8gdGFibGVzcGFjZSAnJXMnLgAlcwBDb21wbGV0ZWQgdHJ1bmNhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBSb2xsYmFjayBvZiBub24tcHJlcGFyZWQgdHJhbnNhY3Rpb25zIGNvbXBsZXRlZAAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBCbG9ja2VkIEhpZ2ggUHJpb3JpdHkgVHJhbnNhY3Rpb24gKElEICVsbHUsIFRocmVhZCBJRCAlcykga2lsbGVkIHRoZSBibG9ja2luZyB0cmFuc2FjdGlvbiAoSUQgJWxsdSAtICVzKSBieSByb2xsaW5nIGl0IGJhY2suACVzAGdldHRpbWVvZmRheSgpIGZhaWxlZDogJXMAQ2FuJ3QgY3JlYXRlIFVORE8gdGFibGVzcGFjZSAlcyAlcwAlcwBSZXNpemluZyByZWRvIGxvZyBmcm9tICVsbHVNIHRvICVsbHVNIChMU049JWxsdSkgc3luY2hyb25vdXNseS4gSWYgdGhpcyB0YWtlcyB0b28gbG9uZywgY29uc2lkZXIgc3RhcnRpbmcgdGhlIHNlcnZlciB3aXRoIGxhcmdlIC0taW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LCBhbmQgcmVzaXppbmcgdGhlIHJlZG8gbG9nIG9ubGluZSB1c2luZyBTRVQuACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAE91dCBvZiBzcGFjZSBpbiB0aGUgcmVkbyBsb2cuIENoZWNrcG9pbnQgTFNOOiAlbGx1LiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4AJXMATG9nIHdyaXRlciB3YWl0ZWQgdG9vIGxvbmcgZm9yIHJlZG8tYXJjaGl2ZXIgdG8gYWR2YW5jZSAoMSBzZWNvbmQpLiBUaGVyZSBhcmUgdW5hcmNoaXZlZDogJWxsdSBieXRlcy4gQXJjaGl2ZXIgTFNOOiAlbGx1LiBBYm9ydGVkIHRoZSByZWRvLWFyY2hpdmVyLiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4ATG9nIHdyaXRlciBpcyB3YWl0aW5nIGZvciByZWRvLWFyY2hpdmVyIHRvIGNhdGNoIHVwIHVuYXJjaGl2ZWQ6ICVsbHUgYnl0ZXMuIEFyY2hpdmVyIExTTjogJWxsdS4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuACVzACVzACVzACVzAENhbid0IHNldCByZWRvIGxvZyBmaWxlcyB0byBiZSBlbmNyeXB0ZWQgaW4gcmVhZC1vbmx5IG1vZGUuAENhbid0IHNldCByZWRvIGxvZyBmaWxlcyB0byBiZSBlbmNyeXB0ZWQuAENhbid0IHNldCByZWRvIGxvZyB0YWJsZXNwYWNlIHRvIGJlIGVuY3J5cHRlZC4AUmVkbyBsb2cgZW5jcnlwdGlvbiBpcyBlbmFibGVkLgBXYWl0aW5nIGZvciBhcmNoaXZlciB0byBmaW5pc2ggYXJjaGl2aW5nIHBhZ2UgYW5kIGxvZwBTdGFydGluZyBzaHV0ZG93bi4uLgBXYWl0aW5nIGZvciAlcyB0byBleGl0LgBXYWl0aW5nIGZvciByb2xsYmFjayBvZiAlenUgcmVjb3ZlcmVkIHRyYW5zYWN0aW9ucywgYmVmb3JlIHNodXRkb3duLgBXYWl0aW5nIGZvciBtYXN0ZXIgdGhyZWFkIHRvIGJlIHN1c3BlbmRlZC4AV2FpdGluZyBmb3IgcGFnZV9jbGVhbmVyIHRvIGZpbmlzaCBmbHVzaGluZyBvZiBidWZmZXIgcG9vbC4AU2h1dGRvd24gaXMgd2FpdGluZyBmb3IgJXp1IGJ1ZmZlciBwYWdlIEkvT3MgdG8gY29tcGxldGUuAE15U1FMIGhhcyByZXF1ZXN0ZWQgYSB2ZXJ5IGZhc3Qgc2h1dGRvd24gd2l0aG91dCBmbHVzaGluZyB0aGUgSW5ub0RCIGJ1ZmZlciBwb29sIHRvIGRhdGEgZmlsZXMuIEF0IHRoZSBuZXh0IG15c3FsZCBzdGFydHVwIElubm9EQiB3aWxsIGRvIGEgY3Jhc2ggcmVjb3ZlcnkhACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAEludmFsaWQgcmVkbyBsb2cgaGVhZGVyIGNoZWNrc3VtLgBVbnN1cHBvcnRlZCByZWRvIGxvZyBmb3JtYXQgKHYlbHUpLiBUaGUgcmVkbyBsb2cgd2FzIGNyZWF0ZWQgYmVmb3JlIE15U1FMIDUuNy45ACVzAENhbm5vdCBjb250aW51ZSBvcGVyYXRpb24uIFRoZSBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHk9JWxsdU0gaXMgdG9vIHNtYWxsIGZvciB0aGUgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeT0lbHUuIFRoZSBjYXBhY2l0eSBvZiByZWRvIHNob3VsZCBiZSA+PSAlbGx1TS4gVG8gZ2V0IG15c3FsZCBydW5uaW5nLCBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSB0byBhIHNtYWxsZXIgdmFsdWUgb3IgaW5jcmVhc2UgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LiAlcwAlcwAlcwBVc2VyIGhhcyBzZXQgaW5ub2RiX3RocmVhZF9jb25jdXJyZW5jeSB0byAlbHUuAFNUT1AgUkVQTElDQSBjb21tYW5kIGV4ZWN1dGlvbiBpcyBpbmNvbXBsZXRlOiBSZXBsaWNhIFNRTCB0aHJlYWQgZ290IHRoZSBzdG9wIHNpZ25hbCwgdGhyZWFkIGlzIGJ1c3ksIFNRTCB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU1RPUCBSRVBMSUNBIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGluY29tcGxldGU6IFJlcGxpY2EgSU8gdGhyZWFkIGdvdCB0aGUgc3RvcCBzaWduYWwsIHRocmVhZCBpcyBidXN5LCBJTyB0aHJlYWQgd2lsbCBzdG9wIG9uY2UgdGhlIGN1cnJlbnQgdGFzayBpcyBjb21wbGV0ZS4AU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IFVwZGF0ZXMgdG8gbm9uLXRyYW5zYWN0aW9uYWwgdGFibGVzIGNhbiBvbmx5IGJlIGRvbmUgaW4gZWl0aGVyIGF1dG9jb21taXR0ZWQgc3RhdGVtZW50cyBvciBzaW5nbGUtc3RhdGVtZW50IHRyYW5zYWN0aW9ucywgYW5kIG5ldmVyIGluIHRoZSBzYW1lIHN0YXRlbWVudCBhcyB1cGRhdGVzIHRvIHRyYW5zYWN0aW9uYWwgdGFibGVzLgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRBQkxFIC4uLiBTRUxFQ1QuAFN0YXRlbWVudCB2aW9sYXRlcyBHVElEIGNvbnNpc3RlbmN5OiBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIGFuZCBEUk9QIFRFTVBPUkFSWSBUQUJMRSBjYW4gb25seSBiZSBleGVjdXRlZCBvdXRzaWRlIHRyYW5zYWN0aW9uYWwgY29udGV4dC4gIFRoZXNlIHN0YXRlbWVudHMgYXJlIGFsc28gbm90IGFsbG93ZWQgaW4gYSBmdW5jdGlvbiBvciB0cmlnZ2VyIGJlY2F1c2UgZnVuY3Rpb25zIGFuZCB0cmlnZ2VycyBhcmUgYWxzbyBjb25zaWRlcmVkIHRvIGJlIG11bHRpLXN0YXRlbWVudCB0cmFuc2FjdGlvbnMuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucz0lLjE5MnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB1cGRhdGVzIHdpbGwgYmUgd3JpdHRlbiBpbiBmdWxsIGZvcm1hdCB0byBiaW5hcnkgbG9nLgBXaGVuICUuMTkycywgdGhlIG9wdGlvbiBsb2dfYmluX3VzZV92MV9yb3dfZXZlbnRzPTEgd2lsbCBiZSBpZ25vcmVkIGFuZCByb3cgZXZlbnRzIHdpbGwgYmUgd3JpdHRlbiBpbiBuZXcgZm9ybWF0IHRvIGJpbmFyeSBsb2cuAFdoZW4gJS4xOTJzLCB0aGUgb3B0aW9uIGJpbmxvZ19yb3dfdmFsdWVfb3B0aW9ucz0lLjE5MnMgd2lsbCBiZSB1c2VkIG9ubHkgZm9yIHRoZSBhZnRlci1pbWFnZS4gRnVsbCB2YWx1ZXMgd2lsbCBiZSB3cml0dGVuIGluIHRoZSBiZWZvcmUtaW1hZ2UsIHNvIHRoZSBzYXZpbmcgaW4gZGlzayBzcGFjZSBkdWUgdG8gYmlubG9nX3Jvd192YWx1ZV9vcHRpb25zIGlzIGxpbWl0ZWQgdG8gbGVzcyB0aGFuIDUwJSUuAEFib3J0ZWQgY29ubmVjdGlvbiAldSB0byBkYjogJyUtLjE5MnMnIHVzZXI6ICclLS40OHMnIGhvc3Q6ICclLS4yNTVzJyAoJS0uNjRzKS4AJXM6IE5vcm1hbCBzaHV0ZG93bi4AQ2FuIG5vdCBwZXJmb3JtIGtleXJpbmcgbWlncmF0aW9uIDogJXMuAFRoZSBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyBvcHRpb24gdmFsdWUgJyV1JyBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAgJyV1Jy4gVGhlIG1lbWJlciB3aWxsIG5vdyBleGl0IHRoZSBncm91cC4gSWYgdGhlcmUgaXMgZXhpc3RpbmcgZGF0YSBvbiBtZW1iZXIsIGl0IG1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBncm91cCBpZiBpdCB3YXMgY3JlYXRlZCB3aXRoIGEgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZ3JvdXAuAEFuIG91dC1vZi1tZW1vcnkgZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nIHRoZSBzZXQgb2YgR1RJRHMgZnJvbSB0aGUgbGFzdCBiaW5hcnkgbG9nIGludG8gdGhlIG15c3FsLmd0aWRfZXhlY3V0ZWQgdGFibGUAVGhlIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgc2V0dGluZyBmb3IgdGhlIGRhdGEgZGljdGlvbmFyeSB3YXMgbm90IGZvdW5kLiBTdGFydGluZyB0aGUgc2VydmVyIHVzaW5nIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAnJXUnLgBBIGNhcHR1cmUgZ3JvdXAgaGFzIGFuIGludmFsaWQgbmFtZS4AVmFyaWFibGUgJyUtLjY0cycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnJS0uMjAwcycAU3RvcHBpbmcgc2VydmljZXMgZmFpbGVkIHdpdGggZXJyb3IgIiVzIgBRdWVyeSBjYXVzZWQgZGlmZmVyZW50IGVycm9ycyBvbiBzb3VyY2UgYW5kIHJlcGxpY2EuIEVycm9yIG9uIHNvdXJjZTogbWVzc2FnZSAoZm9ybWF0KT0nJXMnIGVycm9yIGNvZGU9JWQ7IEVycm9yIG9uIHJlcGxpY2E6YWN0dWFsIG1lc3NhZ2U9JyVzJywgZXJyb3IgY29kZT0lZC4gRGVmYXVsdCBkYXRhYmFzZTonJXMnLiBRdWVyeTonJXMnAEdvdCBmYXRhbCBlcnJvciAlZCBmcm9tIHNvdXJjZSB3aGVuIHJlYWRpbmcgZGF0YSBmcm9tIGJpbmFyeSBsb2c6ICclLS41MTJzJwBSZXBsaWNhdGlvbiBldmVudCBjaGVja3N1bSB2ZXJpZmljYXRpb24gZmFpbGVkIHdoaWxlIHJlYWRpbmcgZnJvbSBuZXR3b3JrLgBGYWlsZWQgdG8gY3JlYXRlICVzAEZhdGFsIGVycm9yOiAlcwBVbmV4cGVjdGVkIHNvdXJjZSdzIGhlYXJ0YmVhdCBkYXRhOiAlcwBUaGUgaW5jaWRlbnQgJXMgb2NjdXJyZWQgb24gdGhlIHNvdXJjZS4gTWVzc2FnZTogJXMAU291cmNlIGNvbW1hbmQgJXMgZmFpbGVkOiAlcwBSZWxheSBsb2cgcmVhZCBmYWlsdXJlOiAlcwBSZWxheSBsb2cgd3JpdGUgZmFpbHVyZTogJXMAUmVwbGljYSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBjb25uZWN0aW9uIG1ldGFkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSByZXBvc2l0b3J5AFJlcGxpY2EgZmFpbGVkIHRvIGluaXRpYWxpemUgYXBwbGllciBtZXRhZGF0YSBzdHJ1Y3R1cmUgZnJvbSB0aGUgcmVwb3NpdG9yeQBHb3QgYSBwYWNrZXQgYmlnZ2VyIHRoYW4gJ21heF9hbGxvd2VkX3BhY2tldCcgYnl0ZXMAQWNjZXNzIHRvICUuNjRzICclLjY0cy4lLjY0cycgaXMgcmVqZWN0ZWQuAFVua25vd24gZXJyb3IAVW5rbm93biBzeXN0ZW0gdmFyaWFibGUgJyUtLjY0cycAQSBtZXNzYWdlIGludGVuZGVkIGZvciBhIGNsaWVudCBjYW5ub3QgYmUgc2VudCB0aGVyZSBhcyBubyBjbGllbnQtc2Vzc2lvbiBpcyBhdHRhY2hlZC4gVGhlcmVmb3JlLCB3ZSdyZSBzZW5kaW5nIHRoZSBpbmZvcm1hdGlvbiB0byB0aGUgZXJyb3ItbG9nIGluc3RlYWQ6IE1ZLSUwNmQgLSAlcwBBYm9ydGVkIGNvbm5lY3Rpb24gJXUgdG8gZGI6ICclLS4xOTJzJyB1c2VyOiAnJS0uNDhzJyBob3N0OiAnJS0uMjU1cycgKCUtLjY0czsgZGlhZ25vc3RpY3MgYXJlYTogTVktJTA2ZCAtICUtLjY0cykAT3V0IG9mIHNvcnQgbWVtb3J5LCBjb25zaWRlciBpbmNyZWFzaW5nIHNlcnZlciBzb3J0IGJ1ZmZlciBzaXplIQBUaGUgdGFibGUgJyUtLjE5MnMnIGlzIGZ1bGwhAENyZWF0ZSB0YWJsZS90YWJsZXNwYWNlICclLS4xOTJzJyBmYWlsZWQsIGFzIGRpc2sgaXMgZnVsbC4ASGFuZGxlciByZXBvcnRlZCBlcnJvciAlZCAtICVzAEluY29ycmVjdCBpbmZvcm1hdGlvbiBpbiBmaWxlOiAnJS0uMjAwcycAQ2FuJ3Qgb3BlbiBmaWxlOiAnJS0uMjAwcycgKE9TIGVycm5vOiAlZCAtICVzKQBDYW4ndCBmaW5kIGZpbGU6ICclLS4yMDBzJyAoT1MgZXJybm86ICVkIC0gJXMpACclLS4xOTJzJyBpcyBsb2NrZWQgYWdhaW5zdCBjaGFuZ2UgKE9TIGVycm5vOiAlZCAtICVzKQBDYW5ub3QgbG9hZCBmcm9tICVzLiVzLiBUaGUgdGFibGUgaXMgcHJvYmFibHkgY29ycnVwdGVkIQBFcnJvciBpbiBkaWFnbm9zdGljcyBhcmVhOiBNWS0lMDZkIC0gJXMASW5jb3JyZWN0IGRlZmluaXRpb24gb2YgdGFibGUgJXMuJXM6IGV4cGVjdGVkIGNvbHVtbiAnJXMnIGF0IHBvc2l0aW9uICVkLCBmb3VuZCAnJXMnLgBUaGUgY29sdW1uIGNvdW50IG9mICVzLiVzIGlzIHdyb25nLiBFeHBlY3RlZCAlZCwgZm91bmQgJWQuIENyZWF0ZWQgd2l0aCBNeVNRTCAlZCwgbm93IHJ1bm5pbmcgJWQuIFBsZWFzZSBwZXJmb3JtIHRoZSBNeVNRTCB1cGdyYWRlIHByb2NlZHVyZS4AQ29sdW1uIGNvdW50IG9mICVzLiVzIGlzIHdyb25nLiBFeHBlY3RlZCAlZCwgZm91bmQgJWQuIFRoZSB0YWJsZSBpcyBwcm9iYWJseSBjb3JydXB0ZWQAIgBSZXBsaWNhIFNRTCB0aHJlYWQgYWJvcnRlZC4gQ2FuJ3QgZXhlY3V0ZSBpbml0X3JlcGxpY2EgcXVlcnksIE1ZLSUwNmQgLSAnJXMnAENvbHVtbiAlZCBvZiB0YWJsZSAnJS0uMTkycy4lLS4xOTJzJyBjYW5ub3QgYmUgY29udmVydGVkIGZyb20gdHlwZSAnJS0uMzJzJyB0byB0eXBlICclLS4zMnMnAFJlcGxpY2EgU1FMIHRocmVhZCBpZ25vcmVkIHRoZSBxdWVyeSBiZWNhdXNlIG9mIHJlcGxpY2F0ZS0qLXRhYmxlIHJ1bGVzAENhbm5vdCByZXBsaWNhdGUgYW5vbnltb3VzIHRyYW5zYWN0aW9uIHdoZW4gQVVUT19QT1NJVElPTiA9IDEsIGF0IGZpbGUgJS40MDBzLCBwb3NpdGlvbiAlbGxkLgBDYW5ub3QgcmVwbGljYXRlIGFub255bW91cyB0cmFuc2FjdGlvbiB3aGVuIEBAR0xPQkFMLkdUSURfTU9ERSA9IE9OLCBhdCBmaWxlICUuNDAwcywgcG9zaXRpb24gJWxsZC4AQ2Fubm90IHJlcGxpY2F0ZSBHVElELXRyYW5zYWN0aW9uIHdoZW4gQEBHTE9CQUwuR1RJRF9NT0RFID0gT0ZGLCBhdCBmaWxlICUuNDAwcywgcG9zaXRpb24gJWxsZC4AU2ltdWxhdGVkIGVycm9yACVzAEF1ZGl0IExvZyBmaWx0ZXJpbmcgaGFzIG5vdCBiZWVuIGluc3RhbGxlZC4ARmFpbGVkIHRvIG9wZW4gdGhlICVzIGZpbHRlciB0YWJsZXMuAEZhaWxlZCB0byBvcGVuICclcy4lcycgJXMgdGFibGUuAEZpbHRlciBuYW1lIGNhbm5vdCBiZSBlbXB0eS4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gdGhlIHVzZXIgbmFtZS4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJXMnQCclcycuIFNVUEVSIG9yIEFVRElUX0FETUlOIG5lZWRlZCB0byBwZXJmb3JtIG9wZXJhdGlvbgBObyBrZXlyaW5nIGluc3RhbGxlZC4ASW52YWxpZCBjaGFyYWN0ZXIgaW4gdGhlIGhvc3QgbmFtZS4AQXVkaXQgbG9nIGVuY3J5cHRpb24gcGFzc3dvcmQgaGFzIG5vdCBiZWVuIHNldDsgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gVXNlIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX2dldCB0byBvYnRhaW4gdGhlIHBhc3N3b3JkIG9yIGF1ZGl0X2xvZ19lbmNyeXB0aW9uX3Bhc3N3b3JkX3NldCB0byBzZXQgYSBuZXcgb25lLgBDb3VsZCBub3QgY3JlYXRlIEFFUyBrZXkuIE9wZW5TU0wncyBFVlBfQnl0ZXNUb0tleSBmdW5jdGlvbiBmYWlsZWQuAEF1ZGl0IGxvZyBlbmNyeXB0aW9uIHBhc3N3b3JkIGNhbm5vdCBiZSBmZXRjaGVkIGZyb20gdGhlIGtleXJpbmcuIFBhc3N3b3JkIHVzZWQgc28gZmFyIGlzIHVzZWQgZm9yIGVuY3J5cHRpb24uAENvdWxkIG5vdCByZWluaXRpYWxpemUgYXVkaXQgbG9nIGZpbHRlcnMuAFVzZXIgY2Fubm90IGJlIGVtcHR5LgBGaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHVzZXIgbmFtZSBtdXN0IGJlIGFscGhhbnVtZXJpYy4AU3BlY2lmaWVkIGZpbHRlciBoYXMgbm90IGJlZW4gZm91bmQuAENhbm5vdCB1cGdyYWRlIHNlcnZlciBlYXJsaWVyIHRoYW4gNS43IHRvIDguMAAlcyAobXlzcWxkICVzKSBpbml0aWFsaXppbmcgb2Ygc2VydmVyIGluIHByb2dyZXNzIGFzIHByb2Nlc3MgJWx1ACVzIChteXNxbGQgJXMpIGluaXRpYWxpemluZyBvZiBzZXJ2ZXIgaGFzIGNvbXBsZXRlZABDYW5ub3QgYm9vdCBzZXJ2ZXIgdmVyc2lvbiAlbHUgb24gZGF0YSBkaXJlY3RvcnkgYnVpbHQgYnkgdmVyc2lvbiAlbGx1LiBEb3duZ3JhZGUgaXMgbm90IHN1cHBvcnRlZABSZWNlaXZlZCBTSFVURE9XTiBmcm9tIHVzZXIgJXMuIFNodXR0aW5nIGRvd24gbXlzcWxkIChWZXJzaW9uOiAlcykuAFRoZSBwbHVnaW4gZW5jb3VudGVyZWQgYSBjcml0aWNhbCBlcnJvciBhbmQgd2lsbCBhYm9ydDogJXMASW52YWxpZCBtYXRjaCBtb2RlIGZsYWcgaW4gcmVndWxhciBleHByZXNzaW9uLgBUaGUgdXNlIG9mIHJlcGxpY2F0aW9uIGZpbHRlcnMgd2l0aCBYQSB0cmFuc2FjdGlvbnMgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGNhbiBsZWFkIHRvIGFuIHVuZGVmaW5lZCBzdGF0ZSBpbiB0aGUgcmVwbGljYS4AQ2Fubm90IHVwZGF0ZSBHVElEX1BVUkdFRCB3aXRoIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBwbHVnaW4gcnVubmluZwAnJXMuJXMnIHRhYmxlIGRlZmluaXRpb24gaGFzIG5vdCBiZWVuIHVwZ3JhZGVkOyBQbGVhc2UgcGVyZm9ybSB0aGUgTXlTUUwgdXBncmFkZSBwcm9jZWR1cmUuAEV4ZWN1dGlvbiBvZiBzZXJ2ZXItc2lkZSBTUUwgc3RhdGVtZW50ICclcycgZmFpbGVkIHdpdGggZXJyb3IgY29kZSA9ICVkLCBlcnJvciBtZXNzYWdlID0gJyVzJy4ATm8gcGF0aHMgYWxsb3dlZCBmb3Igc2hhcmVkIGxpYnJhcnkuAEZ1bmN0aW9uICclLS4xOTJzJyBhbHJlYWR5IGV4aXN0cy4AR290IEVycm9yOiAlbGQgZnJvbSBTZXRFdmVudC4ARXJyb3IgYWxsb2NhdGluZyBTU0wgQklPLgAlcwBPbmUgb3Igc2V2ZXJhbCBsb2NhdGlvbnMgd2VyZSBpbmFjY2Vzc2libGUgd2hpbGUgY2hlY2tpbmcgUElEIGZpbGVwYXRoLgBDdXJyZW50bHkgdW5rbm93biB2YXJpYWJsZSAnJXMnIHdhcyByZWFkIGZyb20gdGhlIHBlcnNpc3RlZCBjb25maWcgZmlsZS4ARmF0YWwgZXJyb3IgaW4gZGVmYXVsdHMgaGFuZGxpbmcuIFByb2dyYW0gYWJvcnRlZCEARHVwbGljYXRlIHZhcmlhYmxlIG5hbWUgJyVzJy4ARmFpbGVkIHRvIGluaXRpYWxpemUgc3lzdGVtIHZhcmlhYmxlcy4AVmFyaWFibGUgbmFtZSAnJXMnIG5vdCBmb3VuZC4AU29tZSAoJWQpIHRocmVhZHMgYXJlIHN0aWxsIGFjdGl2ZQAlcwBTb3VyY2UgdGFibGVzcGFjZSBpcyBlbmNyeXB0ZWQgYnV0IHRhcmdldCB0YWJsZXNwYWNlIGlzIG5vdC4AV2FpdGluZyBmb3IgdGFibGVzcGFjZV9hbHRlcl9lbmNyeXB0X3RocmVhZCB0byBleGl0ACVzACVzACVzACVzACVzACVzACVzACVzACVzOiBDb3VsZCBub3QgYWRkIHN1cHByZXNzaW9uIHJ1bGUgZm9yIGNvZGUgIiVzIi4gUnVsZS1zZXQgbWF5IGJlIGZ1bGwsIG9yIGNvZGUgbWF5IG5vdCBjb3JyZXNwb25kIHRvIGFuIGVycm9yLWxvZyBtZXNzYWdlLgBJbnZhbGlkIHZhbHVlIGZvciBjb21tYW5kIGxpbmUgb3B0aW9uIGJpbmQtYWRkcmVzc2VzOiAnJXMnAElnbm9yaW5nIHRoZSBAQGdsb2JhbC5yZWxheV9sb2dfc3BhY2VfbGltaXQgb3B0aW9uIGJlY2F1c2UgQEBnbG9iYWwucmVsYXlfbG9nX3B1cmdlIGlzIGRpc2FibGVkLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgR1RJRCBleGVjdXRpb24gaW5mb3JtYXRpb246ICVzAE1lc3NhZ2UgcmVjZWl2ZWQgd2l0aG91dCBhIHByb3BlciBncm91cCBjb29yZGluYXRvciBtb2R1bGUuAEEgbWVtYmVyIGNhbm5vdCBqb2luIHRoZSBncm91cCB3aGlsZSBhIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgaXMgcnVubmluZyBpbml0aWF0ZWQgYnkgJyVzJy4AQSBtZW1iZXIgaXMgam9pbmluZyB0aGUgZ3JvdXAgd2hpbGUgYSBncm91cCBjb25maWd1cmF0aW9uIG9wZXJhdGlvbiAnJXMnIGlzIHJ1bm5pbmcgaW5pdGlhdGVkIGJ5ICclcycuIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBDYW4ndCBzdGFydCAlcyBmb3IgY2hhbm5lbCAnJXMnIHdoZW4gZ3JvdXAgcmVwbGljYXRpb24gaXMgcnVubmluZyBhIGdyb3VwIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgaW5pdGlhdGVkIGJ5ICclcycuAEEgcHJpbWFyeSBlbGVjdGlvbiB3YXMgaW52b2tlZCBidXQgdGhlIHJlcXVlc3RlZCBwcmltYXJ5IG1lbWJlciBpcyBub3QgaW4gdGhlIGdyb3VwLiBSZXF1ZXN0IGlnbm9yZWQuAEVycm9yIHdoaWxlIHNlbmRpbmcgbWVzc2FnZS4gQ29udGV4dDogJXMARXJyb3Igd2hpbGUgZXhlY3V0aW5nIGEgZ3JvdXAgY29uZmlndXJhdGlvbiBvcGVyYXRpb246ICVzAENvbmZpZ3VyYXRpb24gb3BlcmF0aW9uICclcycgdGVybWluYXRlZC4gJXMAU3RhcnRpbmcgZ3JvdXAgb3BlcmF0aW9uIGxvY2FsIGV4ZWN1dGlvbjogJXMAVGVybWluYXRpb24gb2YgZ3JvdXAgb3BlcmF0aW9uIGxvY2FsIGV4ZWN1dGlvbjogJXMAQSBjb25maWd1cmF0aW9uIGNoYW5nZSB3YXMga2lsbGVkIGluIHRoaXMgbWVtYmVyLiBUaGUgbWVtYmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cCBhcyBpdHMgY29uZmlndXJhdGlvbiBtYXkgaGF2ZSBkaXZlcmdlZC4AVGhlcmUgd2FzIGFuIGlzc3VlIG9uIHRoZSBwcmltYXJ5IGVsZWN0aW9uIHByb2Nlc3M6ICVzIFRoZSBtZW1iZXIgd2lsbCBub3cgbGVhdmUgdGhlIGdyb3VwLgBUaGVyZSB3YXMgYW4gaXNzdWUgd2hlbiBzdG9wcGluZyBhIHByZXZpb3VzIGVsZWN0aW9uIHByb2Nlc3M6ICVzAEl0IHdhcyBub3QgcG9zc2libGUgdG8gaW5pdGlhbGl6ZSBzdGFnZSBsb2dnaW5nIGZvciB0aGlzIHRhc2suIFRoZSBvcGVyYXRpb24gd2lsbCBzdGlsbCBydW4gd2l0aG91dCBzdGFnZSB0cmFja2luZy4AQ291bGQgbm90IGV4ZWN1dGUgdGhlIGluc3RhbGxhdGlvbiBvZiBHcm91cCBSZXBsaWNhdGlvbiBVREYgZnVuY3Rpb246ICVzLiBDaGVjayBpZiB0aGUgZnVuY3Rpb24gaXMgYWxyZWFkeSBwcmVzZW50LCBpZiBzbywgdHJ5IHRvIHJlbW92ZSBpdABDb3VsZCBub3QgdW5pbnN0YWxsIEdyb3VwIFJlcGxpY2F0aW9uIFVERiBmdW5jdGlvbnMuIFRyeSB0byByZW1vdmUgdGhlbSBtYW51YWxseSBpZiBwcmVzZW50LgBDb3VsZCBub3QgZXhlY3V0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIEdyb3VwIFJlcGxpY2F0aW9uIFVERiBmdW5jdGlvbnMuIENoZWNrIGZvciBvdGhlciBlcnJvcnMgaW4gdGhlIGxvZyBhbmQgdHJ5IHRvIHJlaW5zdGFsbCB0aGUgcGx1Z2luAFRoZSBmdW5jdGlvbiAnJXMnIGZhaWxlZC4gJXMARG8gbm90IHNwZWNpZnkgdGhlIGN1cnJlbnQgcGFzc3dvcmQgd2hpbGUgY2hhbmdpbmcgaXQgZm9yIG90aGVyIHVzZXJzLgBJbmNvcnJlY3QgY3VycmVudCBwYXNzd29yZC4gU3BlY2lmeSB0aGUgY29ycmVjdCBwYXNzd29yZCB3aGljaCBoYXMgdG8gYmUgcmVwbGFjZWQuAEN1cnJlbnQgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBSRVBMQUNFIGNsYXVzZSBpbiBvcmRlciB0byBjaGFuZ2UgaXQuAFZhcmlhYmxlICclLS42NHMnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJyUtLjIwMHMnACVzIHdhcyB1bmFibGUgdG8gY3JlYXRlIGEgbmV3IFdpbmRvd3MgcmVnaXN0cnkga2V5ICVzIGZvciAlczsgY29udGludWluZyB0byB1c2UgdGhlIHByZXZpb3VzIGlkZW50LgBTdGF0ZW1lbnQgdmlvbGF0ZXMgR1RJRCBjb25zaXN0ZW5jeTogQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBhbmQgRFJPUCBURU1QT1JBUlkgVEFCTEUgYXJlIG5vdCBhbGxvd2VkIGluc2lkZSBhIHRyYW5zYWN0aW9uIG9yIGluc2lkZSBhIHByb2NlZHVyZSBpbiBhIHRyYW5zYWN0aW9uYWwgY29udGV4dCB3aGVuIEBAc2Vzc2lvbi5iaW5sb2dfZm9ybWF0PVNUQVRFTUVOVC4AU2Vjb25kYXJ5IGVuZ2luZSBvcGVyYXRpb24gZmFpbGVkLiAlcy4ARERMcyBvbiBhIHRhYmxlIHdpdGggYSBzZWNvbmRhcnkgZW5naW5lIGRlZmluZWQgYXJlIG5vdCBhbGxvd2VkLgBVbmFibGUgdG8gYWxsb2NhdGUgdGVtcG9yYXJ5IHRhYmxlc3BhY2UgZm9yIHRoaXMgc2Vzc2lvbgBVbmFibGUgdG8gc3dpdGNoIHNlY3VyaXR5IGNvbnRleHQgdG8gdXNlcjogJXMAU3RhdGVtZW50IHZpb2xhdGVzIEdUSUQgY29uc2lzdGVuY3k6IEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OIC4uIHdpdGggZXhwcmVzc2lvbiBhcyBERUZBVUxULgBFcnJvciBpbiBwYXJzaW5nICVzICclcycuJyVzJyBkdXJpbmcgdXBncmFkZS4gJXMAVGhlIGRlc2lnbmF0ZWQgZGF0YSBkaXJlY3RvcnkgJXMgaXMgdW51c2FibGUuIFlvdSBjYW4gcmVtb3ZlIGFsbCBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWRkZWQgdG8gaXQuAEdyb3VwIHNlYXJjaCByZWJpbmRpbmcgdmlhIHJvb3QgRE46ICVzIABFcnJvciBpbnN0YWxsaW5nIHBsdWdpbiAnJXMnOiAlcwBFcnJvciB1bmluc3RhbGxpbmcgcGx1Z2luICclcyc6ICVzAFBhcnRpdGlvbmVkIHRhYmxlICclcycgaXMgbm90IGFsbG93ZWQgdG8gdXNlIHNoYXJlZCB0YWJsZXNwYWNlICclcycuIFBsZWFzZSBtb3ZlIGFsbCBwYXJ0aXRpb25zIHRvIGZpbGUtcGVyLXRhYmxlIHRhYmxlc3BhY2VzIGJlZm9yZSB1cGdyYWRlLgBDYW5ub3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIHRoZSB0YWJsZXNwYWNlIG5hbWVkICclcycuACVzOiAndXRmOCcgaXMgY3VycmVudGx5IGFuIGFsaWFzIGZvciB0aGUgY2hhcmFjdGVyIHNldCBVVEY4TUIzLCBidXQgd2lsbCBiZSBhbiBhbGlhcyBmb3IgVVRGOE1CNCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBQbGVhc2UgY29uc2lkZXIgdXNpbmcgVVRGOE1CNCBpbiBvcmRlciB0byBiZSB1bmFtYmlndW91cy4AJXM6IFRoZSBjaGFyYWN0ZXIgc2V0IFVURjhNQjMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IGluc3RlYWQuACVzOiAnJS0uNjRzJyBpcyBhIGNvbGxhdGlvbiBvZiB0aGUgZGVwcmVjYXRlZCBjaGFyYWN0ZXIgc2V0IFVURjhNQjMuIFBsZWFzZSBjb25zaWRlciB1c2luZyBVVEY4TUI0IHdpdGggYW4gYXBwcm9wcmlhdGUgY29sbGF0aW9uIGluc3RlYWQuAFRoZSBTU0wgbGlicmFyeSBmdW5jdGlvbiAlcyBmYWlsZWQuIFRoaXMgaXMgdHlwaWNhbGx5IGNhdXNlZCBieSB0aGUgU1NMIGxpYnJhcnkgYWxyZWFkeSBiZWluZyB1c2VkLiBBcyBhIHJlc3VsdCB0aGUgU1NMIG1lbW9yeSBhbGxvY2F0aW9uIHdpbGwgbm90IGJlIGluc3RydW1lbnRlZC4ARGlzYWJsaW5nIEBAY29yZV9maWxlIGJlY2F1c2UgQEBpbm5vZGJfYnVmZmVyX3Bvb2xfaW5fY29yZV9maWxlIGlzIGRpc2FibGVkLCB5ZXQgTUFEVl9ET05URFVNUCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0ARGlzYWJsaW5nIEBAY29yZV9maWxlIGJlY2F1c2UgQEBpbm5vZGJfYnVmZmVyX3Bvb2xfaW5fY29yZV9maWxlIGlzIGRpc2FibGVkLCB5ZXQgbWFkdmlzZSglcCwlenUsJXMpIGZhaWxlZCB3aXRoICVzAENvdWxkIG5vdCBjaGFuZ2UgY29sdW1uICclcycgb2YgdGFibGUgJyVzJy4gVGhlIHJlc3VsdGluZyBzaXplIG9mIGluZGV4ICclcycgd291bGQgZXhjZWVkIHRoZSBtYXgga2V5IGxlbmd0aCBvZiAlZCBieXRlcy4Ac3FsX21vZGU9MHglMDh4IGhhcyBiZWVuIHJlbW92ZWQgYW5kIHdpbGwgYmUgaWdub3JlZABGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBhIHBvb2wgb2Ygc2l6ZSAlenUgYnl0ZXMuIFdpbGwgd2FpdCBmb3IgJXp1IHNlY29uZHMgZm9yIGEgdGhyZWFkIHRvIGZyZWUgYSByZXNvdXJjZS4ATnVtYmVyIG9mIHBvb2xzOiAlenUAVXNpbmcgdW5kbyB0YWJsZXNwYWNlICclcycuACVzIFVuYWJsZSB0byBzYXZlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRhYmxlc3BhY2UgJyVzJyB0byB0aGUgZGF0YSBkaWN0aW9uYXJ5AENhbm5vdCBjcmVhdGUgdW5kbyB0YWJsZXNwYWNlICVzIGF0ICVzIGJlY2F1c2UgJWQgdW5kbyB0YWJsZXNwYWNlcyBhbHJlYWR5IGV4aXN0LgBFcnJvciAlZCBvcGVuaW5nIG5ld2x5IGNyZWF0ZWQgdW5kbyB0YWJsZXNwYWNlICVzLgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX0JVRl9FUlJPUgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX01FTV9FUlJPUgBTREkgQ29tcHJlc3Npb24gZmFpbGVkLCBaX1NUUkVBTV9FUlJPUgAlcwBFeHBlY3RlZCB0byBmaW5kIHVuZG8gdGFibGVzcGFjZSAnJXMnIGZvciBTcGFjZSBJRD0lbHUsIGJ1dCBmb3VuZCAnJXMnIGluc3RlYWQhICBEaWQgeW91IGNoYW5nZSBpbm5vZGJfdW5kb19kaXJlY3Rvcnk/AENhbm5vdCB1c2UgJXMgYXMgYW4gdW5kbyB0YWJsZXNwYWNlIGJlY2F1c2UgaXQgZG9lcyBub3QgZW5kIHdpdGggJy5pYnUnLgBpYl91bmRvX3RydW5jX2VtcHR5X2ZpbGUAaWJfdW5kb190cnVuY19iZWZvcmVfZGRfdXBkYXRlAGliX3VuZG9fdHJ1bmNfYmVmb3JlX2RvbmVfbG9nZ2luZwBpYl91bmRvX3RydW5jX2JlZm9yZV9yc2VncwAlcyBGYWlsZWQgdG8gZmluaXNoIHRydW5jYXRpbmcgVW5kbyBUYWJsZXNwYWNlICclcycAVGhlIHNldHRpbmcgSU5OT0RCX1VORE9fVEFCTEVTUEFDRVMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgbm8gbG9uZ2VyIHVzZWQuICBJbm5vREIgYWx3YXlzIGNyZWF0ZXMgMiB1bmRvIHRhYmxlc3BhY2VzIHRvIHN0YXJ0IHdpdGguIElmIHlvdSBuZWVkIG1vcmUsIHBsZWFzZSB1c2UgQ1JFQVRFIFVORE8gVEFCTEVTUEFDRS4AVGhlIGRpcmVjdG9yeSBmb3IgdGFibGVzcGFjZSAlcyBkb2VzIG5vdCBleGlzdCBvciBpcyBpbmNvcnJlY3QuACVzAENsb25lIGRvbm9yIHJlcG9ydGVkIDogJS41MTJzLgBDbG9uZSByZWNlaXZlZCB1bmV4cGVjdGVkIHJlc3BvbnNlIGZyb20gZG9ub3IgOiAlLjUxMnMuAENsaWVudDogJS41MTJzLgBTZXJ2ZXI6ICUuNTEycy4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIHBlcmZvcm1hbmNlIHNjaGVtYSB0YWJsZXMgc2VydmljZS4ARmFpbGVkIHRvIGFkZCB0aHJlYWQgcG9vbCBwZXJmb3JtYW5jZSBzY2hlbWEgdGFibGVzLgBGYWlsZWQgdG8gc2V0IGRhdGFkaXIgdG8gJyUtLjIwMHMnIChPUyBlcnJubzogJWQgLSAlcykAVGhlIGlubm9kYl91bmRvX2RpcmVjdG9yeSBpcyBub3QgYWxsb3dlZCB0byBiZSBhbiBhbmNlc3RvciBvZiB0aGUgZGF0YWRpci4ARmFpbGVkIHRvIGZldGNoIGtleSBmcm9tIGtleXJpbmcsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4AQ2FuJ3QgZmluZCBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaW4gdGhlIHNlcnZlciBsb2cgaWYgYSBrZXlyaW5nIGlzIGxvYWRlZCBhbmQgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgBGZXRjaGVkIGFuIGludmFsaWQga2V5IGZyb20ga2V5cmluZy4ARXJyb3IgcmVhZGluZyBhIHJlcGxpY2F0aW9uIGxvZyBlbmNyeXB0aW9uIGhlYWRlcjogJXMuAEZhaWxlZCB0byByb3RhdGUgc29tZSBsb2dzIGFmdGVyIGNoYW5naW5nIGJpbmxvZyBlbmNyeXB0aW9uIHNldHRpbmdzLiBQbGVhc2UgZml4IHRoZSBwcm9ibGVtIGFuZCByb3RhdGUgdGhlIGxvZ3MgbWFudWFsbHkuAEtleSAlcyBleGlzdHMgdW5leHBlY3RlZC4ARmFpbGVkIHRvIGdlbmVyYXRlIGtleSwgcGxlYXNlIGNoZWNrIGlmIGtleXJpbmcgaXMgbG9hZGVkLgBGYWlsZWQgdG8gc3RvcmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAEZhaWxlZCB0byByZW1vdmUga2V5LCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuAFVuYWJsZSB0byByZWNvdmVyIGJpbmxvZyBlbmNyeXB0aW9uIG1hc3RlciBrZXksIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIGluaXRpYWxpemUgYmlubG9nIGVuY3J5cHRpb24sIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ARmFpbGVkIHRvIHJvdGF0ZSBiaW5sb2cgZW5jcnlwdGlvbiBtYXN0ZXIga2V5IGF0IHN0YXJ0dXAsIHBsZWFzZSBjaGVjayBpZiBrZXlyaW5nIGlzIGxvYWRlZC4ASWdub3JpbmcgYmlubG9nX3JvdGF0ZV9lbmNyeXB0aW9uX21hc3Rlcl9rZXlfYXRfc3RhcnR1cCBiZWNhdXNlIGJpbmxvZ19lbmNyeXB0aW9uIG9wdGlvbiBpcyBkaXNhYmxlZC4ASW52YWxpZCB2YWx1ZSBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbiBhZG1pbi1hZGRyZXNzOiAnJXMnAEFkbWluIGludGVyZmFjZSByZWFkeSBmb3IgY29ubmVjdGlvbnMsIGFkZHJlc3M6ICclcycgIHBvcnQ6ICVkAENhbid0IGNyZWF0ZSB0aHJlYWQgdG8gaGFuZGxlIGFkbWluIGNvbm5lY3Rpb25zIChlcnJubz0gJWQpAFJFVEFJTiBDVVJSRU5UIFBBU1NXT1JEIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBwYXNzd29yZHMuAERJU0NBUkQgT0xEIFBBU1NXT1JEIGlnbm9yZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGFzIGl0cyBhdXRoZW50aWNhdGlvbiBwbHVnaW4gJXMgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBwYXNzd29yZHMuAEVtcHR5IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgYXMgc2Vjb25kIHBhc3N3b3JkIGZvciB1c2VyICclcydAJyVzJy4AQ3VycmVudCBwYXNzd29yZCBjYW4gbm90IGJlIHJldGFpbmVkIGZvciB1c2VyICclcydAJyVzJyBiZWNhdXNlIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiBpcyBiZWluZyBjaGFuZ2VkLgBDdXJyZW50IHBhc3N3b3JkIGNhbiBub3QgYmUgcmV0YWluZWQgZm9yIHVzZXIgJyVzJ0AnJXMnIGJlY2F1c2UgbmV3IHBhc3N3b3JkIGlzIGVtcHR5LgBDYW4gbm90IHJlYWQgYW5kIHByb2Nlc3MgdmFsdWUgb2YgVXNlcl9hdHRyaWJ1dGVzIGNvbHVtbiBmcm9tIG15c3FsLnVzZXIgdGFibGUgZm9yIHVzZXI6ICclc0Alcyc7IElnbm9yaW5nIHVzZXIuAFNlY29uZCBwYXNzd29yZCB3YXMgdXNlZCBmb3IgbG9naW4gYnkgdXNlcjogJyVzJ0AnJXMnLgBTZWNvbmQgcGFzc3dvcmQgd2FzIHVzZWQgZm9yIGxvZ2luIGJ5IHVzZXI6ICclcydAJyVzJy4AU2Vjb25kIHBhc3N3b3JkIHdhcyB1c2VkIGZvciBsb2dpbiBieSB1c2VyOiAnJXMnQCclcycuAEVycm9yIHNlbmRpbmcgdHJhbnNhY3Rpb24gJyVkOiVsbGQnIHByZXBhcmVkIG1lc3NhZ2UgZnJvbSBzZXNzaW9uICcldScuAEVycm9yIHJlbGVhc2luZyB0cmFuc2FjdGlvbiAnJWQ6JWxsZCcgZm9yIGNvbW1pdCBvbiBzZXNzaW9uICcldScgYWZ0ZXIgYmVpbmcgcHJlcGFyZWQgb24gYWxsIGdyb3VwIG1lbWJlcnMuAFRyYW5zYWN0aW9uICclZDolbGxkJyBhbHJlYWR5IGV4aXN0cyBvbiBHcm91cCBSZXBsaWNhdGlvbiBjb25zaXN0ZW5jeSBtYW5hZ2VyIHdoaWxlIGJlaW5nIHJlZ2lzdGVyZWQgYWZ0ZXIgY29uZmxpY3QgZGV0ZWN0aW9uLgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiAnJWQ6JWxsZCcgb24gR3JvdXAgUmVwbGljYXRpb24gY29uc2lzdGVuY3kgbWFuYWdlciBhZnRlciBjb25mbGljdCBkZXRlY3Rpb24uAEVycm9yIHJlZ2lzdGVyaW5nIHRyYW5zYWN0aW9uICclZDolbGxkJyBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBiZWluZyBwcmVwYXJlZCBvbiBhbGwgZ3JvdXAgbWVtYmVycy4ARXJyb3Igb24gdHJhbnNhY3Rpb24gJyVkOiVsbGQnIGZyb20gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIGJlaW5nIHByZXBhcmVkIG9uIGFsbCBncm91cCBtZW1iZXJzLgBUcmFuc2FjdGlvbiAnJWQ6JWxsZCcgZG9lcyBub3QgZXhpc3Qgb24gR3JvdXAgUmVwbGljYXRpb24gY29uc2lzdGVuY3kgbWFuYWdlciB3aGlsZSByZWNlaXZpbmcgcmVtb3RlIHRyYW5zYWN0aW9uIHByZXBhcmUuAEVycm9yIHJlbGVhc2luZyB0cmFuc2FjdGlvbiAnJWQ6JWxsZCcgZm9yIGV4ZWN1dGlvbiBvbiBzZXNzaW9uICcldScgYWZ0ZXIgaXRzIGRlcGVuZGVuY2llcyBkaWQgY29tcGxldGUgY29tbWl0LgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBpdHMgZGVwZW5kZW5jaWVzIHRvIGNvbXBsZXRlIGNvbW1pdC4ARXJyb3Igb24gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIGl0cyBkZXBlbmRlbmNpZXMgdG8gY29tcGxldGUgY29tbWl0LgBFcnJvciByZWdpc3RlcmluZyB0cmFuc2FjdGlvbiBmcm9tIHNlc3Npb24gJyV1JyB0byB3YWl0IGZvciBzeW5jIGJlZm9yZSBleGVjdXRpb24uAEVycm9yIHNlbmRpbmcgc3luYyBiZWZvcmUgZXhlY3V0aW9uIG1lc3NhZ2UgZnJvbSBzZXNzaW9uICcldScuAEVycm9yIG9uIHRyYW5zYWN0aW9uIGZyb20gc2Vzc2lvbiAnJXUnIHdoaWxlIHdhaXRpbmcgZm9yIHN5bmMgYmVmb3JlIGV4ZWN1dGlvbi4ARXJyb3IgcmVsZWFzaW5nIHRyYW5zYWN0aW9uIGZvciBleGVjdXRpb24gb24gc2Vzc2lvbiAnJXUnIGFmdGVyIHdhaXQgZm9yIHN5bmMgYmVmb3JlIGV4ZWN1dGlvbi4ARXJyb3Igd2FpdGluZyBmb3IgZ3JvdXAgZXhlY3V0ZWQgdHJhbnNhY3Rpb25zIGNvbW1pdCBvbiBzZXNzaW9uICcldScuAFRoZXJlJ3Mgbm8gdW5pdCBvZiBtZWFzdXJlIG5hbWVkICclcycuAFRoZSBmdW5jdGlvbiAlcyB1c2VzICVzIGFzIGEgdW5pdCwgYnV0IHdhcyBwYXNzZWQgZ2VvbWV0cnkgd2l0aG91dCB1bml0cyAoIlNSSUQgMCIpLiBDb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZS4AQ291bGQgbm90IHBhcnNlIGtleS12YWx1ZSBwYWlycyBpbiBwcm9wZXJ0eSBzdHJpbmcgJyVzJwBQcm9wZXJ0eSBrZXkgJyVzJyBpcyBpbnZhbGlkLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX2FwcGxpZXIgY2hhbm5lbCByZWNlaXZlZCB0cmFuc2FjdGlvbnMgc2V0LiBVbmFibGUgdG8gZW5zdXJlIHRoZSBleGVjdXRpb24gb2YgZ3JvdXAgdHJhbnNhY3Rpb25zIHJlY2VpdmVkIGR1cmluZyByZWNvdmVyeS4ARmFpbGVkIHRvIGVuY3J5cHQgY29udGVudCB0byB3cml0ZSBpbnRvIGJpbmxvZyBmaWxlOiAlcy4AQ2Fubm90IGdldCB0aGUgc2VydmVyIHZlcnNpb24gbnVtYmVyIGZyb20gdGhlIGRpY3Rpb25hcnkgdGFibGVzcGFjZSBoZWFkZXIuAENhbm5vdCBzZXQgdGhlIHNlcnZlciB2ZXJzaW9uIG51bWJlciBpbiB0aGUgZGljdGlvbmFyeSB0YWJsZXNwYWNlIGhlYWRlci4AVXBncmFkaW5nIHRoZSBzZXJ2ZXIgZnJvbSBzZXJ2ZXIgdmVyc2lvbiAnJXUnIGlzIG5vdCBzdXBwb3J0ZWQuAE15U1FMIHNlcnZlciB1cGdyYWRpbmcgZnJvbSB2ZXJzaW9uICcldScgdG8gJyV1Jy4AVGhlIGNlcnRpZmljYXRpb24gaW5mb3JtYXRpb24gY291bGQgbm90IGJlIHNldCBpbiB0aGlzIHNlcnZlcjogJyVzJwBBIHJlcXVlc3QgdG8gZm9yY2UgYSBuZXcgZ3JvdXAgbWVtYmVyc2hpcCB3YXMgaXNzdWVkIHdoZW4gdGhlIG1lbWJlciBpcyBsZWF2aW5nIHRoZSBncm91cC4AVHJpZ2dlciAlcy4lcyBmb3IgdGFibGUgJXMuJXMgaXMgbGlzdGVkIGluIHdyb25nIG9yZGVyLiBQbGVhc2UgZHJvcCBhbmQgcmVjcmVhdGUgYWxsIHRyaWdnZXJzIGZvciB0aGUgdGFibGUuACVzAFNwZWNpYWwgaGFuZGxpbmcgZm9yIGdyb3VwIHNlYXJjaCwge0dBfSBub3QgZm91bmQAVXNlciBncm91cCByZXRyaWV2YWw6IFVzZXIgb2JqZWN0IGhhcyBncm91cCBpbmZvcm1hdGlvbgBHcm91cCBpbmZvcm1hdGlvbiBmb3VuZCBpbiBtdWx0aXBsZSB1c2VyIG9iamVjdHMuIFNlYXJjaCBmaWx0ZXIgY29uZmlndXJhdGlvbiBpcyBpbmNvcnJlY3QuAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBubyBncm91cCBhdHRyaWJ1dGUgZm91bmQuIEluY29ycmVjdCBncm91cCBzZWFyY2ggYXR0cmlidXRlLiAAVXNlciBncm91cCByZXRyaWV2YWw6IEdyb3VwIGF0dHJpYnV0ZSB2YWx1ZXMgaXMgTlVMTC4gAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBwYXJzaW5nIEROIGZhaWxlZC4gAFVzZXIgZ3JvdXAgcmV0cmlldmFsOiBHcm91cCBvYmplY3QgaGFzIHVzZXIgaW5mb3JtYXRpb24AUmVzZXJ2ZWQgcG9ydCBmb3IgbGRhcHMgdXNpbmcgbGRhcHMAR2V0IHVzZXIgcHJveHkAR2V0IHVzZXIgcHJveHk6IFVzZXIgZG9lc24ndCBiZWxvbmdzIHRvIGFueSBncm91cCwgdXNlciBuYW1lIHdpbGwgYmUgdHJlYXRlZCBhcyBhdXRoZW50aWNhdGVkIHVzZXIuAEdldCB1c2VyIHByb3h5OiBjb25maWd1cmVkIG1hcHBpbmcgaW5mbzogJXMAR2V0IHVzZXIgcHJveHk6IFVzZXIgZG9lc24ndCBoYXZlIGdyb3VwIG1hcHBpbmcgaW5mb3JtYXRpb24sIEZpcnN0IExEQVAgZ3JvdXAgd2lsbCBiZSB0cmVhdGVkIGFzIGF1dGhlbnRpY2F0ZWQgdXNlci4AUHJvY2VzcyBncm91cCBwcm94eSBtYXBwaW5nAENoZWNrIGRlbGltaXRlciBhZnRlciBxdW90ZQBQcm9jZXNzaW5nIGRlbGltaXRlcgBQcm9jZXNzaW5nIGRlbGltaXRlciwgc2VwYXJhdG9yID0gbm90IGZvdW5kLCByZXNldHRpbmcgcG9zaXRpb24AIlByb2Nlc3NpbmcgZGVsaW1pdGVyLCBmYWlsZWQgdG8gZ2V0IGRhdGEgZm9yID0gc2VwYXJhdG9yIHRyeSBmb3Igc2VwYXJhdG9yICwuIgBQcm9jZXNzaW5nIGRlbGltaXRlciwgc2VwYXJhdG9yICwgbm90IGZvdW5kLCByZXNldHRpbmcgcG9zaXRpb24AUHJvY2Vzc2luZyBkZWxpbWl0ZXI6IE5vIG1hcHBpbmcgc2VwYXJhdG9yIGlzIGZvdW5kLCBlbmQgb2YgZ3JvdXAgaW5mb3JtYXRpb24AR2V0dGluZyBuZXh0IG1hcHBpbmcgaW5mb3JtYXRpb24AUGFyc2luZyBtYXBwaW5nLCBjdXJyZW50IHN0YXRlOiAlZCAgZGVsaW1pdGVyIGNoYXI6ICVjIABQYXJzaW5nIG1hcHBpbmcgaW5mbywgTERBUCBncm91cDogJXMgTXlTUUwgcHJveHk6ICVzAE1hcHBpbmcgcGFyc2luZyBlcnJvcgBUcmltbWluZyBsZWZ0IHNwYWNlcwBDaGVja2luZyBpZiBjdXJyZW50IGNoYXJhY3RlcnMgaXMgcXVvdGUATm90IGRlc2lyZWQgc3RhdGUgb3IgdW4tZGVmaW5lZCBzdGF0ZXMuAEludmFsaWQgdmFsdWUgZm9yIG5hbWVkX3BpcGVfZnVsbF9hY2Nlc3NfZ3JvdXAuAFJldHJ5IHRoZSBzdGF0ZW1lbnQgdXNpbmcgYSBzZWNvbmRhcnkgc3RvcmFnZSBlbmdpbmUuACclcycgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSB1c2UgJXMgaW5zdGVhZABDYW5ub3Qgc2V0IG1hbmRhdG9yeV9yb2xlczogQXV0aElkIGAlLjY0c2BAYCUuNjRzYCBoYXMgJyVzJyBwcml2aWxlZ2UuAFVuYWJsZSB0byByZWNvdmVyIGJpbmFyeSBsb2cgbWFzdGVyIGtleSwgdGhlIGNvbWJpbmF0aW9uIG9mIG5ld19tYXN0ZXJfa2V5X3NlcW5vPSV1LCBtYXN0ZXJfa2V5X3NlcW5vPSV1IGFuZCBvbGRfbWFzdGVyX2tleV9zZXFubz0ldSBhcmUgd3JvbmcuAEZhaWxlZCB0byByZW1vdmUgYXV4aWxpYXJ5IGJpbmFyeSBsb2cgZW5jcnlwdGlvbiBrZXkgZnJvbSBrZXlyaW5nLCBwbGVhc2UgY2hlY2sgaWYga2V5cmluZyBpcyBsb2FkZWQuIFRoZSBjbGVhbnVwIG9mIHRoZSBiaW5hcnkgbG9nIG1hc3RlciBrZXkgcm90YXRpb24gcHJvY2VzcyBkaWQgbm90IGZpbmlzaCBhcyBleHBlY3RlZCBhbmQgdGhlIGNsZWFudXAgd2lsbCB0YWtlIHBsYWNlIHVwb24gc2VydmVyIHJlc3RhcnQgb3IgbmV4dCAnQUxURVIgSU5TVEFOQ0UgUk9UQVRFIEJJTkxPRyBNQVNURVIgS0VZJyBleGVjdXRpb24uAEF1dGhJZCBgJS42NHNgQGAlLjY0c2AgaXMgc2V0IGFzIG1hbmRhdG9yeV9yb2xlcy4gQ2Fubm90IGdyYW50IHRoZSAnJXMnIHByaXZpbGVnZS4AJyVzJyBwcml2aWxlZ2UgZm9yIGRhdGFiYXNlICclcycgZXhpc3RzIGJvdGggYXMgcGFydGlhbCByZXZva2UgYW5kIG15c3FsLmRiIHNpbXVsdGFuZW91c2x5LiBJdCBjb3VsZCBtZWFuICdteXNxbCcgc2NoZW1hIGlzIGNvcnJ1cHRlZC4AQWNjZXNzIGRlbmllZCBmb3IgQXV0aElkIGAlLjY0c2BAYCUuNjRzYCB0byBkYXRhYmFzZSAnJS0uMTkycycuAEF0IGxlYXN0IG9uZSBwYXJ0aWFsIHJldm9rZSBleGlzdHMgb24gYSBkYXRhYmFzZS4gVGhlIHN5c3RlbSB2YXJpYWJsZSAnQEBwYXJ0aWFsX3Jldm9rZXMnIG11c3QgYmUgc2V0IHRvIE9OLgBBdCBsZWFzdCBvbmUgcGFydGlhbCByZXZva2UgZXhpc3RzIG9uIGEgZGF0YWJhc2UuIFR1cm5pbmcgT04gdGhlIHN5c3RlbSB2YXJpYWJsZSAnQEBwYXJ0aWFsX3Jldm9rZXMnLgBGb3IgdXNlciAnJXMnQCclcycsIG9uZSBvciBtb3JlIHByaXZpbGVnZXMgZ3JhbnRlZCB0aHJvdWdoIG15c3FsLmRiIGZvciBkYXRhYmFzZSAnJXMnLCBjb25mbGljdCB3aXRoIHBhcnRpYWwgcmV2b2tlLiBJdCBjb3VsZCBtZWFuICdteXNxbCcgc2NoZW1hIGlzIGNvcnJ1cHRlZC4ARm9yIHVzZXIgJXMsIGlnbm9yZWQgcmVzdHJpY3Rpb25zIGZvciBwcml2aWxlZ2UocykgJyVzJyBmb3IgZGF0YWJhc2UgJyVzJyBhcyB0aGVzZSBhcmUgbm90IHZhbGlkIGRhdGFiYXNlIHByaXZpbGVnZXMuAEZvciB1c2VyICVzLCBpZ25vcmVkIHJlc3RyaWN0aW9ucyBmb3IgcHJpdmlsZWdlKHMpICclcycgZm9yIGRhdGFiYXNlICclcycgYXMgY29ycmVzcG9uZGluZyBnbG9iYWwgcHJpdmlsZWdlKHMpIGFyZSBub3QgZ3JhbnRlZC4AJyVzJyBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciBncm91cF9yZXBsaWNhdGlvbl9jb21tdW5pY2F0aW9uX3Byb3RvY29sX2pvaW4sIHBsZWFzZSB1c2UgYSBNeVNRTCB2ZXJzaW9uIGJldHdlZW4gNS43LjE0IGFuZCB0aGlzIHNlcnZlcidzIHZlcnNpb24AU3RhcnRlZCBhdXRvLXJlam9pbiBwcm9jZWR1cmUgYXR0ZW1wdCAlbHUgb2YgJWx1AFRpbWVvdXQgd2hpbGUgd2FpdGluZyBmb3IgYSB2aWV3IGNoYW5nZSBldmVudCBkdXJpbmcgdGhlIGF1dG8tcmVqb2luIHByb2NlZHVyZQBBdXRvLXJlam9pbiBwcm9jZWR1cmUgYXR0ZW1wdCAlbHUgb2YgJWx1IGZpbmlzaGVkLiBNZW1iZXIgd2FzJXMgYWJsZSB0byBqb2luIHRoZSBncm91cC4AVGhlIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0X3RhYmxlX2VuY3J5cHRpb24gb3B0aW9uIHZhbHVlICclZCcgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICclZCcuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAFNlcnZlciBzaHV0dGluZyBkb3duIGJlY2F1c2UgdXBncmFkZSBpcyByZXF1aXJlZCwgeWV0IHByb2hpYml0ZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gJy0tdXBncmFkZT1OT05FJy4AU2VydmVyIHVwZ3JhZGUgaXMgcmVxdWlyZWQsIGJ1dCBza2lwcGVkIGJ5IGNvbW1hbmQgbGluZSBvcHRpb24gJy0tdXBncmFkZT1NSU5JTUFMJy4AU2VydmVyIHVwZ3JhZGUgc3RhcnRlZCB3aXRoIHZlcnNpb24gJWQsIGJ1dCBzZXJ2ZXIgdXBncmFkZSBvZiB2ZXJzaW9uICVkIGlzIHN0aWxsIHBlbmRpbmcuAEZhaWxlZCB0byB1cGdyYWRlIHNlcnZlci4AU2VydmVyIHVwZ3JhZGUgZnJvbSAnJWQnIHRvICclZCcgJXMuAFRhYmxlICclcycgcmVxdWlyZXMgcmVwYWlyLgBUYWJsZSAnJXMnIHJlcGFpciAlcy4AQ291bGQgbm90IG9wZW4gc2VydmVyIHVwZ3JhZGUgaW5mbyBmaWxlICclcycgZm9yIHdyaXRpbmcuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIGZpbGUgaXMgd3JpdGFibGUuAFVwZ3JhZGluZyB0aGUgc3lzIHNjaGVtYS4AUnVubmluZyBxdWVyaWVzIHRvIHVwZ3JhZGUgTXlTUUwgc2VydmVyLgBVcGdyYWRpbmcgc3lzdGVtIHRhYmxlIGRhdGEuAEZvdW5kIGVtcHR5IHN5cyBkYXRhYmFzZS4gSW5zdGFsbGluZyB0aGUgc3lzIHNjaGVtYS4AQSBzeXMgc2NoZW1hIGV4aXN0cyB3aXRoIG5vIHN5cy52ZXJzaW9uIHZpZXcuIElmIHlvdSBoYXZlIGEgdXNlciBjcmVhdGVkIHN5cyBzY2hlbWEsIHRoaXMgbXVzdCBiZSByZW5hbWVkIGZvciB0aGUgdXBncmFkZSB0byBzdWNjZWVkLgBBIHN5cyBzY2hlbWEgZXhpc3RzIHdpdGggYSBzeXMudmVyc2lvbiB2aWV3LCBidXQgaXQgcmV0dXJucyBubyByZXN1bHRzLgBGb3VuZCBvdXRkYXRlZCBzeXMgc2NoZW1hIHZlcnNpb24gJXMuAFRoZSBzeXMgc2NoZW1hIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSAodmVyc2lvbiAlcykuAEZvdW5kICVkIHN5cyAlcywgYnV0IGV4cGVjdGVkICVkLiBSZS1pbnN0YWxsaW5nIHRoZSBzeXMgc2NoZW1hLgBDaGVja2luZyAnJXMnIHNjaGVtYS4AVG9vIG1hbnkgY29uY3VycmVudCB0cmFuc2FjdGlvbnMgd2hpbGUgY2xlYXJpbmcgdGhlIERETCBMb2cuIFBsZWFzZSBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIFJvbGxiYWNrIFNlZ21lbnRzLgBFcnJvciBpbiBEREwgTG9nIHJlY292ZXJ5IGR1cmluZyBQb3N0LVJlY292ZXJ5IHByb2Nlc3NpbmcuAEVycm9yIGluIFBvc3QtVGFibGVzcGFjZS1FbmNyeXB0aW9uIGR1cmluZyBQb3N0LVJlY292ZXJ5IHByb2Nlc3NpbmcuAEVycm9yIGluIERMTCBMb2cgY2xlYW51cCBkdXJpbmcgUG9zdC1EREwgcHJvY2Vzc2luZy4AJyVzJyBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgdXNlcyBhIHN5c3RlbSBmdW5jdGlvbiB0aGF0IG1heSByZXR1cm4gYSBkaWZmZXJlbnQgdmFsdWUgb24gdGhlIHJlcGxpY2EuAFVwZ3JhZGUgb2YgaGVscCB0YWJsZXMgJXMuAEVycm9yIHdoZW4gd2FpdGluZyBmb3IgdGhlIHNlcnZlciB0byBleGVjdXRlIGxvY2FsIHRyYW5zYWN0aW9ucyBpbiBvcmRlciBhc3N1cmUgdGhlIGdyb3VwIGNoYW5nZSBwcm9wZXIgbG9nZ2luZwBVbmFibGUgdG8gbG9nIHRoZSBncm91cCBjaGFuZ2UgVmlldyBsb2cgZXZlbnQgaW4gaXRzIGV4YWN0aW9uIHBvc2l0aW9uIGluIHRoZSBsb2cuIFRoaXMgd2lsbCBub3QgaG93ZXZlciBhZmZlY3QgdGhlIGdyb3VwIHJlcGxpY2F0aW9uIHJlY292ZXJ5IHByb2Nlc3Mgb3IgdGhlIG92ZXJhbGwgcGx1Z2luIHByb2Nlc3MuAENhbm5vdCBncmFudCByb2xlcyB0byBhbiBhbm9ueW1vdXMgdXNlci4AVW5hYmxlIHRvIGNyZWF0ZSBhIG5ldyBiaW5sb2cgZmlsZTogVGFibGUgYG15c3FsLmd0aWRfZXhlY3V0ZWRgIGNvdWxkbid0IGJlIG9wZW5lZC4gJXMATmV0d29yayBOYW1lc3BhY2VzIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybQBVbmtub3duIG5ldHdvcmsgbmFtZXNwYWNlICclcycATmV0d29yayBuYW1lc3BhY2Ugbm90IGFsbG93ZWQgZm9yIHdpbGRjYXJkIGludGVyZmFjZSBhZGRyZXNzAHNldG5zKCkgZmFpbGVkIHdpdGggZXJyb3IgJyVzJwBXaWxkY2FyZCBhZGRyZXNzIHZhbHVlIG5vdCBhbGxvd2VkIGZvciBtdWx0aXZhbHVlZCBiaW5kIGFkZHJlc3MAVGhlIHBhdGggdG8gYSBzcGVjaWFsIG5ldHdvcmsgbmFtZXNwYWNlIGZpbGUgaXMgdG9vIGxvbmcuIChnb3QgJXUgPiBtYXggJXUpAENhbm5vdCBjcmVhdGUgdGFibGVzcGFjZSAnJXMnLiBUaGUgZmlsZXBhdGggaXMgdG9vIGxvbmcgZm9yIHRoaXMgT1MuAFRoZSBsYXN0IGJsb2NrIG9mIHJlZG8gaGFkIGNvcnJ1cHRlZCBmaXJzdF9yZWNfZ3JvdXAgYW5kIGJlY2FtZSBmaXhlZCAoJXUgLT4gJXUpLgBEYXRhIGRpY3Rpb25hcnkgdXBncmFkZSBmcm9tIHZlcnNpb24gJyV1JyB0byAnJXUnIGNvbXBsZXRlZC4AU2VydmVyIFNTTCBjZXJ0aWZpY2F0ZSBkb2Vzbid0IHZlcmlmeTogJXMAVHJ1bmNhdGVkIGEgdXNlciBuYW1lIGZvciAlcyB0aGF0IHdhcyB0b28gbG9uZyB3aGlsZSByZWFkaW5nIHRoZSBwZXJzaXN0ZWQgdmFyaWFibGVzIGZpbGUAVHJ1bmNhdGVkIGEgaG9zdCBuYW1lIGZvciAlcyB0aGF0IHdhcyB0b28gbG9uZyB3aGlsZSByZWFkaW5nIHRoZSBwZXJzaXN0ZWQgdmFyaWFibGVzIGZpbGUAVGhlIHdhaXRfdGltZW91dCBwZXJpb2Qgd2FzIGV4Y2VlZGVkLCB0aGUgaWRsZSB0aW1lIHNpbmNlIGxhc3QgY29tbWFuZCB3YXMgdG9vIGxvbmcuACclcycgZm91bmQgbm90IGVuY3J5cHRlZCB3aGlsZSAnJXMnIGlzIE9OLiBUcnlpbmcgdG8gZW5jcnlwdCBpdCBub3cuAENMT0NLX01PTk9UT05JQyBpcyB1bnN1cHBvcnRlZCwgc28gZG8gbm90IGNoYW5nZSB0aGUgc3lzdGVtIHRpbWUgd2hlbiBNeVNRTCBpcyBydW5uaW5nICEAY2xvY2tfZ2V0dGltZSgpIGZhaWxlZDogJXMAUGx1Z2luICclcycgaXMgbm90IHRvIGJlIHVzZWQgYXMgYW4gImVhcmx5IiBwbHVnaW4uIERvbid0IGFkZCBpdCB0byAtLWVhcmx5LXBsdWdpbi1sb2FkLCBrZXlyaW5nIG1pZ3JhdGlvbiBldGMuAFBsdWdpbiAnJXMnIGlzIG1hcmtlZCBhcyBub3QgZHluYW1pY2FsbHkgaW5zdGFsbGFibGUuIFlvdSBoYXZlIHRvIHN0b3AgdGhlIHNlcnZlciB0byBpbnN0YWxsIGl0LgBTUUxfQ0FMQ19GT1VORF9ST1dTIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBDb25zaWRlciB1c2luZyB0d28gc2VwYXJhdGUgcXVlcmllcyBpbnN0ZWFkLgBGT1VORF9ST1dTKCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIENPVU5UKCopIGluc3RlYWQuAFRoZSBzdGF0ZW1lbnQgaXMgdW5zYWZlIGJlY2F1c2UgaXQgaW52b2tlcyBhIHRyaWdnZXIgb3IgYSBzdG9yZWQgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyBhIHRhYmxlIHRoYXQgaGFzIGEgY29sdW1uIHdpdGggYSBERUZBVUxUIGV4cHJlc3Npb24gdGhhdCBtYXkgcmV0dXJuIGEgZGlmZmVyZW50IHZhbHVlIG9uIHRoZSByZXBsaWNhLgBNZW1iZXIgdmVyc2lvbiBpcyByZWFkIGNvbXBhdGlibGUgd2l0aCB0aGUgZ3JvdXAuAExvY2sgb3JkZXIgZGlzYWJsZWQgKHJlYXNvbjogaW5pdCBmYWlsZWQpLgBLZXlyaW5nIElEIHRpbWVzdGFtcCB2YWx1ZSBpcyBpbnZhbGlkOiAnJXMnAENhbm5vdCBwcm9jZXNzIGF1ZGl0IGxvZyBmaWxlLiBGaWxlIG5hbWUgdGltZXN0YW1wIHZhbHVlIGlzIG1pc3Npbmcgb3IgaW52YWxpZDogJyVzJwBDYW5ub3QgcHJvY2VzcyBhdWRpdCBsb2cgZmlsZS4gRmlsZSBuYW1lIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZm9ybWF0OiAnJXMnAENhbm5vdCBwcm9jZXNzIGF1ZGl0IGxvZyBmaWxlLiBGaWxlIG5hbWUga2V5cmluZyBJRCB2YWx1ZSBpcyBtaXNzaW5nOiAnJXMnAEF1ZGl0IGxvZyBmaWxlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQ6ICclcycAQ291bGQgbm90IG9wZW4gYXVkaXQgbG9nIGZpbGUgZm9yIHJlYWRpbmc6ICclcycASW52YWxpZCBhdWRpdCBsb2cgZmlsZSBjb250ZW50OiAnJXMnAENhbm5vdCByZWFkIHBhc3N3b3JkOiAnJS4zMnMnLgBDYW5ub3Qgc3RvcmUgcGFzc3dvcmQ6ICclLjMycycuAENhbm5vdCByZW1vdmUgcGFzc3dvcmQ6ICclLjMycycuACdhdWRpdF9sb2cnIHBhc3N3b3JkIGhhcyBiZWVuIGNvcGllZCBpbnRvICclLjMycycgYW5kIHdpbGwgYmUgcmVtb3ZlZCB3aXRoIGZpcnN0IHB1cmdlZCBwYXNzd29yZC4AUmVxdWVzdCBpZ25vcmVkIGZvciAnJS42NHMnQCclLjY0cycuIFJvbGUgbmVlZGVkIHRvIHBlcmZvcm0gb3BlcmF0aW9uOiAnJS4zMnMnAENhbid0IHN0b3JlIGFuIGFycmF5IG9yIGFuIG9iamVjdCBpbiBhIHNjYWxhciBrZXkgcGFydCBvZiB0aGUgaW5kZXggJyUuMTkycycAQ2Fubm90IHVzZSBmdW5jdGlvbmFsIGluZGV4ICclLS42NHMnIGR1ZSB0byB0eXBlIG9yIGNvbGxhdGlvbiBjb252ZXJzaW9uAEV4Y2VlZGVkIG1heCBudW1iZXIgb2YgdmFsdWVzIHBlciByZWNvcmQgZm9yIG11bHRpLXZhbHVlZCBpbmRleCAnJS0uNjRzJyBieSAldSB2YWx1ZShzKQBFeGNlZWRlZCBtYXggdG90YWwgbGVuZ3RoIG9mIHZhbHVlcyBwZXIgcmVjb3JkIGZvciBtdWx0aS12YWx1ZWQgaW5kZXggJyUtLjY0cycgYnkgJXUgYnl0ZXMARGF0YSB0b28gbG9uZyBmb3IgZnVuY3Rpb25hbCBpbmRleCAnJS0uNjRzJwBJbnZhbGlkIEpTT04gdmFsdWUgZm9yIENBU1QgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycAT3V0IG9mIHJhbmdlIEpTT04gdmFsdWUgZm9yIENBU1QgZm9yIGZ1bmN0aW9uYWwgaW5kZXggJyUtLjY0cycARW1wdHkgdXNlciBkbiBvciBwYXNzd29yZCBpcyBub3QgYWxsb3dlZCwgbm90IGF0dGVtcHRpbmcgTERBUCBiaW5kLgBHcm91cGluZyBvbiB0ZW1wb3JhbCBpcyBub24tZGV0ZXJtaW5pc3RpYyBmb3IgdGltZXpvbmVzIGhhdmluZyBEU1QuIFBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gVVRDIGZvciB0aGlzIHF1ZXJ5LgBUaGUgY3VycmVudCBsYXlvdXQgb2YgdGhlIEFDTCB0YWJsZXMgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgc2VydmVyJ3MgZXhwZWN0ZWQgbGF5b3V0LiBUaGV5J3JlIGVpdGhlciBhbHRlcmVkLCBtaXNzaW5nIG9yIG5vdCB1cGdyYWRlZCBmcm9tIGEgcHJldmlvdXMgdmVyc2lvbi4gSG93ZXZlciBhIGJlc3QgZWZmb3J0IGF0dGVtcHQgdG8gcmVhZCBkYXRhIGZyb20gdGhlc2UgdGFibGVzIHdpbGwgc3RpbGwgYmUgbWFkZS4ATE9DS19PUkRFUjogRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUgPCVzPi4ATE9DS19PUkRFUjogRmFpbGVkIHRvIHJlYWQgZnJvbSBmaWxlIDwlcz4uAExPQ0tfT1JERVIgbWVzc2FnZTogJXMATG9jayBvcmRlciBkZXBlbmRlbmNpZXMgZmlsZSA8JXM+ICglZDolZCkgLSAoJWQ6JWQpIDogJXMATG9jayBvcmRlciBzY2FubmVyOiAoJWQ6JWQpIC0gKCVkOiVkKSA6ICVzAFRoZSBuZXdseSBjcmVhdGVkIGRhdGEgZGlyZWN0b3J5ICVzIGJ5IC0taW5pdGlhbGl6ZSBpcyB1bnVzYWJsZS4gWW91IGNhbiByZW1vdmUgaXQuAE5vLiBvZiBCLXRyZWUgbGV2ZWwgY3JlYXRlZCBmb3IgaW5kZXggJXMgaGFzIGNyb3NzZWQgdGhlIHBlcm1pc3NpYmxlIGxpbWl0LiBJZiBkZWJ1ZyBvcHRpb24gaW5ub2RiX2xpbWl0X29wdGltaXN0aWNfaW5zZXJ0X2RlYnVnIGlzIGJlaW5nIHVzZWQgdHJ5IHR3ZWFraW5nIGl0IHRvIGluY2x1ZGUgbW9yZSByZWNvcmRzIGluIGEgcGFnZS4AJXMAJXMAJXMAQ2xvbmUgcmVtb3ZpbmcgYWxsIHVzZXIgZGF0YSBmb3IgcHJvdmlzaW9uaW5nOiAlcwBOb24gaW5ub2RiIHRhYmxlOiAlcy4lcyBpcyBub3QgY2xvbmVkIGFuZCBpcyBlbXB0eS4AQ2xvbmUgc2h1dHRpbmcgZG93biBzZXJ2ZXIgYXMgUkVTVEFSVCBmYWlsZWQuIFBsZWFzZSBzdGFydCBzZXJ2ZXIgdG8gY29tcGxldGUgY2xvbmUgb3BlcmF0aW9uLgBFcnJvciB3aGVuIGV4dHJhY3RpbmcgdGhpcyBtZW1iZXIgR1RJRCBwdXJnZWQgc2V0LiBPcGVyYXRpb25zIGFuZCBjaGVja3MgbWFkZSB0byBncm91cCBqb2luZXJzIG1heSBiZSBpbmNvbXBsZXRlLgBUaGVyZSB3YXMgYW4gaXNzdWUgd2hlbiBjb25maWd1cmluZyB0aGUgcmVtb3RlIGNsb25pbmcgcHJvY2VzczogJXMAVGhlcmUgd2FzIGFuIGlzc3VlIHdoZW4gY2xvbmluZyBmcm9tIGFub3RoZXIgc2VydmVyOiAlcwBUaGVyZSB3YXMgYW4gaXNzdWUgd2hlbiB0cnlpbmcgdG8gZXZhbHVhdGUgdGhlIGJlc3QgZGlzdHJpYnV0ZWQgcmVjb3Zlcnkgc3RyYXRlZ3kgd2hpbGUgam9pbmluZy4lcwBObyB2YWxpZCBvciBPTkxJTkUgbWVtYmVycyBleGlzdCB0byBnZXQgdGhlIG1pc3NpbmcgZGF0YSBmcm9tIHRoZSBncm91cC4gRm9yIGNsb25pbmcgY2hlY2sgaWYgZG9ub3JzIG9mIHRoZSBzYW1lIHZlcnNpb24gYW5kIHdpdGggY2xvbmUgcGx1Z2luIGluc3RhbGxlZCBleGlzdC4gRm9yIGluY3JlbWVudGFsIHJlY292ZXJ5IGNoZWNrIGlmIHlvdSBoYXZlIGRvbm9ycyB3aGVyZSB0aGUgcmVxdWlyZWQgZGF0YSB3YXMgbm90IHB1cmdlZCBmcm9tIHRoZSBiaW5hcnkgbG9ncy4AVGhlIGdyb3VwIHJlcGxpY2F0aW9uIHBsdWdpbiBjb3VsZCBub3Qga2lsbCB0aGUgcGx1Z2luIHJvdXRpbmUgZm9yICVzLiAlcwBUaGlzIG1lbWJlciB3aWxsIHN0YXJ0IGRpc3RyaWJ1dGVkIHJlY292ZXJ5IHVzaW5nIGNsb25lLiBJdCBpcyBkdWUgdG8gdGhlIG51bWJlciBvZiBtaXNzaW5nIHRyYW5zYWN0aW9ucyBiZWluZyBoaWdoZXIgdGhhbiB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQgb2YgJWxsdS4AVGhpcyBtZW1iZXIgd2lsbCBzdGFydCBkaXN0cmlidXRlZCByZWNvdmVyeSB1c2luZyBjbG9uZS4gSXQgaXMgZHVlIHRvIG5vIE9OTElORSBtZW1iZXIgaGFzIHRoZSBtaXNzaW5nIGRhdGEgZm9yIHJlY292ZXJpbmcgaW4gaXRzIGJpbmFyeSBsb2dzLgBEaXN0cmlidXRlZCByZWNvdmVyeSB3aWxsIHRyYW5zZmVyIGRhdGEgdXNpbmc6ICVzAER1ZSB0byBzb21lIGlzc3VlIG9uIHRoZSBwcmV2aW91cyBzdGVwIGRpc3RyaWJ1dGVkIHJlY292ZXJ5IGlzIG5vdyBleGVjdXRpbmc6ICVzAER1ZSB0byBhIGNyaXRpY2FsIGNsb25pbmcgZXJyb3Igb3IgbGFjayBvZiBkb25vcnMsIGRpc3RyaWJ1dGVkIHJlY292ZXJ5IGNhbm5vdCBiZSBleGVjdXRlZC4gVGhlIG1lbWJlciB3aWxsIG5vdyBsZWF2ZSB0aGUgZ3JvdXAuAFRoZSAnJXMnIHRocmVhZCBvZiBjaGFubmVsICclcycgd2lsbCBlcnJvciBvdXQgYXMgdGhlIHNlcnZlciB3aWxsIGF0dGVtcHQgdG8gY2xvbmUgYW5vdGhlciBzZXJ2ZXIAVW5rbm93biB0YWJsZSAnJS0uMTI5cycATG9uZyBkYXRhYmFzZSBuYW1lIGFuZCBpZGVudGlmaWVyIGZvciBvYmplY3QgcmVzdWx0ZWQgaW4gcGF0aCBsZW5ndGggZXhjZWVkaW5nICVkIGNoYXJhY3RlcnMuIFBhdGg6ICclcycuAFhBOiBGYWlsZWQgdG8gdGFrZSBNREwgTG9jayBiYWNrdXAgb2YgUFJFUEFSRUQgWEEgdHJhbnNhY3Rpb24gZHVyaW5nIGNsaWVudCBkaXNjb25uZWN0LgBTVVBFUiBwcml2aWxlZ2Ugb3IgQVVESVRfQURNSU4gcm9sZSByZXF1aXJlZCBmb3IgJyVzJ0AnJXMnIHVzZXIuAEludmFsaWQgYXJndW1lbnQgdHlwZQBJbnZhbGlkIGFyZ3VtZW50IGNvdW50AGF1ZGl0X2xvZyBwbHVnaW4gaGFzIG5vdCBiZWVuIGluc3RhbGxlZCB1c2luZyBJTlNUQUxMIFBMVUdJTiBzeW50YXguAEludmFsaWQgIm1heF9hcnJheV9sZW5ndGgiIGFyZ3VtZW50IHR5cGUuAEZhaWxlZCB0byB3cml0ZSB0byAlczogJXMgKCVzKQBVcGdyYWRpbmcgZnJvbSBzZXJ2ZXIgdmVyc2lvbiAlZCB3aXRoIHBhcnRpdGlvbmVkIHRhYmxlcyBhbmQgbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9PSAxIG9uIGEgY2FzZSBzZW5zaXRpdmUgZmlsZSBzeXN0ZW0gbWF5IGNhdXNlIGlzc3VlcywgYW5kIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiBUbyB1cGdyYWRlIGFueXdheSwgcmVzdGFydCB0aGUgbmV3IHNlcnZlciB2ZXJzaW9uIHdpdGggdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gJ3VwZ3JhZGU9Rk9SQ0UnLiBXaGVuIHVwZ3JhZGUgaXMgY29tcGxldGVkLCBwbGVhc2UgZXhlY3V0ZSAnUkVOQU1FIFRBQkxFIDxwYXJ0X3RhYmxlX25hbWU+IFRPIDxuZXdfdGFibGVfbmFtZT47IFJFTkFNRSBUQUJMRSA8bmV3X3RhYmxlX25hbWU+IFRPIDxwYXJ0X3RhYmxlX25hbWU+OycgZm9yIGVhY2ggb2YgdGhlIHBhcnRpdGlvbmVkIHRhYmxlcy4gUGxlYXNlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4ASW5jb3JyZWN0IGVudmlyb25tZW50IHZhcmlhYmxlICVzLCBpbnZhbGlkIHBvcnQ6ICVzAFRoZSBzZXJ2ZXIgd2FzIGF1dG9tYXRpY2FsbHkgc2V0IGludG8gb2ZmbGluZSBtb2RlIGFmdGVyIGFuIGVycm9yIHdhcyBkZXRlY3RlZC4AQSBtZXNzYWdlIHNlbnQgdGhyb3VnaCB0aGUgR3JvdXAgUmVwbGljYXRpb24gbWVzc2FnZSBkZWxpdmVyIHNlcnZpY2Ugd2FzIG5vdCBkZWxpdmVyZWQgc3VjY2Vzc2Z1bGx5LiBUaGUgc2VydmVyIHdpbGwgbm93IGxlYXZlIHRoZSBncm91cC4gVHJ5IHRvIGFkZCB0aGUgc2VydmVyIGJhY2sgdG8gdGhlIGdyb3VwIGFuZCBjaGVjayBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cywgb3IgY2hlY2sgcHJldmlvdXMgbWVzc2FnZXMgaW4gdGhlIGxvZyBmb3IgaGludHMgb2Ygd2hhdCBjb3VsZCBiZSB0aGUgcHJvYmxlbS4ASW52YWxpZCBTT1VSQ0VfQ09NUFJFU1NJT05fQUxHT1JJVEhNUyAnJS4xOTJzJyBmb3VuZCBpbiByZXBvc2l0b3J5IGZvciBjaGFubmVsICclLjE5MnMnLiBSZXNldHRpbmcgdG8gJ3VuY29tcHJlc3NlZCcgKG5vIGNvbXByZXNzaW9uKS4ASW52YWxpZCBTT1VSQ0VfWlNURF9DT01QUkVTU0lPTl9MRVZFTCBmb3VuZCBpbiByZXBvc2l0b3J5IGZvciBjaGFubmVsICclLjE5MnMnLiBSZXNldHRpbmcgdG8gJXUuAE9wdGlvbiAtLXByb3RvY29sLWNvbXByZXNzaW9uLWFsZ29yaXRobXMgaXMgcmVzZXQgdG8gZGVmYXVsdCB2YWx1ZS4ARmF0YWwgZXJyb3Igd2hpbGUgY29tcHJlc3Npbmcgb3V0Z29pbmcgZGF0YSAtICVzACVzAFVua25vd24ga2V5cmluZ19hd3NfcmVnaW9uICclLjE5MnMnLiBDb25uZWN0aW9uIHRvIEFXUyBLTVMgbWF5IGZhaWwuAFBSSVZJTEVHRV9DSEVDS1NfVVNFUiBmb3IgcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgc2V0IHRvIGAlLjY0c2BAYCUuMjU1c2AsIGJ1dCB0aGlzIGlzIG5vdCBhbiBleGlzdGluZyB1c2VyLiBDb3JyZWN0IHRoaXMgYmVmb3JlIHN0YXJ0aW5nIHJlcGxpY2F0aW9uIHRocmVhZHMuAEludmFsaWQsIGNvcnJ1cHRlZCBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgd2FzIGZvdW5kIGluIHRoZSByZXBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHJlcG9zaXRvcnkgZm9yIGNoYW5uZWwgJyUuMTkycycuIFVzZSBDSEFOR0UgUkVQTElDQVRJT04gU09VUkNFIFRPIFBSSVZJTEVHRV9DSEVDS1NfVVNFUiB0byBjb3JyZWN0IHRoZSBjb25maWd1cmF0aW9uLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgd2FzIHNldCB0byBgJS42NHNgQGAlLjI1NXNgLCBidXQgdGhpcyB1c2VyIGRvZXMgbm90IGhhdmUgUkVQTElDQVRJT05fQVBQTElFUiBwcml2aWxlZ2UuIENvcnJlY3QgdGhpcyBiZWZvcmUgc3RhcnRpbmcgdGhlIHJlcGxpY2F0aW9uIHRocmVhZHMuAFRoZSBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIGNoYW5uZWwgJyUuMTkycycgd291bGQgbmVlZCBGSUxFIHByaXZpbGVnZSB0byBleGVjdXRlIGEgTE9BRCBEQVRBIElORklMRSBzdGF0ZW1lbnQgcmVwbGljYXRlZCBpbiBzdGF0ZW1lbnQgZm9ybWF0LiBDb25zaWRlciB1c2luZyBiaW5sb2dfZm9ybWF0PVJPVyBvbiBzb3VyY2UuIElmIHRoZSByZXBsaWNhdGVkIGV2ZW50cyBhcmUgdHJ1c3RlZCwgcmVjb3ZlciBmcm9tIHRoZSBmYWlsdXJlIGJ5IHRlbXBvcmFyaWx5IGdyYW50aW5nIEZJTEUgdG8gdGhlIFBSSVZJTEVHRV9DSEVDS1NfVVNFUi4AUmVwbGljYSBTUUwgdGhyZWFkJXMgaW5pdGlhbGl6ZWQsIHN0YXJ0aW5nIHJlcGxpY2F0aW9uIGluIGxvZyAnJXMnIGF0IHBvc2l0aW9uICVzLCByZWxheSBsb2cgJyVzJyBwb3NpdGlvbjogJXMsIHVzZXI6ICclLjY0cydAJyUuMjU1cycsIHJvbGVzOiAlLjUxMnMAQ2Fubm90IGdlbmVyYXRlIHBhc3N3b3JkOiAnJS4zMnMnAEZhaWxlZCB0byBnZW5lcmF0ZSBhIHJhbmRvbSBwYXNzd29yZCBmb3Igcm9vdC4gUHJvYmFiYWJseSBub3QgZW5vdWdoIGVudGhyb3B5LgBJZ25vcmluZyAtLXBsdWdpbi1sb2FkW19hZGRdIGxpc3QgYXMgdGhlIHNlcnZlciBpcyBydW5uaW5nIHdpdGggLS1pbml0aWFsaXplKC1pbnNlY3VyZSkuAENhbm5vdCBzZXQgbWFuZGF0b3J5X3JvbGVzOiBBdXRoSWQgYCUuNjRzYEBgJS42NHNgIGhhcyAnJXMnIHByaXZpbGVnZS4gQXV0aElkKHMpIHNldCBpbiB0aGUgbWFuZGF0b3J5X3JvbGVzIGFyZSBpZ25vcmVkLgBEaXJlY3RvcnkgJyVzJyB3aWxsIG5vdCBiZSBzY2FubmVkIGJlY2F1c2UgaXQgaXMgYSBoaWRkZW4gZGlyZWN0b3J5LgBTZXJ2ZXIgd2FzIG5vdCBhYmxlIHRvIGZpbmQgYSByb3RhdGUgZXZlbnQgZnJvbSBzb3VyY2Ugc2VydmVyIHRvIGluaXRpYWxpemUgcmVsYXkgbG9nIHJlY292ZXJ5IGZvciBjaGFubmVsICclcycuIFNraXBwaW5nIHJlbGF5IGxvZyByZWNvdmVyeSBmb3IgdGhlIGNoYW5uZWwuAFJvbGxpbmcgYmFjayBMT0IgZm9yIHRyYW5zYWN0aW9uICVsbHUgdW5kbyBudW1iZXIgJWxsdSA6IGN1cnJlbnQgaW5kZXggbGVuZ3RoICVsbHUuIChpdGVyYXRpb24gJWxsdSkARXJyb3IgaW4gcHJvY2Vzc2luZyAocG9zc2libHkgZGVwcmVjYXRlZCkgZXhwcmVzc2lvbiBvciBmdW5jdGlvbiAnJS4xMjhzJyBmb3IgZ2VuZXJhdGVkIGNvbHVtbiAlLjY0cy4lLjY0cy4lLjY0cwBUaGUgcXVldWUgZXZlbnQgZmFpbGVkIGZvciBjaGFubmVsICclcycgYXMgYW4gaW52YWxpZCBldmVudCBhY2NvcmRpbmcgdG8gUkVRVUlSRV9ST1dfRk9STUFUIHdhcyBmb3VuZC4AVGhlIGFwcGxpY2F0aW9uIG9mIHJlbGF5IGV2ZW50cyBmYWlsZWQgZm9yIGNoYW5uZWwgJyVzJyBhcyBhbiBpbnZhbGlkIGV2ZW50IGFjY29yZGluZyB0byBSRVFVSVJFX1JPV19GT1JNQVQgd2FzIGZvdW5kLgBQUklWSUxFR0VfQ0hFQ0tTX1VTRVIgZm9yIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgY2FuJ3QgYmUgc2V0IHRvIGAlLjY0c2BAYCUuMjU1c2AgdW5sZXNzIFJFUVVJUkVfUk9XX0ZPUk1BVCBpcyBhbHNvIHNldCB0byAlZC4AQW4gdW5leHBlY3RlZCBldmVudCBzZXF1ZW5jZSB3YXMgZGV0ZWN0ZWQgYnkgdGhlIFNRTCB0aHJlYWQgd2hpbGUgYXBwbHlpbmcgYW4gZXZlbnQuAFVwZGF0aW5nIHBhcnRpdGlvbiBmaWxlIG5hbWUgJyVzJyB0byAnJXMnIGFuZCBhbGwgb3RoZXIgcGFydGl0aW9uIGZpbGVzIGR1cmluZyB1cGdyYWRlAFVwZGF0aW5nIHBhcnRpdGlvbiBmaWxlIG5hbWUgJyVzJyB0byAnJXMnIGFuZCBhbGwgb3RoZXIgcGFydGl0aW9uIGZpbGVzIGR1cmluZyBkb3duZ3JhZGUAVXBkYXRpbmcgcGFydGl0aW9uIGZpbGUgbmFtZSAnJXMnIHRvICclcycgZm9yIGltcG9ydABVbmFibGUgdG8gb3BlbiBwYXJ0aXRpb24gZmlsZSB3aXRoIG5ldyBuYW1lICclcycuIFBsZWFzZSBjaGVjayBpZiBpbm5vZGJfZGlyZWN0b3JpZXMgaXMgc2V0IHRvIGluY2x1ZGUgYWxsIGV4dGVybmFsIGZpbGUgcGF0aHMAJXMgREQgSUQ6ICVsbHUgLSBQYXJ0aXRpb24gdGFibGVzcGFjZSAldSwgbmFtZSAnJXMnIGlzIGNvcnJlY3RlZCB0byAnJXMnACVzIEREIElEOiAlbGx1IC0gVGFibGVzcGFjZSAldSwgbmFtZSAnJXMnLCAnJXMnIGlzIG1vdmVkIHRvICclcycAJXMgREQgSUQ6ICVsbHUgLSBQYXJ0aXRpb24gdGFibGVzcGFjZSAldSwgbmFtZSAnJXMnLCAnJXMnIGlzIHVwZGF0ZWQgdG8gJyVzJwAlcyBUb28gbWFueSBmaWxlcyBoYXZlIGJlZW4gbW92ZWQsIGRpc2FibGluZyBsb2dnaW5nIG9mIGRldGFpbGVkIG1lc3NhZ2VzAEVsZWN0ZWQgcHJpbWFyeSBtZW1iZXIgJXM6ICVzAFNjaGVtYSBuYW1lICclcycgY29udGFpbmluZyB1cHBlciBjYXNlIGNoYXJhY3RlcnMgaXMgbm90IGFsbG93ZWQgd2l0aCBsb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gMS4AVGFibGUgbmFtZSAnJXMuJXMnIGNvbnRhaW5pbmcgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzIGlzIG5vdCBhbGxvd2VkIHdpdGggbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IDEuAFNjaGVtYSBuYW1lICclcycgY29udGFpbmluZyB1cHBlciBjYXNlIGNoYXJhY3RlcnMsIHVzZWQgYnkgZm9yZWlnbiBrZXkgJyVzJyBpbiB0YWJsZSAnJXMuJXMnLCBpcyBub3QgYWxsb3dlZCB3aXRoIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAxLgBUYWJsZSBuYW1lICclcy4lcycgY29udGFpbmluZyB1cHBlciBjYXNlIGNoYXJhY3RlcnMsIHVzZWQgYnkgZm9yZWlnbiBrZXkgJyVzJyBpbiB0YWJsZSAnJXMuJXMnLCBpcyBub3QgYWxsb3dlZCB3aXRoIGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSAxLgBUYWJsZSBQYXJ0aXRpb246ICVzIGlzIG5vdCBmb3VuZCBpbiBJbm5vREIgZGljdGlvbmFyeQBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICclLS40OHMnQCclLS42NHMnLiBBY2NvdW50IGlzIGJsb2NrZWQgZm9yICVzIGRheShzKSAoJXMgZGF5KHMpIHJlbWFpbmluZykgZHVlIHRvICV1IGNvbnNlY3V0aXZlIGZhaWxlZCBsb2dpbnMuIFVzZSBGTFVTSCBQUklWSUxFR0VTIG9yIEFMVEVSIFVTRVIgdG8gcmVzZXQuACVzAFVwZ3JhZGUgY2Fubm90IHByb2NlZWQgZHVlIHRvIGFuIGV4aXN0aW5nIHByZXBhcmVkIFhBIHRyYW5zYWN0aW9uLgBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBrZXlfaW5mbyB3aGVuIG1pZ3JhdGluZyB0YWJsZSAlcy4lcwBBcHBsaWVyIG1ldGFkYXRhIGluZm9ybWF0aW9uIGZvciBjaGFubmVsICclcycgd2FzIGZvdW5kIGFmdGVyIGEgY2xvbmUgb3BlcmF0aW9uLiBSZWxheSBsb2cgcmVjb3Zlcnkgd2lsbCBiZSBleGVjdXRlZCB0byBhZGp1c3QgcG9zaXRpb25zIGFuZCBmaWxlIGluZm9ybWF0aW9uIGZvciB0aGlzIG5ldyBzZXJ2ZXIuIFNob3VsZCB0aGF0IGF1dG9tYXRpYyBwcm9jZWR1cmUgZmFpbCBwbGVhc2UgYWRqdXN0IHRoZSBwb3NpdGlvbnMgdGhyb3VnaCAnQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTycARmFpbGVkIHRvIGRlbGV0ZSA1LjcgdW5kbyB0YWJsZXNwYWNlOiAlcyBkdXJpbmcgdXBncmFkZQBFbXB0eSBkb3VibGV3cml0ZSBmaWxlOiAlcwBVc2luZyAnJXMnIGZvciBkb3VibGV3cml0ZQBFcnJvciByZWFkaW5nIGRvdWJsZXdyaXRlIGJ1ZmZlciBmcm9tIHRoZSBzeXN0ZW0gdGFibGVzcGFjZQBDYW5ub3QgY3JlYXRlIGRvdWJsZXdyaXRlIGJ1ZmZlcjogeW91IG11c3QgaW5jcmVhc2UgeW91ciBidWZmZXIgcG9vbCBzaXplLiBDYW5ub3QgY29udGludWUgb3BlcmF0aW9uLgBUaGUgcGFnZSBpbiB0aGUgZG91Ymxld3JpdGUgZmlsZSBpcyBjb3JydXB0LiBDYW5ub3QgY29udGludWUgb3BlcmF0aW9uLiBZb3UgY2FuIHRyeSB0byByZWNvdmVyIHRoZSBkYXRhYmFzZSB3aXRoIGlubm9kYl9mb3JjZV9yZWNvdmVyeT02AFRoZSBkb3VibGV3cml0ZSBmaWxlbmFtZSAnJXMnIGlzIGluY29ycmVjdC4AJXMARG91Ymxld3JpdGUgZmlsZSBjcmVhdGUgZmFpbGVkOiAlcwBEQkxXUlRocmVhZDogcHRocmVhZF9zZXRhZmZpbml0eSgpIGZhaWxlZCEAJXMAJXMARG91Ymxld3JpdGUgZmlsZSByZWFkIGZhaWxlZDogJXMARHVtcCBvZiB0aGUgZGF0YSBmaWxlIHBhZ2U6ACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzACVzAERvdWJsZXdyaXRlIGxvYWQgZmlsZSAlcyBzaXplICVsdSBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgY29uZmlndXJlZCBwYWdlIHNpemUgJWx1IgBEb3VibGV3cml0ZSBmaWxlICVzIHRydW5jYXRlIGZhaWxlZABEb3VibGV3cml0ZSBmaWxlICVzIGZhaWxlZCB0byB3cml0IHplcm9zAERvdWJsZXdyaXRlIGNyZWF0ZSBmaWxlICVzIHNpemUgJWx1IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBjb25maWd1cmVkIHBhZ2Ugc2l6ZSAlbHUiACVzACVzACVzACVzACVzAENvdWxkIG5vdCBmbHVzaCBhbGwgR1RJRHMgZHVyaW5nIHNsb3cgc2h1dGRvd24uIFdpbGwgcmVjb3ZlciBHVElEcyB3aGVuIHNlcnZlciByZXN0YXJ0cy4ARmFpbGVkIHRvIGRlbGV0ZSA1Ljcgc3RhdCB0YWJsZXNwYWNlOiAlcyBkdXJpbmcgdXBncmFkZQBJbnN0YWxsaW5nIG5kYmluZm8gc2NoZW1hIHZlcnNpb24gJXMASW5zdGFsbGVkIG5kYmluZm8gc2NoZW1hIGlzIGN1cnJlbnQuIE5vdCB1cGdyYWRpbmcuAEZhaWxlZCB0byB1cGdyYWRlIG5kYmluZm8gc2NoZW1hLgAlcwBJbm5vREIgaW5pdGlhbGl6YXRpb24gaGFzIHN0YXJ0ZWQuAElubm9EQiBpbml0aWFsaXphdGlvbiBoYXMgZW5kZWQuAENvdWxkIG5vdCBmaW5kIGFwcHJvcHJpYXRlIHJlc2V0IHBvaW50cy4AVW5hYmxlIHRvIGZsdXNoLiBQYWdlIGFyY2hpdmluZyBkYXRhIG1heSBiZSBjb3JydXB0IGluIGNhc2Ugb2YgYSBjcmFzaC4AUGFnZSBhcmNoaXZlcidzIGRvdWJsZXdyaXRlIGJ1ZmZlciBmb3IgJWxkIGlzIG5vdCB2YWxpZC4AUGFnZSBhcmNoaXZlciBzeXN0ZW0ncyByZWNvdmVyeSBmYWlsZWQuAEludmFsaWQgYXJjaGl2ZWQgZmlsZSBuYW1lIGZvcm1hdC4gVGhlIGFyY2hpdmVkIGZpbGUgaXMgc3VwcG9zZWQgdG8gaGF2ZSB0aGUgZm9ybWF0ICVzICsgWzAtOV0qLgBYIFBsdWdpbnMgVU5JWCBzb2NrZXQgbXVzdCB1c2UgZGlmZmVyZW50IGZpbGUgdGhhbiBNeVNRTCBzZXJ2ZXIuIFggUGx1Z2luIHdvbid0IGJlIGFjY2Vzc2libGUgdGhyb3VnaCBVTklYIHNvY2tldAAlcwBDb2x1bW4gJyUuNjRzLiUuNjRzLiUuNjRzJyBoYXZpbmcgcHJlZml4IGtleSBwYXJ0ICclLjY0cygldSknIGlzIGlnbm9yZWQgYnkgdGhlIHBhcnRpdGlvbmluZyBmdW5jdGlvbi4gVXNlIG9mIHByZWZpeGVkIGNvbHVtbnMgaW4gdGhlIFBBUlRJVElPTiBCWSBLRVkoKSBjbGF1c2UgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuAFVuZG8gVHJ1bmNhdGlvbiBpcyBvY2N1cnJpbmcgdG9vIG9mdGVuLiBDb25zaWRlciBpbmNyZWFzaW5nIC0taW5ub2RiLW1heC11bmRvLWxvZy1zaXplLgBQbHVnaW4gJ2dyb3VwX3JlcGxpY2F0aW9uJyBpcyBzdGFydGluZy4AQ2Fubm90IGNyZWF0ZSB0YWJsZXNwYWNlICVzIGJlY2F1c2UgdGhlIGRpcmVjdG9yeSBpcyBub3QgYSB2YWxpZCBsb2NhdGlvbi4gJXMAU2Nhbm5lZCBmaWxlICclcycgZm9yIHRhYmxlc3BhY2UgJXMgY2Fubm90IGJlIG9wZW5lZCBiZWNhdXNlIGl0IGlzIG5vdCBpbiBhIHN1Yi1kaXJlY3RvcnkgbmFtZWQgZm9yIHRoZSBzY2hlbWEuAENhbm5vdCBmaW5kIHVuZG8gdGFibGVzcGFjZSAlcyB3aXRoIGZpbGVuYW1lICclcycgYXMgaW5kaWNhdGVkIGJ5IHRoZSBEYXRhIERpY3Rpb25hcnkuIERpZCB5b3UgbW92ZSBvciBkZWxldGUgdGhpcyB0YWJsZXNwYWNlPyBBbnkgdW5kbyBsb2dzIGluIGl0IGNhbm5vdCBiZSB1c2VkLgBJbnZhbGlkIGlucHV0IHZhbHVlIGZvciByZWNvdmVyeSBzb2NrZXQgZW5kcG9pbnRzICclcycuIFBsZWFzZSwgcHJvdmlkZSBhIHZhbGlkLCBjb21tYSBzZXBhcmF0ZWQsIGxpc3Qgb2YgZW5kcG9pbnRzIChJUDpwb3J0KQBUaGUgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgb24gZW5kcG9pbnQgJyVzJy4gT25seSBlbmRwb2ludHMgdGhhdCB0aGUgc2VydmVyIGlzIGxpc3RlbmluZyBvbiBhcmUgdmFsaWQgcmVjb3ZlcnkgZW5kcG9pbnRzLgBSZWNlaXZlZCBpbnZhbGlkIHJlY292ZXJ5IGVuZHBvaW50cyBjb25maWd1cmF0aW9uIGZyb20gZG9ub3IuIFRoaXMgbWVtYmVyIGlzIG5vdCBhIHZhbGlkIGRvbm9yIGZvciByZWNvdmVyeSwgc28gaXQgd2lsbCBiZSBza2lwcGVkLgBGYWlsZWQgdG8gcmV0cmlldmUgSVAgYWRkcmVzc2VzIGZyb20gZW5hYmxlZCBob3N0IG5ldHdvcmsgaW50ZXJmYWNlcy4ARmFpbGVkIHRvIGluaXRpYWxpemUgVExTIGZvciBjaGFubmVsOiAlcy4gU2VlIGJlbG93IGZvciB0aGUgZGVzY3JpcHRpb24gb2YgZXhhY3QgaXNzdWUuAFZhbGlkYXRpb24gb2YgdmFsdWUgJyVzJyBzZXQgdG8gYE15c3FseF9iaW5kX2FkZHJlc3NgIGZhaWxlZDogJXMuIFNraXBwaW5nIHRoaXMgdmFsdWUuAFZhbHVlICclcycgc2V0IHRvIGBNeXNxbHhfYmluZF9hZGRyZXNzYCwgWCBQbHVnaW4gY2FuJ3QgYmluZCB0byBpdC4gU2tpcHBpbmcgdGhpcyB2YWx1ZS4AU2VydmVyIHdhcyBraWxsZWQgd2hlbiBJbm5vREIgcmVkbyBsb2dnaW5nIHdhcyBkaXNhYmxlZC4gRGF0YSBmaWxlcyBjb3VsZCBiZSBjb3JydXB0LiBZb3UgY2FuIHRyeSB0byByZXN0YXJ0IHRoZSBkYXRhYmFzZSB3aXRoIGlubm9kYl9mb3JjZV9yZWNvdmVyeT02AElubm9EQiBjYW5ub3QgZG8gY29sZCBzaHV0ZG93biAnaW5ub2RiX2Zhc3Rfc2h1dGRvd24gPSAyJyBhbmQgaXMgZm9yY2luZyAnaW5ub2RiX2Zhc3Rfc2h1dGRvd24gPSAxJyBhcyByZWRvIGxvZ2dpbmcgaXMgZGlzYWJsZWQuIElubm9EQiB3b3VsZCBmbHVzaCBhbGwgZGlydHkgcGFnZXMgdG8gZW5zdXJlIHBoeXNpY2FsIGRhdGEgY29uc2lzdGVuY3kuAElubm9EQiByZWRvIGxvZ2dpbmcgaXMgZGlzYWJsZWQuIEFsbCBkYXRhIGNvdWxkIGJlIGxvc3QgaW4gY2FzZSBvZiBhIHNlcnZlciBjcmFzaC4ASW5ub0RCIHJlZG8gbG9nZ2luZyBpcyBlbmFibGVkLiBEYXRhIGlzIG5vdyBzYWZlIGFuZCBjYW4gYmUgcmVjb3ZlcmVkIGluIGNhc2Ugb2YgYSBzZXJ2ZXIgY3Jhc2guAENoYW5uZWwgJXMgY29uZmlndXJlZCB0byBzdXBwb3J0IFRMUy4gRW5jcnlwdGVkIGNvbm5lY3Rpb25zIGFyZSBub3cgc3VwcG9ydGVkIGZvciB0aGlzIGNoYW5uZWwuAE5vIFRMUyBjb25maWd1cmF0aW9uIHdhcyBnaXZlbiBmb3IgY2hhbm5lbCAlczsgcmUtdXNpbmcgVExTIGNvbmZpZ3VyYXRpb24gb2YgY2hhbm5lbCAlcy4AU2tpcHBpbmcgSW5ub0RCIHRhYmxlc3BhY2UgcGF0aCB2YWxpZGF0aW9uLiBNYW51YWxseSBtb3ZlZCB0YWJsZXNwYWNlIGZpbGVzIHdpbGwgbm90IGJlIGRldGVjdGVkIQBVcGdyYWRlIGZhaWxlZCBiZWNhdXNlIGRhdGFiYXNlIGNvbnRhaW5zIGRpc2NhcmRlZCB0YWJsZXNwYWNlcy4AVGhlIHVzZXIgbmFtZSAnJXMnIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGFsbG93ZWQgY2hhcmFjdGVycyAlZCBhbmQgaXMgdHJ1bmthdGVkLgBUaGUgaG9zdCBuYW1lICclcycgZXhjZWVkcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBjaGFyYWN0ZXJzICVkIGFuZCBpcyB0cnVua2F0ZWQuAFJvbGxiYWNrIG9mIG5vbi1wcmVwYXJlZCB0cmFuc2FjdGlvbnMgbm90IGNvbXBsZXRlZCwgZHVlIHRvIGZhc3Qgc2h1dGRvd24ARm91bmQgYW4gZW50cnkgaW4gdGhlICdyb2xlX2VkZ2VzJyB0YWJsZSB3aXRoIGVtcHR5IGF1dGhvcml6YXRpb24gSUQ7IFNraXBwZWQARm91bmQgYW4gZW50cnkgaW4gdGhlICdyb2xlX2VkZ2VzJyB0YWJsZSB3aXRoIHVua25vd24gYXV0aG9yaXphdGlvbiBJRCAnJXMnOyBTa2lwcGVkAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAnZGVmYXVsdF9yb2xlcycgdGFibGUgd2l0aCBlbXB0eSBhdXRob3JpemF0aW9uIElEOyBTa2lwcGVkAEZvdW5kIGFuIGVudHJ5IGluIHRoZSAnZGVmYXVsdF9yb2xlcycgdGFibGUgd2l0aCB1bmtub3duIGF1dGhvcml6YXRpb24gSUQgJyVzJzsgU2tpcHBlZABDb3VsZG4ndCBpbnNlcnQgZW50cnkgaW4gZGRsIGxvZyBmb3IgZGRsLgAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwAlcwBUaGUgc3RhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGlzIHNldCB0byBhY3RpdmUgaW1wbGljaXRseS4AVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gJ2FjdGl2ZScgYnkgQUxURVIgVEFCTEVTUEFDRS4AVGhlIHN0YXRlIG9mIHVuZG8gdGFibGVzcGFjZSAlcyBpcyBzZXQgdG8gJ2luYWN0aXZlJyBieSBBTFRFUiBUQUJMRVNQQUNFLgBUaGUgc3RhdGUgb2YgdW5kbyB0YWJsZXNwYWNlICVzIGlzIHNldCB0byAnZW1wdHknLgBEZWxheWluZyB0cnVuY2F0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgZHVlIHRvIGNsb25lIGFjdGl2aXR5LgBEZWxheWluZyB0cnVuY2F0ZSBvZiB1bmRvIHRhYmxlc3BhY2UgJXMgZHVlIHRvIGEgbWV0YWRhdGEgbG9jay4ASW5qZWN0ZWQgZGVidWcgY3Jhc2ggcG9pbnQ6ICVzAEluamVjdGVkIGRlYnVnIGZhaWx1cmUgcG9pbnQ6ICVzAFRpbWVvdXQgd2hpbGUgd2FpdGluZyBmb3IgYSB2aWV3IGNoYW5nZSBldmVudCBkdXJpbmcgdGhlIGxlYXZlIHN0ZXAgYmVmb3JlIGEgYXV0by1yZWpvaW4gYXR0ZW1wdC4ARmFpbGVkIHRvIGF1dG9tYXRpY2FsbHkgcmUtY29ubmVjdCB0byBhIGRpZmZlcmVudCBzb3VyY2UsIGZvciBjaGFubmVsICclcycsIGJlY2F1c2UgJXMuIFRvIGZpeCB0aGlzICVzLgBDb3VsZCBub3QgZXhlY3V0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIFVERiBmdW5jdGlvbnMuIENoZWNrIGZvciBvdGhlciBlcnJvcnMgaW4gdGhlIGxvZwBDb3VsZCBub3QgZXhlY3V0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIFVERiBmdW5jdGlvbjogJXMuIENoZWNrIGlmIHRoZSBmdW5jdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQsIGlmIHNvLCB0cnkgdG8gcmVtb3ZlIGl0LgBDb3VsZCBub3QgdW5pbnN0YWxsIFVERiBmdW5jdGlvbnMuIFRyeSB0byByZW1vdmUgdGhlbSBtYW51YWxseSBpZiBwcmVzZW50LgBBbiBlbXB0eSBvciBpbGxlZ2FsIHByaXZpbGVnZSBpZGVudGlmaWVyIHdhcyBpZ25vcmVkIHdoZW4gZ2xvYmFsIHByaXZpbGVnZXMgd2VyZSByZWFkIGZyb20gZGlzay4AJXMAQSB0bXBkaXIgdGVtcG9yYXJ5IHBhdGggIiVzIiBpcyB0b28gbG9uZyAoPiAlenUpIGZvciB0aGlzIE9TLiBUaGlzIHdvdWxkIG5vdCBsZWF2ZSBlbm91Z2ggc3BhY2UgZm9yIGEgdGVtcG9yYXJ5IGZpbGVuYW1lIG9mIGxlbmd0aCAlenUgd2l0aGluIGl0LgBFcnJvci1sb2cgZGVzdGluYXRpb24gIiVzIiBpcyBub3QgYSBmaWxlLiBDYW4gbm90IHJlc3RvcmUgZXJyb3IgbG9nIG1lc3NhZ2VzIGZyb20gcHJldmlvdXMgcnVuLgBOb25lIG9mIHRoZSBsb2ctc2lua3Mgc2VsZWN0ZWQgd2l0aCAtLWxvZy1lcnJvci1zZXJ2aWNlcz0uLi4gcHJvdmlkZXMgYSBsb2ctcGFyc2VyLiBUaGUgc2VydmVyIHdpbGwgbm90IGJlIGFibGUgdG8gbWFrZSB0aGUgcHJldmlvdXMgcnVucycgZXJyb3ItbG9ncyBhdmFpbGFibGUgaW4gcGVyZm9ybWFuY2Vfc2NoZW1hLmVycm9yX2xvZy4AVGhlIHNjaGVtYSAiJS42NHMiIHJlZmVyZW5jZWQgYnkgJS4xNnMgIiUuMTI4cyIgZG9lcyBub3QgZXhpc3QuIFBsZWFzZSBjbGVhbiB1cCBhbnkgb3JwaGFuICUuMTZzIGJlZm9yZSB1cGdyYWRpbmcuAENyZWF0ZWQgdW5kbyB0YWJsZXNwYWNlICclcycuAERyb3BwZWQgdW5kbyB0YWJsZXNwYWNlICclcycuAFRoZSBJbm5vREIgRW5jcnlwdGlvbiBNYXN0ZXIgS2V5IGhhcyBiZWVuIHJvdGF0ZWQgaW4gJWQgdGFibGVzcGFjZXMuAEZhaWxlZCB0byBkZWNvbXByZXNzIGEgREJMV1IgcGFnZSAoZXJyPSVkKS4gIFRoZSBvcmlnaW5hbCBzaXplIGlzICVkLiBSZXBvcnRpbmcgdGhlIGRibHdyIHBhZ2UgYXMgY29ycnVwdGVkLgBEZWNyeXB0aW5nIGEgcGFnZSBpbiBkb3VibGV3cml0ZSBmaWxlIGZhaWxlZDogJXMuAEVuY3J5cHRpb24ga2V5IG1pc3Npbmc6ICVzLgBJL08gZXJyb3Igd2hpbGUgd3JpdGluZyB0byBmaWxlOiAlcy4gUmV0cnlpbmcgLi4uAEZhaWxlZCB0byB3cml0ZSBkYXRhIHRvIGZpbGU6ICVzAExvZyBjb21wb25lbnQgJXMgZmFpbGVkIHRvIGluaXRpYWxpemUuAFRoZSBNb25pdG9yIElPIHRocmVhZCBmYWlsZWQgdG8gY29ubmVjdCB0byB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycsIHRoZW5jZSBpdCB3aWxsIHRyeSB0byBjb25uZWN0IHRvIGFub3RoZXIgc291cmNlLgBUaGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycgaGFzIGpvaW5lZCB0aGUgZ3JvdXAgKGdyb3VwX25hbWU6ICVzKSwgYW5kIHNvIGFkZGVkIGl0cyBlbnRyeSBpbnRvIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyIHRhYmxlLgBUaGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGZvciBjaGFubmVsICclcycgaGFzIGxlZnQgdGhlIGdyb3VwIChncm91cF9uYW1lOiAlcyksIGFuZCBzbyByZW1vdmVkIGl0cyBlbnRyeSBmcm9tIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyIHRhYmxlLgBUaGUgTW9uaXRvciBJTyB0aHJlYWQgZGV0ZWN0ZWQgdGhhdCB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ3JvdXAgbWFqb3JpdHksIHRoZW5jZSB0aGUgY2hhbm5lbCAnJXMnIHdpbGwgdHJ5IHRvIGNvbm5lY3QgdG8gYW5vdGhlciBzb3VyY2UuAFRoZSBJTyB0aHJlYWQgZGV0ZWN0ZWQgdGhhdCB0aGUgc291cmNlIChob3N0OiVzIHBvcnQ6JXUgbmV0d29ya19uYW1lc3BhY2U6JXMpIGRvZXMgbm90IGJlbG9uZyB0byB0aGUgZ3JvdXAgbWFqb3JpdHksIHRoZW5jZSB0aGUgY2hhbm5lbCAnJXMnIHdpbGwgdHJ5IHRvIGNvbm5lY3QgdG8gYW5vdGhlciBzb3VyY2UuACVzIG9uIHRoZSBzb3VyY2UgKGhvc3Q6JXMgcG9ydDoldSBuZXR3b3JrX25hbWVzcGFjZTolcykgZm9yIGNoYW5uZWwgJyVzJy4AUmVwbGljYSBNb25pdG9yIElPIHRocmVhZCBleGl0aW5nLgBUaGUgZ3JvdXAgKGdyb3VwX25hbWU6ICVzKSBmb3IgdGhlIGNoYW5uZWwgJyVzJyBoYXMgYmVlbiByZW1vdmVkLCBhbmQgc28gcmVtb3ZlZCBpdHMgZW50cnkgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3Zlcl9tYW5hZ2VkIGFuZCBhbGwgdGhlIGdyb3VwIG1lbWJlcnMgZnJvbSByZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3ZlciB0YWJsZS4AVGhlIGdyb3VwIChncm91cF9uYW1lOiAlcykgZm9yIHRoZSBjaGFubmVsICclcycgaGFzIGJlZW4gYWRkZWQsIGFuZCBzbyBhZGRlZCBpdHMgZW50cnkgaW4gcmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCBhbmQgc291cmNlIHRvIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyIHRhYmxlLgBFcnJvciByZWFkaW5nIGZhaWxvdmVyIHNvdXJjZXMgZm9yIGNoYW5uZWwgJyVzJyBmcm9tIHJlcGxpY2F0aW9uX2FzeW5jaHJvbm91c19jb25uZWN0aW9uX2ZhaWxvdmVyIHRhYmxlLgBFcnJvciAlcyB0aGUgY2hhbm5lbCAnJXMnLCB0aGUgb3BlcmF0aW9uIHdpbGwgYmUgYXV0b21hdGljYWxseSByZXRyaWVkLgBSZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUz0nJXMnLCB3aGljaCBpcyBpbnZhbGlkIHdoZW4gR1RJRF9NT0RFIDw+IE9OLiBJZiB5b3UgaW50ZW5kIHRvIHVzZSBHVElEX01PREUgPSBPTiBldmVyeXdoZXJlLCBjaGFuZ2UgdG8gQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgPSBPRkYgYW5kIHVzZSB0aGUgcHJvY2VkdXJlIGZvciBlbmFibGluZyBHVElEcyBvbmxpbmUgKHNlZSB0aGUgZG9jdW1lbnRhdGlvbikuIElmIHlvdSBpbnRlbmQgdG8gdXNlIEdUSURzIG9uIHRoaXMgcmVwbGljYSBhbmQgY2Fubm90IGVuYWJsZSBHVElEcyBvbiB0aGUgc291cmNlLCBlbmFibGUgR1RJRF9NT0RFID0gT04gYW5kIGxlYXZlIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TID0gTE9DQUx8PFVVSUQ+LiBJZiB5b3UgaW50ZW5kIHRvIG5vdCB1c2UgR1RJRHMgYXQgYWxsIGluIHRoZSByZXBsaWNhdGlvbiB0b3BvbG9neSwgY2hhbmdlIHRvIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TPU9GRiBhbmQgbGVhdmUgR1RJRF9NT0RFID0gJyVzJy4AUmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyBpcyBjb25maWd1cmVkIHdpdGggQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlM9JyVzJyB3aGljaCBpcyBlcXVhbCB0byBncm91cF9yZXBsaWNhdGlvbl9ncm91cF9uYW1lLiBUbyBmaXggdGhpcyBpc3N1ZSwgZWl0aGVyIGNoYW5nZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAgb3IgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUy4AVGhlIGdyb3VwX3JlcGxpY2F0aW9uX2dyb3VwX25hbWUgJyVzJyBpcyB0aGUgc2FtZSBhcyB0aGUgVVVJRCB2YWx1ZSBmb3IgQVNTSUdOX0dUSURTX1RPX0FOT05ZTU9VU19UUkFOU0FDVElPTlMgaW4gYSBzZXJ2ZXIgY2hhbm5lbABUaGUgaW50ZWdlciBjb21wb25lbnQgb2YgdGhlIEdUSUQgbnVtYmVyIGlzIGhpZ2guIFN1Z2dlc3QgcmVzdGFydGluZyB0aGUgc2VydmVyIHdpdGggYSBuZXcgc2VydmVyX3V1aWQgdG8gcHJldmVudCBpdCBmcm9tIHJlYWNoaW5nIHRoZSBtYXhpbXVtIG51bWJlciAyXjYzLTEsIHdoaWNoIHdpbGwgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIHdyaXRlIHRoZSBiaW5hcnkgbG9nIGFuZCBpbnZva2UgdGhlIGJlaGF2aW9yIHNwZWNpZmllZCBieSBiaW5sb2dfZXJyb3JfYWN0aW9uLgAlcwAlcwAlcwAlczogV2FybmluZyBMZXZlbCAxICglbGx1IE1pQik6IG1vdW50IHBvaW50ID0gJyVzJywgYXZhaWxhYmxlID0gJWxsdSBNaUIsIHRvdGFsID0gJWxsdSBNaUIsIHVzZWQgPSAlLjJmJSUsIGxvdyBsaW1pdCA9ICVsbHUgTWlCLCBjcml0aWNhbCBsZXZlbCA9ICVsbHUgTWlCACVzOiBXYXJuaW5nIExldmVsIDIgKCVsbHUgTWlCKTogbW91bnQgcG9pbnQgPSAnJXMnLCBhdmFpbGFibGUgPSAlbGx1IE1pQiwgdG90YWwgPSAlbGx1IE1pQiwgdXNlZCA9ICUuMmYlJSwgbG93IGxpbWl0ID0gJWxsdSBNaUIsIGNyaXRpY2FsIGxldmVsID0gJWxsdSBNaUIAJXM6IFdhcm5pbmcgTGV2ZWwgMyAoJWxsdSBNaUIpOiBtb3VudCBwb2ludCA9ICclcycsIGF2YWlsYWJsZSA9ICVsbHUgTWlCLCB0b3RhbCA9ICVsbHUgTWlCLCB1c2VkID0gJS4yZiUlLCBsb3cgbGltaXQgPSAlbGx1IE1pQiwgY3JpdGljYWwgbGV2ZWwgPSAlbGx1IE1pQgBJbm5vREI6IFNpemUgb2YgdGFibGVzcGFjZSAlcyBpcyBtb3JlIHRoYW4gdGhlIG1heGltdW0gc2l6ZSBhbGxvd2VkLgBUaGUgZ3JvdXBfcmVwbGljYXRpb25fYXBwbGllciBjaGFubmVsIGlzIHN0aWxsIHJ1bm5pbmcsIG1vc3QgbGlrZWx5IGl0IGlzIHdhaXRpbmcgZm9yIGEgZGF0YWJhc2UvdGFibGUgbG9jaywgd2hpY2ggaXMgcHJldmVudGluZyB0aGUgY2hhbm5lbCBmcm9tIHN0b3BwaW5nLiBQbGVhc2UgY2hlY2sgZGF0YWJhc2UvdGFibGUgbG9ja3MsIGluY2x1ZGluZyB0aGUgb25lcyBjcmVhdGVkIGJ5IGJhY2t1cCB0b29scy4ARGV0ZWN0ZWQgbWlzY29uZmlndXJhdGlvbjogcmVwbGljYXRpb24gY2hhbm5lbCAnJS4xOTJzJyB3YXMgY29uZmlndXJlZCB3aXRoIFNPVVJDRV9DT05ORUNUSU9OX0FVVE9fRkFJTE9WRVIgPSAxLCBidXQgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCB3aXRoIGEgdmFsdWUgb3RoZXIgdGhlbiAtLWd0aWQtbW9kZSA9IE9OLiBFaXRoZXIgcmVjb25maWd1cmUgcmVwbGljYXRpb24gdXNpbmcgQ0hBTkdFIFJFUExJQ0FUSU9OIFNPVVJDRSBUTyBTT1VSQ0VfQ09OTkVDVElPTl9BVVRPX0ZBSUxPVkVSID0gMCBGT1IgQ0hBTk5FTCAnJS4xOTJzJywgb3IgY2hhbmdlIEdUSURfTU9ERSB0byB2YWx1ZSBPTiwgYmVmb3JlIHN0YXJ0aW5nIHRoZSByZXBsaWNhIHJlY2VpdmVyIHRocmVhZC4AQ291bGQgbm90IGFjcXVpcmUgcmVxdWlyZWQgY29tcG9uZW50IHNlcnZpY2VzLgBBdXRvbWF0aWMgcmVnaXN0cmF0aW9uIG9mIGZ1bmN0aW9uKHMpIGZhaWxlZC4AQXV0b21hdGljIHJlZ2lzdHJhdGlvbiBvZiBQZXJmb3JtYW5jZSBzY2hlbWEgdGFibGUocykgZmFpbGVkLgAlcwBGYWlsZWQgdG8gYXV0by1wcnVuZSBmaWxlICclcycsIEVycm9yICglZCk6ICVzAEZpbGUgJyVzJyBhdXRvLXBydW5lZABSZWNlaXZlZCBhbiBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIGNvbXBvbmVudHMgZnJvbSBtYW5pZmVzdCBmaWxlOiAlcwBSZWNlaXZlZCBhbiBlcnJvciB3aGlsZSB1bmxvYWRpbmcgY29tcG9uZW50cyByZWFkIGZyb20gbWFuaWZlc3QgZmlsZTogJXMATWFuaWZlc3QgZmlsZSAnJXMnIGlzIG5vdCByZWFkLW9ubHkuIEZvciBiZXR0ZXIgc2VjdXJpdHksIHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB0aGUgZmlsZSBpcyByZWFkLW9ubHkuAE5vIHN1aXRhYmxlICclcycgc2VydmljZSBpbXBsZW1lbnRhdGlvbiBmb3VuZCB0byBmdWxmaWxsIHRoZSByZXF1ZXN0LgBLZXlyaW5nIGNvbXBvbmVudCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkuAFRoZSBjb21wb25lbnQgaXMgbm90IGluaXRpYWxpemVkIHByb3Blcmx5LiBNYWtlIHN1cmUgdGhhdCBjb25maWd1cmF0aW9uIGlzIHByb3BlciBhbmQgdXNlIEFMVEVSIElOU1RBTkNFIFJFTE9BRCBLRVlSSU5HIHRvIHJlaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50LgBLZXlyaW5nIGNvbXBvbmVudCBlbmNvdW50ZXJlZCBhbiBleGNlcHRpb24gd2hpbGUgZXhlY3V0aW5nIDogJyVzJyBBUEkgb2Ygc2VydmljZTogJyVzJwBGYWlsZWQgdG8gYWxsb2NhdGVkIG1lbW9yeSBmb3IgJyVzJyB3aGlsZSBleGVjdXRpbmc6ICclcycgQVBJIG9mIHNlcnZpY2U6ICclcycARW1wdHkgb3IgMCB2YWx1ZXMgZm9yIEFFUyBlbmNyeXB0aW9uIG1vZGUgYW5kL29yIGJsb2NrIHNpemUgYXJlIG5vdCBwZXJtaXR0ZWQuAEEgdmFsaWQgZGF0YSBpZGVudGlmaWVyIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZldGNoIHRoZSBrZXkgcmVxdWlyZWQgZm9yIHRoZSBBRVMgb3BlcmF0aW9uLgBLZXkgaWRlbnRpZmllZCBieSBEYXRhIElEOiAnJXMnIGFuZCBBdXRoIElEOiAnJXMnIGlzIG5vdCBvZiB0eXBlIEFFUy4ARW5jb3VudGVyZWQgZXJyb3I6ICclcycgd2hpbGUgZXhlY3V0aW5nICclcycgQVBJIG9mIGtleXJpbmdfYWVzIHNlcnZpY2UuIEtleSBkZXRhaWxzIGFyZSBEYXRhIElEOiAnJXMnIGFuZCBBdXRoIElEOiAnJXMnLgBDb3VsZCBub3QgZmluZCB0aGUgZGF0YSBjb3JyZXNwb25kaW5nIHRvIERhdGEgSUQ6ICclcycsIEF1dGggSUQ6ICclcycuAE1heGltdW0gcGVybWlzc2libGUgc2l6ZSBvZiBkYXRhIGlzICclenUnIGJpdHMARXJyb3Igd3JpdGluZyBkYXRhIGZvciBEYXRhIElEOiAnJXMnLCBBdXRoIElEOiAnJXMnLiBFaXRoZXIgZGF0YSBhbHJlYWR5IGV4aXN0cyB3aXRoIHNhbWUgaWRlbnRpZmllciBvciBrZXlyaW5nIGJhY2tlbmQgZW5jb3VudGVyZWQgYW4gZXJyb3IuAEVycm9yIHJlbW92aW5nIGRhdGEgZm9yIERhdGEgSUQ6ICclcycsIEF1dGggSUQ6ICclcycuIEVpdGhlciBkYXRhIGRvZXMgbm90IGV4aXN0cyB3aXRoIHNhbWUgaWRlbnRpZmllciBvciBrZXlyaW5nIGJhY2tlbmQgZW5jb3VudGVyZWQgYW4gZXJyb3IuAEVycm9yIGdlbmVyYXRpbmcgZGF0YSBmb3IgRGF0YSBJRDogJyVzJywgQXV0aCBJRDogJyVzJy4gRWl0aGVyIGRhdGEgYWxyZWFkeSBleGlzdHMgd2l0aCBzYW1lIGlkZW50aWZpZXIgb3Iga2V5cmluZyBiYWNrZW5kIGVuY291bnRlcmVkIGFuIGVycm9yLgBGYWlsZWQgdG8gZ2V0IG1ldGFkYXRhIGZyb20gY3VycmVudCBrZXlzIG1ldGFkYXRhIGl0ZXJhdG9yIHBvc2l0aW9uLgBLZXkgYW5kIHZhbHVlIGxlbmd0aCBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIG51bGwuAElubm9kYiBjb3VsZCBub3QgYWNxdWlyZSBzZXJ2aWNlIDogJXMAQ29sdW1uICVzIG9mIHR5cGUgR0VPTUVUUlkgaXMgaW4gb2xkICg1LjYpIGZvcm1hdCB3aGljaCBjb3VsZCBiZSBkZXByZWNhdGVkIGluIHRoZSBmdXR1cmUuIFRvIGNoYW5nZSB0aGUgZm9ybWF0IHRvIGxhdGVzdCwgcGxlYXNlIGNvbnNpZGVyIHJlYnVpbGRpbmcgdGhlIHRhYmxlIGFmdGVyIHRoZSB1cGdyYWRlLgAnd2FpdF90aW1lb3V0JyBwZXJpb2Qgb2YgJXMgc2Vjb25kcyB3YXMgZXhjZWVkZWQgZm9yICVzLiBUaGUgaWRsZSB0aW1lIHNpbmNlIGxhc3QgY29tbWFuZCB3YXMgdG9vIGxvbmcuAFRoZSBtZW1iZXIgYWN0aW9uICIlcyIgZm9yIGV2ZW50ICIlcyIgd2l0aCBwcmlvcml0eSAiJXUiIHdpbGwgYmUgcnVuLgBUaGUgbWVtYmVyIGFjdGlvbiAiJXMiIGZvciBldmVudCAiJXMiIHdpdGggcHJpb3JpdHkgIiV1IiBmYWlsZWQsIHRoaXMgZXJyb3IgaXMgaWdub3JlZCBhcyBpbnN0cnVjdGVkLiBQbGVhc2UgY2hlY2sgcHJldmlvdXMgbWVzc2FnZXMgaW4gdGhlIGVycm9yIGxvZyBmb3IgaGludHMgYWJvdXQgd2hhdCBjb3VsZCBoYXZlIGNhdXNlZCB0aGlzIGZhaWx1cmUuAFRoZSBtZW1iZXIgYWN0aW9uICIlcyIgZm9yIGV2ZW50ICIlcyIgd2l0aCBwcmlvcml0eSAiJXUiIGZhaWxlZC4gUGxlYXNlIGNoZWNrIHByZXZpb3VzIG1lc3NhZ2VzIGluIHRoZSBlcnJvciBsb2cgZm9yIGhpbnRzIGFib3V0IHdoYXQgY291bGQgaGF2ZSBjYXVzZWQgdGhpcyBmYWlsdXJlLgBVbmFibGUgdG8gcGFyc2UgdGhlIG1lbWJlciBhY3Rpb25zIGNvbmZpZ3VyYXRpb24gc2VudCBieSB0aGUgcHJpbWFyeS4AVW5hYmxlIHRvIHVwZGF0ZSB0aGUgbWVtYmVyIGFjdGlvbnMgY29uZmlndXJhdGlvbiB3aXRoIHRoZSBvbmUgc2VudCBieSB0aGUgcHJpbWFyeS4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFVuYWJsZSB0byByZWFkIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIGR1cmluZyBncm91cCBtZW1iZXJzaGlwIGNoYW5nZS4gUGxlYXNlIGNoZWNrIHRoZSB0YWJsZXMgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX21lbWJlcl9hY3Rpb25zJyBhbmQgJ215c3FsLnJlcGxpY2F0aW9uX2dyb3VwX2NvbmZpZ3VyYXRpb25fdmVyc2lvbicuAFRoaXMgbWVtYmVyIGpvaW5lZCBhIGdyb3VwIG9uIHdoaWNoIGFsbCBtZW1iZXJzIGRvIG5vdCBzdXBwb3J0IG1lbWJlciBhY3Rpb25zLCBhcyBzdWNoIGl0IGRpZCByZXNldCBpdHMgbWVtYmVyIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGRlZmF1bHQgb25lLgBVbmFibGUgdG8gcmVzZXQgdG8gbWVtYmVyIGFjdGlvbnMgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVW5hYmxlIHRvIHBhcnNlIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIHNlbnQgYnkgdGhlIGdyb3VwIG9uIG1lbWJlciBqb2luLgBVbmFibGUgdG8gdXBkYXRlIHRoZSBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJy4AVGhlIGdyb3VwIG1lbWJlcnMgd2VyZSB1bmFibGUgdG8gc2VuZCB0aGVpciBtZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfbWVtYmVyX2FjdGlvbnMnIGFuZCAnbXlzcWwucmVwbGljYXRpb25fZ3JvdXBfY29uZmlndXJhdGlvbl92ZXJzaW9uJyBvbiBhbGwgbWVtYmVycy4ATWVtYmVyIGFjdGlvbiBlbmFibGVkOiAiJXMiLCB0eXBlOiAiJXMiLCBldmVudDogIiVzIiwgcHJpb3JpdHk6ICIldSIsIGVycm9yX2hhbmRsaW5nOiAiJXMiLgBNZW1iZXIgYWN0aW9uIGRpc2FibGVkOiAiJXMiLCB0eXBlOiAiJXMiLCBldmVudDogIiVzIiwgcHJpb3JpdHk6ICIldSIsIGVycm9yX2hhbmRsaW5nOiAiJXMiLgBNZW1iZXIgYWN0aW9ucyBjb25maWd1cmF0aW9uIHdhcyByZXNldC4AQWNjZXB0ZWQgYSBjb25uZWN0aW9uIHdpdGggZGVwcmVjYXRlZCBwcm90b2NvbCAnJXMnIGZvciBhY2NvdW50IGAlc2BAYCVzYCBmcm9tIGhvc3QgYCVzYC4gQ2xpZW50IHN1cHBsaWVkIHVzZXJuYW1lIGAlc2AAQSBkZXByZWNhdGVkIFRMUyB2ZXJzaW9uICVzIGlzIGVuYWJsZWQgZm9yIGNoYW5uZWwgJXMAVXNlciBwcm9maWxlICclcycgbG9hZGVkLiBGaXJld2FsbCB1c2VyIHByb2ZpbGVzIGFyZSBkZXByZWNhdGVkLCBjb25zaWRlciBtaWdyYXRpbmcgdG8gZ3JvdXAgcHJvZmlsZXMuAEludmFsaWQgaW5wdXQgdmFsdWUgZm9yIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgJyVzJy4gUGxlYXNlLCBwcm92aWRlIGEgdmFsaWQgVVVJRC4AVmFyaWFibGUgJ2dyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQnIGNhbm5vdCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICclcycuIElmIHlvdSB3YW50IHRvIHVzZSB0aGUgVVVJRCBvZiAnZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZScgZm9yIHRoZSBVVUlEIG9mIFZpZXdfY2hhbmdlX2xvZ19ldmVudHMsIHBsZWFzZSBzZXQgJ2dyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQnIHRvIEFVVE9NQVRJQy4AZ3JvdXBfcmVwbGljYXRpb25fZ3JvdXBfbmFtZSAnJXMnLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLiBQbGVhc2UgY2hhbmdlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgdG8gQVVUT01BVElDAFRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkICclcycgaXMgdGhlIHNhbWUgYXMgdGhlIFVVSUQgdmFsdWUgZm9yIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TIGluIGEgc2VydmVyIGNoYW5uZWwAZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBpcyBpbmNvbXBhdGlibGUgd2l0aCBncm91cC4gZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCAlcyBtYXRjaGVzIHNlcnZlcl91dWlkICVzLgBUaGUgbWVtYmVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgb3B0aW9uIHZhbHVlICclcycgZGlmZmVyZW50IGZyb20gdGhlIGdyb3VwICclcycuIFRoZSBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAFJlcGxpY2F0aW9uIGNoYW5uZWwgJyUuMTkycycgaXMgY29uZmlndXJlZCB3aXRoIEFTU0lHTl9HVElEU19UT19BTk9OWU1PVVNfVFJBTlNBQ1RJT05TPSclcycgd2hpY2ggaXMgZXF1YWwgdG8gZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZC4gVG8gZml4IHRoaXMgaXNzdWUsIGVpdGhlciBjaGFuZ2UgdGhlIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQgb3IgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciBBU1NJR05fR1RJRFNfVE9fQU5PTllNT1VTX1RSQU5TQUNUSU9OUy4AVW5hYmxlIHRvIHBhcnNlIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkLgBVbmFibGUgdG8gZ2VuZXJhdGUgc2lkbm8gZm9yIGdyb3VwX3JlcGxpY2F0aW9uX3ZpZXdfY2hhbmdlX3V1aWQuAFVuYWJsZSB0byBwYXJzZSB0aGUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBFcnJvciB1cGRhdGluZyBncm91cF9ndGlkX2V4ZWN1dGVkIEdUSUQgc2V0IHdpdGggdmlldyBjaGFuZ2UgdXVpZCBkdXJpbmcgdGhlIENlcnRpZmljYXRpb24gbW9kdWxlIGluaXRpYWxpemF0aW9uLgBVbmFibGUgdG8gYWRkIHRoZSBncm91cF9yZXBsaWNhdGlvbl92aWV3X2NoYW5nZV91dWlkIHNpZG5vIGluIHRoZSBncm91cF9ndGlkX3NpZF9tYXAgZHVyaW5nIHRoZSBDZXJ0aWZpY2F0aW9uIG1vZHVsZSBpbml0aWFsaXphdGlvbi4AVW5hYmxlIHRvIGhhbmRsZSB0aGUgZG9ub3IncyB2aWV3IGNoYW5nZSB1dWlkIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb25mbGljdCBkZXRlY3Rpb24gY29tcG9uZW50LiBQb3NzaWJsZSBvdXQgb2YgbWVtb3J5IGVycm9yLgBVbmFibGUgdG8gcmV0cmlldmUgZ3JvdXBfcmVwbGljYXRpb25fdmlld19jaGFuZ2VfdXVpZCBkdXJpbmcgc2VydmVyIGNoZWNrcyBvbiByZXBsaWNhdGlvbiBvcGVyYXRpb25zLgBCb3RoIGF1ZGl0X2xvZ19tYXhfc2l6ZSBhbmQgYXVkaXRfbG9nX3BydW5lX3NlY29uZHMgYXJlIHNldCB0byBub24temVyby4gYXVkaXRfbG9nX21heF9zaXplIHRha2VzIHByZWNlZGVuY2UgYW5kIGF1ZGl0X2xvZ19wcnVuZV9zZWNvbmRzIGlzIGlnbm9yZWQAYXVkaXRfbG9nX3JvdGF0ZV9vbl9zaXplIGlzIG5vdCBncmFudWxhciBlbm91Z2ggZm9yIHRoZSB2YWx1ZSBvZiBhdWRpdF9sb2dfbWF4X3NpemUgc3VwcGxpZWQuIFNob3VsZCBiZSBhdCBsZWFzdCAlZCB0aW1lcyBzbWFsbGVyLgBJbnZhbGlkIHRhYmxlIGRlZmluaXRpb24gZm9yICclcy4lcycuACVzAENhbm5vdCBpbnN0YWxsIHRoZSAlLjE5MnMgcGx1Z2luIHdoZW4gdGhlICUuMTkycyBwbHVnaW4gaXMgaW5zdGFsbGVkLgBUaGUgdmFyaWFibGUgJXMgaGFzIGJlZW4gcmVuYW1lZCB0byAlcywgYW5kIHRoZSBvbGQgbmFtZSBkZXByZWNhdGVkLiBPbmx5IHRoZSBvbGQgbmFtZSB3YXMgZm91bmQgaW4gdGhlIHBlcnNpc3RlZCB2YXJpYWJsZSBmaWxlLiBOZXh0IHRpbWUgdGhlIGZpbGUgaXMgc2F2ZWQsIGJvdGggbmFtZXMgd2lsbCBiZSBzdG9yZWQuIElzc3VlIGFueSBTRVQgUEVSU0lTVCBjb21tYW5kIHRvIHNhdmUgdGhlIGZpbGUsIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCBhbmQgcHJlcGFyZSB0aGUgcGVyc2lzdGVkIGNvbmZpZ3VyYXRpb24gZm9yIHdoZW4gdGhlIHZhcmlhYmxlIGlzIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4AJWQgZXJyb3IgbG9nZ2luZyBjb21wb25lbnQocykgZmFpbGVkIHRvIGZsdXNoLiBGb3IgZmlsZS1iYXNlZCBsb2dzIHRoaXMgY2FuIGhhcHBlbiB3aGVuIHRoZSBwYXRoIG9yIHBlcm1pc3Npb25zIG9mIHRoZSBsb2ctZmlsZSBoYXZlIGNoYW5nZWQuIEZhaWx1cmUgdG8gZmx1c2ggZmlsZWQtYmFzZWQgbG9ncyBtYXkgYWZmZWN0IGxvZy1yb3RhdGlvbi4AVGFibGVzcGFjZSBrZXkgZm9yICVzIGhhcyBiZWVuIHJlLWVuY3J5cHRlZCB1c2luZyB0aGUgbGF0ZXN0IElubm9EQiBtYXN0ZXIga2V5LiBIb3dldmVyLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgcmVidWlsZCB0aGUgdGFibGUgZm9yIGJldHRlciBzZWN1cml0eS4AVGFibGVzcGFjZSBrZXkgZm9yICVzIGhhcyBiZWVuIHJlLWVuY3J5cHRlZCB1c2luZyB0aGUgbGF0ZXN0IElubm9EQiBtYXN0ZXIga2V5LiBIb3dldmVyLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgcmVlbmNyeXB0IHRoZSB0YWJsZXNwYWNlIGZvciBiZXR0ZXIgc2VjdXJpdHkuAFBhZ2UgQXJjaGl2ZXIncyBkb3VibGV3cml0ZSBidWZmZXIgaW5pdGlhbGlzYXRpb24gZmFpbGVkLiBQYWdlIHRyYWNraW5nIGlzIGF0IHJpc2sgb2YgbG9zaW5nIHRyYWNrZWQgaW5mb3JtYXRpb24uAFRoZXJlIGlzIG5vdCBlbm91Z2ggZnJlZSBzcGFjZSBpbiB0aGUgcmVkbyBsb2cgZHVyaW5nIHJlY292ZXJ5IHRvIHBlcmZvcm0gcGVuZGluZyBpYnVmIG1lcmdlcy4gUGxlYXNlIHJldHJ5IHN0YXJ0aW5nIE15U1FMIHdpdGggLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9NC4AVGhlcmUgaXMgbm90IGVub3VnaCBmcmVlIHNwYWNlIGluIHRoZSByZWRvIGxvZyBkdXJpbmcgcmVjb3ZlcnksIHJlc3RvcmUgZnJvbSBiYWNrdXAgKG9yIHJldHJ5IHdpdGggLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9NikuAGF1ZGl0X2xvZ19mb3JtYXRfdW5peF90aW1lc3RhbXAgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gYXVkaXRfbG9nX2Zvcm1hdCA9IEpTT04uAFJldHJ5IHRoZSBzdGF0ZW1lbnQgdXNpbmcgdGhlIHByaW1hcnkgc3RvcmFnZSBlbmdpbmUuAFBhcmFsbGVsIGluaXRpYWxpemF0aW9uIG9mIHJzZWcgY29tcGxldGUAVGltZSB0YWtlbiB0byBpbml0aWFsaXplIHJzZWcgdXNpbmcgJXUgdGhyZWFkOiAldSBtcy4ARERMIGZhaWxlZCB0byBjcmVhdGUgYSB0aHJlYWQgdG8gbG9hZCBhbiBpbmRleCwgZmFsbCBiYWNrIHRvIHNpbmdsZSB0aHJlYWQARGVidWdfY2hlY2tfbm9fbGF0Y2hpbmcgZmFpbGVkLCBzbG90LT50eXBlPSVkAEZhaWxlZCB0byBlc3RhYmxpc2ggTXlTUUwgY2xpZW50IGNvbm5lY3Rpb24gaW4gR3JvdXAgUmVwbGljYXRpb24uIEVycm9yIGVzdGFibGlzaGluZyBjb25uZWN0aW9uLiBQbGVhc2UgcmVmZXIgdG8gdGhlIG1hbnVhbCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgY29uZmlndXJlZCBHcm91cCBSZXBsaWNhdGlvbiBwcm9wZXJseSB0byB3b3JrIHdpdGggTXlTUUwgUHJvdG9jb2wgY29ubmVjdGlvbnMuAEZhaWxlZCB0byBlc3RhYmxpc2ggTXlTUUwgY2xpZW50IGNvbm5lY3Rpb24gaW4gR3JvdXAgUmVwbGljYXRpb24uIEVycm9yIHNlbmRpbmcgY29ubmVjdGlvbiBkZWxlZ2F0aW9uIGNvbW1hbmQuIFBsZWFzZSByZWZlciB0byB0aGUgbWFudWFsIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBjb25maWd1cmVkIEdyb3VwIFJlcGxpY2F0aW9uIHByb3Blcmx5IHRvIHdvcmsgd2l0aCBNeVNRTCBQcm90b2NvbCBjb25uZWN0aW9ucy4AVW5hYmxlIHRvIHJlYWQgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gZHVyaW5nIGdyb3VwIG1lbWJlcnNoaXAgY2hhbmdlLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXInLCAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCcgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBUaGlzIG1lbWJlciBqb2luZWQgYSBncm91cCBvbiB3aGljaCBhbGwgbWVtYmVycyBkbyBub3Qgc3VwcG9ydCByZXBsaWNhdGlvbiBmYWlsb3ZlciBjaGFubmVscyBpbnRlZ3JhdGlvbiBvbiBHcm91cCBSZXBsaWNhdGlvbiwgYXMgc3VjaCBpdCBkaWQgcmVzZXQgaXRzIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGRlZmF1bHQgb25lLgBVbmFibGUgdG8gcmVzZXQgdG8gcmVwbGljYXRpb24gZmFpbG92ZXIgY2hhbm5lbHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9uIG1lbWJlciBqb2luLiBQbGVhc2UgY2hlY2sgdGhlIHRhYmxlcyAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXInLCAnbXlzcWwucmVwbGljYXRpb25fYXN5bmNocm9ub3VzX2Nvbm5lY3Rpb25fZmFpbG92ZXJfbWFuYWdlZCcgYW5kICdteXNxbC5yZXBsaWNhdGlvbl9ncm91cF9jb25maWd1cmF0aW9uX3ZlcnNpb24nLgBVbmFibGUgdG8gcGFyc2UgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGNvbmZpZ3VyYXRpb24gc2VudCBieSB0aGUgZ3JvdXAgb24gbWVtYmVyIGpvaW4uAFVuYWJsZSB0byBzZXQgU09VUkNFX0NPTk5FQ1RJT05fQVVUT19GQUlMT1ZFUiBvbiBhIG5vbi1leGlzdGVudCBvciBtaXNjb25maWd1cmVkIHJlcGxpY2F0aW9uIGNoYW5uZWwgJyVzJywgcGxlYXNlIGNyZWF0ZSB0aGUgY2hhbm5lbCBhbmQgcmVqb2luIHRoZSBzZXJ2ZXIgdG8gdGhlIGdyb3VwLgBVbmFibGUgdG8gcmVnaXN0ZXIgdGhlIGxpc3RlbmVyICdyZXBsaWNhdGlvbl9hc3luY2hyb25vdXNfY29ubmVjdGlvbl9mYWlsb3Zlcl9jb25maWd1cmF0aW9uJyB0byB0aGUgc2VydmljZSAnZ3JvdXBfcmVwbGljYXRpb25fbWVzc2FnZV9zZXJ2aWNlX3JlY3YnLgBUaGlzIHNlcnZlciBpcyBub3QgYWJsZSB0byByZWFjaCBhIG1ham9yaXR5IG9mIG1lbWJlcnMgaW4gdGhlIGdyb3VwLiBUaGlzIHNlcnZlciB3aWxsIHNraXAgdGhlIHJlcGxpY2F0aW9uIGZhaWxvdmVyIGNoYW5uZWxzIGhhbmRsaW5nIHVudGlsIHRoaXMgc2VydmVyIGlzIGJhY2sgdG8gdGhlIGdyb3VwIG1ham9yaXR5LgBUaGlzIHNlcnZlciBpcyBiYWNrIHRvIHRoZSBncm91cCBtYWpvcml0eS4gUmVwbGljYXRpb24gZmFpbG92ZXIgY2hhbm5lbHMgaGFuZGxpbmcgaXMgcmVzdW1lZC4ARXJyb3IgaW5jcmVtZW50aW5nIG1lbWJlciBhY3Rpb24gY29uZmlndXJhdGlvbiB2ZXJzaW9uIGZvciAlcy4lcyB0YWJsZS4AVGhlICclcycgdGhyZWFkIG9mIGNoYW5uZWwgJyVzJyB3aWxsIGVycm9yIG91dCBhcyB0aGlzIHNlcnZlciBpcyBhIGdyb3VwIHNlY29uZGFyeS4AQ2xvbmUgRERMIE5vdGlmaWNhdGlvbjogJXMAQ2xvbmUgRERMIEFQUExZOiAlcwBDbG9uZSBEREwgSW52YWxpZGF0ZSA6ICVzAEVuY3J5cHRpb24ga2V5IGlzIGxvYWRlZCBmb3IgdW5kbyB0YWJsZXNwYWNlICclcycuAElnbm9yaW5nIGVuY3J5cHRpb24gSU5GTyBzaXplIGluIHJlZG8gbG9nOiAlenUsIGV4cGVjdGVkOiAlenUAT3B0aW9uIC0tYXV0aGVudGljYXRpb24tcG9saWN5IGlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlLiBQbGVhc2UgY2hlY2sgaWYgdGhlIHNwZWNpZmllZCBhdXRoZW50aWNhdGlvbiBwbHVnaW5zIGFyZSB2YWxpZC4AU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZHVyaW5nIHJlZ2lzdHJhdGlvbi4AQnVmZmVyIHRvbyBzbWFsbCB0byBob2xkIHJlZ2lzdHJhdGlvbiBjaGFsbGVuZ2UgcmVzcG9uc2UuAEZJRE8gZGV2aWNlIGF1dGhlbnRpY2F0b3IgZGF0YSBjb3JydXB0LgBGSURPIGRldmljZSBzaWduYXR1cmUgY29ycnVwdC4AU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgBPdXQgb2YgbWVtb3J5LgBDYW4ndCBpbml0aWFsaXplIGxvZ2dpbmcgc2VydmljZQBSZXBsaWNhdGlvbiBjaGFubmVsICclLjE5MnMnIGlzIGNvbmZpZ3VyZWQgd2l0aCBHVElEX09OTFk9MSwgd2hpY2ggaXMgaW52YWxpZCB3aGVuIEdUSURfTU9ERSA8PiBPTi4gSWYgeW91IGludGVuZCB0byBkaXNhYmxlIEdUSURzIGluIHRoZSByZXBsaWNhdGlvbiB0b3BvbG9neSwgY2hhbmdlIEdUSURfT05MWSB0byAwLgBUaGUgcmVwbGljYXRpb24gcG9zaXRpb25zIHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgbWF5IGJlIG91dC1vZi1kYXRlIG9uIGNoYW5uZWwgJyUuMTkycycsIGR1ZSB0byB0aGUgdXNlIG9mIEdUSURfT05MWT0xLiBUaGUgb3V0LW9mLWRhdGUgcG9zaXRpb25zIGNhbiBzdGlsbCBiZSB1c2VkIGluIHNvbWUgY2FzZXMgc28sIGluIG9yZGVyIHRvIHVwZGF0ZSB0aGVtLCB3ZSBzdWdnZXN0IHRoYXQgeW91IHN0YXJ0IHRoZSByZXBsaWNhdGlvbiB0byByZWNlaXZlIGFuZCBhcHBseSBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24sIHdoaWNoIHdpbGwgc2V0IHRoZSBwb3NpdGlvbnMgdG8gdmFsaWQgdmFsdWVzLgBDb3VsZCBub3Qgb3BlbiByZWxheSBsb2c6ICVzAEF1dGhlbnRpY2F0aW9uIHBsdWdpbiBub3QgaW5pdGlhbGl6ZWQuAENhbm5vdCB1c2UgdGhlIGdlbmVyYXRlZCBwcml2YXRlIGtleSBmaWxlLgBVbmF2YWlsYWJsZSBwdWJsaWMga2V5IHdpdGggZmluZ2VycHJpbnQgJXMgZm9yIHVzZXIgJXMgaW4gdGVuYW5jeSAlcyAuAENhbm5vdCBvYnRhaW4gdGhlIE9DSSBjb25maWd1cmF0aW9uIGZyb20gdGhlIElNRFMgc2VydmljZS4AQ2Fubm90IGluaXRpYWxpemUgdGhlIElBTSBzZXJ2aWNlLgBJbnZhbGlkIGF1dGhlbnRpY2F0aW9uIHN0cmluZyBkZXRhaWxzIGZvciB1c2VyOiBgJXNgQGAlc2AuAE5vbmUgb2YgdGhlIGdyb3VwcyByZXR1cm5lZCBieSBJQU0gbWF0Y2hlcyBhbnkgb2YgdGhlIGVudHJpZXMgZnJvbSBhdXRoZW50aWNhdGlvbiBzdHJpbmcuAFVzZXIgaXMgbm90IHBhcnQgb2YgYW55IGdyb3Vwcy4gSG93ZXZlciwgYWNjb3VudCBpcyBjb25maWd1cmVkIHRvIHVzZSBncm91cCBtYXBwaW5nLgBSZWNlaXZlZCBPcGVuU1NMIGVycm9yOiAlcyB3aGlsZSBhdXRoZW50aWNhdGluZyB1c2VyICVzIHdpdGggZmluZ2VycHJpbnQgJXMgaW4gdGVuYW5jeSAlcyAuACVzOiBXYXJuaW5nIExldmVsIDEgKCVsbHUgTWlCKTogYXZhaWxhYmxlPSVsbHUgTWlCLCB0b3RhbD0lbGx1IE1pQiwgdXNlZD0lLjJmJSUsIG15c3FsZD0lbGx1IE1pQgAlczogV2FybmluZyBMZXZlbCAyICglbGx1IE1pQik6IGF2YWlsYWJsZT0lbGx1IE1pQiwgdG90YWw9JWxsdSBNaUIsIHVzZWQ9JS4yZiUlLCBteXNxbGQ9JWxsdSBNaUIAJXM6IFdhcm5pbmcgTGV2ZWwgMyAoJWxsdSBNaUIpOiBhdmFpbGFibGU9JWxsdSBNaUIsIHRvdGFsPSVsbHUgTWlCLCB1c2VkPSUuMmYlJSwgbXlzcWxkPSVsbHUgTWlCAFRoZSBtZW1iZXIgJXM6JXUsIHdpdGggVVVJRDogJXMsIHdhcyBzZXQgYXMgdGhlIHNpbmdsZSBwcmVmZXJyZWQgY29uc2Vuc3VzIGxlYWRlci4AU29tZXRoaW5nIHdlbnQgd3JvbmcgdHJ5aW5nIHRvIHNldCB0aGUgbWVtYmVyICVzOiV1LCB3aXRoIFVVSUQ6ICVzLCBhcyB0aGUgc2luZ2xlIHByZWZlcnJlZCBjb25zZW5zdXMgbGVhZGVyLiBQbGVhc2UgcXVlcnkgdGhlIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9ncm91cF9jb21tdW5pY2F0aW9uX2luZm9ybWF0aW9uIHRhYmxlIHRvIHNlZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gdG9vayBlZmZlY3QsIGkuZS4gd2hldGhlciB0aGUgcHJlZmVycmVkIGNvbnNlbnN1cyBsZWFkZXIgbWF0Y2hlcyB0aGUgY3VycmVudCBwcmltYXJ5LiBJZiBub3QsIGNvbnNpZGVyIGVsZWN0aW5nIGEgZGlmZmVyZW50IHByaW1hcnkgdG8gdHJ5IGFnYWluLiBQbGVhc2UgY2hlY2sgdGhlIGVycm9yIGxvZyBhbmQgR0NTX0RFQlVHX1RSQUNFIGZvciBtb3JlIGluZm9ybWF0aW9uIHRoYXQgbWF5IGhlbHAgdW5kZXJzdGFuZGluZyB3aGF0IHdlbnQgd3JvbmcuAEFsbCBtZW1iZXJzIHdlcmUgc2V0IGFzIGNvbnNlbnN1cyBsZWFkZXJzLgBTb21ldGhpbmcgd2VudCB3cm9uZyB0cnlpbmcgdG8gc2V0IGFsbCBtZW1iZXJzIGFzIGNvbnNlbnN1cyBsZWFkZXJzLiBQbGVhc2UgcXVlcnkgdGhlIHBlcmZvcm1hbmNlX3NjaGVtYS5yZXBsaWNhdGlvbl9ncm91cF9jb21tdW5pY2F0aW9uX2luZm9ybWF0aW9uIHRhYmxlIHRvIHNlZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gdG9vayBlZmZlY3QsIGkuZS4gd2hldGhlciB0aGUgY29uc2Vuc3VzIGxlYWRlcnMgbWF0Y2ggYWxsIG1lbWJlcnMuIElmIG5vdCwgY29uc2lkZXIgcmVzZXR0aW5nIHRoZSBncm91cCBjb21tdW5pY2F0aW9uIHByb3RvY29sIHRvIGEgdmVyc2lvbiA8IDguMC4yMiwgb3Igc3dpdGNoIHRvIHNpbmdsZS1wcmltYXJ5IG1vZGUgYW5kIGJhY2sgYWdhaW4gdG8gbXVsdGktcHJpbWFyeSBtb2RlLCB0byB0cnkgYWdhaW4uIFBsZWFzZSBjaGVjayB0aGUgZXJyb3IgbG9nIGFuZCBHQ1NfREVCVUdfVFJBQ0UgZm9yIG1vcmUgaW5mb3JtYXRpb24gdGhhdCBtYXkgaGVscCB1bmRlcnN0YW5kaW5nIHdoYXQgd2VudCB3cm9uZy4AVGhpcyBtZW1iZXIgaXMgY29uZmlndXJlZCB3aXRoIGEgZ3JvdXBfcmVwbGljYXRpb25fcGF4b3Nfc2luZ2xlX2xlYWRlciBvcHRpb24gdmFsdWUgb2YgJyVkJyB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBncm91cCdzIHZhbHVlICgnJWQnKS4gVGhpcyBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAEludmFsaWQgYW5kL29yIGNvcnJ1cHRlZCBtdWx0aSBmYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBpbiBVc2VyX2F0dHJpYnV0ZXMgY29sdW1uIGluIG15c3FsLnVzZXIgdGFibGUuICIlcyIuAFBsdWdpbiAnJS0uMTkycycgaXMgbm90IGxvYWRlZDsgSWdub3JpbmcgdXNlcgAlczogVGhlIGNoYXJhY3RlciBzZXQgJXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuIFBsZWFzZSBjb25zaWRlciB1c2luZyAlcyBpbnN0ZWFkLgAlczogJyUtLjY0cycgaXMgYSBjb2xsYXRpb24gb2YgdGhlIGRlcHJlY2F0ZWQgY2hhcmFjdGVyIHNldCAlcy4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nICVzIHdpdGggYW4gYXBwcm9wcmlhdGUgY29sbGF0aW9uIGluc3RlYWQuAE1pc3NpbmcgZGF0YSBkaXJlY3RvcnkgZm9yIElDVSByZWd1bGFyIGV4cHJlc3Npb25zOiAlcy4ATW9yZSB0aGFuIDkwJSUgb2YgZmlsZXMgb3BlbmVkIG91dCBvZiB0aGUgaW5ub2RiX29wZW5fZmlsZXMgbGltaXQgYXJlIGZpbGVzIHRoYXQgYXJlIG5vdCBlYXN5IHRvIGNsb3NlLiBUaGUgcGVyZm9ybWFuY2Ugb2Ygc3lzdGVtIG1heSBkZWdyYWRlLiBDb25zaWRlciBpbmNyZWFzaW5nIHZhbHVlIG9mIHRoZSBpbm5vZGJfb3Blbl9maWxlcyBzeXN0ZW0gdmFyaWFibGUuIFRoZXJlIGFyZSAlenUgc3VjaCBmaWxlcyBvcGVuZWQgb3V0IG9mIHRoZSB0b3RhbCBsaW1pdCBmb3IgYWxsIGZpbGVzIG9wZW5lZCBvZiAlenUuAFRyeWluZyB0byBvcGVuIGEgZmlsZSBmb3IgJWxsZCBzZWNvbmRzLiBDb25maWd1cmF0aW9uIG9ubHkgYWxsb3dzIGZvciAlenUgb3BlbiBmaWxlcy4gQ29uc2lkZXIgc2V0dGluZyBpbm5vYmFzZV9vcGVuX2ZpbGVzIGhpZ2hlci4AQ29ubmVjdGlvbiBjbG9zZWQuIEdsb2JhbCBjb25uZWN0aW9uIG1lbW9yeSBsaW1pdCAlbGx1IGJ5dGVzIGV4Y2VlZGVkLiBDb25zdW1lZCAlbGx1IGJ5dGVzLgBDb25uZWN0aW9uIGNsb3NlZC4gQ29ubmVjdGlvbiBtZW1vcnkgbGltaXQgJWxsdSBieXRlcyBleGNlZWRlZC4gQ29uc3VtZWQgJWxsdSBieXRlcy4AQXVkaXQgTG9nIGlzIGRpc2FibGVkLiBFbmFibGUgaXQgd2l0aCBhdWRpdF9sb2dfZGlzYWJsZSA9IGZhbHNlLgBPcHRpb24gLS10bHMtdmVyc2lvbiBvciAtLWFkbWluLXRscy12ZXJzaW9uIGlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlICVzLgBSZWxheSBsb2cgcmVjb3Zlcnkgb24gY2hhbm5lbCB3aXRoIEdUSURfT05MWT0xLiBUaGUgY2hhbm5lbCB3aWxsIHN3aXRjaCB0byBhIG5ldyByZWxheSBsb2cgYW5kIHRoZSBHVElEIHByb3RvY29sIHdpbGwgYmUgdXNlZCB0byByZXBsaWNhdGUgdW5hcHBsaWVkIHRyYW5zYWN0aW9ucy4ATnVtYmVyIG9mIFNUQU5EQllfU0VSVkVSIHZhbHVlcyBleGNlZWRlZCBtYXhpbXVtIGxpbWl0IG9mIDY0LgBTb3VyY2Uga2V5cmluZyBkb2VzIG5vdCBoYXZlIGFueSBrZXlzIHRvIG1pZ3JhdGUuAENhbm5vdCBwZXJzaXN0IFNFTlNJVElWRSBzeXN0ZW0gdmFyaWFibGVzIGJlY2F1c2Uga2V5cmluZyBjb21wb25lbnQgc3VwcG9ydCBpcyB1bmF2YWlsYWJsZSBhbmQgcGVyc2lzdF9zZW5zaXRpdmVfdmFyaWFibGVzX2luX3BsYWludGV4dCBpcyBzZXQgdG8gT0ZGLiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQga2V5cmluZyBzZXJ2aWNlcyBhcmUgYWN0aXZlIGFuZCByZXF1aXJlZCBrZXlzIGFyZSBhdmFpbGFibGUuAENhbm5vdCBpbnRlcnByZXQgcGVyc2lzdGVkIFNFTlNJVElWRSBzeXN0ZW0gdmFyaWFibGVzLiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQga2V5cmluZyBzZXJ2aWNlcyBhcmUgYWN0aXZlIGFuZCByZXF1aXJlZCBrZXlzIGFyZSBhdmFpbGFibGUuAEtleXJpbmcgaGFzIHRvIGJlIGxvYWRlZCB0aHJvdWdoIG1hbmlmZXN0IGZpbGUgaW4gb3JkZXIgdG8gc3VwcG9ydCBzZWN1cmUgc3RvcmFnZSBmb3IgcGVyc2lzdGVkIHZhcmlhYmxlcwBDb3VsZCBub3QgZmluZCBtYXN0ZXIga2V5ICVzIGluIGtleXJpbmcAQSBuZXcgbWFzdGVyIGtleSAlcyBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkAEZhaWxlZCB0byBlbmNyeXB0ICVzIHVzaW5nICVzAEZhaWxlZCB0byBkZWNyeXB0ICVzIHVzaW5nICVzAFBlcnNpc3RpbmcgU0VOU0lUSVZFIHZhcmlhYmxlcyBpbiBlbmNyeXB0ZWQgZm9ybSByZXF1aXJlcyBrZXlyaW5nIGNvbXBvbmVudCBsb2FkZWQgdGhyb3VnaCBtYW5pZmVzdCBmaWxlLgBVc2luZyBqZW1hbGxvYy5kbGwgZm9yIG15X21hbGxvYyBhbmQgdXQ6Om1hbGxvYyBldGMuACVzLgAlcy4AJXMuAFBhc3N3b3JkIGZvciB0aGUgYWNjb3VudCAnJS0uNDhzJ0AnJS0uNjRzJyBoYXMgZXhwaXJlZC4gVG8gbG9nIGluLCBlaXRoZXIgY2hhbmdlIGl0IHVzaW5nIGEgY2xpZW50IHRoYXQgc3VwcG9ydHMgZXhwaXJlZCBwYXNzd29yZHMgb3Igc2VuZCB0aGUgY2hhbmdlIHJlcXVlc3QgdG8gYW4gYWRtaW5pc3RyYXRvci4AVGhyZWFkIHBvb2wgcGx1Z2luIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5IHdpdGggcGFyYW1ldGVyczogJXMAdGhyZWFkX3Bvb2xfZGVkaWNhdGVkX2xpc3RlbmVycyBjYW5ub3QgYmUgc2V0IHVubGVzcyB0aHJlYWRfcG9vbF9tYXhfdHJhbnNhY3Rpb25zX2xpbWl0ID4gMAAlcwAlcwBUaGUgcmVkbyBsb2cgZmlsZSAlcyBpcyBlbXB0eSwgd2hpY2ggaW5kaWNhdGVzIGl0IHdhcyBub3QgZ2VuZXJhdGVkIGJ5IElubm9EQiBvciBiZWNvbWUgY29ycnVwdGVkLiBQbGVhc2UgcmVzdG9yZSB0aGUgY29ycmVjdCBmaWxlIG9yIHRyeSByZWNvdmVyaW5nIHdpdGhvdXQgdGhlIHJlZG8gZmlsZXMsIGluIHJlYWQtb25seSBtb2RlLCBieSBwcm92aWRpbmcgLS1pbm5vZGItZm9yY2UtcmVjb3Zlcnk9Ni4AVGhlIHJlZG8gbG9nIGZpbGUgJXMgaXMgc21hbGxlciB0aGFuICVsbHUgYnl0ZXMsIHdoaWNoIGluZGljYXRlcyBpdCB3YXMgbm90IGdlbmVyYXRlZCBieSBJbm5vREIgb3IgYmVjb21lIGNvcnJ1cHRlZC4gUGxlYXNlIHJlc3RvcmUgdGhlIGNvcnJlY3QgZmlsZS4AVGhlIHJlZG8gbG9nIGZpbGUgJXMgaXMgbGFyZ2VyIHRoYW4gJWxsdSBieXRlcywgd2hpY2ggaW5kaWNhdGVzIGl0IHdhcyBub3QgZ2VuZXJhdGVkIGJ5IElubm9EQiBvciBiZWNvbWUgY29ycnVwdGVkLiBQbGVhc2UgcmVzdG9yZSB0aGUgY29ycmVjdCBmaWxlLgBGYWlsZWQgdG8gcmVhZCBoZWFkZXIgb2YgdGhlIHJlZG8gbG9nIGZpbGUgJXMALS1pbml0aWFsaXplIHNwZWNpZmllZCBidXQgdGhlIHJlZG8gbG9nIGRpcmVjdG9yeSAlcyBoYXMgcmVkbyBsb2cgZmlsZXMgaW5zaWRlLiBBYm9ydGluZy4ARmFpbGVkIHRvIGxpc3QgcmVkbyBsb2cgZmlsZXMgaW4gdGhlIHJlZG8gbG9nIGRpcmVjdG9yeSAlcwBOZWl0aGVyIGZvdW5kICVzIHN1YmRpcmVjdG9yeSwgbm9yICVzKiBmaWxlcyBpbiAlcwBDYW5ub3QgcmVzdG9yZSBjbG9uZWQgZGF0YSBkaXJlY3RvcnksIElubm9EQiBydW5uaW5nIGluIHJlYWQtb25seSBtb2RlIQBFcnJvciAlZCBlbmNvdW50ZXJlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHJlZG8gbG9nIGZpbGU6ICVzLgBSZWRvIGxvZyB3cml0ZXIgaXMgd2FpdGluZyBmb3IgYSBuZXcgcmVkbyBsb2cgZmlsZS4gQ29uc2lkZXIgaW5jcmVhc2luZyBpbm5vZGJfcmVkb19sb2dfY2FwYWNpdHkuAEZvdW5kIGNoZWNrcG9pbnQgTFNOICVsbHUgaW4gYSByZWRvIGxvZyBmaWxlICVzLCBidXQgdGhlIGZpbGUgcmVwcmVzZW50cyByYW5nZSBvZiBMU04gdmFsdWVzIFslbGx1LCAlbGx1KSwgc28gdGhlIGZpbGUgaXMgY29ycnVwdGVkLgBSZWRvIGxvZyBpcyBydW5uaW5nIG91dCBvZiBmcmVlIHNwYWNlLCBwYXVzaW5nIHVzZXIgdGhyZWFkcy4uLiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4AUmVkbyBsb2cgcmVjbGFpbWVkIHNvbWUgZnJlZSBzcGFjZSwgcmVzdW1pbmcgdXNlciB0aHJlYWRzLgBJZ25vcmVkIGRlcHJlY2F0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaW5ub2RiX2xvZ19maWxlX3NpemUuIFVzZWQgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5IGluc3RlYWQuAElnbm9yZWQgZGVwcmVjYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpbm5vZGJfbG9nX2ZpbGVzX2luX2dyb3VwLiBVc2VkIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSBpbnN0ZWFkLgBDYW5ub3QgdXBncmFkZSBmb3JtYXQgKHYlbHUpIG9mIHJlZG8gbG9nIGZpbGVzIHdoZW4gaW5ub2RiLWZvcmNlLXJlY292ZXJ5ID4gMC4AQ2Fubm90IHVwZ3JhZGUgZm9ybWF0ICh2JWx1KSBvZiByZWRvIGxvZyBmaWxlcyBpbiByZWFkLW9ubHkgbW9kZSAoLS1pbm5vZGItcmVhZC1vbmx5KS4AQ2Fubm90IHVwZ3JhZGUgZm9ybWF0ICh2JWx1KSBvZiByZWRvIGxvZyBmaWxlcyBvbiBjbG9uZWQgZGF0YSBkaXJlY3RvcnkuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgYmVjYXVzZSB0aGV5IGFyZSBtYXJrZWQgYXMgdW5pbml0aWFsaXplZC4gUGxlYXNlIHVzZSBhbiBvbGRlciB2ZXJzaW9uIG9mIE15U1FMIC0gcmVjb3ZlciBhbmQgc2h1dGRvd24gKHdpdGggaW5ub2RiLWZhc3Qtc2h1dGRvd24gPCAyKS4AQ2Fubm90IHVwZ3JhZGUgZm9ybWF0ICh2JWx1KSBvZiByZWRvIGxvZyBmaWxlcyB3aGVuIHRoZSByZWRvIGxvZyBpcyBjb3JydXB0ZWQuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMgd2hlbiB0aGVyZSBpcyBub24tcGVyc2lzdGVkIEREIG1ldGFkYXRhIGluIHJlZG8uIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAENhbm5vdCB1cGdyYWRlIGZvcm1hdCAodiVsdSkgb2YgcmVkbyBsb2cgZmlsZXMsIGJlY2F1c2UgSW5ub0RCIGZhaWxlZCB0byByZWFjaCBzdGF0ZSBpbiB3aGljaCByZWRvIGxvZyBpcyBsb2dpY2FsbHkgZW1wdHkuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAEZhaWxlZCB0byByZXNpemUgdGhlIHJlZG8gbG9nIHN5bmNocm9ub3VzbHksIGJlY2F1c2UgSW5ub0RCIGZhaWxlZCB0byByZWFjaCBzdGF0ZSBpbiB3aGljaCByZWRvIGxvZyBpcyBsb2dpY2FsbHkgZW1wdHkuIFBsZWFzZSB1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiBNeVNRTCAtIHJlY292ZXIgYW5kIHNodXRkb3duICh3aXRoIGlubm9kYi1mYXN0LXNodXRkb3duIDwgMikuAFRoZSByZWRvIGxvZyBmaWxlICVzIGNvbWVzIGZyb20gb3RoZXIgZGF0YSBkaXJlY3RvcnkgdGhhbiByZWRvIGxvZyBmaWxlICVzLgBUaGUgcmVkbyBsb2cgZmlsZSAlcyBoYXMgaW52YWxpZCBzdGFydF9sc24gJWxsdS4AVGhlIHJlZG8gbG9nIGZpbGUgJXMgaGFzIHN0YXJ0X2xzbiAlbGx1IGJ1dCBleHBlY3RlZCAlbGx1IChlbmRfbHNuIG9mIHRoZSBwcmV2aW91cyByZWRvIGxvZyBmaWxlKS4ATWlzc2luZyByZWRvIGxvZyBmaWxlICVzICh3aXRoIHN0YXJ0X2xzbiA9ICVsbHUpLgBUaGUgbGF0ZXN0IGZvdW5kIGNoZWNrcG9pbnQgaXMgYXQgbHNuID0gJWxsdSBpbiByZWRvIGxvZyBmaWxlICVzLgBVc2VyIGhhcyBzZXQgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5IHRvICVsbHVNLgBSZWRvIGxvZyBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8gcmVzaXplIGZyb20gJWxsdU0gdG8gJWxsdU0uAFJlZG8gbG9nIHJlc2l6ZSBoYXMgYmVlbiBjYW5jZWxsZWQuAFJlZG8gbG9nIGhhcyBiZWVuIHJlc2l6ZWQgdG8gJWxsdU0uAFVwZ3JhZGluZyByZWRvIGxvZzogJWxsdU0sIExTTj0lbGx1LgBNYXJrZWQgdGhlIGN1cnJlbnQgcmVkbyBsb2cgZmlsZSAlcyBhcyBpbmNvbXBsZXRlLgBGYWlsZWQgdG8gcmVtb3ZlIHJlZG8gbG9nIGZpbGUgJXMuAEZhaWxlZCB0byByZW5hbWUgJXMgd2hlbiBjcmVhdGluZyByZWRvIGxvZyBmaWxlICVzIChlcnJvcjogJWQpAFJlZG8gbG9nIGZpbGVzIGNyZWF0ZWQgYnkgdW5rbm93biBjcmVhdG9yICVzLgBGb3VuZCBleGlzdGluZyByZWRvIGxvZyBmaWxlcywgYnV0IGF0IGxlYXN0IG9uZSBpcyBtaXNzaW5nLiBJdCBpcyB1bmtub3duIGlmIHJlY292ZXJ5IGNvdWxkIHJlYWNoIHBoeXNpY2FsbHkgY29uc2lzdGVudCBzdGF0ZS4gUGxlYXNlIGNvbnNpZGVyIHJlc3RvcmluZyBmcm9tIGJhY2t1cCBvciBwcm92aWRpbmcgLS1pbm5vZGItZm9yY2UtcmVjb3ZlcnkgPiAwLgBGb3VuZCByZWRvIGxvZyBmaWxlICVzIHdoaWNoIGhhcyBmb3JtYXQgKHYlbHUpIGFuZCBpcyBzdG9yZWQgb3V0c2lkZSAjaW5ub2RiX3JlZG8uAEZvdW5kIHJlZG8gbG9nIGZpbGUgJXMgd2hpY2ggaGFzIGZvcm1hdCAodiVsdSkgYW5kIGlzIHN0b3JlZCBpbnNpZGUgI2lubm9kYl9yZWRvLgBGb3VuZCByZWRvIGxvZyBmaWxlcyB3aXRoIGRpZmZlcmVudCBmb3JtYXRzOiAlcyBoYXMgZm9ybWF0IHYlbHUsICVzIGhhcyBmb3JtYXQgdiVsdS4ATWlzc2luZyBpYl9sb2dmaWxlMCBpbiB0aGUgZGlyZWN0b3J5ICVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBzZXJ2aWNlcyByZXF1aXJlZCB0byBoYW5kbGUgcmVkbyBsb2cgUEZTIHRhYmxlcy4ARmFpbGVkIHRvIGNyZWF0ZSByZWRvIGxvZyBQRlMgdGFibGVzLgBUcnVuY2F0aW5nIHJlZG8gbG9nIGZpbGUgJXMuLi4ARmFpbGVkIHRvIHJlc2l6ZSB1bnVzZWQgcmVkbyBsb2cgZmlsZSAlcyB0byAlbGx1IE1CICglcykuAEZhaWxlZCB0byByZW1vdmUgdW51c2VkIHJlZG8gbG9nIGZpbGUgJXMuAEZhaWxlZCB0byByZW5hbWUgdW51c2VkIHJlZG8gbG9nIGZpbGUgJXMgdG8gJXMuAEZhaWxlZCB0byBtYXJrIHVudXNlZCByZWRvIGxvZyBmaWxlICVzIGFzIGluIHVzZSAoYnkgcmVuYW1pbmcgdG8gJXMpLgBGYWlsZWQgdG8gbWFyayByZWRvIGxvZyBmaWxlICVzIGFzIHVudXNlZCAoYnkgcmVuYW1pbmcgdG8gJXMpLgBPcHRpb24gaW5ub2RiX2RlZGljYXRlZF9zZXJ2ZXIgaXMgaWdub3JlZCBmb3IgaW5ub2RiX3JlZG9fbG9nX2NhcGFjaXR5LCBiZWNhdXNlIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSwgaW5ub2RiX2xvZ19maWxlX3NpemUgb3IgaW5ub2RiX2xvZ19maWxlc19pbl9ncm91cCBpcyBzcGVjaWZpZWQgZXhwbGljaXRseS4gUmVkbyBsb2cgY2FwYWNpdHk6ICVsbHVNLgBEZXByZWNhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBpbm5vZGJfbG9nX2ZpbGVfc2l6ZSBhbmQvb3IgaW5ub2RiX2xvZ19maWxlc19pbl9ncm91cCBoYXZlIGJlZW4gdXNlZCB0byBjb21wdXRlIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eT0lbGx1LiBQbGVhc2UgdXNlIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eSBpbnN0ZWFkLgBUaGlzIG1lbWJlciB3YXMgdW5hYmxlIHRvIGxvZyB0aGUgVmlld19jaGFuZ2VfbG9nX2V2ZW50IGludG8gdGhlIGJpbmFyeSBsb2csIGhlbmNlIGl0IHdpbGwgbGVhdmUgdGhlIGdyb3VwLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGVyZSBpcyBhdmFpbGFibGUgZGlzayBzcGFjZSBhbmQgYWRkIHRoZSBtZW1iZXIgYmFjayB0byB0aGUgZ3JvdXAuAEZvdW5kIGludmFsaWQgZXZlbnQgc2VxdWVuY2Ugd2hpbGUgcmVjb3ZlcmluZyBmcm9tIGJpbmFyeSBsb2cgZmlsZSAnJXMnLCBiZXR3ZWVuIHBvc2l0aW9ucyAlbGx1IGFuZCAlbGx1OiAlcy4gVGhlIHJlY292ZXJ5IHByb2Nlc3Mgd2FzIHN0b3BwZWQgZWFybHkgYW5kIG5vIHRyYW5zYWN0aW9uIHdhcyByZWNvdmVyZWQuIFNpZGUgZWZmZWN0cyBtYXkgYmUgdHJhbnNhY3Rpb25zIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBiZXR3ZWVuIHRoZSBiaW5hcnkgbG9nIGFuZCB0aGUgc3RvcmFnZSBlbmdpbmVzLCBvciB0cmFuc2FjdGlvbnMga2VwdCBieSBzdG9yYWdlIGVuZ2luZXMgaW4gYSBwcmVwYXJlZCBzdGF0ZSAocG9zc2libHkgaG9sZGluZyBsb2NrcykuIEVpdGhlciBmaXggdGhlIGlzc3VlcyB3aXRoIHRoZSBiaW5hcnkgbG9nIG9yLCB0byByZWxlYXNlIHBvc3NpYmx5IGFjcXVpcmVkIGxvY2tzLCBkaXNhYmxlIHRoZSBiaW5hcnkgbG9nIGR1cmluZyBzZXJ2ZXIgcmVjb3ZlcnkuIE5vdGUgdGhhdCBkaXNhYmxpbmcgdGhlIGJpbmFyeSBsb2cgbWF5IGxlYWQgdG8gbG9zcyBvZiB0cmFuc2FjdGlvbnMgdGhhdCB3ZXJlIGFscmVhZHkgYWNrbm93bGVkZ2VkIGFzIHN1Y2Nlc3NmdWwgdG8gY2xpZW50IGNvbm5lY3Rpb25zIGFuZCBtYXkgaGF2ZSBiZWVuIHJlcGxpY2F0ZWQgdG8gb3RoZXIgc2VydmVycyBpbiB0aGUgdG9wb2xvZ3kuAFN0b3JhZ2UgZW5naW5lcyBmYWlsZWQgdG8gcmVjb3ZlciBvbmUgb3IgbW9yZSB0cmFuc2FjdGlvbnMuIFRoZSByZWNvdmVyeSBwcm9jZXNzIHdhcyBzdG9wcGVkIGVhcmx5LCBjaGVjayBwcmV2aW91cyBtZXNzYWdlcyBmb3IgdGhlIGRldGFpbHMgb24gZmFpbGVkIHRyYW5zYWN0aW9ucy4gU2lkZSBlZmZlY3RzIG1heSBiZSB0cmFuc2FjdGlvbnMgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIGJldHdlZW4gdGhlIGJpbmFyeSBsb2cgYW5kIHRoZSBzdG9yYWdlIGVuZ2luZXMsIG9yIHRyYW5zYWN0aW9ucyBrZXB0IGJ5IHN0b3JhZ2UgZW5naW5lcyBpbiBhIHByZXBhcmVkIHN0YXRlIChwb3NzaWJseSBob2xkaW5nIGxvY2tzKS4gRWl0aGVyIGZpeCB0aGUgaXNzdWVzIHdpdGggdGhlIHN0b3JhZ2UgZW5naW5lIChvdXQtb2YtbWVtb3J5LCBubyBkaXNrIHNwYWNlLCBldGMpIG9yLCB0byByZWxlYXNlIHBvc3NpYmx5IGFjcXVpcmVkIGxvY2tzIGhlbGQgYnkgWEEgdHJhbnNhY3Rpb25zLCBkaXNhYmxlIHRoZSBiaW5hcnkgbG9nIGR1cmluZyBzZXJ2ZXIgcmVjb3ZlcnkgYW5kIGNoZWNrIGNvbnNpc3RlbmN5IGJldHdlZW4gc3RvcmFnZSBlbmdpbmVzIGFuZCBiaW5hcnkgbG9nIGZpbGVzLgBDcmFzaCByZWNvdmVyeSBmaW5pc2hlZCBpbiAlcyBlbmdpbmUuICVzAEZhaWxlZCB0byBjb21taXQgJXMgaW4gJXMsIHdpdGggZmFpbHVyZSBjb2RlICVzLgBGYWlsZWQgdG8gcm9sbGJhY2sgJXMgaW4gJXMsIHdpdGggZmFpbHVyZSBjb2RlICVzLgBGYWlsZWQgdG8gcHJlcGFyZSAlcyBpbiAlcywgd2l0aCBmYWlsdXJlIGNvZGUgJXMuAENhbm5vdCByZWdpc3RlciB2YXJpYWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCBieSBhbm90aGVyIGNvbXBvbmVudC4AQ2Fubm90IHVucmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4AQ2Fubm90IHJlZ2lzdGVyIGZ1bmN0aW9uICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkLgBDYW5ub3QgdW5yZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgd2FzIHJlZ2lzdGVyZWQgcHJvcGVybHkgaW4gdGhlIGZpcnN0IHBsYWNlLgBJbnZhbGlkIGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnJXMnLiBFeHBlY3RlZCB2YWx1ZXM6ICVzLgBJbnZhbGlkIGFsZ29yaXRobSB2YWx1ZSAnJS4yMHMnIGluIGZ1bmN0aW9uICVzLgBJbnZhbGlkIGtleSBsZW5ndGggJyVkJyBmb3IgZnVuY3Rpb24gJyVzJyB3aXRoIGFsZ29yaXRobSAnJS4yMHMnLiBQbGVhc2UgcHJvdmlkZSBhIHZhbHVlIGJldHdlZW4gWyVkLCAlZF0uAEZhaWxlZCB0byBnZW5lcmF0ZSBwcml2YXRlIGtleSBvZiBsZW5ndGggJyVkJyB3aXRoIGFsZ29yaXRobSAnJS4yMHMnIGluIGZ1bmN0aW9uICclcycuIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgZXJyb3Igd291bGQgaGF2ZSBiZWVuIGxvZ2dlZCBiZWZvcmUgdGhpcyBtZXNzYWdlLgBGYWlsZWQgdG8gZ2VuZXJhdGUgcHVibGljIGtleSB3aXRoIGFsZ29yaXRobSAnJS4yMHMnIGZvciBnaXZlbiBwcml2YXRlIGtleSBpbiBmdW5jdGlvbiAnJXMnLiBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIHdvdWxkIGhhdmUgYmVlbiBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4ASW52YWxpZCBkYXRhIGxlbmd0aCAnJWQnIChpbiBieXRlcykgZm9yIGZ1bmN0aW9uICclcycgd2l0aCBhbGdvcml0aG0gJyUuMjBzJy4gVGhlIG1heGltdW0gc3VwcG9ydCBkYXRhIGxlbmd0aCBmb3IgZ2l2ZW4gcHJpdmF0ZSBrZXkgaXMgJWQgKGluIGJ5dGVzKS4AQ291bGQgbm90IGVuY3J5cHQgZGF0YSBpbiBmdW5jdGlvbiAnJXMnIHVzaW5nIGFsZ29yaXRobSAnJS4yMHMnLiBEYXRhIGxlbmd0aCB3YXMgJyVkJyBieXRlcy4gTW9yZSBkZXRhaWxzIGFib3V0IHRoZSBlcnJvciB3b3VsZCBoYXZlIGJlZW4gbG9nZ2VkIGJlZm9yZSB0aGlzIG1lc3NhZ2UuAENvdWxkIG5vdCBkZWNyeXB0IGRhdGEgaW4gZnVuY3Rpb24gJyVzJyB1c2luZyBhbGdvcml0aG0gJyUuMjBzJy4gRGF0YSBsZW5ndGggd2FzICclZCcgYnl0ZXMuIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgZXJyb3Igd291bGQgaGF2ZSBiZWVuIGxvZ2dlZCBiZWZvcmUgdGhpcyBtZXNzYWdlLgBDb3VsZCBub3Qgc2lnbiBkYXRhIGluIGZ1bmN0aW9uICclcycgdXNpbmcgYWxnb3JpdGhtICclLjIwcycgYW5kIGRpZ2VzdCB0eXBlICclLjIwcycuIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgZXJyb3Igd291bGQgaGF2ZSBsb2dnZWQgYmVmb3JlIHRoaXMgbWVzc2FnZS4AUmVjZWl2ZWQgT3BlblNTTCBlcnJvciBpbiBmdW5jdGlvbiAnJXMnIGZvciBhbGdvcml0aG0gJyVzJzogJyVzJwBJbiBmdW5jdGlvbiAnJXMnIHdpdGggYWxnb3JpdGhtICclcyc6IGluc3VmZmljaWVudCBvdXRwdXQgYnVmZmVyIGxlbmd0aCAnJXp1Jy4gUmVxdWlyZWQgbGVuZ3RoICclenUnLgAlcyVzAFNldHRpbmcgc2Vzc2lvbiB2YWx1ZXMgZm9yIHN5c3RlbSB2YXJpYWJsZXMgb25seSBtYWtlcyBzZW5zZSBpbiBhIHVzZXIgc2Vzc2lvbiAoZmFpbGVkIHRvIHNldCAnJS4yNTZzJykuAEJ1aWxkSURbc2hhMV09JXMARmFpbGVkIHRvIHJlZ2lzdGVyIGR5bmFtaWMgcHJpdmlsZWdlICVzLgBSZWRvIGxvZyB3cml0ZXIgaXMgd2FpdGluZyBmb3IgJXMgcmVkbyBsb2cgY29uc3VtZXIgd2hpY2ggaXMgY3VycmVudGx5IHJlYWRpbmcgTFNOPSVsbHUgcHJldmVudGluZyByZWNsYW1hdGlvbiBvZiBzdWJzZXF1ZW50IHBvcnRpb24gb2YgdGhlIHJlZG8gbG9nLiBDb25zaWRlciBpbmNyZWFzaW5nIGlubm9kYl9yZWRvX2xvZ19jYXBhY2l0eS4AJXMAUmVjb3Zlcnk6IEdlbmVyYXRpbmcgaW5kZXggaW5mb3JtYXRpb24gZm9yIElOU1RBTlQgRERMIFRhYmxlIGluIDguMC4yOSBmb3JtYXQARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gJXMARmFpbGVkIHRvIHN3aXRjaCByZXNvdXJjZSBncm91cC4gQ291bGQgbm90IGFjcXVpcmUgcmVzb3VyY2UgZ3JvdXBzIGdsb2JhbCBsb2NrLgBGYWlsZWQgdG8gc3dpdGNoIHJlc291cmNlIGdyb3VwLiBDb3VsZCBub3QgYWNxdWlyZSBsb2NrIG9uIHJlc291cmNlIGdyb3VwICVzLgBGYWlsZWQgdG8gc3dpdGNoIHJlc291cmNlIGdyb3VwLiBVbmFibGUgdG8gYXBwbHkgcmVzb3VyY2UgZ3JvdXAgY29udHJvbGxlciAlcy4ARmFpbGVkIHRvIGNsZWFyIGluc3RhbnQgZHJvcCBjb2x1bW4gbWV0YWRhdGEgZm9yIHRhYmxlICVzAENhbm5vdCBvcGVuIHNpZ25pbmcga2V5IGZpbGUgJXMuAE91dCBvZiBtZW1vcnkhIENhbm5vdCBjcmVhdGUgcHJpdmF0ZSBrZXkuAENhbm5vdCByZWFkIHNpZ25pbmcga2V5IGZpbGUgJXMuAEluY29tcGxldGUga2V5OiBtaXNzaW5nIE5hbWUvVHlwZSBmb3IgdGhlIEtleTogJXMuAER1cGxpY2F0ZSBrZXkgZm91bmQgaW4ga2V5cmluZyB3aXRoIE5hbWU6ICVzIGFuZCBPd25lcjogJXMuAEVycm9yIHBhcnNpbmcgSlNPTiByZXNwb25zZSAlcy4ASW52YWxpZCBKU09OIHJlc3BvbnNlIQBIVFRQIHJlcXVlc3QgZmFpbGVkIHdpdGggZXJyb3I6ICclcycAVmFyaWFibGUgdGhyZWFkX3Bvb2wuJXMgd2FzIHVwZGF0ZWQ6ICVzACVzAFN0YXR1cyBjb2RlICV1OiBDb21wbGV0ZWQAU3RhdHVzIGNvZGUgJXU6ICV1JSUgY29tcGxldGUAU3RhdHVzIGNvZGUgJXU6ICVzAEludmFsaWQgdmFsdWUgc2V0IHRvIHRocmVhZF9wb29sX3F1ZXJ5X3RocmVhZHNfcGVyX2dyb3VwLiBWYWxpZCB2YWx1ZSByYW5nZSBpcyAldSAtICV1LgBRdWVyeSB0aHJlYWRzIGNvdW50KCV1KSBleGNlZWRzIHRyYW5zYWN0aW9uIHRocmVhZHMgbGltaXQoJXUpIHBlciBncm91cC4gUGxlYXNlIHVzZSBxdWVyeSB0aHJlYWRzIGNvdW50IHBlciBncm91cCBzbWFsbGVyIG9yIGVxdWFsIHRvIG1heCB0cmFuc2FjdGlvbiB0aHJlYWRzIGxpbWl0IHBlciBncm91cABGb3VuZCBwYWdlIHR5cGUgbWlzbWF0Y2guIEV4cGVjdGVkICV1LCBmb3VuZCAldSwgaW4gcGFnZTogc3BhY2VfaWQ9JWx1IHBhZ2Vfbm89ICVsdQBwcmVhZGVyOiBzcGFjZV9pZD0lenUsIHRhYmxlPSVzLCBpbmRleD0lcywgc2Nhbl9jdHg9JXp1LCBjdHg9JXp1LCB0aHJlYWRfaWQ9JXp1LCBuX3RocmVhZHM9JXp1AGJ1bGtsb2FkOiBzcGFjZV9pZD0lenUsIHRhYmxlPSVzLCBpbmRleD0lcywgaGVpZ2h0PSV6dSwgbl9leHRlbnRzPSV6dSwgbl9wYWdlcz0lenUAYnVsa2ZsdXNoZXI6IHNsZWVwX2NvdW50PSV6dSwgc2xlZXBfZHVyYXRpb249JXp1IG1pbGxpc2Vjb25kcywgdG90YWxfc2xlZXA9JXp1IG1pbGxpc2Vjb25kcywgcGFnZXNfZmx1c2hlZD0lenUAJXM6IE92ZXIgNjcgcGVyY2VudCBvZiB0aGUgYnVmZmVyIHBvb2wgKGN1cnJfc2l6ZT0lenUgTUIpIGlzIG9jY3VwaWVkIGJ5IGxvY2sgaGVhcHMgb3IgdGhlIGFkYXB0aXZlIGhhc2ggaW5kZXggb3IgQlVGX0JMT0NLX01FTU9SWSBwYWdlcy4gQ2hlY2sgdGhhdCB5b3VyIHRyYW5zYWN0aW9ucyBkbyBub3Qgc2V0IHRvbyBtYW55IHJvdyBsb2Nrcy4gTWF5YmUgeW91IHNob3VsZCBtYWtlIHRoZSBidWZmZXIgcG9vbCBiaWdnZXI/LiBTdGFydGluZyB0aGUgSW5ub0RCIE1vbml0b3IgdG8gcHJpbnQgZGlhZ25vc3RpY3MuACVzOiBPdmVyIDk1IHBlcmNlbnQgb2YgdGhlIGJ1ZmZlciBwb29sIChjdXJyX3NpemU9JXp1IE1CKSBpcyBvY2N1cGllZCBieSBsb2NrIGhlYXBzIG9yIHRoZSBhZGFwdGl2ZSBoYXNoIGluZGV4IG9yIEJVRl9CTE9DS19NRU1PUlkgcGFnZXMuIENoZWNrIHRoYXQgeW91ciB0cmFuc2FjdGlvbnMgZG8gbm90IHNldCB0b28gbWFueSByb3cgbG9ja3MuIE1heWJlIHlvdSBzaG91bGQgbWFrZSB0aGUgYnVmZmVyIHBvb2wgYmlnZ2VyPy4gV2UgaW50ZW50aW9uYWxseSBnZW5lcmF0ZSBhIHNlZyBmYXVsdCB0byBwcmludCBhIHN0YWNrIHRyYWNlIG9uIExpbnV4IQAlczogdGFibGU9JXMsIGluZGV4PSVzLCBuX3VuaXE9JXp1LCBuX2ZpZWxkcz0lenUsIGxocz0oJXMpLCByaHM9KCVzKQBGYWlsZWQgdG8gYXBwbHkgcm93IGV2ZW50IHdpdGggJWQgY29sdW1ucywgb3JpZ2luYXRpbmcgZnJvbSBhIHNlcnZlciBvZiB2ZXJzaW9uICVzIG9uIHRhYmxlICclLS4xOTJzLiUtLjE5MnMnLCB3aGljaCBoYXMgJWQgY29sdW1ucywgb25lIG9mIHdoaWNoIGlzIGEgZ2VuZXJhdGVkIGltcGxpY2l0IHByaW1hcnkga2V5LiBSZXBsaWNhdGlvbiBpcyB1bnN1cHBvcnRlZCB3aGVuIHRoZSBzb3VyY2Ugc2VydmVyIGlzIG9sZGVyIHRoYW4gOC4wLjMwLCB0aGUgcmVwbGljYSB0YWJsZSBoYXMgYSBnZW5lcmF0ZWQgaW1wbGljaXQgcHJpbWFyeSBrZXksIGFuZCB0aGVyZSBpcyBhIGRpZmZlcmVuY2UgaW4gY29sdW1uIGNvdW50LCBub3QgY291bnRpbmcgdGhlIHJlcGxpY2EncyBnZW5lcmF0ZWQgaW1wbGljaXQgcHJpbWFyeSBrZXkuIEFsaWduIHRoZSB0YWJsZSBzY2hlbWFzIG9uIHNvdXJjZSBhbmQgcmVwbGljYSwgYW5kIHJlc3RhcnQgcmVwbGljYXRpb24uAEJ1bGsgZXhlY3V0b3I6ICVzAEJ1bGsgbG9hZGVyOiAlcwBUaGUgZmlyc3QgZmlsZSBiZWluZyBsb2FkZWQgY29udGFpbmVkIGxlc3MgbGluZXMgdGhhbiB0aGUgaWdub3JlIGNsYXVzZQBCdWxrIHJlYWRlcjogJXMAQnVsayByZWFkZXIgZmFpbGVkIHRvIGluaXRpYWxpemUgbGliY3VybABCdWxrIHJlYWRlciBnb3QgbGliY3VybCBlcnJvcjogJXMAQnVsayByZWFkZXIgZ290IGVycm9yIHJlc3BvbnNlIGZyb20gc2VydmVyOiAlbGQAQnVsayByZWFkZXIgZ290IGVycm9yIGluIGNvbW11bmljYXRpb24gd2l0aCBzb3VyY2Ugc2VydmVyLCBjaGVjayB0aGUgZXJyb3IgbG9nIGZvciBhZGRpdGlvbmFsIGRldGFpbHMATWlzc2luZyBFTkNMT1NFRCBCWSBjaGFyYWN0ZXIgYXQgcm93ICVsZCBpbiBmaWxlICVzLiBBZGQgT1BUSU9OQUxMWSB0byB0aGUgRU5DTE9TRUQgQlkgY2xhdXNlIHRvIGFsbG93IHRoaXMgaW5wdXQuAFRoZSBudW1iZXIgb2YgaW5wdXQgY29sdW1ucyB0aGF0IG5lZWQgdG8gYmUgYnVmZmVyZWQgZm9yIHBhcnNpbmcgZXhjZWVkZWQgcHJlZGVmaW5lZCBidWZmZXIgbWF4IHNpemUgZm9yIGZpbGUgJyVzJy4AVGhlIGNvbHVtbiBkYXRhIHRoYXQgbmVlZGVkIHRvIGJlIGNvcGllZCBkdWUgdG8gZXNjYXBlZCBjaGFyYWN0ZXJzIGV4Y2VlZGVkIHRoZSBzaXplIG9mIHRoZSBpbnRlcm5hbCBjb3B5IGJ1ZmZlciBmb3IgZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4gRGF0YSBmb3Igc29tZSBjb2x1bW5zIGlzIG1pc3NpbmcuAFVuZXhwZWN0ZWQgcm93IHRlcm1pbmF0b3IgZm91bmQgYXQgcm93ICVsZCBpbiBmaWxlICclcycuIERhdGEgZm9yIHNvbWUgY29sdW1ucyBpcyBtaXNzaW5nLgBVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgZW5kaW5nIEVOQ0xPU0VEIEJZIGNoYXJhY3RlciBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIE5VTEwgZXNjYXBlIChOKSBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJy4AVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGNvbHVtbiB0ZXJtaW5hdG9yIGZvdW5kIGF0IHJvdyAlbGQgaW4gZmlsZSAnJXMnLgBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBmb3VuZCBhdCByb3cgJWxkIGluIGZpbGUgJyVzJyByZXN1bHRpbmcgaW4gaW5jb21wbGV0ZSBlc2NhcGUgc2VxdWVuY2UuAEluY29ycmVjdCAlLS4zMnMgdmFsdWU6ICclLS4xMjhzJyBmb3IgY29sdW1uICclLS4xOTJzJyBhdCByb3cgJWxkIGluIGZpbGUgJyUtLjE5MnMnAE5VTEwgc3VwcGxpZWQgdG8gTk9UIE5VTEwgY29sdW1uICclcycgYXQgcm93ICVsZCBpbiBmaWxlICclLS4xOTJzJwAlczogTE9BRCBCVUxLIERBVEEgdGhyZWFkIGZhaWx1cmUgKGVycj0lbHUpLCB0YWJsZT0lcywgaW5kZXg9JXMAJXM6IEZhaWxlZCB0byBtZXJnZSBzdWItdHJlZXMgaW4gTE9BRCBCVUxLIERBVEEsIHRhYmxlPSVzLCBpbmRleD0lcywgZGV0YWlscz0lcwBMT0FEIEJVTEsgREFUQTogQnVmZmVyIHBvb2wgc2l6ZSBpcyAlenUuIFJlZHVjaW5nIGNvbmN1cnJlbmN5IGZyb20gJXp1IHRvICV6dS4gdGFibGU9JXMuAEMrKyBFeGNlcHRpb24gY2F1Z2h0IHdoaWxlICVzIHRoZSAlcyBwbHVnaW46IFslc10AUmVwbGljYXRpb24gY29uZmlndXJhdGlvbiBhcHBlYXJzIHRvIGJlIGNvcnJ1cHRlZC4gT24gR3JvdXAgUmVwbGljYXRpb24gY2hhbm5lbCAnJXMnLCBzZXR0aW5nIFJFUVVJUkVfVEFCTEVfUFJJTUFSWV9LRVlfQ0hFQ0sgdG8gJ0dFTkVSQVRFJyBpcyBub3QgYWxsb3dlZC4gUnVuIFJFU0VUIFJFUExJQ0EgQUxMIHRvIHJlc2V0IGl0LgBSZWNvcmQgaGFzIGJvdGggaW5zdGFudCBhbmQgdmVyc2lvbiBiaXQgc2V0LgBUaGlzIG1lbWJlciBpcyBjb25maWd1cmVkIHdpdGggYSBncm91cF9yZXBsaWNhdGlvbl9wYXhvc19zaW5nbGVfbGVhZGVyIG9wdGlvbiB2YWx1ZSBvZiAxIGFuZCBpdCBpcyB0cnlpbmcgdG8gam9pbiBhIGdyb3VwIHdpdGggQ29tbXVuaWNhdGlvbiBQcm90b2NvbCBWZXJzaW9uIGJlbG93IDguMC4yNy4gSW4gb3JkZXIgdG8gam9pbiB0aGlzIGdyb3VwLCBncm91cF9yZXBsaWNhdGlvbl9wYXhvc19zaW5nbGVfbGVhZGVyIHZhbHVlIG11c3QgYmUgY29uZmlndXJlZCB0byB0aGUgdmFsdWUgMC4gVGhpcyBtZW1iZXIgd2lsbCBub3cgZXhpdCB0aGUgZ3JvdXAuAElnbm9yZWQgdGhlIGlubm9kYi1yZWRvLWxvZy1jYXBhY2l0eSBvcHRpb24gaW4gdGhlIElubm9kYiByZWFkLW9ubHkgbW9kZS4gU2VydmVyIGlzIHVzaW5nIGFjdGl2ZSByZWRvIGxvZyBmaWxlcy4AVW5leHBlY3RlZCBJTlNUQU5UTFkgQWRkZWQgLyBEcm9wcGVkIGNvbHVtbjogJyVzJyBhdCBwb3NpdGlvbiAlbHUgZm9yIFRhYmxlICclcycsIEluZGV4ICclcycgd2hpbGUgZ2V0dGluZyBQcmltYXJ5IEtleSBmb3Igcm93IGxvZ2dpbmcAJXMAQ29sdW1uIG5hbWUgJXMgYW5kIGludGVybmFsbHkgZ2VuZXJhdGVkIElOU1RBTlQgRFJPUCBjb2x1bW4gbmFtZSAlcyBpcyBjYXVzaW5nIGEgY29uZmxpY3QuAEZpZWxkIG51bWJlcjogJWxsdSB0b28gbGFyZ2UsIFRvdGFsIGZpZWxkcyBpbiBSZWNvcmQ6ICV6dS4AJXMAVGhlIGNvbm5lY3Rpb24gaGFzIHRpbWVkIG91dCBhZnRlciAlbHUgcmV0cmllcyBjb25uZWN0aW5nIHRvICclc0AlczolZCclcywgYW5kIHRoZXJlZm9yZSB0aGUgTXlTUUwgc2VydmVyIGlzIGdvaW5nIHRvIGF0dGVtcHQgYW4gYXN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24gZmFpbG92ZXIsIHRvICclc0AlczolZCcAVGhlIFJlcGxpY2Egd2hpY2ggd2FzIGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzOiVkJywgaXMgbm93IGNvbm5lY3RlZCB0byBuZXcgc291cmNlICclczolZCcsIGJ1dCBzdGlsbCBoYXMgdGhlIHNhbWUgc2VydmVyX3V1aWQgJXMuAFRoZSBzZXJ2ZXJfdXVpZCBmb3Igc291cmNlIHNlcnZlciAnJXM6JWQnIGhhcyBjaGFuZ2VkIGZyb20gJXMgdG8gJXMuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gdW5sZXNzIHlvdSBoYXZlIGNoYW5nZWQgaXQgbWFudWFsbHkuAFRoZSBzb3VyY2Ugc2VydmVyIGhhcyBjaGFuZ2VkIGZyb20gJyVzOiVkJyB3aXRoIHNlcnZlcl91dWlkICVzLCB0byAnJXM6JWQnIHdpdGggc2VydmVyX3V1aWQgJXMuAFJlcGxpY2EgcmVjZWl2ZXIgdGhyZWFkJXM6IGNvbm5lY3RlZCB0byBzb3VyY2UgJyVzQCVzOiVkJyB3aXRoIHNlcnZlcl91dWlkPSVzLCBzZXJ2ZXJfaWQ9JWQuIFN0YXJ0aW5nIHJlcGxpY2F0aW9uIGZyb20gZmlsZSAnJXMnLCBwb3NpdGlvbiAnJXMnLgBSZXBsaWNhIHJlY2VpdmVyIHRocmVhZCVzOiBjb25uZWN0ZWQgdG8gc291cmNlICclc0AlczolZCcgd2l0aCBzZXJ2ZXJfdXVpZD0lcywgc2VydmVyX2lkPSVkLiBTdGFydGluZyBHVElELWJhc2VkIHJlcGxpY2F0aW9uLgBMb2FkZXI6OmJ1aWxkX2FsbCgpOiBDb21wbGV0ZWQgYnVpbGRpbmcgJXp1IGluZGV4ZXMgZm9yIG9sZF90YWJsZT0lcywgbmV3X3RhYmxlPSVzLCBlcnI9JXp1LgBCdWlsZGVyOjpmaW5pc2goKTogQ29tcGxldGVkIGJ1aWxkaW5nIGluZGV4PSVzIG9mIHRhYmxlPSVzLCBlcnI9JXp1LgAlczogJyVzJyBpcyBhIHVzZXIgZGVmaW5lZCBjb2xsYXRpb24uIFVzZXIgZGVmaW5lZCBjb2xsYXRpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgYSBjb21waWxlZCBjb2xsYXRpb24gaW5zdGVhZC4AQnVpbGRlcjo6aW5pdCgpOiBJbml0aWFsaXplIGZvciBidWlsZGluZyBpbmRleD0lcyBvZiB0YWJsZT0lcywgbl90aHJlYWRzPSV6dSwgc29ydCBidWZmZXIgc2l6ZT0lenUgYnl0ZXMsIGkvbyBidWZmZXIgc2l6ZT0lenUgYnl0ZXMuAFNFTEVDVCBDT1VOVCgqKSBGUk9NIHRhYmxlPSVzLCBuX3RocmVhZHM9JXp1LCBuX3BhcnRpdGlvbnM9JXp1LgBJbmRleCBsb2cgdmVyc2lvbiAldSBkaWQgbm90IG1hdGNoLiBNYXggaW5kZXggdmVyc2lvbiBpcyAldS4gUmVjb3ZlcnkgY2FuJ3QgY29udGludWUuIFBsZWFzZSBtYWtlIHN1cmUgc2VydmVyIGlzIG5vdCBzdGFydGluZyB1cCB3aXRoIHRoZSBkYXRhZGlyIGdlbmVyYXRlZCBpbiBmdXR1cmUgdmVyc2lvbi4ATXVsdGlwbGUga2V5cmluZyBjb21wb25lbnQgVVJOcyAnJXMnIGZvdW5kIGluIG1hbmlmZXN0IGZpbGUgJyVzJy4gT25seSBvbmUga2V5cmluZyBjb21wb25lbnQgY2FuIGJlIGxvYWRlZCBhdCBhIHRpbWUuAFBsdWdpbiAnZ3JvdXBfcmVwbGljYXRpb24nIGhhcyBiZWVuIHN0YXJ0ZWQuAE1pbmltdW0gcmVjb3JkIGZsYWcgaXMgd3JvbmdseSBzZXQgdG8gcmVjIG9uIHBhZ2UgJyVsdScgYXQgbGV2ZWwgJyVsdScgZm9yIGluZGV4ICclcycgb2YgdGFibGUgJyVzJy4ATWluaW11bSByZWNvcmQgZmxhZyBpcyBub3Qgc2V0IHRvIGZpcnN0IHJlYyBvbiBwYWdlICclbHUnIGF0IGxldmVsICclbHUnIGZvciBpbmRleCAnJXMnIG9mIHRhYmxlICclcycuAFN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHNsb3QgJyVkJyBmb3IgY29tcG9uZW50ICclcycuAFN1Y2Nlc3NmdWxseSBkZS1yZWdpc3RlcmVkIHNsb3QgJyVkJyBmcm9tIGNvbXBvbmVudCAnJXMnLgBDYW5ub3QgZnJlZSByZXNvdXJjZXMgc3RvcmVkIGJ5IGNvbXBvbmVudCAnJXMnIGluIHRocmVhZCB3aXRoIElEOiAnJWQnLiBDb21wb25lbnQgZmFpbGVkIHRvIGZyZWUgcmVxdWlyZWQgcmVzb3VyY2VzLgBUcmFuc2FjdGlvbiBJRDogJWx1IGZvdW5kIGZvciByZXN1cnJlY3RpbmcgaW5zZXJ0cwBUcmFuc2FjdGlvbiBJRDogJWx1IGZvdW5kIGZvciByZXN1cnJlY3RpbmcgdXBkYXRlcwBJZGVudGlmaWVkIHRhYmxlIElEOiAlbHUgdG8gYWNxdWlyZSBsb2NrAEFjcXVpcmVkIGxvY2sgb24gdGFibGUgSUQ6ICVsdSwgbmFtZTogJXMAUmVjb3JkcyByZWFkOiAlbHUgLSBQYWdlcyByZWFkOiAlbHUAVG90YWwgcmVjb3JkcyByZXN1cnJlY3RlZDogJWx1IC0gVG90YWwgcGFnZXMgcmVhZDogJWx1IC0gVG90YWwgdGFibGVzIGFjcXVpcmVkOiAlbHUAUmVzdXJyZWN0ZWQgJWx1IHRyYW5zYWN0aW9ucyBkb2luZyBpbnNlcnRzLgBSZXN1cnJlY3RlZCAlbHUgdHJhbnNhY3Rpb25zIGRvaW5nIHVwZGF0ZXMuAEludmFsaWQgc2VjdXJpdHkgdG9rZW4gcHJvdmlkZWQgYnkgJyVzJyBmb3IgJyVzJ0AnJXMnOiAlcy4AVW5rbm93biB1c2VyL3RlbmFuY3kgKHVzZXI6ICVzIHRlbmFuY3k6ICVzKSBmb3VuZCBpbiBzZWN1cml0eSB0b2tlbiBwcm92aWRlZCBieSAnJXMnIGZvciAnJXMnQCclcycuAFZlcmlmaWNhdGlvbiBmYWlsZWQgZm9yIHNlY3VyaXR5IHRva2VuIHByb3ZpZGVkIGJ5ICclcycgZm9yICclcydAJyVzJyA6ICVzLgBDb3VsZCBub3QgZG93bmxvYWQgSUREUCBQdWJsaWMga2V5LiBQbGVhc2UgY2hlY2sgaWYgc2VjdXJpdHkgdG9rZW4gcHJvdmlkZWQgYnkgJyVzJyBmb3IgJyVzJ0AnJXMnIGlzIHZhbGlkLgBOb25lIG9mIHRoZSBncm91cHMgZXh0cmFjdGVkIGZyb20gc2VjdXJpdHkgdG9rZW4gbWF0Y2hlcyBhbnkgb2YgdGhlIGVudHJpZXMgZnJvbSBhdXRoZW50aWNhdGlvbiBzdHJpbmcuAENhbm5vdCByZWdpc3RlciB2YXJpYWJsZSAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCBieSBhbm90aGVyIGNvbXBvbmVudC4AQ2Fubm90IHVucmVnaXN0ZXIgdmFyaWFibGUgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4AQ2Fubm90IHJlZ2lzdGVyIGZ1bmN0aW9uICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkIGJ5IGFub3RoZXIgY29tcG9uZW50LgBDYW5ub3QgdW5yZWdpc3RlciBmdW5jdGlvbiAnJXMnLiBQbGVhc2UgY2hlY2sgaWYgaXQgd2FzIHJlZ2lzdGVyZWQgcHJvcGVybHkgaW4gdGhlIGZpcnN0IHBsYWNlLgBDYW5ub3QgcmVnaXN0ZXIgcHJpdmlsZWdlICclcycuIFBsZWFzZSBjaGVjayBpZiBpdCBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkLgBDYW5ub3QgdW5yZWdpc3RlciBwcml2aWxlZ2UgJyVzJy4gUGxlYXNlIGNoZWNrIGlmIGl0IHdhcyByZWdpc3RlcmVkIHByb3Blcmx5IGluIHRoZSBmaXJzdCBwbGFjZS4ARXJyb3Igd2hpbGUgZXhlY3V0aW5nIFVERiAlcy4ARXJyb3Igd2hpbGUgZXhlY3V0aW5nIFVERiAlczogJXMuACVzIGZhaWxlZC4AJXMgZmFpbGVkIHdpdGggJXUuAExvY2sgZmFpbGVkIGF0ICVzIDogJXUuAExvY2sgZnJvbSAlcyA6ICV1IGZhaWxlZCB0byB1bmxvY2suAE1hc2tpbmcgY29tcG9uZW50IGVycm9yOiAnJXMnLgAlcyBmYWlsZWQuACVzIGZhaWxlZCBiZWNhdXNlICVzLgBDcmVhdGlvbiBvZiByYW5kb20gY29udGV4dCBmYWlsZWQuAENyZWF0aW9uIG9mIHJhbmRvbSBjb250ZXh0IGZhaWxlZCBiZWNhdXNlICVzLgBDYW5ub3QgYWNjZXNzICVzLiVzIHRhYmxlLgBDYW5ub3QgcmVjb3ZlciBmcm9tIGRldGVjdF9vbmx5IGRvdWJsZXdyaXRlIGJ1ZmZlciBhcyBwYWdlICV1IGZyb20gYmF0Y2ggZG91Ymxld3JpdGUgZmlsZSBpcyBjb3JydXB0ZWQuAERhdGFiYXNlIHBhZ2UgY29ycnVwdGlvbiBvZiB0YWJsZXNwYWNlICVzIHNwYWNlX2lkOiAldSBwYWdlX251bTogJXUuIENhbm5vdCByZWNvdmVyIGl0IGZyb20gdGhlIGRvdWJsZXdyaXRlIGJ1ZmZlciBiZWNhdXNlIGl0IHdhcyB3cml0dGVuIGluIGRldGVjdF9vbmx5LWRvdWJsZXdyaXRlIG1vZGUuAGluaXRfY29ubmVjdCB2YXJpYWJsZSBpcyBpZ25vcmVkIGZvciB1c2VyOiAlcyBob3N0OiAlcyBkdWUgdG8gbXVsdGktZmFjdG9yIHJlZ2lzdHJhdGlvbiByZXF1aXJlZCBzYW5kYm94aW5nAEV4ZWN1dGlvbiBvZiBhbHRlciB0YWJsZSAlcyAlcyBmYWlsZWQgYmVjYXVzZSAlcy4AVFAgY29ubiAocG9ydDogbWFuYWdlZChkZWx0YSksIGFjdGl2ZSwgb3BlbmVkLCBjbG9zZWQsIGFkZGVkLCBkcm9wcGVkKTogJXMAU2NoZWR1bGVkIHJ1biBvZiB0YXNrICVzIGZhaWxlZABJbnZhbGlkIGZsdXNoIGludGVydmFsIHNwZWNpZmllZDogJWx1LiBWYWxpZCB2YWx1ZXMgYXJlIDAgKG9mZikgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVkLiBBZGp1c3RpbmcgdG8gJWQAQ291bGQgbm90IHB1cmdlIGJpbmFyeSBsb2dzIHNpbmNlIGFub3RoZXIgc2Vzc2lvbiBpcyBleGVjdXRpbmcgTE9DSyBJTlNUQU5DRSBGT1IgQkFDS1VQLiBXYWl0IGZvciB0aGF0IHNlc3Npb24gdG8gcmVsZWFzZSB0aGUgbG9jay4ATXVsdGktdmFsdWVzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gTXlTUUwgZm9ybWF0OiAlcwBIZWFwIHJlcXVpcmVkIHRvIGNvbnZlcnQgY29sdW1ucyBpcyBub3QgcHJlc2VudC4ATXlTUUwgc2VydmVyIGRvd25ncmFkaW5nIGZyb20gdmVyc2lvbiAnJXUnIHRvICcldScuAEludmFsaWQgTXlTUUwgc2VydmVyIGRvd25ncmFkZTogQ2Fubm90IGRvd25ncmFkZSBmcm9tICV1IHRvICV1LiBUYXJnZXQgTXlTUUwgc2VydmVyIHZlcnNpb24gaXMgbG93ZXIgdGhhbiB0aGUgc2VydmVyIGRvd25ncmFkZSB0aHJlc2hvbGQgJXUuAEludmFsaWQgTXlTUUwgc2VydmVyIHVwZ3JhZGU6IENhbm5vdCB1cGdyYWRlIGZyb20gJXUgdG8gJXUuIFRhcmdldCBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBpcyBsb3dlciB0aGFuIHRoZSBzZXJ2ZXIgdXBncmFkZSB0aHJlc2hvbGQgJXUuAEludmFsaWQgTXlTUUwgc2VydmVyIHVwZ3JhZGU6IENhbm5vdCB1cGdyYWRlIGZyb20gJXUgdG8gJXUuIFVwZ3JhZGUgdG8gbmV4dCBtYWpvciB2ZXJzaW9uIGlzIG9ubHkgYWxsb3dlZCBmcm9tIHRoZSBsYXN0IExUUyByZWxlYXNlLCB3aGljaCB2ZXJzaW9uICV1IGlzIG5vdC4ASW52YWxpZCBNeVNRTCBzZXJ2ZXIgZG93bmdyYWRlOiBDYW5ub3QgZG93bmdyYWRlIGZyb20gJXUgdG8gJXUuIERvd25ncmFkZSBpcyBvbmx5IHBlcm1pdHRlZCBiZXR3ZWVuIHBhdGNoIHJlbGVhc2VzLgBGYWlsZWQgdG8gZ2V0IHRoZSBkYXRhIGRpY3Rpb25hcnkgcHJvcGVydHkgJXMuAEZhaWxlZCB0byBzZXQgdGhlIGRhdGEgZGljdGlvbmFyeSBwcm9wZXJ0eSAlcy4AU2VydmVyIGRvd25ncmFkZSBmcm9tICclZCcgdG8gJyVkJyAlcy4AJXMgaW5mb3JtYXRpb24gc2NoZW1hIGZyb20gdmVyc2lvbiAldSB0byAldS4AJXMgcGVyZm9ybWFuY2Ugc2NoZW1hIGZyb20gdmVyc2lvbiAldSB0byAldS4AVmFsdWUgZm9yIG9wdGlvbiAnJXMnIGNvbnRhaW5zIGNpcGhlciAnJXMnIHRoYXQgaXMgZWl0aGVyIGJsb2NrZWQgb3IgZGVwcmVjYXRlZCAoYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlKS4gUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuAERETCBmYWlsZWQgYXMgQnVpbGRlciBpcyBhbHJlYWR5IGZyZWVkLiBCdWlsZGVyOiBzdGF0ZT0ldSwgZXJyb3Jfc3RhdGU9JXUuIEluZGV4OiBpZD0lenUsIG5hbWU9JyVzJywgc3BhY2VfaWQ9JXUsIHBhZ2U9JXUuIFRhYmxlOiBvbGRfbmFtZT0nJXMnLCBuZXdfbmFtZT0nJXMnLgBNZW1iZXIgaWRlbnRpZmllZCAlczogJyVzJyBkb2VzIG5vdCBleGlzdCBvbiBHcm91cCBSZXBsaWNhdGlvbiBtZW1iZXJzaGlwIGR1cmluZyAlcy4ARGVwcmVjYXRlZCAnJXMnIHVzZWQgJXMgdGltZXMsIGxhc3QgdGltZSB1c2VkICclcycuAFdhaXRpbmcgZm9yICV1IGNvbm5lY3Rpb25zIHRvIGJlIGNsb3NlZC4AV2FpdGluZyBmb3IgVEhEcyBpbiBwYXJ0aXRpb24gJXUgdG8gYmUgY2xvc2VkLCAldSBzdGlsbCBsZWZ0LiAldSBUSERzIGxlZnQgaW4gdG90YWwgZm9yIGFsbCBwYXJ0aXRpb25zLgBJbmRleCAlcyBvZiAlcy4lcyBleGNlZWRzIGxpbWl0IG9mICVsdSBieXRlcyBwZXIgY29sdW1uLgBGYWlsZWQgdG8gdXBkYXRlIGRhdGEgZGlyZWN0b3J5IGZsYWcgZm9yIGRkIHRhYmxlIHdpdGggdGFibGVzcGFjZSBpZCAnJWxsdScgd2hlbiBpYmQgZmlsZSBmb3IgJyVzJyBpcyBtb3ZlZCB0byBuZXcgbG9jYXRpb24gJyVzJyBkdXJpbmcgc2VydmVyIHNodXRkb3duACVzIEREIElEOiAlbGx1IC0gVGFibGVzcGFjZSAldSwgbmFtZSAnJXMnLCBmb3VuZCBhdCAnJXMnIG91dHNpZGUgZGVmYXVsdCBkYXRhIGRpcmVjdG9yeSwgYnV0IEREIG1pc3NlcyBpbmZvIGFib3V0IERBVEEgRElSRUNUT1JZAFVwb24gcmVjb25uZWN0aW9uIHdpdGggdGhlIHJlcGxpY2EsIHdoaWxlIGluaXRpYWxpemluZyB0aGUgZHVtcCB0aHJlYWQgZm9yICVzIDwlcz4sIGFuIGV4aXN0aW5nIGR1bXAgdGhyZWFkIHdpdGggdGhlIHNhbWUgJXMgd2FzIGRldGVjdGVkLiBUaGUgc291cmNlIGlzIHRlcm1pbmF0aW5nIHRoZSBwcmV2aW91cyBkdW1wIHRocmVhZCAoJXUpLCB3aGljaCBpcyBub3JtYWwgYW5kIGV4cGVjdGVkLgBUaGUgdHJhbnNhY3Rpb24gJyUtLjE5MnMnIHdpbGwgY29tbWl0IG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gaXRzIHNvdXJjZSB0byBmb2xsb3cgdGhlIGdyb3VwIGdsb2JhbCBvcmRlci4AQ2FuIG5vdCBvcGVuIHRhYmxlIGAlc2AuYCVzYDsgZnVuY3Rpb25zIGluIGNvbnN0cmFpbnRzLCBwYXJ0aXRpb25zLCBvciB2aXJ0dWFsIGNvbHVtbnMgbWF5IGhhdmUgZmFpbGVkLgAlcwBGYWlsZWQgdG8gY3JlYXRlIHRoZSBHcm91cCBSZXBsaWNhdGlvbiBjZXJ0aWZpZXIgYnJvYWRjYXN0IHRocmVhZCAoVEhEX2NlcnRpZmllcl9icm9hZGNhc3QpLgBUaGUgR3JvdXAgUmVwbGljYXRpb24gY2VydGlmaWVyIGJyb2FkY2FzdCB0aHJlYWQgKFRIRF9jZXJ0aWZpZXJfYnJvYWRjYXN0KSBzdGFydGVkLgBUaGUgR3JvdXAgUmVwbGljYXRpb24gY2VydGlmaWVyIGJyb2FkY2FzdCB0aHJlYWQgKFRIRF9jZXJ0aWZpZXJfYnJvYWRjYXN0KSBzdG9wcGVkLgA=
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
errmsg.sys
388.60 KB
lrw-r--r--
2025-03-31 09:54:51
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).