PD9waHAgDQogDQovKioNCiAqIEJsb2dfU3RhdCB3aWRnZXQgY2xhc3Mg5Y2a5a6i57uf6K6h5bel5YW357G7DQoqLw0KIA0KZnVuY3Rpb24gY2Z4eV93aWRnZXRzX2luaXQoKSB7DQogICAgaWYgKCAhaXNfYmxvZ19pbnN0YWxsZWQoKSApDQogICAgICAgIHJldHVybjsNCiANCiAgICByZWdpc3Rlcl93aWRnZXQoJ0NGWFlfV2lkZ2V0X0Jsb2dfU3RhdCcpOyAgIA0KIA0KICAgIGRvX2FjdGlvbignd2lkZ2V0c19pbml0Jyk7DQp9DQogDQphZGRfYWN0aW9uKCdpbml0JywgJ2NmeHlfd2lkZ2V0c19pbml0JywgMSk7DQogDQpmdW5jdGlvbiBpbnNlcnRfdmlzaXRvcnMoKSB7DQogICAgZ2xvYmFsICR3cGRiIDsNCiAgICBzdGF0aWMgJGZPayA9IEZBTFNFOw0KICAgICANCiAgICAkZGF0YV9hcnJheSA9IGFycmF5KA0KICAgICAgICAnbWV0YV9pZCcgPT4gMTEwMDAwLA0KICAgICAgICAncG9zdF9pZCcgPT4gMTEwMDAwLA0KICAgICAgICAnbWV0YV9rZXknID0+ICdWaXNpdG9ycycsDQogICAgICAgICdtZXRhX3ZhbHVlJyA9PiAnMCcNCiAgICApOw0KICAgICANCiAgICAkZm9ybWF0X2FycmF5ID0gYXJyYXkoDQogICAgICAgICclZCcsICclZCcsICclcycsICclcycNCiAgICApOw0KIA0KICAgICR3cGRiLT5pbnNlcnQoJHdwZGItPnBvc3RtZXRhLCAkZGF0YV9hcnJheSwgJGZvcm1hdF9hcnJheSkgOw0KfQ0KIA0KZnVuY3Rpb24gdXBkYXRlX3Zpc2l0b3JzKCkgew0KICAgIGdsb2JhbCAkd3BkYiA7DQogICAgIA0KICAgICR2aXNpdG9ycyA9ICR3cGRiLT5nZXRfdmFyKCR3cGRiLT5wcmVwYXJlKCJTRUxFQ1QgbWV0YV92YWx1ZSBGUk9NICR3cGRiLT5wb3N0bWV0YSBXSEVSRSBtZXRhX2lkID0gMTEwMDAwIikpOw0KICAgICANCiAgICAkdmlzaXRvcnMrKzsNCiANCiAgICAkd3BkYi0+dXBkYXRlKCR3cGRiLT5wb3N0bWV0YSwgYXJyYXkoJ21ldGFfdmFsdWUnID0+ICR2aXNpdG9ycyksIGFycmF5KCdtZXRhX2lkJyA9PiAxMTAwMDApLCBhcnJheSgnJXMnKSwgYXJyYXkoJyVkJykpIDsNCn0NCiANCmZ1bmN0aW9uIGdldF92aXNpdG9ycygpIHsNCiAgICBnbG9iYWwgJHdwZGI7DQogICAgIA0KICAgIGluc2VydF92aXNpdG9ycygpOw0KICAgIHVwZGF0ZV92aXNpdG9ycygpOw0KICAgICR2aXNpdG9ycyA9ICR3cGRiLT5nZXRfdmFyKCR3cGRiLT5wcmVwYXJlKCJTRUxFQ1QgbWV0YV92YWx1ZSBGUk9NICR3cGRiLT5wb3N0bWV0YSBXSEVSRSBtZXRhX2lkID0gMTEwMDAwIikpOw0KIA0KICAgIGVjaG8gJHZpc2l0b3JzOw0KfQ0KIA0KZnVuY3Rpb24gZ2V0X3RvdGFsY29tbWVudHMoKSB7DQogICAgZ2xvYmFsICR3cGRiOw0KICAgICRjb21tZW50cyA9ICR3cGRiLT5nZXRfdmFyKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAkd3BkYi0+Y29tbWVudHMiKTsNCiAgICBlY2hvICRjb21tZW50cyA7DQp9DQogDQpmdW5jdGlvbiBnZXRfdG90YWxsaW5rcygpIHsNCiAgICBnbG9iYWwgJHdwZGI7DQogICAgJGxpbmtzID0gJHdwZGItPmdldF92YXIoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICR3cGRiLT5saW5rcyBXSEVSRSBsaW5rX3Zpc2libGUgPSAnWSciKTsNCiAgICBlY2hvICRsaW5rcyA7DQp9DQogDQpmdW5jdGlvbiBnZXRfdG90YWxkYXlzKCRkYXRlKSB7DQogICAgJGRheXMgPSBmbG9vcigodGltZSgpLXN0cnRvdGltZSgkZGF0ZSkpLzg2NDAwKTsNCiAgICBlY2hvICRkYXlzIDsNCn0NCiANCmZ1bmN0aW9uIGdldF90b3RhbHBvc3RzKCkgew0KICAgICRwb3N0cyA9IHdwX2NvdW50X3Bvc3RzKCktPnB1Ymxpc2g7DQogICAgZWNobyAkcG9zdHMgOw0KfQ0KIA0KZnVuY3Rpb24gZ2V0X3RvdGFsdGFncygpIHsNCiAgICAkdGFncyA9IHdwX2NvdW50X3Rlcm1zKCdwb3N0X3RhZycpOw0KICAgIGVjaG8gJHRhZ3MgOw0KfQ0KIA0KIA0KY2xhc3MgQ0ZYWV9XaWRnZXRfQmxvZ19TdGF0IGV4dGVuZHMgV1BfV2lkZ2V0DQp7DQogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQ0KICAgIHsNCiAgICAgICAgJHdpZGdldF9vcHMgPSBhcnJheSgnY2xhc3NuYW1lJyA9PiAnYmxvZy1zdGF0JywgJ2Rlc2NyaXB0aW9uJyA9PiBfXyggIlRoZSBibG9nIHN0YXRpc3RpY3Mgb24geW91ciBzaXRlIikgKTsNCiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgnY2Z4eV9ibG9nX3N0YXQnLCBfXygn572R56uZ57uf6K6hJyksICR3aWRnZXRfb3BzKTsNCiAgICAgICAgJHRoaXMtPmFsdF9vcHRpb25fbmFtZSA9ICdibG9nLXN0YXQnOw0KIA0KICAgICAgICBhZGRfYWN0aW9uKCAnc2F2ZV9wb3N0JywgYXJyYXkoJHRoaXMsICdmbHVzaF93aWRnZXRfY2FjaGUnKSApOw0KICAgICAgICBhZGRfYWN0aW9uKCAnZGVsZXRlZF9wb3N0JywgYXJyYXkoJHRoaXMsICdmbHVzaF93aWRnZXRfY2FjaGUnKSApOw0KICAgICAgICBhZGRfYWN0aW9uKCAnc3dpdGNoX3RoZW1lJywgYXJyYXkoJHRoaXMsICdmbHVzaF93aWRnZXRfY2FjaGUnKSApOw0KICAgIH0NCiANCiAgICBmdW5jdGlvbiB3aWRnZXQoJGFyZ3MsICRpbnN0YW5jZSkNCiAgICB7DQogICAgICAgICRjYWNoZSA9IHdwX2NhY2hlX2dldCgnd2lkZ2V0X2Jsb2dfc3RhdCcsICd3aWRnZXQnKTsNCiANCiAgICAgICAgaWYgKCAhaXNfYXJyYXkoJGNhY2hlKSApDQogICAgICAgICAgICAkY2FjaGUgPSBhcnJheSgpOw0KIA0KICAgICAgICBpZiAoICEgaXNzZXQoICRhcmdzWyd3aWRnZXRfaWQnXSApICkNCiAgICAgICAgICAgICRhcmdzWyd3aWRnZXRfaWQnXSA9ICR0aGlzLT5pZDsNCiANCiAgICAgICAgaWYgKCBpc3NldCggJGNhY2hlWyAkYXJnc1snd2lkZ2V0X2lkJ10gXSApICkgew0KICAgICAgICAgICAgZWNobyAkY2FjaGVbICRhcmdzWyd3aWRnZXRfaWQnXSBdOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogDQogICAgICAgIG9iX3N0YXJ0KCk7DQogICAgICAgIGV4dHJhY3QoJGFyZ3MpOw0KIA0KICAgICAgICAkdGl0bGUgPSBhcHBseV9maWx0ZXJzKCd3aWRnZXRfdGl0bGUnLCBlbXB0eSgkaW5zdGFuY2VbJ3RpdGxlJ10pID8gX18oJ+e9keermee7n+iuoScpIDogJGluc3RhbmNlWyd0aXRsZSddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiAgICAgICAgJHRpbWUgPSBhcHBseV9maWx0ZXJzKCdUaW1lJywgZW1wdHkoJGluc3RhbmNlWyd0aW1lJ10pID8gX18oJzIwMTMtMDEtMDEnKSA6ICRpbnN0YW5jZVsndGltZSddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiAgICAgICAgJHBvc3RzID0gYXBwbHlfZmlsdGVycygncG9zdHMnLCBlbXB0eSgkaW5zdGFuY2VbJ3Bvc3RzJ10pID8gX18oJ+OAgOaWh+eroOaAu+aVsO+8micpIDogJGluc3RhbmNlWydwb3N0cyddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiAgICAgICAgJGNvbW1lbnRzID0gYXBwbHlfZmlsdGVycygnY29tbWVudHMnLCBlbXB0eSgkaW5zdGFuY2VbJ2NvbW1lbnRzJ10pID8gX18oJ+OAgOivhOiuuuaAu+aVsO+8micpIDogJGluc3RhbmNlWydjb21tZW50cyddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiAgICAgICAgJHZpc2l0b3JzID0gYXBwbHlfZmlsdGVycygndmlzaXRvcnMnLCBlbXB0eSgkaW5zdGFuY2VbJ3Zpc2l0b3JzJ10pID8gX18oJ+OAgOa1j+iniOaAu+aVsO+8micpIDogJGluc3RhbmNlWyd2aXNpdG9ycyddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiAgICAgICAgJHRhZ3MgPSBhcHBseV9maWx0ZXJzKCd0YWdzJywgZW1wdHkoJGluc3RhbmNlWyd0YWdzJ10pID8gX18oJ+OAgOagh+etvuS4quaVsO+8micpIDogJGluc3RhbmNlWyd0YWdzJ10sICRpbnN0YW5jZSwgJHRoaXMtPmlkX2Jhc2UpOw0KICAgICAgICAkbGlua3MgPSBhcHBseV9maWx0ZXJzKCdsaW5rcycsIGVtcHR5KCRpbnN0YW5jZVsnbGlua3MnXSkgPyBfXygn44CA5Y+L5oOF6ZO+5o6l77yaJykgOiAkaW5zdGFuY2VbJ2xpbmtzJ10sICRpbnN0YW5jZSwgJHRoaXMtPmlkX2Jhc2UpOw0KICAgICAgICAkZGF0ZSA9IGFwcGx5X2ZpbHRlcnMoJ2RhdGUnLCBlbXB0eSgkaW5zdGFuY2VbJ2RhdGUnXSkgPyBfXygn44CA5bu656uZ5pel5pyf77yaJykgOiAkaW5zdGFuY2VbJ2RhdGUnXSwgJGluc3RhbmNlLCAkdGhpcy0+aWRfYmFzZSk7DQogICAgICAgICRkYXlzID0gYXBwbHlfZmlsdGVycygnZGF5cycsIGVtcHR5KCRpbnN0YW5jZVsnZGF5cyddKSA/IF9fKCfjgIDov5DooYzlpKnmlbDvvJonKSA6ICRpbnN0YW5jZVsnZGF5cyddLCAkaW5zdGFuY2UsICR0aGlzLT5pZF9iYXNlKTsNCiANCiAgICAgICAgJHNob3dfcG9zdHMgPSBpc3NldCggJGluc3RhbmNlWydzaG93X3Bvc3RzJ10gKSA/ICRpbnN0YW5jZVsnc2hvd19wb3N0cyddIDogZmFsc2U7DQogICAgICAgICRzaG93X2NvbW1lbnRzID0gaXNzZXQoICRpbnN0YW5jZVsnc2hvd19jb21tZW50cyddICkgPyAkaW5zdGFuY2VbJ3Nob3dfY29tbWVudHMnXSA6IGZhbHNlOw0KICAgICAgICAkc2hvd192aXNpdG9ycyA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Nob3dfdmlzaXRvcnMnXSApID8gJGluc3RhbmNlWydzaG93X3Zpc2l0b3JzJ10gOiBmYWxzZTsNCiAgICAgICAgJHNob3dfbGlua3MgPSBpc3NldCggJGluc3RhbmNlWydzaG93X2xpbmtzJ10gKSA/ICRpbnN0YW5jZVsnc2hvd19saW5rcyddIDogZmFsc2U7DQogICAgICAgICRzaG93X3RhZ3MgPSBpc3NldCggJGluc3RhbmNlWydzaG93X3RhZ3MnXSApID8gJGluc3RhbmNlWydzaG93X3RhZ3MnXSA6IGZhbHNlOw0KICAgICAgICAkc2hvd19kYXRlID0gaXNzZXQoICRpbnN0YW5jZVsnc2hvd19kYXRlJ10gKSA/ICRpbnN0YW5jZVsnc2hvd19kYXRlJ10gOiBmYWxzZTsNCiAgICAgICAgJHNob3dfZGF5cyA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Nob3dfZGF5cyddICkgPyAkaW5zdGFuY2VbJ3Nob3dfZGF5cyddIDogZmFsc2U7DQogDQogICAgICAgID8+DQogICAgICAgICAgICA8P3BocCBlY2hvICRiZWZvcmVfd2lkZ2V0OyA/Pg0KICAgICAgICAgICAgPD9waHAgaWYgKCAkdGl0bGUgKSBlY2hvICRiZWZvcmVfdGl0bGUgLiAkdGl0bGUgLiAkYWZ0ZXJfdGl0bGU7ID8+ICAgIA0KICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgIDw/cGhwIGlmICggJHNob3dfcG9zdHMgKSA6ID8+DQogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRwb3N0czsgPz48P3BocCBnZXRfdG90YWxwb3N0cygpOyA/PjwvbGk+DQogICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPD9waHAgaWYgKCAkc2hvd19jb21tZW50cyApIDogPz4NCiAgICAgICAgICAgICAgICAgICAgPGxpPjw/cGhwIGVjaG8gJGNvbW1lbnRzOyA/Pjw/cGhwIGdldF90b3RhbGNvbW1lbnRzKCk7ID8+PC9saT4gIA0KICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDw/cGhwIGlmICggJHNob3dfdmlzaXRvcnMgKSA6ID8+DQogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICR2aXNpdG9yczsgPz48P3BocCAgZ2V0X3Zpc2l0b3JzKCk7ICA/PjwvbGk+IA0KICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/PiAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8P3BocCBpZiAoICRzaG93X3RhZ3MgKSA6ID8+DQogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICR0YWdzOyA/Pjw/cGhwIGdldF90b3RhbHRhZ3MoKTsgPz48L2xpPiAgIA0KICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8P3BocCBpZiAoICRzaG93X2xpbmtzICkgOiA/Pg0KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkbGlua3M7ID8+PD9waHAgZ2V0X3RvdGFsbGlua3MoKTsgPz48L2xpPg0KICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8P3BocCBpZiAoICRzaG93X2RhdGUgKSA6ID8+DQogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRkYXRlOyA/Pjw/cGhwIGVjaG8gJHRpbWU7ID8+PC9saT4NCiAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4gICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPD9waHAgaWYgKCAkc2hvd19kYXlzICkgOiA/Pg0KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkZGF5czsgPz48P3BocCBnZXRfdG90YWxkYXlzKCR0aW1lKTsgPz48L2xpPg0KICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDw/cGhwIGVjaG8gJGFmdGVyX3dpZGdldDsgPz4NCiAgICAgICAgPD9waHANCiANCiAgICAgICAgJGNhY2hlWyRhcmdzWyd3aWRnZXRfaWQnXV0gPSBvYl9nZXRfZmx1c2goKTsNCiAgICAgICAgd3BfY2FjaGVfc2V0KCd3aWRnZXRfYmxvZ19zdGF0JywgJGNhY2hlLCAnd2lkZ2V0Jyk7DQogICAgfQ0KICAgICANCiAgICBmdW5jdGlvbiB1cGRhdGUoICRuZXdfaW5zdGFuY2UsICRvbGRfaW5zdGFuY2UgKSANCiAgICB7DQogICAgICAgICRpbnN0YW5jZSA9ICRvbGRfaW5zdGFuY2U7DQogICAgICAgICRpbnN0YW5jZVsndGl0bGUnXSA9IHN0cmlwX3RhZ3MoJG5ld19pbnN0YW5jZVsndGl0bGUnXSk7DQogICAgICAgICRpbnN0YW5jZVsndGltZSddID0gc3RyaXBfdGFncygkbmV3X2luc3RhbmNlWyd0aW1lJ10pOw0KICAgICAgICAgDQogICAgICAgICRpbnN0YW5jZVsncG9zdHMnXSA9IHN0cmlwX3RhZ3MoJG5ld19pbnN0YW5jZVsncG9zdHMnXSk7DQogICAgICAgICRpbnN0YW5jZVsnY29tbWVudHMnXSA9IHN0cmlwX3RhZ3MoJG5ld19pbnN0YW5jZVsnY29tbWVudHMnXSk7DQogICAgICAgICRpbnN0YW5jZVsndmlzaXRvcnMnXSA9IHN0cmlwX3RhZ3MoJG5ld19pbnN0YW5jZVsndmlzaXRvcnMnXSk7ICAgICAgDQogICAgICAgICRpbnN0YW5jZVsndGFncyddID0gc3RyaXBfdGFncygkbmV3X2luc3RhbmNlWyd0YWdzJ10pOw0KICAgICAgICAkaW5zdGFuY2VbJ2xpbmtzJ10gPSBzdHJpcF90YWdzKCRuZXdfaW5zdGFuY2VbJ2xpbmtzJ10pOw0KICAgICAgICAkaW5zdGFuY2VbJ2RhdGUnXSA9IHN0cmlwX3RhZ3MoJG5ld19pbnN0YW5jZVsnZGF0ZSddKTsNCiAgICAgICAgJGluc3RhbmNlWydkYXlzJ10gPSBzdHJpcF90YWdzKCRuZXdfaW5zdGFuY2VbJ2RheXMnXSk7DQogICAgICAgICANCiAgICAgICAgJGluc3RhbmNlWydzaG93X3Bvc3RzJ10gPSAoYm9vbCkgKCRuZXdfaW5zdGFuY2VbJ3Nob3dfcG9zdHMnXSk7DQogICAgICAgICRpbnN0YW5jZVsnc2hvd19jb21tZW50cyddID0gKGJvb2wpICgkbmV3X2luc3RhbmNlWydzaG93X2NvbW1lbnRzJ10pOyAgICAgICANCiAgICAgICAgJGluc3RhbmNlWydzaG93X3Zpc2l0b3JzJ10gPSAoYm9vbCkgKCRuZXdfaW5zdGFuY2VbJ3Nob3dfdmlzaXRvcnMnXSk7ICAgDQogICAgICAgICRpbnN0YW5jZVsnc2hvd19saW5rcyddID0gKGJvb2wpICgkbmV3X2luc3RhbmNlWydzaG93X2xpbmtzJ10pOw0KICAgICAgICAkaW5zdGFuY2VbJ3Nob3dfdGFncyddID0gKGJvb2wpICgkbmV3X2luc3RhbmNlWydzaG93X3RhZ3MnXSk7DQogICAgICAgICRpbnN0YW5jZVsnc2hvd19kYXRlJ10gPSAoYm9vbCkgJG5ld19pbnN0YW5jZVsnc2hvd19kYXRlJ107DQogICAgICAgICRpbnN0YW5jZVsnc2hvd19kYXlzJ10gPSAoYm9vbCkgJG5ld19pbnN0YW5jZVsnc2hvd19kYXlzJ107IA0KICAgICAgICAgICAgICAgICANCiAgICAgICAgJHRoaXMtPmZsdXNoX3dpZGdldF9jYWNoZSgpOw0KIA0KICAgICAgICAkYWxsb3B0aW9ucyA9IHdwX2NhY2hlX2dldCggJ2FsbG9wdGlvbnMnLCAnb3B0aW9ucycgKTsNCiAgICAgICAgaWYgKCBpc3NldCgkYWxsb3B0aW9uc1snYmxvZy1zdGF0J10pICkNCiAgICAgICAgICAgIGRlbGV0ZV9vcHRpb24oJ2Jsb2ctc3RhdCcpOw0KIA0KICAgICAgICByZXR1cm4gJGluc3RhbmNlOw0KICAgIH0NCiANCiAgICBmdW5jdGlvbiBmbHVzaF93aWRnZXRfY2FjaGUoKSANCiAgICB7DQogICAgICAgIHdwX2NhY2hlX2RlbGV0ZSgnd2lkZ2V0X2Jsb2dfc3RhdCcsICd3aWRnZXQnKTsNCiAgICB9DQogDQogICAgZnVuY3Rpb24gZm9ybSggJGluc3RhbmNlICkgDQogICAgew0KICAgICAgICAkdGl0bGUgID0gaXNzZXQoICRpbnN0YW5jZVsndGl0bGUnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsndGl0bGUnXSApIDogJyc7DQogICAgICAgICR0aW1lICAgPSBpc3NldCggJGluc3RhbmNlWyd0aW1lJ10gKSA/IGVzY19hdHRyKCAkaW5zdGFuY2VbJ3RpbWUnXSApIDogJyc7DQogICAgICAgICANCiAgICAgICAgJHBvc3RzICA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Bvc3RzJ10gKSA/IGVzY19hdHRyKCAkaW5zdGFuY2VbJ3Bvc3RzJ10gKSA6ICcnOw0KICAgICAgICAkY29tbWVudHMgID0gaXNzZXQoICRpbnN0YW5jZVsnY29tbWVudHMnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsnY29tbWVudHMnXSApIDogJyc7DQogICAgICAgICR2aXNpdG9ycyAgPSBpc3NldCggJGluc3RhbmNlWyd2aXNpdG9ycyddICkgPyBlc2NfYXR0ciggJGluc3RhbmNlWyd2aXNpdG9ycyddICkgOiAnJzsgICAgICAgDQogICAgICAgICR0YWdzICAgPSBpc3NldCggJGluc3RhbmNlWyd0YWdzJ10gKSA/IGVzY19hdHRyKCAkaW5zdGFuY2VbJ3RhZ3MnXSApIDogJyc7DQogICAgICAgICRsaW5rcyAgPSBpc3NldCggJGluc3RhbmNlWydsaW5rcyddICkgPyBlc2NfYXR0ciggJGluc3RhbmNlWydsaW5rcyddICkgOiAnJzsNCiAgICAgICAgJGRhdGUgICA9IGlzc2V0KCAkaW5zdGFuY2VbJ2RhdGUnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsnZGF0ZSddICkgOiAnJzsNCiAgICAgICAgJGRheXMgID0gaXNzZXQoICRpbnN0YW5jZVsnZGF5cyddICkgPyBlc2NfYXR0ciggJGluc3RhbmNlWydkYXlzJ10gKSA6ICcnOw0KICAgICAgICAgDQogICAgICAgICRzaG93X3Bvc3RzID0gaXNzZXQoICRpbnN0YW5jZVsnc2hvd19wb3N0cyddICkgPyBlc2NfYXR0ciggJGluc3RhbmNlWydzaG93X3Bvc3RzJ10gKSA6ICcnOw0KICAgICAgICAkc2hvd19jb21tZW50cyA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Nob3dfY29tbWVudHMnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsnc2hvd19jb21tZW50cyddICkgOiAnJzsNCiAgICAgICAgJHNob3dfdmlzaXRvcnMgPSBpc3NldCggJGluc3RhbmNlWydzaG93X3Zpc2l0b3JzJ10gKSA/IGVzY19hdHRyKCAkaW5zdGFuY2VbJ3Nob3dfdmlzaXRvcnMnXSApIDogJyc7IA0KICAgICAgICAkc2hvd19saW5rcyA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Nob3dfbGlua3MnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsnc2hvd19saW5rcyddICkgOiAnJzsgICAgICANCiAgICAgICAgJHNob3dfdGFncyA9IGlzc2V0KCAkaW5zdGFuY2VbJ3Nob3dfdGFncyddICkgPyBlc2NfYXR0ciggJGluc3RhbmNlWydzaG93X3RhZ3MnXSApIDogJyc7DQogICAgICAgICRzaG93X2RhdGUgPSBpc3NldCggJGluc3RhbmNlWydzaG93X2RhdGUnXSApID8gZXNjX2F0dHIoICRpbnN0YW5jZVsnc2hvd19kYXRlJ10gKSA6ICcnOw0KICAgICAgICAkc2hvd19kYXlzID0gaXNzZXQoICRpbnN0YW5jZVsnc2hvd19kYXlzJ10gKSA/IGVzY19hdHRyKCAkaW5zdGFuY2VbJ3Nob3dfZGF5cyddICkgOiAnJzsgDQogICAgICAgICANCiAgICAgICAgPz4NCiAgICAgICAgICAgIDxwPjxsYWJlbCBmb3I9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3RpdGxlJyApOyA/PiI+PD9waHAgX2UoICdXaWRnZXRzIOagh+mimO+8mu+8iOWmgiDigJzljZrlrqLnu5/orqHigJ3vvIknICk7ID8+PC9sYWJlbD4NCiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0id2lkZWZhdCIgaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3RpdGxlJyApOyA/PiIgbmFtZT0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX25hbWUoICd0aXRsZScgKTsgPz4iIHR5cGU9InRleHQiIHZhbHVlPSI8P3BocCBlY2hvICR0aXRsZTsgPz4iIC8+PC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgICAgPHA+PGxhYmVsIGZvcj0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAndGltZScgKTsgPz4iPjw/cGhwIF9lKCAn5bu656uZ5pel5pyf77ya77yI5qC85byPIOKAnDIwMTMtMDEtMDHigJ3vvIknICk7ID8+PC9sYWJlbD4NCiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0id2lkZWZhdCIgaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3RpbWUnICk7ID8+IiBuYW1lPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfbmFtZSggJ3RpbWUnICk7ID8+IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPD9waHAgZWNobyAkdGltZTsgPz4iIC8+PC9wPiAgDQogICAgICAgICAgICAgDQogICAgICAgICAgICA8cD7lj6/oh6rlrprkuYnlkITnu5/orqHpobnmoIfpopjvvJrvvIjnqbrliJnkuLrpu5jorqTvvIk8L3A+DQogICAgICAgICAgICAgDQogICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImNoZWNrYm94IiB0eXBlPSJjaGVja2JveCIgPD9waHAgY2hlY2tlZCggJHNob3dfcG9zdHMgKTsgPz4gaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Nob3dfcG9zdHMnICk7ID8+IiBuYW1lPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfbmFtZSggJ3Nob3dfcG9zdHMnICk7ID8+IiAvPg0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Bvc3RzJyApOyA/PiI+PD9waHAgX2UoJyZuYnNwOyLmlofnq6DmgLvmlbDvvJoiJm5ic3A7PT3vvJ4gICAnICk7ID8+PC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Bvc3RzJyApOyA/PiIgbmFtZT0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX25hbWUoICdwb3N0cycgKTsgPz4iIHR5cGU9InRleHQiIHZhbHVlPSI8P3BocCBlY2hvICRwb3N0czsgPz4iICBzaXplPSIxMCIgLz4NCiAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iY2hlY2tib3giIHR5cGU9ImNoZWNrYm94IiA8P3BocCBjaGVja2VkKCAkc2hvd19jb21tZW50cyApOyA/PiBpZD0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAnc2hvd19jb21tZW50cycgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnc2hvd19jb21tZW50cycgKTsgPz4iIC8+ICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ2NvbW1lbnRzJyApOyA/PiI+PD9waHAgX2UoICcmbmJzcDsi6K+E6K665oC75pWw77yaIiZuYnNwOz0977yeICAgJyApOyA/PjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IGlkPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICdjb21tZW50cycgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnY29tbWVudHMnICk7ID8+IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPD9waHAgZWNobyAkY29tbWVudHM7ID8+IiAgc2l6ZT0iMTAiIC8+DQogICAgICAgICAgICA8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImNoZWNrYm94IiB0eXBlPSJjaGVja2JveCIgPD9waHAgY2hlY2tlZCggJHNob3dfdmlzaXRvcnMgKTsgPz4gaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Nob3dfdmlzaXRvcnMnICk7ID8+IiBuYW1lPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfbmFtZSggJ3Nob3dfdmlzaXRvcnMnICk7ID8+IiAvPiAgICAgICAgICANCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICd2aXNpdG9ycycgKTsgPz4iPjw/cGhwIF9lKCAnJm5ic3A7Iua1j+iniOaAu+aVsO+8miImbmJzcDs9Pe+8niAgICcgKTsgPz48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAndmlzaXRvcnMnICk7ID8+IiBuYW1lPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfbmFtZSggJ3Zpc2l0b3JzJyApOyA/PiIgdHlwZT0idGV4dCIgdmFsdWU9Ijw/cGhwIGVjaG8gJHZpc2l0b3JzOyA/PiIgIHNpemU9IjEwIiAvPg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJjaGVja2JveCIgdHlwZT0iY2hlY2tib3giIDw/cGhwIGNoZWNrZWQoICRzaG93X3RhZ3MgKTsgPz4gaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Nob3dfdGFncycgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnc2hvd190YWdzJyApOyA/PiIgLz4gICAgICAgICAgDQogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAndGFncycgKTsgPz4iPjw/cGhwIF9lKCAnJm5ic3A7Iuagh+etvuS4quaVsO+8miImbmJzcDs9Pe+8niAgICcgKTsgPz48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAndGFncycgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAndGFncycgKTsgPz4iIHR5cGU9InRleHQiIHZhbHVlPSI8P3BocCBlY2hvICR0YWdzOyA/PiIgIHNpemU9IjEwIiAvPg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJjaGVja2JveCIgdHlwZT0iY2hlY2tib3giIDw/cGhwIGNoZWNrZWQoICRzaG93X2xpbmtzICk7ID8+IGlkPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICdzaG93X2xpbmtzJyApOyA/PiIgbmFtZT0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX25hbWUoICdzaG93X2xpbmtzJyApOyA/PiIgLz4NCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICdsaW5rcycgKTsgPz4iPjw/cGhwIF9lKCAnJm5ic3A7IuWPi+aDhemTvuaOpe+8miImbmJzcDs9Pe+8niAgICcgKTsgPz48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAnbGlua3MnICk7ID8+IiBuYW1lPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfbmFtZSggJ2xpbmtzJyApOyA/PiIgdHlwZT0idGV4dCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGxpbmtzOyA/PiIgIHNpemU9IjEwIiAvPg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJjaGVja2JveCIgdHlwZT0iY2hlY2tib3giIDw/cGhwIGNoZWNrZWQoICRzaG93X2RhdGUgKTsgPz4gaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Nob3dfZGF0ZScgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnc2hvd19kYXRlJyApOyA/PiIgLz4gICAgICAgICAgDQogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAnZGF0ZScgKTsgPz4iPjw/cGhwIF9lKCAnJm5ic3A7IuW7uuermeaXpeacn++8miImbmJzcDs9Pe+8niAgICcgKTsgPz48L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX2lkKCAnZGF0ZScgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnZGF0ZScgKTsgPz4iIHR5cGU9InRleHQiIHZhbHVlPSI8P3BocCBlY2hvICRkYXRlOyA/PiIgIHNpemU9IjEwIiAvPg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJjaGVja2JveCIgdHlwZT0iY2hlY2tib3giIDw/cGhwIGNoZWNrZWQoICRzaG93X2RheXMgKTsgPz4gaWQ9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9pZCggJ3Nob3dfZGF5cycgKTsgPz4iIG5hbWU9Ijw/cGhwIGVjaG8gJHRoaXMtPmdldF9maWVsZF9uYW1lKCAnc2hvd19kYXlzJyApOyA/PiIgLz4NCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICdkYXlzJyApOyA/PiI+PD9waHAgX2UoICcmbmJzcDsi6L+Q6KGM5aSp5pWw77yaIiZuYnNwOz0977yeICAgJyApOyA/PjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IGlkPSI8P3BocCBlY2hvICR0aGlzLT5nZXRfZmllbGRfaWQoICdkYXlzJyApOyA/PiIgbmFtZT0iPD9waHAgZWNobyAkdGhpcy0+Z2V0X2ZpZWxkX25hbWUoICdkYXlzJyApOyA/PiIgdHlwZT0idGV4dCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRheXM7ID8+IiAgc2l6ZT0iMTAiIC8+DQogICAgICAgICAgICA8L3A+DQogICAgICAgICAgICAgDQogICAgICAgIDw/cGhwDQogICAgfQ0KfQ0KIA0KPz4=
统计工具wordpress
发布于 2015年3月10日
归档于 随笔