/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; function bytesToBase64(u8a) { let CHUNK_SZ = 0x8000; let c = []; for (let i = 0; i < u8a.length; i += CHUNK_SZ) { c.push(String.fromCharCode.apply(null, u8a.subarray(i, i + CHUNK_SZ))); } return window.btoa(c.join("")); } function bytesToBase64UrlSafe(buf) { return bytesToBase64(buf) .replace(/\+/g, "-") .replace(/\//g, "_") .replace(/=/g, ""); }