function check_dark_mode() {
var dark_mode_gl = document.cookie.replace(
/(?:(?:^|.*;\s*)gc_inc_dark\s*\=\s*([^;]*).*$)|^.*$/,
"$1",
);
return dark_mode_gl;
}
if(location.pathname.split('/').slice(0,4).join('/') != '/pl/lite/widget') {
if(check_dark_mode() == 1) {
document.documentElement.style.setProperty('--whatsapp_mess_bg', '#27333a');
document.documentElement.style.setProperty('--whatsapp_mess_fail_bg', '#582c2c');
} else {
document.documentElement.style.setProperty('--whatsapp_mess_bg', '#e8f5e9');
document.documentElement.style.setProperty('--whatsapp_mess_fail_bg', '#ffe7e7');
}
$( ".js-theme-switch" ).on( "change", function() {
if(check_dark_mode() == 1) {
document.documentElement.style.setProperty('--whatsapp_mess_bg', '#27333a');
document.documentElement.style.setProperty('--whatsapp_mess_fail_bg', '#582c2c');
} else { document.documentElement.style.setProperty('--whatsapp_mess_bg', '#e8f5e9');
document.documentElement.style.setProperty('--whatsapp_mess_fail_bg', '#ffe7e7');
} });
$("body").append("");
if(location.pathname.split('/').slice(0,4).join('/') == '/pl/notifications/support') {
$('div.support-with-ai').find('div.contact-footer-column').before('

Чат поддержки Getcourse PRO
2000 технических специалистов Getcourse
помогут, если у вас есть вопрос или задача. ');
}
if(window.userInfo.canCms && window.userInfo.isAdmin && $('div.gl-chat-getcoursepro').length < 1) {
$(document).on('click', "ul.gc-account-user-menu", function() {
function viewChat() {
setTimeout(
function()
{
if($('ul.gc-account-user-submenu').length > 0) {
$("ul.gc-account-user-submenu").append('

Чат Getcourse PRO24/7 отвечаем на вопросы
');
$('div.gl-chat-getcoursepro').fadeIn("fast").css("display", "flex");
} else { viewChat() }
},50);
}
viewChat();
});
}
console.log(2);
if(window.userInfo.canCms && new URL(window.location).search.indexOf("iframe=1") < 1) {
$('body').append('
');
}
function GetFilePathGC(fileid) {
$.get('/pl/fileindex/file/view', {'hash': fileid}
).done(function(data) {
if($(data).find('td.gc-fileservice-file-about-table-access').length) {
$('.btn-send').css('background-color', '#337ab7').css('border', '#2e6da4').removeClass('gl-false').children('.text').text('Отправить');
id = $(data).find('td.gc-fileservice-file-about-table-access').children('form').children('input[name="id"]').val()
$.post("/fileservice/control/account/set-access", { id: id, access: "1" });
var ext = fileid.split('.').pop();
if(ext == 'pdf') { var bgcolor = 'rgb(226 87 76 / 50%)'; var icon = '
'; } else if(ext == 'doc' || ext == 'docx') { var bgcolor = 'rgb(65 165 238 / 50%)'; var icon = '
'; } else if(ext == 'xls' || ext == 'xlsx') { var bgcolor = 'rgb(110 216 163 / 50%)'; var icon = '
'; } else if(ext == 'csv') { var bgcolor = 'rgb(110 216 163 / 50%)'; var icon = '
'; } else if(ext == 'mp3' || ext == 'aac' || ext == 'wave' || ext == 'wma' || ext == 'flac' || ext == 'alac' || ext == 'oog' || ext == 'mp4' || ext == 'mov' || ext == '3g2' || ext == '3gp' || ext == 'asf' || ext == 'avi' || ext == 'm4v' || ext == 'mkv' || ext == 'mpeg' || ext == 'mpg' || ext == 'webm' || ext == 'wmv') { var bgcolor = 'rgb(142 76 158 / 20%)'; var icon = '
'; } else if(ext == 'png' || ext == 'jpg' || ext == 'jpeg' || ext == 'webp' || ext == 'gif' || ext == 'svg' || ext == 'webp' || ext == 'ai' || ext == 'ico' || ext == 'tiff' || ext == 'bmp' || ext == 'jpg2' || ext == 'jxr' || ext == 'eps') { var bgcolor = 'rgb(161 217 255 / 50%)'; var icon = '
'; } else { var bgcolor = 'rgb(255 255 255 / 50%)'; var icon = '
'; }
$('select.change-upload-type[attr_hash="'+fileid+'"]').each(function() {
if(!$(this).parents('div.uploadifive-queue-item.complete').hasClass('access-open')) {
$(this).parents('div.uploadifive-queue-item.complete').css({'background-color': bgcolor, 'color':'#000'}).prepend(icon).addClass('access-open');
}
});
} else {
setTimeout(
function()
{
GetFilePathGC(fileid)
},5000);
return false;
}
return false;
}).fail(function(done) {
$('.btn-send').css('background-color', '#337ab7').css('border', '#2e6da4').removeClass('gl-false').children('.text').text('Отправить');
$('#gl-error-file').remove();
$('.file-uploader').prepend('
Возможно, файлы не доставятся в WhatsApp.
Почему?');
});
}
$('body').append('');
function GetFileURLInbox(id_up) {
if(!$('#'+id_up).html().length) { return false; }
if ($('#'+id_up+' span.filename:not([data-url])').length>0) {
var files_input = $('#'+id_up).parents('div.file-uploader').children('input.upload-value[name="GetCourseComment[files]"]').val();
if(!files_input.length || files_input == '[]') {
send_upload_file = [];
setTimeout(function() { GetFileURLInbox(id_up); },1000);
return false;
}
let files = $('#'+id_up).parents('div.file-uploader').children('input.upload-value[name="GetCourseComment[files]"]').val().split(',');
let files_arr = jQuery.parseJSON(files);
for (var key in files_arr) {
let file_id = files_arr[key]['hash'];
if (file_id !=="") GetFilePathGC(file_id);
}
send_upload_file.push(files);
} else {
setTimeout(function() { GetFileURLInbox(id_up); },1000); }
}
//var target = document.querySelectorAll(".standard-page-actions")[0];
const config = {
childList: true,
//subtree: true
};
const callback = function(mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
if(mutation.target.classList.contains('uploadifive-queue') && mutation.addedNodes.length) {
$('.btn-send').css('background-color', '#c7c7c7').css('border', 'none').css('outline', 'none').addClass('gl-false').children('.text').text('Загружается...');
setTimeout(function() { GetFileURLInbox(mutation.target.id); },1000);
} else if(mutation.target.classList.contains('comments')) {
setTimeout(function(){
$('input[name="message_type[]"]:checked').each(function(i, obj) {
if($(obj).attr('checked')) { if($(obj).parent('label').text().indexOf('whatsapp') > -1) {
$(mutation.addedNodes).each(function(i, obj) {
if(obj.tagName == 'DIV' && obj.classList.contains('gc-comment')) {
$(obj).children('.comments-container').children('div').children('.text').addClass('whatsapp-contain').children('.main').addClass('whatsapp-main').children('.text-content').addClass('whatsapp-mess').parents('.main').parents('.text').children('.comment-time').children('span.value').html('только что ');
start_getloo ();
}
});
//newClsMsg = mutationsList[0].target.className.split(' ')[2];
$('.'+mutationsList[0].target.className).css('display','none');
}
}
});
$('#someid').addClass("done");
}, 500);
} else {
send_upload_file = [];
$('.btn-send').css('background-color', '#337ab7').css('border', '#2e6da4').removeClass('gl-false').children('.text').text('Отправить');
}
}
}
};
$('body').append('');
const observer = new MutationObserver(callback);
function start_getloo () {
if(obs_start) {
observer.disconnect();
obs_start = false;
}
if(!obs_start) {
if($('div').hasClass('comments')) {
setTimeout(function() {
whatsapp_styles();
whatsapp_mass();
obs_start = true;
obs_first_start = false;
observer.observe($('.comments')[0], config);
$('.uploadifive-queue').each(function(i, obj) {
observer.observe(obj, config);
});
},500);
} else {
setTimeout(function() { start_getloo(); },500);
}
}
}
$(document).on('click', function(event) {
if ($(event.target).closest('div.emoji-menu-wa').length !== 1 && $(event.target).closest('.wa-reaction-incoming-ico').length !== 1) {
if($('div.emoji-menu-wa').attr('is_display') == 1) {
$('div.emoji-menu-wa').attr( "is_display" , 0);
$('div.emoji-menu-wa').fadeOut(200);
}
}
});
function sent_wa_reaction(emj,doi) {
$('div.emoji-menu-wa').attr( "is_display" , 0);
$('div.emoji-menu-wa').fadeOut(200);
$("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').children('div.wa-reaction-incoming').slideUp(500);
$.post('https://getloo.ru/pixel/whatsapp/post/'+ gl_id+'/', {gc_id: window.accountId, emj: emj, doi: doi}, function(emj_json) {
var emj_arr = jQuery.parseJSON(JSON.stringify(emj_json)); if(emj_arr['success']) {
var doi = emj_arr['doi'];
if($("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').children('span.wa-reaction').length == 0) {
setTimeout(function() {
$("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').append('
'+emj+'');
$("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').children('span.wa-reaction-incoming-ico').slideDown(500); },500);
} else {
$("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').children('span.wa-reaction').slideUp(500);
setTimeout(function() { $("div.whatsapp-main[data-object-id='"+doi+"']").parent('div.whatsapp-contain').children('span.wa-reaction').text(emj).slideDown(500); },500);
}
} else { alert(emj_arr['error']);
}
});
}
$(document).on('click','span.wa-reaction-smile', function() {
sent_wa_reaction($(this).text(),$('div.emoji-menu-wa').attr( "data-object-id"));
});
$(document).on('click', ".wa-reaction-incoming-ico", function() {
start_getloo ();
var top = $(this).offset().top;
var left = $(this).offset().left;
$('div.emoji-menu-wa').css( "left" , left);
$('div.emoji-menu-wa').css( "top" , top);
$('div.emoji-menu-wa').attr( "is_display" , 1);
$('div.emoji-menu-wa').attr( "data-object-id" , $(this).parents('div.comments-container').first().children('div.comment').attr('data-object-id'));
$('div.emoji-menu-wa').fadeIn(200);
$(".comments-container").on('scroll', function(){
$('div.emoji-menu-wa').attr( "is_display" , 0);
$('div.emoji-menu-wa').fadeOut(200);
} );
});
function whatsapp_styles() {
if($('div').hasClass('comments') && !wa_styles) {
wa_styles = true;
$('.comment-transports:contains("whatsapp")').addClass('whatsapp-title').parent('span');
$('.whatsapp-title').parent('span').addClass('whatsapp-status').parent('div').parent('div').addClass('whatsapp-contain').children('.main').addClass('whatsapp-main').children('.text-content').addClass('whatsapp-mess',500);
$('.comment-transports:contains("whatsapp")').addClass('whatsapp-title');
$('div.comment[data-user-id="'+userid+'"]').each(function() {
if($(this).children('div.whatsapp-contain').children('div.wa-reaction-incoming').length == 0) {
$(this).children('div.whatsapp-contain').append('
');
}
});
if(!send_gl_post) { status_msg(); }
wa_styles = false;
} else {
setTimeout(function() { whatsapp_styles(); },200);
}
}
(function($) {
$.fn.getAttributes = function () {
var elem = this,
attr = {};
if(elem && elem.length) $.each(elem.get(0).attributes, function(v,n) {
n = n.nodeName||n.name;
v = elem.attr(n); // relay on $.fn.attr, it makes some filtering and checks
if(v != undefined && v !== false) attr[n] = v
})
return attr
}
})(jQuery);
function whatsapp_mass () {
if($('div').hasClass('comments') && !wa_mass) {
wa_mass = true;
userid = JSON.parse($('[name="GetCourseComment[settings]"]').html()).values.object_attributes.object_id;
if (typeof userid == "undefined") userid = JSON.parse($('[name="GetCourseComment[settings]"]').html()).values.own_user_id;
if (typeof userid != "undefined") {
$.get('/user/control/user/update/id/'+userid,function (responseText){
window.phone = (responseText+'User_phone value=\" \"').split('User_phone')[1].split('value=\"')[1].split('\"')[0];
if (window.phone == "") {
return false;
}
phone = window.phone;
email = $('div.user-info > div.user-email').text();
$('.whatsapp-main').each(function(i, obj) {
id_arr[i] = $(obj).getAttributes()['data-object-id'];
mess_arr[i] = $(obj).children('.edit-comment-active-element').children('div').children('.new-comment-textarea').val();
man_arr[i] = $(obj).parent('.whatsapp-contain').parent('div').getAttributes()['data-user-id'];
if($(obj).find('div.files.active').find('a').length > 0) {
if($(obj).find('div.files.active').find('a').children('img').length > 0) {
file_arr[i] = $(obj).find('div.files.active').find('a').children('img').attr('data-download-link');
} else {
file_arr[i] = $(obj).find('div.files.active').find('a').attr('href');
}
} else {
file_arr[i] = false;
}
});
});
wa_mass = false;
}
} else {
setTimeout(function() { whatsapp_mass(); },200);
}
}
$(document).click(function (e) {
if ($(e.target).closest(".modal-content").length || $('div').hasClass('talks-widget-window')) {
return;
}
// клик снаружи элемента
if(obs_start) { /* observer.disconnect(); obs_start = false; */ }
});
$(document).on('click', "div.close-btn, span.btn-close", function() {
if(obs_start) { observer.disconnect();
obs_start = false; }
});
$(document).on('click', "button.gl-false", function() {
return false;
});
$(document).on('click', "ul.resp-list, div.conversations-list, button.btn.btn-sm.btn-default, button.pull-right.btn.btn-sm.btn-default", function() {
start_getloo ();
});
function status_wa_view(stat_arr) {
$.each(stat_arr['status'], function (key, val) {
$("div.whatsapp-main[data-object-id='"+key+"']").children('.whatsapp-mess').removeClass('wa-read').removeClass('wa-delivered').removeClass('wa-fail').removeClass('wa-pending').removeClass('wa-send').addClass('wa-'+val);
});
$.each(stat_arr['comment'], function (key, val) {
$("div.whatsapp-main[data-object-id='"+key+"']").children('.whatsapp-mess').prop('title', val);
});
if(stat_arr['reaction']) {
$.each(stat_arr['reaction'], function (key, val) {
if(!$('span').hasClass('wa-reaction-'+key)) {
if($("div.whatsapp-main[data-object-id='"+key+"']").parent().children('div.wa-reaction-incoming').length > 0) {
$("div.whatsapp-main[data-object-id='"+key+"']").parent().children('div.wa-reaction-incoming').slideUp(500);
}
if(stat_arr['incoming'][key] == 1) {
$("div.whatsapp-main[data-object-id='"+key+"']").parent().append('
'+val+'');
} else {
$("div.whatsapp-main[data-object-id='"+key+"']").parent().append('
'+val+'');
}
}
$('.wa-reaction').slideDown(500);
});
}
}
function counter_doubles(count,phone,check = false, dubl_arr = false) {
if(count > 0) {
$( ".gl-dbl" ).remove();
$('.user-phone').children('a').append('
'+count+'');
}
if(check) {
$.post('https://getloo.ru/pixel/whatsapp/post/'+ gl_id+'/', {gc_id: window.accountId, cwa: phone, doubles:dubl_arr}, function(){
return true;
});
}
}
function check_doubles(phone) {
count_dub = 0;
var clear_phone = phone.replace(/[^0-9\.]/g, '').substring(1);
var new_link_phone = $('.user-phone').children('a').attr('href').replace(phone,clear_phone);
$('.user-phone').children('a').attr('href',new_link_phone);
$.get('/pl/user/user/search?search=1', {'uc[phone]': clear_phone}
).done(function(data) {
if(data) {
count_dub = $(data).find('.kv-grid-table').children('tbody').children('tr.gc-user-link').length;
var dubl_arr = [];
$(data).find('.kv-grid-table').children('tbody').children('tr.gc-user-link').each(function(id) {
var user_id = $(this).attr( "data-user-id");
var username = $(this).find("a.user-profile-link").children('span.text').text();
var number = $(this).children('td').last().text();
dubl_arr[id] = [user_id,username,number];
});
if(count_dub > 1) {
counter_doubles(count_dub-1,phone,true,dubl_arr);
} else {
counter_doubles(0,phone,true);
}
} else {
counter_doubles(0,phone,true);
} });
}
function open_gl_wa() {
$('.user-info').children('button').trigger('click');
setTimeout(
function()
{
if($('ul.resp-list').children('li')) { $('ul.resp-list').children('li:first').trigger('click'); }
setTimeout(
function()
{
$('input[name="message_type[]"]').each(function(i, obj) {
if($(obj).parent('label').text().indexOf('whatsapp') > -1) {
$(obj).prop('checked', true);
}
});
setTimeout(
function()
{
$('textarea.new-comment-textarea-level-1').focus();
}, 500);
}, 500);
}, 500);
}
send_upload_file = []; wa_mass = false; wa_styles = false; userid = false; phone = false; file_arr = []; id_arr = []; mess_arr = []; man_arr = []; avatar = false; send_gl_post = false; send_wa_post = false; cycle_start = 0; obs_start = false; gl_catg = location.pathname.split('/').slice(0,4).join('/'); gl_last_catg = location.pathname.split('/').slice(4,6).join('/'); function status_msg() { if(phone && userid && obs_start && id_arr && mess_arr && man_arr) { send_gl_post = true; $.post('https://getloo.ru/pixel/whatsapp/post/'+ gl_id+'/', {gc_id: window.accountId, phone: window.phone, userid: userid, email: email, id_arr: id_arr, man_arr: man_arr, mess_arr: mess_arr, file_arr: file_arr}, function(stat_json) { id_arr = []; mess_arr = []; man_arr = []; file_arr = []; if(stat_json) { send_gl_post = false; var stat_arr = jQuery.parseJSON(JSON.stringify(stat_json)); if(stat_arr['status']) { status_wa_view(stat_arr); } } else { send_gl_post = false; } }); } else { setTimeout(function() { status_msg(); },5000); } } function check_whatsapp(phone) { if(phone && !$('span').hasClass('gl_wa_but')) { $('.gl-wa-list').remove(); $("ul.block-items-menu").append('
'); $.post('https://getloo.ru/pixel/whatsapp/post/'+ gl_id+'/', {gc_id: window.accountId, cwa: phone}, function(check_wa){ $('.btn').children('.fa-comments').css('display', 'none'); $('.gl_wa_but').remove(); $('.user-info').children('button').append('
'); $('.user-info').children('button').before('
'); $('.user-info').children('button').after('
'); var check_arr = jQuery.parseJSON(check_wa); if(check_arr['result'] == 1) { $('.gl_wa_but_svg').css('color', '#25d366'); $('.gl_wa_but').fadeIn(); send_gl_post = false; } else if(check_arr['result'] == 3) { $('.gl_wa_but_svg').css('color', '#e45555'); $('.gl_wa_but').fadeIn(); send_gl_post = false; } else { $('.gl_wa_but').fadeIn(); } if(check_arr['avatar']) { $('.user-avatar').children('img').css('height',83).css('width',83).attr('src',check_arr['avatar']); } if(check_arr['check_dub']) { check_doubles(phone); } else { if(check_arr['doubles'] > 0) { counter_doubles(check_arr['doubles'], phone); } } } ); } } function check_user_info() { if($('div').hasClass('user-phone')) { var phone = $('.user-phone').children('span.user-call-to-phone').text(); if(!phone) { phone = $('.user-phone').children('a').attr('href').substring($('.user-phone').children('a').last().attr('href').indexOf('[phone]=')+8); } check_whatsapp(phone); start_getloo (); if(window.location.hash == '#activeBlockItem=messages') { whatsapp_list(); } } else { setTimeout(function() { check_user_info(); },200); } } if(gl_catg == '/user/control/user' || gl_catg == '/notifications/control/messages' || gl_catg == '/sales/control/deal' || ((gl_catg == '/pl/tasks/task' || gl_catg == '/pl/tasks/resp') && gl_last_catg != 'kanban') || gl_last_catg == 'task-view') { setTimeout(function() { check_user_info(); },200); } $(document).on('click', $('div.user-block-body'), function(event) { if($('div.user-block-body').find('button.btn-success, button.btn-do-add-task, button.btn-save').length > 0) { setTimeout(function() { check_user_info(); },200); } }); $('.gc-user-link, .resp-list, .kanban-card__title').on('click', function(event) { setTimeout(function() { check_user_info(); },200); });
$(document).on('click', "ul.block-items-menu, ul.block-items-menu > div.pull-right", function() {
if($('.gl-wa-list').hasClass('active')) { $('div.gc-user-block').children('.user-block-body').children('.content').children('div').empty(); }
});
$(document).on('click', ".user-add-entity-block .btn-success, .user-add-entity-block-bg .btn-do-add-task", function() {
setTimeout(function() { check_user_info(); },300);
});
function whatsapp_list() {
var phone = $('.user-phone').children('span.user-call-to-phone').text();
if(!phone) { phone = $('.user-phone').children('a').attr('href').substring($('.user-phone').children('a').last().attr('href').indexOf('[phone]=')+8); }
if(phone) {
$('ul.block-items-menu').children('.active').removeClass('active');
$('ul.block-items-menu > div.pull-right').children('.active').removeClass('active');
window.location.hash = '#activeBlockItem=messages';
$('div.gc-user-block').children('.user-block-body').children('.content').children('div').empty();
$('div.gc-user-block').children('.user-block-body').children('.content').append('
Загрузка...
');
$('li.gl-wa-list').addClass('active');
//записать токен портала и отдавать его со всеми запросами gcUniqId
$.post('https://getloo.ru/pixel/whatsapp/post/'+ gl_id+'/', {gc_id: window.accountId, list_msg: phone}, function(list_json) {
$('.gl-load-msg').remove();
if(list_json) {
$('div.gc-user-block').children('.user-block-body').children('.content').append('
');
$.each(list_json['list'], function (key, val) {
if(list_json['avatar'] && val['type'] == 'Входящее') { var ava_gl_msg_user = list_json['avatar']; } else { var ava_gl_msg_user = '/public/img/default_profile_50.png'; }
var class_status_msg;
if(val['status']) {
var class_status_msg = ' wa-'+val['status'];
if(val['status'] == 'fail') {
var bg_comm = '#ffe7e7';
} else {
var bg_comm = '--whatsapp_mess_bg';
}
} else {
var bg_comm = '--whatsapp_mess_bg';
}
if(val['comment']) {
var title = val['comment'];
} else {
var title = '';
}
$('div.gc-user-block').children('.user-block-body').children('.content').children('div').children('.list-gl-msg').append('
');
if(val['text'].length > 200) {
$('.item-msg-'+key).children('div').children('.messages-gl-block').append('
');
}
});
$('.msg-panel-gl').on('click', function(event) {
if($(this).children('.body').children('div').children('div').children('.messages-gl-block').hasClass('opened')) { $(this).children('.body').children('div').children('div').children('.messages-gl-block').removeClass('opened'); } else { $(this).children('.body').children('div').children('div').children('.messages-gl-block').addClass('opened'); } });
} else {
$('.info-gl-not-mess').remove();
$('div.gc-user-block').children('.user-block-body').children('.content').append('
');
}
});
}
}
$(document).on('click', "li.gl-wa-list", function() { whatsapp_list(); });
$(window).on('hashchange', function() {
if(window.location.hash != '#activeBlockItem=messages' && $('li.gl-wa-list').hasClass('active')) {
$('li.gl-wa-list').removeClass('active');
}
});
function cycle_getloo() {
setTimeout(function() {
if(obs_start) { start_getloo (); cycle_getloo (); }
else { cycle_getloo (); }
},10000);
}
cycle_getloo();
$('body').append('
+')
+')
');
if(window.userInfo.isAdmin) { $('body').append('
+')
+')
'); }
}
var MD5=function(d){d=unescape(encodeURIComponent(d));result=M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r
>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_}