Last active
August 12, 2020 11:26
-
-
Save Delivator/6fc71d715d62bfdf832ec830f17ada5e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<head> | |
<title>Skychat</title> | |
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"> | |
<meta content="utf-8" http-equiv="encoding"> | |
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> | |
<script src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"></script> | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> | |
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/crypto-js.min.js"></script> | |
<script> | |
var snsPortal = `sns.redirectme.net`; | |
var skynetPortal = window.location.hostname; | |
if (sessionStorage.getItem("skychat_state") === null) { | |
sessionStorage.setItem("skychat_state", "chat"); | |
} | |
window.onload = function() { | |
var snsComments = document.getElementById("sns_comments").getElementsByTagName("sns_comment"); | |
for (var i=0, max=snsComments.length; i < max; i++) { | |
var comment = snsComments[i]; | |
var user = atob(comment.getElementsByTagName("user")[0].innerHTML).replace(/</g,"<").replace(/>/g,">"); | |
if (!user) { | |
user = `<i>Anonomous</i>` | |
} | |
var epoch = comment.getElementsByTagName("epoch")[0].innerHTML; | |
var contact = atob(comment.getElementsByTagName("contact")[0].innerHTML).replace(/</g,"<").replace(/>/g,">"); | |
var contactImg = ""; | |
if (contact.length == 46 && contact.indexOf("@") == -1) { | |
contactImg = `/${contact}/`; | |
} else { | |
contactImg = `https://www.gravatar.com/avatar/${CryptoJS.MD5(contact)}` | |
} | |
var content = atob(comment.getElementsByTagName("content")[0].innerHTML).replace(/</g,"<").replace(/>/g,">"); | |
var innerHtml = `<div class='row'><div class='col-1 px-2 py-2 border-bottom'><center><img class='rounded-circle' width='50px' height='50px' src='${contactImg}'/></center></div><div class='col-11 px-2 py-2 border-bottom'><b>${user}</b> <i>posted at ${new Date(epoch * 1000)}</i><br/>${content}</div></div>`; | |
var comments = document.getElementById("comments").innerHTML; | |
document.getElementById("comments").innerHTML += innerHtml; | |
} | |
var json = JSON.parse(new URLSearchParams(window.location.search).get(`json`)); | |
if (json !== null && json.message !== null && json.message.length > 0) { | |
alert(json.message); | |
} | |
window.scrollTo(0,document.body.scrollHeight); | |
setTimeout(function(){refresh();}, 3000); | |
if (sessionStorage.getItem("skychat_state") == "compose") { | |
clickToComment(); | |
} else if (sessionStorage.getItem("skychat_state") == "login") { | |
clickToLogin(); | |
} else if (sessionStorage.getItem("skychat_state") == "portal") { | |
clickToChangePortal(); | |
} | |
if (localStorage.getItem("user") === null) { | |
clickToLogin(); | |
} | |
if (localStorage.getItem("contact") !== null) { | |
var contact = localStorage.getItem("contact"); | |
var contactImg = ""; | |
var skylinkRegex = /^[a-zA-Z0-9-_]{46}$/; | |
if (skylinkRegex.test(contact)) { | |
contactImg = `/${contact}/`; | |
} else { | |
contactImg = `https://www.gravatar.com/avatar/${CryptoJS.MD5(contact)}` | |
} | |
document.getElementById("comment_modal_avatar").innerHTML = `<img class='rounded-circle' width='50px' height='50px' src='${contactImg}'/> ${localStorage.getItem("user")}`; | |
} | |
} | |
function getHost() { | |
return document.getElementById("skychat_host").innerHTML; | |
} | |
function refresh() { | |
if(sessionStorage.getItem("skychat_state") == "chat"){ | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
} | |
function generateUUID() { | |
let uuid = ''; | |
const cs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; | |
for (let i = 0; i < 16; i++) { | |
uuid += cs.charAt(Math.floor(Math.random() * cs.length)); | |
}; | |
return uuid; | |
} | |
function clickToLogin() { | |
sessionStorage.setItem("skychat_state", "login"); | |
document.getElementById("login_modal").style.display = "block"; | |
document.getElementById("portal_modal").style.display = "none"; | |
document.getElementById("comment_modal").style.display = "none"; | |
$("#resultsModal").modal("show"); | |
} | |
function clickToChangePortal() { | |
sessionStorage.setItem("skychat_state", "portal"); | |
document.getElementById("login_modal").style.display = "none"; | |
document.getElementById("portal_modal").style.display = "block"; | |
document.getElementById("comment_modal").style.display = "none"; | |
document.getElementById('portal').value = skynetPortal; | |
$("#resultsModal").modal("show"); | |
} | |
function clickToComment() { | |
sessionStorage.setItem("skychat_state", "compose"); | |
document.getElementById("login_modal").style.display = "none"; | |
document.getElementById("portal_modal").style.display = "none"; | |
document.getElementById("comment_modal").style.display = "block"; | |
$("#resultsModal").modal("show"); | |
} | |
function cancel() { | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
function portal() { | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${document.getElementById('portal').value}`; | |
} | |
function login() { | |
document.getElementById('login-trigger-container').innerHTML | |
= `<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>`; | |
localStorage.setItem("user", document.getElementById('user').value); | |
localStorage.setItem("contact", ""); | |
var file = document.getElementById('contact').files[0]; | |
if (file != null) { | |
$.ajax({ | |
url: `/skynet/skyfile/${generateUUID()}?filename=${file.name}`, | |
type: 'POST', | |
data: file, | |
mimeType: "multipart/form-data", | |
contentType: false, | |
cache: false, | |
processData: false, | |
dataType: 'json', | |
success: function (data, textStatus, jqXHR) { | |
localStorage.setItem("contact", data.skylink); | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
}, | |
error: function (jqXHR, textStatus, errorThrown) { | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
}); | |
} else { | |
localStorage.setItem("contact", data.skylink); | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
} | |
function anonomous_login() { | |
localStorage.setItem("user", "Anonomous"); | |
localStorage.setItem("contact", ""); | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
function logout() { | |
localStorage.removeItem("user"); | |
localStorage.removeItem("contact"); | |
document.getElementById("comment_modal_avatar").innerHTML = ""; | |
window.location.href = `http://${snsPortal}/${getHost()}?portal=${skynetPortal}`; | |
} | |
function save() { | |
document.getElementById('save-trigger-container').innerHTML | |
= `<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>`; | |
var pin = window.location.pathname.substring(1, 47); | |
var user = btoa(localStorage.getItem('user')); | |
var epoch = Math.round(new Date().getTime() / 1000); | |
var contact = btoa(localStorage.getItem('contact')); | |
var content = btoa(document.getElementById('content').value); | |
var snsComment = `<sns_comment>` | |
+ `<pin>${pin}</pin>` | |
+ `<user>${user}</user>` | |
+ `<epoch>${epoch}</epoch>` | |
+ `<contact>${contact}</contact>` | |
+ `<content>${content}</content>` | |
+ `</sns_comment>`; | |
var snsComments = "</sns_comments></body>"; | |
fetch(`/${pin}/`) | |
.then(response => response.text()) | |
.then(result => { | |
var newPage = result.substring(0, result.length-snsComments.length)+snsComment+snsComments; | |
var blob = new Blob([newPage],{ type: 'text/html' }); | |
var formData = new FormData(); | |
formData.append('file', blob); | |
const uuid = generateUUID(); | |
fetch(`/skynet/skyfile/${uuid}?filename=comment.html`, {method: 'POST',body: formData}) | |
.then(response => response.json()) | |
.then(result => { | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/comment?host=${getHost()}&pin=${result.skylink}&user=${encodeURIComponent(user)}&epoch=${epoch}&contact=${encodeURIComponent(contact)}&content=${encodeURIComponent(content)}&redirect=${result.skylink}&portal=${skynetPortal}`; | |
}) | |
.catch(error => {console.error('Error:', error)}); | |
}) | |
} | |
function newChat() { | |
sessionStorage.setItem("skychat_state", "newChat"); | |
var pin = window.location.pathname.substring(1, 47); | |
fetch(`/${pin}/`) | |
.then(response => response.text()) | |
.then(result => { | |
var host = `${generateUUID()}.sns`; | |
var skychatDiv = `<skychat id="skychat_host" style="display: none">`; | |
var endingIndex = result.lastIndexOf(skychatDiv); | |
var newPage = result.substring(0, endingIndex) | |
+ `${skychatDiv}${host}</skychat><sns_comments id="sns_comments" style="display: none"></sns_comments></body>`; | |
var blob = new Blob([newPage],{ type: 'text/html' }); | |
var formData = new FormData(); | |
formData.append('file', blob); | |
const uuid = generateUUID(); | |
fetch(`/skynet/skyfile/${uuid}?filename=comment.html`, {method: 'POST',body: formData}) | |
.then(response => response.json()) | |
.then(result => { | |
sessionStorage.setItem("skychat_state", "chat"); | |
window.location.href = `http://${snsPortal}/register?host=${host}&pin=${result.skylink}&password=${generateUUID()}&redirect=${result.skylink}&portal=${skynetPortal}`; | |
}) | |
.catch(error => {console.error('Error:', error)}); | |
}) | |
} | |
</script> | |
</head> | |
<body class="bg-dark text-white"> | |
<nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-success"> | |
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> | |
<span class="navbar-toggler-icon"></span> | |
</button> | |
<div class="collapse navbar-collapse" id="navbarSupportedContent"> | |
<ul class="navbar-nav mr-auto"> | |
<li class="nav-item"> | |
<a class="nav-link text-dark" href="#" onclick="logout()">Logout</a> | |
</li> | |
<li class="nav-item"> | |
<a class="nav-link text-dark" href="#" onclick="clickToChangePortal()">Portals</a> | |
</li> | |
<li class="nav-item"> | |
<a class="nav-link text-dark" href="#" onclick="newChat()">New</a> | |
</li> | |
<li class="nav-item"> | |
<a class="nav-link text-dark" href="https://github.com/geo-gs/skychat">About</a> | |
</li> | |
<li class="nav-item" style="display: none;"> | |
<a class="nav-link" href="#manage">Manage</a> | |
</li> | |
</ul> | |
</div> | |
</nav> | |
<br/><br/><br/> | |
<div id='comments' class='container'></div> | |
<div class="container"> | |
<div class="modal" id="resultsModal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static" style="display: none;"> | |
<div class="modal-dialog"> | |
<div id="login_modal" class="modal-content" style="display: none;"> | |
<div class="modal-header bg-success"> | |
<h5 class="modal-title">Login</h5> | |
</div> | |
<div class="modal-body"> | |
<div class="md-form"> | |
<div class="input-group mb-3"> | |
<div class="input-group-prepend"> | |
<span class="input-group-text">User Name</span> | |
</div> | |
<input id="user" type="text" class="form-control"> | |
</div> | |
<div class="input-group mb-3"> | |
<div class="input-group-prepend"> | |
<span class="input-group-text">Avatar</span> | |
</div> | |
<form id="contact_form"> | |
<input id="contact" type="file" class="form-control"> | |
</form> | |
</div> | |
</div> | |
</div> | |
<div class="modal-footer bg-success"> | |
<div id='login-trigger-container'> | |
<button type='button' class="btn btn-secondary" onclick='login()'>Submit</button> | |
<button type='button' class="btn btn-secondary" onclick='anonomous_login()'>Skip</button> | |
</div> | |
</div> | |
</div> | |
<div id="portal_modal" class="modal-content" style="display: none;"> | |
<div class="modal-header bg-success"> | |
<h5 class="modal-title">Portal</h5> | |
</div> | |
<div class="modal-body"> | |
<div class="md-form"> | |
<div class="input-group mb-3"> | |
<div class="input-group-prepend"> | |
<span class="input-group-text">Portal</span> | |
</div> | |
<input id="portal" type="text" class="form-control"> | |
</div> | |
</div> | |
</div> | |
<div class="modal-footer bg-success"> | |
<div id='login-trigger-container'> | |
<button type='button' class="btn btn-secondary" onclick='portal()'>Change</button> | |
<button type='button' class="btn btn-secondary" data-dismiss="modal" onclick='cancel()'>Cancel</button><br/> | |
</div> | |
</div> | |
</div> | |
<div id="comment_modal" class="modal-content" style="display: none;"> | |
<div class="modal-header bg-success"> | |
<h5 id="comment_modal_avatar" class="modal-title"></h5> | |
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick='cancel()'> | |
<span aria-hidden="true">×</span> | |
</button> | |
</div> | |
<div class="modal-body"> | |
<div class="md-form"> | |
<textarea id="content" class="md-textarea form-control" rows="3" placeholder="Message group..."></textarea> | |
</div> | |
<p id="results"></p> | |
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div> | |
</div> | |
<div class="modal-footer bg-success"> | |
<div id='save-trigger-container'> | |
<button id='save-trigger' type='button' class="btn btn-secondary" onclick='save()'>Comment</button> | |
<button type='button' class="btn btn-secondary" data-dismiss="modal" onclick='cancel()'>Cancel</button><br/> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<br/><br/><br/> | |
<nav class="navbar navbar-expand-lg navbar-dark fixed-bottom bg-success"> | |
<div class="input-group mb-3"> | |
<div class="input-group-prepend"> | |
<span class="input-group-text">✎</span> | |
</div> | |
<input type="text" class="form-control" placeholder="Message group..." onclick='clickToComment();$("#resultsModal").modal("show")'> | |
</div> | |
</nav> | |
<skychat id="skychat_host" style="display: none">chat.sns</skychat><sns_comments id="sns_comments" style="display: none"><sns_comment><pin>IACjWstApCT3GUIw3SXIAh7EkG7XK_JwZ_L-qktEmXoCDA</pin><user>ZGluZ2xlcw==</user><epoch>1597197995</epoch><contact>SUFCTDRXM1dSSVF5bXh6dExVTm1FRkhjbUppRVNnTDctejhXRzhyaExjU2IyUQ==</contact><content>SGVsbG8gV29ybGQhISE=</content></sns_comment><sns_comment><pin>IADnRO6dBuJEGKaqG-ru4ChCaayFLnUPSHCP0FNxoGo6yQ</pin><user>QW5vbm9tb3Vz</user><epoch>1597199713</epoch><contact></contact><content>SGVsbG8gV29ybGQhISEgMg==</content></sns_comment><sns_comment><pin>IAC7XcL9GJBUciBTSmo9hKZyOkUy_ZroncxsQoP5y-J1xw</pin><user>ZGluZ2xlcw==</user><epoch>1597200469</epoch><contact>Q0FCZkdVN19zV01YNVJmaGZkRDdWaklWVUNiVXgtTXFDdHdfaGxCMHZBQ19sZw==</contact><content>SGVsbG8gd29ybGQgZnJvbSBzaWFza3kubmV0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgc2t5cG9ydGFsLnh5eiEh</content></sns_comment><sns_comment><pin>IADXkBC7LSeBOks3zQWjCxpjYADW5guGZcItByQpUPEPaA</pin><user>QW5vbm9tb3Vz</user><epoch>1597201238</epoch><contact></contact><content>VEVTVA==</content></sns_comment><sns_comment><pin>IAA5NGwzxqXrjRLKDPd6vejnRCyoU4ALYd8kzj3FXDU-oA</pin><user>Q292YWxlbnQ=</user><epoch>1597201341</epoch><contact>WEFCa1ZxdzlxV00yZFZCbHBKMGt6OHpoVHYwdXJhS2pYUU15TGg5ZlhFb3pqUQ==</contact><content>VGhpcyBpcyBsb29raW5nIHdheSBiZXR0ZXIgaW4ganVzdCBhIGRheSBvciBzbyE=</content></sns_comment><sns_comment><pin>IADFVubmbj7XIupjF69TGd-y_w_QCSCig5QQcZnunGJYyQ</pin><user>Q292YWxlbnQ=</user><epoch>1597201366</epoch><contact>WEFCa1ZxdzlxV00yZFZCbHBKMGt6OHpoVHYwdXJhS2pYUU15TGg5ZlhFb3pqUQ==</contact><content>PHNjaXB0Pg==</content></sns_comment><sns_comment><pin>IADjx6lnRmKVN-FoDZ6HaJ9P1Vsg3FQZhZEYejedUMV4VA</pin><user>Q292YWxlbnQ=</user><epoch>1597201417</epoch><contact>WEFCa1ZxdzlxV00yZFZCbHBKMGt6OHpoVHYwdXJhS2pYUU15TGg5ZlhFb3pqUQ==</contact><content>PHNjcmlwdD4Kd2luZG93LmFsZXJ0KDUgKyA2KTsKPC9zY3JpcHQ+</content></sns_comment><sns_comment><pin>IACGuMV78wJEFQ9TCi5yLznWItF-L_P_61mVAaVg7yzJOQ</pin><user>Q292YWxlbnQ=</user><epoch>1597201478</epoch><contact>WEFCa1ZxdzlxV00yZFZCbHBKMGt6OHpoVHYwdXJhS2pYUU15TGg5ZlhFb3pqUQ==</contact><content>QXcgdGhhdCdzIG5vIGZ1biBub3QgbGV0dGluZyB0aGUgc2NyaXB0IHRhZyB3b3JrKEknbSBnb25uYSB0cnkgdGhhdCBldmVyeSB0aW1lIHNvbWVvbmUgbWFrZXMgYSBwdWJsaWMgZm9ydW0gb24gU2lhIGJ0dyBmb3IgeW91IGZ1dHVyZSBkZXZzIG91dCB0aGVyZSk=</content></sns_comment><sns_comment><pin>IACA0el0geMWE_LW4YlT3c_me4EgpVtmEUIUwEaAkZZSyg</pin><user>ZGluZ2xlcw==</user><epoch>1597201624</epoch><contact>Q0FCZkdVN19zV01YNVJmaGZkRDdWaklWVUNiVXgtTXFDdHdfaGxCMHZBQ19sZw==</contact><content>SGkgQ292YWxlbnQhIFRoYW5rcyBmb3IgdGVzdGluZyB0aGF0IGFnYWluISBJIHRoaW5rIEkgZmluYWxseSBsZWFybmVkIG15IGxlc3Nvbi4gOi0p</content></sns_comment><sns_comment><pin>IACQmeudRminINkVLqFeghJFqdCW4LKXdh0_ul6b66zZhw</pin><user>ZGluZ2xlcw==</user><epoch>1597202967</epoch><contact>SUFCTDRXM1dSSVF5bXh6dExVTm1FRkhjbUppRVNnTDctejhXRzhyaExjU2IyUQ==</contact><content>Q3Jvc3MtcG9zdGluZyBmcm9tIFNpYSdzIERpc2NvcmQgc2VydmVyOgoKT25lIGlkZWEgSSd2ZSBzdHVtYmxlZCBvbiBpcyB0aGF0IHdpdGggc2t5bGluayB3ZWJwYWdlcyB5b3UgY2FuIGp1c3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBxdWVyeSBzdHJpbmcgaGFzIGA/bGF0ZXN0PXRydWVgIGluIGl0IGFuZCBpZiBub3QgdGhlbiBqYXZhc2NyaXB0IHJlZGlyZWN0IHRvIGh0dHBzOi8veW91cmRvbWFpbm5hbWUuY29tL3BhdGgvdG8vZmlsZS8/bGF0ZXN0PXRydWUuIERvaW5nIHNvIHdpbGwgcHJldmVudCBvbGQgc2t5bmV0IHdlYnBhZ2VzIGZyb20gZ29pbmcgc3RhbGUuIEEgZ29vZCBleGFtcGxlIG9mIHRoaXMgaXMgaHR0cHM6Ly9za3lwb3J0YWwueHl6L0NBQnZMZG03ZElmY0F2cDJvd0toQ25ySmxJNzI2TzdIeTl0UXhBai12aGlyWUEvICh0aGUgb3JpZ2luYWwgc2t5Y2hhdCkgd2hpY2ggc2VsZi1oZWFscyB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygc2t5Y2hhdCE=</content></sns_comment><sns_comment><pin>KADUgKgM7faIG4uiQCnI5Db8jwl-o3fuvfb3ib2ftdQ5Pg</pin><user>ZGluZ2xlcw==</user><epoch>1597205436</epoch><contact></contact><content></content></sns_comment><sns_comment><pin>KAAaJX2V48v0y8oLAH3Q-iUQYdEjp-4a6VYhmRHL9hpq_w</pin><user>ZGluZ2xlcw==</user><epoch>1597205519</epoch><contact></contact><content>SnVzdCB3YW50ZWQgdG8gdGVzdCBzdWJtaXR0aW5nIGFuIGVtcHR5IGNvbW1lbnQuIExvb2tzIGxpa2UgaXQgd29ya2VkLiBVbnN1cmUgaWYgSSB3YW50IGl0IHRvIHdvcmsgdGhvdWdoLiBTZWVtcyBvZGQgdG8gYWxsb3cgZW1wdHkgY29tbWVudHMu</content></sns_comment><sns_comment><pin>KADSjn8KeR9HvddoXPPyLNTpyazYWL_KMKjPTMu9svAMWQ</pin><user>ZGluZ2xlcw==</user><epoch>1597205725</epoch><contact></contact><content>QW55b25lIGhhdmUgYW4gb3BpbmlvbiBvbiBlbXB0eSBjaGF0IGNvbW1lbnRzPyBZYXkgb3IgbmF5Pw==</content></sns_comment><sns_comment><pin>KAB86WBO6asuiXEULW_mvFdRWvXplRCDDR49mCoZkAD1Tg</pin><user>U2t5c3BhY2U=</user><epoch>1597206898</epoch><contact>SUFCWVBNaG1PdlRaN1VwOUs0V0FhSWxKNzVkWmFnb05vWnpLX0dWVlZpdHJ6UQ==</contact><content>QXdlc29tZSBBcHAgISBIZWxsbyBmcmllbmRzIDop</content></sns_comment><sns_comment><pin>KACQ9BGAzIPTNpXRAWuH4V7-BbDavH6CqoskBr0EhIkPnA</pin><user>QW5vbm9tb3Vz</user><epoch>1597210448</epoch><contact></contact><content>TG92ZSB0aGlzISEhIQ==</content></sns_comment><sns_comment><pin>KAD4x5pv8aBHFRjp7YMTJnZDd1d32F9BqwAHfk9fYMVNRA</pin><user>RGVsaXZhdG9y</user><epoch>1597223359</epoch><contact>X0JsdU54SG1laDZZRW9OS1JaWkItNWFveWVldWx1LTlhY1pnVmxWNnJPazJ6UQ==</contact><content>VGhpcyBpcyBuaWNlIQ==</content></sns_comment><sns_comment><pin>KADmGBCku6L2CNIh7Jbz996ccpuE1wmLZ21YEJzPNmv2Hw</pin><user>QW5vbm9tb3Vz</user><epoch>1597228606</epoch><contact></contact><content>Jmx0O3NjcmlwdCZndDthbGVydCgidGVzdCIpJmx0Oy9zY3JpcHQmZ3Q7</content></sns_comment><sns_comment><pin>KABrF_s3e8sNTYiRD5NR3KCiIEtQsiNQ1HuvePXI8Q_PqQ</pin><user>QW5vbm9tb3Vz</user><epoch>1597229156</epoch><contact></contact><content>RWNobw==</content></sns_comment><sns_comment><pin>KACeGpKR6n7jOBgbCBpe3sX6hJyY3FdB1RCbNEjh598Grw</pin><user>SXMgdGhlcmUgYSBsaW1pdCBmb3IgdXNlcm5hbWUgbGVuZ3RoIG9yIGNhbiBpdCBiZSBvZiBhbnkgY2hhcmFjdGVyIGNvdW50PyBCZWNhdXNlIGlmIHNvIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdG8gYWRkIGEgbGltaXQgaGVyZSBhcyB3ZWxsIQ==</user><epoch>1597229516</epoch><contact>JyBvbmVycm9yPSJhbGVydCgnVGhpcyBpcyBhbiBYU1MgdGVzdCBvbiBzYycpIg==</contact><content>VGVzdA==</content></sns_comment></sns_comments></body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment