# Name: smd_if v0.76 # Type: Client 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: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC43NiI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImNvZGUiO3M6MTE1MzA6 ImZ1bmN0aW9uIHNtZF9pZigkYXR0cywkdGhpbmcpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xl LCAkcHJldGV4dCwgJHRoaXNmaWxlLCAkdGhpc2xpbmssICR0aGlzaW1hZ2UsICR2YXJpYWJs ZTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdmaWVsZCcgPT4gJycsDQoJCSdvcGVy YXRvcicgPT4gJycsDQoJCSd2YWx1ZScgPT4gJycsDQoJCSdsb2dpYycgPT4gJ2FuZCcsDQoJ CSdjYXNlX3NlbnNpdGl2ZScgPT4gMCwNCgkJJ3BhcmFtX2RlbGltJyA9PiAnLCcsDQoJCSdt b2RfZGVsaW0nID0+ICc6JywNCgkJJ2xpc3RfZGVsaW0nID0+ICcvJywNCgkJJ2RlYnVnJyA9 PiAnMCcsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNwZWNpYWwgZmllbGQgbmFtZXMgdGhhdCBy ZWZlciB0byAkcHJldGV4dCBvciBlbHNld2hlcmUgLSBldmVyeXRoaW5nIGVsc2UgaXMgYXNz dW1lZCB0bw0KCS8vIGV4aXN0IGluICR0aGlzYXJ0aWNsZSBzbyBjdXN0b20gZmllbGRzIGNh biBiZSB1c2VkDQoJJGFsbFB0eHQgPSBhcnJheSgNCgkJImlkIiA9PiAnJHByZXRleHRbImlk Il0nLA0KCQkic2VjdGlvbiIgPT4gJyRwcmV0ZXh0WyJzIl0nLA0KCQkiY2F0ZWdvcnkiID0+ ICckcHJldGV4dFsiYyJdJywNCgkJInF1ZXJ5IiA9PiAnJHByZXRleHRbInEiXScsDQoJCSJw ZyIgPT4gJyRwcmV0ZXh0WyJwZyJdJywNCgkJIm1vbnRoIiA9PiAnJHByZXRleHRbIm1vbnRo Il0nLA0KCQkiYXV0aG9yIiA9PiAnJHByZXRleHRbImF1dGhvciJdJywNCgkJInN0YXR1cyIg PT4gJyRwcmV0ZXh0WyJzdGF0dXMiXScsDQoJCSJwYWdlIiA9PiAnJHByZXRleHRbInBhZ2Ui XScsDQoJCSJuZXh0X2lkIiA9PiAnJHByZXRleHRbIm5leHRfaWQiXScsDQoJCSJuZXh0X3Rp dGxlIiA9PiAnJHByZXRleHRbIm5leHRfdGl0bGUiXScsDQoJCSJuZXh0X3V0aXRsZSIgPT4g JyRwcmV0ZXh0WyJuZXh0X3V0aXRsZSJdJywNCgkJInByZXZfaWQiID0+ICckcHJldGV4dFsi cHJldl9pZCJdJywNCgkJInByZXZfdGl0bGUiID0+ICckcHJldGV4dFsicHJldl90aXRsZSJd JywNCgkJInByZXZfdXRpdGxlIiA9PiAnJHByZXRleHRbInByZXZfdXRpdGxlIl0nLA0KCQki cGVybWxpbmtfbW9kZSIgPT4gJyRwcmV0ZXh0WyJwZXJtbGlua19tb2RlIl0nLA0KCSk7DQoJ Ly8gRWFjaCBlbnRyeSBoYXMgdGhlIG9wZXJhdGlvbiB0byBiZSBldmFsKClkIGxhdGVyIGFu ZCBhIGxpc3Qgb2YgZGlzYWxsb3dlZCBmaWVsZHMNCgkkYWxsT3BzID0gYXJyYXkoDQoJCSdl cScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPT09IENBU1QgVkFM VUUnLCAnJyksDQoJCSdub3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJ RUxEICE9PSBDQVNUIFZBTFVFJywgJycpLA0KCQknZ3QnID0+IGFycmF5KCdpc3NldChWQVJO QU1FKSAmJiBDQVNUIEZJRUxEID4gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2dlJyA9PiBhcnJh eSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0K CQknbHQnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBW QUxVRScsICcnKSwNCgkJJ2xlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBG SUVMRCA8PSBDQVNUIFZBTFVFJywgJycpLA0KCQknZGl2aXNpYmxlJyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCAlIENBU1QgVkFMVUUgPT09IDAnLCAnJyksDQoJ CSdpbicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxELCBleHBs b2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICE9PSBmYWxzZScsICcnKSwNCgkJJ25v dGluJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgaW5fYXJyYXkoRklFTEQsIGV4cGxv ZGUoIicuJGxpc3RfZGVsaW0uJyIsIFZBTFVFKSkgPT09IGZhbHNlJywgJycpLA0KCQknYmVn aW5zJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBWQUxVRSkg PT09IDAnLCAnJyksDQoJCSdjb250YWlucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYm IHN0cnBvcyhGSUVMRCwgVkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMnID0+IGFy cmF5KCdpc3NldChWQVJOQU1FKSAmJiBzdWJzdHIoRklFTEQsIHN0cmxlbihGSUVMRCkgLSBz dHJsZW4oVkFMVUUpKSA9PT0gVkFMVUUnLCAnJyksDQoJCSdkZWZpbmVkJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFycmF5KCch aXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgRklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnID0+IGFycmF5 KCdpc3NldChWQVJOQU1FKSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVtJyA9PiBh cnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVMRCknLCAn JyksDQoJCSdpc2FscGhhJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfYWxw aGEoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FsbnVtJyA9PiBhcnJheSgnaXNzZXQo VkFSTkFNRSkgJiYgY3R5cGVfYWxudW0oKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2xv d2VyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0cmluZylG SUVMRCknLCAnJyksDQoJCSdpc3VwcGVyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYg Y3R5cGVfdXBwZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0JyA9PiBhcnJh eSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfcHVuY3QoKHN0cmluZylGSUVMRCknLCAnJyks DQoJCSdpc3NwYWNlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfc3BhY2Uo KHN0cmluZylGSUVMRCknLCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0LCBnZSwg bHQsIGxlLCBlcSwgbm90LCBkaXZpc2libGUiOw0KCSRjYXNlT3BzID0gImlzbG93ZXIsIGlz dXBwZXIiOw0KCSRzcGFjZU9wcyA9ICJpc251bSwgaXNhbHBoYSwgaXNhbG51bSwgaXNsb3dl ciwgaXN1cHBlciwgaXNwdW5jdCwgYmVnaW5zLCBjb250YWlucywgZW5kcyI7DQoJJGZpZWxk cyA9IGRvX2xpc3QoJGZpZWxkLCAkcGFyYW1fZGVsaW0pOw0KCSRudW1GbGRzID0gY291bnQo JGZpZWxkcyk7DQoJJG9wcyA9IGRvX2xpc3QoJG9wZXJhdG9yLCAkcGFyYW1fZGVsaW0pOw0K CSRudW1PcHMgPSBjb3VudCgkb3BzKTsNCgkkdmFscyA9IGRvX2xpc3QoJHZhbHVlLCAkcGFy YW1fZGVsaW0pOw0KCSRudW1WYWxzID0gY291bnQoJHZhbHMpOw0KCSRwYXJlbnRDYXRzID0g Jyc7IC8vIFBsYWNlaG9sZGVyIGZvciB0aGUgY29uY2F0ZW5hdGVkIGxpc3Qgb2YgY2F0ZWdv cnkgbGVhZiBub2Rlcw0KCSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCSR0eXBlID0gKCR0 aGlzZmlsZSkgPyAiZmlsZSIgOiAoKCR0aGlzbGluaykgPyAibGluayIgOiAoKCR0aGlzaW1h Z2UpID8gImltYWdlIiA6ICJhcnRpY2xlIikpOw0KCSRvdXQgPSBhcnJheSgpOw0KCSRpdGVy YXRpb25zID0gKCRudW1GbGRzID4gJG51bU9wcykgPyAkbnVtRmxkcyA6ICRudW1PcHM7DQoN Cglmb3IgKCRpZHggPSAwOyAkaWR4IDwgJGl0ZXJhdGlvbnM7ICRpZHgrKykgew0KCQkkZmxk ID0gKCRpZHggPCAkbnVtRmxkcykgPyAkZmllbGRzWyRpZHhdIDogJGZpZWxkc1swXTsgLy8g QWxsb3cgc2hvcnQtY2lyY3VpdA0KCQkkZmxkUGFydHMgPSBleHBsb2RlKCRtb2RfZGVsaW0s ICRmbGQpOw0KCQkkdmFsID0gKCRpZHggPCAkbnVtVmFscykgPyAkdmFsc1skaWR4XSA6ICcn Ow0KCQkkdmFsUGFydHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICR2YWwpOw0KCQkkb3AgPSAo JGlkeCA8ICRudW1PcHMgJiYgJG9wc1skaWR4XSAhPSAnJykgPyAkb3BzWyRpZHhdIDogKCgk ZmxkUGFydHNbMF09PSJwYXJlbnQiKSA/ICJjb250YWlucyIgOiAiZXEiKTsNCgkJJG9wUGFy dHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICRvcCk7DQoJCSRvcCA9IChhcnJheV9rZXlfZXhp c3RzKCRvcFBhcnRzWzBdLCAkYWxsT3BzKSkgPyAkb3BQYXJ0c1swXSA6ICJlcSI7DQoJCSRj YXN0ID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTlVN IikgJiYgKGluX2xpc3QoJG9wLCAkbnVtZXJpY09wcykpKSA/ICcoaW50KScgOiAnJzsNCgkJ JGxlbmd0aCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0g IkxFTiIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnc3RybGVuKEZJRUxE KScgOiAnJzsNCgkJJGtpbGxTcGFjZXMgPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAo JG9wUGFydHNbMV0gPT09ICJOT1NQQUNFIikgJiYgKGluX2xpc3QoJG9wLCAkc3BhY2VPcHMp KSkgPyB0cnVlIDogZmFsc2U7DQoJCSRzdHJpcEZsZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+ IDEpICYmIChpbl9hcnJheSgiTk9UQUdTIiwgJGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkkc3RyaXBWYWwgPSAoKGNvdW50KCR2YWxQYXJ0cykgPiAxKSAmJiAoaW5fYXJyYXko Ik5PVEFHUyIsICR2YWxQYXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJGNhc2Vfc2Vuc2l0 aXZlID0gKGluX2xpc3QoJG9wLCAkY2FzZU9wcykpID8gMSA6ICRjYXNlX3NlbnNpdGl2ZTsN CgkJaWYgKCRkZWJ1Zykgew0KCQkJZWNobyAnVEVTVCAnLigkaWR4KzEpLm47DQoJCQlkbXAo JGZsZFBhcnRzLCAkb3BQYXJ0cywgJHZhbFBhcnRzKTsNCgkJfQ0KCQkvLyBHZXQgdGhlIG9w ZXJhdG9yIHJlcGxhY2VtZW50IGNvZGUNCgkJJGV4Y2x1ZGUgPSBkb19saXN0KCRhbGxPcHNb JG9wXVsxXSk7DQoJCSRvcCA9ICRhbGxPcHNbJG9wXVswXTsNCg0KCQkvLyBBcyBsb25nIGFz IHRoZSBjdXJyZW50IG9wZXJhdG9yIGFsbG93cyB0aGlzIGZpZWxkLi4uDQoJCWlmICghaW5f YXJyYXkoJGZsZFBhcnRzWzBdLCAkZXhjbHVkZSkpIHsNCgkJCS8vIE1ha2UgdXAgdGhlIHRl c3QgZmllbGQgdmFyaWFibGUNCgkJCWlmIChpc3NldCgkdGhpc2ZpbGVbJGZsZFBhcnRzWzBd XSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzZmls ZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2xpbmtbJGZsZFBh cnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0gJyR0 aGlzbGlua1siJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2ltYWdl WyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZs ZCA9ICckdGhpc2ltYWdlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGFycmF5X2tl eV9leGlzdHMoJGZsZFBhcnRzWzBdLCAkYWxsUHR4dCkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQ YXJ0c1swXTsNCgkJCQkkZmxkID0gJGFsbFB0eHRbJHJmbGRdOw0KCQkJfSBlbHNlIGlmICgk ZmxkUGFydHNbMF0gPT0gInBhcmVudCIpIHsNCgkJCQkkbGV2ZWwgPSAnJzsNCgkJCQlmb3Jl YWNoICgkZmxkUGFydHMgYXMgJHBhcnQpIHsNCgkJCQkJaWYgKCRwYXJ0ID09ICJwYXJlbnQi KSB7DQoJCQkJCQkkdGhlQ2F0ID0gKCR0aGlzZmlsZSkgPyAkdGhpc2ZpbGVbJ2NhdGVnb3J5 J10gOiAoKCR0aGlzbGluaykgPyAkdGhpc2xpbmtbJ2NhdGVnb3J5J10gOiAoKCR0aGlzaW1h Z2UpID8gJHRoaXNpbWFnZVsnY2F0ZWdvcnknXSA6ICRwcmV0ZXh0WydjJ10pKTsNCgkJCQkJ fSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJDQVQiKSA9PT0gMCkgew0KCQkJCQkJJHRoZUNh dCA9ICR0aGlzYXJ0aWNsZVsiY2F0ZWdvcnkiLnN1YnN0cigkcGFydCwgMyldOw0KCQkJCQl9 IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkxWTCIpID09PSAwKSB7DQoJCQkJCQkkbGV2ZWwg PSBzdWJzdHIoJHBhcnQsIDMpOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJJHRyZWUgPSBnZXRU cmVlUGF0aChkb1NsYXNoKCR0aGVDYXQpLCAkdHlwZSk7DQoJCQkJaWYgKCRkZWJ1Zykgew0K CQkJCQllY2hvICJDQVRFR09SWSBUUkVFOiI7DQoJCQkJCWRtcCgkdHJlZSk7DQoJCQkJfQ0K CQkJCSRpdGVtcyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCAoJHRyZWUgYXMgJGxlYWYpIHsN CgkJCQkJaWYgKCRsZWFmWyduYW1lJ10gPT0gInJvb3QiIHx8ICRsZWFmWyduYW1lJ10gPT0g JHRoZUNhdCkgew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0gZWxzZSBpZiAoJGxldmVsID09 ICcnIHx8ICRsZXZlbCA9PSAkbGVhZlsnbGV2ZWwnXSkgew0KCQkJCQkJJGl0ZW1zW10gPSAk bGVhZlsnbmFtZSddOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSRwYXJlbnRDYXRzID0gJHJmbGQg PSBpbXBsb2RlKCIgIiwgJGl0ZW1zKTsNCgkJCQkkZmxkID0gJyRwYXJlbnRDYXRzJzsNCgkJ CX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJ0eHB2YXIiKSB7DQoJCQkJaWYgKGNvdW50 KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkk ZmxkID0gJyR2YXJpYWJsZVsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAo JGZsZFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykg PiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRfR0VU WyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0g InBvc3R2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRy ZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRfUE9TVFsiJy4kcmZsZC4nIl0n Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJzdnJ2YXIiKSB7DQoJ CQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRz WzFdOw0KCQkJCQkkZmxkID0gJyRfU0VSVkVSWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJ fSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInBocHZhciIpIHsNCgkJCQlpZiAoY291bnQo JGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRm bGQgPSAnJEdMT0JBTFNbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKGlz c2V0KCR0aGlzYXJ0aWNsZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gc3RydG9s b3dlcigkZmxkUGFydHNbMF0pOw0KCQkJCSRmbGQgPSAnJHRoaXNhcnRpY2xlWyInLiRyZmxk LiciXSc7DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAiTlVMTCIpIHsNCgkJCQkk c21kX2lmX3ZhciA9ICcnOw0KCQkJCSRmbGQgPSAnJHNtZF9pZl92YXInOw0KCQkJCSRyZmxk ID0gIk5VTEwiOw0KCQkJfSBlbHNlIHsNCgkJCQkkc21kX2lmX3ZhciA9ICRmbGRQYXJ0c1sw XTsNCgkJCQkkZmxkID0gJyRzbWRfaWZfdmFyJzsNCgkJCQkkcmZsZCA9ICJmaWVsZCIuKCRp ZHgqMSsxKTsNCgkJCX0NCgkJCSRybGZsZCA9ICJzbWRfaWZfbGVuXyIuJHJmbGQ7DQoJCQkk cmZsZCA9ICJzbWRfaWZfIi4kcmZsZDsNCg0KCQkJLy8gVGFrZSBhIGNvcHkgb2YgJGZsZCB0 byB1c2UgaW4gYW55IGlzc2V0KCkgcmVxdWVzdHMNCgkJCSRmbGRDbGVhbiA9ICRmbGQ7DQoJ CQlpZiAoJGtpbGxTcGFjZXMpIHsNCgkJCQkkZmxkID0gJ3ByZWdfcmVwbGFjZSgiL1xzKy8i LCIiLCcuJGZsZC4nKSc7DQoJCQl9DQoJCQlpZiAoJHN0cmlwRmxkKSB7DQoJCQkJJGZsZCA9 ICd0cmltKHN0cmlwX3RhZ3MoJy4kZmxkLicpKSc7DQoJCQl9DQoNCgkJCS8vIEZpbmQgdGhl IHJlYWwgdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0IChtYXkgYmUgYW5vdGhlciBmaWVsZCkN CgkJCWlmICgkdmFsUGFydHNbMF0gPT0gInVybHZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZh bFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwg PSAoaXNzZXQoJF9HRVRbJHZmbGRdKSAmJiAkX0dFVFskdmZsZF0gIT0gIiIpID8gJyRfR0VU WyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQp KTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAicG9zdHZhciIpIHsN CgkJCQlpZiAoY291bnQoJHZhbFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFy dHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJF9QT1NUWyR2ZmxkXSkgJiYgJF9QT1NUWyR2 ZmxkXSAhPSAiIikgPyAnJF9QT1NUWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBs YWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0 c1swXSA9PSAic3ZydmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID4gMSkgew0K CQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJJHZhbCA9IChpc3NldCgkX1NFUlZF UlskdmZsZF0pICYmICRfU0VSVkVSWyR2ZmxkXSAhPSAiIikgPyAnJF9TRVJWRVJbIicuJHZm bGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJ CX0NCgkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJ0eHB2YXIiKSB7DQoJCQkJaWYg KGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0K CQkJCQkkdmFsID0gKGlzc2V0KCR2YXJpYWJsZVskdmZsZF0pICYmICR2YXJpYWJsZVskdmZs ZF0gIT0gIiIpID8gJyR2YXJpYWJsZVsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVw bGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkdmFsUGFy dHNbMF0gPT0gInBocHZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZhbFBhcnRzKSA+IDEpIHsN CgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJEdMT0JB TFNbJHZmbGRdKSAmJiAkR0xPQkFMU1skdmZsZF0gIT0gIiIpID8gJyRHTE9CQUxTWyInLiR2 ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJ CQl9DQoJCQl9IGVsc2UgaWYgKHN0cnBvcygkdmFsUGFydHNbMF0sICI/IikgPT09IDApIHsN CgkJCQkkdmFsUGFydHNbMF0gPSBzdWJzdHIoc3RydG9sb3dlcigkdmFsUGFydHNbMF0pLCAx KTsNCgkJCQkkdmZsZCA9ICR2YWxQYXJ0c1swXTsNCgkJCQlpZiAoaXNzZXQoJHRoaXNmaWxl WyR2ZmxkXSkgJiYgJHRoaXNmaWxlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0 aGlzZmlsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5r WyR2ZmxkXSkgJiYgJHRoaXNsaW5rWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0 aGlzbGlua1siJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNpbWFn ZVskdmZsZF0pICYmICR0aGlzaW1hZ2VbJHZmbGRdICE9ICIiKSB7DQoJCQkJCSR2YWwgPSAn JHRoaXNpbWFnZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4 aXN0cygkdmZsZCwgJGFsbFB0eHQpICYmICRhbGxQdHh0WyR2ZmxkXSAhPSAiIikgew0KCQkJ CQkkdmFsID0gJGFsbFB0eHRbJHZmbGRdOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNh cnRpY2xlWyR2ZmxkXSkgJiYgJHRoaXNhcnRpY2xlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkk dmFsID0gJyR0aGlzYXJ0aWNsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSB7DQoJCQkJ CSR2YWwgPSBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9 DQoJCQl9IGVsc2Ugew0KCQkJCSR2ZmxkID0gInZhbCIuKCRpZHgqMSsxKTsNCgkJCQkkdmFs ID0gZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2YWxQYXJ0c1swXSkpOw0KCQkJ fQ0KCQkJJHZsZmxkID0gInNtZF9pZl9sZW5fIi4kdmZsZDsNCgkJCSR2ZmxkID0gInNtZF9p Zl8iLiR2ZmxkOw0KCQkJaWYgKCRzdHJpcFZhbCkgew0KCQkJCSR2YWwgPSAndHJpbShzdHJp cF90YWdzKCcuJHZhbC4nKSknOw0KCQkJfQ0KDQoJCQkvLyBSZXBsYWNlIHRoZSBzdHJpbmcg cGFydHMuLi4NCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiQ0FTVCIsICRjYXN0LCAkb3ApOw0K CQkJJGNtZCA9ICgkbGVuZ3RoKSA/IHN0cl9yZXBsYWNlKCJGSUVMRCIsICRsZW5ndGgsICRj bWQpIDogJGNtZDsNCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiRklFTEQiLCAoKCRjYXNlX3Nl bnNpdGl2ZSkgPyAkZmxkIDogJ3N0cnRvbG93ZXIoJy4kZmxkLicpJyksICRjbWQpOw0KCQkJ JGNtZCA9IHN0cl9yZXBsYWNlKCJWQVJOQU1FIiwgJGZsZENsZWFuLCAkY21kKTsNCgkJCSRj bWQgPSBzdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCRjYXNlX3NlbnNpdGl2ZSkgPyAnVkFMVUUn IDogJ3N0cnRvbG93ZXIoVkFMVUUpJyksICRjbWQpOw0KCQkJJGNtZCA9ICJAXCRyZXBsYWNl bWVudHNbJ3siLiRyZmxkLiJ9J10gPSAiLiRmbGQuIjsgXG5AXCRyZXBsYWNlbWVudHNbJ3si LiRybGZsZC4ifSddID0gc3RybGVuKCIuJGZsZC4iKTsgXG5AXCRyZXBsYWNlbWVudHNbJ3si LiR2ZmxkLiJ9J10gPSAiLiR2YWwuIjsgXG5AXCRyZXBsYWNlbWVudHNbJ3siLiR2bGZsZC4i fSddID0gc3RybGVuKCIuJHZhbC4iKTsgXG5cJG91dFtdID0gKCIuc3RyX3JlcGxhY2UoIlZB TFVFIiwgKCgkdmFsPT09IicnIiAmJiBzdHJwb3MoJG9wLCAic3RycG9zIikgIT09IGZhbHNl KSA/ICInICciIDogJHZhbCksICRjbWQpLiIpID8gJ3RydWUnIDogJ2ZhbHNlJzsiOw0KCQkJ aWYgKCRkZWJ1Zykgew0KCQkJCWRtcCgkY21kKTsNCgkJCX0NCgkJCS8vIC4uLiBhbmQgZXZh bHVhdGUgdGhlIGV4cHJlc3Npb24NCgkJCWV2YWwoJGNtZCk7DQoJCX0NCgl9DQoJaWYgKCRk ZWJ1Zykgew0KCQllY2hvICJSRVNVTFQ6IjsNCgkJZG1wKCRvdXQpOw0KCQllY2hvICJSRVBM QUNFTUVOVFM6IjsNCgkJZG1wKCRyZXBsYWNlbWVudHMpOw0KCX0NCglpZiAoJGRlYnVnID4g MSkgew0KCQllY2hvICJQUkVURVhUOiI7DQoJCWRtcCgkcHJldGV4dCk7DQoJCWVjaG8gIlRI SVMgQVJUSUNMRToiOw0KCQlkbXAoJHRoaXNhcnRpY2xlKTsNCgkJZWNobyAiVEhJUyBGSUxF OiI7DQoJCWRtcCgkdGhpc2ZpbGUpOw0KCQllY2hvICJUSElTIExJTks6IjsNCgkJZG1wKCR0 aGlzbGluayk7DQoJCWVjaG8gIlRISVMgSU1BR0U6IjsNCgkJZG1wKCR0aGlzaW1hZ2UpOw0K CX0NCgkvLyBDaGVjayBsb2dpYw0KCSRyZXN1bHQgPSAoJG91dCkgPyB0cnVlIDogZmFsc2U7 DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAiYW5kIiAmJiBpbl9hcnJheSgiZmFsc2Ui LCAkb3V0KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0KCWlmIChzdHJ0b2xvd2VyKCRs b2dpYykgPT0gIm9yIiAmJiAhaW5fYXJyYXkoInRydWUiLCAkb3V0KSkgew0KCQkkcmVzdWx0 ID0gZmFsc2U7DQoJfQ0KDQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNlKHN0cnRyKCR0aGluZywg JHJlcGxhY2VtZW50cyksICRyZXN1bHQpKTsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6 Im9yZGVyIjtzOjE6IjUiO3M6NDoiaGVscCI7czozMTU2MToiCTxwPjxkaXYgaWQ9InNtZF9o ZWxwIj48L3A+CgoJPGgxPnNtZF9pZjwvaDE+CgoJPHA+QSByZWFsbHkgc2ltcGxlLCBnZW5l cmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rlci4gQ2FuIHRlc3QgYW55IGZp ZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGZpbGUsIGltYWdlLCBs aW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIgb3IgPGNvZGU+Jmx0O3R4 cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gY29udGV4dCBmb3IgYSB2YXJpZXR5IG9mIGF0dHJp YnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFu PiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDI+RmVhdHVy ZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgbW9zdCBtYWpvciBhcnRpY2xlLCBmaWxl LCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMgc3VjaCBhcyBzZWN0aW9uLCBjYXRlZ29yeSwg Y3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0cmluZywgYXV0aG9yLCBib2R5LCBleGNlcnB0 LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFycywgc2VydmVyIHZhcnMsIHR4cCB2YXJzLCBw aHAgdmFycywgYW5kIHN1Yi1jYXRlZ29yeS9wYXJlbnQgY2hlY2tpbmc8L2xpPgoJCTxsaT5U ZXN0cyBpbmNsdWRlIGVxdWFsaXR5LCBpbmVxdWFsaXR5LCBsZXNzIHRoYW4sIGdyZWF0ZXIg dGhhbiwgZGl2aXNpYmxlIGJ5LCBlbXB0eSwgdXNlZCwgZGVmaW5lZCwgYmVnaW5zLCBlbmRz LCBjb250YWlucywgaXMgbnVtZXJpYyAvIGFscGhhIC8gYWxwaGFudW1lcmljIC8gbG93ZXJj YXNlIC8gdXBwZXJjYXNlLCBhbW9uZyBvdGhlcnM8L2xpPgoJCTxsaT5UZXN0cyBmb3IgbW9y ZSB0aGFuIG9uZSBjb25kaXRpb24gYXQgb25jZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNwYW4g Y2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gbG9naWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3MpIG9y IE9SIGxvZ2ljIChhbnkgdGVzdCBtdXN0IHBhc3MpPC9saT4KCQk8bGk+QWxsIHRlc3RlZCBm aWVsZHMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIHRvIHRoZSBjb250YWluZXIgc28geW91 IGNhbiBkaXNwbGF5IHRoZW08L2xpPgoJCTxsaT5VZ2x5IGFuZCB2ZXJ5IGRpcnR5LiBVc2Vz IDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+JiM4MjE3O3MgPGNvZGU+ZXZhbCgpPC9j b2RlPiBjb21tYW5kIHdoaWNoIG1vc3QgcHJvZ3JhbW1lcnMgY29uY3VyIHNob3VsZCBiZSBy ZW5hbWVkIDxjb2RlPmV2aWwoKTwvY29kZT48L2xpPgoJPC91bD4KCgk8aDI+QXV0aG9yPC9o Mj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29tbWVudEZvcm0iPlN0 ZWYgRGF3c29uPC9hPi4gQmFzZWQgb24gYW4gaWRlYSBicmV3aW5nIGluIHRoZSBiYWNrIG9m IG15IG1pbmQgd2hpbGUgaGFja2luZyBjaHNfaWZfdXJsdmFyLjwvcD4KCgk8aDI+SW5zdGFs bGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4g ZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzkz MC9zbWRfaWYiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8v c3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBp bnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVn aW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEg aHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI1 MzU3Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRo ZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmlu c3RhbGwsIHNpbXBseSBkZWxldGUgZnJvbSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdl LjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxwPlVzZSB0aGUgdGFnIGluIGFueSBwYWdlLCBm b3JtIG9yIGFydGljbGUgY29udGV4dC4gQ2FuIGFsc28gYmUgdXNlZCBpbnNpZGUgZmlsZSwg aW1hZ2Ugb3IgbGluayBsaXN0cyB0byB0YWtlIGFjdGlvbiBkZXBlbmRpbmcgb24gYXR0cmli dXRlcyBvZiB0aGUgY3VycmVudCBpdGVtLjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX2lm PC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0 byBjb21wYXJlIGEgZmllbGQgd2l0aCBhbm90aGVyIHZhbHVlLCBwdXQgdGhpcyB0YWcgd2l0 aCBhbGwgdGhyZWUgbWFuZGF0b3J5IGF0dHJpYnV0ZXMgKHNoYWRlZCBiZWxvdykuIEVhY2gg dGFrZSBhIHNlcmllcyBvZiBjb21tYS1zZXBhcmF0ZWQgbGlzdHMgJiM4MjEyOyB0aG91Z2gg dGhlIDxhIGhyZWY9IiNwYXJhbWRlbGltIj5jb21tYSBpcyBvdmVycmlkYWJsZTwvYT4gd2l0 aCB0aGUgcGFyYW1fZGVsaW0gYXR0cmlidXRlLiBJZiB0aGUgcmVzdWx0IG9mIGFsbCB0aGUg Y29tcGFyaXNvbiB0ZXN0cyBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gdGhl IGNvbnRhaW5lZCBibG9jayB3aWxsIGJlIGV4ZWN1dGVkLiBJZiB0aGUgcmVzdWx0IGlzIDxz cGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4sIGFueSA8Y29kZT4mbHQ7dHhwOmVsc2Ug LyZndDs8L2NvZGU+IHdpbGwgYmUgZXhlY3V0ZWQgaW5zdGVhZC4gV2l0aG91dCBhbnkgPGNv ZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPiBibG9jaywgbm90aGluZyBpcyBvdXRwdXQg aWYgdGhlIHJlc3VsdCBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4K Cgk8aDQgY2xhc3M9ImF0dHMgIiBpZD0iYXR0cmlidXRlcyI+QXR0cmlidXRlczwvaDQ+CgoJ PHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+ZmllbGQ8L3NwYW4+IDog dGhlIDxhIGhyZWY9IiNmaWVsZCI+ZmllbGRzPC9hPiB0byB0ZXN0PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPm9wZXJhdG9yPC9zcGFuPiA6IHRoZSA8YSBocmVm PSIjb3BlcmF0b3IiPm9wZXJhdGlvbnM8L2E+IGZvciBjb21wYXJpc29uIHdpdGggdGhhdCBm aWVsZCAoZS5nLiA8Y29kZT5lcTwvY29kZT4sIDxjb2RlPm5vdDwvY29kZT4sIDxjb2RlPmJl Z2luczwvY29kZT4sIGV0YykuIERlZmF1bHQgaXMgdXN1YWxseSA8Y29kZT5lcTwvY29kZT48 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+dmFsdWU8L3NwYW4+IDog dGhlIDxhIGhyZWY9IiN2YWx1ZSI+dmFsdWVzPC9hPiB3aXRoIHdoaWNoIHRvIGNvbXBhcmUg dGhlIGZpZWxkczwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bG9naWM8L3Nw YW4+IDogaG93IG11bHRpcGxlIHRlc3RzIGFyZSBqb2luZWQ6IDxzcGFuIGNsYXNzPSJjYXBz Ij5BTkQ8L3NwYW4+IG9yIE9SLiBEZWZhdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8 L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXNlX3NlbnNpdGl2 ZTwvc3Bhbj4gOiAxID0gY2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbjsgMCA9IGlnbm9yZSBj YXNlLiBEZWZhdWx0IGlzIDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBh cmFtX2RlbGltPC9zcGFuPiA6IGRlbGltaXRlciB1c2VkIGJldHdlZW4gZWFjaCBmaWVsZCwg b3BlcmF0b3Igb3IgdmFsdWUgaW4gYSBtdWx0aS10ZXN0LiBEZWZhdWx0IGlzIGEgY29tbWEg KCwpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5tb2RfZGVsaW08L3NwYW4+ IDogZGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGZpZWxkIG9yIG9wZXJhdG9yIG1v ZGlmaWVycyBmb3IgdXJsdmFyLCBwb3N0dmFyLCBzdnJ2YXIgYW5kIHR4cHZhci4gRGVmYXVs dCBpcyBhIGNvbG9uICg6KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlz dF9kZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIgdXNlZCB3aGVuIHNwZWNpZnlpbmcgYSBsaXN0 IG9mIHZhbHVlcyB0byBjaGVjayB2aWEgdGhlIDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5u b3RpbjwvY29kZT4gb3BlcmF0b3JzLiBEZWZhdWx0IGlzIGEgZm9yd2FyZC1zbGFzaCAoLyk8 L2xpPgoJPC91bD4KCgk8cD5UaGUgbGlzdHMgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciwgaS5l LiB0aGUgMXN0IGZpZWxkIHVzZXMgdGhlIDFzdCBvcGVyYXRvciBpbiB0aGUgbGlzdCBhbmQg Y29tcGFyZXMgaXQgdG8gdGhlIDFzdCB2YWx1ZTsgdGhlIDJuZCBmaWVsZCB1c2VzIHRoZSAy bmQgb3BlcmF0b3IgaW4gdGhlIGxpc3QgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSAybmQgdmFs dWUsIGFuZCBzbyBvbi4gVmFsdWVzIHNob3VsZCB1c3VhbGx5IGJlIHNwZWNpZmllZCB3aXRo IHBsYWNlaG9sZGVycyB0byBtYWludGFpbiBvcmRlcjogZS5nLiA8Y29kZT52YWx1ZT0mcXVv dDssIDQsLCB0b3AmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPk5vdGUgdGhhdCwgYWx0aG91Z2gg dGhlIGZpcnN0IHRocmVlIGF0dHJpYnV0ZXMgYXJlIGNvbnNpZGVyZWQgbWFuZGF0b3J5LCBp ZiB5b3UgaGFwcGVuIHRvIHJlcXVpcmUgdGhlIGRlZmF1bHQgb3BlcmF0b3IgZm9yIGFsbCB5 b3VyIHRlc3RzLCB5b3UgY2FuIHNhZmVseSBvbWl0IDxjb2RlPm9wZXJhdG9yPC9jb2RlPi4g U2ltaWxhcmx5IHdpdGggdmFsdWVzOiBpZiB5b3UgYXJlIGVudGlyZWx5IHRlc3RpbmcgdGhl IGV4aXN0ZW5jZSBvciB0eXBlIG9mIHZhcmlhYmxlcywgeW91IGNhbiBvbWl0IHRoZSA8Y29k ZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVyIGlmIHlvdSB3aXNoLiBBbmQgaWYgeW91IGFyZSB0 ZXN0aW5nIHRoZSBzYW1lIDxjb2RlPmZpZWxkPC9jb2RlPiBhZ2FpbiBhbmQgYWdhaW4gZm9y IGRpZmZlcmluZyBjb25kaXRpb25zLCB5b3UgY2FuIGxpc3QgaXQganVzdCBvbmNlIGFzIGEg Y29udmVuaWVudCBzaG9ydGN1dC48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJm aWVsZCI+ZmllbGQ8L2g0PgoKCTxwPkxpc3Qgb2YgZmllbGQgbG9jYXRpb25zIHRvIGxvb2sg YXQuIFNvbWUgdXNlZnVsIHZhbHVlcyBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+c2Vj dGlvbjwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5jYXRlZ29yeTwvY29kZT4gKG9yIDxjb2Rl PmNhdGVnb3J5MTwvY29kZT4sIG9yIDxjb2RlPmNhdGVnb3J5MjwvY29kZT4gaWYgb24gYW4g YXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPmF1dGhvcmlkPC9jb2RlPiBvciA8Y29k ZT5hdXRob3I8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+aWQ8L2NvZGU+IChmaWxlL2xpbmsv aW1hZ2UvYXJ0aWNsZSBJRCkuIEluIGFuIGluZGl2aWR1YWwgYXJ0aWNsZSBjb250ZXh0LCB1 c2UgPGNvZGU+dGhpc2lkPC9jb2RlPiBpbnN0ZWFkPC9saT4KCQk8bGk+PGNvZGU+cXVlcnk8 L2NvZGU+ICh0aGUgcXVlcnkgc3RyaW5nIGZyb20gdGhlIHNlYXJjaCBmb3JtKTwvbGk+CgkJ PGxpPjxjb2RlPnBnPC9jb2RlPiAodGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgaW4gbGlzdHMp PC9saT4KCQk8bGk+PGNvZGU+bW9udGg8L2NvZGU+IChjdXJyZW50IG1vbnRoIGZpZWxkIGZy b20gdGhlIGFkZHJlc3MgYmFyKTwvbGk+CgkJPGxpPjxjb2RlPnN0YXR1czwvY29kZT4gKGRv Y3VtZW50IHN0YXR1czogMjAwLCA0MDQsIDQwMywgZXRjKTwvbGk+CgkJPGxpPjxjb2RlPnBh Z2U8L2NvZGU+ICh0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gUGFnZSB0ZW1w bGF0ZSB1c2VkIGJ5IHRoaXMgc2VjdGlvbik8L2xpPgoJCTxsaT48Y29kZT5uZXh0X2lkPC9j b2RlPiAvIDxjb2RlPnByZXZfaWQ8L2NvZGU+IChJRCBvZiBuZXh0L3ByZXYgZG9jdW1lbnQg aWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfdGl0bGU8L2NvZGU+ IC8gPGNvZGU+cHJldl90aXRsZTwvY29kZT4oVGl0bGUgb2YgbmV4dC9wcmV2IGRvY3VtZW50 IGlmIG9uIGFydGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29kZT5uZXh0X3V0aXRsZTwvY29k ZT4gLyA8Y29kZT5wcmV2X3V0aXRsZTwvY29kZT4gKHVybC10aXRsZSBvZiBuZXh0L3ByZXYg ZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPnBlcm1saW5r X21vZGU8L2NvZGU+ICh0YWtlIGFjdGlvbiBiYXNlZCBvbiBvbmUgb2YgdGhlIG1lc3N5L2Ns ZWFuIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHNjaGVtZXMpPC9saT4KCQk8bGk+ PGNvZGU+b3RoZXIgYXJ0aWNsZS9maWxlL2xpbmsgZmllbGQ8L2NvZGU+IChlLmcuIGJvZHks IGV4Y2VycHQsIGFydGljbGVfaW1hZ2UsIGtleXdvcmRzLCBsaW5rYW5tZSwgZmlsZW5hbWUs IGRvd25sb2FkcywgJiM4MjMwOyk8L2xpPgoJCTxsaT48Y29kZT5teV9jdXN0b21fZmllbGRf bmFtZTwvY29kZT4gKGFueSBjdXN0b20gZmllbGRzIHlvdSBoYXZlIGRlZmluZWQpPC9saT4K CQk8bGk+PGNvZGU+dXJsdmFyOnZhcl9uYW1lPC9jb2RlPiAoYW55IHZhcmlhYmxlIGluIHRo ZSBhZGRyZXNzIGJhciBhZnRlciB0aGUgPGNvZGU+PzwvY29kZT4pPC9saT4KCQk8bGk+PGNv ZGU+cG9zdHZhcjp2YXJfbmFtZTwvY29kZT4gKGFueSB2YXJpYWJsZSBwb3N0ZWQgZnJvbSBh biA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZm9ybSk8L2xpPgoJCTxsaT48Y29k ZT5zdnJ2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgc3RhbmRhcmQgc2VydmVyIHZhcmlhYmxl LCBlLmcuIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5UKTwvbGk+ CgkJPGxpPjxjb2RlPnR4cHZhcjpteV92YXI8L2NvZGU+IChhbnkgVGV4dHBhdHRlcm4gdmFy aWFibGUgc2V0IHdpdGggPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O215X3Zh ciZxdW90OyAvJmd0OzwvY29kZT4pPC9saT4KCQk8bGk+PGNvZGU+cGhwdmFyOm15X3Zhcjwv Y29kZT4gKGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB2YXJpYWJsZSA8ZW0+ aW4gdGhlIGdsb2JhbCBzY29wZTwvZW0+KTwvbGk+CgkJPGxpPjxjb2RlPnBhcmVudDpvcHRp b25hbF9tb2RpZmllcnM8L2NvZGU+ICh3aGV0aGVyIHRoZSBnaXZlbiBjYXRlZ29yeSBpcyBh IGRlc2NlbmRlbnQgb2YgYW5vdGhlciBjYXRlZ29yeSk8L2xpPgoJCTxsaT48Y29kZT5OVUxM PC9jb2RlPiAodXNlZnVsIHdoZW4gY29tcGFyaW5nIGFyYml0cmFyeSB2YWx1ZXMgZm9yIGVt cHRpbmVzcyk8L2xpPgoJPC91bD4KCgk8cD5JZiB5b3Ugc3BlY2lmeSBhIGZpZWxkIG5hbWUg dGhhdCBkb2VzIG5vdCBleGlzdCwgdGhlIHRleHQgeW91IHVzZSB3aWxsIGJlIHRha2VuIHZl cmJhdGltIGluIG1vc3QgY2FzZXMuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRvIGNvbXBhcmUg YSBmaWVsZCB0aGF0IG1pZ2h0IGNvbnRhaW4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3Nw YW4+IChlLmcgPGNvZGU+Ym9keTwvY29kZT4pLCBhZGQgdGhlIG1vZGlmaWVyIDxjb2RlPjpO T1RBR1M8L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhlIGZpZWxkLiBJdCB3aWxsIGhhdmUgaXRz IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMi PlBIUDwvc3Bhbj4gdGFncyBzdHJpcHBlZCBmcm9tIGl0IGFuZCB3aWxsIGFsc28gYmUgdHJp bW1lZCB0byByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzLjwvcD4KCgk8cD5U aGUgc3BlY2lhbCBmaWVsZCA8Y29kZT5wYXJlbnQ8L2NvZGU+IGNoZWNrcyB0aGUgcGFyZW50 IGNhdGVnb3J5IGZvciBhIG1hdGNoLiBVbmxpa2UgdGhlIG90aGVyIGZpZWxkIHR5cGVzLCB0 aGUgZGVmYXVsdCA8YSBocmVmPSIjb3BlcmF0b3IiPm9wZXJhdG9yPC9hPiBmb3IgcGFyZW50 IGlzICYjODIxNjtjb250YWlucyYjODIxNzsuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZW50aXJl IHRyZWUgaXMgY2hlY2tlZCBmb3IgYSBtYXRjaCwgc3RhcnRpbmcgZnJvbSB0aGUgdG9wIG9m IHRoZSB0cmVlIGRvd24gdG8gdGhlIGN1cnJlbnQgY2F0ZWdvcnkuIEludGVybmFsbHksIHRo ZSBwbHVnaW4gbWFrZXMgdXAgYSAmIzgyMjA7YnJlYWRjcnVtYiB0cmFpbCYjODIyMTsgb2Yg Y2F0ZWdvcmllcyBpbiB0aGUgY3VycmVudCBicmFuY2gsIGVhY2ggc2VwYXJhdGVkIGJ5IGEg c3BhY2UsIHNvIHRlc3RpbmcgZm9yIGVxdWFsaXR5IHdvdWxkIHJlcXVpcmUgcHV0dGluZyB0 aGVtIGFsbCBpbiB0aGUgPGEgaHJlZj0iI3ZhbHVlIj52YWx1ZTwvYT4gcGFyYW1ldGVyLjwv cD4KCgk8cD5Zb3UgYXJlIG9mIGNvdXJzZSBmcmVlIHRvIGNob29zZSBhbiBhbHRlcm5hdGl2 ZSBvcGVyYXRvcjsgPGNvZGU+YmVnaW5zPC9jb2RlPiBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGVz dGluZyBpZiB0aGUgdG9wIGxldmVsIGNhdGVnb3J5IG1hdGNoZXMgdGhlIG9uZSBnaXZlbiBp biB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IGZpZWxkLjwvcD4KCgk8cD5JZiB5b3UgdXNlIDxj b2RlPnBhcmVudDpMVkxuPC9jb2RlPiwgdGhlIGNvbXBhcmlzb24gd2lsbCBiZSByZXN0cmlj dGVkIHRvIHRoYXQgJiM4MjIwO2xldmVsJiM4MjIxOyBvZiBzdWItY2F0ZWdvcnk7IExWTDEg aXMgdGhlICYjODIyMDt0b3AmIzgyMjE7IGxldmVsLCBMVkwyIGlzIHRoZSBuZXh0IHN1Yi1j YXRlZ29yeSBsZXZlbCwgYW5kIHNvIG9uLiBXaGVuIHVzaW5nIHRoZXNlIG1vZGlmaWVycywg dGhlICYjODIxNjtlcSYjODIxNzsgb3BlcmF0b3IgYmVjb21lcyBtb3JlIHVzZWZ1bCBiZWNh dXNlIHlvdSBhcmUgY29tcGFyaW5nIGEgc2luZ2xlIHBhcmVudCBjYXRlZ29yeS48L3A+CgoJ PHA+V2hlbiB1c2luZyBhcnRpY2xlcywgeW91IGNhbiBmdXJ0aGVyIG1vZGlmeSB0aGUgYmVo YXZpb3VyIG9mIHRoZSBwYXJlbnQgdXNpbmcgdGhlIDxjb2RlPkNBVG48L2NvZGU+IHN5bnRh eCAod2hlcmUgJiM4MjE2O24mIzgyMTc7IGlzIDEgb3IgMikuIFNwZWNpZnlpbmcgJiM4MjIw O3BhcmVudCYjODIyMTsgd2l0aG91dCA8Y29kZT5DQVRuPC9jb2RlPiB3aWxsIHVzZSB0aGUg Z2xvYmFsIGNhdGVnb3J5ICg8Y29kZT4/Yz08L2NvZGU+KS4gSWYgeW91IGFkZCA8Y29kZT46 Q0FUbjwvY29kZT4gaXQgd2lsbCBpbnN0ZWFkIGNvbXBhcmUgdGhlIGFydGljbGUmIzgyMTc7 cyBjYXRlZ29yeTEgb3IgY2F0ZWdvcnkyIHJlc3BlY3RpdmVseS48L3A+CgoJPHA+WW91IGNh biB1c2UgPHNwYW4gY2xhc3M9ImNhcHMiPkNBVDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJj YXBzIj5MVkw8L3NwYW4+IGluIGNvbWJpbmF0aW9uLCBpbmRlcGVuZGVudGx5IG9yIG5vdCBh dCBhbGwuIFRoaXMgYWxsb3dzIGNvbXBhcmlzb25zIHN1Y2ggYXMgJiM4MjIwO2lmIHRoZSAy bmQgc3ViLWNhdGVnb3J5IG9mIGNhdGVnb3J5MSBlcXVhbHMgYmxhaGJsYWgmIzgyMjE7IG9y ICYjODIyMDtpZiBjYXRlZ29yeTIgaXMgYSBjaGlsZCBvZiBibGFoYmxhaCYjODIyMTsuIFNl ZSA8YSBocmVmPSIjZWc0Ij5FeGFtcGxlIDQ8L2E+LjwvcD4KCgk8cD5PbmUgb3RoZXIgc3Bl Y2lhbCBmaWVsZCBpcyA8Y29kZT5OVUxMPC9jb2RlPi4gVGhpcyBpcyBleGFjdGx5IHdoYXQg aXQgc2F5cyBpdCBpczogZW1wdHkuIFRoZSByZWFzb24gZm9yIGl0cyBpbmNsdXNpb24gaXMg dGhhdCBzb21ldGltZXMgeW91IHdpc2ggdG8gdGVzdCBzb21ldGhpbmcgdGhhdCBpc24mIzgy MTc7dCBhIHRydWUgdmFyaWFibGUgJiM4MjEyOyBlLmcuIGEgcmVwbGFjZW1lbnQgdmFyaWFi bGUgZnJvbSBzbWRfdmFycyBvciBzbWRfZWFjaCAmIzgyMTI7IHRvIHNlZSBpZiBpdCYjODIx NztzIGVtcHR5IG9yIG5vdC48L3A+CgoJPHA+SWYgeW91IHdlcmUgdG8gcHV0IHRoaXM6PC9w PgoKCTxwPjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3tyZXN1bHR9JnF1b3Q7 IG9wZXJhdG9yPSZxdW90O2lzZW1wdHkmcXVvdDsmZ3Q7PC9jb2RlPjwvcD4KCgk8cD55b3Ug d291bGQgbm90IGdldCB0aGUgcmVzdWx0IHlvdSBleHBlY3QgKGl0JiM4MjE3O3MgcHJldHR5 IGVzb3RlcmljIGJ1dCBpdCByZXZvbHZlcyBhcm91bmQgdGhlIGZhY3QgdGhhdCA8Y29kZT4m cXVvdDsmcXVvdDs8L2NvZGU+IChhcyBhIHZhcmlhYmxlIG5hbWUpIGlzIG5vdCBlbXB0eSwg aXQmIzgyMTc7cyBpbnZhbGlkKS4gVG8gZ2V0IHJvdW5kIHRoaXMgeW91IG1heSB1c2UgPHNw YW4gY2xhc3M9ImNhcHMiPk5VTEw8L3NwYW4+IGFzIGEgcGxhY2Vob2xkZXIgYW5kIG1vdmUg dGhlIHRoaW5nIHlvdSB3YW50IHRvIGNoZWNrIGludG8gdGhlIDxjb2RlPnZhbHVlPC9jb2Rl PiBpbnN0ZWFkLCBlLmc6PC9wPgoKCTxwPjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZx dW90O05VTEwmcXVvdDsgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsgdmFsdWU9JnF1b3Q7e3Jl c3VsdH0mcXVvdDsmZ3Q7PC9jb2RlPjwvcD4KCgk8cD53aWxsIHRlc3QgdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBvYmplY3QgKGkuZS4gJiM4MjE2O2VtcHRpbmVzcyYj ODIxNzspIHRvIHNlZSBpZiBpdCYjODIxNztzIGVxdWFsIHRvIHRoZSA8Y29kZT57cmVzdWx0 fTwvY29kZT4gcmVwbGFjZW1lbnQgdmFyaWFibGUuIFlvdSBjYW4gdXNlIHNpbWlsYXIgbG9n aWMgdG8gdGVzdCBmb3Igb3B0aW9uYWwgdmFyaWFibGVzIGJ5IHN3YXBwaW5nIHRoZSBmaWVs ZCBhbmQgdmFsdWUsIGxpa2UgdGhpczo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7NyZxdW90OyBvcGVyYXRvcj0mcXVvdDtndCZxdW90OyB2YWx1ZT0mcXVv dDt7cmVzdWx0fSZxdW90OyZndDs8L2NvZGU+PC9wPgoKCTxwPlRoYXQgd291bGQgc2VlIGlm IHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZSA8Y29kZT57cmVzdWx0fTwvY29kZT4gd2FzIGxl c3MgdGhhbiBvciBlcXVhbCB0byA3ICh0aGF0JiM4MjE3O3Mgbm90IGEgdHlwbywgdGhlIGxv Z2ljIGlzIHJldmVyc2VkIGluIHRoaXMgY2FzZTogaXQgaXMgaW50ZXJwcmV0ZWQgYXM6ICYj ODIyMDtpcyA3IGdyZWF0ZXIgdGhhbiB7cmVzdWx0fSYjODIyMTssIHdoaWNoIGlzIHRoZSBz YW1lIGFzICYjODIyMDtpcyB7cmVzdWx0fSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyYjODIy MTshKTwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9Im9wZXJhdG9yIj5vcGVyYXRv cjwvaDQ+CgoJPHA+TGlzdCBvZiBvcGVyYXRvcnMgdG8gYXBwbHksIGluIG9yZGVyLCB0byBl YWNoIGZpZWxkLiBDaG9vc2UgZnJvbTo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT5lcTwvY29k ZT4gRXF1YWwgKHRoZSBkZWZhdWx0IGZvciBhbGwgZXhjZXB0ICYjODIxNjtwYXJlbnQmIzgy MTc7KTwvbGk+CgkJPGxpPjxjb2RlPm5vdDwvY29kZT4gTm90IGVxdWFsPC9saT4KCQk8bGk+ PGNvZGU+bHQ8L2NvZGU+IExlc3MgdGhhbjwvbGk+CgkJPGxpPjxjb2RlPmd0PC9jb2RlPiBH cmVhdGVyIHRoYW48L2xpPgoJCTxsaT48Y29kZT5sZTwvY29kZT4gTGVzcyB0aGFuIG9yIGVx dWFsIHRvPC9saT4KCQk8bGk+PGNvZGU+Z2U8L2NvZGU+IEdyZWF0ZXIgdGhhbiBvciBlcXVh bCB0bzwvbGk+CgkJPGxpPjxjb2RlPmluPC9jb2RlPiBGaWVsZCBpcyBvbmUgb2YgYSBsaXN0 IG9mIHZhbHVlczwvbGk+CgkJPGxpPjxjb2RlPm5vdGluPC9jb2RlPiBGaWVsZCBpcyBub3Qg b25lIG9mIHRoZSBnaXZlbiBsaXN0IG9mIHZhbHVlczwvbGk+CgkJPGxpPjxjb2RlPmRpdmlz aWJsZTwvY29kZT4gRmllbGQgaXMgZXhhY3RseSBkaXZpc2libGUgYnkgdGhlIHZhbHVlPC9s aT4KCQk8bGk+PGNvZGU+YmVnaW5zPC9jb2RlPiBGaWVsZCBiZWdpbnMgd2l0aCBhIHNlcXVl bmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5jb250YWluczwvY29kZT4gRmll bGQgY29udGFpbnMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIChkZWZhdWx0IGZvciAmIzgy MTY7cGFyZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48Y29kZT5lbmRzPC9jb2RlPiBGaWVsZCBl bmRzIHdpdGggYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+PGNvZGU+aXNl bXB0eTwvY29kZT4gRmllbGQgaXMgZW1wdHkgKGNvbnRhaW5zIG5vdGhpbmcpPC9saT4KCQk8 bGk+PGNvZGU+aXN1c2VkPC9jb2RlPiBGaWVsZCBoYXMgc29tZSB2YWx1ZTwvbGk+CgkJPGxp Pjxjb2RlPmRlZmluZWQ8L2NvZGU+IEZpZWxkIGlzIHNldCAodXNlZnVsIHdpdGggdXJsdmFy IHZhcmlhYmxlcyk8L2xpPgoJCTxsaT48Y29kZT51bmRlZmluZWQ8L2NvZGU+IEZpZWxkIGlz IG5vdCBzZXQsIG9yIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gbGluZTwvbGk+CgkJPGxpPjxjb2RlPmlzbnVtPC9jb2RlPiBGaWVsZCBpcyBhIG51 bWJlcjwvbGk+CgkJPGxpPjxjb2RlPmlzYWxwaGE8L2NvZGU+IEZpZWxkIGNvbnRhaW5zIGNo YXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2RlPmlzYWxudW08L2NvZGU+IEZpZWxkIGNv bnRhaW5zIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHk8L2xpPgoJCTxsaT48Y29kZT5p c2xvd2VyPC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIGxvd2VyIGNh c2U8L2xpPgoJCTxsaT48Y29kZT5pc3VwcGVyPC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4g dGhlIGZpZWxkIGlzIHVwcGVyIGNhc2U8L2xpPgoJCTxsaT48Y29kZT5pc3B1bmN0PC9jb2Rl PiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIHNvbWUgcHVuY3R1YXRpb24gbWFy azwvbGk+CgkJPGxpPjxjb2RlPmlzc3BhY2U8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0 aGUgZmllbGQgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAob3IgdGFiLCBuZXdsaW5lLCBl dGMpPC9saT4KCTwvdWw+CgoJPHA+V2l0aCB0aGUgY29tcGFyaXNvbiBvcGVyYXRvcnMgKHBy aW1hcmlseSBndCwgbHQsIGdlLCBsZSkgeW91IG1heSBmaW5kIG9kZCBiZWhhdmlvdXIgd2hl biBjb21wYXJpbmcgbnVtYmVycy4gRm9yIGV4YW1wbGUsIDxjb2RlPnVybHZhcjpwaWMgZ3Qg NjwvY29kZT4gd2lsbCByZXR1cm4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IGlm IDxjb2RlPnBpYzwvY29kZT4gaXMgc2V0IHRvICYjODIyMDtmcmVkJiM4MjIxOy4gVGhpcyBp cyBiZWNhdXNlIHRoZSB3b3JkICYjODIyMDtmcmVkJiM4MjIxOyAob3IgYXQgbGVhc3QgdGhl ICYjODIyMDtjaGFyYWN0ZXIgZiYjODIyMTspIGlzIGdyZWF0ZXIgaW4gdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5BU0NJSTwvc3Bhbj4gdGFibGUgdGhhbiB0aGUgJiM4MjIwO2NoYXJhY3Rl ciA2JiM4MjIxOy48L3A+CgoJPHA+VG8gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0sIHlvdSBt YXkgYXBwZW5kIDxjb2RlPjpOVU08L2NvZGU+IHRvIHRoZSBlbmQgb2YgYW55IG9mIHRoZXNl IG9wZXJhdG9ycyB0byBmb3JjZSB0aGUgcGx1Z2luIHRvIGNoZWNrIHRoYXQgdGhlIHZhbHVl cyBhcmUgaW50ZWdlcnMuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRvIGNvbXBhcmUgdGhlIGxl bmd0aCBvZiBhIGZpZWxkIG9yIHZhbHVlLCBhcHBlbmQgPGNvZGU+OkxFTjwvY29kZT4gdG8g YW55IG9mIHRoZSBudW1lcmljYWwgY29tcGFyaXNvbiBvcGVyYXRvcnMuIEl0IGRvZXNuJiM4 MjE3O3QgbWFrZSBzZW5zZSB0byB1c2UgYm90aCA8Y29kZT46TlVNPC9jb2RlPiBhbmQgPGNv ZGU+OkxFTjwvY29kZT4gdG9nZXRoZXIsIHNvIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2 ZS48L3A+CgoJPHA+VGhlIDxjb2RlPmJlZ2luczwvY29kZT4sIDxjb2RlPmVuZHM8L2NvZGU+ IGFuZCA8Y29kZT5jb250YWluczwvY29kZT4gb3BlcmF0b3JzLCBhbG9uZyB3aXRoIGFueSBv ZiB0aGUgPGNvZGU+aXM8L2NvZGU+IG9wZXJhdG9ycyAoZXhjZXB0IDxjb2RlPmlzc3BhY2U8 L2NvZGU+KSwgY2FuIHRha2UgYW4gZXh0cmEgcGFyYW1ldGVyIGFzIHdlbGwuIFNpbmNlIHRo ZXkgY29tcGFyZSBldmVyeSBjaGFyYWN0ZXIgYWdhaW5zdCB0aGUgZ2l2ZW4gYmVoYXZpb3Vy LCBzcGFjZSBjaGFyYWN0ZXJzIGNhbiBtZXNzIHRoaW5ncyB1cCBhIGJpdC4gRm9yIGV4YW1w bGUgPGNvZGU+ZmllbGQ9JnF1b3Q7Y3VzdG9tMSZxdW90OyBvcGVyYXRvcj0mcXVvdDtpc2xv d2VyJnF1b3Q7PC9jb2RlPiB3aWxsIGZhaWwgaWYgY3VzdG9tMSBjb250YWlucyAmIzgyMjA7 dGhpcyBpcyBhIHRlc3QmIzgyMjE7LiBPciBjb21wYXJpbmcgc29tZXRoaW5nIHRvIDxjb2Rl PmJvZHk8L2NvZGU+IGNhbiBmYWlsIGJlY2F1c2UgdGhlIGJvZHkgb2Z0ZW4gc3RhcnRzIHdp dGggYSBudW1iZXIgb2Ygc3BhY2UgY2hhcmFjdGVycy4gVG8gY2lyY3VtdmVudCB0aGlzLCBh ZGQgPGNvZGU+Ok5PU1BBQ0U8L2NvZGU+IHRvIHRoZSBvcGVyYXRvciB3aGljaCB3aWxsIHJl bW92ZSBhbGwgc3BhY2VzIGZyb20gdGhlIHN0cmluZyBiZWZvcmUgdGVzdGluZyBpdC48L3A+ CgoJPHA+Tm90ZSBhbHNvIHRoYXQgd2hpbGUgPGNvZGU+ZGVmaW5lZDwvY29kZT4gYW5kIDxj b2RlPnVuZGVmaW5lZDwvY29kZT4gZGlmZmVyIHNlbWFudGljYWxseSBmcm9tIDxjb2RlPmlz dXNlZDwvY29kZT4gYW5kIDxjb2RlPmlzZW1wdHk8L2NvZGU+IChyZXNwZWN0aXZlbHkpLCB0 aGUgd2F5IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFzc2lnbnMgdmFyaWFibGVz IG1lYW5zIHRoYXQsIGZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgdGVybXMgYXJlIGludGVyY2hh bmdlYWJsZS4gV2hlbiBkZWFsaW5nIHdpdGggdXJsdmFycywgcG9zdHZhcnMgYW5kIHN2cnZh cnMsIHRoZSB0d28gc2V0cyBvZiBvcGVyYXRvcnMgYmVoYXZlIGluZGVwZW5kZW50bHksIGFz IHlvdSB3b3VsZCBleHBlY3QuIFNlZSA8YSBocmVmPSIjZWc1Ij5FeGFtcGxlIDU8L2E+IGZv ciBtb3JlLiBOZWl0aGVyIDxjb2RlPmRlZmluZWQ8L2NvZGU+IG5vciA8Y29kZT51bmRlZmlu ZWQ8L2NvZGU+IG1ha2Ugc2Vuc2Ugd2l0aCA8Y29kZT5wYXJlbnQ8L2NvZGU+LCBzbyB0aGV5 IGFyZSBmb3JiaWRkZW4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0idmFsdWUi PnZhbHVlPC9oND4KCgk8cD5MaXN0IG9mIHZhbHVlcyB0byBjb21wYXJlIGVhY2ggZmllbGQg aW4gdHVybiB0by4gQ2FuIGJlIHN0YXRpYyB2YWx1ZXMvdGV4dCBvciB0aGUgbmFtZSBvZiBh bnkgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQsIGxpa2UgdGhvc2UgZ2l2 ZW4gaW4gPGEgaHJlZj0iI2ZpZWxkIj5maWVsZDwvYT4gKGV4Y2VwdCAmIzgyMjA7cGFyZW50 JiM4MjIxOykuPC9wPgoKCTxwPlRvIGRpc3Rpbmd1aXNoIGEgPHNwYW4gY2xhc3M9ImNhcHMi PlRYUDwvc3Bhbj4gZmllbGQgZnJvbSBzdGF0aWMgdGV4dCwgcHJlZml4IHRoZSBmaWVsZCBu YW1lIHdpdGggPGNvZGU+PzwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT52YWx1ZT0mcXVv dDt0aXRsZSZxdW90OzwvY29kZT4gd2lsbCBjb21wYXJlIHlvdXIgY2hvc2VuIGZpZWxkIGFn YWluc3QgdGhlIHdvcmQgJiM4MjIwO3RpdGxlJiM4MjIxOywgd2hlcmVhcyA8Y29kZT52YWx1 ZT0mcXVvdDs/dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3VyIGZpZWxkIGFn YWluc3QgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIHRpdGxlLjwvcD4KCgk8cD5JZiB5 b3Ugd2lzaCB0byBjb21wYXJlIGEgdmFsdWUgdGhhdCBtaWdodCBjb250YWluIDxzcGFuIGNs YXNzPSJjYXBzIj5IVE1MPC9zcGFuPiAoZS5nIDxjb2RlPj9ib2R5PC9jb2RlPiksIGFkZCB0 aGUgbW9kaWZpZXIgPGNvZGU+Ok5PVEFHUzwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgdmFs dWUuIEl0IHdpbGwgaGF2ZSBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGFu ZCA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB0YWdzIHN0cmlwcGVkIGZyb20gaXQg YW5kIHdpbGwgYWxzbyBiZSB0cmltbWVkIHRvIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGlu ZyBzcGFjZXMuPC9wPgoKCTxwPk5vdGUgdGhhdCB5b3UgbWF5IGZpbmQgdXNpbmcgZG91Ymxl LXF1b3RlcyBpbiBmaWVsZHMgZ2l2ZXMgdW5leHBlY3RlZCByZXN1bHRzLiBUaGV5IGFyZSBi ZXN0IGF2b2lkZWQsIG9yIHdvcmtlZCBhcm91bmQgYnkgdXNpbmcgPGNvZGU+Y29udGFpbnM8 L2NvZGU+IGluc3RlYWQgb2YgPGNvZGU+ZXE8L2NvZGU+LjwvcD4KCgk8aDQgY2xhc3M9ImF0 dC1uYW1lICIgaWQ9ImxvZ2ljIj5sb2dpYzwvaDQ+CgoJPHA+Q2FuIGJlIG9uZSBvZiA8Y29k ZT5hbmQ8L2NvZGU+ICh0aGUgZGVmYXVsdCkgb3IgPGNvZGU+b3I8L2NvZGU+LiBJZiB1c2lu ZyA8Y29kZT5hbmQ8L2NvZGU+LCBhbGwgY29uZGl0aW9ucyBtdXN0IGJlIG1ldCBmb3IgYSA8 c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gcmVzdWx0LiBJZiB1c2luZyA8Y29kZT5v cjwvY29kZT4sIGFueSBvZiB0aGUgY29uZGl0aW9ucyB0aGF0IG1hdGNoIHdpbGwgZ2l2ZSBh IDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPiByZXN1bHQuPC9wPgoKCTxoNCBjbGFz cz0iYXR0LW5hbWUgIiBpZD0iY2FzZXNlbnNlIj5jYXNlX3NlbnNpdGl2ZTwvaDQ+CgoJPHA+ QnkgZGVmYXVsdCwgYWxsIGNvbXBhcmlzb25zIGFyZSBjYXNlLWluc2Vuc2l0aXZlICgwKS4g SWYgeW91IHdpc2ggdG8gbWFrZSB0aGVtIHNlbnNpdGl2ZSB0byBjYXB0aWxpc2F0aW9uLCBz cGVjaWZ5IDxjb2RlPmNhc2Vfc2Vuc2l0aXZlPSZxdW90OzEmcXVvdDs8L2NvZGU+LiBOb3Rl IHRoYXQgaWYgdXNpbmcgPGNvZGU+aXNsb3dlcjwvY29kZT4gb3IgPGNvZGU+aXN1cHBlcjwv Y29kZT4gaW4gYSBjb21wYXJpc29uLCBjYXNlIHNlbnNpdGl2aXR5IHdpbGwgYXV0b21hdGlj YWxseSBiZSBzd2l0Y2hlZCBvbiB3aGlsZSB0aGUgdGVzdCBpcyB0YWtpbmcgcGxhY2UuPC9w PgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0icGFyYW1kZWxpbSI+cGFyYW1fZGVsaW08 L2g0PgoKCTxwPllvdSBub3JtYWxseSBzcGVjaWZ5IGNvbW1hLXNlcGFyYXRlZCBsaXN0cyB0 byB0aGUgPGNvZGU+ZmllbGQ8L2NvZGU+LCA8Y29kZT5vcGVyYXRvcjwvY29kZT4gYW5kIDxj b2RlPnZhbHVlPC9jb2RlPiBwYXJhbWV0ZXJzLiBTb21ldGltZXMgdGhpcyBtaWdodCBub3Qg YmUgZGVzaXJhYmxlIGlmIHlvdSBoYXZlIHVzZWQgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIG5h bWUgb2YgYSBjdXN0b20gZmllbGQsIGZvciBleGFtcGxlLiBUaGlzIG9wdGlvbiBhbGxvd3Mg eW91IHRvIGNoYW5nZSB0aGUgZGVsaW1pdGVyIHRvIGFsbW9zdCBhbnl0aGluZyB5b3UgbGlr ZSwgZS5nLiBzcGVjaWZ5aW5nIDxjb2RlPnBhcmFtX2RlbGltPSZxdW90Oy8vJnF1b3Q7PC9j b2RlPiBtZWFucyB5b3Ugd291bGQgc3BlY2lmeSA8ZW0+YWxsPC9lbT4geW91ciBwYXJhbWV0 ZXIgbGlzdHMgbGlrZSB0aGlzOjwvcD4KCgk8cD48Y29kZT5maWVsZD0mcXVvdDtzZWN0aW9u IC8vIHVybHZhcjp0eXBlJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2VxIC8vIGJlZ2lucyZxdW90 OyB2YWx1ZT0mcXVvdDthbmltYWxzIC8vIHRpZ2VyJnF1b3Q7PC9jb2RlPjwvcD4KCgk8aDQg Y2xhc3M9ImF0dC1uYW1lICIgaWQ9Im1vZGRlbGltIj5tb2RfZGVsaW08L2g0PgoKCTxwPlZl cnkgc2ltaWxhciB0byA8YSBocmVmPSIjcGFyYW1kZWxpbSI+cGFyYW1fZGVsaW08L2E+LCB0 aGlzIGdvdmVybnMgdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBhbiBvcHRpb24gYW5k IGl0cyBtb2RpZmllciAoZS5nLiB0aGUgdGhpbmcgc2VwYXJhdGluZyB1cmx2YXIsIHBvc3R2 YXIsIHN2cnZhciBvciB0eHB2YXIgZnJvbSB0aGUgdmFyaWFibGUgbmFtZSwgb3IgcGFyZW50 IGZyb20gPGNvZGU+TFZMPC9jb2RlPiBhbmQgPGNvZGU+Q0FUPC9jb2RlPiwgYW5kIGFsc28g dGhlIGNoYXJhY3RlcihzKSB0aGF0IHNlcGFyYXRlIGFuIG9wZXJhdG9yIGZyb20gdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5OVU08L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQ QUNFPC9zcGFuPiBtb2RpZmllcnMpLiBJdCBpcyB0aGUgY29sb24gKDopIGJ5IGRlZmF1bHQu PC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0ibW9kZGVsaW0iPmxpc3RfZGVsaW08 L2g0PgoKCTxwPkZvciB1c2Ugd2l0aCB0aGUgPGNvZGU+aW48L2NvZGU+IGFuZCA8Y29kZT5u b3RpbjwvY29kZT4gb3BlcmF0b3JzLCB0aGlzIGlzIHRoZSBkZWxpbWl0ZXIgYmV0d2VlbiB2 YWx1ZXMuIEl0IGlzIHRoZSBmb3J3YXJkLXNsYXNoICgvKSBieSBkZWZhdWx0LiBBIGNvbnRy aXZlZCBleGFtcGxlOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1 b3Q7dHhwdmFyOmxldmVsJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2luJnF1b3Q7CiAgICAgdmFs dWU9JnF1b3Q7MS8yLzMvNS84LzEzLzIxLzM0JnF1b3Q7Jmd0OwogICZsdDtwJmd0O1Jlc3Vs dCBpcyBhIEZpYm9uYWNjaSB2YWx1ZSEmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsK PC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCBpbiBhbGwgJiM4MjE2O2RlbGltJiM4MjE3 OyBhdHRyaWJ1dGVzLCBzb21lIGNoYXJhY3RlciBzZXF1ZW5jZXMgbWF5IGNhdXNlIHByb2Js ZW1zIChxdW90ZXMgJiM4MjEyOyBzaW5nbGUgb3IgZG91YmxlICYjODIxMjsgc3ByaW5nIHRv IG1pbmQ7IG90aGVycyBsaWtlIHBhcmVudGhlc2VzIG1heSBhbHNvIGNhdXNlIHRoZSBwbHVn aW4gdG8gZXhwbG9kZSkuPC9wPgoKCTxoMz5SZXBsYWNlbWVudCB0YWdzPC9oMz4KCgk8cD5F dmVyeSBmaWVsZCBvciB2YWx1ZSB0aGF0IHlvdSByZWZlciB0byBpbiB5b3VyIHNtZF9pZiB0 YWcgYmVjb21lcyBhdmFpbGFibGUgd2l0aGluIHRoZSBjb250YWluaW5nIGJsb2NrIHNvIHlv dSBjYW4gZGlzcGxheSBpdHMgY29udGVudHMgaWYgeW91IHdpc2guIE1vc3Qgb2YgdGhlIHRp bWUgdGhpcyBpcyBub3QgbXVjaCB1c2UgYnV0IGl0IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB3aXRo IHRoZSA8Y29kZT5pbjwvY29kZT4gb3BlcmF0b3Igb3IgdGhlIDxjb2RlPjpMRU48L2NvZGU+ IG1vZGlmaWVyIC4gRm9yIGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBhc2tlZCBzbWRfaWYgdG8g dGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgbmFtZWQg JiM4MjE2O2xldmVsJiM4MjE3OyBhbmQgdG9sZCBpdCB0byBjb21wYXJlIGl0IHRvIHRoZSBj dXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjE2O2FsbG93YWJsZV9sZXZlbHMmIzgyMTc7LCB0 d28gdGFncyBiZWNvbWUgYXZhaWxhYmxlIHdoaWNoIHlvdSBjYW4gdXNlIHdpdGhpbiB0aGUg Y29udGFpbmluZyBibG9jazo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57c21kX2lmX2xldmVs fTwvY29kZT4gd291bGQgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlICYjODIxNjtsZXZlbCYj ODIxNzsgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGU8L2xpPgoJCTxs aT48Y29kZT57c21kX2lmX2FsbG93YWJsZV9sZXZlbHN9PC9jb2RlPiB3b3VsZCBkaXNwbGF5 IHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgY3VzdG9tIGZp ZWxkPC9saT4KCTwvdWw+CgoJPHA+VGhlIHJlcGxhY2VtZW50IHRhZ3MgYXJlIGFsd2F5cyBw cmVmaXhlZCB3aXRoIDxjb2RlPnNtZF9pZl88L2NvZGU+IHNvIHRoZXkgZG9uJiM4MjE3O3Qg Y2xhc2ggd2l0aCB0aGUgb25lcyBpbiBzbWRfZ2FsbGVyeSAoZm9yIGV4YW1wbGUsIHdoZW4g dXNpbmcgc21kX2lmIGluc2lkZSBhbiBzbWRfZ2FsbGVyeSB0YWcpLiBJZiB5b3UgYXJlIGNv bXBhcmluZyBhIGZpeGVkLXZhbHVlIGZpZWxkIChzdWNoIGFzIDxjb2RlPmZpZWxkPSZxdW90 O05VTEwmcXVvdDs8L2NvZGU+IG9yIDxjb2RlPnZhbHVlPSZxdW90OzEyJnF1b3Q7PC9jb2Rl PiBvciBzbWRfZ2FsbGVyeSYjODIxNztzIDxjb2RlPnZhbHVlPSZxdW90O3tjYXRlZ29yeX0m cXVvdDs8L2NvZGU+KSB0aGUgbmFtZSBvZiB0aGUgcmVwbGFjZW1lbnQgdGFncyBhcmUgPGNv ZGU+e3NtZF9pZl9maWVsZE59PC9jb2RlPiBmb3IgZmllbGRzIGFuZCA8Y29kZT57c21kX2lm X3ZhbE59PC9jb2RlPiBmb3IgdmFsdWVzLCB3aGVyZSBOIGlzIHRoZSB0ZXN0IG51bWJlciBz dGFydGluZyBmcm9tIDEuPC9wPgoKCTxwPlRoZXJlIGFyZSBhbHNvIHR3byAmIzgyMTY7bGVu Z3RoJiM4MjE3OyByZXBsYWNlbWVudCB0YWdzLiBGb2xsb3dpbmcgYSBzaW1pbGFyIGNvbnZl bnRpb24gdG8gYWJvdmUsIHRoZXNlIGFyZSBwcmVmaXhlZCB3aXRoIDxjb2RlPnNtZF9pZl9s ZW5fPC9jb2RlPi4gSWYgeW91IGdldCBzdHVjaywgdGVtcG9yYXJpbHkgc3dpdGNoIDxjb2Rl PmRlYnVnPSZxdW90OzEmcXVvdDs8L2NvZGU+IG9uIHRvIHNlZSB0aGUgcmVwbGFjZW1lbnRz IGF2YWlsYWJsZSBhbmQgdGhlaXIgYXNzb2NpYXRlZCBuYW1lcy92YWx1ZXMuPC9wPgoKCTxw PlNlZSA8YSBocmVmPSIjZWc4Ij5FeGFtcGxlIDg8L2E+IGFuZCA8YSBocmVmPSIjZWc5Ij45 PC9hPiBmb3IgbW9yZS48L3A+CgoJPGgyPkV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+ RXhhbXBsZSAxPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3NlY3Rpb24sIGlkJnF1b3Q7CiAgICAgb3Bl cmF0b3I9JnF1b3Q7YmVnaW5zLCBndCZxdW90OwogICAgIHZhbHVlPSZxdW90O2xpb24sIDEy JnF1b3Q7Jmd0OwogJmx0O3R4cDphcnRpY2xlIC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0Owog Jmx0O3AmZ3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBpZiB0aGUgY3VycmVudCBzZWN0aW9uIG5h bWUgYmVnaW5zIHdpdGggdGhlIHdvcmQgJiM4MjIwO2xpb24mIzgyMjE7IGFuZCB0aGUgYXJ0 aWNsZSBJRCBpcyBncmVhdGVyIHRoYW4gMTIuIERpc3BsYXlzIHRoZSBhcnRpY2xlIGlmIGJv dGggY29uZGl0aW9ucyBhcmUgbWV0IG9yIGRpc3BsYXlzIHRoZSB0ZXh0ICYjODIyMDtOb3Qg dG9kYXksIHRoYW5rcyYjODIyMTsgaWYgbm90LjwvcD4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBs ZSAyPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0 eHA6c21kX2lmIGZpZWxkPSZxdW90O3N1bW1hcnksIGNhdGVnb3J5LCB1cmx2YXI6cGljJnF1 b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aXN1c2VkLCBlcSwgaXNudW0mcXVvdDsKICAgICB2 YWx1ZT0mcXVvdDssIGFuaW1hbCAsJnF1b3Q7ICZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0 OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9w Jmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5DaGVja3MgaWYg dGhlIGN1c3RvbSBmaWVsZCBsYWJlbGxlZCAmIzgyMjA7c3VtbWFyeSYjODIyMTsgaGFzIHNv bWUgZGF0YSBpbiBpdCwgY2hlY2tzIGlmIHRoZSBnbG9iYWwgY2F0ZWdvcnkgZXF1YWxzICYj ODIyMDthbmltYWwmIzgyMjE7IGFuZCB0ZXN0cyBpZiB0aGUgdXJsdmFyIDxjb2RlPnBpYzwv Y29kZT4gaXMgbnVtZXJpYyAoZS5nLiA8Y29kZT4/cGljPTU8L2NvZGU+KS48L3A+CgoJPHA+ SWYgYWxsIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG1ldCB0aGUgYXJ0aWNsZSBpcyBkaXNwbGF5 ZWQsIGVsc2UgdGhlIG1lc3NhZ2UgaXMgc2hvd24uIE5vdGUgdGhhdCA8Y29kZT5pc3VzZWQ8 L2NvZGU+IGFuZCA8Y29kZT5pc251bTwvY29kZT4gZG9uJiM4MjE3O3QgdGFrZSBhcmd1bWVu dHMgZm9yIDxjb2RlPnZhbHVlPC9jb2RlPiBhbmQgdGhlaXIgcG9zaXRpb25zIGFyZSBoZWxk IGJ5IGVtcHR5IGNvbW1hcyAodGVjaG5pY2FsbHkgdGhlIGxhc3QgY29tbWEgaXNuJiM4MjE3 O3QgbmVlZGVkIGJ1dCBpdCBoZWxwcyBrZWVwIGV2ZXJ5dGhpbmcgbmVhdCBpZiB5b3UgYWRk IGZ1cnRoZXIgdGVzdHMgbGF0ZXIgb24pLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAz PC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6 c21kX2lmIGZpZWxkPSZxdW90O2FydGljbGVfaW1hZ2UsIHN2cnZhcjpIVFRQX1VTRVJfQUdF TlQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSwgY29udGFpbnMmcXVvdDsKICAgICB2 YWx1ZT0mcXVvdDt1cmx2YXI6cGljLCBTYWZhcmkmcXVvdDsKICAgICBsb2dpYz0mcXVvdDtv ciZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsK ICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Db21wYXJlcyAoZm9yIGVxdWFsaXR5KSB0aGUgY3Vy cmVudCBhcnRpY2xlIGltYWdlIGlkIHdpdGggdGhlIHZhbHVlIG9mIHRoZSB1cmwgdmFyaWFi bGUgPGNvZGU+cGljPC9jb2RlPiBhbmQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBvZiB0aGUgPHNw YW4gY2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+X1VTRVJfQUdFTlQgc3RyaW5nIGNvbnRhaW5z ICYjODIyMDtTYWZhcmkmIzgyMjE7LiBUaGlzIGV4YW1wbGUgdXNlcyB0aGUgJiM4MjE2O29y JiM4MjE3OyBsb2dpYywgaGVuY2UgaWYgPGVtPmVpdGhlcjwvZW0+IGNvbmRpdGlvbiBpcyBt ZXQgdGhlIGFydGljbGUgaXMgc2hvd24sIG90aGVyd2lzZSB0aGUgJiM4MjE2O25vdCB0b2Rh eSYjODIxNzsgbWVzc2FnZSBpcyBkaXNwbGF5ZWQuPC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFt cGxlIDQ8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7cGFyZW50OkxWTDImcXVvdDsKICAgICBvcGVyYXRv cj0mcXVvdDtlcSZxdW90OwogICAgIHZhbHVlPSZxdW90O21hbW1hbCZxdW90OyZndDsKICZs dDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0 b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5DaGVja3MgdGhlIDJuZCBzdWItY2F0ZWdvcnkgb2YgdGhlIGdsb2JhbCBjYXRl Z29yeSYjODIxNztzIHRyZWUgdG8gc2VlIGlmIGl0IGVxdWFscyAmIzgyMjA7bWFtbWFsJiM4 MjIxOy4gSWYgaXQgZG9lcywgc2hvdyB0aGUgYXJ0aWNsZTsgaWYgbm90IHNob3cgdGhlIG1l c3NhZ2UuIFJlbW92aW5nIHRoZSA8Y29kZT46TFZMMjwvY29kZT4gKHdoaWNoIGFsbG93cyB5 b3UgdG8gYWxzbyByZW1vdmUgdGhlIG9wZXJhdG9yIHBhcmFtZXRlciB0byBmb3JjZSB0aGUg Y29tcGFyaXNvbiB0byBiZSB0aGUgZGVmYXVsdCAmIzgyMjA7Y29udGFpbnMmIzgyMjE7KSBj aGVja3MgaWYgdGhlIGN1cnJlbnQgZ2xvYmFsIGNhdGVnb3J5IGlzIGEgY2hpbGQgb2YgJiM4 MjE2O21hbW1hbCYjODIxNzsgKGF0IGFueSBsZXZlbCkuPC9wPgoKCTxwPkNoYW5nZSB0aGUg ZmllbGQgdG8gPGNvZGU+cGFyZW50OkNBVDE8L2NvZGU+IHRvIHNlZSBpZiB0aGUgYXJ0aWNs ZSYjODIxNztzIGNhdGVnb3J5MSBtYXRjaGVzICYjODIxNjttYW1tYWwmIzgyMTc7IGF0IGFu eSBsZXZlbCwgb3IgdXNlIDxjb2RlPmZpZWxkPSZxdW90O3BhcmVudDpDQVQxOkxWTDImcXVv dDs8L2NvZGU+IHRvIGNvbWJpbmUgdGhlIGNoZWNrcy48L3A+CgoJPGgzIGlkPSJlZzUiPkV4 YW1wbGUgNTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6cGljLCB1cmx2YXI6cGFnZSZxdW90 OwogICAgIG9wZXJhdG9yPSZxdW90O2d0Ok5VTSwgdW5kZWZpbmVkJnF1b3Q7CiAgICAgdmFs dWU9JnF1b3Q7P2FydGljbGVfaW1hZ2UsJnF1b3Q7Jmd0OwogJmx0O3R4cDphcnRpY2xlIC8m Z3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7 L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRlc3RzIGlm IHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGljPC9jb2RlPiBpcyBzdHJpY3RseSBudW1lcmlj YWxseSBncmVhdGVyIHRoYW4gdGhlIHZhbHVlIGluIHRoZSBjdXJyZW50IGFydGljbGUmIzgy MTc7cyA8Y29kZT5hcnRpY2xlX2ltYWdlPC9jb2RlPiBmaWVsZCBhbmQgdGhhdCB0aGUgdXJs IHZhcmlhYmxlIDxjb2RlPnBhZ2U8L2NvZGU+IGlzIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYWRkcmVzcy4gQ29tcGFyZSB0aGUgb3V0Y29tZSBv ZiB0aGlzIHRlc3Qgd2l0aCB0aGUgb3RoZXIgb3BlcmF0b3JzIHVzaW5nIHRoZSBmb2xsb3dp bmcgdGFibGUgd2hlbiB0ZXN0aW5nIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiB1cmx2YXI6PC9w PgoKCTx0YWJsZT4KCQk8dHI+CgkJCTx0aD48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj48L3NwYW4+IDwvdGg+CgkJCTx0aD5kZWZpbmVkIDwvdGg+ CgkJCTx0aD51bmRlZmluZWQgPC90aD4KCQkJPHRoPmlzdXNlZCA8L3RoPgoJCQk8dGg+aXNl bXB0eSA8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGluZGV4LnBocD9wYWcgPC90ZD4K CQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9z cGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xh c3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNz PSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJ CQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3Nw YW4+PC9zcGFuPiA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGluZGV4LnBocD9wYWdl PSA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+ VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxz cGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNw YW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+ IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5U UlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBpbmRleC5w aHA/cGFnZT00IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNz PSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0i Y2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJ PHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+ PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0i Y2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTxo MyBpZD0iZWc2Ij5FeGFtcGxlIDY8L2gzPgoKCTxwPlB1dCB0aGlzIGluc2lkZSB5b3VyIDxj b2RlPnBsYWlubGlua3M8L2NvZGU+IGZvcm0gYW5kIGV4ZWN1dGUgYSA8Y29kZT4mbHQ7dHhw OmxpbmtsaXN0IC8mZ3Q7PC9jb2RlPiBmcm9tIGFuIGFydGljbGUgcGFnZS9mb3JtOjwvcD4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lm IGZpZWxkPSZxdW90O2lkJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7Z2U6TlVNLCBsZTpO VU0mcXVvdDsKICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6bWluLCB1cmx2YXI6bWF4JnF1b3Q7 Jmd0OwogICZsdDt0eHA6bGlua2Rlc2N0aXRsZSAvJmd0OyZsdDticiAvJmd0OwombHQ7L3R4 cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0IHdpbGwgbGlzdCBvbmx5IHRo ZSBsaW5rcyB0aGF0IGhhdmUgSURzIGJldHdlZW4gdGhlIDxjb2RlPm1pbjwvY29kZT4gYW5k IDxjb2RlPm1heDwvY29kZT4gdmFyaWFibGVzIHNwZWNpZmllZCBvbiB0aGUgYWRkcmVzcyBi YXIuIE5vdGljZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBvbmx5IGxpc3RlZCBvbmNlIGFuZCBl YWNoIG9wZXJhdG9yIGlzIGFwcGxpZWQgdG8gaXQgaW4gdHVybi48L3A+CgoJPGgzIGlkPSJl ZzciPkV4YW1wbGUgNzwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6cHJvZHVjdF9jb2RlJnF1 b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aXNhbG51bSZxdW90OyZndDsKICAmbHQ7dHhwOm91 dHB1dF9mb3JtIGZvcm09JnF1b3Q7c2hvd19wcm9kdWN0JnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6 ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7SW52YWxpZCBwcm9kdWN0IGNvZGUmbHQ7L3AmZ3Q7CiZs dDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRlc3RzIHRvIHNlZSBpZiB0 aGUgcHJvZHVjdF9jb2RlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxl IGlzIGFscGhhbnVtZXJpYyBhbmQgZGlzcGxheXMgYSBmb3JtIGlmIHNvLjwvcD4KCgk8aDMg aWQ9ImVnOCI+RXhhbXBsZSA4PC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjpzb3J0X29yZGVy JnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aW4mcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtp ZC9wcmljZS9zaXplL2NvbG91ciZxdW90OyZndDsKICAmbHQ7cCZndDtTb3J0aW5nIHZhbHVl cyBieSB7c21kX2lmX3NvcnRfb3JkZXJ9Jmx0Oy9wJmd0OwogIC8vIERvIHNvbWUgc3R1ZmYK Jmx0O3R4cDplbHNlIC8mZ3Q7CiAgLy8gVXNlIGEgZGVmYXVsdCBzb3J0LCBvciBzaG93IGFu IGVycm9yIGhlcmUKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Qnkg dXNpbmcgdGhlIHJlcGxhY2VtZW50IHRhZyB7c21kX2lmX3NvcnRfb3JkZXJ9IHlvdSBoYXZl IHBsdWNrZWQgdGhlIHZhbHVlIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3Nw YW4+IGJhciBhbmQgaW5zZXJ0ZWQgaXQgaW50byB0aGUgYXJ0aWNsZS4gVXNlZnVsIHdoZW4g dXNpbmcgdGhlIDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3BlcmF0 b3JzIGJlY2F1c2UsIGFsdGhvdWdoIHlvdSBrbm93IHRoYXQgdGhlIGZpZWxkIG1hdGNoZWQg b25lIG9mIHRoZSB2YWx1ZXMgaW4geW91ciBsaXN0LCB5b3Ugd291bGQgb3RoZXJ3aXNlIG5v dCBrbm93IHdoaWNoIG9uZSBoYXMgYmVlbiBnaXZlbiBvbiB0aGUgYWRkcmVzcyBiYXIuPC9w PgoKCTxoMyBpZD0iZWc5Ij5FeGFtcGxlIDk8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpwaHAmZ3Q7Cmdsb2JhbCAkYm9keWV4OwokYm9k eWV4ID0gYm9keShhcnJheSgpKSAuIGV4Y2VycHQoYXJyYXkoKSk7CiZsdDsvdHhwOnBocCZn dDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7cGhwdmFyOmJvZHlleCZxdW90OwogICAg IG9wZXJhdG9yPSZxdW90O2d0OkxFTiZxdW90OwogICAgIHZhbHVlPSZxdW90OzUwMCZxdW90 OyZndDsKICAmbHQ7cCZndDtZb3UgYXJlIGEgYmlnIGJveSBhdCB7c21kX2lmX2xlbl9ib2R5 ZXh9CiAgICAgY2hhcmFjdGVycyBsb25nISZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+ CgoJPHVsPgoJCTxsaT4zMCBEZWMgMDcgfCAwLjEgfCBJbml0aWFsIHJlbGVhc2U8L2xpPgoJ CTxsaT4zMCBEZWMgMDcgfCAwLjIgfCBBZGRlZCBwYXJlbnQgY2F0ZWdvcnkgY2hlY2tpbmcg KHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MDIgSmFuIDA4IHwgMC4zIHwgQWRkZWQg ZGVmaW5lZC91bmRlZmluZWQgYW5kIHN0cmljdCBudW1lcmljIGNvbXBhcmlzb25zPC9saT4K CQk8bGk+MDYgSmFuIDA4IHwgMC40IHwgQWRkZWQgPGNvZGU+PzwvY29kZT4gbm90YXRpb24g dG8gYWxsb3cgdGhlIHZhbHVlIHRvIHJlYWQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bh bj4gZmllbGRzOyBiZXR0ZXIgcXVvdGUgc3VwcG9ydCAoYm90aCB0aGFua3MgTmVpbEEpPC9s aT4KCQk8bGk+MDYgSmFuIDA4IHwgMC40MSB8IEZpeGVkIGxvd2VyIGNhc2UgZmllbGQgbmFt ZXMgYW5kIHVuZGVmaW5lZCBpbmRleCBlcnJvciAodGhhbmtzIHBldGVyaik8L2xpPgoJCTxs aT4xNCBKYW4gMDggfCAwLjUgfCBBZGRlZCBjYXNlX3NlbnNpdGl2ZSBvcHRpb247IG1hZGUg JiM4MjE2O2NvbnRhaW5zJiM4MjE3OyB0aGUgZGVmYXVsdCBmb3IgJiM4MjE2O3BhcmVudCYj ODIxNzsgdGVzdHM7IGltcHJvdmVkIGhlbHAgKGFsbCB0aGFua3MgdGhlX2dob3N0KTsgYWRk ZWQgZGVsaW0gb3B0aW9uczwvbGk+CgkJPGxpPjE1IEphbiAwOCB8IDAuNTEgfCBGaXhlZCBk ZWZpbmVkL3VuZGVmaW5lZCBzeW50YXggZXJyb3I7IHRpZ2h0ZW5lZCBpc3VzZWQvaXNlbXB0 eSB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20gZGVmaW5lZC91bmRlZmluZWQ8L2xpPgoJCTxs aT4yNSBNYXkgMDggfCAwLjYgfCBGaXhlZCAmIzgyMTY7dW5kZWZpbmVkIGluZGV4JiM4MjE3 OyBlcnJvcnMgKHRoYW5rcyByZWRib3QgYW5kIHRoZV9naG9zdCkgOyBhZGRlZCBtb3JlIHBy ZXRleHQgdmFyaWFibGVzIDsgYWRkZWQgbW9yZSA8Y29kZT5pczwvY29kZT4gY2hlY2tzIChh bmQgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQQUNFPC9zcGFuPiBtb2RpZmllcikgOyBh bGxvd2VkIGZpbGUgYW5kIGxpbmsgdGVzdHMgKGluY2x1ZGluZyBwYXJlbnQgY2F0ZWdvcmll cyk8L2xpPgoJCTxsaT4yNiBNYXkgMDggfCAwLjYxIHwgRml4ZWQgc3R1cGlkIG92ZXJzaWdo dCBpbiBmaWVsZCBuYW1lIGdlbmVyYXRpb24gdG8gYWxsb3cgYXJiaXRyYXJ5IG5hbWVzIGlu c3RlYWQgb2YgZm9yY2luZyAkdGhpc2FydGljbGUgKHRoYW5rcyB0byBKb2FuYSBDYXJ2YWxo byBmb3IgbGVhZGluZyBtZSB0byB0aGlzKTwvbGk+CgkJPGxpPjExIEp1biAwOCB8IDAuNjIg fCBGaXhlZCBpbmNvcnJlY3QgcmVzdWx0IGlmIGV2YWwoKSBpcyBlbXB0eSA7IGFkZGVkIDxz cGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBmaWVsZCBvYmplY3Q8L2xpPgoJCTxsaT4x MCBTZXAgMDggfCAwLjcgfCBGaXhlZCB3YXJuaW5nIGlmIGVtcHR5IGN1c3RvbSBmaWVsZCBp biB2YWx1ZSAodGhhbmtzIHZpc3VhbHBlb3BsZSkgOyBhZGRlZCB0eHB2YXIgc3VwcG9ydCAo dGhhbmtzIHRoZV9naG9zdCkgOyBhZGRlZCB0aGlzaW1hZ2Ugc3VwcG9ydCAoZm9yIHRoZSBm dXR1cmUpIDsgYWRkZWQgb3BlcmF0b3JzIDxjb2RlPmluPC9jb2RlPiwgPGNvZGU+bm90aW48 L2NvZGU+IGFuZCB0aGUgPGNvZGU+bGlzdF9kZWxpbTwvY29kZT4gYXR0cmlidXRlOyBlbmFi bGVkIHJlcGxhY2VtZW50IHRhZ3MgZm9yIG1hdGNoZWQgdmFyaWFibGVzPC9saT4KCQk8bGk+ MDEgT2N0IDA4IHwgMC43MSB8IEZpeGVkIHRoZSBmaXggZm9yIGVtcHR5IGN1c3RvbSBmaWVs ZHMgaW1wbGVtZW50ZWQgaW4gMC43ICh0aGFua3MgbWFwdS92aXN1YWxwZW9wbGUpPC9saT4K CQk8bGk+MDEgT2N0IDA4IHwgMC43MiB8IEFkZGVkIDxjb2RlPjpOT1RBR1M8L2NvZGU+ICh0 aGFua3MgbWFwdSk8L2xpPgoJCTxsaT4xMyBPY3QgMDggfCAwLjczIHwgQWRkZWQgPGNvZGU+ Ok5PU1BBQ0U8L2NvZGU+IHRvIDxjb2RlPmJlZ2luczwvY29kZT4sIDxjb2RlPmVuZHM8L2Nv ZGU+IGFuZCA8Y29kZT5jb250YWluczwvY29kZT4gKHRoYW5rcyBtYXB1KSwgYWRkZWQgcGhw dmFyIHN1cHBvcnQsIDxjb2RlPjpMRU48L2NvZGU+IG1vZGlmaWVyIGFuZCBsZW5ndGggcmVw bGFjZW1lbnQgdGFncyAoYWxsIHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MTMgT2N0 IDA4IHwgMC43NCB8IEJ1ZyBmaXggdGhlIHNtZF9pZl8gbmFtZXMgb2YgdmFscyBhbmQgZmll bGRzIHRvIGF2b2lkIGNsYXNoZXMuIE5vdyBudW1lcmljYWxseSBpbmRleGVkPC9saT4KCQk8 bGk+MDIgRGVjIDA4IHwgMC43NSB8IEFkZGVkIDxjb2RlPmRpdmlzaWJsZTwvY29kZT4gb3Bl cmF0b3IgKHRoYW5rcyBnb21lZGlhKSA7IGFsbG93IHNob3J0LWNpcmN1aXQgb2YgZmllbGRz ICh0aGFua3MgcmVkYm90KTwvbGk+CgkJPGxpPjIwIE1hciAwOSB8IDAuNzYgfCBBZGRlZCA8 Y29kZT5wb3N0dmFyPC9jb2RlPiBmaWVsZCB0eXBlICh0aGFua3Mga29zdGFzNDUpPC9saT4K CTwvdWw+CgogIDwvZGl2Pgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0tLSAtLT4KPHN0 eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS4zIDt9CiNz bWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3Vy aWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZD Qzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6 MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJs b2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAg YTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3Jh dGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90 dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xv cjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29s aWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMz Njk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFs aWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk IGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9y Z2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBi b2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdp bjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTt9CiNzbWRfaGVscCBoNCB7 IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFw eDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21k X2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hlbHAgLm1hbmQg eyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxw IHRhYmxlIHt3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206 MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5 OTsgcGFkZGluZzouNWVtIDA7fQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExVR0lOIENTUyAt LS0gLS0+CiI7czozOiJtZDUiO3M6MzI6IjkyMjkxZmNmOGFkN2E5MjkxNjRiNjdkMmU0ZjE2 YmEwIjt9