# Name: smd_query v0.41 # Type: Client side plugin # Generic database access via SQL # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjk6InNtZF9xdWVyeSI7czo2OiJhdXRob3IiO3M6MTE6IlN0 ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5j b20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC40MSI7czoxMToiZGVzY3JpcHRpb24iO3M6MzE6 IkdlbmVyaWMgZGF0YWJhc2UgYWNjZXNzIHZpYSBTUUwiO3M6NDoiY29kZSI7czoxMDgwMDoi ZnVuY3Rpb24gc21kX3F1ZXJ5KCRhdHRzLCAkdGhpbmc9JycpIHsNCglnbG9iYWwgJHRoaXNw YWdlLCAkcHJldGV4dCwgJHNtZF9xdWVyeV9wZ2luZm87DQoNCglleHRyYWN0KGxBdHRzKGFy cmF5KA0KCQknY29sdW1uJyA9PiAnJywNCgkJJ3RhYmxlJyA9PiAnJywNCgkJJ3doZXJlJyA9 PiAnJywNCgkJJ3F1ZXJ5JyA9PiAnJywNCgkJJ2Zvcm0nID0+ICcnLA0KCQkncGFnZWZvcm0n ID0+ICcnLA0KCQkncGFnZXZhcicgPT4gJ3BnJywNCgkJJ3BhZ2Vwb3MnID0+ICdiZWxvdycs DQoJCSdjb2xzZm9ybScgPT4gJycsDQoJCSdlc2NhcGUnID0+ICcnLA0KCQknc3RyaWN0Zmll bGRzJyA9PiAnMCcsDQoJCSdwcmVwYXJzZScgPT4gJzAnLA0KCQkndXJsZmlsdGVyJyA9PiAn JywNCgkJJ3VybHJlcGxhY2UnID0+ICcnLA0KCQknZGVmYXVsdHMnID0+ICcnLA0KCQknZGVs aW0nID0+ICcsJywNCgkJJ3BhcmFtZGVsaW0nID0+ICc6JywNCgkJJ3NpbGVudCcgPT4gJzAn LA0KCQknbW9kZScgPT4gJ2F1dG8nLCAvLyBhdXRvIGNob29zZXMgb25lIG9mIGlucHV0IChJ TlNFUlQvVVBEQVRFKSBvciBvdXRwdXQgKFFVRVJZKQ0KCQknY291bnQnID0+ICd1cCcsDQoJ CSdsaW1pdCcgPT4gMCwNCgkJJ29mZnNldCcgPT4gMCwNCgkJJ2hhc2hzaXplJyA9PiAnNjo1 JywNCgkJJ2JyZWFrJyA9PiAnJywNCgkJJ3dyYXB0YWcnID0+ICcnLA0KCQknbGFiZWwnID0+ ICcnLA0KCQknbGFiZWx0YWcnID0+ICcnLA0KCQknY2xhc3MnID0+ICcnLA0KCQknZGVidWcn ID0+ICcwJywNCgkpLCRhdHRzKSk7DQoNCgkvLyBHcmFiIHRoZSBmb3JtIG9yIGVtYmVkZGVk ICR0aGluZw0KCSR0aGluZyA9ICgkdGhpbmcpID8gJHRoaW5nIDogKCgkZm9ybSkgPyBmZXRj aF9mb3JtKCRmb3JtKSA6ICcnKTsNCgkkY29sc2Zvcm0gPSAoZW1wdHkoJGNvbHNmb3JtKSkg PyAnJyA6IGZldGNoX2Zvcm0oJGNvbHNmb3JtKTsNCgkkcGFnZWJpdCA9IGFycmF5KCk7DQoJ aWYgKCRwYWdlZm9ybSkgew0KCQkkcGFnZVBvc0FsbG93ZWQgPSBhcnJheSgiYmVsb3ciLCAi YWJvdmUiKTsNCgkJJHBhZ2luZyA9IDE7DQoJCSRwYWdlZm9ybSA9IGZldGNoX2Zvcm0oJHBh Z2Vmb3JtKTsNCgkJJHBhZ2Vwb3MgPSBzdHJfcmVwbGFjZSgnc21kXycsICcnLCAkcGFnZXBv cyk7DQoJCSRwYWdlcG9zID0gZG9fbGlzdCgkcGFnZXBvcywgJGRlbGltKTsNCgkJZm9yZWFj aCAoJHBhZ2Vwb3MgYXMgJHBhZ2VpdGVtKSB7DQoJCQkkcGFnZWJpdFtdID0gKGluX2FycmF5 KCRwYWdlaXRlbSwgJHBhZ2VQb3NBbGxvd2VkKSkgPyAkcGFnZWl0ZW0gOiAkcGFnZVBvc0Fs bG93ZWRbMF07DQoJCX0NCgl9DQoNCgkvLyBNYWtlIGEgdW5pcXVlIGhhc2ggdmFsdWUgZm9y IHRoaXMgaW5zdGFuY2Ugc28gdGhlIHF1ZXJpZXMgY2FuIGJlIHBhZ2VkIGluZGVwZW5kZW50 bHkNCgkkdW5pcSA9ICcnOw0KCSRtZDUgPSBtZDUoJGNvbHVtbi4kdGFibGUuJHdoZXJlLiRx dWVyeS4kZGVmYXVsdHMpOw0KCWxpc3QoJGhhc2hMZW4sICRoYXNoU2tpcCkgPSBleHBsb2Rl KCc6JywgJGhhc2hzaXplKTsNCglmb3IgKCRpZHggPSAwLCAkY250ID0gMDsgJGNudCA8ICRo YXNoTGVuOyAkY250KyssICRpZHggPSAoKCRpZHgrJGhhc2hTa2lwKSAlIHN0cmxlbigkbWQ1 KSkpIHsNCgkJJHVuaXEgLj0gJG1kNVskaWR4XTsNCgl9DQoNCgkkcGFnZXZhciA9ICgkcGFn ZXZhciA9PSAnU01EX1FVRVJZX1VOSVFVRV9JRCcpID8gJHVuaXEgOiAkcGFnZXZhcjsNCgkk dXJsZmlsdGVyID0gKCFlbXB0eSgkdXJsZmlsdGVyKSkgPyBkb19saXN0KCR1cmxmaWx0ZXIs ICRkZWxpbSkgOiAnJzsNCgkkdXJscmVwbGFjZSA9ICghZW1wdHkoJHVybHJlcGxhY2UpKSA/ IGRvX2xpc3QoJHVybHJlcGxhY2UsICRkZWxpbSkgOiAnJzsNCglpZiAoJGRlYnVnID4gMCkg ew0KCQllY2hvICIrKyBVUkwgRklMVEVSUyArKyI7DQoJCWRtcCgkdXJsZmlsdGVyKTsNCgkJ ZG1wKCR1cmxyZXBsYWNlKTsNCgl9DQoNCgkvLyBQcm9jZXNzIGFueSBkZWZhdWx0cw0KCSRz cGMgPSAoJHN0cmljdGZpZWxkcykgPyAwIDogMTsNCgkkZGVmYXVsdHMgPSBkb19saXN0KCRk ZWZhdWx0cywgJGRlbGltKTsNCgkkZGZsdHMgPSBhcnJheSgpOw0KCWZvcmVhY2ggKCRkZWZh dWx0cyBhcyAkaXRlbSkgew0KCQkkaXRlbSA9IGRvX2xpc3QoJGl0ZW0sICRwYXJhbWRlbGlt KTsNCgkJaWYgKCRpdGVtWzBdID09ICcnKSBjb250aW51ZTsNCgkJaWYgKGNvdW50KCRpdGVt KSA9PSAyKSB7DQoJCQkkZGZsdHNbJGl0ZW1bMF1dID0gc21kX3F1ZXJ5X3BhcnNlKCRpdGVt WzFdLCBhcnJheSgnJyksIGFycmF5KCcnKSwgYXJyYXkoJycpLCAkc3BjKTsNCgkJfQ0KCX0N Cg0KCWlmICgkZGVidWcgPiAwKSB7DQoJCWVjaG8gIisrIERFRkFVTFRTICsrIjsNCgkJZG1w KCRkZmx0cyk7DQoJfQ0KDQoJLy8gR2V0IGEgbGlzdCBvZiBmaWVsZHMgdG8gZXNjYXBlDQoJ JGVzY2FwZXMgPSBkb19saXN0KCRlc2NhcGUsICRkZWxpbSk7DQoJZm9yZWFjaCAoJGVzY2Fw ZXMgYXMgJGlkeCA9PiAkdmFsKSB7DQoJCWlmICgkdmFsID09ICcnKSB7DQoJCQl1bnNldCgk ZXNjYXBlc1skaWR4XSk7DQoJCX0NCgl9DQoNCgkkcnMgPSBhcnJheSgpOw0KCSRvdXQgPSBh cnJheSgpOw0KCSRjb2xvdXQgPSAkZmluYWxvdXQgPSBhcnJheSgpOw0KCSRwYWdlb3V0ID0g Jyc7DQoNCgkvLyBxdWVyeSBvdmVycmlkZXMgY29sdW1uL3RhYmxlL3doZXJlDQoJaWYgKCRx dWVyeSkgew0KCQkkcXVlcnkgPSBzbWRfcXVlcnlfcGFyc2UoJHF1ZXJ5LCAkZGZsdHMsICR1 cmxmaWx0ZXIsICR1cmxyZXBsYWNlLCAkc3BjKTsNCgkJJG1vZGUgPSAoJG1vZGUgPT0gJ2F1 dG8nKSA/ICgoc3RyaXBvcygkcXVlcnksICJTRUxFQ1QiKSA9PT0gMCkgPyAnb3V0cHV0JyA6 ICdpbnB1dCcpIDogJG1vZGU7DQoJCWlmICgkbW9kZSA9PSAnaW5wdXQnKSB7DQoJCQkkcnMg PSAoJHNpbGVudCkgPyBAc2FmZV9xdWVyeSgkcXVlcnksICRkZWJ1ZykgOiBzYWZlX3F1ZXJ5 KCRxdWVyeSwgJGRlYnVnKTsNCgkJfSBlbHNlIHsNCgkJCSRycyA9ICgkc2lsZW50KSA/IEBn ZXRSb3dzKCRxdWVyeSwgJGRlYnVnKSA6IGdldFJvd3MoJHF1ZXJ5LCAkZGVidWcpOw0KCQl9 DQoJfSBlbHNlIHsNCgkJaWYgKCRjb2x1bW4gJiYgJHRhYmxlKSB7DQoJCQkvLyBUT0RPOiBQ ZXJoYXBzIGRvU2xhc2goKSB0aGVzZT8NCgkJCSRjb2x1bW4gPSBzbWRfcXVlcnlfcGFyc2Uo JGNvbHVtbiwgJGRmbHRzLCAkdXJsZmlsdGVyLCAkdXJscmVwbGFjZSwgJHNwYyk7DQoJCQkk dGFibGUgPSBzbWRfcXVlcnlfcGFyc2UoJHRhYmxlLCAkZGZsdHMsICR1cmxmaWx0ZXIsICR1 cmxyZXBsYWNlLCAkc3BjKTsNCgkJCSR3aGVyZSA9IHNtZF9xdWVyeV9wYXJzZSgkd2hlcmUs ICRkZmx0cywgJHVybGZpbHRlciwgJHVybHJlcGxhY2UsICRzcGMpOw0KCQkJJHdoZXJlID0g KCR3aGVyZSkgPyAkd2hlcmUgOiAiMT0xIjsNCgkJCSRtb2RlID0gJ291dHB1dCc7DQoJCQkk cnMgPSAoJHNpbGVudCkgPyBAc2FmZV9yb3dzKCRjb2x1bW4sICR0YWJsZSwgJHdoZXJlLCAk ZGVidWcpIDogc2FmZV9yb3dzKCRjb2x1bW4sICR0YWJsZSwgJHdoZXJlLCAkZGVidWcpOw0K CQl9IGVsc2Ugew0KCQkJdHJpZ2dlcl9lcnJvcigiWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFz dCAxICdjb2x1bW4nIGFuZCBhICd0YWJsZScuIik7DQoJCX0NCgl9DQoNCglpZiAoJG1vZGUg PT0gJ291dHB1dCcpIHsNCgkJJG51bXJvd3MgPSBjb3VudCgkcnMpOw0KCQkkdHJ1ZVBhcnQg PSBFdmFsRWxzZSgkdGhpbmcsIDEpOw0KCQ0KCQlpZiAoJHJzKSB7DQoJCQlpZiAoJGRlYnVn ID4gMSkgew0KCQkJCWVjaG8gIisrIFFVRVJZIFJFU1VMVCBTRVQgKysiOw0KCQkJCWRtcCgk bnVtcm93cyAuICIgUk9XUyIpOw0KCQkJCWRtcCgkcnMpOw0KCQkJfQ0KCQ0KCQkJaWYgKCRs aW1pdCA+IDApIHsNCgkJCQkka2VlcHNhZmUgPSAkdGhpc3BhZ2U7DQoJCQkJJHRvdGFsID0g JG51bXJvd3MgLSAkb2Zmc2V0Ow0KCQkJCSRudW1QYWdlcyA9IGNlaWwoJHRvdGFsLyRsaW1p dCk7DQoJCQkJJHBnID0gKCFncHMoJHBhZ2V2YXIpKSA/IDEgOiBncHMoJHBhZ2V2YXIpOw0K CQkJCSRwZ29mZnNldCA9ICRvZmZzZXQgKyAoKCRwZyAtIDEpICogJGxpbWl0KTsNCgkJCQkv LyBzZW5kIHBhZ2luZyBpbmZvIHRvIHR4cDpuZXdlciBhbmQgdHhwOm9sZGVyDQoJCQkJJHBh Z2VvdXRbJ3BnJ10gPSAkcGc7DQoJCQkJJHBhZ2VvdXRbJ251bVBhZ2VzJ10gPSAkbnVtUGFn ZXM7DQoJCQkJJHBhZ2VvdXRbJ3MnXSA9ICRwcmV0ZXh0WydzJ107DQoJCQkJJHBhZ2VvdXRb J2MnXSA9ICRwcmV0ZXh0WydjJ107DQoJCQkJJHBhZ2VvdXRbJ2dyYW5kX3RvdGFsJ10gPSAk bnVtcm93czsNCgkJCQkkcGFnZW91dFsndG90YWwnXSA9ICR0b3RhbDsNCgkJCQkkdGhpc3Bh Z2UgPSAkcGFnZW91dDsNCgkJCX0gZWxzZSB7DQoJCQkJJHBnb2Zmc2V0ID0gJG9mZnNldDsN CgkJCX0NCgkNCgkJCSRycyA9IGFycmF5X3NsaWNlKCRycywgJHBnb2Zmc2V0LCAoKCRsaW1p dD09MCkgPyA5OTk5OSA6ICRsaW1pdCkpOw0KCQkJJHBhZ2Vyb3dzID0gY291bnQoJHJzKTsN CgkNCgkJCSRyZXBsYWNlbWVudHMgPSAkcmVwYWdlbWVudHMgPSAkY29scmVwbGFjZW1lbnRz ID0gYXJyYXkoKTsNCgkJCSRwYWdlX3Jvd2NudCA9ICgkY291bnQ9PSJ1cCIpID8gMCA6ICRw YWdlcm93cy0xOw0KCQkJJHFyeV9yb3djbnQgPSAoJGNvdW50PT0idXAiKSA/ICRwZ29mZnNl dC0kb2Zmc2V0IDogJG51bXJvd3MtJHBnb2Zmc2V0LTE7DQoJCQkkZmlyc3Rfcm93ID0gJHFy eV9yb3djbnQgKyAxOw0KCQkJZm9yZWFjaCAoJHJzIGFzICRyb3cpIHsNCgkJCQlmb3JlYWNo ICgkcm93IGFzICRjb2xpZCA9PiAkdmFsKSB7DQoJCQkJCWlmICgkcGFnZV9yb3djbnQgPT0g MCAmJiAkY29sc2Zvcm0pIHsNCgkJCQkJCSRjb2xyZXBsYWNlbWVudHNbJ3snLiRjb2xpZC4n fSddID0gJGNvbGlkOw0KCQkJCQl9DQoJCQkJCS8vIENvbnN0cnVjdCB0aGUgcmVwbGFjZW1l bnQgYXJyYXlzDQoJCQkJCSRyZXBsYWNlbWVudHNbJ3snLiRjb2xpZC4nfSddID0gKGluX2Fy cmF5KCRjb2xpZCwgJGVzY2FwZXMpID8gaHRtbHNwZWNpYWxjaGFycygkdmFsLCBFTlRfUVVP VEVTKSA6ICR2YWwpOw0KCQkJCQlpZiAoJHBhZ2Vfcm93Y250ID09ICgoJGNvdW50PT0idXAi KSA/ICRwYWdlcm93cy0xIDogMCkgJiYgJHBhZ2Vmb3JtICYmICRsaW1pdD4wKSB7DQoJCQkJ CQkkcHJldnBnID0gKCgkcGctMSkgPiAwKSA/ICRwZy0xIDogJyc7DQoJCQkJCQkkbmV4dHBn ID0gKCgkcGcrMSkgPD0gJG51bVBhZ2VzKSA/ICRwZysxIDogJyc7DQoJCQkJCQkkcmVwYWdl bWVudHNbJ3tzbWRfYWxscm93c30nXSA9ICR0b3RhbDsNCgkJCQkJCSRyZXBhZ2VtZW50c1sn e3NtZF9wYWdlc30nXSA9ICRudW1QYWdlczsNCgkJCQkJCSRyZXBhZ2VtZW50c1sne3NtZF9w cmV2cGFnZX0nXSA9ICRwcmV2cGc7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfdGhpc3Bh Z2V9J10gPSAkcGc7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfbmV4dHBhZ2V9J10gPSAk bmV4dHBnOw0KCQkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX3Jvd19zdGFydH0nXSA9ICRmaXJz dF9yb3c7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfcm93X2VuZH0nXSA9ICRxcnlfcm93 Y250ICsgMTsNCgkJCQkJCSRyZXBhZ2VtZW50c1sne3NtZF9yb3dzX3ByZXZ9J10gPSAoKCRw cmV2cGcpID8gJGxpbWl0IDogMCk7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfcm93c19u ZXh0fSddID0gKCgkbmV4dHBnKSA/ICgoJHFyeV9yb3djbnQrJGxpbWl0KzEpID4gJHRvdGFs ID8gJHRvdGFsLSRxcnlfcm93Y250LTEgOiAkbGltaXQpIDogMCk7DQoJCQkJCQkkcmVwYWdl bWVudHNbJ3tzbWRfcXVlcnlfdW5pcXVlX2lkfSddID0gJHVuaXE7DQoJCQkJCQkkc21kX3F1 ZXJ5X3BnaW5mbyA9ICRyZXBhZ2VtZW50czsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkcmVwbGFj ZW1lbnRzWyd7c21kX2FsbHJvd3N9J10gPSAoKCRsaW1pdD4wKSA/ICR0b3RhbCA6ICRudW1y b3dzLSRwZ29mZnNldCk7DQoJCQkJJHJlcGxhY2VtZW50c1sne3NtZF9yb3dzfSddID0gJHBh Z2Vyb3dzOw0KCQkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfcGFnZXN9J10gPSAoKCRsaW1pdD4w KSA/ICRudW1QYWdlcyA6IDEpOw0KCQkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfdGhpc3BhZ2V9 J10gPSAoKCRsaW1pdD4wKSA/ICRwZyA6IDEpOw0KCQkJCSRyZXBsYWNlbWVudHNbJ3tzbWRf dGhpc2luZGV4fSddID0gJHBhZ2Vfcm93Y250Ow0KCQkJCSRyZXBsYWNlbWVudHNbJ3tzbWRf dGhpc3Jvd30nXSA9ICRwYWdlX3Jvd2NudCArIDE7DQoJCQkJJHJlcGxhY2VtZW50c1sne3Nt ZF9jdXJzb3JpbmRleH0nXSA9ICRxcnlfcm93Y250Ow0KCQkJCSRyZXBsYWNlbWVudHNbJ3tz bWRfY3Vyc29yfSddID0gJHFyeV9yb3djbnQgKyAxOw0KCQkJCWlmICgkZGVidWcgPiAwKSB7 DQoJCQkJCWVjaG8gIisrIFJFUExBQ0VNRU5UUyArKyI7DQoJCQkJCWRtcCgkcmVwbGFjZW1l bnRzKTsNCgkJCQl9DQoJCQkJJG91dFtdID0gKCRwcmVwYXJzZSkgPyBzdHJ0cihwYXJzZSgk dHJ1ZVBhcnQpLCAkcmVwbGFjZW1lbnRzKSA6IHBhcnNlKHN0cnRyKCR0cnVlUGFydCwgJHJl cGxhY2VtZW50cykpOw0KCQkJCSRxcnlfcm93Y250ID0gKCRjb3VudD09InVwIikgPyAkcXJ5 X3Jvd2NudCsxIDogJHFyeV9yb3djbnQtMTsNCgkJCQkkcGFnZV9yb3djbnQgPSAoJGNvdW50 PT0idXAiKSA/ICRwYWdlX3Jvd2NudCsxIDogJHBhZ2Vfcm93Y250LTE7DQoJCQl9DQoJDQoJ CQlpZiAoJG91dCkgew0KCQkJCWlmICgkY29scmVwbGFjZW1lbnRzKSB7DQoJCQkJCSRjb2xv dXRbXSA9ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2UoJGNvbHNmb3JtKSwgJGNvbHJlcGxh Y2VtZW50cykgOiBwYXJzZShzdHJ0cigkY29sc2Zvcm0sICRjb2xyZXBsYWNlbWVudHMpKTsN CgkJCQl9DQoJCQkJaWYgKCRyZXBhZ2VtZW50cykgew0KCQkJCQkkcGFnZW91dCA9ICgkcHJl cGFyc2UpID8gc3RydHIocGFyc2UoJHBhZ2Vmb3JtKSwgJHJlcGFnZW1lbnRzKSA6IHBhcnNl KHN0cnRyKCRwYWdlZm9ybSwgJHJlcGFnZW1lbnRzKSk7DQoJCQkJfQ0KDQoJCQkJLy8gTWFr ZSB1cCB0aGUgZmluYWwgb3V0cHV0DQoJCQkJaWYgKGluX2FycmF5KCJhYm92ZSIsICRwYWdl Yml0KSkgew0KCQkJCQkkZmluYWxvdXRbXSA9ICRwYWdlb3V0Ow0KCQkJCX0NCgkJCQkkZmlu YWxvdXRbXSA9IGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3JhcChhcnJheV9tZXJn ZSgkY29sb3V0LCAkb3V0KSwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKTsNCgkJCQlpZiAo aW5fYXJyYXkoImJlbG93IiwgJHBhZ2ViaXQpKSB7DQoJCQkJCSRmaW5hbG91dFtdID0gJHBh Z2VvdXQ7DQoJCQkJfQ0KDQoJCQkJLy8gUmVzdG9yZSB0aGUgcGFnaW5nIG91dHNpZGUgdGhl IHBsdWdpbiBjb250YWluZXINCgkJCQlpZiAoJGxpbWl0ID4gMCkgew0KCQkJCQkkdGhpc3Bh Z2UgPSAka2VlcHNhZmU7DQoJCQkJfQ0KCQkJCXJldHVybiBqb2luKCcnLCAkZmluYWxvdXQp Ow0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIHBhcnNlKEV2YWxFbHNlKCR0aGluZywg MCkpOw0KCQl9DQoJfQ0KCXJldHVybiAnJzsNCn0NCg0KLy8gUmV0dXJucyBhIHN0cmluZyB3 aXRoIGFueSA/IHZhcmlhYmxlcyByZXBsYWNlZCB3aXRoIHRoZWlyIGdsb2JhbHMNCi8vIFVS TCBWYXJpYWJsZXMgYXJlIG9wdGlvbmFsbHkgcnVuIHRocm91Z2ggcHJlZ19yZXBsYWNlKCkg dG8gc2FuaXRpemUgdGhlbS4NCi8vICAkcGF0IGlzIGFuIGFycmF5IG9mIHJlZ2V4IHNlYXJj aCBwYXR0ZXJucw0KLy8gICRyZXAgaXMgYW4gYXJyYXkgb2YgcmVnZXggc2VhcmNoIHJlcGFs Y2VtZW50cyAoZGVmYXVsdCA9ICcnLCBpLmUuIHJlbW92ZSB3aGF0ZXZlciBtYXRjaGVzKQ0K ZnVuY3Rpb24gc21kX3F1ZXJ5X3BhcnNlKCRpdGVtLCAkZGZsdHM9YXJyYXkoJycpLCAkcGF0 PWFycmF5KCcnKSwgJHJlcD1hcnJheSgnJyksICRsYXg9dHJ1ZSkgew0KCWdsb2JhbCAkcHJl dGV4dCwgJHRoaXNhcnRpY2xlLCAkdGhpc2ltYWdlLCAkdGhpc2ZpbGUsICR0aGlzbGluaywg JHZhcmlhYmxlOw0KDQoJJGl0ZW0gPSBodG1sX2VudGl0eV9kZWNvZGUoJGl0ZW0pOw0KDQoJ Ly8gU29tZXRpbWVzIHBlc2t5IFVuaWNvZGUgaXMgbm90IGNvbXBpbGVkIGluLiBEZXRlY3Qg aWYgc28gYW5kIGZhbGwgYmFjayB0byBBU0NJSQ0KCWlmICghQHByZWdfbWF0Y2goJy9ccEwv dScsICdhJykpIHsNCgkJJG1vZFJFID0gKCRsYXgpID8gJy8oXD8pKFtBLVphLXowLTlfXC0g XSspLycgOiAnLyhcPykoW0EtWmEtejAtOV9cLV0rKS8nOw0KCX0gZWxzZSB7DQoJCSRtb2RS RSA9ICgkbGF4KSA/ICcvKFw/KShbXHB7TH1ccHtOfVxwe1BjfVxwe1BkfVxwe1pzfV0rKS8n IDogJy8oXD8pKFtccHtMfVxwe059XHB7UGN9XHB7UGR9XSspLyc7DQoJfQ0KDQoJJG51bU1v ZHMgPSBwcmVnX21hdGNoX2FsbCgkbW9kUkUsICRpdGVtLCAkbW9kcyk7DQoNCglmb3IgKCRt b2RDdHIgPSAwOyAkbW9kQ3RyIDwgJG51bU1vZHM7ICRtb2RDdHIrKykgew0KCQkkbW9kQ2hh ciA9ICRtb2RzWzFdWyRtb2RDdHJdOw0KCQkkbW9kSXRlbSA9IHRyaW0oJG1vZHNbMl1bJG1v ZEN0cl0pOw0KCQkkbG93aXRlbSA9IHN0cnRvbG93ZXIoJG1vZEl0ZW0pOw0KCQkkdXJsdmFy ID0gJHN2cnZhciA9ICcnOw0KDQoJCWlmIChncHMoJGxvd2l0ZW0pICE9ICcnKSB7DQoJCQkk dXJsdmFyID0gZG9TbGFzaChncHMoJGxvd2l0ZW0pKTsNCgkJCWlmICgkdXJsdmFyICYmICRw YXQpIHsNCgkJCQkkdXJsdmFyID0gcHJlZ19yZXBsYWNlKCRwYXQsICRyZXAsICR1cmx2YXIp Ow0KCQkJfQ0KCQl9DQoJCWlmIChzZXJ2ZXJTZXQoJG1vZEl0ZW0pICE9ICcnKSB7DQoJCQkk c3ZydmFyID0gZG9TbGFzaChzZXJ2ZXJTZXQoJG1vZEl0ZW0pKTsNCgkJCWlmICgkc3ZydmFy ICYmICRwYXQpIHsNCgkJCQkkc3ZydmFyID0gcHJlZ19yZXBsYWNlKCRwYXQsICRyZXAsICRz dnJ2YXIpOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKGlzc2V0KCR2YXJpYWJsZVskbG93aXRlbV0p ICYmICR2YXJpYWJsZVskbG93aXRlbV0gIT0gJycpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxh Y2UoJG1vZENoYXIuJG1vZEl0ZW0sICR2YXJpYWJsZVskbG93aXRlbV0sICRpdGVtKTsNCgkJ fSBlbHNlIGlmICgkc3ZydmFyICE9ICcnKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRt b2RDaGFyLiRtb2RJdGVtLCAkc3ZydmFyLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaXNzZXQo JHRoaXNpbWFnZVskbG93aXRlbV0pICYmICFlbXB0eSgkdGhpc2ltYWdlWyRsb3dpdGVtXSkp IHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzaW1h Z2VbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNmaWxlWyRs b3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlzZmlsZVskbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9 IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkdGhpc2ZpbGVbJGxvd2l0ZW1dLCAk aXRlbSk7DQoJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5rWyRsb3dpdGVtXSkgJiYgIWVt cHR5KCR0aGlzbGlua1skbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRt b2RDaGFyLiRtb2RJdGVtLCAkdGhpc2xpbmtbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxz ZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkbG93aXRlbSwgJHByZXRleHQpICYmICFlbXB0eSgk cHJldGV4dFskbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFy LiRtb2RJdGVtLCAkcHJldGV4dFskbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChp c3NldCgkdGhpc2FydGljbGVbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJHRoaXNhcnRpY2xlWyRs b3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0s ICR0aGlzYXJ0aWNsZVskbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmICgkdXJsdmFy ICE9ICcnKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAk dXJsdmFyLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaXNzZXQoJGRmbHRzWyRsb3dpdGVtXSkp IHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICRkZmx0c1sk bG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2Uo JG1vZENoYXIuJG1vZEl0ZW0sICRtb2RJdGVtLCAkaXRlbSk7DQoJCX0NCgl9DQoJcmV0dXJu ICRpdGVtOw0KfQ0KLy8gQ29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGNoZWNrIGlmIHRoZXJl J3MgYSBwcmV2L25leHQgcGFnZSBkZWZpbmVkLiBDb3VsZCBhbHNvIHVzZSBzbWRfaWYNCmZ1 bmN0aW9uIHNtZF9xdWVyeV9pZl9wcmV2KCRhdHRzLCAkdGhpbmcpIHsNCglnbG9iYWwgJHNt ZF9xdWVyeV9wZ2luZm87DQoNCgkkcmVzID0gJHNtZF9xdWVyeV9wZ2luZm8gJiYgJHNtZF9x dWVyeV9wZ2luZm9bJ3tzbWRfcHJldnBhZ2V9J10gIT0gJyc7DQoJcmV0dXJuIHBhcnNlKEV2 YWxFbHNlKHN0cnRyKCR0aGluZywgJHNtZF9xdWVyeV9wZ2luZm8pLCAkcmVzKSk7DQp9DQpm dW5jdGlvbiBzbWRfcXVlcnlfaWZfbmV4dCgkYXR0cywgJHRoaW5nKSB7DQoJZ2xvYmFsICRz bWRfcXVlcnlfcGdpbmZvOw0KDQoJJHJlcyA9ICRzbWRfcXVlcnlfcGdpbmZvICYmICRzbWRf cXVlcnlfcGdpbmZvWyd7c21kX25leHRwYWdlfSddICE9ICcnOw0KCXJldHVybiBwYXJzZShF dmFsRWxzZShzdHJ0cigkdGhpbmcsICRzbWRfcXVlcnlfcGdpbmZvKSwgJHJlcykpOw0KDQp9 IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZsYWdzIjtz OjE6IjAiO3M6NDoiaGVscCI7czozODc5NzoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5z bWRfcXVlcnk8L2gxPgoKCTxwPlRoZSBsYXppZXN0IHRhZyBldmVyISBBbGxvd3MgeW91IHRv IG1ha2UgYWQtaG9jIHF1ZXJpZXMgdG8gdGhlIGRhdGFiYXNlIGFuZCBwcm9jZXNzIHRoZSBy ZXN1bHRzLCByb3cgYnkgcm93LCBpbiBhIGZvcm0gb3IgY29udGFpbmVyLjwvcD4KCgk8aDI+ RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgc2ltcGxlIHF1ZXJpZXMgd2l0 aCBhIHJlZHVjZWQgc3ludGF4ICg8c3BhbiBjbGFzcz0iY2FwcyI+U0VMRUNUPC9zcGFuPiBj b2xzIDxzcGFuIGNsYXNzPSJjYXBzIj5GUk9NPC9zcGFuPiB0YWJsZSA8c3BhbiBjbGFzcz0i Y2FwcyI+V0hFUkU8L3NwYW4+IGNsYXVzZSkgb3IgeW91ciBvd24gY3VzdG9tIHF1ZXJpZXM8 L2xpPgoJCTxsaT5SZWFkIGluZm9ybWF0aW9uIGZyb20gYW55IHBhcnQgb2YgdGhlIGN1cnJl bnQgYXJ0aWNsZSwgaW1hZ2UgKHBsYW5uZWQpLCBmaWxlLCBsaW5rLCA8Y29kZT4mbHQ7dHhw OnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiBsaW5lLiBJZiBhbnkgZmllbGRzIGFyZSBtaXNzaW5nIHlvdSBjYW4gc3BlY2lmeSBhIGRl ZmF1bHQgdmFsdWU8L2xpPgoJCTxsaT5PcHRpb25hbGx5IGZpbHRlciB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gaW5wdXQgdXNpbmcgcmVndWxhciBleHByZXNzaW9ucywg Zm9yIHNhZmV0eTwvbGk+CgkJPGxpPkVhY2ggcm93IGNhbiBiZSBwYXNzZWQgdG8gYSBmb3Jt IChvciB0aGUgcGx1Z2luIGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIHRhZyB3aXRoIG9y IHdpdGhvdXQgPGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPikgdG8gZGlzcGxheSB0 aGUgcmVzdWx0czwvbGk+CgkJPGxpPkNvbHVtbiBoZWFkaW5ncyBtYXkgYmUgb3V0cHV0IHVz aW5nIGEgc2Vjb25kIGZvcm08L2xpPgoJCTxsaT5SZXN1bHQgc2V0cyBjYW4gYmUgcGFnaW5h dGVkLCB3aXRoIHN1cHBvcnQgZm9yIGEgcGFnaW5nIGZvcm08L2xpPgoJPC91bD4KCgk8aDI+ QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29udGFj dCI+U3RlZiBEYXdzb248L2E+PC9wPgoKCTxoMj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxh dGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVm PSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvOTc2L3NtZF9xdWVyeSI+dGV4dHBh dHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9z dyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFs bCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9y dW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MjcyNzkiPmZvcnVtIHRocmVh ZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3Ro ZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxwPlVuaW5zdGFsbCBieSBzaW1wbHkgZGVs ZXRpbmcgdGhlIHBsdWdpbiBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyBwYW5lLjwvcD4K Cgk8aDI+PGNvZGU+Jmx0O3R4cDpzbWRfcXVlcnkgLyZndDs8L2NvZGU+IHVzYWdlPC9oMj4K Cgk8cD5Vc2UgdGhpcyB0YWcgaW4gYW55IHBhZ2UsIGZvcm0sIGFydGljbGUsIGZpbGUsIGxp bmssIGV0YyBjb250ZXh0IHRvIGdyYWIgc3R1ZmYgZnJvbSB0aGUgZGF0YWJhc2UuIFRoZSBw bHVnaW4gY2FuIG9wZXJhdGUgaW4gb25lIG9mIHR3byBtb2Rlczo8L3A+CgoJPG9sPgoJCTxs aT5zaW1wbGUgbW9kZSBqdXN0IGFsbG93cyA8Y29kZT5TRUxFQ1Qgc3R1ZmYgRlJPTSB0YWJs ZSBXSEVSRSBjbGF1c2U8L2NvZGU+PC9saT4KCQk8bGk+YWR2YW5jZWQgbW9kZSB1c2VzIHRo ZSA8Y29kZT5xdWVyeTwvY29kZT4gYXR0cmlidXRlIHNvIHlvdSBjYW4gZGVzaWduIHlvdXIg b3duIHF1ZXJ5LiBJdCBjYW4gaW5jbHVkZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q09VTlQ8L3Nw YW4+ICgqKSwgam9pbnMsIGFueXRoaW5nOyBwZXJoYXBzIGV2ZW4gPHNwYW4gY2xhc3M9ImNh cHMiPklOU0VSVDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5VUERBVEU8L3NwYW4+ ICg/KSBhbHRob3VnaCBpdCYjODIxNztzIHVudGVzdGVkIGFuZCBsaWFibGUgdG8gZmxvb2Rp bmc8L2xpPgoJPC9vbD4KCgk8aDMgY2xhc3M9ImF0dHMgIiBpZD0iYXR0cmlidXRlcyI+QXR0 cmlidXRlczwvaDM+CgoJPGg0PlNpbXBsZSBxdWVyaWVzPC9oND4KCgk8dWwgY2xhc3M9ImF0 dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y29sdW1uPC9zcGFuPiA6IGNvbW1hLXNl cGFyYXRlZCBsaXN0IG9mIGNvbHVtbnMgdG8gcmV0cmlldmUgZnJvbSB0aGUgZGF0YWJhc2U8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dGFibGU8L3NwYW4+IDogbmFtZSBvZiB0 aGUgdGFibGUgdG8gcmV0cmlldmUgdGhlIGNvbHVtbnMgZnJvbSAoeWVzLCBub24tPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGFibGVzIGFyZSBhbHNvIHN1cHBvcnRlZCBpZiB0 aGV5IGFyZSBpbiB0aGUgc2FtZSBkYXRhYmFzZSA6LSk8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+d2hlcmU8L3NwYW4+IDogYW55IGV4dHJhIGNsYXVzZSB5b3Ugd2lzaCB0byBz cGVjaWZ5LiBEZWZhdWx0cyB0byAmIzgyMjA7dGhlIHdob2xlIGRhcm4gdGFibGUmIzgyMjE7 PC9saT4KCTwvdWw+CgoJPGg0PkFkdmFuY2VkIHF1ZXJpZXM8L2g0PgoKCTx1bD4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPnF1ZXJ5PC9zcGFuPiA6IGFueSBxdWVyeSB5b3UgbGlrZSBj YW4gYmUgdXNlZCBoZXJlLiBPdmVycmlkZXMgPGNvZGU+Y29sdW1uPC9jb2RlPiwgPGNvZGU+ dGFibGU8L2NvZGU+IGFuZCA8Y29kZT53aGVyZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+bW9kZTwvc3Bhbj4gOiB5b3Ugc2hvdWxkIG5vdCBuZWVkIHRvIGFsdGVy IHRoaXMgcGFyYW1ldGVyIGFzIGl0IGlzIHNldCB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0 aGUgcXVlcnkgdHlwZS4gSWYgeW91IGFyZSB1c2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+U0VM RUNUPC9zcGFuPiBzdGF0ZW1lbnRzLCB0aGUgbW9kZSBpcyBzZXQgdG8gPGNvZGU+b3V0cHV0 PC9jb2RlPjsgZm9yIGFueSBvdGhlciB0eXBlIG9mIHF1ZXJ5IChlLmcuIDxzcGFuIGNsYXNz PSJjYXBzIj5JTlNFUlQ8L3NwYW4+L1VQREFURSkgaXQgaXMgc2V0IHRvIDxjb2RlPmlucHV0 PC9jb2RlPi4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gbW9kZXMgaXMg dGhhdCBpZiBpdCBzZXQgdG8gPGNvZGU+aW5wdXQ8L2NvZGU+IHlvdSBjYW4gdXNlIHNtZF9x dWVyeSBhcyBhIHNlbGYtY2xvc2luZyB0YWcgYmVjYXVzZSBpdCBkb2VzIG5vdCB1c2UgdGhl IGZvcm0vY29udGFpbmVyIHRvIHBhcnNlIHRoZSByZXN1bHQgc2V0LiBDaGFuZ2UgdGhpcyBw YXJhbWV0ZXIgb25seSBpZiB0aGUgcGx1Z2luIGRldGVjdHMgdGhlIG1vZGUgd3JvbmdseSBv ciB5b3UgYXJlIGRvaW5nIHNvbWV0aGluZyB1bm9ydGhvZG94IHdpdGggeW91ciBxdWVyeS4g RGVmYXVsdDogPGNvZGU+YXV0bzwvY29kZT48L2xpPgoJPC91bD4KCgk8aDQ+Rm9ybXMgYW5k IHBhZ2luZzwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bh bj4gOiB0aGUgZm9ybSB0byB1c2UgdG8gcGFyc2UgZWFjaCByZXR1cm5lZCByb3cuIFNlZSA8 YSBocmVmPSIjcmVwbGFjZW1lbnRzIj5yZXBsYWNlbWVudHM8L2E+LiBJZiBub3Qgc3BlY2lm aWVkLCB0aGUgcGx1Z2luIHdpbGwgdXNlIGFueXRoaW5nIGNvbnRhaW5lZCBiZXR3ZWVuIGl0 cyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZzwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5jb2xzZm9ybTwvc3Bhbj4gOiBvcHRpb25hbCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9z cGFuPiBmb3JtIHRvIHBhcnNlIGFueSBoZWFkZXIgcm93IGNvbnRhaW5pbmcgY29sdW1uIG5h bWVzIChvZiBsaW1pdGVkIHVzZSk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cGFn ZWZvcm08L3NwYW4+IDogb3B0aW9uYWwgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4g Zm9ybSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxheW91dCBvZiBhbnkgcGFnaW5nIG5hdmlnYXRp b24gYW5kIHN0YXRpc3RpY3Mgc3VjaCBhcyBwYWdlIG51bWJlciwgcXVhbnRpdHkgb2YgcmVj b3JkcyBwZXIgcGFnZSwgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMsIGV0Yy48L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+cGFnZXBvczwvc3Bhbj4gOiB0aGUgcG9zaXRpb24gb2Yg dGhlIHBhZ2luZyBpbmZvcm1hdGlvbi4gT3B0aW9ucyBhcmUgPGNvZGU+YmVsb3c8L2NvZGU+ ICh0aGUgZGVmYXVsdCksIDxjb2RlPmFib3ZlPC9jb2RlPiwgb3IgYm90aCBvZiB0aGVtIHNl cGFyYXRlZCBieSA8Y29kZT5kZWxpbTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+cHJlcGFyc2U8L3NwYW4+IDogbm9ybWFsbHksIGFueSBjb250YWluZXIgb3IgZm9y bSB3aWxsIGhhdmUgaXRzIHJlcGxhY2VtZW50IHZhcmlhYmxlcyBzd2FwcGVkIGZvciBjb250 ZW50IGFuZCA8ZW0+dGhlbjwvZW0+IGl0IHdpbGwgYmUgcGFyc2VkIHRvIHByb2Nlc3MgYW55 IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhZ3MuIElmIHlvdSB3aXNoIHRvIHJl dmVyc2UgdGhpcyBvcmRlciBzbyB0aGF0IHRoZSBjb250YWluZXIgaXMgcGFyc2VkIGZpcnN0 IGJlZm9yZSB0aGUgcmVwbGFjZW1lbnRzIGFyZSBtYWRlLCBzcGVjaWZ5IDxjb2RlPnByZXBh cnNlPSZxdW90OzEmcXVvdDs8L2NvZGU+LiBWZXJ5IHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSA8 Y29kZT4mbHQ7dHhwOnlpZWxkIC8mZ3Q7PC9jb2RlPiB0YWcgKHNlZSA8YSBocmVmPSIjZWc5 Ij5leGFtcGxlIDk8L2E+KS4gRGVmYXVsdDogMDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5saW1pdDwvc3Bhbj4gOiBzaG93IHRoaXMgbWFueSByZXN1bHRzIHBlciBwYWdlLiBI YXMgbm8gYmVhcmluZyBvbiBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj4gPGNv ZGU+TElNSVQ8L2NvZGU+IHlvdSBtYXkgc2V0LiBTZXR0aW5nIGEgPGNvZGU+bGltaXQ8L2Nv ZGU+IGluIHRoZSBzbWRfcXVlcnkgdGFnIHN3aXRjaGVzIHBhZ2luZyBvbiBhdXRvbWF0aWNh bGx5IHNvIHlvdSBjYW4gdXNlIHRoZSA8Y29kZT4mbHQ7dHhwOm9sZGVyIC8mZ3Q7PC9jb2Rl PiBhbmQgPGNvZGU+Jmx0O3R4cDpuZXdlciAvJmd0OzwvY29kZT4gdGFncyBpbnNpZGUgeW91 ciA8Y29kZT5wYWdlZm9ybTwvY29kZT4gdG8gc3RlcCB0aHJvdWdoIGVhY2ggcGFnZSBvZiBy ZXN1bHRzLiBZb3UgbWF5IGFsc28gY29uc3RydWN0IHlvdXIgb3duIHBhZ2luZyAoc2VlIDxh IGhyZWY9IiNlZzExIj5leGFtcGxlIDExPC9hPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+b2Zmc2V0PC9zcGFuPiA6IHNraXAgdGhpcyBtYW55IHJvd3MgYmVmb3JlIG91dHB1 dHRpbmcgdGhlIHJlc3VsdHM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cGFnZXZh cjwvc3Bhbj4gOiBpZiB5b3UgYXJlIHB1dHRpbmcgYW4gc21kX3F1ZXJ5IG9uIHRoZSBzYW1l IHBhZ2UgYXMgYSBzdGFuZGFyZCBhcnRpY2xlIGxpc3QsIHRoZSBidWlsdC1pbiBuZXdlciBh bmQgb2xkZXIgdGFncyB3aWxsIGNsYXNoIHdpdGggdGhvc2Ugb2Ygc21kX3F1ZXJ5OyBjbGlj a2luZyBuZXh0L3ByZXYgd2lsbCBzdGVwIHRocm91Z2ggYm90aCB5b3VyIHJlc3VsdCBzZXQg YW5kIHlvdXIgYXJ0aWNsZSBsaXN0LiBTcGVjaWZ5IGEgZGlmZmVyZW50IHZhcmlhYmxlIG5h bWUgaGVyZSBzbyB0aGUgdHdvIGxpc3RzIGNhbiBiZSBuYXZpZ2F0ZWQgaW5kZXBlbmRlbnRs eSwgZS5nLiA8Y29kZT5wYWdldmFyPSZxdW90O3FwYWdlJnF1b3Q7PC9jb2RlPi4gTm90ZSB0 aGF0IGlmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHdpbGwgaGF2ZSB0byBnZW5lcmF0ZSB5b3Vy IG93biBjdXN0b20gbmV3ZXIvb2xkZXIgbGlua3MgKHNlZSA8YSBocmVmPSIjZWcxMSI+ZXhh bXBsZSAxMTwvYT4pIGFuZCB0aGUgPGEgaHJlZj0iI3NtZF9xaWYiPmNvbmRpdGlvbmFsIHRh Z3M8L2E+LiBZb3UgbWF5IGFsc28gdXNlIHRoZSBzcGVjaWFsIHZhbHVlIDxjb2RlPnBhZ2V2 YXI9JnF1b3Q7U01EX1FVRVJZX1VOSVFVRV9JRCZxdW90OzwvY29kZT4gd2hpY2ggd2lsbCBh c3NpZ24gdGhlIHBhZ2luZyB2YXJpYWJsZSB0byB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9m IHlvdXIgcXVlcnkuIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gdXNlIG11bHRpcGxlIHNtZF9x dWVyeSB0YWdzIG9uIGEgc2luZ2xlIHBhZ2UgYW5kIG5hdmlnYXRlIHRoZW0gaW5kZXBlbmRl bnRseSB1c2luZyB0aGUgc2FtZSA8Y29kZT5wYWdlZm9ybTwvY29kZT4gKHNlZSA8YSBocmVm PSIjZWcxMiI+ZXhhbXBsZSAxMjwvYT4gZm9yIGRldGFpbHMpLiBEZWZhdWx0OiA8Y29kZT5w ZzwvY29kZT48L2xpPgoJPC91bD4KCgk8aDQ+RmlsdGVyczwvaDQ+CgoJPHVsPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXRubSI+dXJsZmlsdGVyPC9zcGFuPiA6IGZpbHRlciA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiBpbnB1dCB3aXRoIHRoaXMgbGlzdCBvZiByZWd1bGFyIGV4 cHJlc3Npb25zIChlYWNoIHNlcGFyYXRlZCBieSA8Y29kZT5kZWxpbTwvY29kZT4pPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVybHJlcGxhY2U8L3NwYW4+IDogcmVwbGFjZSBl YWNoIGZpbHRlcmVkIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGVsZW1lbnQgbGlz dGVkIGluIDxjb2RlPnVybGZpbHRlcjwvY29kZT4gd2l0aCB0aGlzIGxpc3Qgb2YgcmVndWxh ciBleHByZXNzaW9ucyAoZWFjaCBzZXBhcmF0ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+KS4g SWYgbm90IHVzZWQsIGFueXRoaW5nIG1hdGNoaW5nIDxjb2RlPnVybGZpbHRlcjwvY29kZT4g d2lsbCBiZSByZW1vdmVkIGZyb20gYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IHZhcmlhYmxlcy4gU2VlIDxhIGhyZWY9IiNmaWx0ZXJpbmciPkZpbHRlcmluZyBhbmQgaW5q ZWN0aW9uPC9hPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWZhdWx0czwvc3Bh bj4gOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB2YWx1ZXMgdG8gdXNlIGluIHRoZSBldmVu dCBzb21lIGZpZWxkIHlvdSBzcGVjaWZpZWQgZG9lc24mIzgyMTc7dCBleGlzdC4gRWFjaCBk ZWZhdWx0IHNob3VsZCBiZSBnaXZlbiBhcyA8Y29kZT5uYW1lOiB2YWx1ZTwvY29kZT4gKHRo ZSA8Y29kZT46PC9jb2RlPiBpcyBjb25maWd1cmFibGUgdmlhIHRoZSA8Y29kZT5wYXJhbWRl bGltPC9jb2RlPiBhdHRyaWJ1dGUpLiBGb3IgZXhhbXBsZSA8Y29kZT5kZWZhdWx0cz0mcXVv dDtpZDogMSwgbXlfY2F0OiBtYW1tYWxzLCB1c2VyX3NlYzogP2RlZnNlYyZxdW90OzwvY29k ZT4gd291bGQgbWVhbiB0aGF0IGlmIHRoZSA8Y29kZT5pZDwvY29kZT4gZmllbGQgd2FzIGJs YW5rLCB0aGUgbnVtYmVyIDEgd291bGQgYmUgdXNlZDsgaWYgdGhlIHZhcmlhYmxlIDxjb2Rl Pm15X2NhdDwvY29kZT4gd2FzIGVtcHR5LCB0aGUgd29yZCA8Y29kZT5tYW1tYWxzPC9jb2Rl PiB3b3VsZCBiZSB1c2VkOyBhbmQgaWYgdGhlIDxjb2RlPnVzZXJfc2VjPC9jb2RlPiB2YXJp YWJsZSB3YXMgZW1wdHksIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZSBhcyBmb3VuZCBpbiB0aGUg dmFyaWFibGUgPGNvZGU+ZGVmc2VjPC9jb2RlPiAod2hpY2ggY291bGQgaGF2ZSBiZWVuIHNl dCB2aWEgYSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBlYXJsaWVyIGlu IHRoZSBwYWdlKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5lc2NhcGU8L3NwYW4+ IDogbGlzdCBvZiBjb2x1bW4gbmFtZXMgd2l0aCB3aGljaCB0byBlc2NhcGUgPHNwYW4gY2xh c3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVudGl0aWVzLiBVc2VmdWwgaWYgeW91IGhhdmUgcmV0 dXJuZWQgYm9keSBvciBleGNlcnB0IGJsb2NrcyB0aGF0IG1heSBjb250YWluIGFwb3N0cm9w aGVzIHRoYXQgY291bGQga2lsbCB0YWdzIGluc2lkZSB0aGUgc21kX3F1ZXJ5IGNvbnRhaW5l ci4gRGVmYXVsdD0mIzgyMTc7JiM4MjE2OzwvbGk+Cgk8L3VsPgoKCTxoND5UYWcvY2xhc3Mv Zm9ybWF0dGluZyBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5sYWJlbDwvc3Bhbj4gOiBsYWJlbCB0byBkaXNwbGF5IGFib3ZlIHRoZSBlbnRpcmUg b3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsdGFnPC9zcGFuPiA6 IHRoZSAoWClIVE1MIHRhZyB0byBzdXJyb3VuZCB0aGUgbGFiZWwgd2l0aC4gU3BlY2lmeSBp dCB3aXRob3V0IGFuZ2xlIGJyYWNrZXRzIChlLmcuIDxjb2RlPmxhYmVsdGFnPSZxdW90O2gz JnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+d3JhcHRhZzwv c3Bhbj4gOiB0aGUgKFgpSFRNTCB0YWcgdG8gc3Vycm91bmQgdGhlIGVudGlyZSBvdXRwdXQg KGUuZy4gPGNvZGU+d3JhcHRhZz0mcXVvdDt0YWJsZSZxdW90OzwvY29kZT4pPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6IGVhY2ggcm93IHdpbGwgYmUg d3JhcHBlZCB3aXRoIHRoaXMgdGFnIChlLmcuIDxjb2RlPmJyZWFrPSZxdW90O3RyJnF1b3Q7 PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y2xhc3M8L3NwYW4+IDog PHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBhcHBseSB0byBl YWNoIHJvdzwvbGk+Cgk8L3VsPgoKCTxoND5QbHVnaW4gY3VzdG9taXNhdGlvbjwvaDQ+CgoJ PHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c3RyaWN0ZmllbGRzPC9zcGFuPiA6IHdo ZW4gdXNpbmcgJiM4MjE2Oz8mIzgyMTc7IGZpZWxkcywgc3BhY2VzIGFyZSBhbGxvd2VkIGlu IGZpZWxkIG5hbWVzLiBTZXQgPGNvZGU+c3RyaWN0ZmllbGRzPSZxdW90OzEmcXVvdDs8L2Nv ZGU+IHRvIGZvcmJpZCBzcGFjZXMuIERlZmF1bHQ6IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBw YXR0ZXJucyBpbiA8Y29kZT51cmxmaWx0ZXI8L2NvZGU+IGFuZCA8Y29kZT51cmxyZXBsYWNl PC9jb2RlPi4gRGVmYXVsdDogY29tbWEgKDxjb2RlPiw8L2NvZGU+KTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj5wYXJhbWRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8g dXNlIGJldHdlZW4gbmFtZS12YWx1ZSBwYWlycyBpbiA8Y29kZT5kZWZhdWx0czwvY29kZT4u IERlZmF1bHQ6IGNvbG9uICg8Y29kZT46PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+aGFzaHNpemU8L3NwYW4+IDogKHNob3VsZCBub3QgYmUgbmVlZGVkKSB0aGUg cGx1Z2luIGFzc2lnbnMgYSAzMi1jaGFyYWN0ZXIsIHVuaXF1ZSByZWZlcmVuY2UgdG8gdGhl IGN1cnJlbnQgc21kX3htbCBiYXNlZCBvbiB5b3VyIHF1ZXJ5IGF0dHJpYnV0ZXMuIDxjb2Rl Pmhhc2hzaXplPC9jb2RlPiBnb3Zlcm5zIHRoZSBtZWNoYW5pc20gZm9yIG1ha2luZyB0aGlz IGxvbmcgcmVmZXJlbmNlIHNob3J0ZXIuIEl0IGNvbXByaXNlcyB0d28gbnVtYmVycyBzZXBh cmF0ZWQgYnkgYSBjb2xvbjsgdGhlIGZpcnN0IGlzIHRoZSBsZW5ndGggb2YgdGhlIHVuaXFl IElELCB0aGUgc2Vjb25kIGlzIGhvdyBtYW55IGNoYXJhY3RlcnMgdG8gc2tpcCBwYXN0IGVh Y2ggdGltZSBhIGNoYXJhY3RlciBpcyBjaG9zZW4uIEZvciBleGFtcGxlLCBpZiB0aGUgdW5p cXVlX3JlZmVyZW5jZSB3YXMgPGNvZGU+MGNmMjg1ODc5YmY5ZDZiODEyNTM5ZWI3NDhmYmM4 ZjY8L2NvZGU+IHRoZW4gPGNvZGU+aGFzaHNpemU9JnF1b3Q7Njo1JnF1b3Q7PC9jb2RlPiB3 b3VsZCBtYWtlIGEgNi1jaGFyYWN0ZXIgdW5pcXVlIElEIHVzaW5nIGV2ZXJ5IDV0aCBjaGFy YWN0ZXI7IGluIG90aGVyIHdvcmRzIDxjb2RlPjA1Zjg5ODwvY29kZT4uIElmIGF0IGFueSB0 aW1lLCB5b3UgJiM4MjIwO2ZhbGwgb2ZmJiM4MjIxOyB0aGUgZW5kIG9mIHRoZSBsb25nIHN0 cmluZywgdGhlIHBsdWdpbiB3cmFwcyBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0 cmluZyBhbmQgY29udGludWVzIGNvdW50aW5nLiBEZWZhdWx0OiA8Y29kZT42OjU8L2NvZGU+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNpbGVudDwvc3Bhbj4gOiBpZiB5b3Vy IHF1ZXJ5IGNvbnRhaW5zIGFuIGVycm9yICh3cm9uZyBjb2x1bW4gbmFtZSBvciBzb21lIG1h bGZvcm1lZCBpbnB1dCksIHRoZSBwbHVnaW4gd2lsbCBpc3N1ZSBhIDxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+IGVycm9yIG1lc3NhZ2UuIFVzaW5nIDxjb2RlPnNpbGVudD0mcXVv dDsxJnF1b3Q7PC9jb2RlPiB3aWxsIGF0dGVtcHQgdG8gaGlkZSB0aGlzIGVycm9yIG1lc3Nh Z2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y291bnQ8L3NwYW4+IDogQ2FuIGJl IGVpdGhlciAmIzgyMjA7dXAmIzgyMjE7ICh0aGUgZGVmYXVsdCkgb3IgJiM4MjIwO2Rvd24m IzgyMjE7LiBTZWUgPGEgaHJlZj0iI3JlcGxhY2VtZW50cyI+e3NtZF90aGlzcm93fTwvYT48 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZGVidWc8L3NwYW4+IDogc2V0IHRvIDEg dG8gc2hvdyBzb21lIGRlYnVnIG91dHB1dDsgdXNlIDIgdG8gc2hvdyBhIGJpdCBtb3JlIGRl dGFpbDwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBhdHRyaWJ1dGVzIDxjb2RlPnF1ZXJ5PC9jb2Rl PiwgPGNvZGU+Y29sdW1uPC9jb2RlPiwgPGNvZGU+dGFibGU8L2NvZGU+IGFuZCA8Y29kZT53 aGVyZTwvY29kZT4gY2FuIGNvbnRhaW4gcmVwbGFjZW1lbnRzIHRoZW1zZWx2ZXMgdG8gcmVh ZCB2YWx1ZXMgZnJvbSB0aGUgY3VycmVudCBjb250ZXh0LiBTcGVjaWZ5IHRoZSBmaWVsZCBu YW1lIHdpdGggYSA8Y29kZT4/PC9jb2RlPiBpbiBmcm9udCBvZiBpdCAoZS5nLiA8Y29kZT5x dWVyeT0mcXVvdDtTRUxFQ1QgKiBGUk9NIHR4cF9pbWFnZSBXSEVSRSBjYXRlZ29yeT0mIzM5 Oz9jYXRlZ29yeTEmIzM5OyBPUiBjYXRlZ29yeT0mIzM5Oz9jYXRlZ29yeTImIzM5OzwvY29k ZT4pIHdvdWxkIHNob3cgaW1hZ2VzIHRoYXQgaGFkIHRoZWlyIGNhdGVnb3J5IHNldCB0byBv bmUgb2YgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29yaWVzLjwvcD4KCgk8cD5UaGUgJiM4 MjE2Oz8mIzgyMTc7IGZpZWxkcyBjYW4gYmUgYW55IGl0ZW0gZnJvbSB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gdW5pdmVyc2UsIGluY2x1ZGluZyBhbnl0aGluZyBzZXQg aW4gYSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBvciBzb21lIHVzZXIt aW5wdXQgb24gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGFkZHJlc3MgYmFy LiBGaWVsZHMgYXJlIHByb2Nlc3NlZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOyBhcyBzb29u IGFzIGEgbWF0Y2hpbmcgZW50cnkgaXMgZm91bmQsIHRoZSByZXN0IGFyZSBub3QgY2hlY2tl ZDo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gLSZndDsg PGNvZGU+JF9TRVJWRVI8L2NvZGU+IHZhciAtJmd0OyBpbWFnZSAtJmd0OyBmaWxlIC0mZ3Q7 IGxpbmsgLSZndDsgZ2xvYmFsIGFydGljbGUgLSZndDsgY3VycmVudCBhcnRpY2xlIC0mZ3Q7 IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhciAtJmd0OyBkZWZhdWx0IHZhbHVl IC0mZ3Q7IHZlcmJhdGltICh3aXRob3V0ICYjODIxNjs/JiM4MjE3Oyk8L3A+CgoJPHA+VGhp cyBoaWVyYXJjaHkgYWxsb3dzIHNvbWUgZGVncmVlIG9mIHNhZmV0eTogc2luY2UgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdmFyaWFibGVzIGFyZSB1bHRpbWF0ZWx5IHNldCBi eSB5b3UsIHRoZXkgYXJlIGNoZWNrZWQgZmlyc3QsIHRoZW4gZ3JhZHVhbGx5IGxlc3Mgc3Bl Y2lmaWMgc3R1ZmYgaXMgY2hlY2tlZCB1bnRpbCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiB2YXJpYWJsZXMgYXJlIGNvbnNpZGVyZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZm9v ZCBjaGFpbi48L3A+CgoJPGgyIGNsYXNzPSJhdHRzICIgaWQ9InJlcGxhY2VtZW50cyI+UmVw bGFjZW1lbnQgdGFnczwvaDI+CgoJPHA+SW4geW91ciBvdXRwdXQgZm9ybSB5b3UgbWF5IHNw ZWNpZnkgYW55IGNvbHVtbiBuYW1lIHN1cnJvdW5kZWQgd2l0aCA8Y29kZT57fTwvY29kZT4g Y2hhcmFjdGVycyB0byBkaXNwbGF5IHRoYXQgZmllbGQuIFNvIGlmIHlvdXIgcXVlcnkgd2Fz IDxjb2RlPlNFTEVDVCBpZCwgbmFtZSwgY2F0ZWdvcnkgRlJPTSB0eHBfaW1hZ2UgV0hFUkUg ZXh0PSZxdW90Oy5qcGcmcXVvdDs8L2NvZGU+IHlvdSB3b3VsZCBoYXZlIHRoZSBmb2xsb3dp bmcgcmVwbGFjZW1lbnRzIGF2YWlsYWJsZTo8L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+e2lkfTwvc3Bhbj4gOiB0aGUgaW1hZ2UgSUQ8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+e25hbWV9PC9zcGFuPiA6IHRoZSBpbWFnZSBmaWxlbmFtZTwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57Y2F0ZWdvcnl9PC9zcGFuPiA6IHRoZSBpbWFnZSBj YXRlZ29yeTwvbGk+Cgk8L3VsPgoKCTxwPkp1c3QgcHV0IHRob3NlIG5hbWVzIGludG8geW91 ciA8Y29kZT5mb3JtPC9jb2RlPiBhbW9uZyBvdGhlciBub3JtYWwgPHNwYW4gY2xhc3M9ImNh cHMiPkhUTUw8L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhZ3Ms IGFuZCB0aGUgcmVsZXZhbnQgdmFsdWUgZnJvbSB0aGF0IHJvdyB3aWxsIGJlIGRpc3BsYXll ZC4gVGhlIHJlcGxhY2VtZW50cyBob25vdXIgYW55IDxjb2RlPkFTPC9jb2RlPiBzdGF0ZW1l bnQgeW91IG1heSBlbXBsb3kgdG8gcmVuYW1lIHRoZW0uPC9wPgoKCTxwPkluIGFkZGl0aW9u LCB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50cyBhcmUgYWRkZWQgdG8gZWFjaCByb3c6PC9w PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfYWxscm93c308L3NwYW4+ IDogdGhlIHRvdGFsIG51bWJlciBvZiByb3dzIGluIHRoZSByZXN1bHQgc2V0PHN1cCBjbGFz cz0iZm9vdG5vdGUiPjxhIGhyZWY9IiNmbjY4ODA2MDg2ODRiNTJmNmY3ZGVjNTEiPjE8L2E+ PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcm93c308L3NwYW4+ IDogdGhlIHRvdGFsIG51bWJlciBvZiByb3dzIHZpc2libGUgb24gdGhpcyBwYWdlPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcGFnZXN9PC9zcGFuPiA6IHRoZSB0b3Rh bCBudW1iZXIgb2YgcGFnZXMgaW4gdGhpcyByZXN1bHQgc2V0PHN1cCBjbGFzcz0iZm9vdG5v dGUiPjxhIGhyZWY9IiNmbjY4ODA2MDg2ODRiNTJmNmY3ZGVjNTEiPjE8L2E+PC9zdXA+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfdGhpc3BhZ2V9PC9zcGFuPiA6IHRo ZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGJlaW5nIHZpZXdlZDxzdXAgY2xhc3M9ImZvb3Rub3Rl Ij48YSBocmVmPSIjZm42ODgwNjA4Njg0YjUyZjZmN2RlYzUxIj4xPC9hPjwvc3VwPjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3RoaXNyb3d9PC9zcGFuPiA6IHRoZSBj dXJyZW50IHJvdyBudW1iZXIgb24gdGhpcyBwYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPntzbWRfdGhpc2luZGV4fTwvc3Bhbj4gOiB0aGUgY3VycmVudCByb3cgbnVtYmVy ICh6ZXJvLWJhc2VkKSBvbiB0aGlzIHBhZ2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+e3NtZF9jdXJzb3J9PC9zcGFuPiA6IHRoZSBjdXJyZW50IHJvdyBudW1iZXIgZnJvbSB0 aGUgc3RhcnQgb2YgdGhlIHJlc3VsdCBzZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+e3NtZF9jdXJzb3JpbmRleH08L3NwYW4+IDogdGhlIGN1cnJlbnQgcm93IG51bWJlciBm cm9tIHRoZSBzdGFydCBvZiB0aGUgcmVzdWx0IHNldCAoemVyby1iYXNlZCk8L2xpPgoJPC91 bD4KCgk8cCBpZD0iZm42ODgwNjA4Njg0YjUyZjZmN2RlYzUxIiBjbGFzcz0iZm9vdG5vdGUi PjxzdXA+MTwvc3VwPiBUaGVzZSB0aHJlZSBpdGVtcyBhcmUgYWxzbyBhdmFpbGFibGUgaW4g eW91ciBkZXNpZ25hdGVkIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPi4gVGhlIHBhZ2Vmb3JtIGNh biBhbHNvIHV0aWxpc2UgdGhlc2UgZXh0cmEgcmVwbGFjZW1lbnRzOjwvcD4KCgk8dWw+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZXZwYWdlfTwvc3Bhbj4gOiB0aGUgcHJl dmlvdXMgcGFnZSBudW1iZXIgKGVtcHR5IGlmIG9uIGZpcnN0IHBhZ2UpPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbmV4dHBhZ2V9PC9zcGFuPiA6IHRoZSBuZXh0IHBh Z2UgbnVtYmVyIChlbXB0eSBpZiBvbiBsYXN0IHBhZ2UpPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPntzbWRfcm93X3N0YXJ0fTwvc3Bhbj4gOiB0aGUgZmlyc3Qgcm93IG51bWJl ciBiZWluZyBkaXNwbGF5ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9y b3dfZW5kfTwvc3Bhbj4gOiB0aGUgbGFzdCByb3cgbnVtYmVyIGJlaW5nIGRpc3BsYXllZDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3Jvd3NfcHJldn08L3NwYW4+IDog dGhlIG51bWJlciBvZiByb3dzIG9uIHRoZSBwcmV2aW91cyBwYWdlLiBXaWxsIGVpdGhlciBi ZSB0aGUgdmFsdWUgb2YgeW91ciA8Y29kZT5saW1pdDwvY29kZT4sIG9yIDAgaWYgb24gdGhl IGZpcnN0IHBhZ2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9yb3dzX25l eHR9PC9zcGFuPiA6IHRoZSBudW1iZXIgb2Ygcm93cyBvbiB0aGUgbmV4dCBwYWdlPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcXVlcnlfdW5pcXVlX2lkfTwvc3Bhbj4g OiB0aGUgdW5pcXVlIElEIGFzc2lnbmVkIHRvIHRoaXMgc21kX3F1ZXJ5IHRhZyAoc2VlIHRo ZSA8Y29kZT5oYXNoc2l6ZTwvY29kZT4gYXR0cmlidXRlIGFuZCA8YSBocmVmPSIjZWcxMiI+ ZXhhbXBsZSAxMjwvYT4gZm9yIG1vcmUpPC9saT4KCTwvdWw+CgoJPHA+VGhlc2UgYXJlIHVz ZWZ1bCBmb3IgdGFibGVzIHRvIHNob3cgcm93IG51bWJlcnMsIGJ1dCBjYW4gYWxzbyBiZSB1 c2VkIGZvciBwYWdpbmF0aW9uIG9yIGNhbiBiZSB0ZXN0ZWQgd2l0aCBzbWRfaWYgdG8gdGFr ZSBhY3Rpb24gZnJvbSB3aXRoaW4geW91ciBmb3JtLiA8Y29kZT57c21kX3RoaXNyb3d9PC9j b2RlPiwgPGNvZGU+e3NtZF90aGlzaW5kZXh9PC9jb2RlPiwgPGNvZGU+e3NtZF9jdXJzb3J9 PC9jb2RlPiwgYW5kIDxjb2RlPntzbWRfY3Vyc29yaW5kZXh9PC9jb2RlPiBjb3VudCB1cCBv ciBkb3duIGRlcGVuZGluZyBvbiB0aGUgPGNvZGU+Y291bnQ8L2NvZGU+IGF0dHJpYnV0ZSAo PGNvZGU+e3NtZF9yb3dfc3RhcnR9PC9jb2RlPiBhbmQgPGNvZGU+e3NtZF9yb3dfZW5kfTwv Y29kZT4gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHkpLjwvcD4KCgk8aDIgaWQ9InNtZF9xaWYi Pjxjb2RlPiZsdDt0eHA6c21kX3F1ZXJ5X2lmX3ByZXYmZ3Q7IC8gJmx0O3R4cDpzbWRfcXVl cnlfaWZfbmV4dCZndDs8L2NvZGU+PC9oMj4KCgk8cD5Vc2UgdGhlc2UgY29udGFpbmVyIHRh Z3MgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgbmV4dCBvciBwcmV2aW91cyBwYWdlIGFu ZCB0YWtlIGFjdGlvbiBpZiBzby4gQ2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgPGNvZGU+cGFn ZWZvcm08L2NvZGU+LCB0aHVzIGFsbCA8YSBocmVmPSIjcmVwbGFjZW1lbnRzIj5wYWdpbmcg cmVwbGFjZW1lbnQgdmFyaWFibGVzPC9hPiBhcmUgYXZhaWxhYmxlIGluc2lkZSB0aGVzZSB0 YWdzLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0 eHA6c21kX3F1ZXJ5X2lmX3ByZXYmZ3Q7UHJldmlvdXMgcGFnZSZsdDsvdHhwOnNtZF9xdWVy eV9pZl9wcmV2Jmd0OwombHQ7dHhwOnNtZF9xdWVyeV9pZl9uZXh0Jmd0O05leHQgcGFnZSZs dDsvdHhwOnNtZF9xdWVyeV9pZl9uZXh0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2VlIDxh IGhyZWY9IiNlZzExIj5leGFtcGxlIDExPC9hPiBmb3IgbW9yZS48L3A+CgoJPGgyIGlkPSJm aWx0ZXJpbmciPkZpbHRlcmluZyBhbmQgaW5qZWN0aW9uPC9oMj4KCgk8cD5BZnRlciBncmVh dCBkZWxpYmVyYXRpb24sIGFjY2VzcyB0byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gbGluZSBoYXMgYmVlbiBncmFudGVkIHNvIHlvdSBtYXkgZW1wbG95IHVzZXItZW50 ZXJlZCBkYXRhIGluIHlvdXIgcXVlcmllcywgYWxsb3dpbmcgY29tcGxldGUgZmxleGliaWxp dHkgZm9yIHlvdXIgdXNlciBiYXNlLiBIb3dldmVyLCBhcyBQZXRlciBQYXJrZXImIzgyMTc7 cyBjb25zY2llbmNlIG1pZ2h0IHNheTo8L3A+CgoJPGJsb2NrcXVvdGU+CgkJPHA+V2l0aCBn cmVhdCBwb3dlciBjb21lcyBncmVhdCByZXNwb25zaWJpbGl0eTwvcD4KCTwvYmxvY2txdW90 ZT4KCgk8cD5Ob3QgZXZlcnlib2R5IG91dCB0aGVyZSBpcyB0cnVzdHdvcnRoeSBzbyBoZWVk IHRoaXMgd2FybmluZzogPHN0cm9uZz5Bc3N1bWUgPHNwYW4gY2xhc3M9ImNhcHMiPkFMTDwv c3Bhbj4gdXNlciBpbnB1dCBpcyB0YWludGVkPC9zdHJvbmc+LiBDaGVjayBldmVyeXRoaW5n LiBJZiB5b3Ugd2FudCB0byBrbm93IG1vcmUgYWJvdXQgd2hhdCBwZW9wbGUgY2FuIGRvIHdp dGggYWNjZXNzIHRvIG9uZSBzaW1wbGUgcG9ydGlvbiBvZiB5b3VyIDxzcGFuIGNsYXNzPSJj YXBzIj5TUUw8L3NwYW4+IHF1ZXJ5LCBHb29nbGUgZm9yICYjODIxNjs8c3BhbiBjbGFzcz0i Y2FwcyI+U1FMPC9zcGFuPiBpbmplY3Rpb24mIzgyMTc7LjwvcD4KCgk8cD5Gb3IgdGhvc2Ug c3RpbGwgcmVhZGluZywgdGhlIGdvb2QgbmV3cyBpcyB0aGF0IHRoZSBwbHVnaW4gZG9lcyBl dmVyeXRoaW5nIGl0IGNhbiB0byBwcmUtZmlsdGVyIHN0dWZmIG9uIHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lIGJlZm9yZSBpdCBnZXRzIHRvIHRoZSBxdWVyeS4g VGhpcyBzaG91bGQgbWFrZSB5b3VyIHVzZXIgaW5wdXQgc2FmZSBlbm91Z2gsIGJ1dCBmb3Ig dGhlIHBhcmFub2lkIChvciBzZW5zaWJsZSkgdGhlcmUgYXJlIHR3byBhdHRyaWJ1dGVzIHlv dSBjYW4gdXNlIHRvIGNsYW1wIGRvd24gYWxsb3dhYmxlIHVzZXIgaW5wdXQuIElmIHlvdSBr bm93IGFueXRoaW5nIGFib3V0IDxhIGhyZWY9Imh0dHA6Ly93d3cucmVndWxhci1leHByZXNz aW9ucy5pbmZvL3F1aWNrc3RhcnQuaHRtbCI+cmVndWxhciBleHByZXNzaW9uczwvYT4gb3Ig YXJlIGZhbWlsaWFyIHdpdGggdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IGZ1 bmN0aW9uIDxhIGhyZWY9Imh0dHA6Ly91azIucGhwLm5ldC9wcmVnX3JlcGxhY2UiPnByZWdf cmVwbGFjZSgpPC9hPiB0aGVuIHlvdSYjODIxNztsbCBiZSByaWdodCBhdCBob21lIGJlY2F1 c2UsIHB1dCBzaW1wbHksIHlvdSBjYW4gb3B0aW9uYWxseSBwYXNzIGV2ZXJ5IDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIHRocm91Z2ggaXQgdG8gcmVtb3ZlIHN0 dWZmIHlvdSBkb24mIzgyMTc7dCB3YW50LjwvcD4KCgk8aDMgaWQ9InVybGZpbHRlciI+dXJs ZmlsdGVyPC9oMz4KCgk8cD5UaGlzIHRha2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QgKGF0 IGxlYXN0IGJ5IGRlZmF1bHQ7IG92ZXJyaWRlIHRoZSBjb21tYSB3aXRoIHRoZSA8Y29kZT5k ZWxpbTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBuZWVkIHRvIHVzZSBjb21tYXMgaW4geW91 ciBmaWx0ZXIgc3RyaW5ncykgb2YgY29tcGxldGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRl cm5zIHRoYXQgeW91IHdpc2ggdG8gc2VhcmNoIGZvciwgaW4gZXZlcnkgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUuIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudGVk IHRvIGVuc3VyZSB0aGF0IHlvdXIgdXNlcnMgb25seSBlbnRlcmVkIGRpZ2l0cyB5b3UgY291 bGQgc3BlY2lmeSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPnVybGZpbHRlcj0mcXVvdDsvW15cZF0rLyZxdW90Owo8L2NvZGU+PC9wcmU+CgoJ PHA+QnJpZWZseSwgdGhlIHN0YXJ0aW5nIGFuZCB0cmFpbGluZyA8Y29kZT4vPC9jb2RlPiBt YXJrcyBkZWxpbWl0IGEgcmVndWxhciBleHByZXNzaW9uICYjODIxMjsgdGhleSBtdXN0IGFs d2F5cyBiZSBwcmVzZW50LiBUaGUgc3F1YXJlIGJyYWNrZXRzIGRlbm90ZSBhIGdyb3VwIG9m IGNoYXJhY3RlcnMsIHRoZSBjaXJjdW1mbGV4IG5lZ2F0ZXMgdGhlIGdyb3VwLCB0aGUgPGNv ZGU+XGQ8L2NvZGU+IG1lYW5zICYjODIyMDthbnkgZGlnaXQmIzgyMjE7IGFuZCB0aGUgPGNv ZGU+KzwvY29kZT4gc3BlY2lmaWVzIHRoYXQgeW91IHdhbnQgaXQgdG8gY2hlY2sgZm9yIG9u ZSBvciBtb3JlIG9mIHRoZSBwcmVjZWRpbmcgdGhpbmdzLiBJbiBvdGhlciB3b3JkcywgbG9v ayBmb3IgYW55dGhpbmcgaW4gdGhlIGlucHV0IHRoYXQgaXMgPHN0cm9uZz5ub3Q8L3N0cm9u Zz4gb25lIG9yIG1vcmUgZGlnaXRzLiBUaGF0IHdvdWxkIG1hdGNoIGFueSBsZXR0ZXJzLCBx dW90ZXMsIHNwZWNpYWwgY2hhcmFjdGVycywgYW55dGhpbmcgYXQgYWxsIHRoYXQgd2FzbiYj ODIxNzt0IGEgemVybyB0byBuaW5lLjwvcD4KCgk8cD5Zb3UgY2FuIHNwZWNpZnkgbW9yZSB0 aGFuIG9uZSBmaWx0ZXIgbGlrZSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPnVybGZpbHRlcj0mcXVvdDsvXGQvLCAvXHMvJnF1b3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5UaGF0IHdvdWxkIGxvb2sgZm9yIGFueSBzaW5nbGUgZGlnaXQgYW5k IGFueSBzaW5nbGUgc3BhY2UgY2hhcmFjdGVyLiBUaGF0JiM4MjE3O3MgYSBzaW1wbGUgZXhh bXBsZSBhbmQgeW91IGNvdWxkIGRvIGl0IGFsbCBpbiBvbmUgcmVnZXgsIGJ1dCBzcGxpdHRp bmcgdGhlbSB1cCBjYW4gaGVscCB5b3UgZmlsdGVyIHN0dWZmIGJldHRlciAoc2VlIDxhIGhy ZWY9IiN1cmxyZXBsYWNlIj51cmxyZXBsYWNlPC9hPiBmb3IgYW4gZXhhbXBsZSkuPC9wPgoK CTxwPkJ5IGRlZmF1bHQsIGlmIHlvdSBqdXN0IHNwZWNpZnkgPGNvZGU+dXJsZmlsdGVyPC9j b2RlPiB3aXRob3V0IDxjb2RlPnVybHJlcGxhY2U8L2NvZGU+LCBhbnl0aGluZyB0aGF0IG1h dGNoZXMgeW91ciBmaWx0ZXIgcGF0dGVybnMgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIHVz ZXIgaW5wdXQuPC9wPgoKCTxoMyBpZD0idXJscmVwbGFjZSI+dXJscmVwbGFjZTwvaDM+CgoJ PHA+VGhlIG90aGVyIGhhbGYgb2YgdGhlIGZpbHRlcmluZyBqaWdzYXcgYWxsb3dzIHlvdSB0 byBub3QganVzdCByZW1vdmUgYW55dGhpbmcgdGhhdCBtYXRjaGVzLCBidXQgYWN0dWFsbHkg cmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLiBTcGVjaWZ5IGEgZml4ZWQgc3RyaW5n LCBhIGxpc3Qgb2YgZml4ZWQgc3RyaW5ncyBvciBtb3JlIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+IHBhdHRlcm5zIHRvIHJlcGxhY2Ugd2hhdGV2ZXIgbWF0Y2hlcyB5b3VyIDxj b2RlPnVybGZpbHRlcjwvY29kZT4uIFVzaW5nIHRoZSBmaXJzdCBmaWx0ZXIgZXhhbXBsZSBm cm9tIGFib3ZlLCB5b3UgY291bGQgcmVwbGFjZSBhbnl0aGluZyB0aGF0IGlzIG5vdCBhIGRp Z2l0IHdpdGggYSBoeXBoZW4gYnkgc3BlY2lmeWluZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj51cmxyZXBsYWNlPSZxdW90Oy0mcXVvdDsKPC9jb2Rl PjwvcHJlPgoKCTxwPlNvIGlmIHlvdSBhbGxvd2VkIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gdmFyaWFibGUgY2FsbGVkIDxjb2RlPmRpZ2l0czwvY29kZT4gYW5kIGEgc2l0 ZSB2aXNpdG9yIGVudGVyZWQgPGNvZGU+P2RpZ2l0cz1aYXBob2QgNCBUcmlsbGlhbjwvY29k ZT4sIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgd291bGQg YmVjb21lOiA8Y29kZT4tLS0tLS0tNC0tLS0tLS0tPC9jb2RlPi4gTm90IG11Y2ggdXNlLCBi dXQgaGV5LCBpdCYjODIxNztzIGFuIGV4YW1wbGUhPC9wPgoKCTxwPkFzIHdpdGggPGNvZGU+ dXJsZmlsdGVyPC9jb2RlPiB5b3UgY2FuIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSByZXBsYWNl bWVudCBhbmQgdGhleSB3aWxsIHBhaXIgdXAgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nIGZp bHRlci4gSW4gb3RoZXIgd29yZHMsIGlmIHlvdSB0YWtlIHRoZSBzZWNvbmQgZmlsdGVyIGFi b3ZlICg8Y29kZT51cmxmaWx0ZXI9JnF1b3Q7L1xkLywgL1xzLyZxdW90OzwvY29kZT4pIGFu ZCB1c2VkIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+dXJscmVwbGFjZT0mcXVvdDssIC0mcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZW4g YW55IGRpZ2l0IGluIHlvdXIgdXNlciBpbnB1dCB3b3VsZCBiZSByZW1vdmVkICh0aGVyZSBp cyBub3RoaW5nIGJlZm9yZSB0aGUgY29tbWEpIGFuZCBhbnkgc3BhY2UgY2hhcmFjdGVyIHdv dWxkIGJlIHJlcGxhY2VkIHdpdGggYSBoeXBoZW4uPC9wPgoKCTxwPklmIGF0IGFueSB0aW1l IGEgZmllbGQgZ2l2ZXMgYW4gZW1wdHkgcmVzdWx0IChpLmUuIGl0IHRvdGFsbHkgZmFpbHMg YW55IDxjb2RlPnVybGZpbHRlcjwvY29kZT4gdGVzdHMgb3Igc2ltcGx5IHJldHVybnMgbm90 aGluZyBiZWNhdXNlIGl0IGhhcyBub3QgYmVlbiBzZXQpLCBhbnkgPGNvZGU+ZGVmYXVsdHM8 L2NvZGU+IGFzc2lnbmVkIHRvIHRoYXQgdmFyaWFibGUgd2lsbCBiZSB1c2VkIGluc3RlYWQu IElmIHRoZXJlIGFyZSBubyBkZWZhdWx0cywgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIGl0 c2VsZiAobWludXMgaXRzIDxjb2RlPj88L2NvZGU+KSB3aWxsIGJlIHVzZWQuPC9wPgoKCTxw PldpdGggdGhlc2UgdHdvIGZpbHRlcnMgYXQgeW91ciBkaXNwb3NhbCBhbmQgdGhlIGFiaWxp dHkgdG8gc3BlY2lmeSBkZWZhdWx0IHZhbHVlcyBmb3IgdXNlciB2YXJpYWJsZXMsIHlvdSBj YW4gbWFrZSB5b3VyIHF1ZXJpZXMgbXVjaCBzYWZlciB0byB0aGUgb3V0c2lkZSB3b3JsZCBh bmQgc3RhcnQgdXNpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGZvcm1zIHRv IGdhdGhlciBpbnB1dCBmcm9tIHVzZXJzIHRoYXQgY2FuIHRoZW4gYmUgcGx1Z2dlZCBpbnRv IHF1ZXJpZXMsIGZhaXJseSBzYWZlIGluIHRoZSBrbm93bGVkZ2UgdGhhdCB5b3VyIGRhdGFi YXNlIGlzIG5vdCBnb2luZyB0byBpbXBsb2RlLjwvcD4KCgk8cD5CdXQgcGxlYXNlIHJlbWVt YmVyOjwvcD4KCgk8YmxvY2txdW90ZT4KCQk8cD5Bc3N1bWUgPHN0cm9uZz5hbGw8L3N0cm9u Zz4gdXNlciBpbnB1dCBpcyB0YWludGVkOiBjaGVjayBldmVyeXRoaW5nLjwvcD4KCTwvYmxv Y2txdW90ZT4KCgk8aDIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJl ZzEiPkV4YW1wbGUgMTogU2ltcGxlIGltYWdlIHNlbGVjdCBxdWVyeTwvaDM+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBjb2x1 bW49JnF1b3Q7KiZxdW90OwogICAgIHRhYmxlPSZxdW90O3R4cF9pbWFnZSZxdW90OwogICAg IHdoZXJlPSZxdW90O2NhdGVnb3J5PSYjMzk7bWFtbWFsJiMzOTsgT1IgY2F0ZWdvcnk9JiMz OTtiaXJkJiMzOTsmcXVvdDsKICAgICBmb3JtPSZxdW90O2Rib3V0JnF1b3Q7IHdyYXB0YWc9 JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPldpdGggZm9ybSA8Y29kZT5kYm91dDwvY29kZT4gY29udGFpbmluZzo8L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7YSBocmVmPSZxdW90 Oy9pbWFnZXMve2lkfXtleHR9JnF1b3Q7IC8mZ3Q7Jmx0O3R4cDp0aHVtYm5haWwgbmFtZT0m cXVvdDt7bmFtZX0mcXVvdDsgLyZndDsmbHQ7L2EmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5X aWxsIHJlbmRlciBhbiB1bm9yZGVyZWQgbGlzdCBvZiB0aHVtYm5haWxzIHdpdGggbGlua3Mg dG8gdGhlIGZ1bGxzaXplIGltYWdlIGlmIHRoZSBjYXRlZ29yeSBpcyBlaXRoZXIgPGNvZGU+ bWFtbWFsPC9jb2RlPiBvciA8Y29kZT5iaXJkPC9jb2RlPi48L3A+CgoJPGgzIGlkPSJlZzIi PkV4YW1wbGUgMjogbGluayBjYXRlZ29yeSBsaXN0IHRvIHBhcmVudDwvaDM+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVy eT0mcXVvdDtTRUxFQ1QgRElTVElOQ1QKICAgICB0eGMubmFtZSBGUk9NIHR4cF9jYXRlZ29y eSBBUyB0eGMsIHRleHRwYXR0ZXJuIEFTIHR4cAogICAgIFdIRVJFIHR5cGU9JiMzOTthcnRp Y2xlJiMzOTsgQU5EIHBhcmVudD0mIzM5O2FuaW1hbHMmIzM5OwogICAgIEFORCAodHhjLm5h bWUgPSB0eHAuY2F0ZWdvcnkxIE9SIHR4Yy5uYW1lID0gdHhwLmNhdGVnb3J5MikKICAgICBm b3JtPSZxdW90O2Rib3V0JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1 b3Q7bGkmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPldpdGggZm9ybSA8Y29kZT5k Ym91dDwvY29kZT4gY29udGFpbmluZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7dHhwOmNhdGVnb3J5IG5hbWU9JnF1b3Q7e25hbWV9JnF1b3Q7 IGxpbms9JnF1b3Q7MSZxdW90OyB0aXRsZT0mcXVvdDsxJnF1b3Q7IC8mZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5XaWxsIHJlbmRlciBhIGxpc3Qgb2YgbGlua2FibGUgY2F0ZWdvcnkgbmFt ZXMgdGhhdCBjb250YWluIGFydGljbGVzIHdpdGggY2F0ZWdvcmllcyB0aGF0IGhhdmUgdGhl IGdpdmVuIHBhcmVudC4gSWYgYSBjYXRlZ29yeSBpcyB1bnVzZWQgaXQgd2lsbCBub3QgYmUg bGlzdGVkLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBjaGlsZCBjYXRlZ29yeSBj b3VudHM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUIERJU1RJTkNUCiAgICAgdHhjLm5h bWUsIENPVU5UKCopIEFTIGNvdW50IEZST00gdHhwX2NhdGVnb3J5IEFTIHR4YywKICAgICB0 ZXh0cGF0dGVybiBBUyB0eHAKICAgICBXSEVSRSB0eXBlPSYjMzk7YXJ0aWNsZSYjMzk7IEFO RCBwYXJlbnQ9JiMzOTs/Y3VzdG9tMyYjMzk7CiAgICAgQU5EICh0eGMubmFtZSA9IHR4cC5j YXRlZ29yeTEgT1IgdHhjLm5hbWUgPSB0eHAuY2F0ZWdvcnkyKQogICAgIEdST1VQIEJZIHR4 Yy5uYW1lJnF1b3Q7CiAgICAgZm9ybT0mcXVvdDtkYm91dCZxdW90OyB3cmFwdGFnPSZxdW90 O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5XaXRoIGZvcm0gPGNvZGU+ZGJvdXQ8L2NvZGU+IGNvbnRhaW5pbmc6PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpjYXRlZ29yeSBuYW1l PSZxdW90O3tuYW1lfSZxdW90OyBsaW5rPSZxdW90OzEmcXVvdDsgdGl0bGU9JnF1b3Q7MSZx dW90OyAvJmd0OyAoe2NvdW50fSkKPC9jb2RlPjwvcHJlPgoKCTxwPldpbGwgcmVhZCB0aGUg cGFyZW50IGl0ZW0gZnJvbSB0aGUgPGNvZGU+Y3VzdG9tMzwvY29kZT4gZmllbGQgYW5kIHJl bmRlciBhIHNpbWlsYXIgbGlzdCB0byBFeGFtcGxlIDIgYnV0IHdpdGggdGhlIGFydGljbGUg Y291bnRzIGFkZGVkIGluIHBhcmVudGhlc2VzIGFmdGVyd2FyZHMuPC9wPgoKCTxoMyBpZD0i ZWc0Ij5FeGFtcGxlIDQ6IFRvcCAxMCBkb3dubG9hZHM8L2gzPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgY29sdW1uPSZxdW90 OyomcXVvdDsgdGFibGU9JnF1b3Q7dHhwX2ZpbGUmcXVvdDsKICAgICB3aGVyZT0mcXVvdDso Y2F0ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkxJiMzOTsgT1IgY2F0ZWdvcnk9JiMzOTs/Y2F0ZWdv cnkyJiMzOTspCiAgICAgQU5EIHN0YXR1cz00IE9SREVSIEJZIGRvd25sb2FkcyBkZXNjIExJ TUlUIDEwJnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt0YWJsZSZxdW90OyBicmVhaz0mcXVv dDt0ciZxdW90OwogICAgIGxhYmVsPSZxdW90O01vc3QgcG9wdWxhciBkb3dubG9hZHMmcXVv dDsgbGFiZWx0YWc9JnF1b3Q7aDMmcXVvdDsmZ3Q7CiAgJmx0O3RkJmd0OyZsdDt0eHA6Zmls ZV9kb3dubG9hZF9saW5rIGlkPSZxdW90O3tpZH0mcXVvdDsmZ3Q7e2ZpbGVuYW1lfSZsdDsv dHhwOmZpbGVfZG93bmxvYWRfbGluayZndDsmbHQ7L3RkJmd0OwogICZsdDt0ZCZndDt7ZGVz Y3JpcHRpb259Jmx0Oy90ZCZndDsKICAmbHQ7dGQmZ3Q7ZG93bmxvYWRzOiB7ZG93bmxvYWRz fSZsdDsvdGQmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogICZsdDtwJmd0O05vIHJlY2VudCBk b3dubG9hZHMsIHNvcnJ5Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5UaGlzIG9uZSB1c2VzIHRoZSBwbHVnaW4gYXMgYSBjb250YWluZXIg dGFnIGluc3RlYWQgb2YgYSBmb3JtIGFuZCB0YWJ1bGF0ZXMgdGhlIHRvcCAxMCBkb3dubG9h ZHMgKHN0YXR1cz1saXZlKSB0aGF0IGhhdmUgYSBjYXRlZ29yeSBtYXRjaGluZyBlaXRoZXIg b2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3JpZXMsIHdpdGggbW9zdCBw b3B1bGFyIGxpc3RlZCBmaXJzdC4gSWYgdGhlcmUgYXJlIG5vIGRvd25sb2FkcywgdGhlIDxj b2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gcG9ydGlvbiBkaXNwbGF5cyBhIG1lc3Nh Z2UuPC9wPgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU6IEFydGljbGUga2V5d29yZHMgcmVs YXRlZCB0byBsaW5rPC9oMz4KCgk8cD5WZXJ5IGludGVyZXN0aW5nIHVzZSBjYXNlIGhlcmUu IFB1dCB0aGlzIGluIHRoZSBwbGFpbmxpbmtzIGZvcm06PC9wPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpsaW5rZGVzY3RpdGxlIC8mZ3Q7CiZs dDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCBESVNUSU5DVAogICAgIHR4cC5p ZCwgdHhwLnRpdGxlIEZST00gdGV4dHBhdHRlcm4gQVMgdHhwCiAgICAgV0hFUkUgKHR4cC5r ZXl3b3JkcyBMSUtFICYjMzk7JSw/Y2F0ZWdvcnklLCYjMzk7CiAgICAgT1IgdHhwLmtleXdv cmRzIExJS0UgJiMzOTslP2NhdGVnb3J5JSwmIzM5OwogICAgIE9SIHR4cC5rZXl3b3JkcyBM SUtFICYjMzk7JSw/Y2F0ZWdvcnklJiMzOTspCiAgICAgR1JPVVAgQlkgdHhwLnRpdGxlJnF1 b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OyZn dDsKICAmbHQ7dHhwOnBlcm1saW5rIGlkPSZxdW90O3tpZH0mcXVvdDsmZ3Q7e3RpdGxlfSZs dDsvdHhwOnBlcm1saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5XaGVuIHlvdSBleGVjdXRlIDxjb2RlPiZsdDt0eHA6bGlua2xpc3QgLyZndDs8 L2NvZGU+IGZyb20gYSBwYWdlIHlvdSB3aWxsIGdldCBhIGxpc3Qgb2YgbGlua3MgYXMgdXN1 YWwsIGJ1dCB1bmRlciBlYWNoIG9uZSB5b3Ugd2lsbCBzZWUgYSBoeXBlcmxpbmtlZCBsaXN0 IG9mIGFydGljbGVzIHRoYXQgYXJlIHJlbGF0ZWQgKGJ5IGtleXdvcmQpIHRvIHRoZSBjYXRl Z29yeSBvZiB0aGUgbGluay48L3A+CgoJPHA+VGhlIHJlYXNvbiBpdCBpcyBjb21wYXJlZCB0 aHJlZSB0aW1lcyBpcyBiZWNhdXNlIGFydGljbGUga2V5d29yZHMgYXJlIHN0b3JlZCBsaWtl IHRoaXMgaW4gdGhlIGRhdGFiYXNlOjwvcD4KCgk8cD48Y29kZT5nb3Zlcm5tZW50LGNvbnNw aXJhY3ksaWQsY2FyZCxkYXRhLGJpb21ldHJpYyxiYWQsaWRlYTwvY29kZT48L3A+CgoJPHA+ SWYgZWFjaCBjYXRlZ29yeSB3b3JkIHdhcyBjb21wYXJlZCBvbmx5IG9uY2Ugd2l0aG91dCBj b21tYXMgKGkuZS4gPGNvZGU+dHhwLmtleXdvcmRzIExJS0UgJiMzOTslP2NhdGVnb3J5JSYj Mzk7PC9jb2RlPikgdGhlbiBhIGxpbmsgd2l0aCBjYXRlZ29yeSA8Y29kZT5waXJhY3k8L2Nv ZGU+IHdvdWxkIGNhdXNlIGFueSBhcnRpY2xlIGNvbnRhaW5pbmcga2V5d29yZCA8Y29kZT5j b25zcGlyYWN5PC9jb2RlPiB0byBiZSBpbmNsdWRlZC4gRXNzZW50aWFsbHksIGJ5IGNvbXBh cmluZyB0aGUgY2F0ZWdvcnkgZWl0aGVyIHN1cnJvdW5kZWQgYnkgY29tbWFzLCB3aXRoIGEg Y29tbWEgYWZ0ZXIgaXQsIG9yIHdpdGggYSBjb21tYSBiZWZvcmUgaXQsIHRoZSBzZWFyY2gg aXMgcmVzdHJpY3RlZCB0byBvbmx5IG1hdGNoIHdob2xlIHdvcmRzLjwvcD4KCgk8aDMgaWQ9 ImVnNiI+RXhhbXBsZSA2OiBDb21wYXJpc29uIGluIHF1ZXJpZXM8L2gzPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9 JnF1b3Q7U0VMRUNUICoKICAgICBGUk9NIHR4cF9maWxlIFdIRVJFIGRvd25sb2FkcyAmYW1w O2d0Oz0gNDImcXVvdDsmZ3Q7CiAgJmx0O3R4cDpmaWxlX2Rvd25sb2FkX2xpbmsgaWQ9JnF1 b3Q7e2lkfSZxdW90OyZndDsKICAgICB7ZmlsZW5hbWV9CiAgJmx0Oy90eHA6ZmlsZV9kb3du bG9hZF9saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5TaG93cyBsaW5rcyB0byBhbGwgZG93bmxvYWRzIHdoZXJlIHRoZSBkb3dubG9hZCBjb3Vu dCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gNDIuIE5vdGUgdGhhdCB1bmRlciA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiA0LjAuNiBhbmQgYmVsb3cgeW91IG11c3QgdXNl IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZW50aXR5IG5hbWVzIGZvciA8 Y29kZT4mYW1wO2d0OzwvY29kZT4gYW5kIDxjb2RlPiZhbXA7bHQ7PC9jb2RlPiBvciB0aGUg cGFyc2VyIGdldHMgY29uZnVzZWQuPC9wPgoKCTxoMyBpZD0iZWc3Ij5FeGFtcGxlIDc6IHVu ZmlsdGVyZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1zIChiYWQpPC9o Mz4KCgk8cD4oYSBiYWQgcXVlcnkpPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2N1dG9mZiZxdW90Owog ICAgIHZhbHVlPSZxdW90OzQyJnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5 PSZxdW90O1NFTEVDVCBUaXRsZQogICAgIEZST00gdGV4dHBhdHRlcm4KICAgICBXSEVSRSBp ZCAmbHQ7ICYjMzk7P3VzZXJjdXQmIzM5OyZxdW90OwogICAgIGRlZmF1bHRzPSZxdW90O3Vz ZXJjdXQ6ID9jdXRvZmYmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7e1RpdGxl fSZsdDsvdHhwOnBlcm1saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5TaG93cyBoeXBlcmxpbmtzIHRvIG9ubHkgdGhvc2UgYXJ0aWNsZXMgd2l0 aCBhbiBJRCBiZWxvdyB0aGUgbnVtYmVyIGdpdmVuIGJ5IHRoZSB1c2VyIG9uIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lLiBJZiB0aGUgdmFsdWUgaXMgbm90IHN1 cHBsaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiB2YXJpYWJsZSBpcyB1c2VkIGluc3RlYWQgKDQyIGluIHRoaXMgY2FzZSku PC9wPgoKCTxwPjxzdHJvbmc+PHNwYW4gY2xhc3M9ImNhcHMiPk5PVEU8L3NwYW4+PC9zdHJv bmc+OiB2YWxpZGF0aW9uIGlzIG5vdCBwZXJmb3JtZWQgYW5kIHlvdSBjYW5ub3QgZ3VhcmFu dGVlIHRoYXQgdGhlIDxjb2RlPnVzZXJjdXQ8L2NvZGU+IHZhcmlhYmxlIGlzIGdvaW5nIHRv IGJlIG51bWVyaWMuIFlvdSBzaG91bGQgbm90IHVzZSB0aGlzIHF1ZXJ5IG9uIGEgcHJvZHVj dGlvbiBzaXRlIHVubGVzcyB5b3UgYWRkIGEgPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiB0byBy ZW1vdmUgYW55IG5vbi1udW1lcmljIGNoYXJhY3RlcnMgKHNlZSBuZXh0IGV4YW1wbGUgZm9y IGEgYmV0dGVyIHF1ZXJ5KS48L3A+CgoJPGgzIGlkPSJlZzgiPkV4YW1wbGUgODogZmlsdGVy ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1zIChiZXR0ZXIhKTwvaDM+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9x dWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgVGl0bGUKICAgICBGUk9NIHRleHRwYXR0ZXJuCiAg ICAgV0hFUkUgc3RhdHVzID0gJiMzOTs/dXNlcl9zdGF0dXMmIzM5OyZxdW90OwogICAgIHVy bGZpbHRlcj0mcXVvdDsvW14xLTVdLyZxdW90OwogICAgIGRlZmF1bHRzPSZxdW90O3VzZXJf c3RhdHVzOiA0JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0O3tUaXRsZX0mbHQ7 L3R4cDpwZXJtbGluayZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+UHVsbHMgYWxsIGFydGljbGVzIG91dCBvZiB0aGUgZGF0YWJhc2UgdGhhdCBtYXRj aCB0aGUgZ2l2ZW4gc3RhdHVzLiBUaGlzIGlzIGEgbW9yZSByb2J1c3QgcXVlcnkgdGhhbiBF eGFtcGxlIDcgYmVjYXVzZSBpdCBjaGVja3MgaWYgdGhlIDxjb2RlPnVzZXJfc3RhdHVzPC9j b2RlPiBmaWVsZCBpcyAxLCAyLCAzLCA0LCBvciA1ICh0aGUgcmVnZXggc3BlY2lmaWVzIHRv IHJlbW92ZSBldmVyeXRoaW5nIGZyb20gdGhlIHVzZXJfc3RhdHVzIHZhcmlhYmxlIHRoYXQg aXMgbm90IGluIHRoZSByYW5nZSAxLTUpLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0 ICYjODIxMjsgZS5nLiB0aGUgdXNlciBzcGVjaWZpZXMgPGNvZGU+dXNlcl9zdGF0dXM9Njwv Y29kZT4gb3IgPGNvZGU+dXNlcl9zdGF0dXM9JnF1b3Q7YWJjJnF1b3Q7PC9jb2RlPiAmIzgy MTI7IHRoZW4gdXNlcl9zdGF0dXMgd2lsbCBiZSBzZXQgdG8gPGNvZGU+NDwvY29kZT4uIE5v dGUgdGhhdCB1c2luZyA8Y29kZT51c2VyX3N0YXR1cz0mcXVvdDtaYXBob2QgNCBUcmlsbGlh biZxdW90OzwvY29kZT4gb24gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGFk ZHJlc3MgYmFyIHdpbGwgYWN0dWFsbHkgcGFzcyB0aGUgdGVzdCBiZWNhdXNlIGFsbCBjaGFy YWN0ZXJzIG90aGVyIHRoYW4gdGhlIG51bWJlciAmIzgyMTY7NCYjODIxNzsgd2lsbCBiZSBy ZW1vdmVkLjwvcD4KCgk8cD5Zb3UgY291bGQgdXNlIGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJs ZSAvJmd0OzwvY29kZT4gaWYgeW91IHdpc2ggYW5kIHNldCBhbGwgeW91ciBkZWZhdWx0cyBp biBhIHNwZWNpYWwgZm9ybSwgcmVhZHkgdG8gdXNlIHRocm91Z2hvdXQgeW91ciBwYWdlLiBJ biB0aGF0IGNhc2UgJiM4MjEyOyBpZiB5b3UgaGFkIGNyZWF0ZWQgYSB2YXJpYWJsZSBjYWxs ZWQgPGNvZGU+ZGZsdF9zdGF0PC9jb2RlPiAmIzgyMTI7IHlvdSBtaWdodCBwcmVmZXIgdG8g dXNlIDxjb2RlPmRlZmF1bHRzPSZxdW90O3VzZXJfc3RhdHVzOiA/ZGZsdF9zdGF0JnF1b3Q7 PC9jb2RlPi48L3A+CgoJPHA+UXVlcnktdGFzdGljIDotKTwvcD4KCgk8aDMgaWQ9ImVnOSI+ RXhhbXBsZSA5OiBVc2luZyBwcmVwYXJzZSB3aXRoIDxjb2RlPiZsdDt0eHA6eWllbGQgLyZn dDs8L2NvZGU+PC9oMz4KCgk8cD5Tb21ldGltZXMgeW91IG1heSB3YW50IHRvIHJlLXVzZSBh IHF1ZXJ5IGluIGEgZmV3IHBsYWNlcyB0aHJvdWdob3V0IHlvdXIgc2l0ZSBhbmQgc2hvdyBk aWZmZXJlbnQgY29udGVudC4gRm9yIGV4YW1wbGUsIHRoZSBzYW1lIHF1ZXJ5IGNvdWxkIGJl IHVzZWQgZm9yIGxvZ2dlZC1pbiBhbmQgbm90LWxvZ2dlZC1pbiB1c2VycyBidXQgeW91JiM4 MjE3O2Qgc2VlIG1vcmUgZGV0YWlsIGlmIHlvdSB3ZXJlIGxvZ2dlZCBpbi4gTm9ybWFsbHkg eW91IHdvdWxkIG5lZWQgdG8gd3JpdGUgdGhlIHF1ZXJ5IG1vcmUgdGhhbiBvbmNlLCB3aGlj aCBpcyBmYXIgZnJvbSBpZGVhbC4gVGhpcyB0ZWNobmlxdWUgYWxsb3dzIHlvdSB0byB3cml0 ZSB0aGUgcXVlcnkganVzdCBvbmNlIGFuZCByZXVzZSB0aGUgZm9ybS4gUHV0IHRoaXMgaW4g YSBmb3JtIGNhbGxlZCA8Y29kZT51c2VyX3RhYmxlPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0m cXVvdDtTRUxFQ1QgKiBGUk9NIHR4cF91c2VycyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7 dGFibGUmcXVvdDsgYnJlYWs9JnF1b3Q7dHImcXVvdDsgcHJlcGFyc2U9JnF1b3Q7MSZxdW90 OyZndDsKICAgJmx0O3R4cDp5aWVsZCAvJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5Vc2luZyA8Y29kZT4mbHQ7dHhwOm91dHB1dF9mb3JtJmd0Ozwv Y29kZT4gYXMgYSBjb250YWluZXIgKGluIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IDQuMi4wIG9yIGhpZ2hlcikgeW91IGNhbiB0aGVuIGNhbGwgdGhlIHF1ZXJ5IGxpa2UgdGhp cyB0byBzaG93IGJhc2ljIGluZm86PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3VzZXJfdGFibGUm cXVvdDsmZ3Q7CiZsdDt0ZCZndDt7bmFtZX0mbHQ7L3RkJmd0OwombHQ7dGQmZ3Q7e1JlYWxO YW1lfSZsdDsvdGQmZ3Q7CiZsdDsvdHhwOm91dHB1dF9mb3JtJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+YW5kIGxpa2UgdGhpcyBmb3IgbW9yZSBkZXRhaWxlZCBvdXRwdXQ6PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpvdXRwdXRfZm9y bSBmb3JtPSZxdW90O3VzZXJfdGFibGUmcXVvdDsmZ3Q7CiZsdDt0ZCZndDt7bmFtZX0mbHQ7 L3RkJmd0OwombHQ7dGQmZ3Q7e1JlYWxOYW1lfSZsdDsvdGQmZ3Q7CiZsdDt0ZCZndDt7ZW1h aWx9Jmx0Oy90ZCZndDsKJmx0O3RkJmd0O3tsYXN0X2FjY2Vzc30mbHQ7L3RkJmd0OwombHQ7 L3R4cDpvdXRwdXRfZm9ybSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCB3aGVu IHVzaW5nIHNtZF9xdWVyeSBpbiB0aGlzIG1hbm5lciB5b3UgbXVzdCByZW1lbWJlciB0byB1 c2UgPGNvZGU+cHJlcGFyc2U9JnF1b3Q7MSZxdW90OzwvY29kZT4gYmVjYXVzZSB5b3UgbmVl ZCB0byBmZXRjaCB0aGUgY29udGVudHMgb2YgdGhlIHNtZF9xdWVyeSBjb250YWluZXIgKHRo ZSA8Y29kZT4mbHQ7dHhwOnlpZWxkIC8mZ3Q7PC9jb2RlPiB0YWcgaW4gdGhpcyBjYXNlKSwg cGFyc2UgaXQgc28gaXQgZ2V0cyB0aGUgY29udGVudHMgb2YgPGNvZGU+Jmx0O3R4cDpvdXRw dXRfZm9ybSZndDs8L2NvZGU+JiM4MjE3O3MgY29udGFpbmVyIGFuZCA8ZW0+dGhlbjwvZW0+ IGFwcGxpZXMgdGhlIHJlcGxhY2VtZW50cy4gV2l0aG91dCB0aGUgPGNvZGU+cHJlcGFyc2U8 L2NvZGU+LCB0aGUgcGx1Z2luIHRyaWVzIHRvIGFwcGx5IHRoZSByZXBsYWNlbWVudHMgZGly ZWN0bHkgdG8gdGhlIHNtZF9xdWVyeSBjb250YWluZXIsIHdoaWNoIGRvZXMgbm90IGFjdHVh bGx5IGNvbnRhaW4gYW55IDxjb2RlPnsuLi59PC9jb2RlPiB0YWdzLjwvcD4KCgk8aDMgaWQ9 ImVnMTAiPkV4YW1wbGUgMTA6IHBhZ2luYXRpb248L2gzPgoKCTxwPkl0ZXJhdGUgb3ZlciBz b21lIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHVzZXIgaW5mb3JtYXRpb24sIDUg cGVvcGxlIGF0IGEgdGltZTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBmcm9tIHR4 cF91c2VycyZxdW90OwogICAgIGxpbWl0PSZxdW90OzUmcXVvdDsgd3JhcHRhZz0mcXVvdDt1 bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OwogICAgIHBhZ2Vmb3JtPSZxdW90O3BhZ2Vf aW5mbyZxdW90OyZndDsKICAge1JlYWxOYW1lfSAoe3ByaXZzfSkKJmx0Oy90eHA6c21kX3F1 ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SW4gPGNvZGU+cGFnZV9pbmZvPC9jb2RlPjo8 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5QYWdlIHtzbWRf dGhpc3BhZ2V9IG9mIHtzbWRfcGFnZXN9IHwKU2hvd2luZyByZWNvcmRzIHtzbWRfcm93X3N0 YXJ0fSB0byB7c21kX3Jvd19lbmR9Cm9mIHtzbWRfYWxscm93c30gfAombHQ7dHhwOm9sZGVy Jmd0O05leHQge3NtZF9yb3dzX25leHR9Jmx0Oy90eHA6b2xkZXImZ3Q7IHwKJmx0O3R4cDpu ZXdlciZndDtQcmV2aW91cyB7c21kX3Jvd3NfcHJldn0mbHQ7L3R4cDpuZXdlciZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPlVuZGVybmVhdGggeW91ciByZXN1bHQgc2V0IHlvdSB3b3VsZCB0 aGVuIHNlZSB0aGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHdoaWNoIHBhZ2UgYW5kIHJvd3Mg eW91ciB2aXNpdG9ycyB3ZXJlIGN1cnJlbnRseSB2aWV3aW5nLiBZb3Ugd291bGQgYWxzbyBz ZWUgbmV4dC9wcmV2IGxpbmtzIHRvIHRoZSByZXN0IG9mIHRoZSByZXN1bHRzLjwvcD4KCgk8 aDMgaWQ9ImVnMTEiPkV4YW1wbGUgMTE6IGN1c3RvbSBwYWdpbmF0aW9uPC9oMz4KCgk8cD5U aGVyZSBpcyBhIHByb2JsZW0gd2l0aCA8YSBocmVmPSIjZWcxMCI+ZXhhbXBsZSAxMDwvYT4g OyBpZiB5b3UgdXNlIHR4cDpvbGRlciBhbmQgdHhwOm5ld2VyIHdoZW4geW91IGFyZSBzaG93 aW5nIGEgc3RhbmRhcmQgYXJ0aWNsZSBsaXN0OyB0aGUgcGFnaW5nIHRhZ3Mgd2lsbCBzdGVw IHRocm91Z2ggPGVtPmJvdGg8L2VtPiB5b3VyIHJlc3VsdCBzZXQgYW5kIHlvdXIgYXJ0aWNs ZXMuIFRvIGJyZWFrIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRoZW0geW91IG5lZWQgdG8g YWx0ZXIgdGhlIHZhcmlhYmxlIHRoYXQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4g dXNlcyB0byBjb250cm9sIHBhZ2luZy4gSXQgaXMgY2FsbGVkIDxjb2RlPnBnPC9jb2RlPmFu ZCB5b3UmIzgyMTc7bGwgbm90aWNlIGl0IGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiAoPGNvZGU+P3BnPTI8L2NvZGU+IGZvciBleGFtcGxlKSBhcyB5b3Ugc3RlcCB0 aHJvdWdoIGFydGljbGUgbGlzdHMuPC9wPgoKCTxwPlVzaW5nIHRoZSA8Y29kZT5wYWdldmFy PC9jb2RlPiBhdHRyaWJ1dGUgeW91IGNhbiB0ZWxsIHNtZF9xdWVyeSB0byB3YXRjaCBmb3Ig eW91ciBvd24gdmFyaWFibGUgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCA8Y29kZT5wZzwvY29k ZT4gYW5kIHRodXMgYnVpbGQgeW91ciBvd24gbmV4dC9wcmV2IGxpbmtzIHRoYXQgb25seSBj b250cm9sIHNtZF9xdWVyeS48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBmcm9tIHR4 cF91c2VycyZxdW90OwogICAgIGxpbWl0PSZxdW90OzUmcXVvdDsgd3JhcHRhZz0mcXVvdDt1 bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OwogICAgIHBhZ2Vmb3JtPSZxdW90O3BhZ2Vf aW5mbyZxdW90OyBwYWdldmFyPSZxdW90O3NtZF9xcGcmcXVvdDsmZ3Q7CiAgIHtSZWFsTmFt ZX0gKHtwcml2c30pCiZsdDsvdHhwOnNtZF9xdWVyeSZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PkluIDxjb2RlPnBhZ2VfaW5mbzwvY29kZT46PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+UGFnZSB7c21kX3RoaXNwYWdlfSBvZiB7c21kX3BhZ2VzfSB8 CiAgIFNob3dpbmcgcmVjb3JkcyB7c21kX3Jvd19zdGFydH0KICAgdG8ge3NtZF9yb3dfZW5k fSBvZiB7c21kX2FsbHJvd3N9IHwKJmx0O3R4cDpzbWRfcXVlcnlfaWZfcHJldiZndDsKICAm bHQ7YSBocmVmPSZxdW90OyZsdDt0eHA6cGVybWxpbmsgLyZndDs/c21kX3FwZz17c21kX3By ZXZwYWdlfSZxdW90OyZndDsKICAgICBQcmV2aW91cyB7c21kX3Jvd3NfcHJldn0mbHQ7L2Em Z3Q7CiZsdDsvdHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0OwombHQ7dHhwOnNtZF9xdWVyeV9p Zl9uZXh0Jmd0OwogICZsdDthIGhyZWY9JnF1b3Q7Jmx0O3R4cDpwZXJtbGluayAvJmd0Oz9z bWRfcXBnPXtzbWRfbmV4dHBhZ2V9JnF1b3Q7Jmd0OwogICAgIE5leHQge3NtZF9yb3dzX25l eHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfcXVlcnlfaWZfbmV4dCZndDsKPC9jb2RlPjwv cHJlPgoKCTxoMyBpZD0iZWcxMiI+RXhhbXBsZSAxMjogdXNpbmcgPGNvZGU+U01EX1FVRVJZ X1VOSVFVRV9JRDwvY29kZT48L2gzPgoKCTxwPklmIHlvdSB3aXNoIHRvIHVzZSBtb3JlIHRo YW4gb25lIHNtZF9xdWVyeSBvbiBhIHNpbmdsZSBwYWdlIGJ1dCBzaGFyZSBhIHBhZ2Vmb3Jt IGJldHdlZW4gdGhlbSB5b3UgY2FuIHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+U01EPC9zcGFu Pl9RVUVSWV9VTklRVUVfSUQgYXMgdGhlIHBhZ2luZyB2YXJpYWJsZTo8L3A+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVy eT0mcXVvdDtTRUxFQ1QgKiBmcm9tIHR4cF91c2VycyZxdW90OwogICAgIGxpbWl0PSZxdW90 OzUmcXVvdDsgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90Owog ICAgIHBhZ2Vmb3JtPSZxdW90O3BhZ2VfaW5mbyZxdW90OwogICAgIHBhZ2V2YXI9JnF1b3Q7 U01EX1FVRVJZX1VOSVFVRV9JRCZxdW90OyZndDsKICAge1JlYWxOYW1lfSAoe3ByaXZzfSkK Jmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SW4gPGNvZGU+cGFn ZV9pbmZvPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj5QYWdlIHtzbWRfdGhpc3BhZ2V9IG9mIHtzbWRfcGFnZXN9IHwKICAgU2hvd2luZyBy ZWNvcmRzIHtzbWRfcm93X3N0YXJ0fQogICB0byB7c21kX3Jvd19lbmR9IG9mIHtzbWRfYWxs cm93c30gfAombHQ7dHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0OwogICZsdDthIGhyZWY9JnF1 b3Q7Jmx0O3R4cDpwZXJtbGluayAvJmd0Oz97c21kX3F1ZXJ5X3VuaXF1ZV9pZH09e3NtZF9w cmV2cGFnZX0mcXVvdDsmZ3Q7CiAgICAgUHJldmlvdXMge3NtZF9yb3dzX3ByZXZ9Jmx0Oy9h Jmd0OwombHQ7L3R4cDpzbWRfcXVlcnlfaWZfcHJldiZndDsKJmx0O3R4cDpzbWRfcXVlcnlf aWZfbmV4dCZndDsKICAmbHQ7YSBocmVmPSZxdW90OyZsdDt0eHA6cGVybWxpbmsgLyZndDs/ e3NtZF9xdWVyeV91bmlxdWVfaWR9PXtzbWRfbmV4dHBhZ2V9JnF1b3Q7Jmd0OwogICAgIE5l eHQge3NtZF9yb3dzX25leHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfcXVlcnlfaWZfbmV4 dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhpcyBpcyBqdXN0IGEgc2ltcGxlIGV4 YW1wbGU6IHlvdSB3aWxsIGhhdmUgdG8gYmUgbW9yZSBjbGV2ZXIgdGhhbiB0aGF0IGlmIHlv dSBhcmUgcGFnaW5nIGluZGVwZW5kZW50IHNldHMgb2Ygcm93cyBiZWNhdXNlIHlvdSB3aWxs IG5lZWQgdG8gaW5jb3Jwb3JhdGUgdGhlIHBhZ2luZyB2YXJpYWJsZSBmcm9tIGJvdGggc21k X3F1ZXJ5IHRhZ3MgaW4geW91ciBwYWdlZm9ybS48L3A+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vs b2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4yMiBNYXkgMDggfCAwLjEgfCBJbml0 aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4yMyBNYXkgMDggfCAwLjExIHwgQWxsb3dlZCBtYXRo cyBpbiBxdWVyaWVzICh1c2UgaHRtbCBlbnRpdGllcyBpbiBUWFA0LjAuNikgYW5kIGZpeGVk IDxzcGFuIGNsYXNzPSJjYXBzIj5XSEVSRTwvc3Bhbj4gY2xhdXNlIHRvIGRlZmF1bHQgdG8g MT0xIGlmIG5vbmUgc3VwcGxpZWQgKGJvdGggdGhhbmtzIGptKSA7IGFkZGVkIG1vcmUgZGV0 YWlsZWQgZmlsZSBhbmQgbGluayBzdXBwb3J0PC9saT4KCQk8bGk+MTQgSnVsIDA4IHwgMC4x MiB8IEFkZGVkIDxjb2RlPnR4cDplbHNlPC9jb2RlPiBzdXBwb3J0IGluIGNvbnRhaW5lciAo dGhhbmtzIGpha29iKSA7IGFkZGVkIDxjb2RlPnNpbGVudDwvY29kZT4gYW5kIDxjb2RlPmNv dW50PC9jb2RlPiBhdHRyaWJ1dGVzLCBhbmQgdGhlIHJlcGxhY2VtZW50IHRhZ3MgPGNvZGU+ e3NtZF9yb3dzfSB7c21kX3RoaXNyb3d9IHtzbWRfdGhpc2luZGV4fTwvY29kZT48L2xpPgoJ CTxsaT4yMyBOb3YgMDggfCAwLjIgfCBBZGRlZCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8m Z3Q7PC9jb2RlPiBzdXBwb3J0IDsgZW5hYmxlZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiB2YXJpYWJsZSBzdXBwb3J0IDsgYWRkZWQgPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiwg PGNvZGU+dXJscmVwbGFjZTwvY29kZT4sIDxjb2RlPmRlbGltPC9jb2RlPiwgPGNvZGU+cGFy YW1kZWxpbTwvY29kZT4gYW5kIDxjb2RlPmRlZmF1bHRzPC9jb2RlPiBhdHRyaWJ1dGVzPC9s aT4KCQk8bGk+MTcgTWFyIDA5IHwgMC4yMSB8IEFkZGVkIDxjb2RlPiRfU0VSVkVSPC9jb2Rl PiB2YXIgc3VwcG9ydDwvbGk+CgkJPGxpPjE2IE9jdCAwOSB8IDAuMjIgfCBBZGRlZCA8Y29k ZT5lc2NhcGU8L2NvZGU+IGF0dHJpYnV0ZSAodGhhbmtzIGpha29iKSA7IGFkZGVkIDxjb2Rl PnByZXBhcnNlPC9jb2RlPiBhdHRyaWJ1dGU8L2xpPgoJCTxsaT4wMiBEZWMgMDkgfCAwLjMg fCBBZGRlZCB1bmljb2RlIHN1cHBvcnQgYW5kIDxjb2RlPnN0cmljdGZpZWxkczwvY29kZT4g dG8gZml4IGEgZmV3IGJ1Z3MgKHRoYW5rcyBzcGVla2UpIDsgYWRkZWQgZGlyZWN0IHBhZ2lu YXRpb24gc3VwcG9ydDwvbGk+CgkJPGxpPjA1IERlYyAwOSB8IDAuNCB8IEFkZGVkIDxjb2Rl PnBhZ2V2YXI8L2NvZGU+LCA8Y29kZT57c21kX3ByZXZwYWdlfTwvY29kZT4sIDxjb2RlPntz bWRfbmV4dHBhZ2V9PC9jb2RlPiwgPGNvZGU+e3NtZF9yb3dzX3ByZXZ9PC9jb2RlPiBhbmQg PGNvZGU+e3NtZF9yb3dzX25leHR9PC9jb2RlPiwgPGNvZGU+Jmx0O3R4cDpzbWRfcXVlcnlf aWZfcHJldiZndDs8L2NvZGU+IGFuZCA8Y29kZT4mbHQ7dHhwOnNtZF9xdWVyeV9pZl9uZXh0 Jmd0OzwvY29kZT4gOyByZW1vdmVkIDxjb2RlPnBnb25seTwvY29kZT4gYXMgcGFnaW5nIGNh biBub3cgPGVtPm9ubHk8L2VtPiBiZSBwZXJmb3JtZWQgaW4gdGhlIDxjb2RlPnBhZ2Vmb3Jt PC9jb2RlPjwvbGk+CgkJPGxpPjE3IEphbiAxMCB8IDAuNDEgfCBBZGRlZCA8Y29kZT5oYXNo c2l6ZTwvY29kZT4sIDxjb2RlPm1vZGU8L2NvZGU+IGFuZCA8Y29kZT57c21kX3F1ZXJ5X3Vu aXF1ZV9pZH08L2NvZGU+PC9saT4KCTwvdWw+Cgo8L2Rpdj4KPCEtLSAqKiogQkVHSU4gUExV R0lOIENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxp bmUtaGVpZ2h0OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZv bnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tn cm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2Vp Z2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjog I2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5n OjEwcHg7IH0KI3NtZF9oZWxwIGE6bGluaywgI3NtZF9oZWxwIGE6dmlzaXRlZCB7IGNvbG9y OiAjMDBjOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xp ZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgYTpob3ZlciwgI3NtZF9o ZWxwIGE6YWN0aXZlIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9y ZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRf aGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7 IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRl ci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMz Njk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBj b2xvcjogIzA3OTsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXIt c3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNh c2U7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBi b2xkIDExcHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdp bjogMTBweCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5h dG5tIHsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzZDsgfQojc21kX2hlbHAgLm1hbmQg eyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxw IHRhYmxlIHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTox ZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5 OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVh cmU7IH0KI3NtZF9oZWxwIC5yZXF1aXJlZCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsg bWFyZ2luOjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4t dG9wOjVweDsgfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7 czozOiJtZDUiO3M6MzI6IjFkMTMzNWZiOGZjOWVhYzMwZmZhM2UzYjljZjliYWI4Ijt9