Birdicode / SCD

// ==UserScript==
// @name        				SCD
// @namespace     		com.birdicode.SCDGreaseMonkey
// @author         			Birdicode
// @copyright     			2015, Birdicode (http://black-burn.ch)
// @license					Mit License, http://birdi.mit-license.org/2012/license.html
// @description			Will add a icon to easily download any song from soundcloud with SCD. Please note, you will need to have installed SCD on your mac from http://black-burn.ch/scd for this to work!
// @homepageURL		http://black-burn.ch
// @supportURL			mailto:birdicode@gmail.com
// @icon					http://black-burn.ch/applications/scd/extensions/greasemonkey/icon.png
// @include				https://soundcloud.com/*
// @include				https://w.soundcloud.com/*
// @require					https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// @version				1.0.1
// @grant					none
// @updateURL			https://openuserjs.org/install/Birdicode/SCD.user.js
// @downloadURL			https://openuserjs.org/install/Birdicode/SCD.user.js
// ==/UserScript==
function log(A){console.log(A)}function hashHandler(){this.oldHash=window.location.href,this.Check;var A=function(){this.oldHash!=window.location.href&&(updatePage(),this.oldHash=window.location.href)};this.Check=setInterval(function(){A()},1e3)}function updatePage(){window.location.href.match(/w.soundcloud.com\/player\//)?(currentPage=pages.widget,checkOnPlayer()):window.location.href.match(/https:\/\/soundcloud.com\//)&&updateSoundcloud()}function updateSoundcloud(){var A=window.location.pathname;hasStreamDetector&&currentPage!=pages.stream&&currentPage!=pages.uploads&&currentPage!=pages.likes&&currentPage!=pages.group&&currentPage!=pages.sets&&(hasStreamDetector=!1),"/stream"==A?(oldStreamSize=-1,currentPage=pages.stream,hasStreamDetector||(hasStreamDetector=!0,detectStream())):A.match(/^\/(([^\/]+)|(.+\/tracks))\/?$/)?(currentPage=pages.uploads,oldStreamSize=-1,hasStreamDetector||(hasStreamDetector=!0,detectStream())):A.match(/^\/.+\/likes\/?$/)?(currentPage=pages.likes,oldStreamSize=-1,hasStreamDetector||(hasStreamDetector=!0,detectStream())):A.match(/^\/groups\/.+\/?$/)?(currentPage=pages.group,oldStreamSize=-1,hasStreamDetector||(hasStreamDetector=!0,detectStream())):A.match(/^\/.+\/sets\/.+\/?$/)?(currentPage=pages.aSet,aSet()):A.match(/^\/.+\/sets\/?$/)?(currentPage=pages.sets,sets()):A.match(/^\/.+\/.+\/?$/)&&(currentPage=pages.sound,soundDetector())}function detectStream(){(currentPage==pages.stream||currentPage==pages.uploads||currentPage==pages.likes||currentPage==pages.group||currentPage==pages.sets)&&($(".lazyLoadingList__list li, .soundList li").length!=oldStreamSize&&(oldStreamSize=$(".lazyLoadingList__list li, .soundList li").length,stream()),setTimeout(detectStream,1e3))}function updateWidget(){if(1==$("#widget").length){removeAllButtons();var A=$(".title a:last-child").attr("href"),t="background-image: url("+logoWhite+"); background-repeat: no-repeat; background-size: 15px 15px; background-position: center center;";$(".soundHeader__buttons").append("<button style='"+t+"' id='scddl' class='scdbtn sc-button sc-button-small sc-button-icon sc-button-visual' tabindex='0' href='"+scdURL(A)+"'>SCD</button>"),$("#scddl").click(function(){var A=$("#scddl").attr("href");window.location=A}),setTimeout(checkForTrackChangeInWidget,100)}else setTimeout(updateWidget,100)}function checkForTrackChangeInWidget(){$(".sc-ministats-sounds").hasClass("scdChecked")||($(".sc-ministats-sounds").each(function(){$(this).removeClass("scdChecked")}),isFirstCheckOfWidgetItems||$(".sc-ministats-sounds").addClass("scdChecked"),isFirstCheckOfWidgetItems=!1,$(".sc-ministats-sounds").closest(".soundsList__item").addClass("currentSCDSoundItem"),setTimeout(updateWidgetItem,100)),currentPage==pages.widget&&setTimeout(checkForTrackChangeInWidget,100)}function updateWidgetItem(){$(".scdSoundItemButton").each(function(){$(this).find(".scdChecked")[0]&&$(this).detach()});var A=$(".currentSCDSoundItem").find(".soundStats__link").attr("href"),t="background-image: url("+logoGray+"); background-repeat: no-repeat; background-size: 12px 12px;";$(".currentSCDSoundItem").find(".soundStats").append('<li class="soundStats__item sc-ministats-item scdSoundItemButton"> <a style="'+t+'" class="scddlitem sc-ministats sc-ministats-small" link="'+scdURL(A)+'" title="Download with SCD"> SCD</a></li>'),$(".scddlitem").click(function(){var A=$(this).attr("link");window.location=A}),$(".currentSCDSoundItem").removeClass("currentSCDSoundItem")}function stream(){removeAllButtons(),$(".soundList__item").each(function(A){var t=$(this).find(".soundTitle__title").attr("href");$(this).find(".soundActions .sc-button-group:first-child").append(button(t,"small"))})}function sound(){removeAllButtons();var A=window.location.href;$(".soundActions .sc-button-group:first-child").append(button(A,"medium"))}function soundDetector(){currentPage==pages.sound&&($(".soundActions .sc-button-group")[0]?sound():setTimeout(soundDetector,1e3))}function sets(){$(".soundList__item").each(function(A){var t=$(this).find(".soundTitle__title").attr("href");$(this).find(".soundActions .sc-button-group:first-child").append(button(t,"small"))})}function aSet(){var A=window.location.href;$(".listenEngagement__actions .soundActions .sc-button-group:first-child").append(button(A,"medium")),removeAllButtons(),$(".listenDetails .trackList__item").each(function(A){var t=$(this).find(".trackItem__trackTitle").attr("href");$(this).find(".soundActions .sc-button-group:first-child").append(button(t,"small"))});var t=new MutationObserver(function(A){updatePage()}),g=function(){$(".trackList__list")[0]?t.observe(document.querySelector(".trackList__list"),{childList:!0}):setTimeout(1e3,g)};g()}function scdURL(A){return A?A.match(/soundcloud.com\//)?"scd://download?link="+A:"scd://download?link=https://soundcloud.com"+A:void 0}function button(A,t){var g,e=scdURL(A);return g="small"==t?17:20,"<a href='"+e+"' class='sc-button sc-button sc-button-"+t+" sc-button-responsive scdbtn' tabindex='0' title='Download with SCD'><img src='"+logoBlack+"'  style='width: "+g+"px;' /></a>"}function removeAllButtons(){$(".scdbtn").each(function(){$(this).detach()})}function checkOnPlayer(){var A=document.getElementById("widget"),t=getCount(A,!0);t>2?updateWidget():setTimeout(checkOnPlayer,1e3)}function getCount(A,t){for(var g=0,e=A.childNodes.length,n=0;e>n;n++)3!=A.childNodes[n].nodeType&&(t&&(g+=getCount(A.childNodes[n],!0)),g++);return g}var logoBlack="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABeVJREFUeNrMmVlsFWUUx3/TXpFFFFugBQq2l/YWNUSF0IpbFI2CMfrgAz4Yl8QXE22QmJj4ZoyJib4objExPLiEaEJiTNUHkYSkWqQRCkUrLW3pZhfaXlqKBcXxwf9njsPdV04yme/emTtz/t/5n/V6xBaPzMWngOL7/74ulIdne8UAGaKw4uULVC6B+FLUT2IZPwCsHrgauAAMAqcD1/1sdy6dI9XnOakAXgeGpKg75oBm4O4EulziI85PsgUCcD2wF1gGPAl0A6vjUOo57b6f5PhezyPTzczECh/q5a8BX2u9HdgNvGvu25UCAHtMA2tS1CstIPEiU7te/ALQpvVjRiGAp9IE4Y7xVHQrycKxXwa+lfndrv0ORIAe4Cp9953OuzN811LgrWQ3laShuA+8BPQCYWAn8ADwiKJfFFgELAa6gBr99gegKcuI2ARckyiCpWuRV4BqYCswC0wBM9r9Tl1DdHDri8DjOQjv96djES+OJRB9rgT+Bkb1+TiwRNeHgJVajwGrtJ4yoLKRexMl0pIENHIJrlFKL9D1EyYsDgO1Wg8A5Vr3AmsVdSbM/dnI6kx8ZLN+uAhoBb5QEnNKOv7PGCDdwAqtTwNVwFGgLEeVw6l0gPjAcjnoN8A6fT8JNGg9AVxnKBQ21FovQNeaKFaXIyAbgU3x6BXLIjcZ5TcbCtUZha11IopSIdHvpGiFqFWdIyANwE/AHr3LTwZko87HRQ+A8yruHIXCwBmF3PnAMaPwqPndqAkAuZLt2qz/heNYQBp1HtFuO87XA3+ZsqHdKBk19w4YX+kzNMylrAEOqmj04wFpMBSqN45WCfxmlBwxjn7OrPtErUnlmmXkR+qBHfEsslKHL7+ol/J/6Hq/iVhRs9vjxmKzyiG/5IFWQXnD87wFvu/7QSBOsS6BLAF+NcqPmkQ3bL7vl9InZDlnsbV5BhICbo1lkWqT9FzoPWMo1q8izlEoop2/YChYYzL66gK0z7fHAnJbjJ2fM47cpTA8qUg2T6CrTd5wFhk063xKbSwgLdrpz4ANJgrVKYtPC2CHUX7K5JhTJsf05TCHJJLzFohrUPaIGi3AXYZOZcr2S83Oh03Sqw0kyDE9r7wAQDoS1VpuunJIlggWiJb/Q7KI68MrVdIXwj/iAnGWmZWzbwFu0bU/TQDoU1K6qN2vULatMfVYTYGAdCWyiKf8cRbYpu/OAjcYX4ioNCkz4CpNsFhRABCtvu8PptIhXmGKyAHlhQHVVyHRqlvXm03v3m58KJ+yM9VJY4VC7Ih2ORTox0uBr0S/IwoC48CXwNt5BvEx8KMF4sUYY7rPjiqHNdYM9uPHdD6i814dAPcBT2h4F9ameDkCsU/Pjjn7LZXzWlAbDOcjZu2cvjXQ69u57wEd7j2rRM2b9dz1ioIL0wTxDvB8vNlwraLPLlHpPY11XtWNH4hCvkYzHVrXJhmcJZNygXpUc7LP1QfNBWYHUeATV1fZd7rZr7PInSq3K4FngGeVMctM3thiisF1psmKNWEnwUTe3juh4+fAPcvVnC1UtDxp8lnM5zogLlf0mPU8md+F27Cy/BLRcB/wIPAi8JA6tgr5i5dkMk8SgGM6kv32kg5xm6l0Xa44KuWHVCSWmjbXVchNwD2yYIuCQgWZ/aeR1d8XJcbEvuL/Jpkxql1uD/QYVaaxKjfPqTG5p+DigGxVbTQmRTqM8uPGJ/pN69qtPmVAdZjzpeFiAfG0u0NmgjJt2tRzhk696iLnVI8tVinjMnqnRqpFs4jjX5sixKfAjWaCEpGCbrLSaSw2YFrkgxRJQgFnazO54SOdXVV7SCNUT9ZrNP71vij3ZpLIlEvx4wGxUiVfmRXtbJuLBhJRk917lNQKBSKhRWzKn5AFmk3vPmOs0K8qYL86R/c7jyJKsni9X0ruAJ5WrVWbQQ7I9YEmjf/9PZ0s+RwWkDv0eX4RlU8IJJGVkKM/nGEmLhgQLwMaXg7iWyCpdIgJQ97lBC6U63heLIChQpi/ECD/GQCWCL7o/ftIkgAAAABJRU5ErkJggg==",logoWhite="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAC4FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMDQtMTJUMjE6MDI6NTQrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE1LTA0LTEyVDIxOjAxOjI4KzAyOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTUtMDQtMTJUMjE6MDI6NTQrMDI6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDUzYgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0wNC0xMlQyMTowMToyOCswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowMzgwMTE3NDA3MjA2ODExODIyQUU2OUE5QzVEQjM5Qzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBpbWFnZS9wbmcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE1LTA0LTEyVDIxOjAyOjU0KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjA0ODAxMTc0MDcyMDY4MTE4MjJBRTY5QTlDNURCMzlDPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAg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",logoGray="data:image/png;base64,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",hasStreamDetector=!1,oldStreamSize=-1,currentPage,isFirstCheckOfWidgetItems=!0;MutationObserver=window.MutationObserver||window.WebKitMutationObserver;var pages={};pages={stream:1,uploads:2,sets:3,aSet:4,sound:5,widget:6,group:7,likes:8},$(document).ready(function(){updatePage();new hashHandler});