# Name: smd_if v0.71 # Type: Client side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6Njoic21kX2lmIjtzOjY6ImF1dGhvciI7czoxMToiU3RlZiBE YXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS8i O3M6NzoidmVyc2lvbiI7czo0OiIwLjcxIjtzOjExOiJkZXNjcmlwdGlvbiI7czozNToiR2Vu ZXJpYyBtdWx0aXBsZSBpZiBjb25kaXRpb24gdGVzdHMiO3M6NDoiY29kZSI7czo5NzgyOiJm dW5jdGlvbiBzbWRfaWYoJGF0dHMsJHRoaW5nKSB7DQoJZ2xvYmFsICR0aGlzYXJ0aWNsZSwg JHByZXRleHQsICR0aGlzZmlsZSwgJHRoaXNsaW5rLCAkdGhpc2ltYWdlLCAkdmFyaWFibGU7 DQoNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknZmllbGQnID0+ICcnLA0KCQknb3BlcmF0 b3InID0+ICcnLA0KCQkndmFsdWUnID0+ICcnLA0KCQknbG9naWMnID0+ICdhbmQnLA0KCQkn Y2FzZV9zZW5zaXRpdmUnID0+IDAsDQoJCSdwYXJhbV9kZWxpbScgPT4gJywnLA0KCQknbW9k X2RlbGltJyA9PiAnOicsDQoJCSdsaXN0X2RlbGltJyA9PiAnLycsDQoJCSdkZWJ1ZycgPT4g JzAnLA0KCSksICRhdHRzKSk7DQoNCgkvLyBTcGVjaWFsIGZpZWxkIG5hbWVzIHRoYXQgcmVm ZXIgdG8gJHByZXRleHQgb3IgZWxzZXdoZXJlIC0gZXZlcnl0aGluZyBlbHNlIGlzIGFzc3Vt ZWQgdG8NCgkvLyBleGlzdCBpbiAkdGhpc2FydGljbGUgc28gY3VzdG9tIGZpZWxkcyBjYW4g YmUgdXNlZA0KCSRhbGxQdHh0ID0gYXJyYXkoDQoJCSJpZCIgPT4gJyRwcmV0ZXh0WyJpZCJd JywNCgkJInNlY3Rpb24iID0+ICckcHJldGV4dFsicyJdJywNCgkJImNhdGVnb3J5IiA9PiAn JHByZXRleHRbImMiXScsDQoJCSJxdWVyeSIgPT4gJyRwcmV0ZXh0WyJxIl0nLA0KCQkicGci ID0+ICckcHJldGV4dFsicGciXScsDQoJCSJtb250aCIgPT4gJyRwcmV0ZXh0WyJtb250aCJd JywNCgkJImF1dGhvciIgPT4gJyRwcmV0ZXh0WyJhdXRob3IiXScsDQoJCSJzdGF0dXMiID0+ ICckcHJldGV4dFsic3RhdHVzIl0nLA0KCQkicGFnZSIgPT4gJyRwcmV0ZXh0WyJwYWdlIl0n LA0KCQkibmV4dF9pZCIgPT4gJyRwcmV0ZXh0WyJuZXh0X2lkIl0nLA0KCQkibmV4dF90aXRs ZSIgPT4gJyRwcmV0ZXh0WyJuZXh0X3RpdGxlIl0nLA0KCQkibmV4dF91dGl0bGUiID0+ICck cHJldGV4dFsibmV4dF91dGl0bGUiXScsDQoJCSJwcmV2X2lkIiA9PiAnJHByZXRleHRbInBy ZXZfaWQiXScsDQoJCSJwcmV2X3RpdGxlIiA9PiAnJHByZXRleHRbInByZXZfdGl0bGUiXScs DQoJCSJwcmV2X3V0aXRsZSIgPT4gJyRwcmV0ZXh0WyJwcmV2X3V0aXRsZSJdJywNCgkJInBl cm1saW5rX21vZGUiID0+ICckcHJldGV4dFsicGVybWxpbmtfbW9kZSJdJywNCgkpOw0KCS8v IEVhY2ggZW50cnkgaGFzIHRoZSBvcGVyYXRpb24gdG8gYmUgZXZhbCgpZCBsYXRlciBhbmQg YSBsaXN0IG9mIGRpc2FsbG93ZWQgZmllbGRzDQoJJGFsbE9wcyA9IGFycmF5KA0KCQknZXEn ID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBGSUVMRCA9PT0gVkFMVUUnLCAnJyksDQoJ CSdub3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBGSUVMRCAhPT0gVkFMVUUnLCAn JyksDQoJCSdndCcgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPiBD QVNUIFZBTFVFJywgJycpLA0KCQknZ2UnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBD QVNUIEZJRUxEID49IENBU1QgVkFMVUUnLCAnJyksDQoJCSdsdCcgPT4gYXJyYXkoJ2lzc2V0 KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPCBDQVNUIFZBTFVFJywgJycpLA0KCQknbGUnID0+ IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDw9IENBU1QgVkFMVUUnLCAn JyksDQoJCSdpbicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxE LCBleHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICE9PSBmYWxzZScsICcnKSwN CgkJJ25vdGluJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgaW5fYXJyYXkoRklFTEQs IGV4cGxvZGUoIicuJGxpc3RfZGVsaW0uJyIsIFZBTFVFKSkgPT09IGZhbHNlJywgJycpLA0K CQknYmVnaW5zJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBW QUxVRSkgPT09IDAnLCAnJyksDQoJCSdjb250YWlucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5B TUUpICYmIHN0cnBvcyhGSUVMRCwgVkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMn ID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBzdWJzdHIoRklFTEQsIHN0cmxlbihGSUVM RCkgLSBzdHJsZW4oVkFMVUUpKSA9PT0gVkFMVUUnLCAnJyksDQoJCSdkZWZpbmVkJyA9PiBh cnJheSgnaXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFy cmF5KCchaXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyA9PiBhcnJh eSgnaXNzZXQoVkFSTkFNRSkgJiYgRklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnID0+ IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVt JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVM RCknLCAnJyksDQoJCSdpc2FscGhhJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5 cGVfYWxwaGEoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FsbnVtJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfYWxudW0oKHN0cmluZylGSUVMRCknLCAnJyksDQoJ CSdpc2xvd2VyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0 cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3VwcGVyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgY3R5cGVfdXBwZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0JyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfcHVuY3QoKHN0cmluZylGSUVMRCkn LCAnJyksDQoJCSdpc3NwYWNlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVf c3BhY2UoKHN0cmluZylGSUVMRCknLCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0 LCBnZSwgbHQsIGxlIjsNCgkkY2FzZU9wcyA9ICJpc2xvd2VyLCBpc3VwcGVyIjsNCgkkc3Bh Y2VPcHMgPSAiaXNudW0sIGlzYWxwaGEsIGlzYWxudW0sIGlzbG93ZXIsIGlzdXBwZXIsIGlz cHVuY3QiOw0KCSRmaWVsZHMgPSBkb19saXN0KCRmaWVsZCwgJHBhcmFtX2RlbGltKTsNCgkk b3BzID0gZG9fbGlzdCgkb3BlcmF0b3IsICRwYXJhbV9kZWxpbSk7DQoJJG51bU9wcyA9IGNv dW50KCRvcHMpOw0KCSR2YWxzID0gZG9fbGlzdCgkdmFsdWUsICRwYXJhbV9kZWxpbSk7DQoJ JG51bVZhbHMgPSBjb3VudCgkdmFscyk7DQoJJHBhcmVudENhdHMgPSAnJzsgLy8gUGxhY2Vo b2xkZXIgZm9yIHRoZSBjb25jYXRlbmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBsZWFmIG5vZGVz DQoJJHJlcGxhY2VtZW50cyA9IGFycmF5KCk7DQoJJHR5cGUgPSAoJHRoaXNmaWxlKSA/ICJm aWxlIiA6ICgoJHRoaXNsaW5rKSA/ICJsaW5rIiA6ICgoJHRoaXNpbWFnZSkgPyAiaW1hZ2Ui IDogImFydGljbGUiKSk7DQoJJG91dCA9IGFycmF5KCk7DQoNCglmb3IgKCRpZHggPSAwOyAk aWR4IDwgY291bnQoJGZpZWxkcyk7ICRpZHgrKykgew0KCQkkZmxkID0gJGZpZWxkc1skaWR4 XTsNCgkJJGZsZFBhcnRzID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkZmxkKTsNCgkJJHZhbCA9 ICgkaWR4IDwgJG51bVZhbHMpID8gJHZhbHNbJGlkeF0gOiAnJzsNCgkJJHZhbFBhcnRzID0g ZXhwbG9kZSgkbW9kX2RlbGltLCAkdmFsKTsNCgkJJG9wID0gKCRpZHggPCAkbnVtT3BzICYm ICRvcHNbJGlkeF0gIT0gJycpID8gJG9wc1skaWR4XSA6ICgoJGZsZFBhcnRzWzBdPT0icGFy ZW50IikgPyAiY29udGFpbnMiIDogImVxIik7DQoJCSRvcFBhcnRzID0gZXhwbG9kZSgkbW9k X2RlbGltLCAkb3ApOw0KCQkkb3AgPSAkc3RvcmVkT3AgPSAoYXJyYXlfa2V5X2V4aXN0cygk b3BQYXJ0c1swXSwgJGFsbE9wcykpID8gJG9wUGFydHNbMF0gOiAiZXEiOw0KCQkkY2FzdCA9 ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0gIk5VTSIpICYm IChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnKGludCknIDogJyc7DQoJCSRraWxs U3BhY2VzID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAi Tk9TUEFDRSIpICYmIChpbl9saXN0KCRvcCwgJHNwYWNlT3BzKSkpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkkY2FzZV9zZW5zaXRpdmUgPSAoaW5fbGlzdCgkb3AsICRjYXNlT3BzKSkgPyAxIDog JGNhc2Vfc2Vuc2l0aXZlOw0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICdURVNUICcuKCRp ZHgrMSkubjsNCgkJCWRtcCgkZmxkUGFydHMsICRvcFBhcnRzLCAkdmFsUGFydHMpOw0KCQl9 DQoJCS8vIEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1lbnQgY29kZQ0KCQkkZXhjbHVkZSA9 IGRvX2xpc3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9wID0gJGFsbE9wc1skb3BdWzBdOw0K DQoJCS8vIEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3BlcmF0b3IgYWxsb3dzIHRoaXMgZmll bGQuLi4NCgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNbMF0sICRleGNsdWRlKSkgew0KCQkJ Ly8gTWFrZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJsZQ0KCQkJaWYgKGlzc2V0KCR0aGlz ZmlsZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJ CSRmbGQgPSAnJHRoaXNmaWxlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0 KCR0aGlzbGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBd Ow0KCQkJCSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYg KGlzc2V0KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQ YXJ0c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2VbIicuJHJmbGQuJyJdJzsNCgkJCX0g ZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFydHNbMF0sICRhbGxQdHh0KSkgew0K CQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAkYWxsUHR4dFskcmZsZF07 DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAicGFyZW50Iikgew0KCQkJCSRsZXZl bCA9ICcnOw0KCQkJCWZvcmVhY2ggKCRmbGRQYXJ0cyBhcyAkcGFydCkgew0KCQkJCQlpZiAo JHBhcnQgPT0gInBhcmVudCIpIHsNCgkJCQkJCSR0aGVDYXQgPSAoJHRoaXNmaWxlKSA/ICR0 aGlzZmlsZVsnY2F0ZWdvcnknXSA6ICgoJHRoaXNsaW5rKSA/ICR0aGlzbGlua1snY2F0ZWdv cnknXSA6ICgoJHRoaXNpbWFnZSkgPyAkdGhpc2ltYWdlWydjYXRlZ29yeSddIDogJHByZXRl eHRbJ2MnXSkpOw0KCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkNBVCIpID09PSAw KSB7DQoJCQkJCQkkdGhlQ2F0ID0gJHRoaXNhcnRpY2xlWyJjYXRlZ29yeSIuc3Vic3RyKCRw YXJ0LCAzKV07DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9zKCRwYXJ0LCAiTFZMIikgPT09IDAp IHsNCgkJCQkJCSRsZXZlbCA9IHN1YnN0cigkcGFydCwgMyk7DQoJCQkJCX0NCgkJCQl9DQoN CgkJCQkkdHJlZSA9IGdldFRyZWVQYXRoKGRvU2xhc2goJHRoZUNhdCksICR0eXBlKTsNCgkJ CQlpZiAoJGRlYnVnKSB7DQoJCQkJCWVjaG8gIkNBVEVHT1JZIFRSRUU6IjsNCgkJCQkJZG1w KCR0cmVlKTsNCgkJCQl9DQoJCQkJJGl0ZW1zID0gYXJyYXkoKTsNCgkJCQlmb3JlYWNoICgk dHJlZSBhcyAkbGVhZikgew0KCQkJCQlpZiAoJGxlYWZbJ25hbWUnXSA9PSAicm9vdCIgfHwg JGxlYWZbJ25hbWUnXSA9PSAkdGhlQ2F0KSB7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfSBl bHNlIGlmICgkbGV2ZWwgPT0gJycgfHwgJGxldmVsID09ICRsZWFmWydsZXZlbCddKSB7DQoJ CQkJCQkkaXRlbXNbXSA9ICRsZWFmWyduYW1lJ107DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHBh cmVudENhdHMgPSAkcmZsZCA9IGltcGxvZGUoIiAiLCAkaXRlbXMpOw0KCQkJCSRmbGQgPSAn JHBhcmVudENhdHMnOw0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInR4cHZhciIp IHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA9PSAyKSB7DQoJCQkJCSRyZmxkID0gJGZs ZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyR2YXJpYWJsZVsiJy4kcmZsZC4nIl0nOw0KCQkJ CX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7DQoJCQkJaWYg KGNvdW50KCRmbGRQYXJ0cykgPT0gMikgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsN CgkJCQkJJGZsZCA9ICckX0dFVFsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBp ZiAoJGZsZFBhcnRzWzBdID09ICJzdnJ2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0 cykgPT0gMikgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICck X1NFUlZFUlsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRo aXNhcnRpY2xlWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQgPSBzdHJ0b2xvd2VyKCRm bGRQYXJ0c1swXSk7DQoJCQkJJGZsZCA9ICckdGhpc2FydGljbGVbIicuJHJmbGQuJyJdJzsN CgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJOVUxMIikgew0KCQkJCSRzbWRfaWZf dmFyID0gJyc7DQoJCQkJJGZsZCA9ICckc21kX2lmX3Zhcic7DQoJCQkJJHJmbGQgPSAiTlVM TCI7DQoJCQl9IGVsc2Ugew0KCQkJCSRzbWRfaWZfdmFyID0gJGZsZFBhcnRzWzBdOw0KCQkJ CSRmbGQgPSAnJHNtZF9pZl92YXInOw0KCQkJCSRyZmxkID0gImZpZWxkIjsNCgkJCX0NCgkJ CSRyZmxkID0gInNtZF9pZl8iLiRyZmxkOw0KDQoJCQkvLyBUYWtlIGEgY29weSBvZiAkZmxk IHRvIHVzZSBpbiBhbnkgaXNzZXQoKSByZXF1ZXN0cw0KCQkJJGZsZENsZWFuID0gJGZsZDsN CgkJCWlmICgka2lsbFNwYWNlcykgew0KCQkJCSRmbGQgPSAncHJlZ19yZXBsYWNlKCIvXHMr LyIsIiIsJy4kZmxkLicpJzsNCgkJCX0NCg0KCQkJLy8gRmluZCB0aGUgcmVhbCB2YWx1ZSB0 byBjb21wYXJlIGFnYWluc3QgKG1heSBiZSBhbm90aGVyIGZpZWxkKQ0KCQkJaWYgKCR2YWxQ YXJ0c1swXSA9PSAidXJsdmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID09IDIp IHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJF9H RVRbJHZmbGRdKSAmJiAkX0dFVFskdmZsZF0gIT0gIiIpID8gJyRfR0VUWyInLiR2ZmxkLici XScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJ CQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAic3ZydmFyIikgew0KCQkJCWlmIChjb3Vu dCgkdmFsUGFydHMpID09IDIpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJ CSR2YWwgPSAoaXNzZXQoJF9TRVJWRVJbJHZmbGRdKSAmJiAkX1NFUlZFUlskdmZsZF0gIT0g IiIpID8gJyRfU0VSVkVSWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCci JywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9 PSAidHhwdmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID09IDIpIHsNCgkJCQkJ JHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJHZhcmlhYmxlWyR2 ZmxkXSkgJiYgJHZhcmlhYmxlWyR2ZmxkXSAhPSAiIikgPyAnJHZhcmlhYmxlWyInLiR2Zmxk LiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9 DQoJCQl9IGVsc2UgaWYgKHN0cnBvcygkdmFsUGFydHNbMF0sICI/IikgPT09IDApIHsNCgkJ CQkkdmFsUGFydHNbMF0gPSBzdWJzdHIoc3RydG9sb3dlcigkdmFsUGFydHNbMF0pLCAxKTsN CgkJCQkkdmZsZCA9ICR2YWxQYXJ0c1swXTsNCgkJCQlpZiAoaXNzZXQoJHRoaXNmaWxlWyR2 ZmxkXSkgJiYgJHRoaXNmaWxlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlz ZmlsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5rWyR2 ZmxkXSkgJiYgJHRoaXNsaW5rWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlz bGlua1siJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNpbWFnZVsk dmZsZF0pICYmICR0aGlzaW1hZ2VbJHZmbGRdICE9ICIiKSB7DQoJCQkJCSR2YWwgPSAnJHRo aXNpbWFnZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0 cygkdmZsZCwgJGFsbFB0eHQpICYmICRhbGxQdHh0WyR2ZmxkXSAhPSAiIikgew0KCQkJCQkk dmFsID0gJGFsbFB0eHRbJHZmbGRdOw0KCQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRp Y2xlWyR2ZmxkXSkgJiYgJHRoaXNhcnRpY2xlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFs ID0gJyR0aGlzYXJ0aWNsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSR2 YWwgPSBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJ CQl9IGVsc2Ugew0KCQkJCSR2ZmxkID0gInZhbCI7DQoJCQkJJHZhbCA9IGRvUXVvdGUoc3Ry X3JlcGxhY2UoJyInLCAnXCInLCAkdmFsUGFydHNbMF0pKTsNCgkJCX0NCgkJCSR2ZmxkID0g InNtZF9pZl8iLiR2ZmxkOw0KDQoJCQkvLyBSZXBsYWNlIHRoZSBzdHJpbmcgcGFydHMuLi4N CgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiQ0FTVCIsICRjYXN0LCAkb3ApOw0KCQkJJGNtZCA9 IHN0cl9yZXBsYWNlKCJGSUVMRCIsICgoJGNhc2Vfc2Vuc2l0aXZlKSA/ICRmbGQgOiAnc3Ry dG9sb3dlcignLiRmbGQuJyknKSwgJGNtZCk7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIlZB Uk5BTUUiLCAkZmxkQ2xlYW4sICRjbWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQUxV RSIsICgoJGNhc2Vfc2Vuc2l0aXZlKSA/ICdWQUxVRScgOiAnc3RydG9sb3dlcihWQUxVRSkn KSwgJGNtZCk7DQoJCQkkY21kID0gIkBcJHJlcGxhY2VtZW50c1sneyIuJHJmbGQuIn0nXSA9 ICIuJGZsZC4iOyBcbkBcJHJlcGxhY2VtZW50c1sneyIuJHZmbGQuIn0nXSA9ICIuJHZhbC4i OyBcblwkb3V0W10gPSAoIi5zdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCR2YWw9PT0iJyciICYm IHN0cnBvcygkb3AsICJzdHJwb3MiKSAhPT0gZmFsc2UpID8gIicgJyIgOiAkdmFsKSwgJGNt ZCkuIikgPyAndHJ1ZScgOiAnZmFsc2UnOyI7DQoJCQlpZiAoJGRlYnVnKSB7DQoJCQkJZG1w KCRjbWQpOw0KCQkJfQ0KCQkJLy8gLi4uIGFuZCBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbg0K CQkJZXZhbCgkY21kKTsNCgkJfQ0KCX0NCglpZiAoJGRlYnVnKSB7DQoJCWVjaG8gIlJFU1VM VDoiOw0KCQlkbXAoJG91dCk7DQoJCWVjaG8gIlJFUExBQ0VNRU5UUzoiOw0KCQlkbXAoJHJl cGxhY2VtZW50cyk7DQoJfQ0KCWlmICgkZGVidWcgPiAxKSB7DQoJCWVjaG8gIlBSRVRFWFQ6 IjsNCgkJZG1wKCRwcmV0ZXh0KTsNCgkJZWNobyAiVEhJUyBBUlRJQ0xFOiI7DQoJCWRtcCgk dGhpc2FydGljbGUpOw0KCQllY2hvICJUSElTIEZJTEU6IjsNCgkJZG1wKCR0aGlzZmlsZSk7 DQoJCWVjaG8gIlRISVMgTElOSzoiOw0KCQlkbXAoJHRoaXNsaW5rKTsNCgkJZWNobyAiVEhJ UyBJTUFHRToiOw0KCQlkbXAoJHRoaXNpbWFnZSk7DQoJfQ0KCS8vIENoZWNrIGxvZ2ljDQoJ JHJlc3VsdCA9ICgkb3V0KSA/IHRydWUgOiBmYWxzZTsNCglpZiAoc3RydG9sb3dlcigkbG9n aWMpID09ICJhbmQiICYmIGluX2FycmF5KCJmYWxzZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQg PSBmYWxzZTsNCgl9DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAib3IiICYmICFpbl9h cnJheSgidHJ1ZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQgPSBmYWxzZTsNCgl9DQoNCglyZXR1 cm4gcGFyc2UoRXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRzKSwgJHJlc3Vs dCkpOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NDoiaGVscCI7czoyODM3MDoiCTxwPjxk aXYgaWQ9InNtZF9oZWxwIj48L3A+CgoJPGgxPnNtZF9pZjwvaDE+CgoJPHA+QSByZWFsbHkg c2ltcGxlLCBnZW5lcmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rlci4gQ2Fu IHRlc3QgYW55IGZpZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGZp bGUsIGltYWdlLCBsaW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIgb3Ig PGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gY29udGV4dCBmb3IgYSB2YXJp ZXR5IG9mIGF0dHJpYnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxzcGFuIGNsYXNzPSJjYXBz Ij5UUlVFPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4K Cgk8aDI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgbW9zdCBtYWpvciBh cnRpY2xlLCBmaWxlLCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMgc3VjaCBhcyBzZWN0aW9u LCBjYXRlZ29yeSwgY3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0cmluZywgYXV0aG9yLCBi b2R5LCBleGNlcnB0LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFycywgc2VydmVyIHZhcnMs IHR4cCB2YXJzLCBhbmQgc3ViLWNhdGVnb3J5L3BhcmVudCBjaGVja2luZzwvbGk+CgkJPGxp PlRlc3RzIGluY2x1ZGUgZXF1YWxpdHksIGluZXF1YWxpdHksIGxlc3MgdGhhbiwgZ3JlYXRl ciB0aGFuLCBlbXB0eSwgdXNlZCwgZGVmaW5lZCwgYmVnaW5zLCBlbmRzLCBjb250YWlucywg aXMgbnVtZXJpYyAvIGFscGhhIC8gYWxwaGFudW1lcmljIC8gbG93ZXJjYXNlIC8gdXBwZXJj YXNlLCBhbW9uZyBvdGhlcnM8L2xpPgoJCTxsaT5UZXN0cyBmb3IgbW9yZSB0aGFuIG9uZSBj b25kaXRpb24gYXQgb25jZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNwYW4gY2xhc3M9ImNhcHMi PkFORDwvc3Bhbj4gbG9naWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3MpIG9yIE9SIGxvZ2ljIChh bnkgdGVzdCBtdXN0IHBhc3MpPC9saT4KCQk8bGk+QWxsIHRlc3RlZCBmaWVsZHMgYW5kIHZh bHVlcyBhcmUgYXZhaWxhYmxlIHRvIHRoZSBjb250YWluZXIgc28geW91IGNhbiBkaXNwbGF5 IHRoZW08L2xpPgoJCTxsaT5VZ2x5IGFuZCB2ZXJ5IGRpcnR5LiBVc2VzIDxzcGFuIGNsYXNz PSJjYXBzIj5QSFA8L3NwYW4+JiM4MjE3O3MgPGNvZGU+ZXZhbCgpPC9jb2RlPiBjb21tYW5k IHdoaWNoIG1vc3QgcHJvZ3JhbW1lcnMgY29uY3VyIHNob3VsZCBiZSByZW5hbWVkIDxjb2Rl PmV2aWwoKTwvY29kZT48L2xpPgoJPC91bD4KCgk8aDI+QXV0aG9yPC9oMj4KCgk8cD48YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29tbWVudEZvcm0iPlN0ZWYgRGF3c29uPC9h Pi4gQmFzZWQgb24gYW4gaWRlYSBicmV3aW5nIGluIHRoZSBiYWNrIG9mIG15IG1pbmQgd2hp bGUgaGFja2luZyBjaHNfaWZfdXJsdmFyLjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5p bnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIg PGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzkzMC9zbWRfaWYiPnRl eHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5j b20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGlu c3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDov L2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI1MzU3Ij5mb3J1bSB0 aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9y IG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBs eSBkZWxldGUgZnJvbSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+ VXNhZ2U8L2gyPgoKCTxwPlVzZSB0aGUgdGFnIGluIGFueSBwYWdlLCBmb3JtIG9yIGFydGlj bGUgY29udGV4dC4gQ2FuIGFsc28gYmUgdXNlZCBpbnNpZGUgZmlsZSwgaW1hZ2Ugb3IgbGlu ayBsaXN0cyB0byB0YWtlIGFjdGlvbiBkZXBlbmRpbmcgb24gYXR0cmlidXRlcyBvZiB0aGUg Y3VycmVudCBpdGVtLjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX2lmPC9oMz4KCgk8cCBj bGFzcz0idGFnLXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0byBjb21wYXJlIGEg ZmllbGQgd2l0aCBhbm90aGVyIHZhbHVlLCBwdXQgdGhpcyB0YWcgd2l0aCBhbGwgdGhyZWUg bWFuZGF0b3J5IGF0dHJpYnV0ZXMgKHNoYWRlZCBiZWxvdykuIEVhY2ggdGFrZSBhIHNlcmll cyBvZiBjb21tYS1zZXBhcmF0ZWQgbGlzdHMgJiM4MjEyOyB0aG91Z2ggdGhlIDxhIGhyZWY9 IiNwYXJhbWRlbGltIj5jb21tYSBpcyBvdmVycmlkYWJsZTwvYT4gd2l0aCB0aGUgcGFyYW1f ZGVsaW0gYXR0cmlidXRlLiBJZiB0aGUgcmVzdWx0IG9mIGFsbCB0aGUgY29tcGFyaXNvbiB0 ZXN0cyBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBi bG9jayB3aWxsIGJlIGV4ZWN1dGVkLiBJZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJj YXBzIj5GQUxTRTwvc3Bhbj4sIGFueSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+ IHdpbGwgYmUgZXhlY3V0ZWQgaW5zdGVhZC4gV2l0aG91dCBhbnkgPGNvZGU+Jmx0O3R4cDpl bHNlIC8mZ3Q7PC9jb2RlPiBibG9jaywgbm90aGluZyBpcyBvdXRwdXQgaWYgdGhlIHJlc3Vs dCBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDQgY2xhc3M9 ImF0dHMgIiBpZD0iYXR0cmlidXRlcyI+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+ZmllbGQ8L3NwYW4+IDogdGhlIDxhIGhyZWY9 IiNmaWVsZCI+ZmllbGRzPC9hPiB0byB0ZXN0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIG1hbmQiPm9wZXJhdG9yPC9zcGFuPiA6IHRoZSA8YSBocmVmPSIjb3BlcmF0b3Ii Pm9wZXJhdGlvbnM8L2E+IGZvciBjb21wYXJpc29uIHdpdGggdGhhdCBmaWVsZCAoZS5nLiA8 Y29kZT5lcTwvY29kZT4sIDxjb2RlPm5vdDwvY29kZT4sIDxjb2RlPmJlZ2luczwvY29kZT4s IGV0YykuIERlZmF1bHQgaXMgdXN1YWxseSA8Y29kZT5lcTwvY29kZT48L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+dmFsdWU8L3NwYW4+IDogdGhlIDxhIGhyZWY9 IiN2YWx1ZSI+dmFsdWVzPC9hPiB3aXRoIHdoaWNoIHRvIGNvbXBhcmUgdGhlIGZpZWxkczwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bG9naWM8L3NwYW4+IDogaG93IG11 bHRpcGxlIHRlc3RzIGFyZSBqb2luZWQ6IDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+ IG9yIE9SLiBEZWZhdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiAx ID0gY2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbjsgMCA9IGlnbm9yZSBjYXNlLiBEZWZhdWx0 IGlzIDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBhcmFtX2RlbGltPC9z cGFuPiA6IGRlbGltaXRlciB1c2VkIGJldHdlZW4gZWFjaCBmaWVsZCwgb3BlcmF0b3Igb3Ig dmFsdWUgaW4gYSBtdWx0aS10ZXN0LiBEZWZhdWx0IGlzIGEgY29tbWEgKCwpPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5tb2RfZGVsaW08L3NwYW4+IDogZGVsaW1pdGVy IHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGZpZWxkIG9yIG9wZXJhdG9yIG1vZGlmaWVycyBmb3Ig dXJsdmFyLCBzdnJ2YXIgYW5kIHR4cHZhci4gRGVmYXVsdCBpcyBhIGNvbG9uICg6KTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlzdF9kZWxpbTwvc3Bhbj4gOiBkZWxp bWl0ZXIgdXNlZCB3aGVuIHNwZWNpZnlpbmcgYSBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayB2 aWEgdGhlIDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3BlcmF0b3Jz LiBEZWZhdWx0IGlzIGEgZm9yd2FyZC1zbGFzaCAoLyk8L2xpPgoJPC91bD4KCgk8cD5UaGUg bGlzdHMgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciwgaS5lLiB0aGUgMXN0IGZpZWxkIHVzZXMg dGhlIDFzdCBvcGVyYXRvciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8gdGhlIDFz dCB2YWx1ZTsgdGhlIDJuZCBmaWVsZCB1c2VzIHRoZSAybmQgb3BlcmF0b3IgaW4gdGhlIGxp c3QgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSAybmQgdmFsdWUsIGFuZCBzbyBvbi4gVmFsdWVz IHNob3VsZCB1c3VhbGx5IGJlIHNwZWNpZmllZCB3aXRoIHBsYWNlaG9sZGVycyB0byBtYWlu dGFpbiBvcmRlcjogZS5nLiA8Y29kZT52YWx1ZT0mcXVvdDssIDQsLCB0b3AmcXVvdDs8L2Nv ZGU+PC9wPgoKCTxwPk5vdGUgdGhhdCwgYWx0aG91Z2ggdGhlIGZpcnN0IHRocmVlIGF0dHJp YnV0ZXMgYXJlIGNvbnNpZGVyZWQgbWFuZGF0b3J5LCBpZiB5b3UgaGFwcGVuIHRvIHJlcXVp cmUgdGhlIGRlZmF1bHQgb3BlcmF0b3IgZm9yIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIHNh ZmVseSBvbWl0IDxjb2RlPm9wZXJhdG9yPC9jb2RlPi4gU2ltaWxhcmx5IHdpdGggdmFsdWVz OiBpZiB5b3UgYXJlIGVudGlyZWx5IHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvciB0eXBlIG9m IHZhcmlhYmxlcywgeW91IGNhbiBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1l dGVyIGlmIHlvdSB3aXNoLjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImZpZWxk Ij5maWVsZDwvaDQ+CgoJPHA+TGlzdCBvZiBmaWVsZCBsb2NhdGlvbnMgdG8gbG9vayBhdC4g UG9zc2libGUgdmFsdWVzIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT5zZWN0aW9uPC9j b2RlPjwvbGk+CgkJPGxpPjxjb2RlPmNhdGVnb3J5PC9jb2RlPiAob3IgPGNvZGU+Y2F0ZWdv cnkxPC9jb2RlPiwgb3IgPGNvZGU+Y2F0ZWdvcnkyPC9jb2RlPiBpZiBvbiBhbiBhcnRpY2xl IHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+YXV0aG9yaWQ8L2NvZGU+IG9yIDxjb2RlPmF1dGhv cjwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5pZDwvY29kZT4gKGZpbGUvbGluay9pbWFnZS9h cnRpY2xlIElEKS4gSW4gYW4gaW5kaXZpZHVhbCBhcnRpY2xlIGNvbnRleHQsIHVzZSA8Y29k ZT50aGlzaWQ8L2NvZGU+IGluc3RlYWQ8L2xpPgoJCTxsaT48Y29kZT5xdWVyeTwvY29kZT4g KHRoZSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgc2VhcmNoIGZvcm0pPC9saT4KCQk8bGk+PGNv ZGU+cGc8L2NvZGU+ICh0aGUgY3VycmVudCBwYWdlIG51bWJlciBpbiBsaXN0cyk8L2xpPgoJ CTxsaT48Y29kZT5tb250aDwvY29kZT4gKGN1cnJlbnQgbW9udGggZmllbGQgZnJvbSB0aGUg YWRkcmVzcyBiYXIpPC9saT4KCQk8bGk+PGNvZGU+c3RhdHVzPC9jb2RlPiAoZG9jdW1lbnQg c3RhdHVzOiAyMDAsIDQwNCwgNDAzLCBldGMpPC9saT4KCQk8bGk+PGNvZGU+cGFnZTwvY29k ZT4gKHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBQYWdlIHRlbXBsYXRlIHVz ZWQgYnkgdGhpcyBzZWN0aW9uKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfaWQ8L2NvZGU+IC8g PGNvZGU+cHJldl9pZDwvY29kZT4gKElEIG9mIG5leHQvcHJldiBkb2N1bWVudCBpZiBvbiBh cnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF90aXRsZTwvY29kZT4gLyA8Y29k ZT5wcmV2X3RpdGxlPC9jb2RlPihUaXRsZSBvZiBuZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24g YXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfdXRpdGxlPC9jb2RlPiAvIDxj b2RlPnByZXZfdXRpdGxlPC9jb2RlPiAodXJsLXRpdGxlIG9mIG5leHQvcHJldiBkb2N1bWVu dCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+cGVybWxpbmtfbW9kZTwv Y29kZT4gKHRha2UgYWN0aW9uIGJhc2VkIG9uIG9uZSBvZiB0aGUgbWVzc3kvY2xlYW4gPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gc2NoZW1lcyk8L2xpPgoJCTxsaT48Y29kZT5v dGhlciBhcnRpY2xlL2ZpbGUvbGluayBmaWVsZDwvY29kZT4gKGUuZy4gYm9keSwgZXhjZXJw dCwgYXJ0aWNsZV9pbWFnZSwga2V5d29yZHMsIGxpbmthbm1lLCBmaWxlbmFtZSwgZG93bmxv YWRzLCAmIzgyMzA7KTwvbGk+CgkJPGxpPjxjb2RlPm15X2N1c3RvbV9maWVsZF9uYW1lPC9j b2RlPiAoYW55IGN1c3RvbSBmaWVsZHMgeW91IGhhdmUgZGVmaW5lZCk8L2xpPgoJCTxsaT48 Y29kZT51cmx2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgdmFyaWFibGUgaW4gdGhlIGFkZHJl c3MgYmFyIGFmdGVyIHRoZSA8Y29kZT4/PC9jb2RlPik8L2xpPgoJCTxsaT48Y29kZT5zdnJ2 YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgc3RhbmRhcmQgc2VydmVyIHZhcmlhYmxlLCBlLmcu IDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5UKTwvbGk+CgkJPGxp Pjxjb2RlPnR4cHZhcjpteV92YXI8L2NvZGU+IChhbnkgVGV4dHBhdHRlcm4gdmFyaWFibGUg c2V0IHdpdGggPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O215X3ZhciZxdW90 OyAvJmd0OzwvY29kZT4pPC9saT4KCQk8bGk+PGNvZGU+cGFyZW50Om9wdGlvbmFsX21vZGlm aWVyczwvY29kZT4gKHdoZXRoZXIgdGhlIGdpdmVuIGNhdGVnb3J5IGlzIGEgZGVzY2VuZGVu dCBvZiBhbm90aGVyIGNhdGVnb3J5KTwvbGk+CgkJPGxpPjxjb2RlPk5VTEw8L2NvZGU+ICh1 c2VmdWwgd2hlbiBjb21wYXJpbmcgYXJiaXRyYXJ5IHZhbHVlcyBmb3IgZW1wdGluZXNzKTwv bGk+Cgk8L3VsPgoKCTxwPklmIHlvdSBzcGVjaWZ5IGEgZmllbGQgbmFtZSB0aGF0IGRvZXMg bm90IGV4aXN0LCB0aGUgdGV4dCB5b3UgdXNlIHdpbGwgYmUgdGFrZW4gdmVyYmF0aW0gaW4g bW9zdCBjYXNlcy48L3A+CgoJPHA+VGhlIHNwZWNpYWwgZmllbGQgPGNvZGU+cGFyZW50PC9j b2RlPiBjaGVja3MgdGhlIHBhcmVudCBjYXRlZ29yeSBmb3IgYSBtYXRjaC4gVW5saWtlIHRo ZSBvdGhlciBmaWVsZCB0eXBlcywgdGhlIGRlZmF1bHQgPGEgaHJlZj0iI29wZXJhdG9yIj5v cGVyYXRvcjwvYT4gZm9yIHBhcmVudCBpcyAmIzgyMTY7Y29udGFpbnMmIzgyMTc7LiBUaGlz IGlzIGJlY2F1c2UgdGhlIGVudGlyZSB0cmVlIGlzIGNoZWNrZWQgZm9yIGEgbWF0Y2gsIHN0 YXJ0aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgdHJlZSBkb3duIHRvIHRoZSBjdXJyZW50IGNh dGVnb3J5LiBJbnRlcm5hbGx5LCB0aGUgcGx1Z2luIG1ha2VzIHVwIGEgJiM4MjIwO2JyZWFk Y3J1bWIgdHJhaWwmIzgyMjE7IG9mIGNhdGVnb3JpZXMgaW4gdGhlIGN1cnJlbnQgYnJhbmNo LCBlYWNoIHNlcGFyYXRlZCBieSBhIHNwYWNlLCBzbyB0ZXN0aW5nIGZvciBlcXVhbGl0eSB3 b3VsZCByZXF1aXJlIHB1dHRpbmcgdGhlbSBhbGwgaW4gdGhlIDxhIGhyZWY9IiN2YWx1ZSI+ dmFsdWU8L2E+IHBhcmFtZXRlci48L3A+CgoJPHA+WW91IGFyZSBvZiBjb3Vyc2UgZnJlZSB0 byBjaG9vc2UgYW4gYWx0ZXJuYXRpdmUgb3BlcmF0b3I7IDxjb2RlPmJlZ2luczwvY29kZT4g aXMgdmVyeSB1c2VmdWwgZm9yIHRlc3RpbmcgaWYgdGhlIHRvcCBsZXZlbCBjYXRlZ29yeSBt YXRjaGVzIHRoZSBvbmUgZ2l2ZW4gaW4gdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBmaWVsZC48 L3A+CgoJPHA+SWYgeW91IHVzZSA8Y29kZT5wYXJlbnQ6TFZMbjwvY29kZT4sIHRoZSBjb21w YXJpc29uIHdpbGwgYmUgcmVzdHJpY3RlZCB0byB0aGF0ICYjODIyMDtsZXZlbCYjODIyMTsg b2Ygc3ViLWNhdGVnb3J5OyBMVkwxIGlzIHRoZSAmIzgyMjA7dG9wJiM4MjIxOyBsZXZlbCwg TFZMMiBpcyB0aGUgbmV4dCBzdWItY2F0ZWdvcnkgbGV2ZWwsIGFuZCBzbyBvbi4gV2hlbiB1 c2luZyB0aGVzZSBtb2RpZmllcnMsIHRoZSAmIzgyMTY7ZXEmIzgyMTc7IG9wZXJhdG9yIGJl Y29tZXMgbW9yZSB1c2VmdWwgYmVjYXVzZSB5b3UgYXJlIGNvbXBhcmluZyBhIHNpbmdsZSBw YXJlbnQgY2F0ZWdvcnkuPC9wPgoKCTxwPldoZW4gdXNpbmcgYXJ0aWNsZXMsIHlvdSBjYW4g ZnVydGhlciBtb2RpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgcGFyZW50IHVzaW5nIHRoZSA8 Y29kZT5DQVRuPC9jb2RlPiBzeW50YXggKHdoZXJlICYjODIxNjtuJiM4MjE3OyBpcyAxIG9y IDIpLiBTcGVjaWZ5aW5nICYjODIyMDtwYXJlbnQmIzgyMjE7IHdpdGhvdXQgPGNvZGU+Q0FU bjwvY29kZT4gd2lsbCB1c2UgdGhlIGdsb2JhbCBjYXRlZ29yeSAoPGNvZGU+P2M9PC9jb2Rl PikuIElmIHlvdSBhZGQgPGNvZGU+OkNBVG48L2NvZGU+IGl0IHdpbGwgaW5zdGVhZCBjb21w YXJlIHRoZSBhcnRpY2xlJiM4MjE3O3MgY2F0ZWdvcnkxIG9yIGNhdGVnb3J5MiByZXNwZWN0 aXZlbHkuPC9wPgoKCTxwPllvdSBjYW4gdXNlIDxzcGFuIGNsYXNzPSJjYXBzIj5DQVQ8L3Nw YW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+TFZMPC9zcGFuPiBpbiBjb21iaW5hdGlvbiwg aW5kZXBlbmRlbnRseSBvciBub3QgYXQgYWxsLiBUaGlzIGFsbG93cyBjb21wYXJpc29ucyBz dWNoIGFzICYjODIyMDtpZiB0aGUgMm5kIHN1Yi1jYXRlZ29yeSBvZiBjYXRlZ29yeTEgZXF1 YWxzIGJsYWhibGFoJiM4MjIxOyBvciAmIzgyMjA7aWYgY2F0ZWdvcnkyIGlzIGEgY2hpbGQg b2YgYmxhaGJsYWgmIzgyMjE7LiBTZWUgPGEgaHJlZj0iI2VnNCI+RXhhbXBsZSA0PC9hPi48 L3A+CgoJPHA+T25lIG90aGVyIHNwZWNpYWwgZmllbGQgaXMgPGNvZGU+TlVMTDwvY29kZT4u IFRoaXMgaXMgZXhhY3RseSB3aGF0IGl0IHNheXMgaXQgaXM6IGVtcHR5LiBUaGUgcmVhc29u IGZvciBpdHMgaW5jbHVzaW9uIGlzIHRoYXQgc29tZXRpbWVzIHlvdSB3aXNoIHRvIHRlc3Qg c29tZXRoaW5nIHRoYXQgaXNuJiM4MjE3O3QgYSB0cnVlIHZhcmlhYmxlICYjODIxMjsgZS5n LiBhIHJlcGxhY2VtZW50IHZhcmlhYmxlIGZyb20gc21kX3ZhcnMgb3Igc21kX2VhY2ggJiM4 MjEyOyB0byBzZWUgaWYgaXQmIzgyMTc7cyBlbXB0eSBvciBub3QuPC9wPgoKCTxwPklmIHlv dSB3ZXJlIHRvIHB1dCB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7dHhwOnNtZF9pZiBmaWVs ZD0mcXVvdDt7cmVzdWx0fSZxdW90OyBvcGVyYXRvcj0mcXVvdDtpc2VtcHR5JnF1b3Q7Jmd0 OzwvY29kZT48L3A+CgoJPHA+eW91IHdvdWxkIG5vdCBnZXQgdGhlIHJlc3VsdCB5b3UgZXhw ZWN0IChpdCYjODIxNztzIHByZXR0eSBlc290ZXJpYyBidXQgaXQgcmV2b2x2ZXMgYXJvdW5k IHRoZSBmYWN0IHRoYXQgPGNvZGU+JnF1b3Q7JnF1b3Q7PC9jb2RlPiAoYXMgYSB2YXJpYWJs ZSBuYW1lKSBpcyBub3QgZW1wdHksIGl0JiM4MjE3O3MgaW52YWxpZCkuIFRvIGdldCByb3Vu ZCB0aGlzIHlvdSBtYXkgdXNlIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBhcyBh IHBsYWNlaG9sZGVyIGFuZCBtb3ZlIHRoZSB0aGluZyB5b3Ugd2FudCB0byBjaGVjayBpbnRv IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gaW5zdGVhZCwgZS5nOjwvcD4KCgk8cD48Y29kZT4m bHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtOVUxMJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2Vx JnF1b3Q7IHZhbHVlPSZxdW90O3tyZXN1bHR9JnF1b3Q7Jmd0OzwvY29kZT48L3A+CgoJPHA+ d2lsbCB0ZXN0IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwvc3Bhbj4gb2JqZWN0IChp LmUuICYjODIxNjtlbXB0aW5lc3MmIzgyMTc7KSB0byBzZWUgaWYgaXQmIzgyMTc7cyBlcXVh bCB0byB0aGUgPGNvZGU+e3Jlc3VsdH08L2NvZGU+IHJlcGxhY2VtZW50IHZhcmlhYmxlLiBZ b3UgY2FuIHVzZSBzaW1pbGFyIGxvZ2ljIHRvIHRlc3QgZm9yIG9wdGlvbmFsIHZhcmlhYmxl cyBieSBzd2FwcGluZyB0aGUgZmllbGQgYW5kIHZhbHVlLCBsaWtlIHRoaXM6PC9wPgoKCTxw Pjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90OzcmcXVvdDsgb3BlcmF0b3I9JnF1 b3Q7Z3QmcXVvdDsgdmFsdWU9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsmZ3Q7PC9jb2RlPjwvcD4K Cgk8cD5UaGF0IHdvdWxkIHNlZSBpZiB0aGUgcmVwbGFjZW1lbnQgdmFyaWFibGUgPGNvZGU+ e3Jlc3VsdH08L2NvZGU+IHdhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyAodGhhdCYjODIx NztzIG5vdCBhIHR5cG8sIHRoZSBsb2dpYyBpcyByZXZlcnNlZCBpbiB0aGlzIGNhc2U6IGl0 IGlzIGludGVycHJldGVkIGFzOiAmIzgyMjA7aXMgNyBncmVhdGVyIHRoYW4ge3Jlc3VsdH0m IzgyMjE7LCB3aGljaCBpcyB0aGUgc2FtZSBhcyAmIzgyMjA7aXMge3Jlc3VsdH0gbGVzcyB0 aGFuIG9yIGVxdWFsIHRvIDcmIzgyMjE7ISk8L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAi IGlkPSJvcGVyYXRvciI+b3BlcmF0b3I8L2g0PgoKCTxwPkxpc3Qgb2Ygb3BlcmF0b3JzIHRv IGFwcGx5LCBpbiBvcmRlciwgdG8gZWFjaCBmaWVsZC4gQ2hvb3NlIGZyb206PC9wPgoKCTx1 bD4KCQk8bGk+PGNvZGU+ZXE8L2NvZGU+IEVxdWFsICh0aGUgZGVmYXVsdCBmb3IgYWxsIGV4 Y2VwdCAmIzgyMTY7cGFyZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48Y29kZT5ub3Q8L2NvZGU+ IE5vdCBlcXVhbDwvbGk+CgkJPGxpPjxjb2RlPmx0PC9jb2RlPiBMZXNzIHRoYW48L2xpPgoJ CTxsaT48Y29kZT5ndDwvY29kZT4gR3JlYXRlciB0aGFuPC9saT4KCQk8bGk+PGNvZGU+bGU8 L2NvZGU+IExlc3MgdGhhbiBvciBlcXVhbCB0bzwvbGk+CgkJPGxpPjxjb2RlPmdlPC9jb2Rl PiBHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG88L2xpPgoJCTxsaT48Y29kZT5pbjwvY29kZT4g RmllbGQgaXMgb25lIG9mIGEgbGlzdCBvZiB2YWx1ZXM8L2xpPgoJCTxsaT48Y29kZT5ub3Rp bjwvY29kZT4gRmllbGQgaXMgbm90IG9uZSBvZiB0aGUgZ2l2ZW4gbGlzdCBvZiB2YWx1ZXM8 L2xpPgoJCTxsaT48Y29kZT5iZWdpbnM8L2NvZGU+IEZpZWxkIGJlZ2lucyB3aXRoIGEgc2Vx dWVuY2Ugb2YgY2hhcmFjdGVyczwvbGk+CgkJPGxpPjxjb2RlPmNvbnRhaW5zPC9jb2RlPiBG aWVsZCBjb250YWlucyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgKGRlZmF1bHQgZm9yICYj ODIxNjtwYXJlbnQmIzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPmVuZHM8L2NvZGU+IEZpZWxk IGVuZHMgd2l0aCBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5p c2VtcHR5PC9jb2RlPiBGaWVsZCBpcyBlbXB0eSAoY29udGFpbnMgbm90aGluZyk8L2xpPgoJ CTxsaT48Y29kZT5pc3VzZWQ8L2NvZGU+IEZpZWxkIGhhcyBzb21lIHZhbHVlPC9saT4KCQk8 bGk+PGNvZGU+ZGVmaW5lZDwvY29kZT4gRmllbGQgaXMgc2V0ICh1c2VmdWwgd2l0aCB1cmx2 YXIgdmFyaWFibGVzKTwvbGk+CgkJPGxpPjxjb2RlPnVuZGVmaW5lZDwvY29kZT4gRmllbGQg aXMgbm90IHNldCwgb3IgbWlzc2luZyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiBsaW5lPC9saT4KCQk8bGk+PGNvZGU+aXNudW08L2NvZGU+IEZpZWxkIGlzIGEg bnVtYmVyPC9saT4KCQk8bGk+PGNvZGU+aXNhbHBoYTwvY29kZT4gRmllbGQgY29udGFpbnMg Y2hhcmFjdGVycyBvbmx5PC9saT4KCQk8bGk+PGNvZGU+aXNhbG51bTwvY29kZT4gRmllbGQg Y29udGFpbnMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2Rl PmlzbG93ZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgbG93ZXIg Y2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzdXBwZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBp biB0aGUgZmllbGQgaXMgdXBwZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzcHVuY3Q8L2Nv ZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgc29tZSBwdW5jdHVhdGlvbiBt YXJrPC9saT4KCQk8bGk+PGNvZGU+aXNzcGFjZTwvY29kZT4gRXZlcnkgY2hhcmFjdGVyIGlu IHRoZSBmaWVsZCBpcyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIChvciB0YWIsIG5ld2xpbmUs IGV0Yyk8L2xpPgoJPC91bD4KCgk8cD5XaXRoIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycyAo Z3QsIGx0LCBnZSwgbGUpIHlvdSBtYXkgZmluZCBvZGQgYmVoYXZpb3VyIHdoZW4gY29tcGFy aW5nIG51bWJlcnMuIEZvciBleGFtcGxlLCA8Y29kZT51cmx2YXI6cGljIGd0IDY8L2NvZGU+ IHdpbGwgcmV0dXJuIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPiBpZiA8Y29kZT5w aWM8L2NvZGU+IGlzIHNldCB0byAmIzgyMjA7ZnJlZCYjODIyMTsuIFRoaXMgaXMgYmVjYXVz ZSB0aGUgd29yZCAmIzgyMjA7ZnJlZCYjODIyMTsgKG9yIGF0IGxlYXN0IHRoZSAmIzgyMjA7 Y2hhcmFjdGVyIGYmIzgyMjE7KSBpcyBncmVhdGVyIGluIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+QVNDSUk8L3NwYW4+IHRhYmxlIHRoYW4gdGhlICYjODIyMDtjaGFyYWN0ZXIgNiYjODIy MTsuPC9wPgoKCTxwPlRvIGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVtLCB5b3UgbWF5IGFwcGVu ZCA8Y29kZT46TlVNPC9jb2RlPiB0byB0aGUgZW5kIG9mIGFueSBvZiB0aGVzZSA0IG9wZXJh dG9ycyB0byBmb3JjZSB0aGUgcGx1Z2luIHRvIGNoZWNrIHRoYXQgdGhlIHZhbHVlcyBhcmUg aW50ZWdlcnMuPC9wPgoKCTxwPkFueSBvZiB0aGUgPGNvZGU+aXM8L2NvZGU+IG9wZXJhdG9y cyAoZXhjZXB0IDxjb2RlPmlzc3BhY2U8L2NvZGU+KSBjYW4gdGFrZSBhbiBleHRyYSBwYXJh bWV0ZXIgYXMgd2VsbC4gU2luY2UgdGhleSBjb21wYXJlIGV2ZXJ5IGNoYXJhY3RlciBhZ2Fp bnN0IHRoZSBnaXZlbiBiZWhhdmlvdXIsIHNwYWNlIGNoYXJhY3RlcnMgY2FuIG1lc3MgdGhp bmdzIHVwIGEgYml0LiBGb3IgZXhhbXBsZSA8Y29kZT5maWVsZD0mcXVvdDtjdXN0b20xJnF1 b3Q7IG9wZXJhdG9yPSZxdW90O2lzbG93ZXImcXVvdDs8L2NvZGU+IHdpbGwgZmFpbCBpZiBj dXN0b20xIGNvbnRhaW5zICYjODIyMDt0aGlzIGlzIGEgdGVzdCYjODIyMTsuIFRvIGNpcmN1 bXZlbnQgdGhpcywgYWRkIDxjb2RlPjpOT1NQQUNFPC9jb2RlPiB0byB0aGUgb3BlcmF0b3Ig d2hpY2ggd2lsbCByZW1vdmUgYWxsIHNwYWNlcyBmcm9tIHRoZSBzdHJpbmcgYmVmb3JlIHRl c3RpbmcgaXQuPC9wPgoKCTxwPk5vdGUgYWxzbyB0aGF0IHdoaWxlIDxjb2RlPmRlZmluZWQ8 L2NvZGU+IGFuZCA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGRpZmZlciBzZW1hbnRpY2FsbHkg ZnJvbSA8Y29kZT5pc3VzZWQ8L2NvZGU+IGFuZCA8Y29kZT5pc2VtcHR5PC9jb2RlPiAocmVz cGVjdGl2ZWx5KSwgdGhlIHdheSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBhc3Np Z25zIHZhcmlhYmxlcyBtZWFucyB0aGF0LCBmb3IgdGhlIG1vc3QgcGFydCwgdGhlIHRlcm1z IGFyZSBpbnRlcmNoYW5nZWFibGUuIFdoZW4gZGVhbGluZyB3aXRoIHVybHZhcnMgYW5kIHN2 cnZhcnMsIHRoZSB0d28gc2V0cyBvZiBvcGVyYXRvcnMgYmVoYXZlIGluZGVwZW5kZW50bHks IGFzIHlvdSB3b3VsZCBleHBlY3QuIFNlZSA8YSBocmVmPSIjZWc1Ij5FeGFtcGxlIDU8L2E+ IGZvciBtb3JlLiBOZWl0aGVyIDxjb2RlPmRlZmluZWQ8L2NvZGU+IG5vciA8Y29kZT51bmRl ZmluZWQ8L2NvZGU+IG1ha2Ugc2Vuc2Ugd2l0aCA8Y29kZT5wYXJlbnQ8L2NvZGU+LCBzbyB0 aGV5IGFyZSBmb3JiaWRkZW4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0idmFs dWUiPnZhbHVlPC9oND4KCgk8cD5MaXN0IG9mIHZhbHVlcyB0byBjb21wYXJlIGVhY2ggZmll bGQgaW4gdHVybiB0by4gQ2FuIGJlIHN0YXRpYyB2YWx1ZXMvdGV4dCBvciB0aGUgbmFtZSBv ZiBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQsIGxpa2UgdGhvc2Ug Z2l2ZW4gaW4gPGEgaHJlZj0iI2ZpZWxkIj5maWVsZDwvYT4gKGV4Y2VwdCAmIzgyMjA7cGFy ZW50JiM4MjIxOykuPC9wPgoKCTxwPlRvIGRpc3Rpbmd1aXNoIGEgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4gZmllbGQgZnJvbSBzdGF0aWMgdGV4dCwgcHJlZml4IHRoZSBmaWVs ZCBuYW1lIHdpdGggPGNvZGU+PzwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT52YWx1ZT0m cXVvdDt0aXRsZSZxdW90OzwvY29kZT4gd2lsbCBjb21wYXJlIHlvdXIgY2hvc2VuIGZpZWxk IGFnYWluc3QgdGhlIHdvcmQgJiM4MjIwO3RpdGxlJiM4MjIxOywgd2hlcmVhcyA8Y29kZT52 YWx1ZT0mcXVvdDs/dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3VyIGZpZWxk IGFnYWluc3QgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIHRpdGxlLjwvcD4KCgk8cD5O b3RlIHRoYXQgeW91IG1heSBmaW5kIHVzaW5nIGRvdWJsZS1xdW90ZXMgaW4gZmllbGRzIGdp dmVzIHVuZXhwZWN0ZWQgcmVzdWx0cy4gVGhleSBhcmUgYmVzdCBhdm9pZGVkLCBvciB3b3Jr ZWQgYXJvdW5kIGJ5IHVzaW5nIDxjb2RlPmNvbnRhaW5zPC9jb2RlPiBpbnN0ZWFkIG9mIDxj b2RlPmVxPC9jb2RlPi48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJsb2dpYyI+ bG9naWM8L2g0PgoKCTxwPkNhbiBiZSBvbmUgb2YgPGNvZGU+YW5kPC9jb2RlPiAodGhlIGRl ZmF1bHQpIG9yIDxjb2RlPm9yPC9jb2RlPi4gSWYgdXNpbmcgPGNvZGU+YW5kPC9jb2RlPiwg YWxsIGNvbmRpdGlvbnMgbXVzdCBiZSBtZXQgZm9yIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRS VUU8L3NwYW4+IHJlc3VsdC4gSWYgdXNpbmcgPGNvZGU+b3I8L2NvZGU+LCBhbnkgb2YgdGhl IGNvbmRpdGlvbnMgdGhhdCBtYXRjaCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+ VFJVRTwvc3Bhbj4gcmVzdWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImNh c2VzZW5zZSI+Y2FzZV9zZW5zaXRpdmU8L2g0PgoKCTxwPkJ5IGRlZmF1bHQsIGFsbCBjb21w YXJpc29ucyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSAoMCkuIElmIHlvdSB3aXNoIHRvIG1ha2Ug dGhlbSBzZW5zaXRpdmUgdG8gY2FwdGlsaXNhdGlvbiwgc3BlY2lmeSA8Y29kZT5jYXNlX3Nl bnNpdGl2ZT0mcXVvdDsxJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHVzaW5nIDxjb2Rl PmlzbG93ZXI8L2NvZGU+IG9yIDxjb2RlPmlzdXBwZXI8L2NvZGU+IGluIGEgY29tcGFyaXNv biwgY2FzZSBzZW5zaXRpdml0eSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3dpdGNoZWQgb24g d2hpbGUgdGhlIHRlc3QgaXMgdGFraW5nIHBsYWNlLjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1u YW1lICIgaWQ9InBhcmFtZGVsaW0iPnBhcmFtX2RlbGltPC9oND4KCgk8cD5Zb3Ugbm9ybWFs bHkgc3BlY2lmeSBjb21tYS1zZXBhcmF0ZWQgbGlzdHMgdG8gdGhlIDxjb2RlPmZpZWxkPC9j b2RlPiwgPGNvZGU+b3BlcmF0b3I8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4gcGFy YW1ldGVycy4gU29tZXRpbWVzIHRoaXMgbWlnaHQgbm90IGJlIGRlc2lyYWJsZSBpZiB5b3Ug aGF2ZSB1c2VkIHRoYXQgY2hhcmFjdGVyIGluIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGZpZWxk LCBmb3IgZXhhbXBsZS4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIGRl bGltaXRlciB0byBhbG1vc3QgYW55dGhpbmcgeW91IGxpa2UsIGUuZy4gc3BlY2lmeWluZyA8 Y29kZT5wYXJhbV9kZWxpbT0mcXVvdDsvLyZxdW90OzwvY29kZT4gbWVhbnMgeW91IHdvdWxk IHNwZWNpZnkgPGVtPmFsbDwvZW0+IHlvdXIgcGFyYW1ldGVyIGxpc3RzIGxpa2UgdGhpczo8 L3A+CgoJPHA+PGNvZGU+ZmllbGQ9JnF1b3Q7c2VjdGlvbiAvLyB1cmx2YXI6dHlwZSZxdW90 OyBvcGVyYXRvcj0mcXVvdDtlcSAvLyBiZWdpbnMmcXVvdDsgdmFsdWU9JnF1b3Q7YW5pbWFs cyAvLyB0aWdlciZxdW90OzwvY29kZT48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlk PSJtb2RkZWxpbSI+bW9kX2RlbGltPC9oND4KCgk8cD5WZXJ5IHNpbWlsYXIgdG8gPGEgaHJl Zj0iI3BhcmFtZGVsaW0iPnBhcmFtX2RlbGltPC9hPiwgdGhpcyBnb3Zlcm5zIHRoZSBkZWxp bWl0ZXIgdG8gdXNlIGJldHdlZW4gYW4gb3B0aW9uIGFuZCBpdHMgbW9kaWZpZXIgKGUuZy4g dGhlIHRoaW5nIHNlcGFyYXRpbmcgdXJsdmFyLCBzdnJ2YXIgb3IgdHhwdmFyIGZyb20gdGhl IHZhcmlhYmxlIG5hbWUsIG9yIHBhcmVudCBmcm9tIDxjb2RlPkxWTDwvY29kZT4gYW5kIDxj b2RlPkNBVDwvY29kZT4sIGFuZCBhbHNvIHRoZSBjaGFyYWN0ZXIocykgdGhhdCBzZXBhcmF0 ZSBhbiBvcGVyYXRvciBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVNPC9zcGFuPiBv ciA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXJzKS4gSXQgaXMg dGhlIGNvbG9uICg6KSBieSBkZWZhdWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIg aWQ9Im1vZGRlbGltIj5saXN0X2RlbGltPC9oND4KCgk8cD5Gb3IgdXNlIHdpdGggdGhlIDxj b2RlPmluPC9jb2RlPiBhbmQgPGNvZGU+bm90aW48L2NvZGU+IG9wZXJhdG9ycywgdGhpcyBp cyB0aGUgZGVsaW1pdGVyIGJldHdlZW4gdmFsdWVzLiBJdCBpcyB0aGUgZm9yd2FyZC1zbGFz aCAoLykgYnkgZGVmYXVsdC4gQSBjb250cml2ZWQgZXhhbXBsZTo8L3A+Cgo8cHJlPjxjb2Rl PiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3R4cHZhcjpsZXZlbCZxdW90OyBvcGVyYXRv cj0mcXVvdDtpbiZxdW90OyB2YWx1ZT0mcXVvdDsxLzIvMy81LzgvMTMvMjEvMzQmcXVvdDsm Z3Q7CiAgJmx0O3AmZ3Q7UmVzdWx0IGlzIGEgRmlib25hY2NpIHZhbHVlISZsdDsvcCZndDsK Jmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Tm90ZSB0aGF0IGluIGFs bCAmIzgyMTY7ZGVsaW0mIzgyMTc7IGF0dHJpYnV0ZXMsIHNvbWUgY2hhcmFjdGVyIHNlcXVl bmNlcyBtYXkgY2F1c2UgcHJvYmxlbXMgKHF1b3RlcyAmIzgyMTI7IHNpbmdsZSBvciBkb3Vi bGUgJiM4MjEyOyBzcHJpbmcgdG8gbWluZDsgb3RoZXJzIGxpa2UgcGFyZW50aGVzZXMgbWF5 IGFsc28gY2F1c2UgdGhlIHBsdWdpbiB0byBleHBsb2RlKS48L3A+CgoJPGgzPlJlcGxhY2Vt ZW50IHRhZ3M8L2gzPgoKCTxwPkV2ZXJ5IGZpZWxkIG9yIHZhbHVlIHRoYXQgeW91IHJlZmVy IHRvIGluIHlvdXIgc21kX2lmIHRhZyBiZWNvbWVzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGNv bnRhaW5pbmcgYmxvY2sgc28geW91IGNhbiBkaXNwbGF5IGl0cyBjb250ZW50cyBpZiB5b3Ug d2lzaC4gTW9zdCBvZiB0aGUgdGltZSB0aGlzIGlzIG5vdCBtdWNoIHVzZSBidXQgaXQgY2Fu IGJlIHZlcnkgdXNlZnVsIHdpdGggdGhlIDxjb2RlPmluPC9jb2RlPiBvcGVyYXRvci4gRm9y IGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBhc2tlZCBzbWRfaWYgdG8gdGVzdCB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgbmFtZWQgJiM4MjE2O2xldmVsJiM4 MjE3OyBhbmQgdG9sZCBpdCB0byBjb21wYXJlIGl0IHRvIHRoZSBjdXN0b20gZmllbGQgbGFi ZWxsZWQgJiM4MjE2O2FsbG93YWJsZV9sZXZlbHMmIzgyMTc7LCB0d28gdGFncyBiZWNvbWUg YXZhaWxhYmxlIHdoaWNoIHlvdSBjYW4gdXNlIHdpdGhpbiB0aGUgY29udGFpbmluZyBibG9j azo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57c21kX2lmX2xldmVsfTwvY29kZT4gd291bGQg ZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlICYjODIxNjtsZXZlbCYjODIxNzsgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGU8L2xpPgoJCTxsaT48Y29kZT57c21kX2lm X2FsbG93YWJsZV9sZXZlbHN9PC9jb2RlPiB3b3VsZCBkaXNwbGF5IHRoZSBjb250ZW50cyBv ZiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgY3VzdG9tIGZpZWxkPC9saT4KCTwvdWw+ CgoJPHA+VGhlIHJlcGxhY2VtZW50IHRhZ3MgYXJlIGFsd2F5cyBwcmVmaXhlZCB3aXRoIDxj b2RlPnNtZF9pZl88L2NvZGU+IHNvIHRoZXkgZG9uJiM4MjE3O3QgY2xhc2ggd2l0aCB0aGUg b25lcyBpbiBzbWRfZ2FsbGVyeSAoZm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgc21kX2lmIGlu c2lkZSBhbiBzbWRfZ2FsbGVyeSB0YWcpLiBJZiB5b3UgYXJlIGNvbXBhcmluZyBhIGZpeGVk LXZhbHVlIGZpZWxkIChzdWNoIGFzIDxjb2RlPmZpZWxkPSZxdW90O05VTEwmcXVvdDs8L2Nv ZGU+IG9yIDxjb2RlPnZhbHVlPSZxdW90OzEyJnF1b3Q7PC9jb2RlPiBvciBzbWRfZ2FsbGVy eSYjODIxNztzIDxjb2RlPnZhbHVlPSZxdW90O3tjYXRlZ29yeX0mcXVvdDs8L2NvZGU+KSB0 aGUgbmFtZSBvZiB0aGUgcmVwbGFjZW1lbnQgdGFncyBhcmUgPGNvZGU+e3NtZF9pZl9maWVs ZH08L2NvZGU+IGZvciBmaWVsZHMgYW5kIDxjb2RlPntzbWRfaWZfdmFsfTwvY29kZT4gZm9y IHZhbHVlcy48L3A+CgoJPHA+U2VlIDxhIGhyZWY9IiNlZzgiPkV4YW1wbGUgODwvYT4gZm9y IG1vcmUuPC9wPgoKCTxoMj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUg MTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9pZiBmaWVsZD0mcXVvdDtzZWN0aW9uLCBpZCZxdW90OwogICAgIG9wZXJhdG9yPSZx dW90O2JlZ2lucywgZ3QmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtsaW9uLCAxMiZxdW90OyZn dDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0 O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5DaGVja3MgaWYgdGhlIGN1cnJlbnQgc2VjdGlvbiBuYW1lIGJlZ2lu cyB3aXRoIHRoZSB3b3JkICYjODIyMDtsaW9uJiM4MjIxOyBhbmQgdGhlIGFydGljbGUgSUQg aXMgZ3JlYXRlciB0aGFuIDEyLiBEaXNwbGF5cyB0aGUgYXJ0aWNsZSBpZiBib3RoIGNvbmRp dGlvbnMgYXJlIG1ldCBvciBkaXNwbGF5cyB0aGUgdGV4dCAmIzgyMjA7Tm90IHRvZGF5LCB0 aGFua3MmIzgyMjE7IGlmIG5vdC48L3A+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9p ZiBmaWVsZD0mcXVvdDtzdW1tYXJ5LCBjYXRlZ29yeSwgdXJsdmFyOnBpYyZxdW90OwogICAg IG9wZXJhdG9yPSZxdW90O2lzdXNlZCwgZXEsIGlzbnVtJnF1b3Q7CiAgICAgdmFsdWU9JnF1 b3Q7LCBhbmltYWwgLCZxdW90OyAmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4 cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0 Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q2hlY2tzIGlmIHRoZSBjdXN0 b20gZmllbGQgbGFiZWxsZWQgJiM4MjIwO3N1bW1hcnkmIzgyMjE7IGhhcyBzb21lIGRhdGEg aW4gaXQsIGNoZWNrcyBpZiB0aGUgZ2xvYmFsIGNhdGVnb3J5IGVxdWFscyAmIzgyMjA7YW5p bWFsJiM4MjIxOyBhbmQgdGVzdHMgaWYgdGhlIHVybHZhciA8Y29kZT5waWM8L2NvZGU+IGlz IG51bWVyaWMgKGUuZy4gPGNvZGU+P3BpYz01PC9jb2RlPikuPC9wPgoKCTxwPklmIGFsbCB0 aGVzZSBjb25kaXRpb25zIGFyZSBtZXQgdGhlIGFydGljbGUgaXMgZGlzcGxheWVkLCBlbHNl IHRoZSBtZXNzYWdlIGlzIHNob3duLiBOb3RlIHRoYXQgPGNvZGU+aXN1c2VkPC9jb2RlPiBh bmQgPGNvZGU+aXNudW08L2NvZGU+IGRvbiYjODIxNzt0IHRha2UgYXJndW1lbnRzIGZvciA8 Y29kZT52YWx1ZTwvY29kZT4gYW5kIHRoZWlyIHBvc2l0aW9ucyBhcmUgaGVsZCBieSBlbXB0 eSBjb21tYXMgKHRlY2huaWNhbGx5IHRoZSBsYXN0IGNvbW1hIGlzbiYjODIxNzt0IG5lZWRl ZCBidXQgaXQgaGVscHMga2VlcCBldmVyeXRoaW5nIG5lYXQgaWYgeW91IGFkZCBmdXJ0aGVy IHRlc3RzIGxhdGVyIG9uKS48L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1wbGUgMzwvaDM+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBm aWVsZD0mcXVvdDthcnRpY2xlX2ltYWdlLCBzdnJ2YXI6SFRUUF9VU0VSX0FHRU5UJnF1b3Q7 CiAgICAgb3BlcmF0b3I9JnF1b3Q7ZXEsIGNvbnRhaW5zJnF1b3Q7CiAgICAgdmFsdWU9JnF1 b3Q7dXJsdmFyOnBpYywgU2FmYXJpJnF1b3Q7CiAgICAgbG9naWM9JnF1b3Q7b3ImcXVvdDsm Z3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZn dDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+Q29tcGFyZXMgKGZvciBlcXVhbGl0eSkgdGhlIGN1cnJlbnQgYXJ0 aWNsZSBpbWFnZSBpZCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2Rl PnBpYzwvY29kZT4gYW5kIGNoZWNrcyBpZiB0aGUgdmFsdWUgb2YgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5UIHN0cmluZyBjb250YWlucyAmIzgyMjA7 U2FmYXJpJiM4MjIxOy4gVGhpcyBleGFtcGxlIHVzZXMgdGhlICYjODIxNjtvciYjODIxNzsg bG9naWMsIGhlbmNlIGlmIDxlbT5laXRoZXI8L2VtPiBjb25kaXRpb24gaXMgbWV0IHRoZSBh cnRpY2xlIGlzIHNob3duLCBvdGhlcndpc2UgdGhlICYjODIxNjtub3QgdG9kYXkmIzgyMTc7 IG1lc3NhZ2UgaXMgZGlzcGxheWVkLjwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0PC9o Mz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21k X2lmIGZpZWxkPSZxdW90O3BhcmVudDpMVkwyJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7 ZXEmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDttYW1tYWwmcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFy dGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRo YW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ Q2hlY2tzIHRoZSAybmQgc3ViLWNhdGVnb3J5IG9mIHRoZSBnbG9iYWwgY2F0ZWdvcnkmIzgy MTc7cyB0cmVlIHRvIHNlZSBpZiBpdCBlcXVhbHMgJiM4MjIwO21hbW1hbCYjODIyMTsuIElm IGl0IGRvZXMsIHNob3cgdGhlIGFydGljbGU7IGlmIG5vdCBzaG93IHRoZSBtZXNzYWdlLiBS ZW1vdmluZyB0aGUgPGNvZGU+OkxWTDI8L2NvZGU+ICh3aGljaCBhbGxvd3MgeW91IHRvIGFs c28gcmVtb3ZlIHRoZSBvcGVyYXRvciBwYXJhbWV0ZXIgdG8gZm9yY2UgdGhlIGNvbXBhcmlz b24gdG8gYmUgdGhlIGRlZmF1bHQgJiM4MjIwO2NvbnRhaW5zJiM4MjIxOykgY2hlY2tzIGlm IHRoZSBjdXJyZW50IGdsb2JhbCBjYXRlZ29yeSBpcyBhIGNoaWxkIG9mICYjODIxNjttYW1t YWwmIzgyMTc7IChhdCBhbnkgbGV2ZWwpLjwvcD4KCgk8cD5DaGFuZ2UgdGhlIGZpZWxkIHRv IDxjb2RlPnBhcmVudDpDQVQxPC9jb2RlPiB0byBzZWUgaWYgdGhlIGFydGljbGUmIzgyMTc7 cyBjYXRlZ29yeTEgbWF0Y2hlcyAmIzgyMTY7bWFtbWFsJiM4MjE3OyBhdCBhbnkgbGV2ZWws IG9yIHVzZSA8Y29kZT5maWVsZD0mcXVvdDtwYXJlbnQ6Q0FUMTpMVkwyJnF1b3Q7PC9jb2Rl PiB0byBjb21iaW5lIHRoZSBjaGVja3MuPC9wPgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnBpYywgdXJsdmFyOnBhZ2UmcXVvdDsKICAgICBv cGVyYXRvcj0mcXVvdDtndDpOVU0sIHVuZGVmaW5lZCZxdW90OwogICAgIHZhbHVlPSZxdW90 Oz9hcnRpY2xlX2ltYWdlLCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7 dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0Owom bHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UZXN0cyBpZiB0aGUgdXJs IHZhcmlhYmxlIDxjb2RlPnBpYzwvY29kZT4gaXMgc3RyaWN0bHkgbnVtZXJpY2FsbHkgZ3Jl YXRlciB0aGFuIHRoZSB2YWx1ZSBpbiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgPGNv ZGU+YXJ0aWNsZV9pbWFnZTwvY29kZT4gZmllbGQgYW5kIHRoYXQgdGhlIHVybCB2YXJpYWJs ZSA8Y29kZT5wYWdlPC9jb2RlPiBpcyBtaXNzaW5nIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJj YXBzIj5VUkw8L3NwYW4+IGFkZHJlc3MuIENvbXBhcmUgdGhlIG91dGNvbWUgb2YgdGhpcyB0 ZXN0IHdpdGggdGhlIG90aGVyIG9wZXJhdG9ycyB1c2luZyB0aGUgZm9sbG93aW5nIHRhYmxl IHdoZW4gdGVzdGluZyB0aGUgPGNvZGU+cGFnZTwvY29kZT4gdXJsdmFyOjwvcD4KCgk8dGFi bGU+CgkJPHRyPgoJCQk8dGg+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+PC9zcGFuPiA8L3RoPgoJCQk8dGg+ZGVmaW5lZCA8L3RoPgoJCQk8dGg+ dW5kZWZpbmVkIDwvdGg+CgkJCTx0aD5pc3VzZWQgPC90aD4KCQkJPHRoPmlzZW1wdHkgPC90 aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnIDwvdGQ+CgkJCTx0ZD4g PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3Nw YW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBz Ij5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+ PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8 c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bh bj4gPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnZT0gPC90ZD4K CQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3Nw YW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFz cz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNz PSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJ CQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bh bj48L3NwYW4+IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9 NCA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+ VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxz cGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNw YW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4g PC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZB TFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8aDMgaWQ9ImVn NiI+RXhhbXBsZSA2PC9oMz4KCgk8cD5QdXQgdGhpcyBpbnNpZGUgeW91ciA8Y29kZT5wbGFp bmxpbmtzPC9jb2RlPiBmb3JtIGFuZCBleGVjdXRlIGEgPGNvZGU+Jmx0O3R4cDpsaW5rbGlz dCAvJmd0OzwvY29kZT4gZnJvbSBhbiBhcnRpY2xlIHBhZ2UvZm9ybTo8L3A+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0m cXVvdDtpZCwgaWQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtnZTpOVU0sIGxlOk5VTSZx dW90OwogICAgIHZhbHVlPSZxdW90O3VybHZhcjptaW4sIHVybHZhcjptYXgmcXVvdDsmZ3Q7 CiAgJmx0O3R4cDpsaW5rZGVzY3RpdGxlIC8mZ3Q7Jmx0O2JyIC8mZ3Q7CiZsdDsvdHhwOnNt ZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgd2lsbCBsaXN0IG9ubHkgdGhlIGxp bmtzIHRoYXQgaGF2ZSBJRHMgYmV0d2VlbiB0aGUgPGNvZGU+bWluPC9jb2RlPiBhbmQgPGNv ZGU+bWF4PC9jb2RlPiB2YXJpYWJsZXMgc3BlY2lmaWVkIG9uIHRoZSBhZGRyZXNzIGJhci48 L3A+CgoJPGgzIGlkPSJlZzciPkV4YW1wbGUgNzwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6 cHJvZHVjdF9jb2RlJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aXNhbG51bSZxdW90OyZn dDsKICAmbHQ7dHhwOm91dHB1dF9mb3JtIGZvcm09JnF1b3Q7c2hvd19wcm9kdWN0JnF1b3Q7 IC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7SW52YWxpZCBwcm9kdWN0IGNv ZGUmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRl c3RzIHRvIHNlZSBpZiB0aGUgcHJvZHVjdF9jb2RlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IHZhcmlhYmxlIGlzIGFscGhhbnVtZXJpYyBhbmQgZGlzcGxheXMgYSBmb3JtIGlm IHNvLjwvcD4KCgk8aDMgaWQ9ImVnOCI+RXhhbXBsZSA4PC9oMz4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3Vy bHZhcjpzb3J0X29yZGVyJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aW4mcXVvdDsKICAg ICB2YWx1ZT0mcXVvdDtpZC9wcmljZS9zaXplL2NvbG91ciZxdW90OyZndDsKICAmbHQ7cCZn dDtTb3J0aW5nIHZhbHVlcyBieSB7c21kX2lmX3NvcnRfb3JkZXJ9Jmx0Oy9wJmd0OwogIC8v IERvIHNvbWUgc3R1ZmYKJmx0O3R4cDplbHNlIC8mZ3Q7CiAgLy8gVXNlIGEgZGVmYXVsdCBz b3J0LCBvciBzaG93IGFuIGVycm9yIGhlcmUKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+QnkgdXNpbmcgdGhlIHJlcGxhY2VtZW50IHRhZyB7c21kX2lmX3NvcnRf b3JkZXJ9IHlvdSBoYXZlIHBsdWNrZWQgdGhlIHZhbHVlIGZyb20gdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IGJhciBhbmQgaW5zZXJ0ZWQgaXQgaW50byB0aGUgYXJ0aWNs ZS4gVXNlZnVsIHdoZW4gdXNpbmcgdGhlIDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3Rp bjwvY29kZT4gb3BlcmF0b3JzIGJlY2F1c2UsIGFsdGhvdWdoIHlvdSBrbm93IHRoYXQgdGhl IGZpZWxkIG1hdGNoZWQgb25lIG9mIHRoZSB2YWx1ZXMgaW4geW91ciBsaXN0LCB5b3Ugd291 bGQgb3RoZXJ3aXNlIG5vdCBrbm93IHdoaWNoIG9uZSBoYXMgYmVlbiBnaXZlbiBvbiB0aGUg YWRkcmVzcyBiYXIuPC9wPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gy PgoKCTx1bD4KCQk8bGk+MzAgRGVjIDA3IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4K CQk8bGk+MzAgRGVjIDA3IHwgMC4yIHwgQWRkZWQgcGFyZW50IGNhdGVnb3J5IGNoZWNraW5n ICh0aGFua3MgdGhlX2dob3N0KTwvbGk+CgkJPGxpPjAyIEphbiAwOCB8IDAuMyB8IEFkZGVk IGRlZmluZWQvdW5kZWZpbmVkIGFuZCBzdHJpY3QgbnVtZXJpYyBjb21wYXJpc29uczwvbGk+ CgkJPGxpPjA2IEphbiAwOCB8IDAuNCB8IEFkZGVkIDxjb2RlPj88L2NvZGU+IG5vdGF0aW9u IHRvIGFsbG93IHRoZSB2YWx1ZSB0byByZWFkIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3Nw YW4+IGZpZWxkczsgYmV0dGVyIHF1b3RlIHN1cHBvcnQgKGJvdGggdGhhbmtzIE5laWxBKTwv bGk+CgkJPGxpPjA2IEphbiAwOCB8IDAuNDEgfCBGaXhlZCBsb3dlciBjYXNlIGZpZWxkIG5h bWVzIGFuZCB1bmRlZmluZWQgaW5kZXggZXJyb3IgKHRoYW5rcyBwZXRlcmopPC9saT4KCQk8 bGk+MTQgSmFuIDA4IHwgMC41IHwgQWRkZWQgY2FzZV9zZW5zaXRpdmUgb3B0aW9uOyBtYWRl ICYjODIxNjtjb250YWlucyYjODIxNzsgdGhlIGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQm IzgyMTc7IHRlc3RzOyBpbXByb3ZlZCBoZWxwIChhbGwgdGhhbmtzIHRoZV9naG9zdCk7IGFk ZGVkIGRlbGltIG9wdGlvbnM8L2xpPgoJCTxsaT4xNSBKYW4gMDggfCAwLjUxIHwgRml4ZWQg ZGVmaW5lZC91bmRlZmluZWQgc3ludGF4IGVycm9yOyB0aWdodGVuZWQgaXN1c2VkL2lzZW1w dHkgdG8gZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIGRlZmluZWQvdW5kZWZpbmVkPC9saT4KCQk8 bGk+MjUgTWF5IDA4IHwgMC42IHwgRml4ZWQgJiM4MjE2O3VuZGVmaW5lZCBpbmRleCYjODIx NzsgZXJyb3JzICh0aGFua3MgcmVkYm90IGFuZCB0aGVfZ2hvc3QpIDsgYWRkZWQgbW9yZSBw cmV0ZXh0IHZhcmlhYmxlcyA7IGFkZGVkIG1vcmUgPGNvZGU+aXM8L2NvZGU+IGNoZWNrcyAo YW5kIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXIpIDsg YWxsb3dlZCBmaWxlIGFuZCBsaW5rIHRlc3RzIChpbmNsdWRpbmcgcGFyZW50IGNhdGVnb3Jp ZXMpPC9saT4KCQk8bGk+MjYgTWF5IDA4IHwgMC42MSB8IEZpeGVkIHN0dXBpZCBvdmVyc2ln aHQgaW4gZmllbGQgbmFtZSBnZW5lcmF0aW9uIHRvIGFsbG93IGFyYml0cmFyeSBuYW1lcyBp bnN0ZWFkIG9mIGZvcmNpbmcgJHRoaXNhcnRpY2xlICh0aGFua3MgdG8gSm9hbmEgQ2FydmFs aG8gZm9yIGxlYWRpbmcgbWUgdG8gdGhpcyk8L2xpPgoJCTxsaT4xMSBKdW4gMDggfCAwLjYy IHwgRml4ZWQgaW5jb3JyZWN0IHJlc3VsdCBpZiBldmFsKCkgaXMgZW1wdHkgOyBhZGRlZCA8 c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwvc3Bhbj4gZmllbGQgb2JqZWN0PC9saT4KCQk8bGk+ MTAgU2VwIDA4IHwgMC43IHwgRml4ZWQgd2FybmluZyBpZiBlbXB0eSBjdXN0b20gZmllbGQg aW4gdmFsdWUgKHRoYW5rcyB2aXN1YWxwZW9wbGUpIDsgYWRkZWQgdHhwdmFyIHN1cHBvcnQg KHRoYW5rcyB0aGVfZ2hvc3QpIDsgYWRkZWQgdGhpc2ltYWdlIHN1cHBvcnQgKGZvciB0aGUg ZnV0dXJlKSA7IGFkZGVkIG9wZXJhdG9ycyA8Y29kZT5pbjwvY29kZT4sIDxjb2RlPm5vdGlu PC9jb2RlPiBhbmQgdGhlIDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IGF0dHJpYnV0ZTsgZW5h YmxlZCByZXBsYWNlbWVudCB0YWdzIGZvciBtYXRjaGVkIHZhcmlhYmxlczwvbGk+CgkJPGxp PjAxIE9jdCAwOCB8IDAuNzEgfCBGaXhlZCB0aGUgZml4IGZvciBlbXB0eSBjdXN0b20gZmll bGRzIGltcGxlbWVudGVkIGluIDAuNyAodGhhbmtzIG1hcHUvdmlzdWFscGVvcGxlKTwvbGk+ Cgk8L3VsPgoKCTxwPjwvZGl2PjwvcD4KPCEtLSAtLS0gQkVHSU4gUExVR0lOIENTUyAtLS0g LS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEu MyA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMw JSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6 ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsg Ym9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4YzsgZGlz cGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0KI3Nt ZF9oZWxwIGE6bGluaywgI3NtZF9oZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVlOyB0ZXh0 LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibHVlOyBwYWRk aW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0aXZl IHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTog MnB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBoMSB7IGNv bG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsg dGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3 cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzY5Mzsg Zm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4 OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fQojc21kX2hl bHAgaDQgeyBmb250OiBib2xkIDExcHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFj aW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 IH0KI3NtZF9oZWxwIC5hdHQtbmFtZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxw IC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNz bWRfaGVscCB0YWJsZSB7d2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmct Ym90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNv bGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJ TiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiJiY2NiZjY5NTk5ZGY3YmI0ZWI1YTE3 MTUwOTM4ZWVjNSI7fQ==