# Name: smd_if v0.91 # Type: Public side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC45MSI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImNvZGUiO3M6MTg1NjU6 Ii8qKg0KICogc21kX2lmDQogKg0KICogQSBUZXh0cGF0dGVybiBDTVMgcGx1Z2luIGZvciBl dmFsdWF0aW5nIG11bHRpcGxlIGNvbmRpdGlvbmFsIGxvZ2ljIHN0YXRlbWVudHMNCiAqICAt PiBUZXN0IGZvciAoaW4pZXF1YWxpdHksIGxlc3MvZ3JlYXRlciB0aGFuLCBkaXZpc2libGUg YnksIGVtcHR5LCB1c2VkLCBkZWZpbmVkLCBiZWdpbnMvZW5kcywgY29udGFpbnMsIGluIGxp c3QsIHR5cGUuLi4NCiAqICAtPiBTdXBwb3J0cyBhbmQvb3IgbG9naWMNCiAqICAtPiBEYXRh IGZpbHRyYXRpb24gb3B0aW9ucw0KICoNCiAqIEBhdXRob3IgU3RlZiBEYXdzb24NCiAqIEBs aW5rICAgaHR0cDovL3N0ZWZkYXdzb24uY29tLw0KICovDQoNCmZ1bmN0aW9uIHNtZF9pZigk YXR0cywkdGhpbmcpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xlLCAkcHJldGV4dCwgJHRoaXNm aWxlLCAkdGhpc2xpbmssICR0aGlzaW1hZ2UsICR2YXJpYWJsZTsNCg0KCWV4dHJhY3QobEF0 dHMoYXJyYXkoDQoJCSdmaWVsZCcgICAgICAgICAgPT4gJycsDQoJCSdvcGVyYXRvcicgICAg ICAgPT4gJycsDQoJCSd2YWx1ZScgICAgICAgICAgPT4gJycsDQoJCSdsb2dpYycgICAgICAg ICAgPT4gJ2FuZCcsDQoJCSdjYXNlX3NlbnNpdGl2ZScgPT4gJzAnLA0KCQknZmlsdGVyJyAg ICAgICAgID0+ICcnLA0KCQkncmVwbGFjZScgICAgICAgID0+ICcnLA0KCQknZmlsdGVyX3R5 cGUnICAgID0+ICdhbGwnLA0KCQknZmlsdGVyX29uJyAgICAgID0+ICdmaWVsZCcsDQoJCSdw YXJhbV9kZWxpbScgICAgPT4gJywnLA0KCQknbW9kX2RlbGltJyAgICAgID0+ICc6JywNCgkJ J2xpc3RfZGVsaW0nICAgICA9PiAnLycsDQoJCSd2YXJfcHJlZml4JyAgICAgPT4gJ3NtZF9p Zl8nLA0KCQknZGVidWcnICAgICAgICAgID0+ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJLy8g U3BlY2lhbCBmaWVsZCBuYW1lcyB0aGF0IHJlZmVyIHRvICRwcmV0ZXh0IG9yIGVsc2V3aGVy ZSAtIGV2ZXJ5dGhpbmcgZWxzZSBpcyBhc3N1bWVkIHRvDQoJLy8gZXhpc3QgaW4gJHRoaXNh cnRpY2xlIHNvIGN1c3RvbSBmaWVsZHMgY2FuIGJlIHVzZWQNCgkkYWxsUHR4dCA9IGFycmF5 KA0KCQkiaWQiICAgICAgICAgICAgPT4gJyRwcmV0ZXh0WyJpZCJdJywNCgkJInMiICAgICAg ICAgICAgID0+ICckcHJldGV4dFsicyJdJywNCgkJImMiICAgICAgICAgICAgID0+ICckcHJl dGV4dFsiYyJdJywNCgkJInF1ZXJ5IiAgICAgICAgID0+ICckcHJldGV4dFsicSJdJywNCgkJ InBnIiAgICAgICAgICAgID0+ICckcHJldGV4dFsicGciXScsDQoJCSJtb250aCIgICAgICAg ICA9PiAnJHByZXRleHRbIm1vbnRoIl0nLA0KCQkiYXV0aG9yIiAgICAgICAgPT4gJyRwcmV0 ZXh0WyJhdXRob3IiXScsDQoJCSJzdGF0dXMiICAgICAgICA9PiAnJHByZXRleHRbInN0YXR1 cyJdJywNCgkJInBhZ2UiICAgICAgICAgID0+ICckcHJldGV4dFsicGFnZSJdJywNCgkJIm5l eHRfaWQiICAgICAgID0+ICckcHJldGV4dFsibmV4dF9pZCJdJywNCgkJIm5leHRfdGl0bGUi ICAgID0+ICckcHJldGV4dFsibmV4dF90aXRsZSJdJywNCgkJIm5leHRfdXRpdGxlIiAgID0+ ICckcHJldGV4dFsibmV4dF91dGl0bGUiXScsDQoJCSJwcmV2X2lkIiAgICAgICA9PiAnJHBy ZXRleHRbInByZXZfaWQiXScsDQoJCSJwcmV2X3RpdGxlIiAgICA9PiAnJHByZXRleHRbInBy ZXZfdGl0bGUiXScsDQoJCSJwcmV2X3V0aXRsZSIgICA9PiAnJHByZXRleHRbInByZXZfdXRp dGxlIl0nLA0KCQkicGVybWxpbmtfbW9kZSIgPT4gJyRwcmV0ZXh0WyJwZXJtbGlua19tb2Rl Il0nLA0KCSk7DQoNCgkvLyBFYWNoIGVudHJ5IGhhcyB0aGUgb3BlcmF0aW9uIHRvIGJlIGV2 YWwoKWQgbGF0ZXIgYW5kIGEgbGlzdCBvZiBkaXNhbGxvd2VkIGZpZWxkcw0KCSRhbGxPcHMg PSBhcnJheSgNCgkJJ2VxJyAgICAgICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENB U1QgRklFTEQgPT09IENBU1QgVkFMVUUnLCAnJyksDQoJCSdub3QnICAgICAgID0+IGFycmF5 KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEICE9PSBDQVNUIFZBTFVFJywgJycpLA0K CQknZ3QnICAgICAgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA+ IENBU1QgVkFMVUUnLCAnJyksDQoJCSdnZScgICAgICAgID0+IGFycmF5KCdpc3NldChWQVJO QU1FKSAmJiBDQVNUIEZJRUxEID49IENBU1QgVkFMVUUnLCAnJyksDQoJCSdsdCcgICAgICAg ID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBWQUxVRScs ICcnKSwNCgkJJ2xlJyAgICAgICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1Qg RklFTEQgPD0gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2JldHdlZW4nICAgPT4gYXJyYXkoJ2lz c2V0KFZBUk5BTUUpICYmICgkdHdlZW49ZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwgVkFM VUUpKSAmJiBDQVNUIEZJRUxEID4gJHR3ZWVuWzBdICYmIENBU1QgRklFTEQgPCAkdHdlZW5b MV0nLCAnJyksDQoJCSdyYW5nZScgICAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiAo JHJuZz1leHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICYmIENBU1QgRklFTEQg Pj0gJHJuZ1swXSAmJiBDQVNUIEZJRUxEIDw9ICRybmdbMV0nLCAnJyksDQoJCSdkaXZpc2li bGUnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEICUgQ0FTVCBWQUxV RSA9PT0gMCcsICcnKSwNCgkJJ2luJyAgICAgICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUp ICYmIGluX2FycmF5KEZJRUxELCBleHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkp ICE9PSBmYWxzZScsICcnKSwNCgkJJ25vdGluJyAgICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5B TUUpICYmIGluX2FycmF5KEZJRUxELCBleHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxV RSkpID09PSBmYWxzZScsICcnKSwNCgkJJ2JlZ2lucycgICAgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpICYmIHN0cnBvcyhGSUVMRCwgVkFMVUUpID09PSAwJywgJycpLA0KCQknY29udGFp bnMnICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBWQUxVRSkg IT09IGZhbHNlJywgJycpLA0KCQknZW5kcycgICAgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgc3Vic3RyKEZJRUxELCBzdHJsZW4oRklFTEQpIC0gc3RybGVuKFZBTFVFKSkgPT09 IFZBTFVFJywgJycpLA0KCQknZGVmaW5lZCcgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkn LCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFycmF5KCchaXNzZXQoVkFSTkFNRSkn LCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAm JiBGSUVMRCA9PSAiIicsICcnKSwNCgkJJ2lzdXNlZCcgICAgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpICYmIEZJRUxEICE9ICIiJywgJycpLA0KCQknaXNudW0nICAgICA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVMRCknLCAnJyksDQoJ CSdpc2FscGhhJyAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBjdHlwZV9hbHBoYSgo c3RyaW5nKUZJRUxEKScsICcnKSwNCgkJJ2lzYWxudW0nICAgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpICYmIGN0eXBlX2FsbnVtKChzdHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNsb3dl cicgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0cmluZylG SUVMRCknLCAnJyksDQoJCSdpc3VwcGVyJyAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAm JiBjdHlwZV91cHBlcigoc3RyaW5nKUZJRUxEKScsICcnKSwNCgkJJ2lzcHVuY3QnICAgPT4g YXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX3B1bmN0KChzdHJpbmcpRklFTEQpJywg JycpLA0KCQknaXNzcGFjZScgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVf c3BhY2UoKHN0cmluZylGSUVMRCknLCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0 LCBnZSwgbHQsIGxlLCBlcSwgbm90LCBkaXZpc2libGUsIHJhbmdlLCBiZXR3ZWVuIjsNCgkk Y2FzZU9wcyA9ICJpc2xvd2VyLCBpc3VwcGVyIjsNCgkkc3BhY2VPcHMgPSAiaXNudW0sIGlz YWxwaGEsIGlzYWxudW0sIGlzbG93ZXIsIGlzdXBwZXIsIGlzcHVuY3QsIGJlZ2lucywgY29u dGFpbnMsIGVuZHMiOw0KCSRmaWVsZHMgPSBkb19saXN0KCRmaWVsZCwgJHBhcmFtX2RlbGlt KTsNCgkkbnVtRmxkcyA9IGNvdW50KCRmaWVsZHMpOw0KCSRvcHMgPSBkb19saXN0KCRvcGVy YXRvciwgJHBhcmFtX2RlbGltKTsNCgkkbnVtT3BzID0gY291bnQoJG9wcyk7DQoJJHZhbHMg PSBkb19saXN0KCR2YWx1ZSwgJHBhcmFtX2RlbGltKTsNCgkkbnVtVmFscyA9IGNvdW50KCR2 YWxzKTsNCgkkcGFyZW50Q2F0cyA9ICcnOyAvLyBQbGFjZWhvbGRlciBmb3IgdGhlIGNvbmNh dGVuYXRlZCBsaXN0IG9mIGNhdGVnb3J5IGxlYWYgbm9kZXMNCgkkcmVwbGFjZW1lbnRzID0g YXJyYXkoKTsNCgkkdHlwZSA9ICgkdGhpc2ZpbGUpID8gImZpbGUiIDogKCgkdGhpc2xpbmsp ID8gImxpbmsiIDogKCgkdGhpc2ltYWdlKSA/ICJpbWFnZSIgOiAiYXJ0aWNsZSIpKTsNCgkk b3V0ID0gYXJyYXkoKTsNCgkkaXRlcmF0aW9ucyA9ICgkbnVtRmxkcyA+ICRudW1PcHMpID8g JG51bUZsZHMgOiAkbnVtT3BzOw0KCSRmaWx0ZXIgPSAoIWVtcHR5KCRmaWx0ZXIpKSA/IGRv X2xpc3QoJGZpbHRlciwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJJHJlcGxhY2UgPSAo IWVtcHR5KCRyZXBsYWNlKSkgPyBkb19saXN0KCRyZXBsYWNlLCAkcGFyYW1fZGVsaW0pIDog YXJyYXkoKTsNCgkkbnVtRmlsdGVycyA9IGNvdW50KCRmaWx0ZXIpOw0KCSRudW1SZXBsYWNl ID0gY291bnQoJHJlcGxhY2UpOw0KCSRmaWx0ZXJfb24gPSAoIWVtcHR5KCRmaWx0ZXJfb24p KSA/IGRvX2xpc3QoJGZpbHRlcl9vbiwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJJGZp bHRlcl90eXBlID0gKCFlbXB0eSgkZmlsdGVyX3R5cGUpKSA/IGRvX2xpc3QoJGZpbHRlcl90 eXBlLCAkcGFyYW1fZGVsaW0pIDogYXJyYXkoKTsNCglpZiAoJGRlYnVnID4gMSAmJiAoJGZp bHRlciB8fCAkcmVwbGFjZSkpIHsNCgkJZWNobyAiKysgRklMVEVSUyAvIFJFUExBQ0VNRU5U UyArKyI7DQoJCWRtcCgkZmlsdGVyLCAkcmVwbGFjZSk7DQoJfQ0KDQoJZm9yICgkaWR4ID0g MDsgJGlkeCA8ICRpdGVyYXRpb25zOyAkaWR4KyspIHsNCgkJJGZsZCA9ICgkaWR4IDwgJG51 bUZsZHMpID8gJGZpZWxkc1skaWR4XSA6ICRmaWVsZHNbMF07IC8vIEFsbG93IHNob3J0LWNp cmN1aXQNCgkJJGZsZFBhcnRzID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkZmxkKTsNCgkJJHZh bCA9ICgkaWR4IDwgJG51bVZhbHMpID8gJHZhbHNbJGlkeF0gOiAnJzsNCgkJJHZhbExpc3Qg PSBleHBsb2RlKCRsaXN0X2RlbGltLCAkdmFsKTsNCgkJJHZhbFJlcCA9IGFycmF5KCk7DQoJ CWZvcmVhY2ggKCR2YWxMaXN0IGFzICRrZHggPT4gJHRoZXZhbCkgew0KCQkJJHZhbFJlcFsk a2R4XSA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJHRoZXZhbCk7DQoJCX0NCg0KCQkkb3AgPSAo JGlkeCA8ICRudW1PcHMgJiYgJG9wc1skaWR4XSAhPSAnJykgPyAkb3BzWyRpZHhdIDogKCgk ZmxkUGFydHNbMF09PSJwYXJlbnQiKSA/ICJjb250YWlucyIgOiAiZXEiKTsNCgkJJG9wUGFy dHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICRvcCk7DQoJCSRvcCA9IChhcnJheV9rZXlfZXhp c3RzKCRvcFBhcnRzWzBdLCAkYWxsT3BzKSkgPyAkb3BQYXJ0c1swXSA6ICJlcSI7DQoJCSRj YXN0ID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTlVN IikgJiYgKGluX2xpc3QoJG9wLCAkbnVtZXJpY09wcykpKSA/ICcoaW50KScgOiAnJzsNCgkJ JGxlbmd0aCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0g IkxFTiIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnc3RybGVuKEZJRUxE KScgOiAnJzsNCgkJLy8gVGhlIGNhc3QgdG8gc3RyaW5nIGlzIG5lY2Vzc2FyeSB0byBjb3Vu dGVyYWN0IHRoZSA9PT0gaW4gdGhlIGVxIG9wZXJhdG9yLg0KCQkvLyBJdCBkb2Vzbid0IGlt cGFjdCBhbnl0aGluZyBlbHNlIGJlY2F1c2Ugc3RyaW5nIGNvbXBhcmlzb25zIHdvcmsgZmFp cmx5IGludHVpdGl2ZWx5IGluIFBIUA0KCQkvLyAoZS5nLiAxOSA8IDIgPSBmYWxzZSBldmVu IHRob3VnaCBpbiB0ZXJtcyBvZiBzdHJpbmcgb3JkZXIgdGhleSdkIGdvIDE5LCAyLCAyMCwg MjEsLi4uKQ0KCQkkY291bnQgPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAoJG9wUGFy dHNbMV0gPT09ICJDT1VOVCIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAn KHN0cmluZyljb3VudChleHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBGSUVMRCkpJyA6ICcn Ow0KCQkka2lsbFNwYWNlcyA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0 c1sxXSA9PT0gIk5PU1BBQ0UiKSAmJiAoaW5fbGlzdCgkb3AsICRzcGFjZU9wcykpKSA/IHRy dWUgOiBmYWxzZTsNCgkJJHN0cmlwRmxkID0gKChjb3VudCgkZmxkUGFydHMpID4gMSkgJiYg KGluX2FycmF5KCJOT1RBR1MiLCAkZmxkUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJCSR0 cmltRmxkID0gKChjb3VudCgkZmxkUGFydHMpID4gMSkgJiYgKGluX2FycmF5KCJUUklNIiwg JGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkZXNjYXBlRmxkID0gKChjb3VudCgk ZmxkUGFydHMpID4gMSkgJiYgKGluX2FycmF5KCJFU0MiLCAkZmxkUGFydHMpKSkgPyB0cnVl IDogZmFsc2U7DQoJCSRlc2NhcGVBbGxGbGQgPSAoKGNvdW50KCRmbGRQYXJ0cykgPiAxKSAm JiAoaW5fYXJyYXkoIkVTQ0FMTCIsICRmbGRQYXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJ JGNhc2Vfc2Vuc2l0aXZlID0gKGluX2xpc3QoJG9wLCAkY2FzZU9wcykpID8gMSA6ICRjYXNl X3NlbnNpdGl2ZTsNCgkJJHBhdCA9ICgkaWR4IDwgJG51bUZpbHRlcnMpID8gJGZpbHRlclsk aWR4XSA6ICgoJGZpbHRlcikgPyAkZmlsdGVyWzBdIDogJycpOw0KCQkkcmVwID0gKCRpZHgg PCAkbnVtUmVwbGFjZSkgPyAkcmVwbGFjZVskaWR4XSA6ICgoJHJlcGxhY2UpID8gJHJlcGxh Y2VbMF0gOiAnJyk7DQoJCWlmICgkZGVidWcpIHsNCgkJCWVjaG8gJ1RFU1QgJy4oJGlkeCsx KS5uOw0KCQkJZG1wKCRmbGRQYXJ0cywgJG9wUGFydHMsICR2YWxSZXApOw0KCQl9DQoJCS8v IEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1lbnQgY29kZQ0KCQkkZXhjbHVkZSA9IGRvX2xp c3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9wID0gJGFsbE9wc1skb3BdWzBdOw0KDQoJCS8v IEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3BlcmF0b3IgYWxsb3dzIHRoaXMgZmllbGQuLi4N CgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNbMF0sICRleGNsdWRlKSkgew0KCQkJLy8gTWFr ZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJsZQ0KCQkJaWYgKCRmbGRQYXJ0c1swXSA9PSAn ZmlsZScpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkkZmxkID0gJyR0aGlz ZmlsZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2ZpbGVbJGZs ZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0g JyR0aGlzZmlsZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0g PT0gJ2xpbmsnKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJJGZsZCA9ICck dGhpc2xpbmtbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5r WyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZs ZCA9ICckdGhpc2xpbmtbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRz WzBdID09ICdpbWFnZScpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkkZmxk ID0gJyR0aGlzaW1hZ2VbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRo aXNpbWFnZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0K CQkJCSRmbGQgPSAnJHRoaXNpbWFnZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmICgk ZmxkUGFydHNbMF0gPT0gJ3ByZXRleHQnKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07 DQoJCQkJJGZsZCA9ICckcHJldGV4dFsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChh cnJheV9rZXlfZXhpc3RzKCRmbGRQYXJ0c1swXSwgJGFsbFB0eHQpKSB7DQoJCQkJJHJmbGQg PSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9ICRhbGxQdHh0WyRyZmxkXTsNCgkJCX0gZWxz ZSBpZiAoJGZsZFBhcnRzWzBdID09ICJwYXJlbnQiKSB7DQoJCQkJJHRyZWVGaWVsZCA9ICdu YW1lJzsNCgkJCQkkbGV2ZWwgPSAnJzsNCgkJCQlmb3JlYWNoICgkZmxkUGFydHMgYXMgJHBh cnQpIHsNCgkJCQkJaWYgKCRwYXJ0ID09ICJwYXJlbnQiKSB7DQoJCQkJCQkkdGhlQ2F0ID0g KCR0aGlzZmlsZSkgPyAkdGhpc2ZpbGVbJ2NhdGVnb3J5J10gOiAoKCR0aGlzbGluaykgPyAk dGhpc2xpbmtbJ2NhdGVnb3J5J10gOiAoKCR0aGlzaW1hZ2UpID8gJHRoaXNpbWFnZVsnY2F0 ZWdvcnknXSA6ICRwcmV0ZXh0WydjJ10pKTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBh cnQsICJDQVQiKSA9PT0gMCkgew0KCQkJCQkJJHRoZUNhdCA9ICR0aGlzYXJ0aWNsZVsiY2F0 ZWdvcnkiLnN1YnN0cigkcGFydCwgMyldOw0KCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFy dCwgIkxWTCIpID09PSAwKSB7DQoJCQkJCQkkbGV2ZWwgPSBzdWJzdHIoJHBhcnQsIDMpOw0K CQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIlRUTCIpID09PSAwKSB7DQoJCQkJCQkk dHJlZUZpZWxkID0gJ3RpdGxlJzsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJL SURTIikgPT09IDApIHsNCgkJCQkJCSR0cmVlRmllbGQgPSAnY2hpbGRyZW4nOw0KCQkJCQl9 DQoJCQkJfQ0KDQoJCQkJJHRyZWUgPSBnZXRUcmVlUGF0aChkb1NsYXNoKCR0aGVDYXQpLCAk dHlwZSk7DQoJCQkJaWYgKCRkZWJ1ZyAmJiAkdHJlZSkgew0KCQkJCQllY2hvICJDQVRFR09S WSBUUkVFOiI7DQoJCQkJCWRtcCgkdHJlZSk7DQoJCQkJfQ0KCQkJCSRpdGVtcyA9IGFycmF5 KCk7DQoJCQkJZm9yZWFjaCAoJHRyZWUgYXMgJGxlYWYpIHsNCgkJCQkJaWYgKCRsZWFmWydu YW1lJ10gPT0gInJvb3QiIHx8ICRsZWFmWyduYW1lJ10gPT0gJHRoZUNhdCkgew0KCQkJCQkJ Y29udGludWU7DQoJCQkJCX0gZWxzZSBpZiAoJGxldmVsID09ICcnIHx8ICRsZXZlbCA9PSAk bGVhZlsnbGV2ZWwnXSkgew0KCQkJCQkJJGl0ZW1zW10gPSAkbGVhZlskdHJlZUZpZWxkXTsN CgkJCQkJfQ0KCQkJCX0NCgkJCQkkcGFyZW50Q2F0cyA9IGltcGxvZGUoIiAiLCAkaXRlbXMp Ow0KCQkJCSRyZmxkID0gc2FuaXRpemVGb3JVcmwoJHBhcmVudENhdHMpOw0KCQkJCWlmICgk ZGVidWcgJiYgJHBhcmVudENhdHMpIHsNCgkJCQkJZWNobyAiKysgUEFSRU5UIElORk8gKysi Ow0KCQkJCQlkbXAoJHBhcmVudENhdHMpOw0KCQkJCX0NCgkJCQkkZmxkID0gJyRwYXJlbnRD YXRzJzsNCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJ0eHB2YXIiKSB7DQoJCQkJ aWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFd Ow0KCQkJCQkkZmxkID0gJyR2YXJpYWJsZVsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0g ZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRm bGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxk ID0gJyRfR0VUWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFy dHNbMF0gPT0gInBvc3R2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7 DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRfUE9TVFsiJy4k cmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJzdnJ2 YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0g JGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRfU0VSVkVSWyInLiRyZmxkLiciXSc7DQoJ CQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInBocHZhciIpIHsNCgkJCQlp ZiAoY291bnQoJGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07 DQoJCQkJCSRmbGQgPSAnJEdMT0JBTFNbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVs c2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAnYXJ0aWNsZScpIHsNCgkJCQkkcmZsZCA9IHN0cnRv bG93ZXIoJGZsZFBhcnRzWzFdKTsNCgkJCQkkZmxkID0gJyR0aGlzYXJ0aWNsZVsiJy4kcmZs ZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2FydGljbGVbJGZsZFBhcnRzWzBd XSkpIHsNCgkJCQkkcmZsZCA9IHN0cnRvbG93ZXIoJGZsZFBhcnRzWzBdKTsNCgkJCQkkZmxk ID0gJyR0aGlzYXJ0aWNsZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmICgkZmxkUGFy dHNbMF0gPT0gIk5VTEwiKSB7DQoJCQkJJHNtZF9pZl92YXIgPSAnJzsNCgkJCQkkZmxkID0g JyRzbWRfaWZfdmFyJzsNCgkJCQkkcmZsZCA9ICJOVUxMIjsNCgkJCX0gZWxzZSB7DQoJCQkJ JHNtZF9pZl92YXIgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9ICckc21kX2lmX3Zhcic7 DQoJCQkJJHJmbGQgPSAiZmllbGQiLigkaWR4KjErMSk7DQoJCQl9DQoJCQkkcmxmbGQgPSAk dmFyX3ByZWZpeC4ibGVuXyIuJHJmbGQ7DQoJCQkkcmNmbGQgPSAkdmFyX3ByZWZpeC4iY291 bnRfIi4kcmZsZDsNCgkJCSRyZmxkID0gJHZhcl9wcmVmaXguJHJmbGQ7DQoNCgkJCS8vIFRh a2UgYSBjb3B5IG9mICRmbGQgdG8gdXNlIGluIGFueSBpc3NldCgpIHJlcXVlc3RzDQoJCQkk ZmxkQ2xlYW4gPSAkZmxkOw0KDQoJCQkvLyBBcHBseSB1c2VyLWRlZmluZWQgZmllbGQgZmls dGVycw0KCQkJaWYgKCRraWxsU3BhY2VzKSB7DQoJCQkJJGZsZCA9ICdwcmVnX3JlcGxhY2Uo Ii9ccysvIiwiIiwnLiRmbGQuJyknOw0KCQkJfQ0KCQkJaWYgKCRzdHJpcEZsZCkgew0KCQkJ CSRmbGQgPSAndHJpbShzdHJpcF90YWdzKCcuJGZsZC4nKSknOw0KCQkJfQ0KCQkJaWYgKCR0 cmltRmxkKSB7DQoJCQkJJGZsZCA9ICd0cmltKCcuJGZsZC4nKSc7DQoJCQl9DQoJCQlpZiAo JGVzY2FwZUZsZCkgew0KCQkJCSRmbGQgPSAnaHRtbGVudGl0aWVzKCcuJGZsZC4nKSc7DQoJ CQl9DQoJCQlpZiAoJGVzY2FwZUFsbEZsZCkgew0KCQkJCSRmbGQgPSAnaHRtbGVudGl0aWVz KCcuJGZsZC4nLCBFTlRfUVVPVEVTKSc7DQoJCQl9DQoJCQkkZG9fZmZpbHQgPSAoJHBhdCAm JiBpbl9hcnJheSgnZmllbGQnLCAkZmlsdGVyX29uKSAmJiAoaW5fYXJyYXkoJGZsZFBhcnRz WzBdLCAkZmlsdGVyX3R5cGUpIHx8IGluX2FycmF5KCdhbGwnLCAkZmlsdGVyX3R5cGUpKSAp ID8gdHJ1ZSA6IGZhbHNlOw0KDQoJCQkvLyBGaW5kIHRoZSByZWFsIHZhbHVlIHRvIGNvbXBh cmUgYWdhaW5zdCAobWF5IGJlIGFub3RoZXIgZmllbGQpDQoJCQkkdmFsY250ID0gMTsNCgkJ CSR2ZmxkcyA9IGFycmF5KCk7DQoJCQkkY29yZV92ZmxkID0gInZhbCIuKCgkaWR4KjEpKzEp Ow0KDQoJCQlmb3JlYWNoICgkdmFsUmVwIGFzICRqZHggPT4gJHZhbFBhcnRzKSB7DQoJCQkJ JHN0cmlwVmFsID0gKChjb3VudCgkdmFsUGFydHMpID4gMSkgJiYgKGluX2FycmF5KCJOT1RB R1MiLCAkdmFsUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJJHRyaW1WYWwgPSAoKGNv dW50KCR2YWxQYXJ0cykgPiAxKSAmJiAoaW5fYXJyYXkoIlRSSU0iLCAkdmFsUGFydHMpKSkg PyB0cnVlIDogZmFsc2U7DQoJCQkJJGVzY2FwZVZhbCA9ICgoY291bnQoJHZhbFBhcnRzKSA+ IDEpICYmIChpbl9hcnJheSgiRVNDIiwgJHZhbFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0K CQkJCSRlc2NhcGVBbGxWYWwgPSAoKGNvdW50KCR2YWxQYXJ0cykgPiAxKSAmJiAoaW5fYXJy YXkoIkVTQ0FMTCIsICR2YWxQYXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJCQkkbnVtVmFs UGFydHMgPSBjb3VudCgkdmFsUGFydHMpOw0KCQkJCWlmICgkdmFsUGFydHNbMF0gPT0gInVy bHZhciIpIHsNCgkJCQkJaWYgKCRudW1WYWxQYXJ0cyA+IDEpIHsNCgkJCQkJCSR2ZmxkID0g JHZhbFBhcnRzWzFdOw0KCQkJCQkJJHZhbCA9IChpc3NldCgkX0dFVFskdmZsZF0pICYmICRf R0VUWyR2ZmxkXSAhPSAiIikgPyAnJF9HRVRbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3Ry X3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgk dmFsUGFydHNbMF0gPT0gInBvc3R2YXIiKSB7DQoJCQkJCWlmICgkbnVtVmFsUGFydHMgPiAx KSB7DQoJCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQo JF9QT1NUWyR2ZmxkXSkgJiYgJF9QT1NUWyR2ZmxkXSAhPSAiIikgPyAnJF9QT1NUWyInLiR2 ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJ CQkJfQ0KCQkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJzdnJ2YXIiKSB7DQoJCQkJ CWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsN CgkJCQkJCSR2YWwgPSAoaXNzZXQoJF9TRVJWRVJbJHZmbGRdKSAmJiAkX1NFUlZFUlskdmZs ZF0gIT0gIiIpID8gJyRfU0VSVkVSWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBs YWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAoJHZhbFBh cnRzWzBdID09ICJ0eHB2YXIiKSB7DQoJCQkJCWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJ CQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJHZhcmlh YmxlWyR2ZmxkXSkgJiYgJHZhcmlhYmxlWyR2ZmxkXSAhPSAiIikgPyAnJHZhcmlhYmxlWyIn LiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsN CgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJwaHB2YXIiKSB7DQoJ CQkJCWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sx XTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJEdMT0JBTFNbJHZmbGRdKSAmJiAkR0xPQkFMU1sk dmZsZF0gIT0gIiIpID8gJyRHTE9CQUxTWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9y ZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAoJHZh bFBhcnRzWzBdID09ICJmaWxlIikgew0KCQkJCQlpZiAoJG51bVZhbFBhcnRzID4gMSkgew0K CQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0KCR0aGlz ZmlsZVskdmZsZF0pICYmICR0aGlzZmlsZVskdmZsZF0gIT0gIiIpID8gJyR0aGlzZmlsZVsi Jy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7 DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAibGluayIpIHsNCgkJ CQkJaWYgKCRudW1WYWxQYXJ0cyA+IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFd Ow0KCQkJCQkJJHZhbCA9IChpc3NldCgkdGhpc2xpbmtbJHZmbGRdKSAmJiAkdGhpc2xpbmtb JHZmbGRdICE9ICIiKSA/ICckdGhpc2xpbmtbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3Ry X3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgk dmFsUGFydHNbMF0gPT0gImltYWdlIikgew0KCQkJCQlpZiAoJG51bVZhbFBhcnRzID4gMSkg ew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0KCR0 aGlzaW1hZ2VbJHZmbGRdKSAmJiAkdGhpc2ltYWdlWyR2ZmxkXSAhPSAiIikgPyAnJHRoaXNp bWFnZVsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2 ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAicHJldGV4 dCIpIHsNCgkJCQkJaWYgKCRudW1WYWxQYXJ0cyA+IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZh bFBhcnRzWzFdOw0KCQkJCQkJJHZhbCA9IChpc3NldCgkcHJldGV4dFskdmZsZF0pICYmICRw cmV0ZXh0WyR2ZmxkXSAhPSAiIikgPyAnJHByZXRleHRbIicuJHZmbGQuJyJdJyA6IGRvUXVv dGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNl IGlmICgkdmFsUGFydHNbMF0gPT0gImFydGljbGUiKSB7DQoJCQkJCWlmICgkbnVtVmFsUGFy dHMgPiAxKSB7DQoJCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAo aXNzZXQoJHRoaXNhcnRpY2xlWyR2ZmxkXSkgJiYgJHRoaXNhcnRpY2xlWyR2ZmxkXSAhPSAi IikgPyAnJHRoaXNhcnRpY2xlWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNl KCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAoc3RycG9zKCR2 YWxQYXJ0c1swXSwgIj8iKSA9PT0gMCkgew0KCQkJCQkkdmFsUGFydHNbMF0gPSBzdWJzdHIo c3RydG9sb3dlcigkdmFsUGFydHNbMF0pLCAxKTsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNb MF07DQoJCQkJCWlmIChpc3NldCgkdGhpc2ZpbGVbJHZmbGRdKSAmJiAkdGhpc2ZpbGVbJHZm bGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0aGlzZmlsZVsiJy4kdmZsZC4nIl0nOw0K CQkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skdmZsZF0pICYmICR0aGlzbGlua1sk dmZsZF0gIT0gIiIpIHsNCgkJCQkJCSR2YWwgPSAnJHRoaXNsaW5rWyInLiR2ZmxkLiciXSc7 DQoJCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNpbWFnZVskdmZsZF0pICYmICR0aGlzaW1h Z2VbJHZmbGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0aGlzaW1hZ2VbIicuJHZmbGQu JyJdJzsNCgkJCQkJfSBlbHNlIGlmIChhcnJheV9rZXlfZXhpc3RzKCR2ZmxkLCAkYWxsUHR4 dCkgJiYgJGFsbFB0eHRbJHZmbGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJGFsbFB0eHRb JHZmbGRdOw0KCQkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskdmZsZF0pICYm ICR0aGlzYXJ0aWNsZVskdmZsZF0gIT0gIiIpIHsNCgkJCQkJCSR2YWwgPSAnJHRoaXNhcnRp Y2xlWyInLiR2ZmxkLiciXSc7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkdmFsID0gZG9RdW90 ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2Ug ew0KCQkJCQkkdmZsZCA9ICRjb3JlX3ZmbGQuJ18nLiR2YWxjbnQ7DQoJCQkJCSR2YWwgPSBk b1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZhbFBhcnRzWzBdKSk7DQoJCQkJfQ0K DQoJCQkJLy8gQXBwbHkgdXNlci1kZWZpbmVkIHZhbHVlIGZpbHRlcnMNCgkJCQlpZiAoJHN0 cmlwVmFsKSB7DQoJCQkJCSR2YWwgPSAndHJpbShzdHJpcF90YWdzKCcuJHZhbC4nKSknOw0K CQkJCX0NCgkJCQlpZiAoJHRyaW1WYWwpIHsNCgkJCQkJJHZhbCA9ICd0cmltKCcuJHZhbC4n KSc7DQoJCQkJfQ0KCQkJCWlmICgkZXNjYXBlVmFsKSB7DQoJCQkJCSR2YWwgPSAnaHRtbGVu dGl0aWVzKCcuJHZhbC4nKSc7DQoJCQkJfQ0KCQkJCWlmICgkZXNjYXBlQWxsVmFsKSB7DQoJ CQkJCSR2YWwgPSAnaHRtbGVudGl0aWVzKCcuJHZhbC4nLCBFTlRfUVVPVEVTKSc7DQoJCQkJ fQ0KCQkJCSRkb192ZmlsdCA9ICgkcGF0ICYmIGluX2FycmF5KCd2YWx1ZScsICRmaWx0ZXJf b24pICYmIChpbl9hcnJheSgkdmFsUGFydHNbMF0sICRmaWx0ZXJfdHlwZSkgfHwgaW5fYXJy YXkoJ2FsbCcsICRmaWx0ZXJfdHlwZSkpICkgPyB0cnVlIDogZmFsc2U7DQoNCgkJCQkvLyBS ZXBsYWNlIHRoZSBzdHJpbmcgcGFydHMgYnkgZXZhbHVhdGluZyBhbnkgdmFyaWFibGVzLi4u DQoJCQkJJGZpbHRfZmxkID0gKCRkb19mZmlsdCkgPyAicHJlZ19yZXBsYWNlKCckcGF0Jywg JyRyZXAnLCAkZmxkKSIgOiAkZmxkOw0KCQkJCSRmaWx0X3ZhbCA9ICgkZG9fdmZpbHQpID8g InByZWdfcmVwbGFjZSgnJHBhdCcsICckcmVwJywgJHZhbCkiIDogJHZhbDsNCgkJCQlldmFs ICgiXCR2YWxSZXBbJGpkeF0gPSAiLiRmaWx0X3ZhbC4iOyIpOw0KDQoJCQkJLy8gT25seSBh ZGQgc3ViLXZhbHVlcyB0byB0aGUgcmVwbGFjZW1lbnRzIGFycmF5IGlmIHRoZXJlJ3MgbW9y ZSB0aGFuIG9uZSBzdWItdmFsdWUNCgkJCQlpZiAoY291bnQoJHZhbFJlcCkgPiAxKSB7DQoJ CQkJCSR2Zmxkc1skdmFyX3ByZWZpeC4kdmZsZF0gPSAkdmFsUmVwWyRqZHhdOw0KCQkJCQkk dmZsZHNbJHZhcl9wcmVmaXguImxlbl8iLiR2ZmxkXSA9IHN0cmxlbigkdmFsUmVwWyRqZHhd KTsNCgkJCQl9DQoNCgkJCQkkdmFsY250Kys7DQoJCQl9DQoNCgkJCSRqb2luZWRWYWxzID0g am9pbigkbGlzdF9kZWxpbSwgJHZhbFJlcCk7DQoJCQkkc21kX3ByZWZpbHRlciA9IGRvUXVv dGUoJGpvaW5lZFZhbHMpOw0KDQoJCQkvLyBBZGQgdGhlIGNvbWJpbmVkIG9wZXJhdG9yIGZv ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHBsdWdpbiB2MC44eA0KCQkJJHZmbGRz WyR2YXJfcHJlZml4LiRjb3JlX3ZmbGRdID0gJGpvaW5lZFZhbHM7DQoJCQkkdmZsZHNbJHZh cl9wcmVmaXguImxlbl8iLiRjb3JlX3ZmbGRdID0gc3RybGVuKCRqb2luZWRWYWxzKTsNCg0K CQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJDQVNUIiwgJGNhc3QsICRvcCk7DQoJCQkkY21kID0g KCRsZW5ndGgpID8gc3RyX3JlcGxhY2UoIkZJRUxEIiwgJGxlbmd0aCwgJGNtZCkgOiAkY21k Ow0KCQkJJGNtZCA9ICgkY291bnQpID8gc3RyX3JlcGxhY2UoIkZJRUxEIiwgJGNvdW50LCAk Y21kKSA6ICRjbWQ7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIkZJRUxEIiwgKCgkY2FzZV9z ZW5zaXRpdmUpID8gJGZpbHRfZmxkIDogJ3N0cnRvbG93ZXIoJy4kZmlsdF9mbGQuJyknKSwg JGNtZCk7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIlZBUk5BTUUiLCAkZmxkQ2xlYW4sICRj bWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQUxVRSIsICgoJGNhc2Vfc2Vuc2l0aXZl KSA/ICdWQUxVRScgOiAnc3RydG9sb3dlcihWQUxVRSknKSwgJGNtZCk7DQoNCgkJCS8vIFZh bHVlIHJlcGxhY2VtZW50cyBoYXZlIGFscmVhZHkgYmVlbiBydW4gdGhyb3VnaCBldmlsKCkg c28gdGhleSBjYW4gYmUgYXNzaWduZWQgZGlyZWN0bHkNCgkJCWZvcmVhY2ggKCR2ZmxkcyBh cyAkdmFsaXQgPT4gJHZhbHZhbCkgew0KCQkJCSRyZXBsYWNlbWVudHNbJ3snLiR2YWxpdC4n fSddID0gJHZhbHZhbDsNCgkJCX0NCg0KCQkJLy8gRmllbGQgcmVwbGFjZW1lbnRzIG5lZWQg c29tZSBldmFsKCkgYWN0aW9uLi4uDQoJCQkkY21kID0gIkBcJHJlcGxhY2VtZW50c1sneyIu JHJmbGQuIn0nXSA9ICIuJGZpbHRfZmxkLiI7IFxuQFwkcmVwbGFjZW1lbnRzWyd7Ii4kcmxm bGQuIn0nXSA9IHN0cmxlbigiLiRmaWx0X2ZsZC4iKTsgXG5AXCRyZXBsYWNlbWVudHNbJ3si LiRyY2ZsZC4ifSddID0gY291bnQoZXhwbG9kZSgnIi4kbGlzdF9kZWxpbS4iJywgIi4kZmls dF9mbGQuIikpOyBcblwkb3V0WyIuJGlkeC4iXSA9ICgiLnN0cl9yZXBsYWNlKCJWQUxVRSIs ICgoJHNtZF9wcmVmaWx0ZXI9PT0iJyciICYmIHN0cnBvcygkb3AsICJzdHJwb3MiKSAhPT0g ZmFsc2UpID8gIicgJyIgOiAkc21kX3ByZWZpbHRlciksICRjbWQpLiIpID8gJ3RydWUnIDog J2ZhbHNlJzsiOw0KCQkJaWYgKCRkZWJ1Zykgew0KCQkJCWRtcCgkY21kKTsNCgkJCX0NCgkJ CS8vIC4uLiBhbmQgZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24NCgkJCWV2YWwoJGNtZCk7DQoJ CX0NCgl9DQoJaWYgKCRkZWJ1Zykgew0KCQllY2hvICJSRVNVTFQ6IjsNCgkJZG1wKCRvdXQp Ow0KCQllY2hvICJSRVBMQUNFTUVOVFM6IjsNCgkJZG1wKCRyZXBsYWNlbWVudHMpOw0KCX0N CglpZiAoJGRlYnVnID4gMikgew0KCQllY2hvICJQUkVURVhUOiI7DQoJCWRtcCgkcHJldGV4 dCk7DQoJCWVjaG8gIlRISVMgQVJUSUNMRToiOw0KCQlkbXAoJHRoaXNhcnRpY2xlKTsNCgkJ ZWNobyAiVEhJUyBGSUxFOiI7DQoJCWRtcCgkdGhpc2ZpbGUpOw0KCQllY2hvICJUSElTIExJ Tks6IjsNCgkJZG1wKCR0aGlzbGluayk7DQoJCWVjaG8gIlRISVMgSU1BR0U6IjsNCgkJZG1w KCR0aGlzaW1hZ2UpOw0KCX0NCgkvLyBDaGVjayBsb2dpYw0KCSRyZXN1bHQgPSAoJG91dCkg PyB0cnVlIDogZmFsc2U7DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAiYW5kIiAmJiBp bl9hcnJheSgiZmFsc2UiLCAkb3V0KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0KCWlm IChzdHJ0b2xvd2VyKCRsb2dpYykgPT0gIm9yIiAmJiAhaW5fYXJyYXkoInRydWUiLCAkb3V0 KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0KDQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNl KHN0cnRyKCR0aGluZywgJHJlcGxhY2VtZW50cyksICRyZXN1bHQpKTsNCn0iO3M6NDoidHlw ZSI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0 OiJoZWxwIjtzOjQ3MzQzOiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF9pZjwvaDE+ CgoJPHA+QSBnZW5lcmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rlci4gQ2Fu IHRlc3QgYW55IGZpZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGZp bGUsIGltYWdlLCBsaW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIsIDxj b2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+IG9yIDxzcGFuIGNsYXNzPSJjYXBz Ij5QSFA8L3NwYW4+IGNvbnRleHQgZm9yIGEgdmFyaWV0eSBvZiBhdHRyaWJ1dGVzIGFuZCB0 YWtlIGFjdGlvbiBpZiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gb3IgPHNwYW4g Y2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPi48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8 dWw+CgkJPGxpPlN1cHBvcnRzIG1vc3QgbWFqb3IgYXJ0aWNsZSwgZmlsZSwgaW1hZ2UgYW5k IGxpbmsgdmFyaWFibGVzIHN1Y2ggYXMgc2VjdGlvbiwgY2F0ZWdvcnksIGN1c3RvbSBmaWVs ZHMsIGlkLCBxdWVyeSBzdHJpbmcsIGF1dGhvciwgYm9keSwgZXhjZXJwdCwgeWFoZGUgeWFo ZGUsIHBsdXMgdXJsIHZhcnMsIHNlcnZlciB2YXJzLCB0eHAgdmFycywgcGhwIHZhcnMsIGFu ZCBzdWItY2F0ZWdvcnkvcGFyZW50IGNoZWNraW5nPC9saT4KCQk8bGk+VGVzdHMgaW5jbHVk ZSBlcXVhbGl0eSwgaW5lcXVhbGl0eSwgbGVzcyB0aGFuLCBncmVhdGVyIHRoYW4sIGRpdmlz aWJsZSBieSwgZW1wdHksIHVzZWQsIGRlZmluZWQsIGJlZ2lucywgZW5kcywgY29udGFpbnMs IGlzIG51bWVyaWMgLyBhbHBoYSAvIGFscGhhbnVtZXJpYyAvIGxvd2VyY2FzZSAvIHVwcGVy Y2FzZSwgYW1vbmcgb3RoZXJzPC9saT4KCQk8bGk+VGVzdHMgZm9yIG1vcmUgdGhhbiBvbmUg Y29uZGl0aW9uIGF0IG9uY2UgYW5kIGFwcGxpZXMgZWl0aGVyIDxzcGFuIGNsYXNzPSJjYXBz Ij5BTkQ8L3NwYW4+IGxvZ2ljIChhbGwgdGVzdHMgbXVzdCBwYXNzKSBvciBPUiBsb2dpYyAo YW55IHRlc3QgbXVzdCBwYXNzKTwvbGk+CgkJPGxpPkFsbCB0ZXN0ZWQgZmllbGRzIGFuZCB2 YWx1ZXMgYXJlIGF2YWlsYWJsZSB0byB0aGUgY29udGFpbmVyIHNvIHlvdSBjYW4gZGlzcGxh eSB0aGVtPC9saT4KCQk8bGk+Q3VzdG9tIHJlZ3VsYXItZXhwcmVzc2lvbiBmaWx0ZXJzIGFy ZSBhdmFpbGFibGUgdG8gaGVscCB3ZWVkIG91dCBiYWQgZGF0YTwvbGk+CgkJPGxpPlVnbHkg YW5kIHZlcnkgZGlydHkuIFVzZXMgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4mIzgy MTc7cyA8Y29kZT5ldmFsKCk8L2NvZGU+IGNvbW1hbmQgd2hpY2ggbW9zdCBwcm9ncmFtbWVy cyBjb25jdXIgc2hvdWxkIGJlIHJlbmFtZWQgPGNvZGU+ZXZpbCgpPC9jb2RlPjwvbGk+Cgk8 L3VsPgoKCTxoMj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvaDI+CgoJPHA+RG93 bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRl cm4ub3JnL3BsdWdpbnMvOTMwL3NtZF9pZiI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhl IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4s IHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIFR4cCA8ZW0+QWRtaW4tJmd0O1BsdWdpbnM8L2Vt PiBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhy ZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0yNTM1 NyI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUg c3VjY2VzcyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VG8gdW5pbnN0 YWxsLCBzaW1wbHkgZGVsZXRlIGZyb20gdGhlIDxlbT5BZG1pbi0mZ3Q7UGx1Z2luczwvZW0+ IHBhZ2UuPC9wPgoKCTxoMj5Vc2FnZTwvaDI+CgoJPHA+VXNlIHRoZSB0YWcgaW4gYW55IHBh Z2UsIGZvcm0gb3IgYXJ0aWNsZSBjb250ZXh0LiBDYW4gYWxzbyBiZSB1c2VkIGluc2lkZSBm aWxlLCBpbWFnZSwgb3IgbGluayBsaXN0cyB0byB0YWtlIGFjdGlvbiBkZXBlbmRpbmcgb24g YXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBpdGVtLjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+ c21kX2lmPC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ug d2lzaCB0byBjb21wYXJlIGEgZmllbGQgd2l0aCBhbm90aGVyIHZhbHVlLCBwdXQgdGhpcyB0 YWcgd2l0aCBhdCBsZWFzdCB0aGUgPGNvZGU+ZmllbGQ8L2NvZGU+IGF0dHJpYnV0ZS4gU3Bl Y2lmeSBlYWNoIGZpZWxkIHlvdSB3aXNoIHRvIHRlc3QgYXMgYSBzZXJpZXMgb2YgY29tbWEt c2VwYXJhdGVkIGl0ZW1zICYjODIxMjsgdGhvdWdoIHRoZSBjb21tYSBpcyBvdmVycmlkYWJs ZSB3aXRoIDxjb2RlPnBhcmFtX2RlbGltPC9jb2RlPi4gSWYgdGhlIHJlc3VsdCBvZiBhbGwg dGhlIGNvbXBhcmlzb24gdGVzdHMgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+ IHRoZSBjb250YWluZWQgYmxvY2sgd2lsbCBiZSBleGVjdXRlZC4gSWYgdGhlIHJlc3VsdCBp cyA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LCBhbnkgPGNvZGU+Jmx0O3R4cDpl bHNlIC8mZ3Q7PC9jb2RlPiB3aWxsIGJlIGV4ZWN1dGVkIGluc3RlYWQuIFdpdGhvdXQgYW55 IDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gYmxvY2ssIG5vdGhpbmcgaXMgb3V0 cHV0IGlmIHRoZSByZXN1bHQgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPi48 L3A+CgoJPHA+PHN0cm9uZz5BdHRyaWJ1dGVzPC9zdHJvbmc+PC9wPgoKCTxkbD4KCQk8ZHQ+ PHNwYW4gY2xhc3M9ImF0bm0gbWFuZCI+ZmllbGQ8L3NwYW4+PC9kdD4KCQk8ZGQ+Q29tbWEt c2VwYXJhdGVkIGxpc3Qgb2YgPGEgaHJlZj0iI2ZpZWxkIj5maWVsZHM8L2E+IHRvIHRlc3Qu PC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0iPm9wZXJhdG9yPC9zcGFuPjwvZHQ+CgkJ PGRkPkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIDxhIGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0 aW9uczwvYT4gZm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgY29ycmVzcG9uZGluZyBmaWVsZCAo ZS5nLiA8Y29kZT5lcTwvY29kZT4sIDxjb2RlPm5vdDwvY29kZT4sIDxjb2RlPmJlZ2luczwv Y29kZT4sIGV0YykuPC9kZD4KCQk8ZGQ+RGVmYXVsdDogPGNvZGU+ZXE8L2NvZGU+IGZvciBt b3N0IHRlc3RzLCA8Y29kZT5jb250YWluczwvY29kZT4gZm9yIHBhcmVudCB0ZXN0czwvZGQ+ CgkJPGR0PjxzcGFuIGNsYXNzPSJhdG5tIj52YWx1ZTwvc3Bhbj48L2R0PgoJCTxkZD5Db21t YS1zZXBhcmF0ZWQgbGlzdCBvZiA8YSBocmVmPSIjdmFsdWUiPnZhbHVlczwvYT4gd2l0aCB3 aGljaCB0byBjb21wYXJlIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkcy48L2RkPgoJCTxkdD48 c3BhbiBjbGFzcz0iYXRubSI+bG9naWM8L3NwYW4+PC9kdD4KCQk8ZGQ+SG93IG11bHRpcGxl IHRlc3RzIGFyZSBqb2luZWQ6IENob29zZSBmcm9tOgoJPGRsPgoJCTxkZD48Y29kZT5hbmQ8 L2NvZGU+OiBhbGwgY29uZGl0aW9ucyBtdXN0IGJlIG1ldCBmb3IgYSA8c3BhbiBjbGFzcz0i Y2FwcyI+VFJVRTwvc3Bhbj4gcmVzdWx0LjwvZGQ+CgkJPGRkPjxjb2RlPm9yPC9jb2RlPjog YW55IG9mIHRoZSBjb25kaXRpb25zIHRoYXQgbWF0Y2ggd2lsbCBnaXZlIGEgPHNwYW4gY2xh c3M9ImNhcHMiPlRSVUU8L3NwYW4+IHJlc3VsdC48L2RkPgoJPC9kbD48L2RkPgoJCTxkZD5E ZWZhdWx0OiA8Y29kZT5hbmQ8L2NvZGU+PC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0i PmNhc2Vfc2Vuc2l0aXZlPC9zcGFuPjwvZHQ+CgkJPGRkPldoZXRoZXIgdG8gcGVyZm9ybSBj YXNlLXNlbnNpdGl2ZSBjb21wYXJpc29ucy4gTm90ZSB0aGF0IGlmIHVzaW5nIDxjb2RlPmlz bG93ZXI8L2NvZGU+IG9yIDxjb2RlPmlzdXBwZXI8L2NvZGU+IGluIGEgY29tcGFyaXNvbiwg Y2FzZSBzZW5zaXRpdml0eSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3dpdGNoZWQgb24gd2hp bGUgdGhlIHRlc3QgaXMgdGFraW5nIHBsYWNlLiBWYWx1ZXM6Cgk8ZGw+CgkJPGRkPjEgPSB5 ZXM8L2RkPgoJCTxkZD4wID0gbm88L2RkPgoJPC9kbD48L2RkPgoJCTxkZD5EZWZhdWx0OiAw PC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0iPmZpbHRlcjwvc3Bhbj48L2R0PgoJCTxk ZD5MaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2l0aCB3aGljaCB0byBmaWx0ZXIgb25l IG9yIG1vcmUgZmllbGRzL3ZhbHVlcy4gU2VlIDxhIGhyZWY9IiNmaWx0ZXJpbmciPmZpbHRl cmluZzwvYT4uPC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0iPnJlcGxhY2U8L3NwYW4+ PC9kdD4KCQk8ZGQ+TGlzdCBvZiBpdGVtcyB3aXRoIHdoaWNoIHRvIHJlcGxhY2UgZWFjaCBv ZiB0aGUgbWF0Y2hpbmcgZmlsdGVycy48L2RkPgoJCTxkdD48c3BhbiBjbGFzcz0iYXRubSI+ ZmlsdGVyX3R5cGU8L3NwYW4+PC9kdD4KCQk8ZGQ+TGltaXQgdGhlIGZpbHRlciB0byBjZXJ0 YWluIHR5cGVzIG9mIHRlc3QuIENob29zZSBmcm9tIGFueSBvZjoKCTxkbD4KCQk8ZGQ+PGNv ZGU+YWxsPC9jb2RlPjwvZGQ+CgkJPGRkPjxjb2RlPnVybHZhcjwvY29kZT48L2RkPgoJCTxk ZD48Y29kZT5wb3N0dmFyPC9jb2RlPjwvZGQ+CgkJPGRkPjxjb2RlPnN2cnZhcjwvY29kZT48 L2RkPgoJCTxkZD48Y29kZT50eHB2YXI8L2NvZGU+PC9kZD4KCQk8ZGQ+PGNvZGU+cGhwdmFy PC9jb2RlPjwvZGQ+CgkJPGRkPm9yIGFueSBmaWVsZCBuYW1lPC9kZD4KCTwvZGw+PC9kZD4K CQk8ZGQ+RGVmYXVsdDogPGNvZGU+YWxsPC9jb2RlPjwvZGQ+CgkJPGR0PjxzcGFuIGNsYXNz PSJhdG5tIj5maWx0ZXJfb248L3NwYW4+PC9kdD4KCQk8ZGQ+QXBwbHkgdGhlIGZpbHRlciB0 byBlaXRoZXIgdGhlIDxjb2RlPmZpZWxkPC9jb2RlPiwgdGhlIDxjb2RlPnZhbHVlPC9jb2Rl PiBvciBib3RoLiBQbGVhc2Ugc2VlIHRoZSA8YSBocmVmPSIjZmNhdmVhdCI+ZmlsdGVyaW5n IGNhdmVhdDwvYT4gYmVsb3cgZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvbiBhYm91dCB0aGlz IGF0dHJpYnV0ZS48L2RkPgoJCTxkZD5EZWZhdWx0OiA8Y29kZT5maWVsZDwvY29kZT48L2Rk PgoJCTxkdD48c3BhbiBjbGFzcz0iYXRubSI+cGFyYW1fZGVsaW08L3NwYW4+PC9kdD4KCQk8 ZGQ+RGVsaW1pdGVyIHVzZWQgYmV0d2VlbiBlYWNoIGZpZWxkLCBvcGVyYXRvciBvciB2YWx1 ZSBpbiBhIG11bHRpLXRlc3QuIFlvdSBub3JtYWxseSBvbmx5IG5lZWQgdG8gY2hhbmdlIHRo aXMgaWYgeW91IGhhdmUgdXNlZCB0aGF0IGNoYXJhY3RlciBpbiB0aGUgbmFtZSBvZiBhIGN1 c3RvbSBmaWVsZCwgZm9yIGV4YW1wbGUuPC9kZD4KCQk8ZGQ+RGVmYXVsdDogIGNvbW1hICgs KTwvZGQ+CgkJPGR0PjxzcGFuIGNsYXNzPSJhdG5tIj5tb2RfZGVsaW08L3NwYW4+PC9kdD4K CQk8ZGQ+RGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGZpZWxkIG9yIG9wZXJhdG9y IG1vZGlmaWVycyBmb3I6Cgk8ZGw+CgkJPGRkPnVybHZhciwgcG9zdHZhciwgc3ZydmFyLCB0 eHB2YXI8L2RkPgoJCTxkZD5wYXJlbnQgZnJvbSA8Y29kZT5MVkw8L2NvZGU+IGFuZCA8Y29k ZT5DQVQ8L2NvZGU+PC9kZD4KCQk8ZGQ+c2VwYXJhdGluZyBhbiBvcGVyYXRvciBmcm9tIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVNPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+ Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXJzPC9kZD4KCTwvZGw+PC9kZD4KCQk8ZGQ+RGVmYXVs dDogY29sb24gKDopPC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0iPmxpc3RfZGVsaW08 L3NwYW4+PC9kdD4KCQk8ZGQ+RGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGEgbGlz dCBvZiB2YWx1ZXMgdG8gY2hlY2sgdmlhIHRoZSA8Y29kZT5pbjwvY29kZT4sIDxjb2RlPm5v dGluPC9jb2RlPiwgPGNvZGU+YmV0d2VlbjwvY29kZT4gYW5kIDxjb2RlPnJhbmdlPC9jb2Rl PiBvcGVyYXRvcnMuPC9kZD4KCQk8ZGQ+RGVmYXVsdDogZm9yd2FyZC1zbGFzaCAoLyk8L2Rk PgoJCTxkdD48c3BhbiBjbGFzcz0iYXRubSI+dmFyX3ByZWZpeDwvc3Bhbj48L2R0PgoJCTxk ZD5QcmVmaXggYW55IHJlcGxhY2VtZW50IHZhcmlhYmxlIG5hbWVzIHdpdGggdGhpcyBzdHJp bmcuIElmIG5lc3Rpbmcgc21kX2lmIHRhZ3MsIHlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8g c3BlY2lmeSB0aGlzIG9uIGFueSBpbm5lciBzbWRfaWYgdGFncyB0byBwcmV2ZW50IHRoZSB7 cmVwbGFjZW1lbnR9IHZhcmlhYmxlcyBjbGFzaGluZy48L2RkPgoJCTxkZD5EZWZhdWx0OiA8 Y29kZT5zbWRfaWZfPC9jb2RlPjwvZGQ+Cgk8L2RsPgoKCTxwPlRoZSBsaXN0cyBhcmUgcHJv Y2Vzc2VkIGluIG9yZGVyLCBpLmUuIHRoZSAxc3QgZmllbGQgdXNlcyB0aGUgMXN0IG9wZXJh dG9yIGluIHRoZSBsaXN0IGFuZCBjb21wYXJlcyBpdCB0byB0aGUgMXN0IHZhbHVlOyB0aGUg Mm5kIGZpZWxkIHVzZXMgdGhlIDJuZCBvcGVyYXRvciBhbmQgY29tcGFyZXMgaXQgdG8gdGhl IDJuZCB2YWx1ZSwgYW5kIHNvIG9uLiBWYWx1ZXMgc2hvdWxkIHVzdWFsbHkgYmUgc3BlY2lm aWVkIHdpdGggcGxhY2Vob2xkZXJzIHRvIG1haW50YWluIG9yZGVyOiBlLmcuIDxjb2RlPnZh bHVlPSZxdW90OywgNCwsIHRvcCZxdW90OzwvY29kZT48L3A+CgoJPHA+Tm90ZSB0aGF0LCBh bHRob3VnaCB0aGUgZmlyc3QgdGhyZWUgYXR0cmlidXRlcyBhcmUgdXN1YWxseSBtYW5kYXRv cnksIGlmIHlvdSBoYXBwZW4gdG8gcmVxdWlyZSB0aGUgZGVmYXVsdCBvcGVyYXRvciBmb3Ig YWxsIHlvdXIgdGVzdHMsIHlvdSBjYW4gc2FmZWx5IG9taXQgPGNvZGU+b3BlcmF0b3I8L2Nv ZGU+LiBTaW1pbGFybHkgd2l0aCB2YWx1ZXM6IGlmIHlvdSBhcmUgZW50aXJlbHkgdGVzdGlu ZyB0aGUgZXhpc3RlbmNlIG9yIHR5cGUgb2YgdmFyaWFibGVzLCB5b3UgY2FuIG9taXQgdGhl IDxjb2RlPnZhbHVlPC9jb2RlPiBwYXJhbWV0ZXIgaWYgeW91IHdpc2guIEFuZCBpZiB5b3Ug YXJlIHRlc3RpbmcgdGhlIHNhbWUgPGNvZGU+ZmllbGQ8L2NvZGU+IGFnYWluIGFuZCBhZ2Fp biBmb3IgZGlmZmVyaW5nIGNvbmRpdGlvbnMsIHlvdSBjYW4gbGlzdCBpdCBqdXN0IG9uY2Ug YXMgYSBjb252ZW5pZW50IHNob3J0Y3V0LjwvcD4KCgk8aDMgY2xhc3M9ImF0bm0gIiBpZD0i ZmllbGQiPmZpZWxkPC9oMz4KCgk8cD5MaXN0IG9mIGZpZWxkIGxvY2F0aW9ucyB0byBsb29r IGF0LiBBIG5vbi1leGhhdXN0aXZlIGxpc3Qgb2Ygc29tZSB1c2VmdWwgdmFsdWVzIGFyZTo8 L3A+CgoJPHVsPgoJCTxsaT48Y29kZT5zPC9jb2RlPiAoZ2xvYmFsIHNlY3Rpb24pIG9yIDxj b2RlPnNlY3Rpb248L2NvZGU+IChhcnRpY2xlIHNlY3Rpb24pPC9saT4KCQk8bGk+PGNvZGU+ YzwvY29kZT4gKGdsb2JhbCBjYXRlZ29yeSkgb3IgPGNvZGU+Y2F0ZWdvcnkxPC9jb2RlPiwg b3IgPGNvZGU+Y2F0ZWdvcnkyPC9jb2RlPiBpZiBvbiBhbiBhcnRpY2xlIHBhZ2U8L2xpPgoJ CTxsaT48Y29kZT5hdXRob3JpZDwvY29kZT4gb3IgPGNvZGU+YXV0aG9yPC9jb2RlPjwvbGk+ CgkJPGxpPjxjb2RlPmlkPC9jb2RlPiAoZmlsZS9saW5rL2ltYWdlL2FydGljbGUgSUQpLiBJ biBhbiBpbmRpdmlkdWFsIGFydGljbGUgY29udGV4dCwgdXNlIDxjb2RlPnRoaXNpZDwvY29k ZT4gaW5zdGVhZDwvbGk+CgkJPGxpPjxjb2RlPnF1ZXJ5PC9jb2RlPiAodGhlIHF1ZXJ5IHN0 cmluZyBmcm9tIHRoZSBzZWFyY2ggZm9ybSk8L2xpPgoJCTxsaT48Y29kZT5wZzwvY29kZT4g KHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGluIGxpc3RzKTwvbGk+CgkJPGxpPjxjb2RlPm1v bnRoPC9jb2RlPiAoY3VycmVudCBtb250aCBmaWVsZCBmcm9tIHRoZSBhZGRyZXNzIGJhcik8 L2xpPgoJCTxsaT48Y29kZT5zdGF0dXM8L2NvZGU+IChkb2N1bWVudCBzdGF0dXM6IDIwMCwg NDA0LCA0MDMsIGV0Yyk8L2xpPgoJCTxsaT48Y29kZT5wYWdlPC9jb2RlPiAodGhlIFR4cCBQ YWdlIHRlbXBsYXRlIHVzZWQgYnkgdGhpcyBzZWN0aW9uKTwvbGk+CgkJPGxpPjxjb2RlPm5l eHRfaWQ8L2NvZGU+IC8gPGNvZGU+cHJldl9pZDwvY29kZT4gKElEIG9mIG5leHQvcHJldiBk b2N1bWVudCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF90aXRs ZTwvY29kZT4gLyA8Y29kZT5wcmV2X3RpdGxlPC9jb2RlPihUaXRsZSBvZiBuZXh0L3ByZXYg ZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfdXRp dGxlPC9jb2RlPiAvIDxjb2RlPnByZXZfdXRpdGxlPC9jb2RlPiAodXJsLXRpdGxlIG9mIG5l eHQvcHJldiBkb2N1bWVudCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+ cGVybWxpbmtfbW9kZTwvY29kZT4gKHRha2UgYWN0aW9uIGJhc2VkIG9uIG9uZSBvZiB0aGUg bWVzc3kvY2xlYW4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gc2NoZW1lcyk8L2xp PgoJCTxsaT48Y29kZT5vdGhlciBhcnRpY2xlL2ZpbGUvbGluayBmaWVsZDwvY29kZT4gKGUu Zy4gYm9keSwgZXhjZXJwdCwgYXJ0aWNsZV9pbWFnZSwga2V5d29yZHMsIGxpbmthbm1lLCBm aWxlbmFtZSwgZG93bmxvYWRzLCAmIzgyMzA7KTwvbGk+CgkJPGxpPjxjb2RlPm15X2N1c3Rv bV9maWVsZF9uYW1lPC9jb2RlPiAoYW55IGN1c3RvbSBmaWVsZHMgeW91IGhhdmUgZGVmaW5l ZCk8L2xpPgoJCTxsaT48Y29kZT51cmx2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgdmFyaWFi bGUgaW4gdGhlIGFkZHJlc3MgYmFyIGFmdGVyIHRoZSA8Y29kZT4/PC9jb2RlPik8L2xpPgoJ CTxsaT48Y29kZT5wb3N0dmFyOnZhcl9uYW1lPC9jb2RlPiAoYW55IHZhcmlhYmxlIHBvc3Rl ZCBmcm9tIGFuIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBmb3JtKTwvbGk+CgkJ PGxpPjxjb2RlPnN2cnZhcjp2YXJfbmFtZTwvY29kZT4gKGFueSBzdGFuZGFyZCBzZXJ2ZXIg dmFyaWFibGUsIGUuZy4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+X1VTRVJfQUdF TlQpPC9saT4KCQk8bGk+PGNvZGU+dHhwdmFyOm15X3ZhcjwvY29kZT4gKGFueSBUZXh0cGF0 dGVybiB2YXJpYWJsZSBzZXQgd2l0aCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIG5hbWU9JnF1 b3Q7bXlfdmFyJnF1b3Q7IC8mZ3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48Y29kZT5waHB2YXI6 bXlfdmFyPC9jb2RlPiAoYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IHZhcmlh YmxlIDxlbT5pbiB0aGUgZ2xvYmFsIHNjb3BlPC9lbT4pPC9saT4KCQk8bGk+PGNvZGU+cGFy ZW50Om9wdGlvbmFsX21vZGlmaWVyczwvY29kZT4gKHdoZXRoZXIgdGhlIGdpdmVuIGNhdGVn b3J5IGlzIGEgZGVzY2VuZGVudCBvZiBhbm90aGVyIGNhdGVnb3J5KTwvbGk+CgkJPGxpPjxj b2RlPk5VTEw8L2NvZGU+ICh1c2VmdWwgd2hlbiBjb21wYXJpbmcgYXJiaXRyYXJ5IHZhbHVl cyBmb3IgZW1wdGluZXNzKTwvbGk+Cgk8L3VsPgoKCTxwPklmIHlvdSBzcGVjaWZ5IGEgZmll bGQgbmFtZSB0aGF0IGRvZXMgbm90IGV4aXN0LCB0aGUgdGV4dCB5b3UgdXNlIHdpbGwgYmUg dGFrZW4gdmVyYmF0aW0gaW4gbW9zdCBjYXNlcy48L3A+CgoJPHA+VG8gYXZvaWQgYW1iaWd1 aXR5IHlvdSBjYW4gcHJlZml4IHRoZSBmaWVsZCBuYW1lIHdpdGggb25lIG9mIDxjb2RlPnBy ZXRleHQ8L2NvZGU+LCA8Y29kZT5hcnRpY2xlPC9jb2RlPiwgPGNvZGU+aW1hZ2U8L2NvZGU+ LCA8Y29kZT5saW5rPC9jb2RlPiBvciA8Y29kZT5maWxlPC9jb2RlPiwgc2VwYXJhdGluZyBp dCBmcm9tIHRoZSBmaWVsZCBieSA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT4uPC9wPgoKCTxw PklmIHlvdSB3aXNoIHRvIGNvbXBhcmUgYSBmaWVsZCB0aGF0IG1pZ2h0IGNvbnRhaW4gPHNw YW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IChlLmcgPGNvZGU+Ym9keTwvY29kZT4pLCBh ZGQgdGhlIG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhl IGZpZWxkLiBJdCB3aWxsIGhhdmUgaXRzIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFu PiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFncyBzdHJpcHBlZCBmcm9t IGl0IGFuZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUgbGVhZGluZyBhbmQgdHJh aWxpbmcgc3BhY2VzLiBZb3UgbWF5IGNob29zZSB0byBzb2xlbHkgcmVtb3ZlIHNwYWNlcyBm cm9tIGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYW55IGZpZWxkIGJ5IGFkZGluZyA8Y29k ZT46VFJJTTwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgZmllbGQuPC9wPgoKCTxwPklmIHlv dSBzdXNwZWN0IGEgZmllbGQgbWlnaHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRN TDwvc3Bhbj5pc2ggaW5wdXQgbGlrZSA8Y29kZT4mbHQ7PC9jb2RlPiwgPGNvZGU+Jmd0Ozwv Y29kZT4sIDxjb2RlPiZhbXA7PC9jb2RlPiBvciBxdW90ZXMvYXBvc3Ryb3BoZXMgeW91IGNh biBlbGVjdCB0byBjb252ZXJ0IHRoZW0gdG8gZW50aXRpZXMgbGlrZSA8Y29kZT4mYW1wO2x0 OzwvY29kZT4sIDxjb2RlPiZhbXA7cXVvdDs8L2NvZGU+LCBldGMuIEp1c3Qgc3BlY2lmeSB0 aGUgPGNvZGU+OkVTQzwvY29kZT4gbW9kaWZpZXIgdG8gcmVwbGFjZSBldmVyeXRoaW5nIGV4 Y2VwdCBhcG9zdHJvcGhlcyB3aXRoIGl0cyBlbnRpdHkgZXF1aXZhbGVudCwgb3IgdXNlIDxj b2RlPjpFU0NBTEw8L2NvZGU+IHRvIGluY2x1ZGUgYXBvc3Ryb3BoZXMuPC9wPgoKCTxwPlRo ZSBzcGVjaWFsIGZpZWxkIDxjb2RlPnBhcmVudDwvY29kZT4gY2hlY2tzIHRoZSBwYXJlbnQg Y2F0ZWdvcnkgZm9yIGEgbWF0Y2guIFVubGlrZSB0aGUgb3RoZXIgZmllbGQgdHlwZXMsIHRo ZSBkZWZhdWx0IDxhIGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0b3I8L2E+IGZvciBwYXJlbnQg aXMgJiM4MjE2O2NvbnRhaW5zJiM4MjE3Oy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbnRpcmUg dHJlZSBpcyBjaGVja2VkIGZvciBhIG1hdGNoLCBzdGFydGluZyBmcm9tIHRoZSB0b3Agb2Yg dGhlIHRyZWUgZG93biB0byB0aGUgY3VycmVudCBjYXRlZ29yeS4gSW50ZXJuYWxseSwgdGhl IHBsdWdpbiBtYWtlcyB1cCBhICYjODIyMDticmVhZGNydW1iIHRyYWlsJiM4MjIxOyBvZiBj YXRlZ29yaWVzIGluIHRoZSBjdXJyZW50IGJyYW5jaCwgZWFjaCBzZXBhcmF0ZWQgYnkgYSBz cGFjZSwgc28gdGVzdGluZyBmb3IgZXF1YWxpdHkgd291bGQgcmVxdWlyZSBwdXR0aW5nIHRo ZW0gYWxsIGluIHRoZSA8YSBocmVmPSIjdmFsdWUiPnZhbHVlPC9hPiBwYXJhbWV0ZXIuPC9w PgoKCTxwPllvdSBhcmUgb2YgY291cnNlIGZyZWUgdG8gY2hvb3NlIGFuIGFsdGVybmF0aXZl IG9wZXJhdG9yOyA8Y29kZT5iZWdpbnM8L2NvZGU+IGlzIHZlcnkgdXNlZnVsIGZvciB0ZXN0 aW5nIGlmIHRoZSB0b3AgbGV2ZWwgY2F0ZWdvcnkgbWF0Y2hlcyB0aGUgb25lIGdpdmVuIGlu IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gZmllbGQuPC9wPgoKCTxwPklmIHlvdSB1c2UgPGNv ZGU+cGFyZW50OkxWTG48L2NvZGU+LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHJlc3RyaWN0 ZWQgdG8gdGhhdCAmIzgyMjA7bGV2ZWwmIzgyMjE7IG9mIHN1Yi1jYXRlZ29yeTsgTFZMMSBp cyB0aGUgJiM4MjIwO3RvcCYjODIyMTsgbGV2ZWwsIExWTDIgaXMgdGhlIG5leHQgc3ViLWNh dGVnb3J5IGxldmVsLCBhbmQgc28gb24uIFdoZW4gdXNpbmcgdGhlc2UgbW9kaWZpZXJzLCB0 aGUgJiM4MjE2O2VxJiM4MjE3OyBvcGVyYXRvciBiZWNvbWVzIG1vcmUgdXNlZnVsIGJlY2F1 c2UgeW91IGFyZSBjb21wYXJpbmcgYSBzaW5nbGUgcGFyZW50IGNhdGVnb3J5LjwvcD4KCgk8 cD5JZiB5b3Ugd2lzaCB0byBjb21wYXJlIGFnYWluc3QgdGhlIGNhdGVnb3J5JiM4MjE3O3Mg dGl0bGUgaW5zdGVhZCBvZiBpdHMgbmFtZSwgYWRkIHRoZSA8Y29kZT46VFRMPC9jb2RlPiBt b2RpZmllci4gVG8gdGVzdCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoZSBnaXZlbiBjYXRl Z29yeSBoYXMsIHNwZWNpZnkgPGNvZGU+OktJRFM8L2NvZGU+LiBOb3RlIHRoYXQgPHNwYW4g Y2xhc3M9ImNhcHMiPlRUTDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5LSURTPC9z cGFuPiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBpZiB0aGV5IGFyZSBib3RoIGVtcGxv eWVkLCB0aGUgbGFzdCBvbmUgdXNlZCB0YWtlcyBwcmlvcml0eS48L3A+CgoJPHA+V2hlbiB1 c2luZyBhcnRpY2xlcywgeW91IGNhbiBmdXJ0aGVyIG1vZGlmeSB0aGUgYmVoYXZpb3VyIG9m IHRoZSBwYXJlbnQgdXNpbmcgdGhlIDxjb2RlPkNBVG48L2NvZGU+IHN5bnRheCAod2hlcmUg JiM4MjE2O24mIzgyMTc7IGlzIDEgb3IgMikuIFNwZWNpZnlpbmcgJiM4MjIwO3BhcmVudCYj ODIyMTsgd2l0aG91dCA8Y29kZT5DQVRuPC9jb2RlPiB3aWxsIHVzZSB0aGUgZ2xvYmFsIGNh dGVnb3J5ICg8Y29kZT4/Yz08L2NvZGU+KS4gSWYgeW91IGFkZCA8Y29kZT46Q0FUbjwvY29k ZT4gaXQgd2lsbCBpbnN0ZWFkIGNvbXBhcmUgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29y eTEgb3IgY2F0ZWdvcnkyIHJlc3BlY3RpdmVseS48L3A+CgoJPHA+WW91IGNhbiB1c2UgPHNw YW4gY2xhc3M9ImNhcHMiPkNBVDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj5MVkw8L3Nw YW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+VFRMPC9zcGFuPi9LSURTIGluIGNvbWJpbmF0 aW9uLCBpbmRlcGVuZGVudGx5IG9yIG5vdCBhdCBhbGwuIFRoaXMgYWxsb3dzIGNvbXBhcmlz b25zIHN1Y2ggYXMgJiM4MjIwO2lmIHRoZSAybmQgc3ViLWNhdGVnb3J5IG9mIGNhdGVnb3J5 MSBlcXVhbHMgYmxhaGJsYWgmIzgyMjE7IG9yICYjODIyMDtpZiBjYXRlZ29yeTIgaXMgYSBj aGlsZCBvZiBibGFoYmxhaCYjODIyMTsuIFNlZSA8YSBocmVmPSIjZWc0Ij5FeGFtcGxlIDQ8 L2E+LjwvcD4KCgk8cD5PbmUgb3RoZXIgc3BlY2lhbCBmaWVsZCBpcyA8Y29kZT5OVUxMPC9j b2RlPi4gVGhpcyBpcyBleGFjdGx5IHdoYXQgaXQgc2F5cyBpdCBpczogZW1wdHkuIFRoZSBy ZWFzb24gZm9yIGl0cyBpbmNsdXNpb24gaXMgdGhhdCBzb21ldGltZXMgeW91IHdpc2ggdG8g dGVzdCBzb21ldGhpbmcgdGhhdCBpc24mIzgyMTc7dCBhIHRydWUgdmFyaWFibGUgJiM4MjEy OyBlLmcuIGEgcmVwbGFjZW1lbnQgdmFyaWFibGUgZnJvbSBzbWRfdmFycyBvciBzbWRfZWFj aCAmIzgyMTI7IHRvIHNlZSBpZiBpdCYjODIxNztzIGVtcHR5IG9yIG5vdC48L3A+CgoJPHA+ SWYgeW91IHdlcmUgdG8gcHV0IHRoaXM6PC9wPgoKCTxwPjxjb2RlPiZsdDt0eHA6c21kX2lm IGZpZWxkPSZxdW90O3tyZXN1bHR9JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2lzZW1wdHkmcXVv dDsmZ3Q7PC9jb2RlPjwvcD4KCgk8cD55b3Ugd291bGQgbm90IGdldCB0aGUgcmVzdWx0IHlv dSBleHBlY3QgKGl0JiM4MjE3O3MgcHJldHR5IGVzb3RlcmljIGJ1dCBpdCByZXZvbHZlcyBh cm91bmQgdGhlIGZhY3QgdGhhdCA8Y29kZT4mcXVvdDsmcXVvdDs8L2NvZGU+IChhcyBhIHZh cmlhYmxlIG5hbWUpIGlzIG5vdCBlbXB0eSwgaXQmIzgyMTc7cyBpbnZhbGlkKS4gVG8gZ2V0 IHJvdW5kIHRoaXMgeW91IG1heSB1c2UgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8L3NwYW4+ IGFzIGEgcGxhY2Vob2xkZXIgYW5kIG1vdmUgdGhlIHRoaW5nIHlvdSB3YW50IHRvIGNoZWNr IGludG8gdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBpbnN0ZWFkLCBlLmc6PC9wPgoKCTxwPjxj b2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O05VTEwmcXVvdDsgb3BlcmF0b3I9JnF1 b3Q7ZXEmcXVvdDsgdmFsdWU9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsmZ3Q7PC9jb2RlPjwvcD4K Cgk8cD53aWxsIHRlc3QgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBvYmpl Y3QgKGkuZS4gJiM4MjE2O2VtcHRpbmVzcyYjODIxNzspIHRvIHNlZSBpZiBpdCYjODIxNztz IGVxdWFsIHRvIHRoZSA8Y29kZT57cmVzdWx0fTwvY29kZT4gcmVwbGFjZW1lbnQgdmFyaWFi bGUuIFlvdSBjYW4gdXNlIHNpbWlsYXIgbG9naWMgdG8gdGVzdCBmb3Igb3B0aW9uYWwgdmFy aWFibGVzIGJ5IHN3YXBwaW5nIHRoZSBmaWVsZCBhbmQgdmFsdWUsIGxpa2UgdGhpczo8L3A+ CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7NyZxdW90OyBvcGVyYXRv cj0mcXVvdDtndCZxdW90OyB2YWx1ZT0mcXVvdDt7cmVzdWx0fSZxdW90OyZndDs8L2NvZGU+ PC9wPgoKCTxwPlRoYXQgd291bGQgc2VlIGlmIHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZSA8 Y29kZT57cmVzdWx0fTwvY29kZT4gd2FzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA3ICh0aGF0 JiM4MjE3O3Mgbm90IGEgdHlwbywgdGhlIGxvZ2ljIGlzIHJldmVyc2VkIGluIHRoaXMgY2Fz ZTogaXQgaXMgaW50ZXJwcmV0ZWQgYXM6ICYjODIyMDtpcyA3IGdyZWF0ZXIgdGhhbiB7cmVz dWx0fSYjODIyMTssIHdoaWNoIGlzIHRoZSBzYW1lIGFzICYjODIyMDtpcyB7cmVzdWx0fSBs ZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyYjODIyMTshKTwvcD4KCgk8aDMgY2xhc3M9ImF0bm0g IiBpZD0ib3BlcmF0b3IiPm9wZXJhdG9yPC9oMz4KCgk8cD5MaXN0IG9mIG9wZXJhdG9ycyB0 byBhcHBseSwgaW4gb3JkZXIsIHRvIGVhY2ggZmllbGQuIENob29zZSBmcm9tOjwvcD4KCgk8 dWw+CgkJPGxpPjxjb2RlPmVxPC9jb2RlPiBFcXVhbCAodGhlIGRlZmF1bHQgZm9yIGFsbCBl eGNlcHQgJiM4MjE2O3BhcmVudCYjODIxNzspPC9saT4KCQk8bGk+PGNvZGU+bm90PC9jb2Rl PiBOb3QgZXF1YWw8L2xpPgoJCTxsaT48Y29kZT5sdDwvY29kZT4gTGVzcyB0aGFuPC9saT4K CQk8bGk+PGNvZGU+Z3Q8L2NvZGU+IEdyZWF0ZXIgdGhhbjwvbGk+CgkJPGxpPjxjb2RlPmxl PC9jb2RlPiBMZXNzIHRoYW4gb3IgZXF1YWwgdG88L2xpPgoJCTxsaT48Y29kZT5nZTwvY29k ZT4gR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvPC9saT4KCQk8bGk+PGNvZGU+aW48L2NvZGU+ IEZpZWxkIGlzIG9uZSBvZiBhIGxpc3Qgb2YgdmFsdWVzICh1c2UgPGNvZGU+bGlzdF9kZWxp bTwvY29kZT4gdG8gc2VwYXJhdGUgdmFsdWVzKTwvbGk+CgkJPGxpPjxjb2RlPm5vdGluPC9j b2RlPiBGaWVsZCBpcyBub3Qgb25lIG9mIHRoZSBnaXZlbiBsaXN0IG9mIHZhbHVlcyAodXNl IDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IHRvIHNlcGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxs aT48Y29kZT5kaXZpc2libGU8L2NvZGU+IEZpZWxkIGlzIGV4YWN0bHkgZGl2aXNpYmxlIGJ5 IHRoZSB2YWx1ZTwvbGk+CgkJPGxpPjxjb2RlPmJldHdlZW48L2NvZGU+IEZpZWxkIGxpZXMg YmV0d2VlbiB0aGUgZ2l2ZW4gdmFsdWVzLCBleGNsdXNpdmUgKHVzZSA8Y29kZT5saXN0X2Rl bGltPC9jb2RlPiB0byBzZXBhcmF0ZSB2YWx1ZXMpPC9saT4KCQk8bGk+PGNvZGU+cmFuZ2U8 L2NvZGU+IEZpZWxkIGlzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgZ2l2ZW4gdmFsdWVzLCBpbmNs dXNpdmUgKHVzZSA8Y29kZT5saXN0X2RlbGltPC9jb2RlPiB0byBzZXBhcmF0ZSB2YWx1ZXMp PC9saT4KCQk8bGk+PGNvZGU+YmVnaW5zPC9jb2RlPiBGaWVsZCBiZWdpbnMgd2l0aCBhIHNl cXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5jb250YWluczwvY29kZT4g RmllbGQgY29udGFpbnMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIChkZWZhdWx0IGZvciAm IzgyMTY7cGFyZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48Y29kZT5lbmRzPC9jb2RlPiBGaWVs ZCBlbmRzIHdpdGggYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+PGNvZGU+ aXNlbXB0eTwvY29kZT4gRmllbGQgaXMgZW1wdHkgKGNvbnRhaW5zIG5vdGhpbmcpPC9saT4K CQk8bGk+PGNvZGU+aXN1c2VkPC9jb2RlPiBGaWVsZCBoYXMgc29tZSB2YWx1ZTwvbGk+CgkJ PGxpPjxjb2RlPmRlZmluZWQ8L2NvZGU+IEZpZWxkIGlzIHNldCAodXNlZnVsIHdpdGggdXJs dmFyIHZhcmlhYmxlcyk8L2xpPgoJCTxsaT48Y29kZT51bmRlZmluZWQ8L2NvZGU+IEZpZWxk IGlzIG5vdCBzZXQsIG9yIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gbGluZTwvbGk+CgkJPGxpPjxjb2RlPmlzbnVtPC9jb2RlPiBGaWVsZCBpcyBh IG51bWJlcjwvbGk+CgkJPGxpPjxjb2RlPmlzYWxwaGE8L2NvZGU+IEZpZWxkIGNvbnRhaW5z IGNoYXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2RlPmlzYWxudW08L2NvZGU+IEZpZWxk IGNvbnRhaW5zIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHk8L2xpPgoJCTxsaT48Y29k ZT5pc2xvd2VyPC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIGxvd2Vy IGNhc2U8L2xpPgoJCTxsaT48Y29kZT5pc3VwcGVyPC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIg aW4gdGhlIGZpZWxkIGlzIHVwcGVyIGNhc2U8L2xpPgoJCTxsaT48Y29kZT5pc3B1bmN0PC9j b2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIHNvbWUgcHVuY3R1YXRpb24g bWFyazwvbGk+CgkJPGxpPjxjb2RlPmlzc3BhY2U8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBp biB0aGUgZmllbGQgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAob3IgdGFiLCBuZXdsaW5l LCBldGMpPC9saT4KCTwvdWw+CgoJPHA+V2l0aCB0aGUgY29tcGFyaXNvbiBvcGVyYXRvcnMg KHByaW1hcmlseSBndCwgbHQsIGdlLCBsZSkgeW91IG1heSBmaW5kIG9kZCBiZWhhdmlvdXIg d2hlbiBjb21wYXJpbmcgbnVtYmVycy4gRm9yIGV4YW1wbGUsIDxjb2RlPnVybHZhcjpwaWMg Z3QgNjwvY29kZT4gd2lsbCByZXR1cm4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+ IGlmIDxjb2RlPnBpYzwvY29kZT4gaXMgc2V0IHRvICYjODIyMDtmcmVkJiM4MjIxOy4gVGhp cyBpcyBiZWNhdXNlIHRoZSB3b3JkICYjODIyMDtmcmVkJiM4MjIxOyAob3IgYXQgbGVhc3Qg dGhlICYjODIyMDtjaGFyYWN0ZXIgZiYjODIyMTspIGlzIGdyZWF0ZXIgaW4gdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5BU0NJSTwvc3Bhbj4gdGFibGUgdGhhbiB0aGUgJiM4MjIwO2NoYXJh Y3RlciA2JiM4MjIxOy48L3A+CgoJPHA+VG8gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0sIHlv dSBtYXkgYXBwZW5kIDxjb2RlPjpOVU08L2NvZGU+IHRvIHRoZSBlbmQgb2YgYW55IG9mIHRo ZXNlIG9wZXJhdG9ycyB0byBmb3JjZSB0aGUgcGx1Z2luIHRvIGNoZWNrIHRoYXQgdGhlIHZh bHVlcyBhcmUgaW50ZWdlcnMuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRvIGNvbXBhcmUgdGhl IGxlbmd0aCBvZiBhIGZpZWxkLCBhcHBlbmQgPGNvZGU+OkxFTjwvY29kZT4gdG8gYW55IG9m IHRoZSBudW1lcmljYWwgY29tcGFyaXNvbiBvcGVyYXRvcnMuIEl0IGRvZXNuJiM4MjE3O3Qg bWFrZSBzZW5zZSB0byB1c2UgYm90aCA8Y29kZT46TlVNPC9jb2RlPiBhbmQgPGNvZGU+OkxF TjwvY29kZT4gdG9nZXRoZXIsIHNvIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS48L3A+ CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSB0aGUgcXVhbnRpdHkgKGNvdW50KSBvZiBh IGxpc3Qgb2YgaXRlbXMgaW4gYSBmaWVsZCwgYXBwZW5kIDxjb2RlPjpDT1VOVDwvY29kZT4g dG8gYW55IG9mIHRoZSBudW1lcmljYWwgY29tcGFyaXNvbiBvcGVyYXRvcnMuIEFnYWluLCB0 aGlzIG9wdGlvbiBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBhbGwgb3RoZXIgbW9kaWZp ZXJzLjwvcD4KCgk8cD5UaGVyZSBpcyBhIHN1YnRsZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhl IG9wZXJhdG9ycyA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+ OyB0aGUgZm9ybWVyIGRvZXMgbm90IGluY2x1ZGUgdGhlIGVuZHBvaW50IHZhbHVlcyB5b3Ug c3BlY2lmeSB3aGVyZWFzIHRoZSBsYXR0ZXIgZG9lcy4gRm9yIGV4YW1wbGUsIHRoZSB2YWx1 ZSA8Y29kZT4xMDwvY29kZT4gaXMgaW4gdGhlIHJhbmdlIDxjb2RlPjEwLzIwPC9jb2RlPiBi dXQgaXQgaXMgPGVtPm5vdDwvZW0+IGJldHdlZW4gPGNvZGU+MTAvMjA8L2NvZGU+LiBUaGUg dmFsdWUgPGNvZGU+MTE8L2NvZGU+LCBob3dldmVyLCBzYXRpc2ZpZXMgYm90aC4gWW91IGNh biB1c2UgdGhlIDxjb2RlPjpOVU08L2NvZGU+IG1vZGlmaWVyIGZvciB0aGVzZSB0d28gb3Bl cmF0b3JzLCB0aG91Z2ggbW9zdCB0ZXN0cyB3aWxsIHdvcmsgZmluZSB3aXRob3V0IGl0LCBh bmQgeW91IG1heSBjaGVjayBpZiBsaXN0IDxjb2RlPjpDT1VOVDwvY29kZT4gdmFsdWVzIGxp ZSB3aXRoaW4gdHdvIGVuZHBvaW50cy4gWW91IGNhbiBhbHNvIGNvbXBhcmUgbm9uLWludGVn ZXIgdmFsdWVzIHdpdGggdGhlc2Ugb3BlcmF0b3JzLjwvcD4KCgk8cD5UaGUgPGNvZGU+YmVn aW5zPC9jb2RlPiwgPGNvZGU+ZW5kczwvY29kZT4gYW5kIDxjb2RlPmNvbnRhaW5zPC9jb2Rl PiBvcGVyYXRvcnMsIGFsb25nIHdpdGggYW55IG9mIHRoZSA8Y29kZT5pczwvY29kZT4gb3Bl cmF0b3JzIChleGNlcHQgPGNvZGU+aXNzcGFjZTwvY29kZT4pLCBjYW4gdGFrZSBhbiBleHRy YSBwYXJhbWV0ZXIgYXMgd2VsbC4gU2luY2UgdGhleSBjb21wYXJlIGV2ZXJ5IGNoYXJhY3Rl ciBhZ2FpbnN0IHRoZSBnaXZlbiBiZWhhdmlvdXIsIHNwYWNlIGNoYXJhY3RlcnMgY2FuIG1l c3MgdGhpbmdzIHVwIGEgYml0LiBGb3IgZXhhbXBsZSA8Y29kZT5maWVsZD0mcXVvdDtjdXN0 b20xJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2lzbG93ZXImcXVvdDs8L2NvZGU+IHdpbGwgZmFp bCBpZiBjdXN0b20xIGNvbnRhaW5zICYjODIyMDt0aGlzIGlzIGEgdGVzdCYjODIyMTsuIE9y IGNvbXBhcmluZyBzb21ldGhpbmcgdG8gPGNvZGU+Ym9keTwvY29kZT4gY2FuIGZhaWwgYmVj YXVzZSB0aGUgYm9keSBvZnRlbiBzdGFydHMgd2l0aCBhIG51bWJlciBvZiBzcGFjZSBjaGFy YWN0ZXJzLiBUbyBjaXJjdW12ZW50IHRoaXMsIGFkZCA8Y29kZT46Tk9TUEFDRTwvY29kZT4g dG8gdGhlIG9wZXJhdG9yIHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBzcGFjZXMgZnJvbSB0aGUg c3RyaW5nIGJlZm9yZSB0ZXN0aW5nIGl0LjwvcD4KCgk8cD5Ob3RlIGFsc28gdGhhdCB3aGls ZSA8Y29kZT5kZWZpbmVkPC9jb2RlPiBhbmQgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBkaWZm ZXIgc2VtYW50aWNhbGx5IGZyb20gPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNl bXB0eTwvY29kZT4gKHJlc3BlY3RpdmVseSksIHRoZSB3YXkgVHhwIGFzc2lnbnMgdmFyaWFi bGVzIG1lYW5zIHRoYXQsIGZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgdGVybXMgYXJlIGludGVy Y2hhbmdlYWJsZS4gV2hlbiBkZWFsaW5nIHdpdGggdXJsdmFycywgcG9zdHZhcnMgYW5kIHN2 cnZhcnMsIHRoZSB0d28gc2V0cyBvZiBvcGVyYXRvcnMgYmVoYXZlIGluZGVwZW5kZW50bHks IGFzIHlvdSB3b3VsZCBleHBlY3QuIFNlZSA8YSBocmVmPSIjZWc1Ij5FeGFtcGxlIDU8L2E+ IGZvciBtb3JlLiBOZWl0aGVyIDxjb2RlPmRlZmluZWQ8L2NvZGU+IG5vciA8Y29kZT51bmRl ZmluZWQ8L2NvZGU+IG1ha2Ugc2Vuc2Ugd2l0aCA8Y29kZT5wYXJlbnQ8L2NvZGU+LCBzbyB0 aGV5IGFyZSBmb3JiaWRkZW4uPC9wPgoKCTxoMyBjbGFzcz0iYXRubSAiIGlkPSJ2YWx1ZSI+ dmFsdWU8L2gzPgoKCTxwPkxpc3Qgb2YgdmFsdWVzIHRvIGNvbXBhcmUgZWFjaCBmaWVsZCBp biB0dXJuIHRvLiBDYW4gYmUgc3RhdGljIHZhbHVlcy90ZXh0IG9yIHRoZSBuYW1lIG9mIGFu eSBUeHAgZmllbGQsIGxpa2UgdGhvc2UgZ2l2ZW4gaW4gPGEgaHJlZj0iI2ZpZWxkIj5maWVs ZDwvYT4gKGV4Y2VwdCAmIzgyMjA7cGFyZW50JiM4MjIxOykuPC9wPgoKCTxwPlRvIGRpc3Rp bmd1aXNoIGEgVHhwIGZpZWxkIGZyb20gc3RhdGljIHRleHQsIHByZWZpeCB0aGUgZmllbGQg bmFtZSB3aXRoIDxjb2RlPj88L2NvZGU+LiBGb3IgZXhhbXBsZTogPGNvZGU+dmFsdWU9JnF1 b3Q7dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3VyIGNob3NlbiBmaWVsZCBh Z2FpbnN0IHRoZSB3b3JkICYjODIyMDt0aXRsZSYjODIyMTssIHdoZXJlYXMgPGNvZGU+dmFs dWU9JnF1b3Q7P3RpdGxlJnF1b3Q7PC9jb2RlPiB3aWxsIGNvbXBhcmUgeW91ciBmaWVsZCBh Z2FpbnN0IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyB0aXRsZS48L3A+CgoJPHA+SWYg eW91IHdpc2ggdG8gY29tcGFyZSBhIHZhbHVlIHRoYXQgbWlnaHQgY29udGFpbiA8c3BhbiBj bGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT4/Ym9keTwvY29kZT4pLCBhZGQg dGhlIG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhlIHZh bHVlLiBJdCB3aWxsIGhhdmUgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBh bmQgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFncyBzdHJpcHBlZCBmcm9tIGl0 IGFuZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxp bmcgc3BhY2VzLiBZb3UgbWF5IGNob29zZSB0byBzb2xlbHkgcmVtb3ZlIHNwYWNlcyBmcm9t IGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYW55IHZhbHVlIGJ5IGFkZGluZyA8Y29kZT46 VFJJTTwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgdmFsdWUuPC9wPgoKCTxwPklmIHlvdSBz dXNwZWN0IGEgdmFsdWUgbWlnaHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwv c3Bhbj5pc2ggaW5wdXQgbGlrZSA8Y29kZT4mbHQ7PC9jb2RlPiwgPGNvZGU+Jmd0OzwvY29k ZT4sIDxjb2RlPiZhbXA7PC9jb2RlPiBvciBxdW90ZXMvYXBvc3Ryb3BoZXMgeW91IGNhbiBl bGVjdCB0byBjb252ZXJ0IHRoZW0gdG8gZW50aXRpZXMgbGlrZSA8Y29kZT4mYW1wO2d0Ozwv Y29kZT4sIDxjb2RlPiZhbXA7cXVvdDs8L2NvZGU+LCBldGMuIEp1c3Qgc3BlY2lmeSB0aGUg PGNvZGU+OkVTQzwvY29kZT4gbW9kaWZpZXIgdG8gcmVwbGFjZSBldmVyeXRoaW5nIGV4Y2Vw dCBhcG9zdHJvcGhlcyB3aXRoIGl0cyBlbnRpdHkgZXF1aXZhbGVudCwgb3IgdXNlIDxjb2Rl PjpFU0NBTEw8L2NvZGU+IHRvIGluY2x1ZGUgYXBvc3Ryb3BoZXMuPC9wPgoKCTxwPk5vdGUg dGhhdCB5b3UgbWF5IGZpbmQgdXNpbmcgZG91YmxlLXF1b3RlcyBpbiBmaWVsZHMgZ2l2ZXMg dW5leHBlY3RlZCByZXN1bHRzLiBUaGV5IGFyZSBiZXN0IGF2b2lkZWQsIG9yIHdvcmtlZCBh cm91bmQgYnkgdXNpbmcgPGNvZGU+Y29udGFpbnM8L2NvZGU+IGluc3RlYWQgb2YgPGNvZGU+ ZXE8L2NvZGU+LjwvcD4KCgk8aDM+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+RXZlcnkg ZmllbGQgb3IgdmFsdWUgdGhhdCB5b3UgcmVmZXIgdG8gaW4geW91ciBzbWRfaWYgdGFnIGJl Y29tZXMgYXZhaWxhYmxlIHdpdGhpbiB0aGUgY29udGFpbmluZyBibG9jayBzbyB5b3UgY2Fu IGRpc3BsYXkgaXRzIGNvbnRlbnRzIGlmIHlvdSB3aXNoLiBNb3N0IG9mIHRoZSB0aW1lIHRo aXMgaXMgbm90IG11Y2ggdXNlIGJ1dCBpdCBjYW4gYmUgdmVyeSB1c2VmdWwgd2l0aCB0aGUg PGNvZGU+aW48L2NvZGU+IG9wZXJhdG9yIG9yIHRoZSA8Y29kZT46TEVOPC9jb2RlPiBtb2Rp Zmllci4gRm9yIGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBhc2tlZCBzbWRfaWYgdG8gdGVzdCB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgbmFtZWQgJiM4MjE2 O2xldmVsJiM4MjE3OyBhbmQgdG9sZCBpdCB0byBjb21wYXJlIGl0IHRvIHRoZSBjdXN0b20g ZmllbGQgbGFiZWxsZWQgJiM4MjE2O2FsbG93YWJsZV9sZXZlbHMmIzgyMTc7LCB0d28gdGFn cyBiZWNvbWUgYXZhaWxhYmxlIHdoaWNoIHlvdSBjYW4gdXNlIHdpdGhpbiB0aGUgY29udGFp bmluZyBibG9jazo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57c21kX2lmX2xldmVsfTwvY29k ZT4gd291bGQgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlICYjODIxNjtsZXZlbCYjODIxNzsg PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUuPC9saT4KCQk8bGk+PGNv ZGU+e3NtZF9pZl9hbGxvd2FibGVfbGV2ZWxzfTwvY29kZT4gd291bGQgZGlzcGxheSB0aGUg Y29udGVudHMgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGN1c3RvbSBmaWVsZC48 L2xpPgoJPC91bD4KCgk8cD5CeSBkZWZhdWx0IHRoZSByZXBsYWNlbWVudCB0YWdzIGFyZSBw cmVmaXhlZCB3aXRoIDxjb2RlPnNtZF9pZl88L2NvZGU+IHNvIHRoZXkgZG9uJiM4MjE3O3Qg Y2xhc2ggd2l0aCB0aGUgb25lcyBpbiBzbWRfZ2FsbGVyeSAoZm9yIGV4YW1wbGUsIHdoZW4g dXNpbmcgc21kX2lmIGluc2lkZSBhbiBzbWRfZ2FsbGVyeSB0YWcpLiBZb3UgY2FuIGNoYW5n ZSB0aGlzIHByZWZpeCB3aXRoIHRoZSA8Y29kZT52YXJfcHJlZml4PC9jb2RlPiBhdHRyaWJ1 dGUuPC9wPgoKCTxwPklmIHlvdSBhcmUgY29tcGFyaW5nIGEgZml4ZWQtdmFsdWUgZmllbGQg KHN1Y2ggYXMgPGNvZGU+ZmllbGQ9JnF1b3Q7TlVMTCZxdW90OzwvY29kZT4gb3IgPGNvZGU+ dmFsdWU9JnF1b3Q7MTImcXVvdDs8L2NvZGU+IG9yIHNtZF9nYWxsZXJ5JiM4MjE3O3MgPGNv ZGU+dmFsdWU9JnF1b3Q7e2NhdGVnb3J5fSZxdW90OzwvY29kZT4pIHRoZSBuYW1lIG9mIHRo ZSByZXBsYWNlbWVudCB0YWdzIGFyZSA8Y29kZT57c21kX2lmX2ZpZWxkTn08L2NvZGU+IGZv ciBmaWVsZHMgYW5kIDxjb2RlPntzbWRfaWZfdmFsTn08L2NvZGU+IGZvciB2YWx1ZXMsIHdo ZXJlIE4gaXMgdGhlIHRlc3QgbnVtYmVyIHN0YXJ0aW5nIGZyb20gMS48L3A+CgoJPHA+SWYg eW91IHVzZSB0aGUgbXVsdGlwbGUgdmFsdWUgb3B0aW9ucyBzdWNoIGFzIDxjb2RlPmluPC9j b2RlPiwgPGNvZGU+YmV0d2VlbjwvY29kZT4sIDxjb2RlPnJhbmdlPC9jb2RlPiwgZXRjIHlv dSB3aWxsIGFsc28gc2VlIHJlcGxhY2VtZW50IHRhZ3Mgb2YgdGhlIGZvbGxvd2luZyBmb3Jt YXQ6IDxjb2RlPntzbWRfaWZfdmFsTl9YfTwvY29kZT4gd2hlcmUgTiBpcyB0aGUgdmFsdWUg Y291bnRlciAoYXMgYWJvdmUpIGFuZCBYIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXI7IHdp dGggb25lIGZvciBlYWNoIHZhbHVlIGluIHlvdXIgbGlzdC4gRm9yIGV4YW1wbGUsIDxjb2Rl PnZhbHVlPSZxdW90OzEwLzIwLzMwJnF1b3Q7PC9jb2RlPiBzZXRzOjwvcD4KCgk8dWw+CgkJ PGxpPjxjb2RlPnsgc21kX2lmX3ZhbDFfMSB9PC9jb2RlPiA9IDEwPC9saT4KCQk8bGk+PGNv ZGU+eyBzbWRfaWZfdmFsMV8yIH08L2NvZGU+ID0gMjA8L2xpPgoJCTxsaT48Y29kZT57IHNt ZF9pZl92YWwxXzMgfTwvY29kZT4gPSAzMDwvbGk+Cgk8L3VsPgoKCTxwPlRoZXJlIGFyZSBh bHNvICYjODIxNjtsZW5ndGgmIzgyMTc7IHJlcGxhY2VtZW50IHRhZ3MuIEZvbGxvd2luZyBh IHNpbWlsYXIgY29udmVudGlvbiB0byBhYm92ZSwgdGhlc2UgYXJlIHByZWZpeGVkIHdpdGgg PGNvZGU+c21kX2lmX2xlbl88L2NvZGU+LiBJZiB5b3UgZ2V0IHN0dWNrLCB0ZW1wb3Jhcmls eSBzd2l0Y2ggPGNvZGU+ZGVidWc9JnF1b3Q7MSZxdW90OzwvY29kZT4gb24gdG8gc2VlIHRo ZSByZXBsYWNlbWVudHMgYXZhaWxhYmxlIGFuZCB0aGVpciBhc3NvY2lhdGVkIG5hbWVzL3Zh bHVlcy48L3A+CgoJPHA+U2VlIDxhIGhyZWY9IiNlZzgiPkV4YW1wbGUgODwvYT4gYW5kIDxh IGhyZWY9IiNlZzkiPjk8L2E+IGZvciBtb3JlLjwvcD4KCgk8aDIgaWQ9ImZpbHRlcmluZyI+ RmlsdGVyaW5nPC9oMj4KCgk8cD5BbGwgdXNlciBpbnB1dCBpcyB0YWludGVkIGJ5IGRlZmF1 bHQuPC9wPgoKCTxwPkFueSB0aW1lIHlvdSByZWx5IG9uIHNvbWVvbmUgdG8gZW50ZXIgc29t ZXRoaW5nLCBhdCBsZWFzdCBvbmUgcGVyc29uIHdpbGwgaW52YXJpYWJseSBjYXRjaCB5b3Ug b3V0OyBlaXRoZXIgYWNjaWRlbnRhbGx5IG9yIG1hbGljaW91c2x5LiBGb3IgdGhpcyByZWFz b24sIHNtZF9pZiBzdXBwb3J0cyBwb3dlcmZ1bCBmaWx0ZXJpbmcgcnVsZXMgc28geW91IGNh biB0cmFwIGFuZCByZW1vdmUgc3VzcGVjdCBpbnB1dC4gSXQgYWxyZWFkeSBkb2VzIHNvbWUg b2YgdGhpcyBmb3IgeW91IHdpdGggdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1RBR1M8L3Nw YW4+IG1vZGlmaWVyLCBidXQgZmlsdGVyaW5nIGdpdmVzIGFub3RoZXIgbGV2ZWwgb2YgY29u dHJvbCBhYm92ZSB0aGF0LjwvcD4KCgk8cD5MZXQmIzgyMTc7cyBzYXkgeW91IGFyZSBhc2tp bmcgdGhlIHVzZXIgdG8gZW50ZXIgYSB2YWx1ZSBhbmQgeW91IG5lZWQgdG8gY29tcGFyZSBp dCB0byBhIHJhbmdlLiBXaGF0IGlmLCBpbnN0ZWFkIG9mIGEgbnVtYmVyLCB0aGV5IGVudGVy ZWQgPGNvZGU+ZnIzZDwvY29kZT4gb3IgPGNvZGU+O3JtIC1yZiAxKjs8L2NvZGU+LiBUaGUg cGx1Z2luIG1pZ2h0IGp1c3QgZmFsbCBvdmVyIChwcm9iYWJseSB3aXRoIGFuIGVycm9yLCB3 aGljaCBpcyBub3QgdmVyeSBwbGVhc2FudCBmb3IgdXNlcnMpLCBvciBpdCBtaWdodCBjYXVz ZSBoYXJtIHRvIHRoZSBmaWxlc3lzdGVtIGlmIGEgcGVyc29uIHRyeWluZyB0byBoYWNrIHlv dXIgc2l0ZSB3YXMgc2tpbGxlZCBlbm91Z2ggKGl0JiM4MjE3O3MgdW5saWtlbHksIGJ1dCBw b3NzaWJsZSkuPC9wPgoKCTxwPkluIGJvdGggY2FzZXMsIGZpbHRlcmluZyBjb21lcyB0byB0 aGUgcmVzY3VlLiBZb3UgY2FuIHNwZWNpZnkgdGhhdCB5b3UgPGVtPmV4cGVjdDwvZW0+IG9u bHkgZGlnaXRzIGZyb20gMCB0byA5IGluIHlvdXIgZmllbGRzIGFuZCBjYW4gdGVsbCB0aGUg cGx1Z2luIHRvIGNob3Agb3V0IGFueXRoaW5nIHRoYXQgaXMgbm90IG51bWVyaWMuIFNvIGlu IHRoZSBmaXJzdCBjYXNlIGFib3ZlLCBhbGwgeW91IHdvdWxkIHNlZSBpZiB0aGUgdXNlciBl bnRlcmVkICYjODIxNjtmcjNkJiM4MjE3OyB3b3VsZCBiZSAmIzgyMTY7MyYjODIxNzsuPC9w PgoKCTxwPkZvcnR1bmF0ZWx5ICYjODIxMjsgYW5kIHVuZm9ydHVuYXRlbHkgJiM4MjEyOyBp dCYjODIxNztzIGJ1aWx0IGFyb3VuZCA8YSBocmVmPSJodHRwOi8vd3d3LnJlZ3VsYXItZXhw cmVzc2lvbnMuaW5mby8iPnJlZ3VsYXIgZXhwcmVzc2lvbnM8L2E+IHdoaWNoIGFyZSBmaWVu ZGlzaGx5IHBvd2VyZnVsIGJ1dCBjYW4gYWxzbyBiZSBmaWVuZGlzaGx5IHRyaWNreSB0byBs ZWFybiBpZiB5b3UgYXJlIG5vdCBmYW1pbGlhci4gVGhleSBhcmUgd29ydGggbGVhcm5pbmcu PC9wPgoKCTxwPkxldCYjODIxNztzIGRpdmUgaW4gYXQgdGhlIGRlZXAgZW5kIGFuZCB0ZWxs IHRoZSBwbHVnaW4gdGhhdCwgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcywgbXVzdCB3ZSBhbGxv dyBhbnkgaW5wdXQgdGhhdCBpcyBub24tbnVtZXJpYzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnZhcmlhYmxlIG5hbWU9JnF1b3Q7aGln aGVzdCZxdW90OyB2YWx1ZT0mcXVvdDsxMDAmcXVvdDsgLyZndDsKJmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7dXJsdmFyOmxvdyZxdW90OyBvcGVyYXRvcj0mcXVvdDtnZSwgbGUmcXVv dDsKICAgICB2YWx1ZT0mcXVvdDsxLCB0eHB2YXI6aGlnaGVzdCZxdW90OyBmaWx0ZXI9JnF1 b3Q7L1teMC05XSsvJnF1b3Q7Jmd0OwogICAmbHQ7cCZndDt7c21kX2lmX2xvd30gaXMgdmFs aWQgYW5kIGlzIGJldHdlZW4KICAge3NtZF9pZl92YWwxfSBhbmQge3NtZF9pZl9oaWdoZXN0 fS4mbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogICAmbHQ7cCZndDtTb3JyeSwgdGhl IHZhbHVlIHtzbWRfaWZfbG93fSBpcyBub3Qgd2l0aGluIHRoZQogICAgIHJhbmdlIHtzbWRf aWZfdmFsMX0te3NtZF9pZl9oaWdoZXN0fS4mbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPlsgRWFnbGUtZXllZCBwZW9wbGUgbWF5IG5vdGljZSB0 aGF0IHNvbWV0aGluZyBzaW1pbGFyIGNhbiBiZSBhY2hpZXZlZCB3aXRoIHRoZSA8Y29kZT46 TlVNPC9jb2RlPiBtb2RpZmllci4gVGhlIGRpZmZlcmVuY2UgaGVyZSBpcyB0aGF0IHRoZSBy ZXBsYWNlbWVudCB2YXJpYWJsZXMgYXJlIGFsc28gZmlsdGVyZWQsIHdoZXJlYXMgd2l0aCA8 Y29kZT46TlVNPC9jb2RlPiB0aGV5IGNvbnRhaW4gdGhlIG9yaWdpbmFsIChwb3NzaWJseSBp bnZhbGlkKSBpbnB1dCBdPC9wPgoKCTxwPkFsdGhvdWdoIG91dCBvZiB0aGUgc2NvcGUgb2Yg dGhpcyBkb2N1bWVudGF0aW9uLCBpdCYjODIxNztzIHdvcnRoIGp1c3QgdGFraW5nIGEgbW9t ZW50IHRvIHNlZSB3aGF0IHRoZSBmaWx0ZXIgaXMgZG9pbmc6PC9wPgoKPHByZT48Y29kZT4v W14wLTldKy8KPC9jb2RlPjwvcHJlPgoKCTx1bD4KCQk8bGk+VGhlIGZvcndhcmQgc2xhc2hl cyBhcmUgc3RhcnQgYW5kIGVuZCBkZWxpbWl0ZXJzIGFuZCBzaG91bGQgYWx3YXlzIGJlIHBy ZXNlbnQgKHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSYjODIxNztyZSBkb2luZyEpPC9saT4K CQk8bGk+VGhlIHNxdWFyZSBicmFja2V0cyA8Y29kZT5bXTwvY29kZT4gZGVub3RlIGEgY2hh cmFjdGVyIGNsYXNzLCBvciBncm91cCBvZiBjaGFyYWN0ZXJzLiBJbiB0aGlzIGNhc2UgdGhl eSBjb250YWluIHRoZSByYW5nZSBvZiBkaWdpdHMgMCB0byA5PC9saT4KCQk8bGk+VGhlIGNp cmN1bWZsZXggPGNvZGU+XjwvY29kZT4gbmVnYXRlcyB0aGUgY2xhc3MgKGkuZS4gbm9uLWRp Z2l0cyk8L2xpPgoJCTxsaT5UaGUgcGx1cyA8Y29kZT4rPC9jb2RlPiBtZWFucyAmIzgyMTY7 b25lIG9yIG1vcmUgb2YgdGhlIHRoaW5ncyBJJiM4MjE3O3ZlIGp1c3Qgc2VlbiYjODIxNzs8 L2xpPgoJPC91bD4KCgk8cD5TbyBwdXR0aW5nIGl0IGFsbCB0b2dldGhlciwgaXQgcmVhZHMg JiM4MjIwO0ZpbmQgZXZlcnkgb2NjdXJyZW5jZSBvZiBvbmUgb3IgbW9yZSBub24tZGlnaXRz JiM4MjIxOy4gVGh1cyBpdCBsb29rcyBhdCBldmVyeSBmaWVsZCBhbmQgZmluZHMgYW55dGhp bmcgbm9uLW51bWVyaWMuIFRoZW4gaXQgcmVwbGFjZXMgd2hhdGV2ZXIgaXQgZmluZHMgd2l0 aCA8Y29kZT4mIzM5OyYjMzk7PC9jb2RlPiwgaS5lLiBub3RoaW5nLCBuYWRhLCB6aXAuIEVm ZmVjdGl2ZWx5LCBpdCBkZWxldGVzIHdoYXRldmVyIG5vbi1kaWdpdHMgaXQgZmluZHMgYW5k IGxlYXZlcyB0aGUgZ29vZCBzdHVmZiAodGhlIG51bWJlcnMpIGJlaGluZC48L3A+CgoJPGgz IGlkPSJmcmVwbGFjaW5nIj5SZXBsYWNpbmcgYmFkIGRhdGE8L2gzPgoKCTxwPkZvciBlYWNo IG1hdGNoaW5nIGZpbHRlciB0aGVyZSYjODIxNztzIGFuIGVxdWl2YWxlbnQgPGNvZGU+cmVw bGFjZTwvY29kZT4gc3RyaW5nLiBCeSBkZWZhdWx0IHRoaXMgaXMgc2V0IHRvIDxjb2RlPnJl cGxhY2U9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB3aGljaCBtZWFucyAmIzgyMjA7cmVwbGFjZSB3 aGF0ZXZlciB5b3UgZmluZCB3aXRoIG5vdGhpbmcmIzgyMjE7OyBvciBpbiBvdGhlciB3b3Jk cyAmIzgyMjA7ZGVsZXRlIGV2ZXJ5dGhpbmcgdGhhdCBtYXRjaGVzIHRoZSBmaWx0ZXImIzgy MjE7LiBZb3UgbWF5IGVsZWN0IHRvIHJlcGxhY2UgeW91ciBmaWx0ZXJlZCBkYXRhIHdpdGgg c29tZXRoaW5nIGVsc2UsIHNheSwgPGNvZGU+cmVwbGFjZT0mcXVvdDt0eHAmcXVvdDs8L2Nv ZGU+LiBTbyBpZiBzb21lb25lIGVudGVyZWQgJiM4MjIwO2ZyM2QmIzgyMjE7IHlvdSB3b3Vs ZCBzZWUgdGhlIHJlcGxhY2VtZW50IHZhcmlhYmxlIGhhcyBhIHZhbHVlICYjODIyMDt0eHAz dHhwJiM4MjIxOyAodGhlIHJlYXNvbiB5b3Ugb25seSBnZXQgb25lICYjODIxNjt0eHAmIzgy MTc7IGJlZm9yZSB0aGUgbnVtYmVyIGlzIGR1ZSB0byB0aGUgZXhwcmVzc2lvbiBiZWluZyA8 ZW0+Z3JlZWR5PC9lbT4gYW5kIGdvYmJsaW5nIHVwIGFzIG1hbnkgY2hhcmFjdGVycyBhcyBp dCBjYW4gaW4gYSBncm91cCBiZWZvcmUgcmVwbGFjaW5nIHRoZW0uIFNlZSBhbnkgcmVnZXgg dHV0b3JpYWwgZm9yIG1vcmUgb24gdGhpcyB0b3BpYykuPC9wPgoKCTxwPlVuZGVyIG5vcm1h bCBjaXJjdW1zdGFuY2VzIHlvdSB3b24mIzgyMTc7dCB3YW50IHRvIG1lc3Mgd2l0aCA8Y29k ZT5yZXBsYWNlPC9jb2RlPiBhcyBpdCYjODIxNztsbCBkbyB3aGF0IHlvdSB3YW50IHdpdGgg dGhlIGRlZmF1bHQgJiM4MjE2O2RlbGV0ZSYjODIxNzsgb3BlcmF0aW9uLjwvcD4KCgk8aDMg aWQ9ImZvcHRpb25zIj5GaWx0ZXJpbmcgb3B0aW9uczwvaDM+CgoJPHA+QnkgZGVmYXVsdCwg dGhlIHBsdWdpbiBvbmx5IGxvb2tzIGF0IDxjb2RlPmZpZWxkPC9jb2RlPiBkYXRhLiBJZiB5 b3Ugd2lzaCB0byBjaGFuZ2UgdGhhdCwgdXNlIHRoZSA8Y29kZT5maWx0ZXJfaW48L2NvZGU+ IGF0dHJpYnV0ZS48L3A+CgoJPHA+VGhlIHBsdWdpbiBhbHNvIGFwcGxpZXMgdGhlIGZpbHRl ciB0byBhbGwgZmllbGRzICg8Y29kZT5maWx0ZXJfdHlwZT0mcXVvdDthbGwmcXVvdDs8L2Nv ZGU+KS4gWW91IG1heSB3aXNoIHRvIG9ubHkgdGFyZ2V0IGEgZmlsdGVyIGF0IHVybCBhbmQg c2VydmVyIHZhcnMsIGluIHdoaWNoIGNhc2UgeW91IHdvdWxkIHNwZWNpZnkgPGNvZGU+Zmls dGVyX3R5cGU9JnF1b3Q7dXJsdmFyLCBzdnJ2YXImcXVvdDs8L2NvZGU+LiBPciBtYXliZSB5 b3Ugd2lzaCB0byB2YWxpZGF0ZSB0aGUgYXJ0aWNsZSBpbWFnZSBmaWVsZCBpbiBjYXNlIHNv bWVvbmUgZW50ZXJlZCBzb21lIHJvZ3VlIGRhdGEgdGhlcmU6IDxjb2RlPmZpbHRlcl90eXBl PSZxdW90O2FydGljbGVfaW1hZ2UmcXVvdDs8L2NvZGU+LjwvcD4KCgk8aDMgaWQ9ImZjYXZl YXQiPkZpbHRlcmluZyBjYXZlYXQ8L2gzPgoKCTxwPklmIHlvdSBzcGVjaWZ5IDxjb2RlPmZp bHRlcl9vbj0mcXVvdDtmaWVsZCwgdmFsdWUmcXVvdDs8L2NvZGU+IGl0IGlzIGltcG9ydGFu dCB0byBub3RlIHRoYXQgdGhlIDxlbT5zYW1lIGZpbHRlcjwvZW0+IHdpbGwgYmUgYXBwbGll ZCB0byBlYWNoIGNvcnJlc3BvbmRpbmcgZmllbGQgYW5kIHZhbHVlLiBJZiB5b3VyIGZpbHRl ciBpcyB0b28gc3RyaWN0IHRoZXJlJiM4MjE3O3MgYSBjaGFuY2UgaXQgbWF5IGZpbHRlciBl dmVyeSBjaGFyYWN0ZXIgb3V0IG9mIGJvdGggPGNvZGU+ZmllbGQ8L2NvZGU+IGFuZCA8Y29k ZT52YWx1ZTwvY29kZT4sIHRodXMgaWYgeW91ciB0ZXN0IHdhcyBmb3IgZXF1YWxpdHkgdGhl IHRlc3Qgd291bGQgcmV0dXJuICYjODIxNjt0cnVlJiM4MjE3Oy4gSGVyZSYjODIxNztzIGFu IGV4YW1wbGU6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmNvbXAxJnF1b3Q7IG9wZXJhdG9y PSZxdW90O2VxJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFyOmNvbXAyJnF1b3Q7IGZp bHRlcj0mcXVvdDsvW15hLXpBLVpdKy8mcXVvdDsKICAgICBmaWx0ZXJfb249JnF1b3Q7Zmll bGQsIHZhbHVlJnF1b3Q7Jmd0OwogICAvLyBJJiMzOTttIE5PVCBuZWNlc3NhcmlseSB2YWxp ZAombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB5b3VyIHVzZXIg dHlwZWQgaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IDxjb2RlPnNpdGUu Y29tL2FydGljbGU/Y29tcDE9MTIzNDUmYW1wO2NvbXAyPTY3ODkwPC9jb2RlPiB0aGUgcGx1 Z2luIHdvdWxkIGRvIHRoZSBmb2xsb3dpbmc6PC9wPgoKCTxvbD4KCQk8bGk+RmlsdGVyIGNv bXAxIGFuZCByZW1vdmUgYWxsIG5vbi1sZXR0ZXIgY2hhcmFjdGVyczwvbGk+CgkJPGxpPkZp bHRlciBjb21wMiBhbmQgcmVtb3ZlIGFsbCBub24tbGV0dGVyIGNoYXJhY3RlcnM8L2xpPgoJ CTxsaT5Mb29rIGF0IGNvbXAxICh3aGljaCBpcyBub3cgZW1wdHkpIGFuZCBjb21wMiAod2hp Y2ggaXMgYWxzbyBlbXB0eSksIHRoZW4gY29tcGFyZSB0aGVtPC9saT4KCTwvb2w+CgoJPHA+ WW91IGNhbiBzZWUgd2hhdCYjODIxNztzIGdvaW5nIHRvIGhhcHBlbjogdGhlIHRlc3QgcmVz dWx0IGlzIGdvaW5nIHRvIGJlICYjODIxNjt0cnVlJiM4MjE3OyBiZWNhdXNlICYjODIyMDtu b3RoaW5nJiM4MjIxOyBkb2VzIGluZGVlZCBlcXVhbCAmIzgyMjA7bm90aGluZyYjODIyMTsu IFNvIHRoZSBhY3Qgb2YgdGhlIHVzZXIgZW50ZXJpbmcgdHdvIG5vbnNlbnNpY2FsLCBjb21w bGV0ZWx5IG51bWVyaWMgc3RyaW5ncyBvZiBkYXRhIGhhcyBicm9rZW4geW91ciBsb2dpYy48 L3A+CgoJPHA+Rm9yIHRoaXMgcmVhc29uLCBpZiB5b3UgYXJlIGZpbHRlcmluZyBvbiBib3Ro IGZpZWxkIGFuZCB2YWx1ZSwgeW91IHNob3VsZCBwZXJmb3JtIDxlbT5hZGRpdGlvbmFsPC9l bT4gdGVzdHMgdG8gc2VlIGlmIGVpdGhlciBmaWVsZCAvIHZhbHVlIGlzIHNldCBhdCBhbGwu IFRoaXMgaXMgYmV0dGVyOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjpjb21wMSwgdXJsdmFy OmNvbXAxLCB1cmx2YXI6Y29tcDImcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSwgaXN1 c2VkLCBpc3VzZWQmcXVvdDsgdmFsdWU9JnF1b3Q7dXJsdmFyOmNvbXAyJnF1b3Q7CiAgICAg ZmlsdGVyPSZxdW90Oy9bXmEtekEtWl0rLyZxdW90OwogICAgIGZpbHRlcl9vbj0mcXVvdDtm aWVsZCwgdmFsdWUmcXVvdDsmZ3Q7CiAgIC8vIEkmIzM5O20gbm93IGFjdHVhbGx5IHZhbGlk CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNvIG5vdywgaWYgeW91 ciBmaWx0ZXIgcmVtb3ZlcyBldmVyeXRoaW5nIGZyb20gYm90aCA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiB2YXJzLCBpdCBzdGlsbCBmYWlscyB0aGUgJiM4MjE2O2hhcyB0aGUg dXNlciBlbnRlcmVkIGFueXRoaW5nIGF0IGFsbCYjODIxNzsgdGVzdHMgYmVjYXVzZSBhcyBm YXIgYXMgdGhlIHBsdWdpbiBpcyBjb25jZXJuZWQsIHRoZSB2aXNpdG9yIGhhcyBzdWJtaXR0 ZWQgcnViYmlzaC48L3A+CgoJPGgzIGlkPSJmZnVydGhlciI+R29pbmcgZnVydGhlcjwvaDM+ CgoJPHA+VGhlIGFib3ZlIGV4YW1wbGVzIGFsbCB1c2UgYSBzaW5nbGUgZmlsdGVyLiBZb3Ug Y2FuIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBmaWx0ZXIgYW5kIHJlcGxhY2VtZW50IGlmIHlv dSB3aXNoLCBqdXN0IGNvbW1hLWRlbGltaXQgdGhlbSAodW5sZXNzIHlvdSYjODIxNzt2ZSBv dmVycmlkZW4gdGhlIDxjb2RlPnBhcmFtX2RlbGltPC9jb2RlPiBvZiBjb3Vyc2UpLjwvcD4K Cgk8cD5XaGVuIHlvdSBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgZmlsdGVyLCB0aGV5IGlnbm9y ZSB0aGUgPGNvZGU+ZmlsdGVyX3R5cGU8L2NvZGU+IGF0dHJpYnV0ZSBiZWNhdXNlIHRoZSBm aWx0ZXJzIGFyZSBhcHBsaWVkIGluIG9yZGVyOyBvbmUgcGVyIHRlc3QuIElmIHlvdSB3aXNo IHRvIHNraXAgYSBwYXJ0aWN1bGFyIGZpZWxkIGFuZCBub3QgYXBwbHkgYSBmaWx0ZXIsIHNp bXBseSBsZWF2ZSBhbiBlbXB0eSBjb21tYSBhcyBhIHBsYWNlaG9sZGVyLCBlLmcuIDxjb2Rl PmZpbHRlcj0mcXVvdDssIC9bXmEtekEtWjAtOVwtXSsvLCAsIC9bXjAtOV0rLyZxdW90Ozwv Y29kZT4gd291bGQgYXBwbHkgdGhlIHJlc3BlY3RpdmUgZmlsdGVycyB0byB0aGUgMm5kIGFu ZCA0dGggdGVzdHMgb25seS48L3A+CgoJPGgyIGlkPSJlZzEiPkV4YW1wbGUgMTogc3RhbmRh cmQgY29tcGFyaXNvbjwvaDI+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtzZWN0aW9uLCBpZCZxdW90OwogICAg IG9wZXJhdG9yPSZxdW90O2JlZ2lucywgZ3QmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtsaW9u LCAxMiZxdW90OyZndDsKICZsdDtwJmd0O1RoZSBsaW9uIHNsZWVwcyB0b25pZ2h0Jmx0Oy9w Jmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O1Jvb29vb2FycnJyISAqQ0hPTVAq Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5DaGVj a3MgaWYgdGhlIGN1cnJlbnQgc2VjdGlvbiBuYW1lIGJlZ2lucyB3aXRoIHRoZSB3b3JkICYj ODIyMDtsaW9uJiM4MjIxOyBhbmQgdGhlIGFydGljbGUgSUQgaXMgZ3JlYXRlciB0aGFuIDEy LiBEaXNwbGF5cyAmIzgyMjA7VGhlIGxpb24gc2xlZXBzIHRvbmlnaHQmIzgyMjE7IGlmIGJv dGggY29uZGl0aW9ucyBhcmUgbWV0IG9yIGRpc3BsYXlzIHRoZSB0ZXh0ICYjODIyMDtSb29v b29hcnJyciEgPHN0cm9uZz48c3BhbiBjbGFzcz0iY2FwcyI+Q0hPTVA8L3NwYW4+PC9zdHJv bmc+JiM4MjIxOyBpZiBub3QuPC9wPgoKCTxoMiBpZD0iZWcyIj5FeGFtcGxlIDI6IG90aGVy IHR5cGVzIG9mIGZpZWxkPC9oMj4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3N1bW1hcnksIGNhdGVnb3J5MSwg dXJsdmFyOnBpYyZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2lzdXNlZCwgZXEsIGlzbnVt JnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7LCBhbmltYWwgLCZxdW90OyAmZ3Q7CiAgJmx0O3Am Z3Q7QWxsIG1hdGNoZWQmbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7 TWF0Y2ggZmFpbGVkJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5DaGVja3MgaWYgdGhlIGN1c3RvbSBmaWVsZCBsYWJlbGxlZCAmIzgyMjA7c3Vt bWFyeSYjODIyMTsgaGFzIHNvbWUgZGF0YSBpbiBpdCwgY2hlY2tzIGlmIGNhdGVnb3J5MSBl cXVhbHMgJiM4MjIwO2FuaW1hbCYjODIyMTsgYW5kIHRlc3RzIGlmIHRoZSB1cmx2YXIgPGNv ZGU+cGljPC9jb2RlPiBpcyBudW1lcmljIChlLmcuIDxjb2RlPj9waWM9NTwvY29kZT4pLjwv cD4KCgk8cD5JZiBhbGwgdGhlc2UgY29uZGl0aW9ucyBhcmUgbWV0IHRoZSAmIzgyMjA7QWxs IG1hdGNoZWQmIzgyMjE7IG1lc3NhZ2UgaXMgZGlzcGxheWVkLCBlbHNlIHRoZSAmIzgyMjA7 TWF0Y2ggZmFpbGVkJiM4MjIxOyBtZXNzYWdlIGlzIHNob3duLiBOb3RlIHRoYXQgPGNvZGU+ aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNudW08L2NvZGU+IGRvbiYjODIxNzt0IHRha2Ug YXJndW1lbnRzIGZvciA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIHRoZWlyIHBvc2l0aW9ucyBh cmUgaGVsZCBieSBlbXB0eSBjb21tYXMgKHRlY2huaWNhbGx5IHRoZSBsYXN0IGNvbW1hIGlz biYjODIxNzt0IG5lZWRlZCBidXQgaXQgaGVscHMga2VlcCBldmVyeXRoaW5nIG5lYXQgaWYg eW91IGFkZCBmdXJ0aGVyIHRlc3RzIGxhdGVyIG9uKS48L3A+CgoJPGgyIGlkPSJlZzMiPkV4 YW1wbGUgMzogdXNpbmcgJiM4MjE2O29yJiM4MjE3OyBsb2dpYzwvaDI+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVv dDthcnRpY2xlX2ltYWdlLCBzdnJ2YXI6SFRUUF9VU0VSX0FHRU5UJnF1b3Q7CiAgICAgb3Bl cmF0b3I9JnF1b3Q7ZXEsIGNvbnRhaW5zJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFy OnBpYywgU2FmYXJpJnF1b3Q7CiAgICAgbG9naWM9JnF1b3Q7b3ImcXVvdDsmZ3Q7CiAmbHQ7 cCZndDtDb21lIGludG8gbXkgcGFybG91ciZsdDsvcCZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7 CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lm Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q29tcGFyZXMgKGZvciBlcXVhbGl0eSkgdGhlIGN1 cnJlbnQgYXJ0aWNsZSBpbWFnZSBpZCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgdXJsIHZhcmlh YmxlIDxjb2RlPnBpYzwvY29kZT4gYW5kIGNoZWNrcyBpZiB0aGUgdmFsdWUgb2YgdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5UIHN0cmluZyBjb250YWlu cyAmIzgyMjA7U2FmYXJpJiM4MjIxOy4gVGhpcyBleGFtcGxlIHVzZXMgdGhlICYjODIxNjtv ciYjODIxNzsgbG9naWMsIGhlbmNlIGlmIDxlbT5laXRoZXI8L2VtPiBjb25kaXRpb24gaXMg bWV0IHRoZSAmIzgyMTY7Y29tZSBpbnRvIG15IHBhcmxvdXImIzgyMTc7IG1lc3NhZ2UgaXMg c2hvd24sIG90aGVyd2lzZSB0aGUgJiM4MjE2O25vdCB0b2RheSYjODIxNzsgbWVzc2FnZSBp cyBkaXNwbGF5ZWQuPC9wPgoKCTxoMiBpZD0iZWc0Ij5FeGFtcGxlIDQ6IHN1Yi1jYXRlZ29y eSB0ZXN0aW5nPC9oMj4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3BhcmVudDpMVkwyJnF1b3Q7CiAgICAgb3Bl cmF0b3I9JnF1b3Q7ZXEmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDttYW1tYWwmcXVvdDsmZ3Q7 CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtO b3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+T24gYSBjYXRlZ29yeSBsaXN0IHBhZ2UsIHRoaXMgY2hlY2tzIHRoZSAy bmQgc3ViLWNhdGVnb3J5IG9mIHRoZSB0cmVlIHRvIHNlZSBpZiBpdCBlcXVhbHMgJiM4MjIw O21hbW1hbCYjODIyMTsuIElmIGl0IGRvZXMsIHRoZSBhcnRpY2xlIGlzIGRpc3BsYXllZDsg aWYgbm90LCB0aGUgbWVzc2FnZSBpcyBzaG93biBpbnN0ZWFkLiBSZW1vdmluZyB0aGUgPGNv ZGU+OkxWTDI8L2NvZGU+ICYjODIxMjsgd2hpY2ggbWVhbnMgeW91IGNhbiBhbHNvIHJlbW92 ZSB0aGUgb3BlcmF0b3IgcGFyYW1ldGVyIHRvIGZvcmNlIHRoZSBjb21wYXJpc29uIHRvIGJl IHRoZSBkZWZhdWx0ICYjODIyMDtjb250YWlucyYjODIyMTsgJiM4MjEyOyBjaGVja3MgaWYg dGhlIGN1cnJlbnQgKGdsb2JhbCkgY2F0ZWdvcnkgaXMgYSBjaGlsZCBvZiAmIzgyMTY7bWFt bWFsJiM4MjE3OyBhdCBhbnkgbmVzdGluZyBsZXZlbC48L3A+CgoJPHA+TW92ZSB0aGUgZXhh bXBsZSBpbnRvIGFuIGFydGljbGUgb3IgYXJ0aWNsZSBGb3JtIGFuZCBjaGFuZ2UgdGhlIGZp ZWxkIHRvIDxjb2RlPnBhcmVudDpDQVQxPC9jb2RlPiB0byBzZWUgaWYgdGhlIGFydGljbGUm IzgyMTc7cyBjYXRlZ29yeTEgbWF0Y2hlcyAmIzgyMTY7bWFtbWFsJiM4MjE3OyBhdCBhbnkg bGV2ZWwsIG9yIHVzZSA8Y29kZT5maWVsZD0mcXVvdDtwYXJlbnQ6Q0FUMTpMVkwyJnF1b3Q7 PC9jb2RlPiB0byBjb21iaW5lIHRoZSBjaGVja3MuPC9wPgoKCTxoMiBpZD0iZWc1Ij5FeGFt cGxlIDU6IGRlZmluZWQvdW5kZWZpbmVkL2lzdXNlZC9pc2VtcHR5PC9oMj4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZx dW90O3VybHZhcjpwaWMsIHVybHZhcjpwYWdlJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7 Z3Q6TlVNLCB1bmRlZmluZWQmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDs/YXJ0aWNsZV9pbWFn ZSwmcXVvdDsmZ3Q7CiAmbHQ7cCZndDtZZXMgcGxlYXNlJmx0Oy9wJmd0OwombHQ7dHhwOmVs c2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4 cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UZXN0cyBpZiB0aGUgdXJsIHZhcmlh YmxlIDxjb2RlPnBpYzwvY29kZT4gaXMgc3RyaWN0bHkgbnVtZXJpY2FsbHkgZ3JlYXRlciB0 aGFuIHRoZSB2YWx1ZSBpbiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgPGNvZGU+YXJ0 aWNsZV9pbWFnZTwvY29kZT4gZmllbGQgYW5kIHRoYXQgdGhlIHVybCB2YXJpYWJsZSA8Y29k ZT5wYWdlPC9jb2RlPiBpcyBtaXNzaW5nIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+IGFkZHJlc3MuIENvbXBhcmUgdGhlIG91dGNvbWUgb2YgdGhpcyB0ZXN0IHdp dGggdGhlIG90aGVyIG9wZXJhdG9ycyB1c2luZyB0aGUgZm9sbG93aW5nIHRhYmxlIHdoZW4g dGVzdGluZyB0aGUgPGNvZGU+cGFnZTwvY29kZT4gdXJsdmFyOjwvcD4KCgk8dGFibGU+CgkJ PHRyPgoJCQk8dGg+PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gPC90aD4KCQkJPHRo PmRlZmluZWQgPC90aD4KCQkJPHRoPnVuZGVmaW5lZCA8L3RoPgoJCQk8dGg+aXN1c2VkIDwv dGg+CgkJCTx0aD5pc2VtcHR5IDwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgu cGhwP3BhZyA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4g PC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gPC90ZD4KCQkJ PHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNw YW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPiA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8 dGQ+IGluZGV4LnBocD9wYWdlPSA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj5U UlVFPC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bh bj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+IDwvdGQ+ CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IDwvdGQ+CgkJPC90cj4K CQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9NCA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNs YXNzPSJjYXBzIj5UUlVFPC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBz Ij5GQUxTRTwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwv c3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+IDwv dGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPGgyIGlkPSJlZzYiPkV4YW1wbGUgNjogc2hvcnQg Y2lyY3VpdGluZyB0aGUgPGNvZGU+ZmllbGQ8L2NvZGU+PC9oMj4KCgk8cD5QdXQgdGhpcyBp bnNpZGUgeW91ciA8Y29kZT5wbGFpbmxpbmtzPC9jb2RlPiBmb3JtIGFuZCBleGVjdXRlIGEg PGNvZGU+Jmx0O3R4cDpsaW5rbGlzdCAvJmd0OzwvY29kZT4gZnJvbSBhbiBhcnRpY2xlIHBh Z2UvZm9ybTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtpZCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90 O2dlOk5VTSwgbGU6TlVNJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFyOm1pbiwgdXJs dmFyOm1heCZxdW90OyZndDsKICAmbHQ7dHhwOmxpbmtkZXNjdGl0bGUgLyZndDsmbHQ7YnIg LyZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCB3aWxs IGxpc3Qgb25seSB0aGUgbGlua3MgdGhhdCBoYXZlIElEcyBiZXR3ZWVuIHRoZSA8Y29kZT5t aW48L2NvZGU+IGFuZCA8Y29kZT5tYXg8L2NvZGU+IHZhcmlhYmxlcyBzcGVjaWZpZWQgb24g dGhlIGFkZHJlc3MgYmFyLiBOb3RpY2UgdGhhdCB0aGUgaWQgZmllbGQgaXMgb25seSBsaXN0 ZWQgb25jZSBhbmQgZWFjaCBvcGVyYXRvciBpcyBhcHBsaWVkIHRvIGl0IGluIHR1cm4uPC9w PgoKCTxoMiBpZD0iZWc3Ij5FeGFtcGxlIDc6IGFscGhhbnVtZXJpYyB0ZXN0aW5nPC9oMj4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lm IGZpZWxkPSZxdW90O3VybHZhcjpwcm9kdWN0X2NvZGUmcXVvdDsKICAgICBvcGVyYXRvcj0m cXVvdDtpc2FsbnVtJnF1b3Q7Jmd0OwogICZsdDt0eHA6b3V0cHV0X2Zvcm0gZm9ybT0mcXVv dDtzaG93X3Byb2R1Y3QmcXVvdDsgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZn dDtJbnZhbGlkIHByb2R1Y3QgY29kZSZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8 L2NvZGU+PC9wcmU+CgoJPHA+VGVzdHMgdG8gc2VlIGlmIHRoZSBwcm9kdWN0X2NvZGUgPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgaXMgYWxwaGFudW1lcmljIGFu ZCBkaXNwbGF5cyBhIGZvcm0gaWYgc28uPC9wPgoKCTxoMiBpZD0iZWc4Ij5FeGFtcGxlIDg6 IGRpc3BsYXlpbmcgdXNlZCB2YWx1ZXM8L2gyPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnNvcnRf b3JkZXImcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtpbiZxdW90OwogICAgIHZhbHVlPSZx dW90O2lkL3ByaWNlL3NpemUvY29sb3VyJnF1b3Q7Jmd0OwogICZsdDtwJmd0O1NvcnRpbmcg dmFsdWVzIGJ5IHtzbWRfaWZfc29ydF9vcmRlcn0mbHQ7L3AmZ3Q7CiAgLy8gRG8gc29tZSBz dHVmZgombHQ7dHhwOmVsc2UgLyZndDsKICAvLyBVc2UgYSBkZWZhdWx0IHNvcnQsIG9yIHNo b3cgYW4gZXJyb3IgaGVyZQombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5CeSB1c2luZyB0aGUgcmVwbGFjZW1lbnQgdGFnIHtzbWRfaWZfc29ydF9vcmRlcn0geW91 IGhhdmUgcGx1Y2tlZCB0aGUgdmFsdWUgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gYmFyIGFuZCBpbnNlcnRlZCBpdCBpbnRvIHRoZSBhcnRpY2xlLiBVc2VmdWwg d2hlbiB1c2luZyB0aGUgPGNvZGU+aW48L2NvZGU+IG9yIDxjb2RlPm5vdGluPC9jb2RlPiBv cGVyYXRvcnMgYmVjYXVzZSwgYWx0aG91Z2ggeW91IGtub3cgdGhhdCB0aGUgZmllbGQgbWF0 Y2hlZCBvbmUgb2YgdGhlIHZhbHVlcyBpbiB5b3VyIGxpc3QsIHlvdSB3b3VsZCBvdGhlcndp c2Ugbm90IGtub3cgd2hpY2ggb25lIGhhcyBiZWVuIGdpdmVuIG9uIHRoZSBhZGRyZXNzIGJh ci4gSWYgeW91IHNwZWNpZnkgdGhlIDxjb2RlPmRlYnVnPC9jb2RlPiBhdHRyaWJ1dGUgaW4g dGFncyBsaWtlIHRoZXNlIHlvdSBjYW4gbW9yZSBlYXNpbHkgc2VlIHdoYXQgcmVwbGFjZW1l bnRzIGFyZSBhdmFpbGFibGUuPC9wPgoKCTxoMiBpZD0iZWc5Ij5FeGFtcGxlIDk6IHVzaW5n IHBocHZhcjwvaDI+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnBocCZndDsKZ2xvYmFsICRib2R5ZXg7CiRib2R5ZXggPSBleGNlcnB0KGFycmF5 KCkpLmJvZHkoYXJyYXkoKSk7CiZsdDsvdHhwOnBocCZndDsKJmx0O3R4cDpzbWRfaWYgZmll bGQ9JnF1b3Q7cGhwdmFyOmJvZHlleCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2d0OkxF TiZxdW90OwogICAgIHZhbHVlPSZxdW90OzMwMCZxdW90OyZndDsKICAmbHQ7cCZndDtZb3Ug YXJlIGEgYmlnIGJveSBhdCB7c21kX2lmX2xlbl9ib2R5ZXh9CiAgICAgY2hhcmFjdGVycyBs b25nISZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ SWYgcHV0IGluIGFuIGFydGljbGUgRm9ybSAoPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bh bj4gZGlyZWN0bHkgaW4gYW4gYXJ0aWNsZSBvciB5b3UmIzgyMTc7bGwgZ2V0IGFuIG91dCBv ZiBtZW1vcnkgZXJyb3IhKSwgdGhpcyBjaGVja3MgdGhlIGV4Y2VycHQgYW5kIGJvZHkgYW5k IHNob3dzIHRoZSBtZXNzYWdlIGlmIHRoZSBjb21iaW5lZCB0b3RhbCBsZW5ndGggaXMgbW9y ZSB0aGFuIDMwMCBjaGFyYWN0ZXJzLjwvcD4KCgk8aDIgaWQ9ImVnMTAiPkV4YW1wbGUgMTA6 IDxjb2RlPmJldHdlZW48L2NvZGU+IGFuZCA8Y29kZT5yYW5nZTwvY29kZT48L2gyPgoKCTxw PkNoZWNrIHRoYXQgdGhlIGdpdmVuIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBh cmFtcyA8Y29kZT5kYXk8L2NvZGU+IGFuZCA8Y29kZT5tb250aDwvY29kZT4gYXJlIHdpdGhp biByZWFzb25hYmxlIHRvbGVyYW5jZS4gTm90ZSB0aGF0IGl0JiM4MjE3O3Mgc3RpbGwgcG9z c2libGUgdG8gc3BlY2lmeSB0aGUgMzFzdCBGZWJydWFyeSBzbyB5b3UgbWF5IHJlcXVpcmUg ZXh0cmEgY2hlY2tzIGluIHRoZSBjb250YWluZXIuPC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFy OmRheSwgdXJsdmFyOm1vbnRoJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7YmV0d2Vlbiwg YmV0d2VlbiZxdW90OyB2YWx1ZT0mcXVvdDswLzMyLCAwLzEzJnF1b3Q7Jmd0OwogICAvLyBM aWtlbHkgYSB2YWxpZCBkYXRlIHN1cHBsaWVkCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPlRoaXMgaXMgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQsIGFuZCBwcm9i YWJseSBtb3JlIG9idmlvdXMgdG8gYW55b25lIGVsc2UgcmVhZGluZyB0aGUgY29kZTo8L3A+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9p ZiBmaWVsZD0mcXVvdDt1cmx2YXI6ZGF5LCB1cmx2YXI6bW9udGgmcXVvdDsKICAgICBvcGVy YXRvcj0mcXVvdDtyYW5nZSwgcmFuZ2UmcXVvdDsgdmFsdWU9JnF1b3Q7MS8zMSwgMS8xMiZx dW90OyZndDsKICAgLy8gTGlrZWx5IGEgdmFsaWQgZGF0ZSBzdXBwbGllZAombHQ7L3R4cDpz bWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB5b3Ugd2FudGVkIHRvIGZhY3RvciB0 aGUgeWVhciBpbiBhbmQgbWFrZSBzdXJlIHRoYXQgbm9ib2R5IHVzZWQgYSB5ZWFyIGxlc3Mg dGhhbiAxOTAwIG9yIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCB5ZWFyLCB0cnkgdGhpczo8 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnBo cCZndDsKZ2xvYmFsICR0aGlzeWVhcjsKJHRoaXN5ZWFyID0gZGF0ZSgmcXVvdDtZJnF1b3Q7 KTsKJmx0Oy90eHA6cGhwJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6 ZCwgdXJsdmFyOm0sIHVybHZhcjp5JnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7cmFuZ2Us IHJhbmdlLCByYW5nZSZxdW90OwogICAgIHZhbHVlPSZxdW90OzEvMzEsIDEvMTIsIDE5MDAv cGhwdmFyOnRoaXN5ZWFyJnF1b3Q7Jmd0OwogICAvLyBMaWtlbHkgYSB2YWxpZCBkYXRlIHN1 cHBsaWVkCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMiBpZD0iZWcx MSI+RXhhbXBsZSAxMTogcmVhZGluZyBtdWx0aXBsZSB2YWx1ZXMgZnJvbSBkaWZmZXJlbnQg cGxhY2VzPC9oMj4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtsdHVhZSZxdW90OyZndDs0MiZsdDsvdHhwOnZh cmlhYmxlJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6dHJpZ2dlciZx dW90OwogICAgIG9wZXJhdG9yPSZxdW90O2luJnF1b3Q7IHZhbHVlPSZxdW90OzMvMTUvMzYv dHhwdmFyOmx0dWFlLzE4MC8/c2VjcmV0JnF1b3Q7Jmd0OwogICAmbHQ7cCZndDtZb3UgZm91 bmQgb25lIG9mIHRoZSBtYWdpYyBudW1iZXJzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5GaXJzdCBvZiBhbGwgd2Ugc2V0IHVwIHRoZSBUeHAg dmFyaWFibGUsIHRoZW4gdGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g dmFyaWFibGUgPGNvZGU+dHJpZ2dlcjwvY29kZT4gYW5kIHNlZSBpZiBpdCBpcyBvbmUgb2Yg dGhlIG51bWJlcnMgbGlzdGVkIGluIHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRl LiBOb3RlIHRoYXQgd2UgaGF2ZSBzcGVjaWZpZWQgdGhlIFR4cCB2YXJpYWJsZSBhcyBvbmUg b2YgdGhlIG51bWJlcnMsIGFuZCBhbHNvIHRoZSBjb250ZW50cyBvZiB0aGUgY3VzdG9tIGZp ZWxkIGNhbGxlZCA8Y29kZT5zZWNyZXQ8L2NvZGU+LiBFc3NlbnRpYWxseSwgdGhpcyBidWls ZHMgdXAgdGhlIHZhbHVlIGF0dHJpYnV0ZSBmcm9tIGFsbCB0aGUgc291cmNlcyBhbmQgdGVz dHMgdGhlIGZpbmFsIHJlc3VsdC4gU28gaWYgc2VjcmV0IGhlbGQgdGhlIG51bWJlciA5NCwg dGhpcyBzbWRfaWYgdGFnIGNoZWNrcyBpZiB0cmlnZ2VyIGlzIG9uZSBvZiAzLCAxNSwgMzYs IDQyLCAxODAgb3IgOTQgYW5kIGRpc3BsYXlzIHRoZSBtZXNzYWdlIGlmIHNvLiBJZiA8Y29k ZT5zZWNyZXQ8L2NvZGU+IGluc3RlYWQgY29udGFpbmVkIDxjb2RlPjk0LzEwMS8yNDg8L2Nv ZGU+IHRoZXNlIHRocmVlIHZhbHVlcyB3b3VsZCBhbHNvIGJlIHRlc3RlZCBhcyBwYXJ0IG9m IHRoZSA8Y29kZT5pbjwvY29kZT4gb3BlcmF0b3IuPC9wPgoKCTxoMiBpZD0iZWcxMiI+RXhh bXBsZSAxMjogaXRlbSBjb3VudHM8L2gyPgoKCTxwPlRoaXMgY291bnRzIHRoZSBudW1iZXIg b2YgaXRlbXMgaW4gPGNvZGU+bXlfbGlzdDwvY29kZT4gYW5kIHRlc3RzIHRoZW0gYWdhaW5z dCB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+LiBOb3RlIHRoYXQgPGNvZGU+bGlzdF9kZWxpbTwv Y29kZT4gaXMgdXNlZCBiZXR3ZWVuIGxpc3QgaXRlbXMuPC9wPgoKPHByZT48Y29kZT4mbHQ7 dHhwOnZhcmlhYmxlIG5hbWU9JnF1b3Q7bXlfbGlzdCZxdW90OyZndDs4IC8gNDIgLyAxMSAv IDc1IC8gMTQmbHQ7L3R4cDp2YXJpYWJsZSZndDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1 b3Q7dHhwdmFyOm15X2xpc3QmcXVvdDsgb3BlcmF0b3I9JnF1b3Q7Z3Q6Q09VTlQmcXVvdDsg dmFsdWU9JnF1b3Q7MyZxdW90OyZndDsKICAgWWVzLCB0aGVyZSBhcmUge3NtZF9pZl92YWwx fSBvciBtb3JlIHZhbHVlcwogICAoYWN0dWFsbHk6IHtzbWRfaWZfY291bnRfbXlfbGlzdH0p CiZsdDt0eHA6ZWxzZSAvJmd0OwogIFRoZXJlIGFyZSBmZXdlciB0aGFuIHtzbWRfaWZfdmFs MX0gdmFsdWVzIGluIHRoZSBsaXN0LgombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8aDI+QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5j b20vY29udGFjdCI+U3RlZiBEYXdzb248L2E+LiBCYXNlZCBvbiBhbiBpZGVhIGJyZXdpbmcg aW4gdGhlIGJhY2sgb2YgbXkgbWluZCB3aGlsZSBoYWNraW5nIGNoc19pZl91cmx2YXIuPC9w PgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+ MzAgRGVjIDIwMDcgfCAwLjEwIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MzAgRGVj IDIwMDcgfCAwLjIwIHwgQWRkZWQgcGFyZW50IGNhdGVnb3J5IGNoZWNraW5nICh0aGFua3Mg dGhlX2dob3N0KTwvbGk+CgkJPGxpPjAyIEphbiAyMDA4IHwgMC4zMCB8IEFkZGVkIGRlZmlu ZWQvdW5kZWZpbmVkIGFuZCBzdHJpY3QgbnVtZXJpYyBjb21wYXJpc29uczwvbGk+CgkJPGxp PjA2IEphbiAyMDA4IHwgMC40MCB8IEFkZGVkIDxjb2RlPj88L2NvZGU+IG5vdGF0aW9uIHRv IGFsbG93IHRoZSB2YWx1ZSB0byByZWFkIFR4cCBmaWVsZHM7IGJldHRlciBxdW90ZSBzdXBw b3J0IChib3RoIHRoYW5rcyBOZWlsQSk8L2xpPgoJCTxsaT4wNiBKYW4gMjAwOCB8IDAuNDEg fCBGaXhlZCBsb3dlciBjYXNlIGZpZWxkIG5hbWVzIGFuZCB1bmRlZmluZWQgaW5kZXggZXJy b3IgKHRoYW5rcyBwZXRlcmopPC9saT4KCQk8bGk+MTQgSmFuIDIwMDggfCAwLjUwIHwgQWRk ZWQgY2FzZV9zZW5zaXRpdmUgb3B0aW9uOyBtYWRlICYjODIxNjtjb250YWlucyYjODIxNzsg dGhlIGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQmIzgyMTc7IHRlc3RzOyBpbXByb3ZlZCBo ZWxwIChhbGwgdGhhbmtzIHRoZV9naG9zdCk7IGFkZGVkIGRlbGltIG9wdGlvbnM8L2xpPgoJ CTxsaT4xNSBKYW4gMjAwOCB8IDAuNTEgfCBGaXhlZCBkZWZpbmVkL3VuZGVmaW5lZCBzeW50 YXggZXJyb3I7IHRpZ2h0ZW5lZCBpc3VzZWQvaXNlbXB0eSB0byBkaXN0aW5ndWlzaCB0aGVt IGZyb20gZGVmaW5lZC91bmRlZmluZWQ8L2xpPgoJCTxsaT4yNSBNYXkgMjAwOCB8IDAuNjAg fCBGaXhlZCAmIzgyMTY7dW5kZWZpbmVkIGluZGV4JiM4MjE3OyBlcnJvcnMgKHRoYW5rcyBy ZWRib3QgYW5kIHRoZV9naG9zdCkgOyBhZGRlZCBtb3JlIHByZXRleHQgdmFyaWFibGVzIDsg YWRkZWQgbW9yZSA8Y29kZT5pczwvY29kZT4gY2hlY2tzIChhbmQgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5OT1NQQUNFPC9zcGFuPiBtb2RpZmllcikgOyBhbGxvd2VkIGZpbGUgYW5kIGxp bmsgdGVzdHMgKGluY2x1ZGluZyBwYXJlbnQgY2F0ZWdvcmllcyk8L2xpPgoJCTxsaT4yNiBN YXkgMjAwOCB8IDAuNjEgfCBGaXhlZCBzdHVwaWQgb3ZlcnNpZ2h0IGluIGZpZWxkIG5hbWUg Z2VuZXJhdGlvbiB0byBhbGxvdyBhcmJpdHJhcnkgbmFtZXMgaW5zdGVhZCBvZiBmb3JjaW5n ICR0aGlzYXJ0aWNsZSAodGhhbmtzIHRvIEpvYW5hIENhcnZhbGhvIGZvciBsZWFkaW5nIG1l IHRvIHRoaXMpPC9saT4KCQk8bGk+MTEgSnVuIDIwMDggfCAwLjYyIHwgRml4ZWQgaW5jb3Jy ZWN0IHJlc3VsdCBpZiBldmFsKCkgaXMgZW1wdHkgOyBhZGRlZCA8c3BhbiBjbGFzcz0iY2Fw cyI+TlVMTDwvc3Bhbj4gZmllbGQgb2JqZWN0PC9saT4KCQk8bGk+MTAgU2VwIDIwMDggfCAw LjcwIHwgRml4ZWQgd2FybmluZyBpZiBlbXB0eSBjdXN0b20gZmllbGQgaW4gdmFsdWUgKHRo YW5rcyB2aXN1YWxwZW9wbGUpIDsgYWRkZWQgdHhwdmFyIHN1cHBvcnQgKHRoYW5rcyB0aGVf Z2hvc3QpIDsgYWRkZWQgdGhpc2ltYWdlIHN1cHBvcnQgKGZvciB0aGUgZnV0dXJlKSA7IGFk ZGVkIG9wZXJhdG9ycyA8Y29kZT5pbjwvY29kZT4sIDxjb2RlPm5vdGluPC9jb2RlPiBhbmQg dGhlIDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IGF0dHJpYnV0ZTsgZW5hYmxlZCByZXBsYWNl bWVudCB0YWdzIGZvciBtYXRjaGVkIHZhcmlhYmxlczwvbGk+CgkJPGxpPjAxIE9jdCAyMDA4 IHwgMC43MSB8IEZpeGVkIHRoZSBmaXggZm9yIGVtcHR5IGN1c3RvbSBmaWVsZHMgaW1wbGVt ZW50ZWQgaW4gMC43ICh0aGFua3MgbWFwdS92aXN1YWxwZW9wbGUpPC9saT4KCQk8bGk+MDEg T2N0IDIwMDggfCAwLjcyIHwgQWRkZWQgPGNvZGU+Ok5PVEFHUzwvY29kZT4gKHRoYW5rcyBt YXB1KTwvbGk+CgkJPGxpPjEzIE9jdCAyMDA4IHwgMC43MyB8IEFkZGVkIDxjb2RlPjpOT1NQ QUNFPC9jb2RlPiB0byA8Y29kZT5iZWdpbnM8L2NvZGU+LCA8Y29kZT5lbmRzPC9jb2RlPiBh bmQgPGNvZGU+Y29udGFpbnM8L2NvZGU+ICh0aGFua3MgbWFwdSksIGFkZGVkIHBocHZhciBz dXBwb3J0LCA8Y29kZT46TEVOPC9jb2RlPiBtb2RpZmllciBhbmQgbGVuZ3RoIHJlcGxhY2Vt ZW50IHRhZ3MgKGFsbCB0aGFua3MgdGhlX2dob3N0KTwvbGk+CgkJPGxpPjEzIE9jdCAyMDA4 IHwgMC43NCB8IEJ1ZyBmaXggdGhlIHNtZF9pZl8gbmFtZXMgb2YgdmFscyBhbmQgZmllbGRz IHRvIGF2b2lkIGNsYXNoZXMuIE5vdyBudW1lcmljYWxseSBpbmRleGVkPC9saT4KCQk8bGk+ MDIgRGVjIDIwMDggfCAwLjc1IHwgQWRkZWQgPGNvZGU+ZGl2aXNpYmxlPC9jb2RlPiBvcGVy YXRvciAodGhhbmtzIGdvbWVkaWEpIDsgYWxsb3cgc2hvcnQtY2lyY3VpdCBvZiBmaWVsZHMg KHRoYW5rcyByZWRib3QpPC9saT4KCQk8bGk+MjAgTWFyIDIwMDkgfCAwLjc2IHwgQWRkZWQg PGNvZGU+cG9zdHZhcjwvY29kZT4gZmllbGQgdHlwZSAodGhhbmtzIGtvc3RhczQ1KTwvbGk+ CgkJPGxpPjIyIE1hciAyMDA5IHwgMC43NyB8IEFkZGVkIDxjb2RlPjpUUklNPC9jb2RlPiBt b2RpZmllciAodGhhbmtzIGdvbWVkaWEpPC9saT4KCQk8bGk+MDUgQXByIDIwMDkgfCAwLjgw IHwgQWRkZWQgZmlsdGVyaW5nIGNhcGFiaWxpdHk8L2xpPgoJCTxsaT4yNiBTZXAgMjAwOSB8 IDAuODEgfCBBZGRlZCBwYXJlbnQgPGNvZGU+VFRMPC9jb2RlPiBhbmQgPGNvZGU+S0lEUzwv Y29kZT4gbW9kaWZpZXJzICh0aGFua3MgcGhvdG9ub21hZCkgOyBpbXByb3ZlZCBwYXJlbnQg ZGVidWcgb3V0cHV0PC9saT4KCQk8bGk+MDIgTWFyIDIwMTAgfCAwLjgyIHwgQWRkZWQgPGNv ZGU+YmV0d2VlbjwvY29kZT4gYW5kIDxjb2RlPnJhbmdlPC9jb2RlPiAodGhhbmtzIHNwZWVr ZSk8L2xpPgoJCTxsaT4wMiBNYXIgMjAxMCB8IDAuOTAgfCBJbnRlcm5hbCBjb2RlIHJlZmFj dG9yaXNhdGlvbiA7IGFsbG93ZWQgbXVsdGlwbGUgdmFsdWVzIHRvIGJlIHJlYWQgZnJvbSBt dWx0aXBsZSBzb3VyY2VzICh0aGFua3Mgc3BlZWtlKSA7IGVuaGFuY2VkIHJlcGxhY2VtZW50 IHRhZ3M8L2xpPgoJCTxsaT4yOCBKYW4gMjAxMiB8IDAuOTEgfCBGaXhlZCBwcmV0ZXh0IGNo ZWNrcyBmb3Igc2VjdGlvbi9jYXRlZ29yeSAodGhhbmtzIHNhY2NhZGUpIDsgZW5hYmxlZCBl eHBsaWNpdCBjaGVja3MgZm9yIHByZXRleHQsIGZpbGUsIGxpbmssIGltYWdlLCBhbmQgYXJ0 aWNsZSA7IGFkZGVkIDxjb2RlPnZhcl9wcmVmaXg8L2NvZGU+IHRvIGFsbG93IG5lc3Rpbmcg b2Ygc21kX2lmIHRhZ3M7IGFkZGVkIDxjb2RlPjpDT1VOVDwvY29kZT4gbW9kaWZpZXIgKHRo YW5rcyB0aGVfZ2hvc3QpIDsgYWRkZWQgPGNvZGU+OkVTQzwvY29kZT4gYW5kIDxjb2RlPjpF U0NBTEw8L2NvZGU+IG1vZGlmaWVycyA7IGZpeGVkIGNoZWNrcyBmb3IgZGVmaW5lZCAvIHVu ZGVmaW5lZDwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1Mg KioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdo dDoxLjUgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUl LzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNv bG9yOiAjZjBlNjhjOyBjb2xvcjojMzMzOyB9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9u dC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBkaXNwbGF5OmJsb2Nr OyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEg eyBmb250OiAyMnB4IEdlb3JnaWEsIHNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNl bnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7 IHBhZGRpbmc6MTBweCAwIDA7IGZvbnQ6IDE4cHggR2VvcmdpYSwgc2VyaWY7IH0KI3NtZF9o ZWxwIGgzIHsgZm9udDogYm9sZCAxM3B4IEdlb3JnaWEsIHNlcmlmOyBsZXR0ZXItc3BhY2lu ZzogMXB4OyBtYXJnaW46IDIwcHggMCAwOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9 CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTJweCBHZW9yZ2lhLCBzZXJpZjsgbGV0dGVy LXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyB9CiNzbWRfaGVs cCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQoj c21kX2hlbHAgdGFibGUgeyB3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5n LWJvdHRvbToxZW07IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfQojc21kX2hlbHAgdGQs ICNzbWRfaGVscCB0aCB7IGJvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtOyB9 CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIC5p bXBvcnRhbnQgeyBjb2xvcjpyZWQ7IH0KI3NtZF9oZWxwIGxpIHsgbWFyZ2luOjVweCAyMHB4 IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9wOjVweDsgfQojc21k X2hlbHAgZGwgZGQgeyBtYXJnaW46MnB4IDE1cHg7IH0KI3NtZF9oZWxwIGRsIGRkOmJlZm9y ZSB7IGNvbnRlbnQ6ICJcMjAyMlwwMGEwIjsgfQojc21kX2hlbHAgZGwgZGQgZGwgeyBwYWRk aW5nOiAwIDE1cHg7IH0KPC9zdHlsZT4KPCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0t PgoiO3M6MzoibWQ1IjtzOjMyOiI4MDQ1ZmI3YTYxOTc0YWNiYTliZTNmYmU4MTM0YzEwNCI7 fQ==