diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..699719c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +ui/** linguist-vendored \ No newline at end of file diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b56b45e..0000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "gossa-ui"] - path = gossa-ui - url = https://github.com/pldubouilh/gossa-ui - branch = master diff --git a/Makefile b/Makefile index f67cc1d..00f3b1a 100755 --- a/Makefile +++ b/Makefile @@ -44,16 +44,16 @@ test: # go tool cover -func=all.out | grep main | grep '9.\..\%' watch: - ls gossa.go gossa_test.go gossa-ui/* | entr -rc make build run + ls gossa.go gossa_test.go ui/* | entr -rc make build run watch-extra: - ls gossa.go gossa_test.go gossa-ui/* | entr -rc make build run-extra + ls gossa.go gossa_test.go ui/* | entr -rc make build run-extra watch-ro: - ls gossa.go gossa_test.go gossa-ui/* | entr -rc make build run-ro + ls gossa.go gossa_test.go ui/* | entr -rc make build run-ro watch-test: - ls gossa.go gossa_test.go gossa-ui/* | entr -rc make test + ls gossa.go gossa_test.go ui/* | entr -rc make test build-all: build ${NOCGO} GOOS=linux GOARCH=amd64 go build ${FLAGS} -o builds/gossa-linux-x64 diff --git a/gossa-ui b/gossa-ui deleted file mode 160000 index 5ec0a80..0000000 --- a/gossa-ui +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5ec0a804c908654225745ffc8e387859d337c846 diff --git a/gossa_embed.go b/gossa_embed.go index 7171c70..14df46d 100755 --- a/gossa_embed.go +++ b/gossa_embed.go @@ -8,16 +8,16 @@ import ( "strings" ) -//go:embed gossa-ui/script.js +//go:embed ui/script.js var scriptJs string -//go:embed gossa-ui/style.css +//go:embed ui/style.css var styleCss string -//go:embed gossa-ui/favicon.svg +//go:embed ui/favicon.svg var faviconSvg []byte -//go:embed gossa-ui/ui.tmpl +//go:embed ui/ui.tmpl var templateStr string // fill in template diff --git a/readme.md b/readme.md index 51f811e..a6f5893 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ gossa a fast and simple webserver for your files, that's dependency-free and with under 250 lines of code, easy to review. -a [simple UI](https://github.com/pldubouilh/gossa-ui) comes as default, featuring : +a simple UI comes as default, featuring : * 🔍 files/directories browser & handler * 📩 drag-and-drop uploader diff --git a/ui/favicon.svg b/ui/favicon.svg new file mode 100644 index 0000000..b9ae924 --- /dev/null +++ b/ui/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/readme.md b/ui/readme.md new file mode 100644 index 0000000..1ee56fb --- /dev/null +++ b/ui/readme.md @@ -0,0 +1,4 @@ +gossa-ui +======== + +a ~~ugly~~ simple, dependency-free, plain js/css/html front-end for [gossa](https://github.com/pldubouilh/gossa) \ No newline at end of file diff --git a/ui/script.js b/ui/script.js new file mode 100755 index 0000000..845288e --- /dev/null +++ b/ui/script.js @@ -0,0 +1,812 @@ +/* eslint-env browser */ +/* eslint-disable no-multi-str */ + +function cancelDefault (e) { + e.preventDefault() + e.stopPropagation() +} + +const warningMsg = () => 'Leaving will interrupt transfer?\n' +const rmMsg = () => !confirm('Remove file?\n') +const ensureMove = () => !confirm('move items?') +const isRo = () => window.ro + +const upBarName = document.getElementById('upBarName') +const upBarPc = document.getElementById('upBarPc') +const upGrid = document.getElementById('drop-grid') +const pics = document.getElementById('pics') +const picsHolder = document.getElementById('picsHolder') +const video = document.getElementById('video') +const videoHolder = document.getElementById('videoHolder') +const manualUpload = document.getElementById('clickupload') +const help = document.getElementById('help') +const okBadge = document.getElementById('ok') +const sadBadge = document.getElementById('sad') +const pageTitle = document.head.querySelector('title') +const pageH1 = document.body.querySelector('h1') +const editor = document.getElementById('text-editor') +const crossIcon = document.getElementById('quitAll') +const toast = document.getElementById('toast') +const table = document.getElementById('linkTable') +const transparentPixel = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=' + +// helpers +let allA +let imgsIndex +let allImgs +const decode = a => decodeURIComponent(a).replace(location.origin, '') +const getArrowSelected = () => document.querySelector('.arrow-selected') +const getASelected = () => !getArrowSelected() ? false : getArrowSelected().parentElement.parentElement.querySelectorAll('a')[0] +const prependPath = a => a.startsWith('/') ? a : decodeURI(location.pathname) + a +const prevent = e => e.preventDefault() +const flicker = w => w.classList.remove('runFade') || void w.offsetWidth || w.classList.add('runFade') + +// Manual upload +manualUpload.addEventListener('change', () => Array.from(manualUpload.files).forEach(f => isDupe(f.name) || postFile(f, '/' + f.name)), false) + +// Soft nav +async function browseTo (href, flickerDone, skipHistory) { + try { + const r = await fetch(href, { credentials: 'include' }) + const t = await r.text() + const parsed = new DOMParser().parseFromString(t, 'text/html') + + table.innerHTML = parsed.getElementById('linkTable').innerHTML + const title = parsed.head.querySelector('title').innerText + // check if is current path - if so skip following + if (pageTitle.innerText !== title) { + if (!skipHistory) { + history.pushState({}, '', encodeURI(window.extraPath + title)) + } + pageTitle.innerText = title + pageH1.innerText = '.' + title + setTitle() + } + + init() + if (flickerDone) flicker(okBadge) + } catch (error) { + flicker(sadBadge) + } +} + +window.onClickLink = e => { + const a = e ? e.target : getASelected() + + if (e) { + setCursorTo(e.target.innerText) + } + + // always force download if ctrl pressed (also covers zipping folders) + if (e && e.ctrlKey) { + dl(a) + return false + } + + // follow dirs + if (isFolder(a)) { + browseTo(a.href) + return false + // enable notepad if relevant + } else if (!window.ro && isTextFile(a.innerText) && !isEditorMode()) { + padOn(a) + return false + // toggle picture carousel + } else if (isPic(a.href) && !isPicMode()) { + picsOn(a.href) + return false + // toggle videos mode + } else if (isVideo(a.href) && !isVideoMode()) { + videoOn(a.href) + return false + } + + // else just force download + dl(a) + return false +} + +let softStatePushed +function pushSoftState (d) { + if (softStatePushed) { return } + softStatePushed = true + history.pushState({}, '', encodeURI(d)) +} + +const refresh = () => browseTo(location.href, true) + +const softPrev = () => history.replaceState({}, '', location.href.split('/').slice(0, -1).join('/') + '/') + +const isAtExtraPath = url => location.origin + window.extraPath + '/../' === url +const prevPage = (url, skipHistory) => window.quitAll() || isAtExtraPath(url) || browseTo(url, false, skipHistory) + +window.onpopstate = () => prevPage(location.href, true) + +// RPC +function upload (id, what, path, cbDone, cbErr, cbUpdate) { + const xhr = new XMLHttpRequest() + xhr.open('POST', location.origin + window.extraPath + '/post') + xhr.setRequestHeader('gossa-path', path) + xhr.upload.addEventListener('load', cbDone) + xhr.upload.addEventListener('progress', cbUpdate) + xhr.upload.addEventListener('error', cbErr) + xhr.upload.id = id + xhr.send(what) +} + +function rpc (call, args, cb) { + console.log('RPC', call, args) + const xhr = new XMLHttpRequest() + xhr.open('POST', location.origin + window.extraPath + '/rpc') + xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8') + xhr.send(JSON.stringify({ call, args })) + xhr.onload = cb + xhr.onerror = () => flicker(sadBadge) +} + +const mkdirCall = (path, cb) => rpc('mkdirp', [prependPath(path)], cb) +const rmCall = (path1, cb) => rpc('rm', [prependPath(path1)], cb) +const mvCall = (path1, path2, cb) => rpc('mv', [path1, path2], cb) + +// File upload +let totalDone = 0 +let totalUploads = 0 +let totalUploadsSize = 0 +let totalUploadedSize = [] + +const dupe = test => allA.find(a => a.innerHTML.replace('/', '') === test) +const isDupe = t => dupe(t) ? alert(t + ' already already exists') || true : false + +function shouldRefresh () { + totalDone += 1 + if (totalUploads === totalDone) { + window.onbeforeunload = null + console.log('done uploading ' + totalDone + ' files') + totalDone = 0 + totalUploads = 0 + totalUploadsSize = 0 + totalUploadedSize = [] + upBarPc.style.display = upBarName.style.display = 'none' + table.classList.remove('uploading-table') + setTimeout(refresh, 200) + } +} + +function updatePercent (ev) { + totalUploadedSize[ev.target.id] = ev.loaded + const ttlDone = totalUploadedSize.reduce((s, x) => s + x) + const pc = Math.floor(100 * ttlDone / totalUploadsSize) + '%' + upBarPc.innerText = pc + upBarPc.style.width = pc +} + +function postFile (file, path) { + if (window.ro) return + path = decodeURI(location.pathname).slice(0, -1) + path + window.onbeforeunload = warningMsg + + table.classList.add('uploading-table') + upBarPc.style.display = upBarName.style.display = 'block' + totalUploads += 1 + totalUploadsSize += file.size + upBarName.innerText = totalUploads > 1 ? totalUploads + ' files' : file.name + + const formData = new FormData() + formData.append(file.name, file) + upload(totalUploads, formData, encodeURIComponent(path), shouldRefresh, null, updatePercent) +} + +const parseDomFolder = f => f.createReader().readEntries(e => e.forEach(i => parseDomItem(i))) + +function parseDomItem (domFile, shoudCheckDupes) { + if (shoudCheckDupes && isDupe(domFile.name)) { + return + } + if (domFile.isFile) { + domFile.file(f => postFile(f, domFile.fullPath)) + } else { + // remove absolute path + const f = domFile.fullPath.startsWith('/') ? domFile.fullPath.slice(1) : domFile.fullPath + mkdirCall(f, () => parseDomFolder(domFile)) + } +} + +function pushEntry (entry) { + if (!entry.webkitGetAsEntry && !entry.getAsEntry) { + return alert('Unsupported browser ! Please update to chrome/firefox.') + } else { + entry = entry.webkitGetAsEntry() || entry.getAsEntry() + } + + parseDomItem(entry, true) +} + +window.titleClick = function (e) { + const p = Array.from(document.querySelector('h1').childNodes).map(k => k.innerText) + const i = p.findIndex(s => s === e.target.innerText) + const dst = p.slice(0, i + 1).join('').slice(1) + const target = location.origin + window.extraPath + encodeURI(dst) + browseTo(target, false) +} + +// Move files and folders +const isFolder = e => e && e.href && e.innerText.endsWith('/') + +const setBackgroundLinks = t => { t.classList.add('highlight') } + +const getLink = () => document.querySelector('.highlight') || {} + +const resetBackgroundLinks = () => { try { getLink().classList.remove('highlight') } catch(e) { /* */ } } // eslint-disable-line + +// Not the nicest - sometimes, upon hover, firefox reports nodeName === '#text', and chrome reports nodeName === 'A'... +const getClosestRow = t => t.nodeName === '#text' ? t.parentElement.parentElement : t.nodeName === 'A' ? t.parentElement : t + +let draggingSrc + +upGrid.ondragend = upGrid.ondragexit = upGrid.ondragleave = e => { + cancelDefault(e) + upGrid.style.display = 'none' +} + +// Handle hover +document.ondragenter = e => { + if (isEditorMode() || isPicMode() || window.ro) { return } + cancelDefault(e) + resetBackgroundLinks() + + // Display upload grid when uploading new elements + if (!draggingSrc) { + upGrid.style.display = 'flex' + e.dataTransfer.dropEffect = 'copy' + // Or highlight entry if drag and drop + } else if (draggingSrc) { + const t = getClosestRow(e.target) + isFolder(t.firstChild) && setBackgroundLinks(t) + } +} + +document.ondragstart = e => { draggingSrc = e.target.innerHTML } + +document.ondragend = e => resetBackgroundLinks() + +document.ondragover = e => { + cancelDefault(e) + return false +} + +// Handle drop +document.ondrop = e => { + if (window.ro) return + + cancelDefault(e) + upGrid.style.display = 'none' + let t = getLink().firstChild + + // move to a folder + if (draggingSrc && t) { + const dest = t.innerHTML + draggingSrc + ensureMove() || mvCall(prependPath(draggingSrc), prependPath(dest), refresh) + // ... or upload + } else if (e.dataTransfer.items.length) { + Array.from(e.dataTransfer.items).forEach(pushEntry) + } + + resetBackgroundLinks() + draggingSrc = null + return false +} + +// Notepad +const isEditorMode = () => editor.style.display === 'block' +const textTypes = ['.txt', '.rtf', '.md', '.markdown', '.log', '.yaml', '.yml'] +const isTextFile = src => src && textTypes.find(type => src.toLocaleLowerCase().includes(type)) +let fileEdited + +function saveText (quitting) { + const formData = new FormData() + formData.append(fileEdited, editor.value) + const path = encodeURIComponent(decodeURI(location.pathname) + fileEdited) + upload(0, formData, path, () => { + toast.style.display = 'none' + if (!quitting) return + clearInterval(window.padTimer) + window.onbeforeunload = null + resetView() + softPrev() + refresh() + }, () => { + toast.style.display = 'block' + if (!quitting) return + alert('cant save!\r\nleave window open to resume saving\r\nwhen connection back up') + }) +} + +function padOff () { + if (!isEditorMode()) { return } + saveText(true) + return true +} + +async function padOn (a) { + if (a) { + try { + fileEdited = a.innerHTML + const f = await fetch(a.href, { + credentials: 'include', + headers: new Headers({ 'pragma': 'no-cache', 'cache-control': 'no-cache' }) + }) + editor.value = await f.text() + } catch (error) { + return alert('cant read file') + } + } else { + fileEdited = prompt('new filename', '') + if (!fileEdited) { return } + fileEdited = isTextFile(fileEdited) ? fileEdited : fileEdited + '.txt' + if (isDupe(fileEdited)) { return } + editor.value = '' + } + + console.log('editing file', fileEdited) + setCursorTo(fileEdited) + editor.style.display = crossIcon.style.display = 'block' + table.style.display = 'none' + editor.focus() + window.onbeforeunload = warningMsg + window.padTimer = setInterval(saveText, 5000) + pushSoftState('?editor=' + fileEdited) +} + +window.displayPad = padOn + +// quit pictures or editor +function resetView () { + softStatePushed = false + table.style.display = 'table' + picsHolder.src = transparentPixel + videoHolder.src = '' + editor.style.display = pics.style.display = video.style.display = crossIcon.style.display = 'none' + scrollToArrow() +} + +window.quitAll = () => helpOff() || picsOff() || videosOff() || padOff() + +// Mkdir icon +window.mkdirBtn = function () { + const folder = prompt('new folder name', '') + if (folder && !isDupe(folder)) { + mkdirCall(folder, refresh) + } +} + +// Icon click handler +const getBtnA = e => e.target.closest('tr').querySelector('a') + +window.rm = e => { + if (window.ro) return true + clearTimeout(window.clickToken) + const target = e.key ? getASelected() : getBtnA(e) + if (target.innerText === '../') return + if (rmMsg()) return + + moveArrow() + rmCall(decode(target.href), refresh) +} + +window.rename = (e, commit) => { + if (window.ro) return true + clearTimeout(window.clickToken) + + if (!commit) { + window.clickToken = setTimeout(window.rename, 300, e, true) + return + } + + const target = e.key ? getASelected() : getBtnA(e) + if (target.innerText === '../') return + const chg = prompt('rename to', target.innerText) + if (chg && !isDupe(chg)) { + mvCall(prependPath(target.innerText), prependPath(chg), refresh) + } +} + +function aboveBelowRightin (el) { + const itemPos = el.getBoundingClientRect() + return itemPos.top < 0 ? -1 : itemPos.bottom > window.innerHeight ? 1 : 0 +} + +function scrollToArrow () { + const el = getASelected() + while (1) { + const pos = aboveBelowRightin(el) + if (pos === -1) { + scrollBy(0, -300) + } else if (pos === 1) { + scrollBy(0, 300) + } else { + break + } + } +} + +function clearArrowSelected () { + const arr = getArrowSelected() + if (!arr) { return } + arr.classList.remove('arrow-selected') +} + +window.setCursorTo = setCursorTo +function setCursorTo (where) { + if (!where) return false + clearArrowSelected() + let a = allA.find(el => el.innerText === where || el.innerText === where + '/') + + if (!a) { + if (allA[0].innerText === '../') { + a = allA[1] || allA[0] + } else { + a = allA[0] + } + } + + const icon = a.parentElement.parentElement.querySelectorAll('.arrow-icon')[0] + icon.classList.add('arrow-selected') + scrollToArrow() + storeArrow(where) + return true +} + +function moveArrow (down) { + const all = Array.from(document.querySelectorAll('.arrow-icon')) + let i = all.findIndex(el => el.classList.contains('arrow-selected')) + + clearArrowSelected() + + if (down) { + i = all[i + 1] ? i + 1 : 0 + } else { + i = all[i - 1] ? i - 1 : all.length - 1 + } + + all[i].classList.add('arrow-selected') + storeArrow(getASelected().innerText) + scrollToArrow() +} + +const storeArrow = src => localStorage.setItem('last-selected' + window.extraPath + location.pathname, src) + +const isTop = () => window.scrollY === 0 +const isBottom = () => (window.innerHeight + window.scrollY) >= document.body.offsetHeight +const hasScroll = () => table.clientHeight > window.innerHeight + +function movePage (up) { + const current = getASelected().href + + if (!hasScroll()) return + + if (!up) { + const i = allA.findIndex(e => aboveBelowRightin(e) === 1) + if (isTop() && current !== allA[i - 1].href) { + return setCursorTo(allA[i - 1].innerText) + } else if (isBottom() && current !== allA[allA.length - 1].href) { + return setCursorTo(allA[allA.length - 1].innerText) + } + + if (!allA[i - 1]) return + setCursorTo(allA[i - 1].innerText) + scrollBy(0, window.innerHeight - 100) + } else { + const i = allA.findIndex(e => aboveBelowRightin(e) === 0) + if (isTop() && current !== allA[0].href) { + return setCursorTo(allA[0].innerText) + } else if (isBottom() && current !== allA[i].href) { + return setCursorTo(allA[i].innerText) + } + + scrollBy(0, -(window.innerHeight - 100)) + setCursorTo(allA[i].innerText) + } +} + +// Pictures carousel +const picTypes = ['.jpg', '.jpeg', '.png', '.gif'] +const isPic = src => src && picTypes.find(type => src.toLocaleLowerCase().includes(type)) +const isPicMode = () => pics.style.display === 'flex' +window.picsNav = () => picsNav(true) + +function setImage () { + const src = allImgs[imgsIndex] + picsHolder.src = src + const name = src.split('/').pop() + setCursorTo(decodeURI(name)) + history.replaceState({}, '', encodeURI(name)) +} + +function picsOn (href) { + imgsIndex = allImgs.findIndex(el => el.includes(href)) + setImage() + table.style.display = 'none' + crossIcon.style.display = 'block' + pics.style.display = 'flex' + const name = href.split('/').pop() + pushSoftState(name) + return true +} + +function picsOff () { + if (!isPicMode()) { return } + resetView() + softPrev() + return true +} + +function picsNav (down) { + if (!isPicMode()) { return false } + + if (down) { + imgsIndex = allImgs[imgsIndex + 1] ? imgsIndex + 1 : 0 + } else { + imgsIndex = allImgs[imgsIndex - 1] ? imgsIndex - 1 : allImgs.length - 1 + } + + setImage() + return true +} + +let picsTouchStart = 0 + +picsHolder.addEventListener('touchstart', e => { + picsTouchStart = e.changedTouches[0].screenX +}, false) + +picsHolder.addEventListener('touchend', e => { + if (e.changedTouches[0].screenX < picsTouchStart) { + picsNav(true) + } else if (e.changedTouches[0].screenX > picsTouchStart) { + picsNav(false) + } +}, false) + +// Video player +const videosTypes = ['.mp4', '.webm', '.ogv', '.ogg', '.mp3', '.flac', '.wav'] +const isVideo = src => src && videosTypes.find(type => src.toLocaleLowerCase().includes(type)) +const isVideoMode = () => video.style.display === 'flex' +const videoFs = () => video.requestFullscreen() +const videoFf = future => { videoHolder.currentTime += future ? 10 : -10 } +const videoSound = up => { videoHolder.volume += up ? 0.1 : -0.1 } +videoHolder.oncanplay = () => videoHolder.play() + +async function videoOn (src) { + const name = src.split('/').pop() + table.style.display = 'none' + crossIcon.style.display = 'block' + video.style.display = 'flex' + videoHolder.pause() + + const time = localStorage.getItem('video-time' + src) + videoHolder.currentTime = parseInt(time) || 0 + + videoHolder.src = src + pushSoftState(decodeURI(name)) + return true +} + +function videosOff () { + if (!isVideoMode()) { return } + localStorage.setItem('video-time' + videoHolder.src, videoHolder.currentTime) + resetView() + softPrev() + return true +} + +// help +const isHelpMode = () => help.style.display === 'block' + +const helpToggle = () => isHelpMode() ? helpOff() : helpOn() + +function helpOn () { + help.style.display = 'block' + table.style.display = 'none' +} + +window.helpOff = helpOff +function helpOff () { + if (!isHelpMode()) return + help.style.display = 'none' + table.style.display = 'table' + return true +} + +// Paste handler +let cuts = [] +function onPaste () { + if (!cuts.length) { return refresh() } + const a = getASelected() + const root = cuts.pop() + const filename = root.split('/').pop() + const pwd = decodeURIComponent(location.pathname) + const dest = isFolder(a) ? pwd + a.innerHTML : pwd + mvCall(root, dest + filename, onPaste) +} + +function onCut () { + const a = getASelected() + a.classList.add('linkSelected') + cuts.push(prependPath(decode(a.href))) +} + +function dl (a) { + const orig = a.onclick + a.onclick = '' + + // download as zip if folder + if (isFolder(a)) { + const loc = a.href + a.href = window.extraPath + '/zip?zipPath=' + encodeURIComponent(prependPath(a.innerText)) + '&zipName=' + encodeURIComponent(a.innerText.slice(0, -1)) + a.click() + a.href = loc + } else { + a.download = a.innerText + a.click() + a.download = '' + } + + a.onclick = orig +} + +// Kb handler +let typedPath = '' +let typedToken = null + +function cpPath () { + var t = document.createElement('textarea') + t.value = getASelected().href + document.body.appendChild(t) + t.select() + document.execCommand('copy') + document.body.removeChild(t) +} + +document.body.addEventListener('keydown', e => { + if (e.code === 'Escape') { + return resetBackgroundLinks() || window.quitAll() + } + + if (isHelpMode()) { return prevent(e) || window.quitAll() } + + if (isEditorMode()) { return } + + if (isPicMode()) { + switch (e.code) { + case 'ArrowLeft': + case 'ArrowUp': + return prevent(e) || picsNav(false) + + case 'Enter': + case 'Tab': + case 'ArrowRight': + case 'ArrowDown': + return prevent(e) || picsNav(true) + } + return + } + + if (isVideoMode()) { + switch (e.code) { + case 'ArrowDown': + case 'ArrowUp': + return prevent(e) || videoSound(e.code === 'ArrowUp') + + case 'ArrowLeft': + case 'ArrowRight': + return prevent(e) || videoFf(e.code === 'ArrowRight') + + case 'KeyF': + return prevent(e) || videoFs() + } + return + } + + // Ctrl keys + if ((e.ctrlKey || e.metaKey) && !e.shiftKey) { + switch (e.code) { + case 'KeyC': + return prevent(e) || isRo() || cpPath() + + case 'KeyH': + return prevent(e) || isRo() || helpToggle() + + case 'KeyX': + return prevent(e) || isRo() || onCut() + + case 'KeyR': + return prevent(e) || refresh() + + case 'KeyV': + return prevent(e) || isRo() || ensureMove() || onPaste() + + case 'Backspace': + return prevent(e) || isRo() || window.rm(e) + + case 'KeyE': + return prevent(e) || isRo() || window.rename(e) + + case 'KeyM': + return prevent(e) || isRo() || window.mkdirBtn() + + case 'KeyU': + return prevent(e) || isRo() || manualUpload.click() + + case 'Enter': + case 'ArrowRight': + return prevent(e) || dl(getASelected()) + } + } + + switch (e.code) { + case 'Tab': + case 'ArrowDown': + return prevent(e) || moveArrow(true) + + case 'ArrowUp': + return prevent(e) || moveArrow(false) + + case 'Enter': + case 'ArrowRight': + return prevent(e) || window.onClickLink() + + case 'ArrowLeft': + return prevent(e) || prevPage(location.href + '../') + + case 'PageDown': + case 'PageUp': + return prevent(e) || movePage(e.key === 'PageUp') + + case 'Space': + return prevent(e) || movePage(e.shiftKey) + } + + // text search + if (e.code.includes('Key') && !e.ctrlKey && !e.metaKey) { + typedPath += e.code.replace('Key', '').toLocaleLowerCase() + clearTimeout(typedToken) + typedToken = setTimeout(() => { typedPath = '' }, 1000) + + const a = allA.find(el => el.innerText.toLocaleLowerCase().startsWith(typedPath)) || allA.find(el => el.innerText.toLocaleLowerCase().includes(typedPath)) + if (!a) { return } + setCursorTo(a.innerText) + } +}, false) + +function setTitle () { + pageH1.innerHTML = '' + pageH1.innerText.split('/').join('/') + '' +} + +function init () { + allA = Array.from(document.querySelectorAll('a.list-links')) + allImgs = allA.map(el => el.href).filter(isPic) + imgsIndex = softStatePushed = 0 + + const successRestore = setCursorTo(localStorage.getItem('last-selected' + window.extraPath + location.pathname)) + if (!successRestore) { + const entries = table.querySelectorAll('.arrow-icon') + entries.length === 1 ? entries[0].classList.add('arrow-selected') : entries[1].classList.add('arrow-selected') + } + + setTitle() + scrollToArrow() + console.log('browsed to ' + location.href) + + if (cuts.length) { + const match = allA.filter(a => cuts.find(c => c === decode(a.href))) + match.forEach(m => m.classList.add('linkSelected')) + } + + // restore editor if was queried + if (location.search.includes('?editor=')) { + const cleanURL = location.href.replace('?editor=', '') + const matchingA = allA.find(a => a.href === cleanURL) + padOn(matchingA) + } +} +init() diff --git a/ui/style.css b/ui/style.css new file mode 100644 index 0000000..9e2f9e7 --- /dev/null +++ b/ui/style.css @@ -0,0 +1,434 @@ +@media(max-width: 800px) { + html { + font-size: 1em !important; + user-select: none; + } + tr { + line-height: 2em !important; + } + .arrow { + display: none !important; + } + td.display-name { + padding-left: 1em !important; + } + #icHolder { + top: 20px !important; + } + body { + margin-left: 10px !important; + } + .ic { + display: inherit !important; + } + .file-size { + display: none !important; + } +} + +/* hello standards 👋🏻 */ +::-webkit-scrollbar { + background: #2d3436; +} + +::-webkit-scrollbar-thumb { + background: gray; +} + +html { + color: #dfe6e9; + background-color: #2d3436; + font-size: 1.5em; + font-family: Helvetica, Arial, sans-serif; + overflow-x: hidden; + scrollbar-color: gray #2d3436; + -webkit-tap-highlight-color: transparent; +} + +a { + color: #dfe6e9; + text-decoration: none; + background-color: transparent !important; + outline: 0; +} + +a.linkSelected { + border-bottom: .01em solid #dfe6e9; +} + +tr { + line-height: 35px; +} + +body { + margin-left: 20px; +} + +div, i { + background-size: cover !important; +} + +.highlight { + background-color: rgba(123, 123, 123, 0.5); +} + +.icon { + height: 36px; + width: 36px; + display: block; + cursor: pointer; +} + +.arrow-selected { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyOSAxMjkiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMjkgMTI5Ij4KICA8Zz4KICAgIDxwYXRoIGQ9Im00MC40LDEyMS4zYy0wLjgsMC44LTEuOCwxLjItMi45LDEuMnMtMi4xLTAuNC0yLjktMS4yYy0xLjYtMS42LTEuNi00LjIgMC01LjhsNTEtNTEtNTEtNTFjLTEuNi0xLjYtMS42LTQuMiAwLTUuOCAxLjYtMS42IDQuMi0xLjYgNS44LDBsNTMuOSw1My45YzEuNiwxLjYgMS42LDQuMiAwLDUuOGwtNTMuOSw1My45eiIvPgogIDwvZz4KPC9zdmc+Cg=="); + height: inherit; +} + +.arrow { + height: 22px; + width: 22px; + text-align: center; + font-size: 1.15em; + font-weight: bold; + padding-left: .5em; + filter: invert(100%) !important; + padding-bottom: 4px; +} + +table { + width: 100%; +} + +td.iconRow { + text-align: -moz-center; + text-align: -webkit-center; + height: 25px; + width: 25px; +} + + +td.file-size { + text-align: right; + padding-left: 1em; + width: 30px; +} + +td.display-name { + padding-left: .5em; + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; + max-width: 100px; +} + +h1 { + display: inline-block; + margin-top: 20px; + word-wrap: break-word; + width: 80%; + margin-bottom: 28px; + cursor: pointer; +} + +h1 > span:hover { + color: #f1c40f; +} + +#icHolder { + display: inline-block; + right: 15px; + background-color: #2d3436; + top: 34px; + position: absolute; +} + +.ic { + width: 45px; + height: 45px; + cursor: pointer; + display: inline-block; + overflow: hidden; + color: transparent; + margin-left: 5px; +} + +#toast { + top: 7px; + position: absolute; + right: 70px; + font-style: italic; + width: intrinsic; + width: -moz-max-content; + width: -webkit-max-content; +} + +#quitAll { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzEuMTEyIDMxLjExMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzEuMTEyIDMxLjExMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBvbHlnb24gcG9pbnRzPSIzMS4xMTIsMS40MTQgMjkuNjk4LDAgMTUuNTU2LDE0LjE0MiAxLjQxNCwwIDAsMS40MTQgMTQuMTQyLDE1LjU1NiAwLDI5LjY5OCAxLjQxNCwzMS4xMTIgMTUuNTU2LDE2Ljk3IA0KCTI5LjY5OCwzMS4xMTIgMzEuMTEyLDI5LjY5OCAxNi45NywxNS41NTYgIiBzdHlsZT0iZmlsbDogd2hpdGU7Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg=="); + position: fixed; + right: 20px; + top: 20px; + width: 40px; + height: 40px; + cursor: pointer; + z-index: 101; +} + +.uploading-table { + padding-bottom: 80px; +} + +.bar { + width: 99%; + left: 0.5%; + right: 0.5%; + position: fixed; + bottom: 0px; + max-height: 50%; + overflow-x: hidden; + background-color: #2d3436; +} + +.barName { + width: 100%; +} + +.barPc { + width: 1%; + height: 35px; + text-align: center; + line-height: 30px; + min-width: 30px; + margin-top: 5px; + color: white; + margin-bottom: 5px; +} + +#drop-grid { + align-items: center; + display: none; + justify-content: center; + position: fixed; + top: 0px; + bottom: 0px; + right: 0px; + left: 0px; + z-index: 999; + border: 5px dashed green; + margin: 0px; + border-radius: 5px; + text-align: center; + font-size: 4em; + font-family: Helvetica; + color: green; + opacity: 1; + background-color: rgba(123, 123, 123, 0.2); + padding: 20px; +} + +#drop-grid::after { + content: "Drop here to upload"; +} + +#text-editor { + font-family: monospace; + background-color: #2d3436; + position: fixed; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + z-index: 100; + overflow-y: auto; + word-wrap: anywhere; + padding: 20px; + outline: none; + width: -moz-available; + width: -webkit-fill-available; + height: 100%; + color: white; + font-size: 1em; + border: none; + resize: none; + box-sizing: border-box; +} + +#pics { + user-select: none; + -webkit-tap-highlight-color: transparent; + justify-content:center; + align-items:center; + position: fixed; + background-color: #000; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + overflow: hidden; + z-index: 99; +} + +#picsHolder { + user-select: none; + height: 100%; + width: 100%; + cursor: pointer; + object-fit: contain; + image-orientation: from-image; +} + + +#video { + user-select: none; + -webkit-tap-highlight-color: transparent; + justify-content:center; + align-items:center; + position: fixed; + background-color: #000; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + overflow: hidden; + z-index: 99; +} + +#videoHolder { + height: auto; + max-height: 100%; + width: 100%; + cursor: pointer; + object-fit: contain; + image-orientation: from-image; +} + +@keyframes fade { + 0% { opacity:0; } + 20% { opacity:1; } + 80% { opacity:1; } + 100% { opacity:0; } +} + +.runFade { + animation: fade 3s 1; +} + +.notif { + opacity:0; + width: 80px; + height: 80px; + position: fixed; + bottom: 30px; + right: 30px; +} + +#helpHead { + margin-top: 60px; + text-align: center; +} + +#helpTable { + border-collapse: collapse; + width: 70%; + max-width: 790px; + margin-left: auto; + margin-right: auto; + margin-top: 80px; + margin-bottom: 80px; + overflow-y: auto; +} + +#helpTable td { + width: 200px; + padding: 9px; + border: 1px solid #fff; + color: white; + font-size: 18px; + margin: 0; +} + +#help { + background-color: black; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + overflow-y: scroll; + z-index: 99; + font-size: 1em !important; +} + +.icon-large-folder { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEUAAACZmQAICAj4+Pj//5nMzGb/+/AAAAD/zJkzMwAAAP////+gebovAAAAAXRSTlMAQObYZgAAAAFiS0dECx/XxMAAAAAHdElNRQfiBhgXAy5jJ3EAAAAA1klEQVQoz42RMQ7CMBAEQ0mZIIp0/AGecJFO7kC2FKXmATxikaxUtPS48Ss5XxwnoWI7j3f3fHJV/aFa1KzOuwsRdacFHCjpthjuChbL0U261ipJnDd65IokJhCaGTCzEOZ25SAwaAUgASoOyFFzxWEsEkQGz2BskFJfHMMwWB07AVAXg/QwZscYPzHqXAVicDE4eJ47QOOoHexzhINxQRxIEVkC6I217OGLg9DLIn7qkHHEWiAvEwAdJyQlNKK3gKfcITuxZjzrO+qt2mr/3uj1z1//6AsSG3mwAQQN9wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yNFQyMzowMzo0Ni0wNDowMFfZ8nYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDYtMjRUMjM6MDM6NDYtMDQ6MDAmhErKAAAAAElFTkSuQmCC"); +} + +.icon-large-sad-server { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAHlBMVEUAAACAgIDAwMAAAAD///8A/wAAgAD/AACAgAD//wAxEuVaAAAAAXRSTlMAQObYZgAAAAFiS0dEBI9o2VEAAAAHdElNRQfiBhoALCLL7Xg4AAAAy0lEQVQ4y+WSPQ7CMAyFHbUSa38G5iLBHCkXKBUnQOICDMwgBnMDuEJvi00TKM3L0IWFN/rLs/zsEP2BSiCtm1WsxgqoAChtwqAAGgSYXaztC3So0xywPuwx2JyOM1uNwWRN1RtMUnQ/alVTAtgEqPWw6OJ6WHJA358lGx7GMs0swHwWsGCeAikJEAwst8d9bCh8kCVzz3zxQQpDbe53x6qwyDYnm/lQ0oevIaHNPj2dAEdIHM8aBgbDDgZo0dDQokWwEV8DlqE0sjwBakRwyV+dKtoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDYtMjZUMDA6NDQ6MzQtMDQ6MDBDgg+9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA2LTI2VDAwOjQ0OjM0LTA0OjAwMt+3AQAAAABJRU5ErkJggg=="); +} + +.icon-large-ok { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUAAAAAAAAAgACAgID////AwMAbJqpVAAAAAXRSTlMAQObYZgAAAAFiS0dEBI9o2VEAAAAHdElNRQfiBhoANRyRjMyLAAAArElEQVQoz22R0Q3EIAiGNbfAeU4gad+9sMGFLtC4/yyngBaa+tCELz+fFkJ4PimltyljAoCSrvoDfBbRGkC74qyh3AIauQIacaCajo1+ANmARqcHRP2T61LsdIgkWoUFrICCC7Bigo1OUUzQK1GslkaiGIDfsZMoICvokcODXRTjpXpvU0W9/T5WP7GhcDNF9EPN3GH2ooEQvrI51EAIL+y7zbgCg/Cx68eZ/wNuLjeFQzbY1AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yNlQwMDo1MzoyOC0wNDowMGvaoe4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDYtMjZUMDA6NTM6MjgtMDQ6MDAahxlSAAAAAElFTkSuQmCC"); +} + +.icon-large-pad { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEUAAAAAAACAgID////AwMAAAL8AAP///wCsLlssAAAAAXRSTlMAQObYZgAAAAFiS0dEAxEMTPIAAAAHdElNRQfiBhoAOCQMIApYAAAAvUlEQVQoz22Ryw7CIBREqYl7xlb3Pj7APpQ1iaZbXcjaxBTXhCi/bx+2XBomd8PJDDcMjCUc43DWab8rpunIIi/TcbYyCkovKdltBpbPGVAtuHjJqz6GDvUOI1d9DiPqpcMt6tsEkXyjwy04NWEkhWooEMD6wUnEGuBOHidEBXACrKsNuuf/A7Wr3AekD2trB1JQe4MzUvqIK4BMeofIV0OFIzBpOYG+qmxoLNJ6DNCSow528I6s//4EXu3xB1FNX4O6vHKSAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTA2LTI2VDAwOjU2OjM2LTA0OjAwEWYRaQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0wNi0yNlQwMDo1NjozNi0wNDowMGA7qdUAAAAASUVORK5CYII="); +} + +.icon-large-upload { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAXVBMVEUAAAAzzDPM/8z///8z/2YzmQAzZgAzZv8Amf8AAAAzzP+ZzP8AgADM//8z//8AMwAzzGaZmQD4+Pj//5kAZgD/zGYzmTP/zJmAgAAzMwDMZjPMmTP//wBmMwDwyqYv7S31AAAAAXRSTlMAQObYZgAAAAFiS0dEAxEMTPIAAAAHdElNRQfiBhoAOCALTc5BAAAB3klEQVRIx5WUCZKDIBBFAQXEbTTRQbPM/Y85TQMKClm+piplvcdv0YSQINSFfBQAWcHKsqSUc/EBbmnAgedCyje8Xxxxw782LI+zCPORVSWlesPj4qKqETdC3nA8R76uasBr+cJoCmHGdzwadSsxaaPpCiHcPJ6naLQqw3d9J2jEix/AW540msIYZnMMX/et5xnPCNjQC+SrvoUvlh8GzlWW73tcH+YRdk+tIFRqoq6jwPf+Diph5mcjJiEAThkNeQb4MF6uJmej6ShjrJymnR+GjU8YDfLwJk2Wr9DY+LNBi4DHSMHGOcjo418k5Es+TY6vxO94SUU5oUQDXg1QpDlEOBFEu3MOjJKCsfioUNBe0fNqBcfTZaMWdYkKXMUmIF8uAbSo0zx7A+GH9SPDwNqegWD4Oc6yx1dsAuHw61ku2ShsCRoImY4T6fCYlZ0oEMjEl8NG7rd6nVd9bAAjbrCOb1i1PgkkELR7VnpveCV4OLiH1W9dpiGaR5sGH5IQjvPgJKn/Disc9ke755UXzjQ23NTdJRb0NZ5ne16Pp8+HDSEYCPbFvMb0cfuTu3QwcoKOnpf+umFPRpjzSQpkzYe8z/OuPqC+E+5hbhAVXUmsGebx93eLLjzf1L1i/gHK3l4JVuA9nAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yNlQwMDo1NjozMi0wNDowMOUpNXoAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDYtMjZUMDA6NTY6MzItMDQ6MDCUdI3GAAAAAElFTkSuQmCC"); + margin-bottom: 3px; +} + +.icon-folder { + height: 27px; + width: 27px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEUAAACZmQAICAj4+Pj//5n/+/DMzGYAAAD/zJkzMwD///9AsZvJAAAAAXRSTlMAQObYZgAAAAFiS0dECmjQ9FYAAAAHdElNRQfiBhgXARMJeV+TAAAAuElEQVQoz62QMQ7CQBADLyVlQKLmD/ABpC38AF5AgZSOR7i4kpbf4t3b4xLR4i6+sb1KKb+apf3qe7qY2fU0jIO5BjLdwhjI8dE0Nylx3uiZFS4YjfduAJADLCvCCNrKoAL2JajPyG0IZ9IQGzP1S2iSMdsMZgbshOIVsRsGs7WidzAm1IGaEfgNIugRxIJblXUQ/my1dXgaUaDLZDDm5HgiIvGqQyw7GJVOIO7oPzm1lN17o1f5gz69jIC7vf9PIQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yNFQyMzowMToxOS0wNDowMO2EXMYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDYtMjRUMjM6MDE6MTktMDQ6MDCc2eR6AAAAAElFTkSuQmCC") !important; +} + +.icon-blank { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlMGUwZTAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNlZWUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjI2MykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ5LjE4OSIgeDI9IjI0OS4xODkiIHhsaW5rOmhyZWY9IiNhIiB5MT0iMjM2LjUyNCIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzllOWU5ZSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2JkYmRiZCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNTQiIHgyPSIyNTQiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMjMzLjUiIHkyPSItMTY4LjY2NyIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoNy42MXYuNjY0aC03LjYxem0wIDAiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtMTEuNTc4IDE0LjAxNmgxLjMydi0uNjZoLTEuMzJ6bTAgMCIgZmlsbD0idXJsKCNkKSIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoLTEuMzI0di42NjRoMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNlKSIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoLTEuMzI0di0uNjZoMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LjY2NGgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2cpIi8+PHBhdGggZD0ibTkuMjcgMS40NWgtNS45NjFhLjY2LjY2IDAgMCAwIC0uNjY0LjY2djExLjI0NWMwIC4zNjguMjk2LjY2LjY2NC42Nmg4LjkzYy4zNjYgMCAuNjYtLjI5Mi42Ni0uNjZ2LTguMjc3em0wIDAiIGZpbGw9InVybCgjaCkiLz48cGF0aCBkPSJtOS4yNjIgNC41MDhoMy4xNGwuNDk2LjQ5NnYuNjZoLTMuNjM2em0wIDAiIGZpbGw9InVybCgjaSkiLz48cGF0aCBkPSJtMi42NDUgMTMuMDk4di4yNTdjMCAuMzY4LjI5Ni42Ni42NjQuNjZoOC45M2MuMzY2IDAgLjY2LS4yOTIuNjYtLjY2di0uMjU3YS42Ni42NiAwIDAgMSAtLjY2LjY2NGgtOC45M2EuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1YS42Ni42NiAwIDAgMCAtLjY2NC42NnYuMjVjMC0uMzY4LjI5Ni0uNjY1LjY2NC0uNjY1aDUuOTZsMy42MyAzLjYzdi0uMjQ3bC0zLjYzMS0zLjYyOHptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii43ODQiLz48cGF0aCBkPSJtMTIuODk4IDUuMDc4LTMuNjI4LTMuNjI4djIuOTY1YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjR6bTAgMCIgZmlsbD0idXJsKCNrKSIvPjxwYXRoIGQ9Im05LjI3IDQuMjU4di4xNTZjMCAuMzY3LjI5Ni42NjQuNjY0LjY2NGgyLjk2NGwtLjE1Ni0uMTU2aC0yLjgwOGEuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im05LjI3IDEuNDV2LjI0NWwzLjM4MiAzLjM4M2guMjQ2em0wIDAiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjM5MiIvPjxwYXRoIGQ9Im05LjI3IDEuNDAyYS4wNDcuMDQ3IDAgMCAwIC0uMDQ3LjA0N3YyLjk2NWMwIC4zOTUuMzE2LjcxMS43MS43MTFoMi45NjVjLjAyIDAgLjA0LS4wMTIuMDQzLS4wMzEuMDA4LS4wMTYuMDA0LS4wMzUtLjAwNy0uMDUxbC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAyMy0uMDEyLS4wMzQtLjAxMnptLjA0Ni4xNiAzLjQ3IDMuNDdoLTIuODUzYS42MTQuNjE0IDAgMCAxIC0uNjE4LS42MTh6bTAgMCIgZmlsbD0iIzIxMjEyMSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQwMmEuNzA4LjcwOCAwIDAgMCAtLjcxMS43MDd2MTEuMjQ2YzAgLjM5MS4zMTYuNzA3LjcxLjcwN2g4LjkzYy4zOSAwIC43MDctLjMxNi43MDctLjcwN3YtOC4yNzdjMC0uMDE2LS4wMDQtLjAyNy0uMDExLS4wMzVsLTMuNjMtMy42MjljLS4wMDctLjAwOC0uMDE5LS4wMTItLjAzNC0uMDEyem0wIC4wOTRoNS45NDFsMy42MDIgMy42MDJ2OC4yNTdjMCAuMzQtLjI3NC42MTQtLjYxNC42MTRoLTguOTNhLjYxMy42MTMgMCAwIDEgLS42MTctLjYxNHYtMTEuMjQ1YzAtLjM0LjI3NC0uNjEzLjYxOC0uNjEzem0wIDAiIGZpbGw9IiMyMTIxMjEiLz48ZyBmaWxsPSJ1cmwoI2wpIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIj48cGF0aCBkPSJtMTYzLjk4NC0zMS4xNDNoMTY5LjM2YzIuOTk5IDAgNS4zNzQgMi4zNzUgNS4zNzQgNS4zNzV2MTAuNDk5YzAgMy0yLjM3NSA1LjM3NC01LjM3NSA1LjM3NGgtMTY5LjM1OWMtMi44NzQgMC01LjI1LTIuMzc0LTUuMjUtNS4zNzR2LTEwLjVjMC0yLjk5OSAyLjM3Ni01LjM3NCA1LjI1LTUuMzc0em0wIDAiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48cGF0aCBkPSJtMTYzLjk4NCAxMS4yMjhoMTY5LjM2YzIuOTk5IDAgNS4zNzQgMi4zNzUgNS4zNzQgNS4zNzV2MTAuNDk5YzAgMy0yLjM3NSA1LjM3NC01LjM3NSA1LjM3NGgtMTY5LjM1OWMtMi44NzQgMC01LjI1LTIuMzc0LTUuMjUtNS4zNzR2LTEwLjVjMC0yLjk5OSAyLjM3Ni01LjM3NCA1LjI1LTUuMzc0em0wIDAiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48cGF0aCBkPSJtMTYzLjk4NCA1My42aDE2OS4zNmMyLjk5OSAwIDUuMzc0IDIuMzc0IDUuMzc0IDUuMjQ5djEwLjYyNGMwIDIuODc1LTIuMzc1IDUuMjUtNS4zNzUgNS4yNWgtMTY5LjM1OWMtMi44NzQgMC01LjI1LTIuMzc1LTUuMjUtNS4yNXYtMTAuNjI0YzAtMi44NzUgMi4zNzYtNS4yNSA1LjI1LTUuMjV6bTAgMCIgdHJhbnNmb3JtPSJtYXRyaXgoLjAzMTI1IDAgMCAuMDMxMjUgMCA2LjcyKSIvPjxwYXRoIGQ9Im0xNjMuOTg0IDk1Ljk3aDE2OS4zNmMyLjk5OSAwIDUuMzc0IDIuMzc1IDUuMzc0IDUuMjV2MTAuNjI0YzAgMi44NzUtMi4zNzUgNS4yNS01LjM3NSA1LjI1aC0xNjkuMzU5Yy0yLjg3NCAwLTUuMjUtMi4zNzUtNS4yNS01LjI1di0xMC42MjRjMC0yLjg3NSAyLjM3Ni01LjI1IDUuMjUtNS4yNXptMCAwIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUgMCAwIC4wMzEyNSAwIDYuNzIpIi8+PC9nPjwvc3ZnPg=="); +} + +.icon-code, .icon-js, .icon-c, .icon-cpp, .icon-go, .icon-css, .icon-html, .icon-rs, .icon-py, .icon-rb { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlMGUwZTAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNlZWUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjI2MykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ5LjE4OSIgeDI9IjI0OS4xODkiIHhsaW5rOmhyZWY9IiNhIiB5MT0iMjM2LjUyNCIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzllOWU5ZSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2JkYmRiZCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDguNjg3OTIiIHgyPSIyNDguNjg3OTIiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMjMzLjQ2OTA4IiB5Mj0iLTE2OC42NzI2NiIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoNy42MXYuNjY0aC03LjYxem0wIDAiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtMTEuNTc4IDE0LjAxNmgxLjMydi0uNjZoLTEuMzJ6bTAgMCIgZmlsbD0idXJsKCNkKSIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoLTEuMzI0di42NjRoMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNlKSIvPjxwYXRoIGQ9Im0zLjk2OSAxNC4wMTZoLTEuMzI0di0uNjZoMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LjY2NGgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2cpIi8+PHBhdGggZD0ibTkuMjcgMS40NWgtNS45NjFhLjY2LjY2IDAgMCAwIC0uNjY0LjY2djExLjI0NWMwIC4zNjguMjk2LjY2LjY2NC42Nmg4LjkzYy4zNjYgMCAuNjYtLjI5Mi42Ni0uNjZ2LTguMjc3em0wIDAiIGZpbGw9InVybCgjaCkiLz48cGF0aCBkPSJtOS4yNjIgNC41MDhoMy4xNGwuNDk2LjQ5NnYuNjZoLTMuNjM2em0wIDAiIGZpbGw9InVybCgjaSkiLz48cGF0aCBkPSJtMi42NDUgMTMuMDk4di4yNTdjMCAuMzY4LjI5Ni42Ni42NjQuNjZoOC45M2MuMzY2IDAgLjY2LS4yOTIuNjYtLjY2di0uMjU3YS42Ni42NiAwIDAgMSAtLjY2LjY2NGgtOC45M2EuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1YS42Ni42NiAwIDAgMCAtLjY2NC42NnYuMjVjMC0uMzY4LjI5Ni0uNjY1LjY2NC0uNjY1aDUuOTZsMy42MyAzLjYzdi0uMjQ3bC0zLjYzMS0zLjYyOHptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii43ODQiLz48cGF0aCBkPSJtMTIuODk4IDUuMDc4LTMuNjI4LTMuNjI4djIuOTY1YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjR6bTAgMCIgZmlsbD0idXJsKCNrKSIvPjxwYXRoIGQ9Im05LjI3IDQuMjU4di4xNTZjMCAuMzY3LjI5Ni42NjQuNjY0LjY2NGgyLjk2NGwtLjE1Ni0uMTU2aC0yLjgwOGEuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im05LjI3IDEuNDV2LjI0NWwzLjM4MiAzLjM4M2guMjQ2em0wIDAiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjM5MiIvPjxwYXRoIGQ9Im05LjI3IDEuNDAyYS4wNDcuMDQ3IDAgMCAwIC0uMDQ3LjA0N3YyLjk2NWMwIC4zOTUuMzE2LjcxMS43MS43MTFoMi45NjVjLjAyIDAgLjA0LS4wMTIuMDQzLS4wMzEuMDA4LS4wMTYuMDA0LS4wMzUtLjAwNy0uMDUxbC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAyMy0uMDEyLS4wMzQtLjAxMnptLjA0Ni4xNiAzLjQ3IDMuNDdoLTIuODUzYS42MTQuNjE0IDAgMCAxIC0uNjE4LS42MTh6bTAgMCIgZmlsbD0iIzIxMjEyMSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQwMmEuNzA4LjcwOCAwIDAgMCAtLjcxMS43MDd2MTEuMjQ2YzAgLjM5MS4zMTYuNzA3LjcxLjcwN2g4LjkzYy4zOSAwIC43MDctLjMxNi43MDctLjcwN3YtOC4yNzdjMC0uMDE2LS4wMDQtLjAyNy0uMDExLS4wMzVsLTMuNjMtMy42MjljLS4wMDctLjAwOC0uMDE5LS4wMTItLjAzNC0uMDEyem0wIC4wOTRoNS45NDFsMy42MDIgMy42MDJ2OC4yNTdjMCAuMzQtLjI3NC42MTQtLjYxNC42MTRoLTguOTNhLjYxMy42MTMgMCAwIDEgLS42MTctLjYxNHYtMTEuMjQ1YzAtLjM0LjI3NC0uNjEzLjYxOC0uNjEzem0wIDAiIGZpbGw9IiMyMTIxMjEiLz48cGF0aCBkPSJtMjA2LjM1NS0zMS4xNDNjLTIuODc0IDAtNS4yNSAyLjM3NS01LjI1IDUuMzc1djI2LjM3MmgtMjEuMjQ3Yy0yLjg3NSAwLTUuMjUgMi4zNzUtNS4yNSA1LjM3NXYxMC42MjRjMCAyLjg3NSAyLjM3NSA1LjI1IDUuMjUgNS4yNWgyMS4yNDh2NDIuMzdoLTIxLjI0OGMtMi44NzUgMC01LjI1IDIuMjUtNS4yNSA1LjI1djEwLjYyNGMwIDIuODc1IDIuMzc1IDUuMjUgNS4yNSA1LjI1aDIxLjI0OHYyNi40OTdjMCAyLjg3NSAyLjM3NSA1LjI1IDUuMjUgNS4yNWgxMC42MjNjMi44NzUgMCA1LjI1LTIuMzc1IDUuMjUtNS4yNXYtMjYuNDk4aDUyLjk5NXYyNi40OThjMCAyLjg3NSAyLjI1IDUuMjUgNS4yNSA1LjI1aDEwLjYyM2MyLjg3NSAwIDUuMjUtMi4zNzUgNS4yNS01LjI1di0yNi40OThoMjEuMTIzYzMgMCA1LjM3NC0yLjM3NCA1LjM3NC01LjI1di0xMC42MjJjMC0zLTIuMzc1LTUuMjUtNS4zNzQtNS4yNWgtMjEuMTIzdi00Mi4zN2gyMS4xMjNjMyAwIDUuMzc0LTIuMzc1IDUuMzc0LTUuMjV2LTEwLjYyNWMwLTMtMi4zNzUtNS4zNzUtNS4zNzQtNS4zNzVoLTIxLjEyM3YtMjYuMzcyYzAtMy0yLjM3NS01LjM3NS01LjI1LTUuMzc1aC0xMC42MjRjLTMgMC01LjI1IDIuMzc1LTUuMjUgNS4zNzV2MjYuMzcyaC01Mi45OTN2LTI2LjM3MmMwLTMtMi4zNzUtNS4zNzUtNS4yNS01LjM3NXptMTUuODc0IDUyLjk5NWg1Mi45OTV2NDIuMzcxaC01Mi45OTV6bTAgMCIgZmlsbD0idXJsKCNsKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoLjAzMTI1IDAgMCAuMDMxMjUgMCA2LjcyKSIvPjwvc3ZnPg=="); +} + +.icon-doc, .icon-docx, .icon-odt { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM5ZmE4ZGEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNjNWNhZTkiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjE4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDkuMTg5IiB4Mj0iMjQ5LjE4OSIgeGxpbms6aHJlZj0iI2EiIHkxPSIyMzMuNSIgeTI9IjI1NC42NjciLz48ZmlsdGVyIGlkPSJqIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIiB4PSIwJSIgeT0iMCUiPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VHcmFwaGljIiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDEgMCIvPjwvZmlsdGVyPjxtYXNrIGlkPSJrIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiIGZpbGwtb3BhY2l0eT0iLjk4OCIgZmlsdGVyPSJ1cmwoI2opIi8+PC9tYXNrPjxsaW5lYXJHcmFkaWVudCBpZD0ibCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNWM2YmMwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzk4NmNiIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9Im0iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTYwIiB4Mj0iOTYwIiB4bGluazpocmVmPSIjbCIgeTE9IjE2OTUuMTE4IiB5Mj0iMTc1LjExOCIvPjxjbGlwUGF0aCBpZD0ibiI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6Ii8+PC9jbGlwUGF0aD48bGluZWFyR3JhZGllbnQgaWQ9Im8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAuNTgzMzQzNzUiIHgyPSIxMC41ODMzNDM3NSIgeGxpbms6aHJlZj0iI2wiIHkxPSIxNC4wMTY4NzUiIHkyPSIxLjQ0OTE1NjI1Ii8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmg3LjYxdi42NjRoLTcuNjF6bTAgMCIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LS42NmgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2YpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYuNjY0aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJtOS4yNyAxLjQ1aC01Ljk2MWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2MTEuMjQ1YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtOC4yNzd6bTAgMCIgZmlsbD0idXJsKCNoKSIvPjxwYXRoIGQ9Im05LjI2MiA0LjU5aDMuMTRsLjQ5Ni40OTZ2LjY2aC0zLjYzNnptMCAwIiBmaWxsPSJ1cmwoI2kpIi8+PHBhdGggZD0ibTIuNjQ1IDEzLjA5OHYuMjU3YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtLjI1N2EuNjYuNjYgMCAwIDEgLS42Ni42NjRoLTguOTNhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48ZyBjbGlwLXBhdGg9InVybCgjbikiIG1hc2s9InVybCgjaykiPjxwYXRoIGQ9Im02MTkuNzgzIDY5NC44OTRjLTEwLjg2NSAwLTE5Ljg0IDguOTc2LTE5Ljg0IDIwLjMxM3YzOS42ODJjMCAxMS4zMzcgOC45NzUgMjAuMzEzIDE5Ljg0IDIwLjMxM2g2NDAuMDk3YzExLjMzNyAwIDIwLjMxMy04Ljk3NiAyMC4zMTMtMjAuMzEzdi0zOS42ODJjMC0xMS4zMzctOC45NzYtMjAuMzEzLTIwLjMxMy0yMC4zMTN6bTAgMTYwLjE0M2MtMTAuODY1IDAtMTkuODQgOC45NzUtMTkuODQgMjAuMzEzdjM5LjY4YzAgMTEuMzM4IDguOTc1IDIwLjMxNCAxOS44NCAyMC4zMTRoNjQwLjA5N2MxMS4zMzcgMCAyMC4zMTMtOC45NzYgMjAuMzEzLTIwLjMxM3YtMzkuNjgxYzAtMTEuMzM4LTguOTc2LTIwLjMxMy0yMC4zMTMtMjAuMzEzem0wIDE2MC4xNDJjLTEwLjg2NSAwLTE5Ljg0IDguOTc1LTE5Ljg0IDE5Ljg0djQwLjE1NGMwIDEwLjg2NSA4Ljk3NSAxOS44NCAxOS44NCAxOS44NGg2NDAuMDk3YzExLjMzNyAwIDIwLjMxMy04Ljk3NSAyMC4zMTMtMTkuODR2LTQwLjE1NGMwLTEwLjg2NS04Ljk3Ni0xOS44NC0yMC4zMTMtMTkuODR6bTAgMTYwLjE0MmMtMTAuODY1IDAtMTkuODQgOC41MDMtMTkuODQgMTkuODR2NDAuMTU0YzAgMTAuODY1IDguOTc1IDE5Ljg0IDE5Ljg0IDE5Ljg0aDY0MC4wOTdjMTEuMzM3IDAgMjAuMzEzLTguOTc1IDIwLjMxMy0xOS44NHYtNDAuMTUzYzAtMTEuMzM4LTguOTc2LTE5Ljg0MS0yMC4zMTMtMTkuODQxem0wIDAiIGZpbGw9InVybCgjbSkiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjExLjMzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwODI2OTAyIC4wMDAxMjczIC0uMDAwMTI3MyAuMDA4MjY5MDIgMCAwKSIvPjwvZz48cGF0aCBkPSJtMy4zMDkgMS40NWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2LjI1YzAtLjM2OC4yOTYtLjY2NS42NjQtLjY2NWg1Ljk2bDMuNjMgMy42M3YtLjI0N2wtMy42MzEtMy42Mjh6bTAgMCIgZmlsbD0iI2Y2ZjZmNiIgZmlsbC1vcGFjaXR5PSIuNTg4Ii8+PHBhdGggZD0ibTEyLjg5OCA1LjA3OC0zLjYyOC0zLjYyOHYyLjk2NWMwIC4zNjcuMjk2LjY2NC42NjQuNjY0em0wIDAiIGZpbGw9InVybCgjbykiLz48cGF0aCBkPSJtOS4yNyA0LjI1OHYuMTU2YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjRoMi45NjRsLS4xNTYtLjE1NmgtMi44MDhhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48cGF0aCBkPSJtOS4yNyAxLjQ1di4yNDVsMy4zODIgMy4zODNoLjI0NnptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48ZyBmaWxsPSIjMjEyMTIxIj48cGF0aCBkPSJtOS4yNyAxLjQwMmEuMDQ3LjA0NyAwIDAgMCAtLjA0Ny4wNDd2Mi45NjVjMCAuMzk1LjMxNi43MTEuNzEuNzExaDIuOTY1Yy4wMiAwIC4wNC0uMDEyLjA0My0uMDMxLjAwOC0uMDE2LjAwNC0uMDM1LS4wMDctLjA1MWwtMy42My0zLjYyOWMtLjAwNy0uMDA4LS4wMjMtLjAxMi0uMDM0LS4wMTJ6bS4wNDYuMTYgMy40NyAzLjQ3aC0yLjg1M2EuNjE0LjYxNCAwIDAgMSAtLjYxOC0uNjE4em0wIDAiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOC45M2MuMzkgMCAuNzA3LS4zMTYuNzA3LS43MDd2LTguMjc3YzAtLjAxNi0uMDA0LS4wMjctLjAxMS0uMDM1bC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAxOS0uMDEyLS4wMzQtLjAxMnptMCAuMDk0aDUuOTQxbDMuNjAyIDMuNjAydjguMjU3YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC04LjkzYS42MTMuNjEzIDAgMCAxIC0uNjE3LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIi8+PC9nPjwvc3ZnPg=="); +} + +.icon-epub, .icon-mobi { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI3LjkzNzUiIHgyPSI3LjkzNzUiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3Atb3BhY2l0eT0iLjMxNCIvPjxzdG9wIG9mZnNldD0iLjIyMiIgc3RvcC1vcGFjaXR5PSIuMjc1Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iYyIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAtLjA3MDMyIDAgMjUuMDczIDMxLjc5OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJkIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAuMDM5MDcgLjA3MDMyIDAgLTkuMTk3IC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJlIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAtLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC0uMDcwMzIgMCAyNS4wNzMgLTMuNzY0KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2IiLz48bGluZWFyR3JhZGllbnQgaWQ9ImciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjAzNzY3IDAgMCAuMTA4NyAtMi45MjcgMTYuODIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNi45MTciIHgyPSIzMDUuOTU1IiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM5MGNhZjkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNiYmRlZmIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNDJhNWY1Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNjRiNWY2Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC41NTYxNCAwIDAgMTMuMTQ2MTggLTM1My45NzMgMjAzNC4xOCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTY1LjQ4NSIgeDI9IjE2NS40ODUiIHhsaW5rOmhyZWY9IiNoIiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJqIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijc2MCIgeDI9Ijc2MCIgeGxpbms6aHJlZj0iI2giIHkxPSIxNjk1LjExNyIgeTI9IjE3NS4xMTciLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aDcuOTM3di42NjRoLTcuOTM2em0wIDAiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtMTEuOTA2IDE0LjAxNmgxLjMyNHYtLjY2aC0xLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2MpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTExLjkwNiAxNC4wMTZoMS4zMjR2LjY2NGgtMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1aDkuMjYxYy4zNjQgMCAuNjYuMjk2LjY2LjY2djExLjI0NWEuNjYuNjYgMCAwIDEgLS42Ni42NmgtOS4yNmEuNjYuNjYgMCAwIDEgLS42NjQtLjY2di0xMS4yNDVjMC0uMzYzLjI5Ni0uNjYuNjY0LS42NnptMCAwIiBmaWxsPSJ1cmwoI2cpIi8+PHBhdGggZD0ibTQwMC4xMiAxNzUuMjU5Yy00NC40MDYgMC04MC4zMDggMzUuNDMtODAuMzA4IDc5LjgzNXYxMzYwLjAyNmMwIDQ0LjQwNiAzNS45MDIgNzkuODM1IDgwLjMwNyA3OS44MzVoMTE5Ljk4OXYtMTUxOS42OTV6bTAgMCIgZmlsbD0idXJsKCNpKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMTEuMzM5IiB0cmFuc2Zvcm09Im1hdHJpeCguMDA4MjY5MDIgLjAwMDEyNzMgLS4wMDAxMjczIC4wMDgyNjkwMiAwIDApIi8+PHBhdGggZD0ibTMuMzA5IDEzLjk4YS42NjQuNjY0IDAgMCAxIC0uNjY0LS42NjR2LS4wODJjMCAuMzY4LjI5Ni42NjQuNjY0LjY2NGg5LjI2MWMuMzY0IDAgLjY2LS4yOTYuNjYtLjY2NHYuMDgyYS42NjMuNjYzIDAgMCAxIC0uNjYuNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjE5NiIvPjxwYXRoIGQ9Im02NzkuNzc4IDE3NS4yNTl2OTU5LjkwOGM1OS45OTQtMTYwLjE0MiAxMDAuMTQ4LTE2MC4xNDIgMTYwLjE0MiAwdi05NTkuOTA3em0wIDAiIGZpbGw9InVybCgjaikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjExLjMzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwODI2OTAyIC4wMDAxMjczIC0uMDAwMTI3MyAuMDA4MjY5MDIgMCAwKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ4NGEuNjY0LjY2NCAwIDAgMCAtLjY2NC42NjR2LjA4MmMwLS4zNjcuMjk2LS42NjQuNjY0LS42NjRoOS4yNjFjLjM2NCAwIC42Ni4yOTcuNjYuNjY0di0uMDgyYS42NjMuNjYzIDAgMCAwIC0uNjYtLjY2NHptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOS4yNjJjLjM5IDAgLjcwNy0uMzE2LjcwNy0uNzA3di0xMS4yNDVhLjcwNy43MDcgMCAwIDAgLS43MDctLjcwN3ptMCAuMDk0aDkuMjYxYy4zNCAwIC42MTQuMjc0LjYxNC42MTN2MTEuMjQ2YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC05LjI2YS42MTMuNjEzIDAgMCAxIC0uNjE4LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PC9zdmc+") +} + +.icon-gif, .icon-png, .icon-jpg, .icon-jpeg, .icon-gif { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNhNWQ2YTciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNjOGU2YzkiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjE4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDkuMTg5IiB4Mj0iMjQ5LjE4OSIgeGxpbms6aHJlZj0iI2EiIHkxPSIyMzMuNSIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzY2YmI2YSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzgxYzc4NCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NDAiIHgyPSI5NDAiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ii8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmg3LjYxdi42NjRoLTcuNjF6bTAgMCIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LS42NmgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2YpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYuNjY0aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJtOS4yNyAxLjQ1aC01Ljk2MWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2MTEuMjQ1YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtOC4yNzd6bTAgMCIgZmlsbD0idXJsKCNoKSIvPjxwYXRoIGQ9Im05LjI2MiA0LjU5aDMuMTRsLjQ5Ni40OTZ2LjY2aC0zLjYzNnptMCAwIiBmaWxsPSJ1cmwoI2kpIi8+PHBhdGggZD0ibTIuNjQ1IDEzLjA5OHYuMjU3YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtLjI1N2EuNjYuNjYgMCAwIDEgLS42Ni42NjRoLTguOTNhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48cGF0aCBkPSJtMy4zMDkgMS40NWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2LjI1YzAtLjM2OC4yOTYtLjY2NS42NjQtLjY2NWg1Ljk2bDMuNjMgMy42M3YtLjI0N2wtMy42MzEtMy42Mjh6bTAgMCIgZmlsbD0iI2Y2ZjZmNiIgZmlsbC1vcGFjaXR5PSIuNTg4Ii8+PHBhdGggZD0ibTEyLjg5OCA1LjA3OC0zLjYyOC0zLjYyOHYyLjk2NWMwIC4zNjcuMjk2LjY2NC42NjQuNjY0em0wIDAiIGZpbGw9InVybCgjaykiLz48cGF0aCBkPSJtOS4yNyA0LjI1OHYuMTU2YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjRoMi45NjRsLS4xNTYtLjE1NmgtMi44MDhhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48cGF0aCBkPSJtOS4yNyAxLjQ1di4yNDVsMy4zODIgMy4zODNoLjI0NnptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48cGF0aCBkPSJtOS4yNyAxLjQwMmEuMDQ3LjA0NyAwIDAgMCAtLjA0Ny4wNDd2Mi45NjVjMCAuMzk1LjMxNi43MTEuNzEuNzExaDIuOTY1Yy4wMiAwIC4wNC0uMDEyLjA0My0uMDMxLjAwOC0uMDE2LjAwNC0uMDM1LS4wMDctLjA1MWwtMy42My0zLjYyOWMtLjAwNy0uMDA4LS4wMjMtLjAxMi0uMDM0LS4wMTJ6bS4wNDYuMTYgMy40NyAzLjQ3aC0yLjg1M2EuNjE0LjYxNCAwIDAgMSAtLjYxOC0uNjE4em0wIDAiIGZpbGw9IiMyMTIxMjEiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOC45M2MuMzkgMCAuNzA3LS4zMTYuNzA3LS43MDd2LTguMjc3YzAtLjAxNi0uMDA0LS4wMjctLjAxMS0uMDM1bC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAxOS0uMDEyLS4wMzQtLjAxMnptMCAuMDk0aDUuOTQxbDMuNjAyIDMuNjAydjguMjU3YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC04LjkzYS42MTMuNjEzIDAgMCAxIC0uNjE3LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PHBhdGggZD0ibTYxOS43ODMgNjk0Ljg5NGMtMTAuODY1IDAtMTkuODQgOC45NzYtMTkuODQgMjAuMzEzdjUyMC4xMDhjMCAxMC44NjUgOC45NzUgMTkuODQgMTkuODQgMTkuODRoNjQwLjA5N2MxMS4zMzcgMCAyMC4zMTMtOC45NzUgMjAuMzEzLTE5Ljg0di01MjAuMTA4YzAtMTEuMzM3LTguOTc2LTIwLjMxMy0yMC4zMTMtMjAuMzEzem04MC4zMDggODAuMzA4aDQ3OS45NTRjMTAuODY1IDAgMTkuODQgOC45NzUgMTkuODQgMTkuODR2MzU5Ljk2NmMwIDExLjMzNy0xMC44NjUgMjYuNDU0LTE5Ljg0IDIwLjMxMy0zNy4zMi0yNS45ODItNTkuOTk0LTU5Ljk5NC0xMDAuMTQ4LTU5Ljk5NC00Ni4yOTUgMC05MC4yMjggMzkuNjgtMTM5LjgzIDM5LjY4LTQwLjE1MyAwLTU5Ljk5NC0xMTkuOTg4LTExOS45ODgtMTE5Ljk4OHMtNjUuMTkgMzQuMDEzLTExOS45ODggMTQwLjMwMmMtNS4xOTcgOS40NDgtMjAuMzEzLTguOTc2LTIwLjMxMy0yMC4zMTN2LTM1OS45NjZjMC0xMC44NjUgOC45NzUtMTkuODQgMjAuMzEzLTE5Ljg0em0zNTAuMDQ1IDU5Ljk5NGMtMzguNzM2IDAtNjkuOTE1IDMxLjE3OC02OS45MTUgNjkuOTE0IDAgMzguNzM3IDMxLjE3OSA2OS45MTUgNjkuOTE1IDY5LjkxNXM2OS45MTUtMzEuMTc4IDY5LjkxNS02OS45MTVjMC0zOC43MzYtMzEuMTc5LTY5LjkxNC02OS45MTUtNjkuOTE0em0wIDAiIGZpbGw9InVybCgjbCkiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjExLjMzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwODI2OTAyIC4wMDAxMjczIC0uMDAwMTI3MyAuMDA4MjY5MDIgMCAwKSIvPjwvc3ZnPg=="); +} + +.icon-mp3, .icon-wav, .icon-flac, .icon-ogg { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmNjODAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmUwYjIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjI2MykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ5LjE4OSIgeDI9IjI0OS4xODkiIHhsaW5rOmhyZWY9IiNhIiB5MT0iMjMzLjUiIHkyPSIyNTQuNjY3Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJqIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmE3MjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmI3NGQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iayIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC41ODMzNDM3NSIgeDI9IjEwLjU4MzM0Mzc1IiB4bGluazpocmVmPSIjaiIgeTE9IjE0LjAxNjg3NSIgeTI9IjEuNDQ5MTU2MjUiLz48bGluZWFyR3JhZGllbnQgaWQ9ImwiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNTIuOTE1MzAzNDIiIHgyPSI1Mi45MTUzMDM0MiIgeGxpbms6aHJlZj0iI2oiIHkxPSIyMzMuNDk0MzIwNDQiIHkyPSItMTY4LjY2NzI3OTU2Ii8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmg3LjYxdi42NjRoLTcuNjF6bTAgMCIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LS42NmgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2YpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYuNjY0aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJtOS4yNyAxLjQ1aC01Ljk2MWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2MTEuMjQ1YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtOC4yNzd6bTAgMCIgZmlsbD0idXJsKCNoKSIvPjxwYXRoIGQ9Im0yLjY0NSAxMy4wOTh2LjI1N2MwIC4zNjguMjk2LjY2LjY2NC42Nmg4LjkzYy4zNjYgMCAuNjYtLjI5Mi42Ni0uNjZ2LS4yNTdhLjY2LjY2IDAgMCAxIC0uNjYuNjY0aC04LjkzYS42NjQuNjY0IDAgMCAxIC0uNjY0LS42NjR6bTAgMCIgZmlsbC1vcGFjaXR5PSIuMjM1Ii8+PHBhdGggZD0ibTkuMjYyIDQuNTA4aDMuMTRsLjQ5Ni40OTZ2LjY2aC0zLjYzNnptMCAwIiBmaWxsPSJ1cmwoI2kpIi8+PHBhdGggZD0ibTMuMzA5IDEuNDVhLjY2LjY2IDAgMCAwIC0uNjY0LjY2di4yNWMwLS4zNjguMjk2LS42NjUuNjY0LS42NjVoNS45NmwzLjYzIDMuNjN2LS4yNDdsLTMuNjMxLTMuNjI4em0wIDAiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjM5MiIvPjxwYXRoIGQ9Im0xMi44OTggNS4wNzgtMy42MjgtMy42Mjh2Mi45NjVjMCAuMzY3LjI5Ni42NjQuNjY0LjY2NHptMCAwIiBmaWxsPSJ1cmwoI2spIi8+PHBhdGggZD0ibTkuMjcgNC4yNTh2LjE1NmMwIC4zNjcuMjk2LjY2NC42NjQuNjY0aDIuOTY0bC0uMTU2LS4xNTZoLTIuODA4YS42NjQuNjY0IDAgMCAxIC0uNjY0LS42NjR6bTAgMCIgZmlsbC1vcGFjaXR5PSIuMjM1Ii8+PHBhdGggZD0ibTkuMjcgMS40NXYuMjQ1bDMuMzgyIDMuMzgzaC4yNDZ6bTAgMCIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIuMzkyIi8+PHBhdGggZD0ibTkuMjcgMS40MDJhLjA0Ny4wNDcgMCAwIDAgLS4wNDcuMDQ3djIuOTY1YzAgLjM5NS4zMTYuNzExLjcxLjcxMWgyLjk2NWMuMDIgMCAuMDQtLjAxMi4wNDMtLjAzMS4wMDgtLjAxNi4wMDQtLjAzNS0uMDA3LS4wNTFsLTMuNjMtMy42MjljLS4wMDctLjAwOC0uMDIzLS4wMTItLjAzNC0uMDEyem0uMDQ2LjE2IDMuNDcgMy40N2gtMi44NTNhLjYxNC42MTQgMCAwIDEgLS42MTgtLjYxOHptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PHBhdGggZD0ibTMuMzA5IDEuNDAyYS43MDguNzA4IDAgMCAwIC0uNzExLjcwN3YxMS4yNDZjMCAuMzkxLjMxNi43MDcuNzEuNzA3aDguOTNjLjM5IDAgLjcwNy0uMzE2LjcwNy0uNzA3di04LjI3N2MwLS4wMTYtLjAwNC0uMDI3LS4wMTEtLjAzNWwtMy42My0zLjYyOWMtLjAwNy0uMDA4LS4wMTktLjAxMi0uMDM0LS4wMTJ6bTAgLjA5NGg1Ljk0MWwzLjYwMiAzLjYwMnY4LjI1N2MwIC4zNC0uMjc0LjYxNC0uNjE0LjYxNGgtOC45M2EuNjEzLjYxMyAwIDAgMSAtLjYxNy0uNjE0di0xMS4yNDVjMC0uMzQuMjc0LS42MTMuNjE4LS42MTN6bTAgMCIgZmlsbD0iIzIxMjEyMSIvPjxwYXRoIGQ9Im0yMDYuMzU1LTMxLjE0M2MtMi44NzQgMC01LjI1IDIuMzc1LTUuMjUgNS4zNzV2MTAxLjc0Yy0zLjM3NC0uNzUtNi44NzQtMS4yNS0xMC42MjMtMS4yNS0xNy42MjQgMC0zMS43NDcgOS41LTMxLjc0NyAyMS4yNDggMCAxMS42MjQgMTQuMTIzIDIxLjEyMyAzMS43NDcgMjEuMTIzIDE3LjYyMyAwIDMxLjc0Ny05LjQ5OSAzMS43NDctMjEuMTIzdi0xMDUuODY1aDc0LjExOHY2NC42MmMtMy4zNzUtLjc1LTYuODc1LTEuMTI2LTEwLjYyNC0xLjEyNi0xNy42MjQgMC0zMS43NDcgOS4zNzQtMzEuNzQ3IDIxLjEyMyAwIDExLjc1IDE0LjEyMyAyMS4yNDggMzEuNzQ3IDIxLjI0OCAxNy42MjMgMCAzMS43NDctOS40OTkgMzEuNzQ3LTIxLjI0OHYtMTAwLjQ5YzAtMy0yLjM3NS01LjM3NS01LjI1LTUuMzc1em0wIDAiIGZpbGw9InVybCgjbCkiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48L3N2Zz4="); +} + +.icon-mp4, .icon-mkv, .icon-m4v, .icon-avi, .icon-ogv, .icon-mov { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiMzlkZGIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNkMWM0ZTkiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjE4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDkuMTg5IiB4Mj0iMjQ5LjE4OSIgeGxpbms6aHJlZj0iI2EiIHkxPSIyMzMuNSIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzdlNTdjMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzk1NzVjZCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDguNzA4IiB4Mj0iMjQ4LjcwOCIgeGxpbms6aHJlZj0iI2oiIHkxPSIyMzMuNSIgeTI9Ii0xNjguNjY3Ii8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmg3LjYxdi42NjRoLTcuNjF6bTAgMCIgZmlsbD0idXJsKCNiKSIvPjxwYXRoIGQ9Im0xMS41NzggMTQuMDE2aDEuMzJ2LS42NmgtMS4zMnptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2YpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYuNjY0aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJtOS4yNyAxLjQ1aC01Ljk2MWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2MTEuMjQ1YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtOC4yNzd6bTAgMCIgZmlsbD0idXJsKCNoKSIvPjxwYXRoIGQ9Im05LjI2MiA0LjU5aDMuMTRsLjQ5Ni40OTZ2LjY2aC0zLjYzNnptMCAwIiBmaWxsPSJ1cmwoI2kpIi8+PHBhdGggZD0ibTIuNjQ1IDEzLjA5OHYuMjU3YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtLjI1N2EuNjYuNjYgMCAwIDEgLS42Ni42NjRoLTguOTNhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48cGF0aCBkPSJtMy4zMDkgMS40NWEuNjYuNjYgMCAwIDAgLS42NjQuNjZ2LjI1YzAtLjM2OC4yOTYtLjY2NS42NjQtLjY2NWg1Ljk2bDMuNjMgMy42M3YtLjI0N2wtMy42MzEtMy42Mjh6bTAgMCIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIuMzkyIi8+PHBhdGggZD0ibTEyLjg5OCA1LjA3OC0zLjYyOC0zLjYyOHYyLjk2NWMwIC4zNjcuMjk2LjY2NC42NjQuNjY0em0wIDAiIGZpbGw9InVybCgjaykiLz48cGF0aCBkPSJtOS4yNyAxLjQ1di4yNDVsMy4zODIgMy4zODNoLjI0NnptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48cGF0aCBkPSJtOS4yNyAxLjQwMmEuMDQ3LjA0NyAwIDAgMCAtLjA0Ny4wNDd2Mi45NjVjMCAuMzk1LjMxNi43MTEuNzEuNzExaDIuOTY1Yy4wMiAwIC4wNC0uMDEyLjA0My0uMDMxLjAwOC0uMDE2LjAwNC0uMDM1LS4wMDctLjA1MWwtMy42My0zLjYyOWMtLjAwNy0uMDA4LS4wMjMtLjAxMi0uMDM0LS4wMTJ6bS4wNDYuMTYgMy40NyAzLjQ3aC0yLjg1M2EuNjE0LjYxNCAwIDAgMSAtLjYxOC0uNjE4em0wIDAiIGZpbGw9IiMyMTIxMjEiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOC45M2MuMzkgMCAuNzA3LS4zMTYuNzA3LS43MDd2LTguMjc3YzAtLjAxNi0uMDA0LS4wMjctLjAxMS0uMDM1bC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAxOS0uMDEyLS4wMzQtLjAxMnptMCAuMDk0aDUuOTQxbDMuNjAyIDMuNjAydjguMjU3YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC04LjkzYS42MTMuNjEzIDAgMCAxIC0uNjE3LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PHBhdGggZD0ibTIwMS4xMDYtMzEuMTQzYy01Ljg3NS4xMjUtMTAuNjI0IDQuNzUtMTAuNjI0IDEwLjYyNHYxMjYuOTg5YzAgOCA4LjYyNCAxMy4xMjQgMTUuNjIzIDkuMjVsMTE2LjQ5LTYzLjQ5NWM3LjM3My00IDcuMzczLTE0LjQ5OCAwLTE4LjQ5OGwtMTE2LjQ5LTYzLjQ5NGMtMS41LS44NzUtMy4yNS0xLjM3NS01LTEuMzc1em0wIDAiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2Utd2lkdGg6MztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlOiMyMTIxMjE7ZmlsbDp1cmwoI2wpIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUgMCAwIC4wMzEyNSAwIDYuNzIpIi8+PC9zdmc+"); +} + +.icon-pdf { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI3LjkzNzUiIHgyPSI3LjkzNzUiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3Atb3BhY2l0eT0iLjMxNCIvPjxzdG9wIG9mZnNldD0iLjIyMiIgc3RvcC1vcGFjaXR5PSIuMjc1Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iYyIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAtLjA3MDMyIDAgMjUuMDczIDMxLjc5OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJkIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAuMDM5MDcgLjA3MDMyIDAgLTkuMTk3IC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJlIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAtLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC0uMDcwMzIgMCAyNS4wNzMgLTMuNzY0KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2IiLz48bGluZWFyR3JhZGllbnQgaWQ9ImciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjAzNzY3IDAgMCAuMTA4NyAtMi45MjcgMTYuODIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNi45MTciIHgyPSIzMDUuOTU1IiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlZjlhOWEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmNkZDIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZWY1MzUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZTU3MzczIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC41NTYxNCAwIDAgMTMuMTQ2MTggLTM1My45NzMgMjAzNC4xOCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTY1LjQ4NSIgeDI9IjE2NS40ODUiIHhsaW5rOmhyZWY9IiNoIiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJqIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijc2MCIgeDI9Ijc2MCIgeGxpbms6aHJlZj0iI2giIHkxPSIxNjk1LjExNyIgeTI9IjE3NS4xMTciLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aDcuOTM3di42NjRoLTcuOTM2em0wIDAiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtMTEuOTA2IDE0LjAxNmgxLjMyNHYtLjY2aC0xLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2MpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTExLjkwNiAxNC4wMTZoMS4zMjR2LjY2NGgtMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1aDkuMjYxYy4zNjQgMCAuNjYuMjk2LjY2LjY2djExLjI0NWEuNjYuNjYgMCAwIDEgLS42Ni42NmgtOS4yNmEuNjYuNjYgMCAwIDEgLS42NjQtLjY2di0xMS4yNDVjMC0uMzYzLjI5Ni0uNjYuNjY0LS42NnptMCAwIiBmaWxsPSJ1cmwoI2cpIi8+PHBhdGggZD0ibTQwMC4xMiAxNzUuMjU5Yy00NC40MDYgMC04MC4zMDggMzUuNDMtODAuMzA4IDc5LjgzNXYxMzYwLjAyNmMwIDQ0LjQwNiAzNS45MDIgNzkuODM1IDgwLjMwNyA3OS44MzVoMTE5Ljk4OXYtMTUxOS42OTV6bTAgMCIgZmlsbD0idXJsKCNpKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMTEuMzM5IiB0cmFuc2Zvcm09Im1hdHJpeCguMDA4MjY5MDIgLjAwMDEyNzMgLS4wMDAxMjczIC4wMDgyNjkwMiAwIDApIi8+PHBhdGggZD0ibTMuMzA5IDEzLjk4YS42NjQuNjY0IDAgMCAxIC0uNjY0LS42NjR2LS4wODJjMCAuMzY4LjI5Ni42NjQuNjY0LjY2NGg5LjI2MWMuMzY0IDAgLjY2LS4yOTYuNjYtLjY2NHYuMDgyYS42NjMuNjYzIDAgMCAxIC0uNjYuNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjE5NiIvPjxwYXRoIGQ9Im02NzkuNzc4IDE3NS4yNTl2OTU5LjkwOGM1OS45OTQtMTYwLjE0MiAxMDAuMTQ4LTE2MC4xNDIgMTYwLjE0MiAwdi05NTkuOTA3em0wIDAiIGZpbGw9InVybCgjaikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjExLjMzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwODI2OTAyIC4wMDAxMjczIC0uMDAwMTI3MyAuMDA4MjY5MDIgMCAwKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ4NGEuNjY0LjY2NCAwIDAgMCAtLjY2NC42NjR2LjA4MmMwLS4zNjcuMjk2LS42NjQuNjY0LS42NjRoOS4yNjFjLjM2NCAwIC42Ni4yOTcuNjYuNjY0di0uMDgyYS42NjMuNjYzIDAgMCAwIC0uNjYtLjY2NHptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOS4yNjJjLjM5IDAgLjcwNy0uMzE2LjcwNy0uNzA3di0xMS4yNDVhLjcwNy43MDcgMCAwIDAgLS43MDctLjcwN3ptMCAuMDk0aDkuMjYxYy4zNCAwIC42MTQuMjc0LjYxNC42MTN2MTEuMjQ2YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC05LjI2YS42MTMuNjEzIDAgMCAxIC0uNjE4LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PC9zdmc+"); +} + +.icon-ppt, .icon-pptx { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmFiOTEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmNjYmMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjE4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDkuMTg5IiB4Mj0iMjQ5LjE4OSIgeGxpbms6aHJlZj0iI2EiIHkxPSIyMzMuNSIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmNzA0MyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmOGE2NSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxmaWx0ZXIgaWQ9ImwiIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHg9IjAlIiB5PSIwJSI+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUdyYXBoaWMiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMSAwIi8+PC9maWx0ZXI+PG1hc2sgaWQ9Im0iPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PG1hc2sgaWQ9Im4iPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PGxpbmVhckdyYWRpZW50IGlkPSJvIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijk1OS45ODU2NDkyNiIgeDI9Ijk1OS45ODU2NDkyNiIgeGxpbms6aHJlZj0iI2oiIHkxPSIxNjk1LjA5NDAzNTUyIiB5Mj0iMTc1LjExMzE1NTk2Ii8+PGNsaXBQYXRoIGlkPSJwIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiLz48L2NsaXBQYXRoPjxtYXNrIGlkPSJxIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiIGZpbGwtb3BhY2l0eT0iLjk4OCIgZmlsdGVyPSJ1cmwoI2wpIi8+PC9tYXNrPjxsaW5lYXJHcmFkaWVudCBpZD0iciIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2My40OTY4IiB4Mj0iNjMuNDk2OCIgeGxpbms6aHJlZj0iI2oiIHkxPSIyMzMuNDk0ODkwMDgiIHkyPSItMTY0LjEzMTI3OTU2Ii8+PGNsaXBQYXRoIGlkPSJzIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiLz48L2NsaXBQYXRoPjxjbGlwUGF0aCBpZD0idCI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6Ii8+PC9jbGlwUGF0aD48cGF0aCBkPSJtMy45NjkgMTQuMDE2aDcuNjF2LjY2NGgtNy42MXptMCAwIiBmaWxsPSJ1cmwoI2IpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYtLjY2aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZCkiLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aC0xLjMyNHYuNjY0aDEuMzI0em0wIDAiIGZpbGw9InVybCgjZSkiLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aC0xLjMyNHYtLjY2aDEuMzI0em0wIDAiIGZpbGw9InVybCgjZikiLz48cGF0aCBkPSJtMTEuNTc4IDE0LjAxNmgxLjMydi42NjRoLTEuMzJ6bTAgMCIgZmlsbD0idXJsKCNnKSIvPjxwYXRoIGQ9Im05LjI3IDEuNDVoLTUuOTYxYS42Ni42NiAwIDAgMCAtLjY2NC42NnYxMS4yNDVjMCAuMzY4LjI5Ni42Ni42NjQuNjZoOC45M2MuMzY2IDAgLjY2LS4yOTIuNjYtLjY2di04LjI3N3ptMCAwIiBmaWxsPSJ1cmwoI2gpIi8+PHBhdGggZD0ibTIuNjQ1IDEzLjA5OHYuMjU3YzAgLjM2OC4yOTYuNjYuNjY0LjY2aDguOTNjLjM2NiAwIC42Ni0uMjkyLjY2LS42NnYtLjI1N2EuNjYuNjYgMCAwIDEgLS42Ni42NjRoLTguOTNhLjY2NC42NjQgMCAwIDEgLS42NjQtLjY2NHptMCAwIiBmaWxsLW9wYWNpdHk9Ii4yMzUiLz48cGF0aCBkPSJtOS4yNjIgNC41OWgzLjE0bC40OTYuNDk2di42NmgtMy42MzZ6bTAgMCIgZmlsbD0idXJsKCNpKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1YS42Ni42NiAwIDAgMCAtLjY2NC42NnYuMjVjMC0uMzY4LjI5Ni0uNjY1LjY2NC0uNjY1aDUuOTZsMy42MyAzLjYzdi0uMjQ3bC0zLjYzMS0zLjYyOHptMCAwIiBmaWxsPSIjZjZmNmY2IiBmaWxsLW9wYWNpdHk9Ii41ODgiLz48cGF0aCBkPSJtMTIuODk4IDUuMDc4LTMuNjI4LTMuNjI4djIuOTY1YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjR6bTAgMCIgZmlsbD0idXJsKCNrKSIvPjxwYXRoIGQ9Im05LjI3IDQuMjU4di4xNTZjMCAuMzY3LjI5Ni42NjQuNjY0LjY2NGgyLjk2NGwtLjE1Ni0uMTU2aC0yLjgwOGEuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im05LjI3IDEuNDV2LjI0NWwzLjM4MiAzLjM4M2guMjQ2em0wIDAiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjM5MiIvPjxwYXRoIGQ9Im05LjI3IDEuNDAyYS4wNDcuMDQ3IDAgMCAwIC0uMDQ3LjA0N3YyLjk2NWMwIC4zOTUuMzE2LjcxMS43MS43MTFoMi45NjVjLjAyIDAgLjA0LS4wMTIuMDQzLS4wMzEuMDA4LS4wMTYuMDA0LS4wMzUtLjAwNy0uMDUxbC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAyMy0uMDEyLS4wMzQtLjAxMnptLjA0Ni4xNiAzLjQ3IDMuNDdoLTIuODUzYS42MTQuNjE0IDAgMCAxIC0uNjE4LS42MTh6bTAgMCIgZmlsbD0iIzIxMjEyMSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQwMmEuNzA4LjcwOCAwIDAgMCAtLjcxMS43MDd2MTEuMjQ2YzAgLjM5MS4zMTYuNzA3LjcxLjcwN2g4LjkzYy4zOSAwIC43MDctLjMxNi43MDctLjcwN3YtOC4yNzdjMC0uMDE2LS4wMDQtLjAyNy0uMDExLS4wMzVsLTMuNjMtMy42MjljLS4wMDctLjAwOC0uMDE5LS4wMTItLjAzNC0uMDEyem0wIC4wOTRoNS45NDFsMy42MDIgMy42MDJ2OC4yNTdjMCAuMzQtLjI3NC42MTQtLjYxNC42MTRoLTguOTNhLjYxMy42MTMgMCAwIDEgLS42MTctLjYxNHYtMTEuMjQ1YzAtLjM0LjI3NC0uNjEzLjYxOC0uNjEzem0wIDAiIGZpbGw9IiMyMTIxMjEiLz48ZyBjbGlwLXBhdGg9InVybCgjdCkiIG1hc2s9InVybCgjbSkiPjxnIGNsaXAtcGF0aD0idXJsKCNwKSIgbWFzaz0idXJsKCNuKSI+PHBhdGggZD0ibTkwOS44MzQgNzY4LjExNmMtMTcxLjQ4IDAtMzA5Ljg5MSAxMDguNjUtMzA5Ljg5MSAyNDMuMjg0IDAgMTM1LjEwNSAxMzguNDEyIDI0My43NTYgMzA5Ljg5MSAyNDMuNzU2IDE3MC41MzUgMCAzMDcuNTMtMTA2Ljc2MiAzMDkuODkyLTIzOS45NzdoLTI4OS41NzljLTEuNDE3IDAtMi44MzQgMC00LjI1MS0uNDczLTEuNDE3LS40NzItMi4zNjItLjQ3Mi0zLjc4LS45NDQtLjk0NC0uOTQ1LTIuMzYxLTEuNDE4LTMuMzA2LTEuODlsLTIuODM0LTIuODM0Yy0uOTQ1LS40NzMtMS44OS0xLjg5LTIuMzYyLTIuODM1LS45NDUtLjk0NS0xLjQxOC0xLjg5LTEuODktMy4zMDctLjQ3Mi0uOTQ0LS45NDUtMi4zNjItMS40MTctMy43NzkgMC0xLjQxNy0uNDczLTIuODM0LS40NzMtMy43Nzl6bTAgMCIgZmlsbD0idXJsKCNvKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMTEuMzM5IiB0cmFuc2Zvcm09Im1hdHJpeCguMDA4MjY5MDIgLjAwMDEyNzMgLS4wMDAxMjczIC4wMDgyNjkwMiAwIDApIi8+PC9nPjxnIGNsaXAtcGF0aD0idXJsKCNzKSIgbWFzaz0idXJsKCNxKSI+PHBhdGggZD0ibTI1Ni42LTI1Ljc2OHY2MC4xMmMwIC4zNzQuMTI1LjYyNC4xMjUgMSAuMTI1LjM3NC4yNS43NDkuMzc1Ljk5OS4xMjUuMzc1LjI1LjYyNS41Ljg3NS4xMjUuMzc1LjM3NS42MjUuNjI1Ljg3NXMuNS4zNzUuNzUuNjI1Yy4yNS4xMjUuNjI1LjM3NS44NzUuNS4zNzUuMTI1LjYyNS4yNSAxIC4yNS4zNzUuMTI1Ljc1LjEyNSAxLjEyNS4xMjVoNzYuNjE4YzAtLjM3NS4xMjUtLjYyNS4xMjUtMSAwLTM1LjYyMi0zNi42MjItNjQuMzctODIuMTE4LTY0LjM3em0wIDAiIGZpbGw9InVybCgjcikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48L2c+PC9nPjwvc3ZnPg=="); +} + +.icon-srt { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGxpbmVhckdyYWRpZW50IGlkPSJhIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjcuOTM4MjYiIHgyPSI3LjkzODI2IiB5MT0iMTQuMDE2OTY4NSIgeTI9IjE0LjY3ODQ5MDUwMDAyIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3Atb3BhY2l0eT0iLjI3NDUxIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTM3MjYiLz48c3RvcCBvZmZzZXQ9Ii4yMjIyMjIiIHN0b3Atb3BhY2l0eT0iLjI3NDUxIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iYyIgY3g9IjQ1MC45MDg5MzYiIGN5PSIxODkuNTc5MzYxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDAwMDAwOSAtLjAzOTA2NjIgLS4wNzAzMTkyIC0uMDAwMDAwMDUgMjUuMDczMDQzIDMxLjc5NzY2NikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjY2NTYiIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJkIiBjeD0iNDUwLjkwODkzNiIgY3k9IjE4OS41NzkzNjEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLS4wMDAwMDAwOSAuMDM5MDY2MiAuMDcwMzE5MiAuMDAwMDAwMDUgLTkuMTk2NTI0IC0zLjc2Mzc0KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NjY1NiIgeGxpbms6aHJlZj0iI2IiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImUiIGN4PSI0NTAuOTA4OTM2IiBjeT0iMTg5LjU3OTM2MSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtLjAwMDAwMDA5IC0uMDM5MDY2MiAuMDcwMzE5MiAtLjAwMDAwMDA1IC05LjE5NjUyNCAzMS43OTc2NjYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY2NjU2IiB4bGluazpocmVmPSIjYiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDg5MzYiIGN5PSIxODkuNTc5MzYxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDAwMDAwOSAuMDM5MDY2MiAtLjA3MDMxOTIgLjAwMDAwMDA1IDI1LjA3MzA0MiAtMy43NjM3NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjY2NTYiIHhsaW5rOmhyZWY9IiNiIi8+PGxpbmVhckdyYWRpZW50IGlkPSJnIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMzc2NzQ4IDAgMCAuMTA4NzA2IC0yLjkyNzAwNyAxNi44MjA2NzQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNi45MTY2NTYiIHgyPSIzMDUuOTU0NTU5IiB5MT0iLTI1Ljc5MTY3NiIgeTI9Ii0xNDEuNDE0NTgxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4MGNiYzQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNiMmRmZGIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjZhNjlhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNGRiNmFjIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC41NTYxNDMgMCAwIDEzLjE0NjE4NCAtMzUzLjk3MjY1NiAyMDM0LjE4MDE3NikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTY1LjQ4NDg0OCIgeDI9IjE2NS40ODQ4NDgiIHhsaW5rOmhyZWY9IiNoIiB5MT0iLTI1Ljc5MTY3MiIgeTI9Ii0xNDEuNDE0NTgxIi8+PGxpbmVhckdyYWRpZW50IGlkPSJqIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY5MDIzMjUwMDMiIHgyPSI4LjI2OTAyMzI1MDAzIiB4bGluazpocmVmPSIjaCIgeTE9IjE0LjAxNjk2NzUiIHkyPSIxLjQ0ODA1MzAwMDAzIi8+PHBhdGggZD0ibTMuOTY4NzUgMTQuMDE1NjI1aDcuOTM3NXYuNjY0MDYzaC03LjkzNzV6bTAgMCIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMS45MDYyNSAxNC4wMTU2MjVoMS4zMjQyMTl2LS42NjAxNTZoLTEuMzI0MjE5em0wIDAiIGZpbGw9InVybCgjYykiLz48cGF0aCBkPSJtMy45Njg3NSAxNC4wMTU2MjVoLTEuMzI0MjE5di42NjQwNjNoMS4zMjQyMTl6bTAgMCIgZmlsbD0idXJsKCNkKSIvPjxwYXRoIGQ9Im0zLjk2ODc1IDE0LjAxNTYyNWgtMS4zMjQyMTl2LS42NjAxNTZoMS4zMjQyMTl6bTAgMCIgZmlsbD0idXJsKCNlKSIvPjxwYXRoIGQ9Im0xMS45MDYyNSAxNC4wMTU2MjVoMS4zMjQyMTl2LjY2NDA2M2gtMS4zMjQyMTl6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0zLjMwODU5NCAxLjQ0OTIxOWg5LjI2MTcxOGMuMzYzMjgyIDAgLjY2MDE1Ny4yOTY4NzUuNjYwMTU3LjY2MDE1NnYxMS4yNDYwOTRjMCAuMzY3MTg3LS4yOTY4NzUuNjYwMTU2LS42NjAxNTcuNjYwMTU2aC05LjI2MTcxOGMtLjM2NzE4OCAwLS42NjQwNjMtLjI5Mjk2OS0uNjY0MDYzLS42NjAxNTZ2LTExLjI0NjA5NGMwLS4zNjMyODEuMjk2ODc1LS42NjAxNTYuNjY0MDYzLS42NjAxNTZ6bTAgMCIgZmlsbD0idXJsKCNnKSIvPjxwYXRoIGQ9Im00MDAuMTE5MjkyIDE3NS4yNTg4NjNjLTQ0LjQwNTIxMSAwLTgwLjMwNzI5NiAzNS40Mjk2OS04MC4zMDcyOTYgNzkuODM0OXYxMzYwLjAyNzY3NmMwIDQ0LjQwNTIxMSAzNS45MDIwODUgNzkuODM0OSA4MC4zMDcyOTYgNzkuODM0OWgxMTkuOTg4NTQ4di0xNTE5LjY5NzQ3NnptMCAwIiBmaWxsPSJ1cmwoI2kpIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxMS4zMzg1ODMiIHRyYW5zZm9ybT0ic2NhbGUoLjAwODI2OTAyKSIvPjxwYXRoIGQ9Im0zLjMwODU5NCAxMy45ODA0NjljLS4zNjcxODggMC0uNjY0MDYzLS4yOTY4NzUtLjY2NDA2My0uNjY0MDYzdi0uMDgyMDMxYzAgLjM2NzE4Ny4yOTY4NzUuNjY0MDYzLjY2NDA2My42NjQwNjNoOS4yNjE3MThjLjM2MzI4MiAwIC42NjAxNTctLjI5Njg3Ni42NjAxNTctLjY2NDA2M3YuMDgyMDMxYzAgLjM2NzE4OC0uMjk2ODc1LjY2NDA2My0uNjYwMTU3LjY2NDA2M3ptMCAwIiBmaWxsLW9wYWNpdHk9Ii4xOTYwNzgiLz48cGF0aCBkPSJtMy4zMDg1OTQgMS40ODQzNzVjLS4zNjcxODggMC0uNjY0MDYzLjI5Njg3NS0uNjY0MDYzLjY2NDA2M3YuMDgyMDMxYzAtLjM2NzE4OC4yOTY4NzUtLjY2NDA2My42NjQwNjMtLjY2NDA2M2g5LjI2MTcxOGMuMzYzMjgyIDAgLjY2MDE1Ny4yOTY4NzUuNjYwMTU3LjY2NDA2M3YtLjA4MjAzMWMwLS4zNjcxODgtLjI5Njg3NS0uNjY0MDYzLS42NjAxNTctLjY2NDA2M3ptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIxNTciLz48cGF0aCBkPSJtMy4zMDg1OTQgMS40MDIzNDRjLS4zOTQ1MzIgMC0uNzEwOTM4LjMxNjQwNi0uNzEwOTM4LjcwNzAzMXYxMS4yNDYwOTRjMCAuMzkwNjI1LjMxNjQwNi43MDcwMzEuNzEwOTM4LjcwNzAzMWg5LjI2MTcxOGMuMzkwNjI2IDAgLjcwNzAzMi0uMzE2NDA2LjcwNzAzMi0uNzA3MDMxdi0xMS4yNDYwOTRjMC0uMzkwNjI1LS4zMTY0MDYtLjcwNzAzMS0uNzA3MDMyLS43MDcwMzF6bTAgLjA5Mzc1aDkuMjYxNzE4Yy4zMzk4NDQgMCAuNjEzMjgyLjI3MzQzNy42MTMyODIuNjEzMjgxdjExLjI0NjA5NGMwIC4zMzk4NDMtLjI3MzQzOC42MTMyODEtLjYxMzI4Mi42MTMyODFoLTkuMjYxNzE4Yy0uMzQzNzUgMC0uNjE3MTg4LS4yNzM0MzgtLjYxNzE4OC0uNjEzMjgxdi0xMS4yNDYwOTRjMC0uMzM5ODQ0LjI3MzQzOC0uNjEzMjgxLjYxNzE4OC0uNjEzMjgxem0wIDAiIGZpbGw9IiMyMTIxMjEiLz48cGF0aCBkPSJtNi4xMTcxODggNC43NTM5MDZjLS4yNzM0MzggMC0uNDk2MDk0LjIyMjY1Ni0uNDk2MDk0LjQ5NjA5NHYzLjY0MDYyNWMwIC4yNzM0MzcuMjIyNjU2LjQ5NjA5NC40OTYwOTQuNDk2MDk0aDMuNjcxODc0bDEuMjIyNjU3IDEuMjI2NTYyYy4yMDcwMzEuMjA3MDMxLjU2MjUuMDU4NTk0LjU2MjUtLjIzNDM3NXYtMS4wMTk1MzFjLjE5NTMxMi0uMDY2NDA2LjMzMjAzMS0uMjUuMzMyMDMxLS40Njg3NXYtMy42NDA2MjVjMC0uMjczNDM4LS4yMTg3NS0uNDk2MDk0LS40OTYwOTQtLjQ5NjA5NHptMCAwIiBmaWxsPSJ1cmwoI2opIi8+PHBhdGggZD0ibTYuMTE3MTg4IDQuNzUzOTA2Yy0uMjczNDM4IDAtLjQ5NjA5NC4yMjI2NTYtLjQ5NjA5NC40OTYwOTR2LjE2Nzk2OWMwLS4yNzczNDQuMjIyNjU2LS40OTYwOTQuNDk2MDk0LS40OTYwOTRoNS4yOTI5NjhjLjI3NzM0NCAwIC40OTYwOTQuMjE4NzUuNDk2MDk0LjQ5NjA5NHYtLjE2Nzk2OWMwLS4yNzM0MzgtLjIxODc1LS40OTYwOTQtLjQ5NjA5NC0uNDk2MDk0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNTI5NCIvPjxwYXRoIGQ9Im01LjYyMTA5NCA4LjkxNzk2OXYuMTM2NzE5YzAgLjI3NzM0My4yMjI2NTYuNDk2MDkzLjQ5NjA5NC40OTYwOTNoMy42NzE4NzRsMS4yMjI2NTcgMS4yMjY1NjNjLjIwNzAzMS4yMDcwMzEuNTYyNS4wNTg1OTQuNTYyNS0uMjM0Mzc1di0uMTM2NzE5YzAgLjI5Mjk2OS0uMzU1NDY5LjQ0MTQwNi0uNTYyNS4yMzQzNzVsLTEuMjIyNjU3LTEuMjI2NTYzaC0zLjY3MTg3NGMtLjI3MzQzOCAwLS40OTYwOTQtLjIyMjY1Ni0uNDk2MDk0LS40OTYwOTN6bTYuMjg1MTU2IDBjMCAuMjE4NzUtLjEzNjcxOS40MDIzNDMtLjMzMjAzMS40Njg3NXYuMTM2NzE5Yy4xOTUzMTItLjA2NjQwNy4zMzIwMzEtLjI1LjMzMjAzMS0uNDY4NzV6bTAgMCIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIuMzkyMTU3Ii8+PHBhdGggZD0ibTE5NS43MzEzMDktNjIuODg5NTI2Yy04Ljc0OTE2NSAwLTE1Ljg3MzQ4NSA3LjEyNDMyLTE1Ljg3MzQ4NSAxNS44NzM0ODR2MTE2LjQ4ODg3NmMwIDguNzQ5MTY1IDcuMTI0MzIgMTUuODczNDg0IDE1Ljg3MzQ4NSAxNS44NzM0ODRoMTE3LjQ4ODc4bDM5LjEyMTI2NCAzOS4yNDYyNTNjNi42MjQzNjcgNi42MjQzNjcgMTcuOTk4MjgxIDEuODc0ODIgMTcuOTk4MjgxLTcuNDk5Mjg0di0zMi42MjE4ODVjNi4yNDk0MDQtMi4xMjQ3OTcgMTAuNjIzOTg2LTcuOTk5MjM2IDEwLjYyMzk4Ni0xNC45OTg1Njh2LTExNi40ODg4NzZjMC04Ljc0OTE2NC02Ljk5OTMzMi0xNS44NzM0ODQtMTUuODczNDg0LTE1Ljg3MzQ4NHptMCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUzIDAgMCAuMDMxMjUzIDAgNi43MTkzOTIpIi8+PC9zdmc+"); +} + +.icon-xls, .icon-xlsx, .icon-csv { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjguMjY3NSIgeDI9IjguMjY3NSIgeGxpbms6aHJlZj0iI2EiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSIvPjxsaW5lYXJHcmFkaWVudCBpZD0iYyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4zMTQiLz48c3RvcCBvZmZzZXQ9Ii4yMjIiIHN0b3Atb3BhY2l0eT0iLjI3NSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC0uMDM5MDcgLS4wNzAzMiAwIDI0Ljc0MiAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAtMy43NjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYyIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAuMDcwMzIgMCAtOS4xOTcgMzEuNzk4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2MiLz48cmFkaWFsR3JhZGllbnQgaWQ9ImciIGN4PSI0NTAuOTA5IiBjeT0iMTg5LjU3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwIC4wMzkwNyAtLjA3MDMyIDAgMjQuNzQyIC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNjIi8+PGxpbmVhckdyYWRpZW50IGlkPSJoIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4wMDgyNjkwMiAuMDAwMTI3MyAtLjAwMDEyNzMgLjAwODI2OTAyIDAgMCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iOTQwIiB4Mj0iOTQwIiB5MT0iMTY5NS4xMTgiIHkyPSIxNzUuMTE4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4MGNiYzQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNiMmRmZGIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMDE0OTUgMCAwIC4wNTQ3IDcuNTIxIC04LjE4KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDkuMTg5IiB4Mj0iMjQ5LjE4OSIgeGxpbms6aHJlZj0iI2EiIHkxPSIyMzMuNSIgeTI9IjI1NC42NjciLz48bGluZWFyR3JhZGllbnQgaWQ9ImoiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzI2YTY5YSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzRkYjZhYyIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwLjU4MzM0Mzc1IiB4Mj0iMTAuNTgzMzQzNzUiIHhsaW5rOmhyZWY9IiNqIiB5MT0iMTQuMDE2ODc1IiB5Mj0iMS40NDkxNTYyNSIvPjxmaWx0ZXIgaWQ9ImwiIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHg9IjAlIiB5PSIwJSI+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUdyYXBoaWMiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMSAwIi8+PC9maWx0ZXI+PG1hc2sgaWQ9Im0iPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PGxpbmVhckdyYWRpZW50IGlkPSJuIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0OC43MDgiIHgyPSIyNDguNzA4IiB4bGluazpocmVmPSIjaiIgeTE9IjIzMy41IiB5Mj0iLTE2OC42NjciLz48Y2xpcFBhdGggaWQ9Im8iPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIvPjwvY2xpcFBhdGg+PG1hc2sgaWQ9InAiPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PGNsaXBQYXRoIGlkPSJxIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiLz48L2NsaXBQYXRoPjxtYXNrIGlkPSJyIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiIGZpbGwtb3BhY2l0eT0iLjk4OCIgZmlsdGVyPSJ1cmwoI2wpIi8+PC9tYXNrPjxjbGlwUGF0aCBpZD0icyI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6Ii8+PC9jbGlwUGF0aD48bWFzayBpZD0idCI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6IiBmaWxsLW9wYWNpdHk9Ii45ODgiIGZpbHRlcj0idXJsKCNsKSIvPjwvbWFzaz48Y2xpcFBhdGggaWQ9InUiPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIvPjwvY2xpcFBhdGg+PG1hc2sgaWQ9InYiPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PGNsaXBQYXRoIGlkPSJ3Ij48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiLz48L2NsaXBQYXRoPjxtYXNrIGlkPSJ4Ij48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiIGZpbGwtb3BhY2l0eT0iLjk4OCIgZmlsdGVyPSJ1cmwoI2wpIi8+PC9tYXNrPjxjbGlwUGF0aCBpZD0ieSI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6Ii8+PC9jbGlwUGF0aD48bWFzayBpZD0ieiI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6IiBmaWxsLW9wYWNpdHk9Ii45ODgiIGZpbHRlcj0idXJsKCNsKSIvPjwvbWFzaz48Y2xpcFBhdGggaWQ9IkEiPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIvPjwvY2xpcFBhdGg+PG1hc2sgaWQ9IkIiPjxwYXRoIGQ9Im0wIDBoMTZ2MTZoLTE2eiIgZmlsbC1vcGFjaXR5PSIuOTg4IiBmaWx0ZXI9InVybCgjbCkiLz48L21hc2s+PGNsaXBQYXRoIGlkPSJDIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiLz48L2NsaXBQYXRoPjxtYXNrIGlkPSJEIj48cGF0aCBkPSJtMCAwaDE2djE2aC0xNnoiIGZpbGwtb3BhY2l0eT0iLjk4OCIgZmlsdGVyPSJ1cmwoI2wpIi8+PC9tYXNrPjxjbGlwUGF0aCBpZD0iRSI+PHBhdGggZD0ibTAgMGgxNnYxNmgtMTZ6Ii8+PC9jbGlwUGF0aD48cGF0aCBkPSJtMy45NjkgMTQuMDE2aDcuNjF2LjY2NGgtNy42MXptMCAwIiBmaWxsPSJ1cmwoI2IpIi8+PHBhdGggZD0ibTExLjU3OCAxNC4wMTZoMS4zMnYtLjY2aC0xLjMyem0wIDAiIGZpbGw9InVybCgjZCkiLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aC0xLjMyNHYuNjY0aDEuMzI0em0wIDAiIGZpbGw9InVybCgjZSkiLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aC0xLjMyNHYtLjY2aDEuMzI0em0wIDAiIGZpbGw9InVybCgjZikiLz48cGF0aCBkPSJtMTEuNTc4IDE0LjAxNmgxLjMydi42NjRoLTEuMzJ6bTAgMCIgZmlsbD0idXJsKCNnKSIvPjxwYXRoIGQ9Im05LjI3IDEuNDVoLTUuOTYxYS42Ni42NiAwIDAgMCAtLjY2NC42NnYxMS4yNDVjMCAuMzY4LjI5Ni42Ni42NjQuNjZoOC45M2MuMzY2IDAgLjY2LS4yOTIuNjYtLjY2di04LjI3N3ptMCAwIiBmaWxsPSJ1cmwoI2gpIi8+PHBhdGggZD0ibTkuMjYyIDQuNTloMy4xNGwuNDk2LjQ5NnYuNjZoLTMuNjM2em0wIDAiIGZpbGw9InVybCgjaSkiLz48cGF0aCBkPSJtMi42NDUgMTMuMDk4di4yNTdjMCAuMzY4LjI5Ni42Ni42NjQuNjZoOC45M2MuMzY2IDAgLjY2LS4yOTIuNjYtLjY2di0uMjU3YS42Ni42NiAwIDAgMSAtLjY2LjY2NGgtOC45M2EuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1YS42Ni42NiAwIDAgMCAtLjY2NC42NnYuMjVjMC0uMzY4LjI5Ni0uNjY1LjY2NC0uNjY1aDUuOTZsMy42MyAzLjYzdi0uMjQ3bC0zLjYzMS0zLjYyOHptMCAwIiBmaWxsPSIjZjZmNmY2IiBmaWxsLW9wYWNpdHk9Ii41ODgiLz48cGF0aCBkPSJtMTIuODk4IDUuMDc4LTMuNjI4LTMuNjI4djIuOTY1YzAgLjM2Ny4yOTYuNjY0LjY2NC42NjR6bTAgMCIgZmlsbD0idXJsKCNrKSIvPjxwYXRoIGQ9Im05LjI3IDQuMjU4di4xNTZjMCAuMzY3LjI5Ni42NjQuNjY0LjY2NGgyLjk2NGwtLjE1Ni0uMTU2aC0yLjgwOGEuNjY0LjY2NCAwIDAgMSAtLjY2NC0uNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjIzNSIvPjxwYXRoIGQ9Im05LjI3IDEuNDV2LjI0NWwzLjM4MiAzLjM4M2guMjQ2em0wIDAiIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjM5MiIvPjxwYXRoIGQ9Im05LjI3IDEuNDAyYS4wNDcuMDQ3IDAgMCAwIC0uMDQ3LjA0N3YyLjk2NWMwIC4zOTUuMzE2LjcxMS43MS43MTFoMi45NjVjLjAyIDAgLjA0LS4wMTIuMDQzLS4wMzEuMDA4LS4wMTYuMDA0LS4wMzUtLjAwNy0uMDUxbC0zLjYzLTMuNjI5Yy0uMDA3LS4wMDgtLjAyMy0uMDEyLS4wMzQtLjAxMnptLjA0Ni4xNiAzLjQ3IDMuNDdoLTIuODUzYS42MTQuNjE0IDAgMCAxIC0uNjE4LS42MTh6bTAgMCIgZmlsbD0iIzIxMjEyMSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQwMmEuNzA4LjcwOCAwIDAgMCAtLjcxMS43MDd2MTEuMjQ2YzAgLjM5MS4zMTYuNzA3LjcxLjcwN2g4LjkzYy4zOSAwIC43MDctLjMxNi43MDctLjcwN3YtOC4yNzdjMC0uMDE2LS4wMDQtLjAyNy0uMDExLS4wMzVsLTMuNjMtMy42MjljLS4wMDctLjAwOC0uMDE5LS4wMTItLjAzNC0uMDEyem0wIC4wOTRoNS45NDFsMy42MDIgMy42MDJ2OC4yNTdjMCAuMzQtLjI3NC42MTQtLjYxNC42MTRoLTguOTNhLjYxMy42MTMgMCAwIDEgLS42MTctLjYxNHYtMTEuMjQ1YzAtLjM0LjI3NC0uNjEzLjYxOC0uNjEzem0wIDAiIGZpbGw9IiMyMTIxMjEiLz48ZyBjbGlwLXBhdGg9InVybCgjbykiIG1hc2s9InVybCgjbSkiPjxwYXRoIGQ9Im0xNjMuOTg0LTMxLjE0M2gzNy4xMjJjMi44NzUgMCA1LjI1IDIuMzc1IDUuMjUgNS4zNzV2MjYuMzcyYzAgMy0yLjM3NSA1LjM3NS01LjI1IDUuMzc1aC0zNy4xMjJjLTIuODc0IDAtNS4yNS0yLjM3NS01LjI1LTUuMzc1di0yNi4zNzJjMC0zIDIuMzc2LTUuMzc1IDUuMjUtNS4zNzV6bTAgMCIgZmlsbD0idXJsKCNuKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoLjAzMTI1IDAgMCAuMDMxMjUgMCA2LjcyKSIvPjwvZz48ZyBjbGlwLXBhdGg9InVybCgjcSkiIG1hc2s9InVybCgjcCkiPjxwYXRoIGQ9Im0yMzAuMjI4LTMxLjE0M2gzNi45OTZjMi44NzUgMCA1LjI1IDIuMzc1IDUuMjUgNS4zNzV2MjYuMzcyYzAgMy0yLjM3NSA1LjM3NS01LjI1IDUuMzc1aC0zNi45OTZjLTMgMC01LjM3NC0yLjM3NS01LjM3NC01LjM3NXYtMjYuMzcyYzAtMyAyLjM3NC01LjM3NSA1LjM3NC01LjM3NXptMCAwIiBmaWxsPSJ1cmwoI24pIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUgMCAwIC4wMzEyNSAwIDYuNzIpIi8+PC9nPjxnIGNsaXAtcGF0aD0idXJsKCNzKSIgbWFzaz0idXJsKCNyKSI+PHBhdGggZD0ibTI5Ni4zNDctMzEuMTQzaDM2Ljk5NmMzIDAgNS4zNzUgMi4zNzUgNS4zNzUgNS4zNzV2MjYuMzcyYzAgMy0yLjM3NSA1LjM3NS01LjM3NSA1LjM3NWgtMzYuOTk2Yy0yLjg3NSAwLTUuMjUtMi4zNzUtNS4yNS01LjM3NXYtMjYuMzcyYzAtMyAyLjM3NS01LjM3NSA1LjI1LTUuMzc1em0wIDAiIGZpbGw9InVybCgjbikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48L2c+PGcgY2xpcC1wYXRoPSJ1cmwoI3UpIiBtYXNrPSJ1cmwoI3QpIj48cGF0aCBkPSJtMTYzLjk4NCA4MC4wOTdoMzcuMTIyYzIuODc1IDAgNS4yNSAyLjM3NSA1LjI1IDUuMjV2MjYuNDk3YzAgMi44NzUtMi4zNzUgNS4yNS01LjI1IDUuMjVoLTM3LjEyMmMtMi44NzQgMC01LjI1LTIuMzc1LTUuMjUtNS4yNXYtMjYuNDk4YzAtMi44NzQgMi4zNzYtNS4yNSA1LjI1LTUuMjV6bTAgMCIgZmlsbD0idXJsKCNuKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoLjAzMTI1IDAgMCAuMDMxMjUgMCA2LjcyKSIvPjwvZz48ZyBjbGlwLXBhdGg9InVybCgjdykiIG1hc2s9InVybCgjdikiPjxwYXRoIGQ9Im0yMzAuMjI4IDgwLjA5N2gzNi45OTZjMi44NzUgMCA1LjI1IDIuMzc1IDUuMjUgNS4yNXYyNi40OTdjMCAyLjg3NS0yLjM3NSA1LjI1LTUuMjUgNS4yNWgtMzYuOTk2Yy0zIDAtNS4zNzQtMi4zNzUtNS4zNzQtNS4yNXYtMjYuNDk4YzAtMi44NzQgMi4zNzQtNS4yNSA1LjM3NC01LjI1em0wIDAiIGZpbGw9InVybCgjbikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48L2c+PGcgY2xpcC1wYXRoPSJ1cmwoI3kpIiBtYXNrPSJ1cmwoI3gpIj48cGF0aCBkPSJtMjk2LjM0NyA4MC4wOTdoMzYuOTk2YzMgMCA1LjM3NSAyLjM3NSA1LjM3NSA1LjI1djI2LjQ5N2MwIDIuODc1LTIuMzc1IDUuMjUtNS4zNzUgNS4yNWgtMzYuOTk2Yy0yLjg3NSAwLTUuMjUtMi4zNzUtNS4yNS01LjI1di0yNi40OThjMC0yLjg3NCAyLjM3NS01LjI1IDUuMjUtNS4yNXptMCAwIiBmaWxsPSJ1cmwoI24pIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUgMCAwIC4wMzEyNSAwIDYuNzIpIi8+PC9nPjxnIGNsaXAtcGF0aD0idXJsKCNBKSIgbWFzaz0idXJsKCN6KSI+PHBhdGggZD0ibTE2My45ODQgMjQuNDc3aDM3LjEyMmMyLjg3NSAwIDUuMjUgMi4zNzUgNS4yNSA1LjI1djI2LjQ5N2MwIDIuODc1LTIuMzc1IDUuMjUtNS4yNSA1LjI1aC0zNy4xMjJjLTIuODc0IDAtNS4yNS0yLjM3NS01LjI1LTUuMjV2LTI2LjQ5N2MwLTIuODc1IDIuMzc2LTUuMjUgNS4yNS01LjI1em0wIDAiIGZpbGw9InVybCgjbikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC4wMzEyNSAwIDAgLjAzMTI1IDAgNi43MikiLz48L2c+PGcgY2xpcC1wYXRoPSJ1cmwoI0MpIiBtYXNrPSJ1cmwoI0IpIj48cGF0aCBkPSJtMjMwLjIyOCAyNC40NzdoMzYuOTk2YzIuODc1IDAgNS4yNSAyLjM3NSA1LjI1IDUuMjV2MjYuNDk3YzAgMi44NzUtMi4zNzUgNS4yNS01LjI1IDUuMjVoLTM2Ljk5NmMtMyAwLTUuMzc0LTIuMzc1LTUuMzc0LTUuMjV2LTI2LjQ5N2MwLTIuODc1IDIuMzc0LTUuMjUgNS4zNzQtNS4yNXptMCAwIiBmaWxsPSJ1cmwoI24pIiBzdHJva2U9IiMyMTIxMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiB0cmFuc2Zvcm09Im1hdHJpeCguMDMxMjUgMCAwIC4wMzEyNSAwIDYuNzIpIi8+PC9nPjxnIGNsaXAtcGF0aD0idXJsKCNFKSIgbWFzaz0idXJsKCNEKSI+PHBhdGggZD0ibTI5Ni4zNDcgMjQuNDc3aDM2Ljk5NmMzIDAgNS4zNzUgMi4zNzUgNS4zNzUgNS4yNXYyNi40OTdjMCAyLjg3NS0yLjM3NSA1LjI1LTUuMzc1IDUuMjVoLTM2Ljk5NmMtMi44NzUgMC01LjI1LTIuMzc1LTUuMjUtNS4yNXYtMjYuNDk3YzAtMi44NzUgMi4zNzUtNS4yNSA1LjI1LTUuMjV6bTAgMCIgZmlsbD0idXJsKCNuKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoLjAzMTI1IDAgMCAuMDMxMjUgMCA2LjcyKSIvPjwvZz48L3N2Zz4="); +} + +.icon-zip, .icon-tar, .icon-gz, .icon-bz2, .icon-rar, .icon-7z { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2cHQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI3LjkzNzUiIHgyPSI3LjkzNzUiIHkxPSIxNC4wMTY4NzUiIHkyPSIxNC42NzgzNDM3NSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9Ii4yNzUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3Atb3BhY2l0eT0iLjMxNCIvPjxzdG9wIG9mZnNldD0iLjIyMiIgc3RvcC1vcGFjaXR5PSIuMjc1Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iYyIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLS4wMzkwNyAtLjA3MDMyIDAgMjUuMDczIDMxLjc5OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJkIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAuMDM5MDcgLjA3MDMyIDAgLTkuMTk3IC0zLjc2NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiByPSIyMS4xNjciIHhsaW5rOmhyZWY9IiNiIi8+PHJhZGlhbEdyYWRpZW50IGlkPSJlIiBjeD0iNDUwLjkwOSIgY3k9IjE4OS41NzkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAtLjAzOTA3IC4wNzAzMiAwIC05LjE5NyAzMS43OTgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcj0iMjEuMTY3IiB4bGluazpocmVmPSIjYiIvPjxyYWRpYWxHcmFkaWVudCBpZD0iZiIgY3g9IjQ1MC45MDkiIGN5PSIxODkuNTc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLjAzOTA3IC0uMDcwMzIgMCAyNS4wNzMgLTMuNzY0KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHI9IjIxLjE2NyIgeGxpbms6aHJlZj0iI2IiLz48bGluZWFyR3JhZGllbnQgaWQ9ImciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjAzNzY3IDAgMCAuMTA4NyAtMi45MjcgMTYuODIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNi45MTciIHgyPSIzMDUuOTU1IiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmNjODAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmUwYjIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZhNzI2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZiNzRkIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC41NTYxNCAwIDAgMTMuMTQ2MTggLTM1My45NzMgMjAzNC4xOCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTY1LjQ4NSIgeDI9IjE2NS40ODUiIHhsaW5rOmhyZWY9IiNoIiB5MT0iLTI1Ljc5MiIgeTI9Ii0xNDEuNDE1Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJqIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijc2MCIgeDI9Ijc2MCIgeGxpbms6aHJlZj0iI2giIHkxPSIxNjk1LjExNyIgeTI9IjE3NS4xMTciLz48cGF0aCBkPSJtMy45NjkgMTQuMDE2aDcuOTM3di42NjRoLTcuOTM2em0wIDAiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtMTEuOTA2IDE0LjAxNmgxLjMyNHYtLjY2aC0xLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2MpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LjY2NGgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2QpIi8+PHBhdGggZD0ibTMuOTY5IDE0LjAxNmgtMS4zMjR2LS42NmgxLjMyNHptMCAwIiBmaWxsPSJ1cmwoI2UpIi8+PHBhdGggZD0ibTExLjkwNiAxNC4wMTZoMS4zMjR2LjY2NGgtMS4zMjR6bTAgMCIgZmlsbD0idXJsKCNmKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ1aDkuMjYxYy4zNjQgMCAuNjYuMjk2LjY2LjY2djExLjI0NWEuNjYuNjYgMCAwIDEgLS42Ni42NmgtOS4yNmEuNjYuNjYgMCAwIDEgLS42NjQtLjY2di0xMS4yNDVjMC0uMzYzLjI5Ni0uNjYuNjY0LS42NnptMCAwIiBmaWxsPSJ1cmwoI2cpIi8+PHBhdGggZD0ibTQwMC4xMiAxNzUuMjU5Yy00NC40MDYgMC04MC4zMDggMzUuNDMtODAuMzA4IDc5LjgzNXYxMzYwLjAyNmMwIDQ0LjQwNiAzNS45MDIgNzkuODM1IDgwLjMwNyA3OS44MzVoMTE5Ljk4OXYtMTUxOS42OTV6bTAgMCIgZmlsbD0idXJsKCNpKSIgc3Ryb2tlPSIjMjEyMTIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMTEuMzM5IiB0cmFuc2Zvcm09Im1hdHJpeCguMDA4MjY5MDIgLjAwMDEyNzMgLS4wMDAxMjczIC4wMDgyNjkwMiAwIDApIi8+PHBhdGggZD0ibTMuMzA5IDEzLjk4YS42NjQuNjY0IDAgMCAxIC0uNjY0LS42NjR2LS4wODJjMCAuMzY4LjI5Ni42NjQuNjY0LjY2NGg5LjI2MWMuMzY0IDAgLjY2LS4yOTYuNjYtLjY2NHYuMDgyYS42NjMuNjYzIDAgMCAxIC0uNjYuNjY0em0wIDAiIGZpbGwtb3BhY2l0eT0iLjE5NiIvPjxwYXRoIGQ9Im02NzkuNzc4IDE3NS4yNTl2OTU5LjkwOGM1OS45OTQtMTYwLjE0MiAxMDAuMTQ4LTE2MC4xNDIgMTYwLjE0MiAwdi05NTkuOTA3em0wIDAiIGZpbGw9InVybCgjaikiIHN0cm9rZT0iIzIxMjEyMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjExLjMzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLjAwODI2OTAyIC4wMDAxMjczIC0uMDAwMTI3MyAuMDA4MjY5MDIgMCAwKSIvPjxwYXRoIGQ9Im0zLjMwOSAxLjQ4NGEuNjY0LjY2NCAwIDAgMCAtLjY2NC42NjR2LjA4MmMwLS4zNjcuMjk2LS42NjQuNjY0LS42NjRoOS4yNjFjLjM2NCAwIC42Ni4yOTcuNjYuNjY0di0uMDgyYS42NjMuNjYzIDAgMCAwIC0uNjYtLjY2NHptMCAwIiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii4zOTIiLz48cGF0aCBkPSJtMy4zMDkgMS40MDJhLjcwOC43MDggMCAwIDAgLS43MTEuNzA3djExLjI0NmMwIC4zOTEuMzE2LjcwNy43MS43MDdoOS4yNjJjLjM5IDAgLjcwNy0uMzE2LjcwNy0uNzA3di0xMS4yNDVhLjcwNy43MDcgMCAwIDAgLS43MDctLjcwN3ptMCAuMDk0aDkuMjYxYy4zNCAwIC42MTQuMjc0LjYxNC42MTN2MTEuMjQ2YzAgLjM0LS4yNzQuNjE0LS42MTQuNjE0aC05LjI2YS42MTMuNjEzIDAgMCAxIC0uNjE4LS42MTR2LTExLjI0NWMwLS4zNC4yNzQtLjYxMy42MTgtLjYxM3ptMCAwIiBmaWxsPSIjMjEyMTIxIi8+PC9zdmc+"); +} diff --git a/ui/ui.tmpl b/ui/ui.tmpl new file mode 100644 index 0000000..865c7f8 --- /dev/null +++ b/ui/ui.tmpl @@ -0,0 +1,84 @@ + + +
+ + + + + + + + +| + | {{.Size}} |
+ + | {{.Name}} | +
| + | {{.Size}} |
+ + | {{.Name}} | +