# Name: smd_if v0.72 # 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 O3M6NzoidmVyc2lvbiI7czo0OiIwLjcyIjtzOjExOiJkZXNjcmlwdGlvbiI7czozNToiR2Vu ZXJpYyBtdWx0aXBsZSBpZiBjb25kaXRpb24gdGVzdHMiO3M6NDoiY29kZSI7czoxMDA5Njoi ZnVuY3Rpb24gc21kX2lmKCRhdHRzLCR0aGluZykgew0KCWdsb2JhbCAkdGhpc2FydGljbGUs ICRwcmV0ZXh0LCAkdGhpc2ZpbGUsICR0aGlzbGluaywgJHRoaXNpbWFnZSwgJHZhcmlhYmxl Ow0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ2ZpZWxkJyA9PiAnJywNCgkJJ29wZXJh dG9yJyA9PiAnJywNCgkJJ3ZhbHVlJyA9PiAnJywNCgkJJ2xvZ2ljJyA9PiAnYW5kJywNCgkJ J2Nhc2Vfc2Vuc2l0aXZlJyA9PiAwLA0KCQkncGFyYW1fZGVsaW0nID0+ICcsJywNCgkJJ21v ZF9kZWxpbScgPT4gJzonLA0KCQknbGlzdF9kZWxpbScgPT4gJy8nLA0KCQknZGVidWcnID0+ ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJLy8gU3BlY2lhbCBmaWVsZCBuYW1lcyB0aGF0IHJl ZmVyIHRvICRwcmV0ZXh0IG9yIGVsc2V3aGVyZSAtIGV2ZXJ5dGhpbmcgZWxzZSBpcyBhc3N1 bWVkIHRvDQoJLy8gZXhpc3QgaW4gJHRoaXNhcnRpY2xlIHNvIGN1c3RvbSBmaWVsZHMgY2Fu IGJlIHVzZWQNCgkkYWxsUHR4dCA9IGFycmF5KA0KCQkiaWQiID0+ICckcHJldGV4dFsiaWQi XScsDQoJCSJzZWN0aW9uIiA9PiAnJHByZXRleHRbInMiXScsDQoJCSJjYXRlZ29yeSIgPT4g JyRwcmV0ZXh0WyJjIl0nLA0KCQkicXVlcnkiID0+ICckcHJldGV4dFsicSJdJywNCgkJInBn IiA9PiAnJHByZXRleHRbInBnIl0nLA0KCQkibW9udGgiID0+ICckcHJldGV4dFsibW9udGgi XScsDQoJCSJhdXRob3IiID0+ICckcHJldGV4dFsiYXV0aG9yIl0nLA0KCQkic3RhdHVzIiA9 PiAnJHByZXRleHRbInN0YXR1cyJdJywNCgkJInBhZ2UiID0+ICckcHJldGV4dFsicGFnZSJd JywNCgkJIm5leHRfaWQiID0+ICckcHJldGV4dFsibmV4dF9pZCJdJywNCgkJIm5leHRfdGl0 bGUiID0+ICckcHJldGV4dFsibmV4dF90aXRsZSJdJywNCgkJIm5leHRfdXRpdGxlIiA9PiAn JHByZXRleHRbIm5leHRfdXRpdGxlIl0nLA0KCQkicHJldl9pZCIgPT4gJyRwcmV0ZXh0WyJw cmV2X2lkIl0nLA0KCQkicHJldl90aXRsZSIgPT4gJyRwcmV0ZXh0WyJwcmV2X3RpdGxlIl0n LA0KCQkicHJldl91dGl0bGUiID0+ICckcHJldGV4dFsicHJldl91dGl0bGUiXScsDQoJCSJw ZXJtbGlua19tb2RlIiA9PiAnJHByZXRleHRbInBlcm1saW5rX21vZGUiXScsDQoJKTsNCgkv LyBFYWNoIGVudHJ5IGhhcyB0aGUgb3BlcmF0aW9uIHRvIGJlIGV2YWwoKWQgbGF0ZXIgYW5k IGEgbGlzdCBvZiBkaXNhbGxvd2VkIGZpZWxkcw0KCSRhbGxPcHMgPSBhcnJheSgNCgkJJ2Vx JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgRklFTEQgPT09IFZBTFVFJywgJycpLA0K CQknbm90JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgRklFTEQgIT09IFZBTFVFJywg JycpLA0KCQknZ3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEID4g Q0FTVCBWQUxVRScsICcnKSwNCgkJJ2dlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYg Q0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0KCQknbHQnID0+IGFycmF5KCdpc3Nl dChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2xlJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA8PSBDQVNUIFZBTFVFJywg JycpLA0KCQknaW4nID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBpbl9hcnJheShGSUVM RCwgZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwgVkFMVUUpKSAhPT0gZmFsc2UnLCAnJyks DQoJCSdub3RpbicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxE LCBleHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpID09PSBmYWxzZScsICcnKSwN CgkJJ2JlZ2lucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIHN0cnBvcyhGSUVMRCwg VkFMVUUpID09PSAwJywgJycpLA0KCQknY29udGFpbnMnID0+IGFycmF5KCdpc3NldChWQVJO QU1FKSAmJiBzdHJwb3MoRklFTEQsIFZBTFVFKSAhPT0gZmFsc2UnLCAnJyksDQoJCSdlbmRz JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3Vic3RyKEZJRUxELCBzdHJsZW4oRklF TEQpIC0gc3RybGVuKFZBTFVFKSkgPT09IFZBTFVFJywgJycpLA0KCQknZGVmaW5lZCcgPT4g YXJyYXkoJ2lzc2V0KFZBUk5BTUUpJywgJ3BhcmVudCcpLA0KCQkndW5kZWZpbmVkJyA9PiBh cnJheSgnIWlzc2V0KFZBUk5BTUUpJywgJ3BhcmVudCcpLA0KCQknaXNlbXB0eScgPT4gYXJy YXkoJ2lzc2V0KFZBUk5BTUUpICYmIEZJRUxEID09ICIiJywgJycpLA0KCQknaXN1c2VkJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgRklFTEQgIT0gIiInLCAnJyksDQoJCSdpc251 bScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2RpZ2l0KChzdHJpbmcpRklF TEQpJywgJycpLA0KCQknaXNhbHBoYScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0 eXBlX2FscGhhKChzdHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNhbG51bScgPT4gYXJyYXko J2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2FsbnVtKChzdHJpbmcpRklFTEQpJywgJycpLA0K CQknaXNsb3dlcicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2xvd2VyKChz dHJpbmcpRklFTEQpJywgJycpLA0KCQknaXN1cHBlcicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5B TUUpICYmIGN0eXBlX3VwcGVyKChzdHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNwdW5jdCcg PT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX3B1bmN0KChzdHJpbmcpRklFTEQp JywgJycpLA0KCQknaXNzcGFjZScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBl X3NwYWNlKChzdHJpbmcpRklFTEQpJywgJycpLA0KCSk7DQoNCgkkbnVtZXJpY09wcyA9ICJn dCwgZ2UsIGx0LCBsZSI7DQoJJGNhc2VPcHMgPSAiaXNsb3dlciwgaXN1cHBlciI7DQoJJHNw YWNlT3BzID0gImlzbnVtLCBpc2FscGhhLCBpc2FsbnVtLCBpc2xvd2VyLCBpc3VwcGVyLCBp c3B1bmN0IjsNCgkkZmllbGRzID0gZG9fbGlzdCgkZmllbGQsICRwYXJhbV9kZWxpbSk7DQoJ JG9wcyA9IGRvX2xpc3QoJG9wZXJhdG9yLCAkcGFyYW1fZGVsaW0pOw0KCSRudW1PcHMgPSBj b3VudCgkb3BzKTsNCgkkdmFscyA9IGRvX2xpc3QoJHZhbHVlLCAkcGFyYW1fZGVsaW0pOw0K CSRudW1WYWxzID0gY291bnQoJHZhbHMpOw0KCSRwYXJlbnRDYXRzID0gJyc7IC8vIFBsYWNl aG9sZGVyIGZvciB0aGUgY29uY2F0ZW5hdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbGVhZiBub2Rl cw0KCSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCSR0eXBlID0gKCR0aGlzZmlsZSkgPyAi ZmlsZSIgOiAoKCR0aGlzbGluaykgPyAibGluayIgOiAoKCR0aGlzaW1hZ2UpID8gImltYWdl IiA6ICJhcnRpY2xlIikpOw0KCSRvdXQgPSBhcnJheSgpOw0KDQoJZm9yICgkaWR4ID0gMDsg JGlkeCA8IGNvdW50KCRmaWVsZHMpOyAkaWR4KyspIHsNCgkJJGZsZCA9ICRmaWVsZHNbJGlk eF07DQoJCSRmbGRQYXJ0cyA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJGZsZCk7DQoJCSR2YWwg PSAoJGlkeCA8ICRudW1WYWxzKSA/ICR2YWxzWyRpZHhdIDogJyc7DQoJCSR2YWxQYXJ0cyA9 IGV4cGxvZGUoJG1vZF9kZWxpbSwgJHZhbCk7DQoJCSRvcCA9ICgkaWR4IDwgJG51bU9wcyAm JiAkb3BzWyRpZHhdICE9ICcnKSA/ICRvcHNbJGlkeF0gOiAoKCRmbGRQYXJ0c1swXT09InBh cmVudCIpID8gImNvbnRhaW5zIiA6ICJlcSIpOw0KCQkkb3BQYXJ0cyA9IGV4cGxvZGUoJG1v ZF9kZWxpbSwgJG9wKTsNCgkJJG9wID0gJHN0b3JlZE9wID0gKGFycmF5X2tleV9leGlzdHMo JG9wUGFydHNbMF0sICRhbGxPcHMpKSA/ICRvcFBhcnRzWzBdIDogImVxIjsNCgkJJGNhc3Qg PSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAoJG9wUGFydHNbMV0gPT09ICJOVU0iKSAm JiAoaW5fbGlzdCgkb3AsICRudW1lcmljT3BzKSkpID8gJyhpbnQpJyA6ICcnOw0KCQkka2ls bFNwYWNlcyA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0g Ik5PU1BBQ0UiKSAmJiAoaW5fbGlzdCgkb3AsICRzcGFjZU9wcykpKSA/IHRydWUgOiBmYWxz ZTsNCgkJJHN0cmlwRmxkID0gKChjb3VudCgkZmxkUGFydHMpID4gMSkgJiYgKGluX2FycmF5 KCJOT1RBR1MiLCAkZmxkUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJCSRzdHJpcFZhbCA9 ICgoY291bnQoJHZhbFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiTk9UQUdTIiwgJHZhbFBh cnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkY2FzZV9zZW5zaXRpdmUgPSAoaW5fbGlzdCgk b3AsICRjYXNlT3BzKSkgPyAxIDogJGNhc2Vfc2Vuc2l0aXZlOw0KCQlpZiAoJGRlYnVnKSB7 DQoJCQllY2hvICdURVNUICcuKCRpZHgrMSkubjsNCgkJCWRtcCgkZmxkUGFydHMsICRvcFBh cnRzLCAkdmFsUGFydHMpOw0KCQl9DQoJCS8vIEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1l bnQgY29kZQ0KCQkkZXhjbHVkZSA9IGRvX2xpc3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9w ID0gJGFsbE9wc1skb3BdWzBdOw0KDQoJCS8vIEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3Bl cmF0b3IgYWxsb3dzIHRoaXMgZmllbGQuLi4NCgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNb MF0sICRleGNsdWRlKSkgew0KCQkJLy8gTWFrZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJs ZQ0KCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxk ID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHRoaXNmaWxlWyInLiRyZmxkLiciXSc7 DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJ CSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxk LiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkp IHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2Vb IicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFy dHNbMF0sICRhbGxQdHh0KSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRm bGQgPSAkYWxsUHR4dFskcmZsZF07DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAi cGFyZW50Iikgew0KCQkJCSRsZXZlbCA9ICcnOw0KCQkJCWZvcmVhY2ggKCRmbGRQYXJ0cyBh cyAkcGFydCkgew0KCQkJCQlpZiAoJHBhcnQgPT0gInBhcmVudCIpIHsNCgkJCQkJCSR0aGVD YXQgPSAoJHRoaXNmaWxlKSA/ICR0aGlzZmlsZVsnY2F0ZWdvcnknXSA6ICgoJHRoaXNsaW5r KSA/ICR0aGlzbGlua1snY2F0ZWdvcnknXSA6ICgoJHRoaXNpbWFnZSkgPyAkdGhpc2ltYWdl WydjYXRlZ29yeSddIDogJHByZXRleHRbJ2MnXSkpOw0KCQkJCQl9IGVsc2UgaWYgKHN0cnBv cygkcGFydCwgIkNBVCIpID09PSAwKSB7DQoJCQkJCQkkdGhlQ2F0ID0gJHRoaXNhcnRpY2xl WyJjYXRlZ29yeSIuc3Vic3RyKCRwYXJ0LCAzKV07DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9z KCRwYXJ0LCAiTFZMIikgPT09IDApIHsNCgkJCQkJCSRsZXZlbCA9IHN1YnN0cigkcGFydCwg Myk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkkdHJlZSA9IGdldFRyZWVQYXRoKGRvU2xhc2go JHRoZUNhdCksICR0eXBlKTsNCgkJCQlpZiAoJGRlYnVnKSB7DQoJCQkJCWVjaG8gIkNBVEVH T1JZIFRSRUU6IjsNCgkJCQkJZG1wKCR0cmVlKTsNCgkJCQl9DQoJCQkJJGl0ZW1zID0gYXJy YXkoKTsNCgkJCQlmb3JlYWNoICgkdHJlZSBhcyAkbGVhZikgew0KCQkJCQlpZiAoJGxlYWZb J25hbWUnXSA9PSAicm9vdCIgfHwgJGxlYWZbJ25hbWUnXSA9PSAkdGhlQ2F0KSB7DQoJCQkJ CQljb250aW51ZTsNCgkJCQkJfSBlbHNlIGlmICgkbGV2ZWwgPT0gJycgfHwgJGxldmVsID09 ICRsZWFmWydsZXZlbCddKSB7DQoJCQkJCQkkaXRlbXNbXSA9ICRsZWFmWyduYW1lJ107DQoJ CQkJCX0NCgkJCQl9DQoJCQkJJHBhcmVudENhdHMgPSAkcmZsZCA9IGltcGxvZGUoIiAiLCAk aXRlbXMpOw0KCQkJCSRmbGQgPSAnJHBhcmVudENhdHMnOw0KCQkJfSBlbHNlIGlmICgkZmxk UGFydHNbMF0gPT0gInR4cHZhciIpIHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+IDEp IHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRmbGQgPSAnJHZhcmlhYmxl WyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0g InVybHZhciIpIHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJm bGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRmbGQgPSAnJF9HRVRbIicuJHJmbGQuJyJdJzsN CgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAic3ZydmFyIikgew0KCQkJ CWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sx XTsNCgkJCQkJJGZsZCA9ICckX1NFUlZFUlsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0g ZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJm bGQgPSBzdHJ0b2xvd2VyKCRmbGRQYXJ0c1swXSk7DQoJCQkJJGZsZCA9ICckdGhpc2FydGlj bGVbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJOVUxM Iikgew0KCQkJCSRzbWRfaWZfdmFyID0gJyc7DQoJCQkJJGZsZCA9ICckc21kX2lmX3Zhcic7 DQoJCQkJJHJmbGQgPSAiTlVMTCI7DQoJCQl9IGVsc2Ugew0KCQkJCSRzbWRfaWZfdmFyID0g JGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHNtZF9pZl92YXInOw0KCQkJCSRyZmxkID0g ImZpZWxkIjsNCgkJCX0NCgkJCSRyZmxkID0gInNtZF9pZl8iLiRyZmxkOw0KDQoJCQkvLyBU YWtlIGEgY29weSBvZiAkZmxkIHRvIHVzZSBpbiBhbnkgaXNzZXQoKSByZXF1ZXN0cw0KCQkJ JGZsZENsZWFuID0gJGZsZDsNCgkJCWlmICgka2lsbFNwYWNlcykgew0KCQkJCSRmbGQgPSAn cHJlZ19yZXBsYWNlKCIvXHMrLyIsIiIsJy4kZmxkLicpJzsNCgkJCX0NCgkJCWlmICgkc3Ry aXBGbGQpIHsNCgkJCQkkZmxkID0gJ3RyaW0oc3RyaXBfdGFncygnLiRmbGQuJykpJzsNCgkJ CX0NCg0KCQkJLy8gRmluZCB0aGUgcmVhbCB2YWx1ZSB0byBjb21wYXJlIGFnYWluc3QgKG1h eSBiZSBhbm90aGVyIGZpZWxkKQ0KCQkJaWYgKCR2YWxQYXJ0c1swXSA9PSAidXJsdmFyIikg ew0KCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID4gMSkgew0KCQkJCQkkdmZsZCA9ICR2YWxQ YXJ0c1sxXTsNCgkJCQkJJHZhbCA9IChpc3NldCgkX0dFVFskdmZsZF0pICYmICRfR0VUWyR2 ZmxkXSAhPSAiIikgPyAnJF9HRVRbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxh Y2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJHZhbFBhcnRz WzBdID09ICJzdnJ2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJ CQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCRfU0VSVkVS WyR2ZmxkXSkgJiYgJF9TRVJWRVJbJHZmbGRdICE9ICIiKSA/ICckX1NFUlZFUlsiJy4kdmZs ZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJ fQ0KCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInR4cHZhciIpIHsNCgkJCQlpZiAo Y291bnQoJHZhbFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJ CQkJCSR2YWwgPSAoaXNzZXQoJHZhcmlhYmxlWyR2ZmxkXSkgJiYgJHZhcmlhYmxlWyR2Zmxk XSAhPSAiIikgPyAnJHZhcmlhYmxlWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBs YWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKHN0cnBvcygk dmFsUGFydHNbMF0sICI/IikgPT09IDApIHsNCgkJCQkkdmFsUGFydHNbMF0gPSBzdWJzdHIo c3RydG9sb3dlcigkdmFsUGFydHNbMF0pLCAxKTsNCgkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sw XTsNCgkJCQlpZiAoaXNzZXQoJHRoaXNmaWxlWyR2ZmxkXSkgJiYgJHRoaXNmaWxlWyR2Zmxk XSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlzZmlsZVsiJy4kdmZsZC4nIl0nOw0KCQkJ CX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5rWyR2ZmxkXSkgJiYgJHRoaXNsaW5rWyR2Zmxk XSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlzbGlua1siJy4kdmZsZC4nIl0nOw0KCQkJ CX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNpbWFnZVskdmZsZF0pICYmICR0aGlzaW1hZ2VbJHZm bGRdICE9ICIiKSB7DQoJCQkJCSR2YWwgPSAnJHRoaXNpbWFnZVsiJy4kdmZsZC4nIl0nOw0K CQkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkdmZsZCwgJGFsbFB0eHQpICYmICRh bGxQdHh0WyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJGFsbFB0eHRbJHZmbGRdOw0K CQkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyR2ZmxkXSkgJiYgJHRoaXNhcnRp Y2xlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlzYXJ0aWNsZVsiJy4kdmZs ZC4nIl0nOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSR2YWwgPSBkb1F1b3RlKHN0cl9yZXBsYWNl KCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCSR2ZmxkID0g InZhbCI7DQoJCQkJJHZhbCA9IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmFs UGFydHNbMF0pKTsNCgkJCX0NCgkJCSR2ZmxkID0gInNtZF9pZl8iLiR2ZmxkOw0KCQkJaWYg KCRzdHJpcFZhbCkgew0KCQkJCSR2YWwgPSAndHJpbShzdHJpcF90YWdzKCcuJHZhbC4nKSkn Ow0KCQkJfQ0KDQoJCQkvLyBSZXBsYWNlIHRoZSBzdHJpbmcgcGFydHMuLi4NCgkJCSRjbWQg PSBzdHJfcmVwbGFjZSgiQ0FTVCIsICRjYXN0LCAkb3ApOw0KCQkJJGNtZCA9IHN0cl9yZXBs YWNlKCJGSUVMRCIsICgoJGNhc2Vfc2Vuc2l0aXZlKSA/ICRmbGQgOiAnc3RydG9sb3dlcign LiRmbGQuJyknKSwgJGNtZCk7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIlZBUk5BTUUiLCAk ZmxkQ2xlYW4sICRjbWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQUxVRSIsICgoJGNh c2Vfc2Vuc2l0aXZlKSA/ICdWQUxVRScgOiAnc3RydG9sb3dlcihWQUxVRSknKSwgJGNtZCk7 DQoJCQkkY21kID0gIkBcJHJlcGxhY2VtZW50c1sneyIuJHJmbGQuIn0nXSA9ICIuJGZsZC4i OyBcbkBcJHJlcGxhY2VtZW50c1sneyIuJHZmbGQuIn0nXSA9ICIuJHZhbC4iOyBcblwkb3V0 W10gPSAoIi5zdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCR2YWw9PT0iJyciICYmIHN0cnBvcygk b3AsICJzdHJwb3MiKSAhPT0gZmFsc2UpID8gIicgJyIgOiAkdmFsKSwgJGNtZCkuIikgPyAn dHJ1ZScgOiAnZmFsc2UnOyI7DQoJCQlpZiAoJGRlYnVnKSB7DQoJCQkJZG1wKCRjbWQpOw0K CQkJfQ0KCQkJLy8gLi4uIGFuZCBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbg0KCQkJZXZhbCgk Y21kKTsNCgkJfQ0KCX0NCglpZiAoJGRlYnVnKSB7DQoJCWVjaG8gIlJFU1VMVDoiOw0KCQlk bXAoJG91dCk7DQoJCWVjaG8gIlJFUExBQ0VNRU5UUzoiOw0KCQlkbXAoJHJlcGxhY2VtZW50 cyk7DQoJfQ0KCWlmICgkZGVidWcgPiAxKSB7DQoJCWVjaG8gIlBSRVRFWFQ6IjsNCgkJZG1w KCRwcmV0ZXh0KTsNCgkJZWNobyAiVEhJUyBBUlRJQ0xFOiI7DQoJCWRtcCgkdGhpc2FydGlj bGUpOw0KCQllY2hvICJUSElTIEZJTEU6IjsNCgkJZG1wKCR0aGlzZmlsZSk7DQoJCWVjaG8g IlRISVMgTElOSzoiOw0KCQlkbXAoJHRoaXNsaW5rKTsNCgkJZWNobyAiVEhJUyBJTUFHRToi Ow0KCQlkbXAoJHRoaXNpbWFnZSk7DQoJfQ0KCS8vIENoZWNrIGxvZ2ljDQoJJHJlc3VsdCA9 ICgkb3V0KSA/IHRydWUgOiBmYWxzZTsNCglpZiAoc3RydG9sb3dlcigkbG9naWMpID09ICJh bmQiICYmIGluX2FycmF5KCJmYWxzZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQgPSBmYWxzZTsN Cgl9DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAib3IiICYmICFpbl9hcnJheSgidHJ1 ZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQgPSBmYWxzZTsNCgl9DQoNCglyZXR1cm4gcGFyc2Uo RXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRzKSwgJHJlc3VsdCkpOw0KfSI7 czo0OiJ0eXBlIjtzOjE6IjAiO3M6NDoiaGVscCI7czoyOTEzNzoiCTxwPjxkaXYgaWQ9InNt ZF9oZWxwIj48L3A+CgoJPGgxPnNtZF9pZjwvaDE+CgoJPHA+QSByZWFsbHkgc2ltcGxlLCBn ZW5lcmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rlci4gQ2FuIHRlc3QgYW55 IGZpZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGZpbGUsIGltYWdl LCBsaW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIgb3IgPGNvZGU+Jmx0 O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gY29udGV4dCBmb3IgYSB2YXJpZXR5IG9mIGF0 dHJpYnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9z cGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDI+RmVh dHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgbW9zdCBtYWpvciBhcnRpY2xlLCBm aWxlLCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMgc3VjaCBhcyBzZWN0aW9uLCBjYXRlZ29y eSwgY3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0cmluZywgYXV0aG9yLCBib2R5LCBleGNl cnB0LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFycywgc2VydmVyIHZhcnMsIHR4cCB2YXJz LCBhbmQgc3ViLWNhdGVnb3J5L3BhcmVudCBjaGVja2luZzwvbGk+CgkJPGxpPlRlc3RzIGlu Y2x1ZGUgZXF1YWxpdHksIGluZXF1YWxpdHksIGxlc3MgdGhhbiwgZ3JlYXRlciB0aGFuLCBl bXB0eSwgdXNlZCwgZGVmaW5lZCwgYmVnaW5zLCBlbmRzLCBjb250YWlucywgaXMgbnVtZXJp YyAvIGFscGhhIC8gYWxwaGFudW1lcmljIC8gbG93ZXJjYXNlIC8gdXBwZXJjYXNlLCBhbW9u ZyBvdGhlcnM8L2xpPgoJCTxsaT5UZXN0cyBmb3IgbW9yZSB0aGFuIG9uZSBjb25kaXRpb24g YXQgb25jZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bh bj4gbG9naWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3MpIG9yIE9SIGxvZ2ljIChhbnkgdGVzdCBt dXN0IHBhc3MpPC9saT4KCQk8bGk+QWxsIHRlc3RlZCBmaWVsZHMgYW5kIHZhbHVlcyBhcmUg YXZhaWxhYmxlIHRvIHRoZSBjb250YWluZXIgc28geW91IGNhbiBkaXNwbGF5IHRoZW08L2xp PgoJCTxsaT5VZ2x5IGFuZCB2ZXJ5IGRpcnR5LiBVc2VzIDxzcGFuIGNsYXNzPSJjYXBzIj5Q SFA8L3NwYW4+JiM4MjE3O3MgPGNvZGU+ZXZhbCgpPC9jb2RlPiBjb21tYW5kIHdoaWNoIG1v c3QgcHJvZ3JhbW1lcnMgY29uY3VyIHNob3VsZCBiZSByZW5hbWVkIDxjb2RlPmV2aWwoKTwv Y29kZT48L2xpPgoJPC91bD4KCgk8aDI+QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRw Oi8vc3RlZmRhd3Nvbi5jb20vY29tbWVudEZvcm0iPlN0ZWYgRGF3c29uPC9hPi4gQmFzZWQg b24gYW4gaWRlYSBicmV3aW5nIGluIHRoZSBiYWNrIG9mIG15IG1pbmQgd2hpbGUgaGFja2lu ZyBjaHNfaWZfdXJsdmFyLjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRp b248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0i aHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzkzMC9zbWRfaWYiPnRleHRwYXR0ZXJu Lm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNv ZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5k IGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRl eHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI1MzU3Ij5mb3J1bSB0aHJlYWQ8L2E+ IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lz ZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUg ZnJvbSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gy PgoKCTxwPlVzZSB0aGUgdGFnIGluIGFueSBwYWdlLCBmb3JtIG9yIGFydGljbGUgY29udGV4 dC4gQ2FuIGFsc28gYmUgdXNlZCBpbnNpZGUgZmlsZSwgaW1hZ2Ugb3IgbGluayBsaXN0cyB0 byB0YWtlIGFjdGlvbiBkZXBlbmRpbmcgb24gYXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBp dGVtLjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX2lmPC9oMz4KCgk8cCBjbGFzcz0idGFn LXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0byBjb21wYXJlIGEgZmllbGQgd2l0 aCBhbm90aGVyIHZhbHVlLCBwdXQgdGhpcyB0YWcgd2l0aCBhbGwgdGhyZWUgbWFuZGF0b3J5 IGF0dHJpYnV0ZXMgKHNoYWRlZCBiZWxvdykuIEVhY2ggdGFrZSBhIHNlcmllcyBvZiBjb21t YS1zZXBhcmF0ZWQgbGlzdHMgJiM4MjEyOyB0aG91Z2ggdGhlIDxhIGhyZWY9IiNwYXJhbWRl bGltIj5jb21tYSBpcyBvdmVycmlkYWJsZTwvYT4gd2l0aCB0aGUgcGFyYW1fZGVsaW0gYXR0 cmlidXRlLiBJZiB0aGUgcmVzdWx0IG9mIGFsbCB0aGUgY29tcGFyaXNvbiB0ZXN0cyBpcyA8 c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBibG9jayB3aWxs IGJlIGV4ZWN1dGVkLiBJZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxT RTwvc3Bhbj4sIGFueSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+IHdpbGwgYmUg ZXhlY3V0ZWQgaW5zdGVhZC4gV2l0aG91dCBhbnkgPGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7 PC9jb2RlPiBibG9jaywgbm90aGluZyBpcyBvdXRwdXQgaWYgdGhlIHJlc3VsdCBpcyA8c3Bh biBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDQgY2xhc3M9ImF0dHMgIiBp ZD0iYXR0cmlidXRlcyI+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUgbWFuZCI+ZmllbGQ8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiNmaWVsZCI+ ZmllbGRzPC9hPiB0byB0ZXN0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1h bmQiPm9wZXJhdG9yPC9zcGFuPiA6IHRoZSA8YSBocmVmPSIjb3BlcmF0b3IiPm9wZXJhdGlv bnM8L2E+IGZvciBjb21wYXJpc29uIHdpdGggdGhhdCBmaWVsZCAoZS5nLiA8Y29kZT5lcTwv Y29kZT4sIDxjb2RlPm5vdDwvY29kZT4sIDxjb2RlPmJlZ2luczwvY29kZT4sIGV0YykuIERl ZmF1bHQgaXMgdXN1YWxseSA8Y29kZT5lcTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUgbWFuZCI+dmFsdWU8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiN2YWx1ZSI+ dmFsdWVzPC9hPiB3aXRoIHdoaWNoIHRvIGNvbXBhcmUgdGhlIGZpZWxkczwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bG9naWM8L3NwYW4+IDogaG93IG11bHRpcGxlIHRl c3RzIGFyZSBqb2luZWQ6IDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IG9yIE9SLiBE ZWZhdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5jYXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiAxID0gY2FzZS1z ZW5zaXRpdmUgY29tcGFyaXNvbjsgMCA9IGlnbm9yZSBjYXNlLiBEZWZhdWx0IGlzIDA8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBhcmFtX2RlbGltPC9zcGFuPiA6IGRl bGltaXRlciB1c2VkIGJldHdlZW4gZWFjaCBmaWVsZCwgb3BlcmF0b3Igb3IgdmFsdWUgaW4g YSBtdWx0aS10ZXN0LiBEZWZhdWx0IGlzIGEgY29tbWEgKCwpPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC1uYW1lIj5tb2RfZGVsaW08L3NwYW4+IDogZGVsaW1pdGVyIHVzZWQgd2hl biBzcGVjaWZ5aW5nIGZpZWxkIG9yIG9wZXJhdG9yIG1vZGlmaWVycyBmb3IgdXJsdmFyLCBz dnJ2YXIgYW5kIHR4cHZhci4gRGVmYXVsdCBpcyBhIGNvbG9uICg6KTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlzdF9kZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIgdXNl ZCB3aGVuIHNwZWNpZnlpbmcgYSBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayB2aWEgdGhlIDxj b2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3BlcmF0b3JzLiBEZWZhdWx0 IGlzIGEgZm9yd2FyZC1zbGFzaCAoLyk8L2xpPgoJPC91bD4KCgk8cD5UaGUgbGlzdHMgYXJl IHByb2Nlc3NlZCBpbiBvcmRlciwgaS5lLiB0aGUgMXN0IGZpZWxkIHVzZXMgdGhlIDFzdCBv cGVyYXRvciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8gdGhlIDFzdCB2YWx1ZTsg dGhlIDJuZCBmaWVsZCB1c2VzIHRoZSAybmQgb3BlcmF0b3IgaW4gdGhlIGxpc3QgYW5kIGNv bXBhcmVzIGl0IHRvIHRoZSAybmQgdmFsdWUsIGFuZCBzbyBvbi4gVmFsdWVzIHNob3VsZCB1 c3VhbGx5IGJlIHNwZWNpZmllZCB3aXRoIHBsYWNlaG9sZGVycyB0byBtYWludGFpbiBvcmRl cjogZS5nLiA8Y29kZT52YWx1ZT0mcXVvdDssIDQsLCB0b3AmcXVvdDs8L2NvZGU+PC9wPgoK CTxwPk5vdGUgdGhhdCwgYWx0aG91Z2ggdGhlIGZpcnN0IHRocmVlIGF0dHJpYnV0ZXMgYXJl IGNvbnNpZGVyZWQgbWFuZGF0b3J5LCBpZiB5b3UgaGFwcGVuIHRvIHJlcXVpcmUgdGhlIGRl ZmF1bHQgb3BlcmF0b3IgZm9yIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIHNhZmVseSBvbWl0 IDxjb2RlPm9wZXJhdG9yPC9jb2RlPi4gU2ltaWxhcmx5IHdpdGggdmFsdWVzOiBpZiB5b3Ug YXJlIGVudGlyZWx5IHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvciB0eXBlIG9mIHZhcmlhYmxl cywgeW91IGNhbiBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVyIGlmIHlv dSB3aXNoLjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImZpZWxkIj5maWVsZDwv aDQ+CgoJPHA+TGlzdCBvZiBmaWVsZCBsb2NhdGlvbnMgdG8gbG9vayBhdC4gU29tZSB1c2Vm dWwgdmFsdWVzIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT5zZWN0aW9uPC9jb2RlPjwv bGk+CgkJPGxpPjxjb2RlPmNhdGVnb3J5PC9jb2RlPiAob3IgPGNvZGU+Y2F0ZWdvcnkxPC9j b2RlPiwgb3IgPGNvZGU+Y2F0ZWdvcnkyPC9jb2RlPiBpZiBvbiBhbiBhcnRpY2xlIHBhZ2Up PC9saT4KCQk8bGk+PGNvZGU+YXV0aG9yaWQ8L2NvZGU+IG9yIDxjb2RlPmF1dGhvcjwvY29k ZT48L2xpPgoJCTxsaT48Y29kZT5pZDwvY29kZT4gKGZpbGUvbGluay9pbWFnZS9hcnRpY2xl IElEKS4gSW4gYW4gaW5kaXZpZHVhbCBhcnRpY2xlIGNvbnRleHQsIHVzZSA8Y29kZT50aGlz aWQ8L2NvZGU+IGluc3RlYWQ8L2xpPgoJCTxsaT48Y29kZT5xdWVyeTwvY29kZT4gKHRoZSBx dWVyeSBzdHJpbmcgZnJvbSB0aGUgc2VhcmNoIGZvcm0pPC9saT4KCQk8bGk+PGNvZGU+cGc8 L2NvZGU+ICh0aGUgY3VycmVudCBwYWdlIG51bWJlciBpbiBsaXN0cyk8L2xpPgoJCTxsaT48 Y29kZT5tb250aDwvY29kZT4gKGN1cnJlbnQgbW9udGggZmllbGQgZnJvbSB0aGUgYWRkcmVz cyBiYXIpPC9saT4KCQk8bGk+PGNvZGU+c3RhdHVzPC9jb2RlPiAoZG9jdW1lbnQgc3RhdHVz OiAyMDAsIDQwNCwgNDAzLCBldGMpPC9saT4KCQk8bGk+PGNvZGU+cGFnZTwvY29kZT4gKHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBQYWdlIHRlbXBsYXRlIHVzZWQgYnkg dGhpcyBzZWN0aW9uKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfaWQ8L2NvZGU+IC8gPGNvZGU+ cHJldl9pZDwvY29kZT4gKElEIG9mIG5leHQvcHJldiBkb2N1bWVudCBpZiBvbiBhcnRpY2xl IHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF90aXRsZTwvY29kZT4gLyA8Y29kZT5wcmV2 X3RpdGxlPC9jb2RlPihUaXRsZSBvZiBuZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNs ZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRfdXRpdGxlPC9jb2RlPiAvIDxjb2RlPnBy ZXZfdXRpdGxlPC9jb2RlPiAodXJsLXRpdGxlIG9mIG5leHQvcHJldiBkb2N1bWVudCBpZiBv biBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+cGVybWxpbmtfbW9kZTwvY29kZT4g KHRha2UgYWN0aW9uIGJhc2VkIG9uIG9uZSBvZiB0aGUgbWVzc3kvY2xlYW4gPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gc2NoZW1lcyk8L2xpPgoJCTxsaT48Y29kZT5vdGhlciBh cnRpY2xlL2ZpbGUvbGluayBmaWVsZDwvY29kZT4gKGUuZy4gYm9keSwgZXhjZXJwdCwgYXJ0 aWNsZV9pbWFnZSwga2V5d29yZHMsIGxpbmthbm1lLCBmaWxlbmFtZSwgZG93bmxvYWRzLCAm IzgyMzA7KTwvbGk+CgkJPGxpPjxjb2RlPm15X2N1c3RvbV9maWVsZF9uYW1lPC9jb2RlPiAo YW55IGN1c3RvbSBmaWVsZHMgeW91IGhhdmUgZGVmaW5lZCk8L2xpPgoJCTxsaT48Y29kZT51 cmx2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgdmFyaWFibGUgaW4gdGhlIGFkZHJlc3MgYmFy IGFmdGVyIHRoZSA8Y29kZT4/PC9jb2RlPik8L2xpPgoJCTxsaT48Y29kZT5zdnJ2YXI6dmFy X25hbWU8L2NvZGU+IChhbnkgc3RhbmRhcmQgc2VydmVyIHZhcmlhYmxlLCBlLmcuIDxzcGFu IGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5UKTwvbGk+CgkJPGxpPjxjb2Rl PnR4cHZhcjpteV92YXI8L2NvZGU+IChhbnkgVGV4dHBhdHRlcm4gdmFyaWFibGUgc2V0IHdp dGggPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O215X3ZhciZxdW90OyAvJmd0 OzwvY29kZT4pPC9saT4KCQk8bGk+PGNvZGU+cGFyZW50Om9wdGlvbmFsX21vZGlmaWVyczwv Y29kZT4gKHdoZXRoZXIgdGhlIGdpdmVuIGNhdGVnb3J5IGlzIGEgZGVzY2VuZGVudCBvZiBh bm90aGVyIGNhdGVnb3J5KTwvbGk+CgkJPGxpPjxjb2RlPk5VTEw8L2NvZGU+ICh1c2VmdWwg d2hlbiBjb21wYXJpbmcgYXJiaXRyYXJ5IHZhbHVlcyBmb3IgZW1wdGluZXNzKTwvbGk+Cgk8 L3VsPgoKCTxwPklmIHlvdSBzcGVjaWZ5IGEgZmllbGQgbmFtZSB0aGF0IGRvZXMgbm90IGV4 aXN0LCB0aGUgdGV4dCB5b3UgdXNlIHdpbGwgYmUgdGFrZW4gdmVyYmF0aW0gaW4gbW9zdCBj YXNlcy48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSBhIGZpZWxkIHRoYXQgbWln aHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT5i b2R5PC9jb2RlPiksIGFkZCB0aGUgbW9kaWZpZXIgPGNvZGU+Ok5PVEFHUzwvY29kZT4gdG8g dGhlIGVuZCBvZiB0aGUgZmllbGQuIEl0IHdpbGwgaGF2ZSBpdHMgPHNwYW4gY2xhc3M9ImNh cHMiPkhUTUw8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB0YWdz IHN0cmlwcGVkIGZyb20gaXQgYW5kIHdpbGwgYWxzbyBiZSB0cmltbWVkIHRvIHJlbW92ZSBs ZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMuPC9wPgoKCTxwPlRoZSBzcGVjaWFsIGZpZWxk IDxjb2RlPnBhcmVudDwvY29kZT4gY2hlY2tzIHRoZSBwYXJlbnQgY2F0ZWdvcnkgZm9yIGEg bWF0Y2guIFVubGlrZSB0aGUgb3RoZXIgZmllbGQgdHlwZXMsIHRoZSBkZWZhdWx0IDxhIGhy ZWY9IiNvcGVyYXRvciI+b3BlcmF0b3I8L2E+IGZvciBwYXJlbnQgaXMgJiM4MjE2O2NvbnRh aW5zJiM4MjE3Oy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbnRpcmUgdHJlZSBpcyBjaGVja2Vk IGZvciBhIG1hdGNoLCBzdGFydGluZyBmcm9tIHRoZSB0b3Agb2YgdGhlIHRyZWUgZG93biB0 byB0aGUgY3VycmVudCBjYXRlZ29yeS4gSW50ZXJuYWxseSwgdGhlIHBsdWdpbiBtYWtlcyB1 cCBhICYjODIyMDticmVhZGNydW1iIHRyYWlsJiM4MjIxOyBvZiBjYXRlZ29yaWVzIGluIHRo ZSBjdXJyZW50IGJyYW5jaCwgZWFjaCBzZXBhcmF0ZWQgYnkgYSBzcGFjZSwgc28gdGVzdGlu ZyBmb3IgZXF1YWxpdHkgd291bGQgcmVxdWlyZSBwdXR0aW5nIHRoZW0gYWxsIGluIHRoZSA8 YSBocmVmPSIjdmFsdWUiPnZhbHVlPC9hPiBwYXJhbWV0ZXIuPC9wPgoKCTxwPllvdSBhcmUg b2YgY291cnNlIGZyZWUgdG8gY2hvb3NlIGFuIGFsdGVybmF0aXZlIG9wZXJhdG9yOyA8Y29k ZT5iZWdpbnM8L2NvZGU+IGlzIHZlcnkgdXNlZnVsIGZvciB0ZXN0aW5nIGlmIHRoZSB0b3Ag bGV2ZWwgY2F0ZWdvcnkgbWF0Y2hlcyB0aGUgb25lIGdpdmVuIGluIHRoZSA8Y29kZT52YWx1 ZTwvY29kZT4gZmllbGQuPC9wPgoKCTxwPklmIHlvdSB1c2UgPGNvZGU+cGFyZW50OkxWTG48 L2NvZGU+LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gdGhhdCAmIzgy MjA7bGV2ZWwmIzgyMjE7IG9mIHN1Yi1jYXRlZ29yeTsgTFZMMSBpcyB0aGUgJiM4MjIwO3Rv cCYjODIyMTsgbGV2ZWwsIExWTDIgaXMgdGhlIG5leHQgc3ViLWNhdGVnb3J5IGxldmVsLCBh bmQgc28gb24uIFdoZW4gdXNpbmcgdGhlc2UgbW9kaWZpZXJzLCB0aGUgJiM4MjE2O2VxJiM4 MjE3OyBvcGVyYXRvciBiZWNvbWVzIG1vcmUgdXNlZnVsIGJlY2F1c2UgeW91IGFyZSBjb21w YXJpbmcgYSBzaW5nbGUgcGFyZW50IGNhdGVnb3J5LjwvcD4KCgk8cD5XaGVuIHVzaW5nIGFy dGljbGVzLCB5b3UgY2FuIGZ1cnRoZXIgbW9kaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIHBh cmVudCB1c2luZyB0aGUgPGNvZGU+Q0FUbjwvY29kZT4gc3ludGF4ICh3aGVyZSAmIzgyMTY7 biYjODIxNzsgaXMgMSBvciAyKS4gU3BlY2lmeWluZyAmIzgyMjA7cGFyZW50JiM4MjIxOyB3 aXRob3V0IDxjb2RlPkNBVG48L2NvZGU+IHdpbGwgdXNlIHRoZSBnbG9iYWwgY2F0ZWdvcnkg KDxjb2RlPj9jPTwvY29kZT4pLiBJZiB5b3UgYWRkIDxjb2RlPjpDQVRuPC9jb2RlPiBpdCB3 aWxsIGluc3RlYWQgY29tcGFyZSB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5MSBvciBj YXRlZ29yeTIgcmVzcGVjdGl2ZWx5LjwvcD4KCgk8cD5Zb3UgY2FuIHVzZSA8c3BhbiBjbGFz cz0iY2FwcyI+Q0FUPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPkxWTDwvc3Bhbj4g aW4gY29tYmluYXRpb24sIGluZGVwZW5kZW50bHkgb3Igbm90IGF0IGFsbC4gVGhpcyBhbGxv d3MgY29tcGFyaXNvbnMgc3VjaCBhcyAmIzgyMjA7aWYgdGhlIDJuZCBzdWItY2F0ZWdvcnkg b2YgY2F0ZWdvcnkxIGVxdWFscyBibGFoYmxhaCYjODIyMTsgb3IgJiM4MjIwO2lmIGNhdGVn b3J5MiBpcyBhIGNoaWxkIG9mIGJsYWhibGFoJiM4MjIxOy4gU2VlIDxhIGhyZWY9IiNlZzQi PkV4YW1wbGUgNDwvYT4uPC9wPgoKCTxwPk9uZSBvdGhlciBzcGVjaWFsIGZpZWxkIGlzIDxj b2RlPk5VTEw8L2NvZGU+LiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBpdCBzYXlzIGl0IGlzOiBl bXB0eS4gVGhlIHJlYXNvbiBmb3IgaXRzIGluY2x1c2lvbiBpcyB0aGF0IHNvbWV0aW1lcyB5 b3Ugd2lzaCB0byB0ZXN0IHNvbWV0aGluZyB0aGF0IGlzbiYjODIxNzt0IGEgdHJ1ZSB2YXJp YWJsZSAmIzgyMTI7IGUuZy4gYSByZXBsYWNlbWVudCB2YXJpYWJsZSBmcm9tIHNtZF92YXJz IG9yIHNtZF9lYWNoICYjODIxMjsgdG8gc2VlIGlmIGl0JiM4MjE3O3MgZW1wdHkgb3Igbm90 LjwvcD4KCgk8cD5JZiB5b3Ugd2VyZSB0byBwdXQgdGhpczo8L3A+CgoJPHA+PGNvZGU+Jmx0 O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsgb3BlcmF0b3I9JnF1b3Q7 aXNlbXB0eSZxdW90OyZndDs8L2NvZGU+PC9wPgoKCTxwPnlvdSB3b3VsZCBub3QgZ2V0IHRo ZSByZXN1bHQgeW91IGV4cGVjdCAoaXQmIzgyMTc7cyBwcmV0dHkgZXNvdGVyaWMgYnV0IGl0 IHJldm9sdmVzIGFyb3VuZCB0aGUgZmFjdCB0aGF0IDxjb2RlPiZxdW90OyZxdW90OzwvY29k ZT4gKGFzIGEgdmFyaWFibGUgbmFtZSkgaXMgbm90IGVtcHR5LCBpdCYjODIxNztzIGludmFs aWQpLiBUbyBnZXQgcm91bmQgdGhpcyB5b3UgbWF5IHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+ TlVMTDwvc3Bhbj4gYXMgYSBwbGFjZWhvbGRlciBhbmQgbW92ZSB0aGUgdGhpbmcgeW91IHdh bnQgdG8gY2hlY2sgaW50byB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IGluc3RlYWQsIGUuZzo8 L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7TlVMTCZxdW90OyBv cGVyYXRvcj0mcXVvdDtlcSZxdW90OyB2YWx1ZT0mcXVvdDt7cmVzdWx0fSZxdW90OyZndDs8 L2NvZGU+PC9wPgoKCTxwPndpbGwgdGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8 L3NwYW4+IG9iamVjdCAoaS5lLiAmIzgyMTY7ZW1wdGluZXNzJiM4MjE3OykgdG8gc2VlIGlm IGl0JiM4MjE3O3MgZXF1YWwgdG8gdGhlIDxjb2RlPntyZXN1bHR9PC9jb2RlPiByZXBsYWNl bWVudCB2YXJpYWJsZS4gWW91IGNhbiB1c2Ugc2ltaWxhciBsb2dpYyB0byB0ZXN0IGZvciBv cHRpb25hbCB2YXJpYWJsZXMgYnkgc3dhcHBpbmcgdGhlIGZpZWxkIGFuZCB2YWx1ZSwgbGlr ZSB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDs3JnF1 b3Q7IG9wZXJhdG9yPSZxdW90O2d0JnF1b3Q7IHZhbHVlPSZxdW90O3tyZXN1bHR9JnF1b3Q7 Jmd0OzwvY29kZT48L3A+CgoJPHA+VGhhdCB3b3VsZCBzZWUgaWYgdGhlIHJlcGxhY2VtZW50 IHZhcmlhYmxlIDxjb2RlPntyZXN1bHR9PC9jb2RlPiB3YXMgbGVzcyB0aGFuIG9yIGVxdWFs IHRvIDcgKHRoYXQmIzgyMTc7cyBub3QgYSB0eXBvLCB0aGUgbG9naWMgaXMgcmV2ZXJzZWQg aW4gdGhpcyBjYXNlOiBpdCBpcyBpbnRlcnByZXRlZCBhczogJiM4MjIwO2lzIDcgZ3JlYXRl ciB0aGFuIHtyZXN1bHR9JiM4MjIxOywgd2hpY2ggaXMgdGhlIHNhbWUgYXMgJiM4MjIwO2lz IHtyZXN1bHR9IGxlc3MgdGhhbiBvciBlcXVhbCB0byA3JiM4MjIxOyEpPC9wPgoKCTxoNCBj bGFzcz0iYXR0LW5hbWUgIiBpZD0ib3BlcmF0b3IiPm9wZXJhdG9yPC9oND4KCgk8cD5MaXN0 IG9mIG9wZXJhdG9ycyB0byBhcHBseSwgaW4gb3JkZXIsIHRvIGVhY2ggZmllbGQuIENob29z ZSBmcm9tOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPmVxPC9jb2RlPiBFcXVhbCAodGhlIGRl ZmF1bHQgZm9yIGFsbCBleGNlcHQgJiM4MjE2O3BhcmVudCYjODIxNzspPC9saT4KCQk8bGk+ PGNvZGU+bm90PC9jb2RlPiBOb3QgZXF1YWw8L2xpPgoJCTxsaT48Y29kZT5sdDwvY29kZT4g TGVzcyB0aGFuPC9saT4KCQk8bGk+PGNvZGU+Z3Q8L2NvZGU+IEdyZWF0ZXIgdGhhbjwvbGk+ CgkJPGxpPjxjb2RlPmxlPC9jb2RlPiBMZXNzIHRoYW4gb3IgZXF1YWwgdG88L2xpPgoJCTxs aT48Y29kZT5nZTwvY29kZT4gR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvPC9saT4KCQk8bGk+ PGNvZGU+aW48L2NvZGU+IEZpZWxkIGlzIG9uZSBvZiBhIGxpc3Qgb2YgdmFsdWVzPC9saT4K CQk8bGk+PGNvZGU+bm90aW48L2NvZGU+IEZpZWxkIGlzIG5vdCBvbmUgb2YgdGhlIGdpdmVu IGxpc3Qgb2YgdmFsdWVzPC9saT4KCQk8bGk+PGNvZGU+YmVnaW5zPC9jb2RlPiBGaWVsZCBi ZWdpbnMgd2l0aCBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5j b250YWluczwvY29kZT4gRmllbGQgY29udGFpbnMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJz IChkZWZhdWx0IGZvciAmIzgyMTY7cGFyZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48Y29kZT5l bmRzPC9jb2RlPiBGaWVsZCBlbmRzIHdpdGggYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzPC9s aT4KCQk8bGk+PGNvZGU+aXNlbXB0eTwvY29kZT4gRmllbGQgaXMgZW1wdHkgKGNvbnRhaW5z IG5vdGhpbmcpPC9saT4KCQk8bGk+PGNvZGU+aXN1c2VkPC9jb2RlPiBGaWVsZCBoYXMgc29t ZSB2YWx1ZTwvbGk+CgkJPGxpPjxjb2RlPmRlZmluZWQ8L2NvZGU+IEZpZWxkIGlzIHNldCAo dXNlZnVsIHdpdGggdXJsdmFyIHZhcmlhYmxlcyk8L2xpPgoJCTxsaT48Y29kZT51bmRlZmlu ZWQ8L2NvZGU+IEZpZWxkIGlzIG5vdCBzZXQsIG9yIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluZTwvbGk+CgkJPGxpPjxjb2RlPmlzbnVtPC9j b2RlPiBGaWVsZCBpcyBhIG51bWJlcjwvbGk+CgkJPGxpPjxjb2RlPmlzYWxwaGE8L2NvZGU+ IEZpZWxkIGNvbnRhaW5zIGNoYXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2RlPmlzYWxu dW08L2NvZGU+IEZpZWxkIGNvbnRhaW5zIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHk8 L2xpPgoJCTxsaT48Y29kZT5pc2xvd2VyPC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhl IGZpZWxkIGlzIGxvd2VyIGNhc2U8L2xpPgoJCTxsaT48Y29kZT5pc3VwcGVyPC9jb2RlPiBF dmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIHVwcGVyIGNhc2U8L2xpPgoJCTxsaT48 Y29kZT5pc3B1bmN0PC9jb2RlPiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIGZpZWxkIGlzIHNv bWUgcHVuY3R1YXRpb24gbWFyazwvbGk+CgkJPGxpPjxjb2RlPmlzc3BhY2U8L2NvZGU+IEV2 ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAo b3IgdGFiLCBuZXdsaW5lLCBldGMpPC9saT4KCTwvdWw+CgoJPHA+V2l0aCB0aGUgY29tcGFy aXNvbiBvcGVyYXRvcnMgKGd0LCBsdCwgZ2UsIGxlKSB5b3UgbWF5IGZpbmQgb2RkIGJlaGF2 aW91ciB3aGVuIGNvbXBhcmluZyBudW1iZXJzLiBGb3IgZXhhbXBsZSwgPGNvZGU+dXJsdmFy OnBpYyBndCA2PC9jb2RlPiB3aWxsIHJldHVybiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwv c3Bhbj4gaWYgPGNvZGU+cGljPC9jb2RlPiBpcyBzZXQgdG8gJiM4MjIwO2ZyZWQmIzgyMjE7 LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHdvcmQgJiM4MjIwO2ZyZWQmIzgyMjE7IChvciBhdCBs ZWFzdCB0aGUgJiM4MjIwO2NoYXJhY3RlciBmJiM4MjIxOykgaXMgZ3JlYXRlciBpbiB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPkFTQ0lJPC9zcGFuPiB0YWJsZSB0aGFuIHRoZSAmIzgyMjA7 Y2hhcmFjdGVyIDYmIzgyMjE7LjwvcD4KCgk8cD5UbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxl bSwgeW91IG1heSBhcHBlbmQgPGNvZGU+Ok5VTTwvY29kZT4gdG8gdGhlIGVuZCBvZiBhbnkg b2YgdGhlc2UgNCBvcGVyYXRvcnMgdG8gZm9yY2UgdGhlIHBsdWdpbiB0byBjaGVjayB0aGF0 IHRoZSB2YWx1ZXMgYXJlIGludGVnZXJzLjwvcD4KCgk8cD5Bbnkgb2YgdGhlIDxjb2RlPmlz PC9jb2RlPiBvcGVyYXRvcnMgKGV4Y2VwdCA8Y29kZT5pc3NwYWNlPC9jb2RlPikgY2FuIHRh a2UgYW4gZXh0cmEgcGFyYW1ldGVyIGFzIHdlbGwuIFNpbmNlIHRoZXkgY29tcGFyZSBldmVy eSBjaGFyYWN0ZXIgYWdhaW5zdCB0aGUgZ2l2ZW4gYmVoYXZpb3VyLCBzcGFjZSBjaGFyYWN0 ZXJzIGNhbiBtZXNzIHRoaW5ncyB1cCBhIGJpdC4gRm9yIGV4YW1wbGUgPGNvZGU+ZmllbGQ9 JnF1b3Q7Y3VzdG9tMSZxdW90OyBvcGVyYXRvcj0mcXVvdDtpc2xvd2VyJnF1b3Q7PC9jb2Rl PiB3aWxsIGZhaWwgaWYgY3VzdG9tMSBjb250YWlucyAmIzgyMjA7dGhpcyBpcyBhIHRlc3Qm IzgyMjE7LiBUbyBjaXJjdW12ZW50IHRoaXMsIGFkZCA8Y29kZT46Tk9TUEFDRTwvY29kZT4g dG8gdGhlIG9wZXJhdG9yIHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBzcGFjZXMgZnJvbSB0aGUg c3RyaW5nIGJlZm9yZSB0ZXN0aW5nIGl0LjwvcD4KCgk8cD5Ob3RlIGFsc28gdGhhdCB3aGls ZSA8Y29kZT5kZWZpbmVkPC9jb2RlPiBhbmQgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBkaWZm ZXIgc2VtYW50aWNhbGx5IGZyb20gPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNl bXB0eTwvY29kZT4gKHJlc3BlY3RpdmVseSksIHRoZSB3YXkgPHNwYW4gY2xhc3M9ImNhcHMi PlRYUDwvc3Bhbj4gYXNzaWducyB2YXJpYWJsZXMgbWVhbnMgdGhhdCwgZm9yIHRoZSBtb3N0 IHBhcnQsIHRoZSB0ZXJtcyBhcmUgaW50ZXJjaGFuZ2VhYmxlLiBXaGVuIGRlYWxpbmcgd2l0 aCB1cmx2YXJzIGFuZCBzdnJ2YXJzLCB0aGUgdHdvIHNldHMgb2Ygb3BlcmF0b3JzIGJlaGF2 ZSBpbmRlcGVuZGVudGx5LCBhcyB5b3Ugd291bGQgZXhwZWN0LiBTZWUgPGEgaHJlZj0iI2Vn NSI+RXhhbXBsZSA1PC9hPiBmb3IgbW9yZS4gTmVpdGhlciA8Y29kZT5kZWZpbmVkPC9jb2Rl PiBub3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBtYWtlIHNlbnNlIHdpdGggPGNvZGU+cGFy ZW50PC9jb2RlPiwgc28gdGhleSBhcmUgZm9yYmlkZGVuLjwvcD4KCgk8aDQgY2xhc3M9ImF0 dC1uYW1lICIgaWQ9InZhbHVlIj52YWx1ZTwvaDQ+CgoJPHA+TGlzdCBvZiB2YWx1ZXMgdG8g Y29tcGFyZSBlYWNoIGZpZWxkIGluIHR1cm4gdG8uIENhbiBiZSBzdGF0aWMgdmFsdWVzL3Rl eHQgb3IgdGhlIG5hbWUgb2YgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZp ZWxkLCBsaWtlIHRob3NlIGdpdmVuIGluIDxhIGhyZWY9IiNmaWVsZCI+ZmllbGQ8L2E+IChl eGNlcHQgJiM4MjIwO3BhcmVudCYjODIyMTspLjwvcD4KCgk8cD5UbyBkaXN0aW5ndWlzaCBh IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZpZWxkIGZyb20gc3RhdGljIHRleHQs IHByZWZpeCB0aGUgZmllbGQgbmFtZSB3aXRoIDxjb2RlPj88L2NvZGU+LiBGb3IgZXhhbXBs ZTogPGNvZGU+dmFsdWU9JnF1b3Q7dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5 b3VyIGNob3NlbiBmaWVsZCBhZ2FpbnN0IHRoZSB3b3JkICYjODIyMDt0aXRsZSYjODIyMTss IHdoZXJlYXMgPGNvZGU+dmFsdWU9JnF1b3Q7P3RpdGxlJnF1b3Q7PC9jb2RlPiB3aWxsIGNv bXBhcmUgeW91ciBmaWVsZCBhZ2FpbnN0IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyB0 aXRsZS48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSBhIHZhbHVlIHRoYXQgbWln aHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT4/ Ym9keTwvY29kZT4pLCBhZGQgdGhlIG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRv IHRoZSBlbmQgb2YgdGhlIHZhbHVlLiBJdCB3aWxsIGhhdmUgYW55IDxzcGFuIGNsYXNzPSJj YXBzIj5IVE1MPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFn cyBzdHJpcHBlZCBmcm9tIGl0IGFuZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUg bGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzLjwvcD4KCgk8cD5Ob3RlIHRoYXQgeW91IG1h eSBmaW5kIHVzaW5nIGRvdWJsZS1xdW90ZXMgaW4gZmllbGRzIGdpdmVzIHVuZXhwZWN0ZWQg cmVzdWx0cy4gVGhleSBhcmUgYmVzdCBhdm9pZGVkLCBvciB3b3JrZWQgYXJvdW5kIGJ5IHVz aW5nIDxjb2RlPmNvbnRhaW5zPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmVxPC9jb2RlPi48 L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJsb2dpYyI+bG9naWM8L2g0PgoKCTxw PkNhbiBiZSBvbmUgb2YgPGNvZGU+YW5kPC9jb2RlPiAodGhlIGRlZmF1bHQpIG9yIDxjb2Rl Pm9yPC9jb2RlPi4gSWYgdXNpbmcgPGNvZGU+YW5kPC9jb2RlPiwgYWxsIGNvbmRpdGlvbnMg bXVzdCBiZSBtZXQgZm9yIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IHJlc3Vs dC4gSWYgdXNpbmcgPGNvZGU+b3I8L2NvZGU+LCBhbnkgb2YgdGhlIGNvbmRpdGlvbnMgdGhh dCBtYXRjaCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gcmVz dWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImNhc2VzZW5zZSI+Y2FzZV9z ZW5zaXRpdmU8L2g0PgoKCTxwPkJ5IGRlZmF1bHQsIGFsbCBjb21wYXJpc29ucyBhcmUgY2Fz ZS1pbnNlbnNpdGl2ZSAoMCkuIElmIHlvdSB3aXNoIHRvIG1ha2UgdGhlbSBzZW5zaXRpdmUg dG8gY2FwdGlsaXNhdGlvbiwgc3BlY2lmeSA8Y29kZT5jYXNlX3NlbnNpdGl2ZT0mcXVvdDsx JnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHVzaW5nIDxjb2RlPmlzbG93ZXI8L2NvZGU+ IG9yIDxjb2RlPmlzdXBwZXI8L2NvZGU+IGluIGEgY29tcGFyaXNvbiwgY2FzZSBzZW5zaXRp dml0eSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3dpdGNoZWQgb24gd2hpbGUgdGhlIHRlc3Qg aXMgdGFraW5nIHBsYWNlLjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9InBhcmFt ZGVsaW0iPnBhcmFtX2RlbGltPC9oND4KCgk8cD5Zb3Ugbm9ybWFsbHkgc3BlY2lmeSBjb21t YS1zZXBhcmF0ZWQgbGlzdHMgdG8gdGhlIDxjb2RlPmZpZWxkPC9jb2RlPiwgPGNvZGU+b3Bl cmF0b3I8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVycy4gU29tZXRp bWVzIHRoaXMgbWlnaHQgbm90IGJlIGRlc2lyYWJsZSBpZiB5b3UgaGF2ZSB1c2VkIHRoYXQg Y2hhcmFjdGVyIGluIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGZpZWxkLCBmb3IgZXhhbXBsZS4g VGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIGRlbGltaXRlciB0byBhbG1v c3QgYW55dGhpbmcgeW91IGxpa2UsIGUuZy4gc3BlY2lmeWluZyA8Y29kZT5wYXJhbV9kZWxp bT0mcXVvdDsvLyZxdW90OzwvY29kZT4gbWVhbnMgeW91IHdvdWxkIHNwZWNpZnkgPGVtPmFs bDwvZW0+IHlvdXIgcGFyYW1ldGVyIGxpc3RzIGxpa2UgdGhpczo8L3A+CgoJPHA+PGNvZGU+ ZmllbGQ9JnF1b3Q7c2VjdGlvbiAvLyB1cmx2YXI6dHlwZSZxdW90OyBvcGVyYXRvcj0mcXVv dDtlcSAvLyBiZWdpbnMmcXVvdDsgdmFsdWU9JnF1b3Q7YW5pbWFscyAvLyB0aWdlciZxdW90 OzwvY29kZT48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJtb2RkZWxpbSI+bW9k X2RlbGltPC9oND4KCgk8cD5WZXJ5IHNpbWlsYXIgdG8gPGEgaHJlZj0iI3BhcmFtZGVsaW0i PnBhcmFtX2RlbGltPC9hPiwgdGhpcyBnb3Zlcm5zIHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJl dHdlZW4gYW4gb3B0aW9uIGFuZCBpdHMgbW9kaWZpZXIgKGUuZy4gdGhlIHRoaW5nIHNlcGFy YXRpbmcgdXJsdmFyLCBzdnJ2YXIgb3IgdHhwdmFyIGZyb20gdGhlIHZhcmlhYmxlIG5hbWUs IG9yIHBhcmVudCBmcm9tIDxjb2RlPkxWTDwvY29kZT4gYW5kIDxjb2RlPkNBVDwvY29kZT4s IGFuZCBhbHNvIHRoZSBjaGFyYWN0ZXIocykgdGhhdCBzZXBhcmF0ZSBhbiBvcGVyYXRvciBm cm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVNPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0i Y2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXJzKS4gSXQgaXMgdGhlIGNvbG9uICg6KSBi eSBkZWZhdWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9Im1vZGRlbGltIj5s aXN0X2RlbGltPC9oND4KCgk8cD5Gb3IgdXNlIHdpdGggdGhlIDxjb2RlPmluPC9jb2RlPiBh bmQgPGNvZGU+bm90aW48L2NvZGU+IG9wZXJhdG9ycywgdGhpcyBpcyB0aGUgZGVsaW1pdGVy IGJldHdlZW4gdmFsdWVzLiBJdCBpcyB0aGUgZm9yd2FyZC1zbGFzaCAoLykgYnkgZGVmYXVs dC4gQSBjb250cml2ZWQgZXhhbXBsZTo8L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6c21kX2lm IGZpZWxkPSZxdW90O3R4cHZhcjpsZXZlbCZxdW90OyBvcGVyYXRvcj0mcXVvdDtpbiZxdW90 OyB2YWx1ZT0mcXVvdDsxLzIvMy81LzgvMTMvMjEvMzQmcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7 UmVzdWx0IGlzIGEgRmlib25hY2NpIHZhbHVlISZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lm Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Tm90ZSB0aGF0IGluIGFsbCAmIzgyMTY7ZGVsaW0m IzgyMTc7IGF0dHJpYnV0ZXMsIHNvbWUgY2hhcmFjdGVyIHNlcXVlbmNlcyBtYXkgY2F1c2Ug cHJvYmxlbXMgKHF1b3RlcyAmIzgyMTI7IHNpbmdsZSBvciBkb3VibGUgJiM4MjEyOyBzcHJp bmcgdG8gbWluZDsgb3RoZXJzIGxpa2UgcGFyZW50aGVzZXMgbWF5IGFsc28gY2F1c2UgdGhl IHBsdWdpbiB0byBleHBsb2RlKS48L3A+CgoJPGgzPlJlcGxhY2VtZW50IHRhZ3M8L2gzPgoK CTxwPkV2ZXJ5IGZpZWxkIG9yIHZhbHVlIHRoYXQgeW91IHJlZmVyIHRvIGluIHlvdXIgc21k X2lmIHRhZyBiZWNvbWVzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2sg c28geW91IGNhbiBkaXNwbGF5IGl0cyBjb250ZW50cyBpZiB5b3Ugd2lzaC4gTW9zdCBvZiB0 aGUgdGltZSB0aGlzIGlzIG5vdCBtdWNoIHVzZSBidXQgaXQgY2FuIGJlIHZlcnkgdXNlZnVs IHdpdGggdGhlIDxjb2RlPmluPC9jb2RlPiBvcGVyYXRvci4gRm9yIGluc3RhbmNlLCBpZiB5 b3UgaGF2ZSBhc2tlZCBzbWRfaWYgdG8gdGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gdmFyaWFibGUgbmFtZWQgJiM4MjE2O2xldmVsJiM4MjE3OyBhbmQgdG9sZCBp dCB0byBjb21wYXJlIGl0IHRvIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjE2O2Fs bG93YWJsZV9sZXZlbHMmIzgyMTc7LCB0d28gdGFncyBiZWNvbWUgYXZhaWxhYmxlIHdoaWNo IHlvdSBjYW4gdXNlIHdpdGhpbiB0aGUgY29udGFpbmluZyBibG9jazo8L3A+CgoJPHVsPgoJ CTxsaT48Y29kZT57c21kX2lmX2xldmVsfTwvY29kZT4gd291bGQgZGlzcGxheSB0aGUgdmFs dWUgb2YgdGhlICYjODIxNjtsZXZlbCYjODIxNzsgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gdmFyaWFibGU8L2xpPgoJCTxsaT48Y29kZT57c21kX2lmX2FsbG93YWJsZV9sZXZl bHN9PC9jb2RlPiB3b3VsZCBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBh cnRpY2xlJiM4MjE3O3MgY3VzdG9tIGZpZWxkPC9saT4KCTwvdWw+CgoJPHA+VGhlIHJlcGxh Y2VtZW50IHRhZ3MgYXJlIGFsd2F5cyBwcmVmaXhlZCB3aXRoIDxjb2RlPnNtZF9pZl88L2Nv ZGU+IHNvIHRoZXkgZG9uJiM4MjE3O3QgY2xhc2ggd2l0aCB0aGUgb25lcyBpbiBzbWRfZ2Fs bGVyeSAoZm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgc21kX2lmIGluc2lkZSBhbiBzbWRfZ2Fs bGVyeSB0YWcpLiBJZiB5b3UgYXJlIGNvbXBhcmluZyBhIGZpeGVkLXZhbHVlIGZpZWxkIChz dWNoIGFzIDxjb2RlPmZpZWxkPSZxdW90O05VTEwmcXVvdDs8L2NvZGU+IG9yIDxjb2RlPnZh bHVlPSZxdW90OzEyJnF1b3Q7PC9jb2RlPiBvciBzbWRfZ2FsbGVyeSYjODIxNztzIDxjb2Rl PnZhbHVlPSZxdW90O3tjYXRlZ29yeX0mcXVvdDs8L2NvZGU+KSB0aGUgbmFtZSBvZiB0aGUg cmVwbGFjZW1lbnQgdGFncyBhcmUgPGNvZGU+e3NtZF9pZl9maWVsZH08L2NvZGU+IGZvciBm aWVsZHMgYW5kIDxjb2RlPntzbWRfaWZfdmFsfTwvY29kZT4gZm9yIHZhbHVlcy48L3A+CgoJ PHA+U2VlIDxhIGhyZWY9IiNlZzgiPkV4YW1wbGUgODwvYT4gZm9yIG1vcmUuPC9wPgoKCTxo Mj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0m cXVvdDtzZWN0aW9uLCBpZCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2JlZ2lucywgZ3Qm cXVvdDsKICAgICB2YWx1ZT0mcXVvdDtsaW9uLCAxMiZxdW90OyZndDsKICZsdDt0eHA6YXJ0 aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhh bmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5D aGVja3MgaWYgdGhlIGN1cnJlbnQgc2VjdGlvbiBuYW1lIGJlZ2lucyB3aXRoIHRoZSB3b3Jk ICYjODIyMDtsaW9uJiM4MjIxOyBhbmQgdGhlIGFydGljbGUgSUQgaXMgZ3JlYXRlciB0aGFu IDEyLiBEaXNwbGF5cyB0aGUgYXJ0aWNsZSBpZiBib3RoIGNvbmRpdGlvbnMgYXJlIG1ldCBv ciBkaXNwbGF5cyB0aGUgdGV4dCAmIzgyMjA7Tm90IHRvZGF5LCB0aGFua3MmIzgyMjE7IGlm IG5vdC48L3A+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtz dW1tYXJ5LCBjYXRlZ29yeSwgdXJsdmFyOnBpYyZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90 O2lzdXNlZCwgZXEsIGlzbnVtJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7LCBhbmltYWwgLCZx dW90OyAmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAm bHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q2hlY2tzIGlmIHRoZSBjdXN0b20gZmllbGQgbGFiZWxs ZWQgJiM4MjIwO3N1bW1hcnkmIzgyMjE7IGhhcyBzb21lIGRhdGEgaW4gaXQsIGNoZWNrcyBp ZiB0aGUgZ2xvYmFsIGNhdGVnb3J5IGVxdWFscyAmIzgyMjA7YW5pbWFsJiM4MjIxOyBhbmQg dGVzdHMgaWYgdGhlIHVybHZhciA8Y29kZT5waWM8L2NvZGU+IGlzIG51bWVyaWMgKGUuZy4g PGNvZGU+P3BpYz01PC9jb2RlPikuPC9wPgoKCTxwPklmIGFsbCB0aGVzZSBjb25kaXRpb25z IGFyZSBtZXQgdGhlIGFydGljbGUgaXMgZGlzcGxheWVkLCBlbHNlIHRoZSBtZXNzYWdlIGlz IHNob3duLiBOb3RlIHRoYXQgPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNudW08 L2NvZGU+IGRvbiYjODIxNzt0IHRha2UgYXJndW1lbnRzIGZvciA8Y29kZT52YWx1ZTwvY29k ZT4gYW5kIHRoZWlyIHBvc2l0aW9ucyBhcmUgaGVsZCBieSBlbXB0eSBjb21tYXMgKHRlY2hu aWNhbGx5IHRoZSBsYXN0IGNvbW1hIGlzbiYjODIxNzt0IG5lZWRlZCBidXQgaXQgaGVscHMg a2VlcCBldmVyeXRoaW5nIG5lYXQgaWYgeW91IGFkZCBmdXJ0aGVyIHRlc3RzIGxhdGVyIG9u KS48L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1wbGUgMzwvaDM+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDthcnRp Y2xlX2ltYWdlLCBzdnJ2YXI6SFRUUF9VU0VSX0FHRU5UJnF1b3Q7CiAgICAgb3BlcmF0b3I9 JnF1b3Q7ZXEsIGNvbnRhaW5zJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFyOnBpYywg U2FmYXJpJnF1b3Q7CiAgICAgbG9naWM9JnF1b3Q7b3ImcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFy dGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRo YW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ Q29tcGFyZXMgKGZvciBlcXVhbGl0eSkgdGhlIGN1cnJlbnQgYXJ0aWNsZSBpbWFnZSBpZCB3 aXRoIHRoZSB2YWx1ZSBvZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPnBpYzwvY29kZT4gYW5k IGNoZWNrcyBpZiB0aGUgdmFsdWUgb2YgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9z cGFuPl9VU0VSX0FHRU5UIHN0cmluZyBjb250YWlucyAmIzgyMjA7U2FmYXJpJiM4MjIxOy4g VGhpcyBleGFtcGxlIHVzZXMgdGhlICYjODIxNjtvciYjODIxNzsgbG9naWMsIGhlbmNlIGlm IDxlbT5laXRoZXI8L2VtPiBjb25kaXRpb24gaXMgbWV0IHRoZSBhcnRpY2xlIGlzIHNob3du LCBvdGhlcndpc2UgdGhlICYjODIxNjtub3QgdG9kYXkmIzgyMTc7IG1lc3NhZ2UgaXMgZGlz cGxheWVkLjwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0PC9oMz4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90 O3BhcmVudDpMVkwyJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsKICAgICB2 YWx1ZT0mcXVvdDttYW1tYWwmcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0 O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsK Jmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q2hlY2tzIHRoZSAybmQg c3ViLWNhdGVnb3J5IG9mIHRoZSBnbG9iYWwgY2F0ZWdvcnkmIzgyMTc7cyB0cmVlIHRvIHNl ZSBpZiBpdCBlcXVhbHMgJiM4MjIwO21hbW1hbCYjODIyMTsuIElmIGl0IGRvZXMsIHNob3cg dGhlIGFydGljbGU7IGlmIG5vdCBzaG93IHRoZSBtZXNzYWdlLiBSZW1vdmluZyB0aGUgPGNv ZGU+OkxWTDI8L2NvZGU+ICh3aGljaCBhbGxvd3MgeW91IHRvIGFsc28gcmVtb3ZlIHRoZSBv cGVyYXRvciBwYXJhbWV0ZXIgdG8gZm9yY2UgdGhlIGNvbXBhcmlzb24gdG8gYmUgdGhlIGRl ZmF1bHQgJiM4MjIwO2NvbnRhaW5zJiM4MjIxOykgY2hlY2tzIGlmIHRoZSBjdXJyZW50IGds b2JhbCBjYXRlZ29yeSBpcyBhIGNoaWxkIG9mICYjODIxNjttYW1tYWwmIzgyMTc7IChhdCBh bnkgbGV2ZWwpLjwvcD4KCgk8cD5DaGFuZ2UgdGhlIGZpZWxkIHRvIDxjb2RlPnBhcmVudDpD QVQxPC9jb2RlPiB0byBzZWUgaWYgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29yeTEgbWF0 Y2hlcyAmIzgyMTY7bWFtbWFsJiM4MjE3OyBhdCBhbnkgbGV2ZWwsIG9yIHVzZSA8Y29kZT5m aWVsZD0mcXVvdDtwYXJlbnQ6Q0FUMTpMVkwyJnF1b3Q7PC9jb2RlPiB0byBjb21iaW5lIHRo ZSBjaGVja3MuPC9wPgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU8L2gzPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1 b3Q7dXJsdmFyOnBpYywgdXJsdmFyOnBhZ2UmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtn dDpOVU0sIHVuZGVmaW5lZCZxdW90OwogICAgIHZhbHVlPSZxdW90Oz9hcnRpY2xlX2ltYWdl LCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsK ICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UZXN0cyBpZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2Rl PnBpYzwvY29kZT4gaXMgc3RyaWN0bHkgbnVtZXJpY2FsbHkgZ3JlYXRlciB0aGFuIHRoZSB2 YWx1ZSBpbiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgPGNvZGU+YXJ0aWNsZV9pbWFn ZTwvY29kZT4gZmllbGQgYW5kIHRoYXQgdGhlIHVybCB2YXJpYWJsZSA8Y29kZT5wYWdlPC9j b2RlPiBpcyBtaXNzaW5nIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IGFkZHJlc3MuIENvbXBhcmUgdGhlIG91dGNvbWUgb2YgdGhpcyB0ZXN0IHdpdGggdGhlIG90 aGVyIG9wZXJhdG9ycyB1c2luZyB0aGUgZm9sbG93aW5nIHRhYmxlIHdoZW4gdGVzdGluZyB0 aGUgPGNvZGU+cGFnZTwvY29kZT4gdXJsdmFyOjwvcD4KCgk8dGFibGU+CgkJPHRyPgoJCQk8 dGg+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9z cGFuPiA8L3RoPgoJCQk8dGg+ZGVmaW5lZCA8L3RoPgoJCQk8dGg+dW5kZWZpbmVkIDwvdGg+ CgkJCTx0aD5pc3VzZWQgPC90aD4KCQkJPHRoPmlzZW1wdHkgPC90aD4KCQk8L3RyPgoJCTx0 cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnIDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNh cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0 ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwv c3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNh cHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2Fw cyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnZT0gPC90ZD4KCQkJPHRkPiA8c3BhbiBj bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3Rk PgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8 L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBj bGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNs YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+ CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9NCA8L3RkPgoJCQk8dGQ+ IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3Nw YW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBz Ij5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMi PjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8 c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bh bj4gPC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2PC9o Mz4KCgk8cD5QdXQgdGhpcyBpbnNpZGUgeW91ciA8Y29kZT5wbGFpbmxpbmtzPC9jb2RlPiBm b3JtIGFuZCBleGVjdXRlIGEgPGNvZGU+Jmx0O3R4cDpsaW5rbGlzdCAvJmd0OzwvY29kZT4g ZnJvbSBhbiBhcnRpY2xlIHBhZ2UvZm9ybTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtpZCwgaWQmcXVv dDsKICAgICBvcGVyYXRvcj0mcXVvdDtnZTpOVU0sIGxlOk5VTSZxdW90OwogICAgIHZhbHVl PSZxdW90O3VybHZhcjptaW4sIHVybHZhcjptYXgmcXVvdDsmZ3Q7CiAgJmx0O3R4cDpsaW5r ZGVzY3RpdGxlIC8mZ3Q7Jmx0O2JyIC8mZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPlRoYXQgd2lsbCBsaXN0IG9ubHkgdGhlIGxpbmtzIHRoYXQgaGF2ZSBJ RHMgYmV0d2VlbiB0aGUgPGNvZGU+bWluPC9jb2RlPiBhbmQgPGNvZGU+bWF4PC9jb2RlPiB2 YXJpYWJsZXMgc3BlY2lmaWVkIG9uIHRoZSBhZGRyZXNzIGJhci48L3A+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 PgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+ MzAgRGVjIDA3IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MzAgRGVjIDA3 IHwgMC4yIHwgQWRkZWQgcGFyZW50IGNhdGVnb3J5IGNoZWNraW5nICh0aGFua3MgdGhlX2do b3N0KTwvbGk+CgkJPGxpPjAyIEphbiAwOCB8IDAuMyB8IEFkZGVkIGRlZmluZWQvdW5kZWZp bmVkIGFuZCBzdHJpY3QgbnVtZXJpYyBjb21wYXJpc29uczwvbGk+CgkJPGxpPjA2IEphbiAw OCB8IDAuNCB8IEFkZGVkIDxjb2RlPj88L2NvZGU+IG5vdGF0aW9uIHRvIGFsbG93IHRoZSB2 YWx1ZSB0byByZWFkIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZpZWxkczsgYmV0 dGVyIHF1b3RlIHN1cHBvcnQgKGJvdGggdGhhbmtzIE5laWxBKTwvbGk+CgkJPGxpPjA2IEph biAwOCB8IDAuNDEgfCBGaXhlZCBsb3dlciBjYXNlIGZpZWxkIG5hbWVzIGFuZCB1bmRlZmlu ZWQgaW5kZXggZXJyb3IgKHRoYW5rcyBwZXRlcmopPC9saT4KCQk8bGk+MTQgSmFuIDA4IHwg MC41IHwgQWRkZWQgY2FzZV9zZW5zaXRpdmUgb3B0aW9uOyBtYWRlICYjODIxNjtjb250YWlu cyYjODIxNzsgdGhlIGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQmIzgyMTc7IHRlc3RzOyBp bXByb3ZlZCBoZWxwIChhbGwgdGhhbmtzIHRoZV9naG9zdCk7IGFkZGVkIGRlbGltIG9wdGlv bnM8L2xpPgoJCTxsaT4xNSBKYW4gMDggfCAwLjUxIHwgRml4ZWQgZGVmaW5lZC91bmRlZmlu ZWQgc3ludGF4IGVycm9yOyB0aWdodGVuZWQgaXN1c2VkL2lzZW1wdHkgdG8gZGlzdGluZ3Vp c2ggdGhlbSBmcm9tIGRlZmluZWQvdW5kZWZpbmVkPC9saT4KCQk8bGk+MjUgTWF5IDA4IHwg MC42IHwgRml4ZWQgJiM4MjE2O3VuZGVmaW5lZCBpbmRleCYjODIxNzsgZXJyb3JzICh0aGFu a3MgcmVkYm90IGFuZCB0aGVfZ2hvc3QpIDsgYWRkZWQgbW9yZSBwcmV0ZXh0IHZhcmlhYmxl cyA7IGFkZGVkIG1vcmUgPGNvZGU+aXM8L2NvZGU+IGNoZWNrcyAoYW5kIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXIpIDsgYWxsb3dlZCBmaWxlIGFu ZCBsaW5rIHRlc3RzIChpbmNsdWRpbmcgcGFyZW50IGNhdGVnb3JpZXMpPC9saT4KCQk8bGk+ MjYgTWF5IDA4IHwgMC42MSB8IEZpeGVkIHN0dXBpZCBvdmVyc2lnaHQgaW4gZmllbGQgbmFt ZSBnZW5lcmF0aW9uIHRvIGFsbG93IGFyYml0cmFyeSBuYW1lcyBpbnN0ZWFkIG9mIGZvcmNp bmcgJHRoaXNhcnRpY2xlICh0aGFua3MgdG8gSm9hbmEgQ2FydmFsaG8gZm9yIGxlYWRpbmcg bWUgdG8gdGhpcyk8L2xpPgoJCTxsaT4xMSBKdW4gMDggfCAwLjYyIHwgRml4ZWQgaW5jb3Jy ZWN0IHJlc3VsdCBpZiBldmFsKCkgaXMgZW1wdHkgOyBhZGRlZCA8c3BhbiBjbGFzcz0iY2Fw cyI+TlVMTDwvc3Bhbj4gZmllbGQgb2JqZWN0PC9saT4KCQk8bGk+MTAgU2VwIDA4IHwgMC43 IHwgRml4ZWQgd2FybmluZyBpZiBlbXB0eSBjdXN0b20gZmllbGQgaW4gdmFsdWUgKHRoYW5r cyB2aXN1YWxwZW9wbGUpIDsgYWRkZWQgdHhwdmFyIHN1cHBvcnQgKHRoYW5rcyB0aGVfZ2hv c3QpIDsgYWRkZWQgdGhpc2ltYWdlIHN1cHBvcnQgKGZvciB0aGUgZnV0dXJlKSA7IGFkZGVk IG9wZXJhdG9ycyA8Y29kZT5pbjwvY29kZT4sIDxjb2RlPm5vdGluPC9jb2RlPiBhbmQgdGhl IDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IGF0dHJpYnV0ZTsgZW5hYmxlZCByZXBsYWNlbWVu dCB0YWdzIGZvciBtYXRjaGVkIHZhcmlhYmxlczwvbGk+CgkJPGxpPjAxIE9jdCAwOCB8IDAu NzEgfCBGaXhlZCB0aGUgZml4IGZvciBlbXB0eSBjdXN0b20gZmllbGRzIGltcGxlbWVudGVk IGluIDAuNyAodGhhbmtzIG1hcHUvdmlzdWFscGVvcGxlKTwvbGk+CgkJPGxpPjAxIE9jdCAw OCB8IDAuNzIgfCBBZGRlZCA8Y29kZT46Tk9UQUdTPC9jb2RlPiAodGhhbmtzIG1hcHUpPC9s aT4KCTwvdWw+CgoJPHA+PC9kaXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0t LSAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6 MS4zIDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8x MzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xv cjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFs OyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBk aXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQoj c21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRl eHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBh ZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3Rp dmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9t OiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsg Y29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAw OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDog MTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkz OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAx cHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTt9CiNzbWRf aGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNw YWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2Fz ZTsgfQojc21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hl bHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0K I3NtZF9oZWxwIHRhYmxlIHt3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGlu Zy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHgg c29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExV R0lOIENTUyAtLS0gLS0+CiI7czozOiJtZDUiO3M6MzI6ImM1NmZjODZlNjk3Zjg0MTE2ODBh ZjkxMDcwNTM5ODFhIjt9