/*! For license information please see vendors~init.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(4),r=n.n(o);r.a.methodFactory=function(e,t,n){return function(...t){return"error"===e||"warn"===e||"trace"===e||"info"===e?console[e](...t):console.log(...t)}};const i=r.a.getLogger("matrix");i.setLevel(r.a.levels.DEBUG)},function(e,t,n){"use strict";n.d(t,"e",(function(){return i})),n.d(t,"f",(function(){return a})),n.d(t,"u",(function(){return s})),n.d(t,"j",(function(){return c})),n.d(t,"t",(function(){return l})),n.d(t,"B",(function(){return u})),n.d(t,"l",(function(){return d})),n.d(t,"k",(function(){return h})),n.d(t,"y",(function(){return p})),n.d(t,"q",(function(){return m})),n.d(t,"p",(function(){return g})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return _})),n.d(t,"b",(function(){return b})),n.d(t,"i",(function(){return v})),n.d(t,"o",(function(){return E})),n.d(t,"v",(function(){return y})),n.d(t,"s",(function(){return S})),n.d(t,"z",(function(){return T})),n.d(t,"h",(function(){return C})),n.d(t,"n",(function(){return x})),n.d(t,"g",(function(){return O})),n.d(t,"A",(function(){return k})),n.d(t,"r",(function(){return R})),n.d(t,"d",(function(){return A})),n.d(t,"w",(function(){return I})),n.d(t,"x",(function(){return D})),n.d(t,"m",(function(){return F}));var o=n(24),r=n.n(o);function i(e){let t="";for(const n in e)e.hasOwnProperty(n)&&(t+="&"+encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.substring(1)}function a(e,t){for(const n in t)t.hasOwnProperty(n)&&(e=e.replace(n,encodeURIComponent(t[n])));return e}function s(e,t){const n=new Array(e.length);for(let o=0;o=0;o--)if(t(e[o],o,e))return e[o]}else for(o=0;o=0;o--)if(t(e[o],o,e))return r=e[o],e.splice(o,1),r}else for(o=0;o{setTimeout(n,e,t)})}function R(e){return null==e}function A(){let e,t;const n=new Promise((n,o)=>{e=n,t=o});return{resolve:e,reject:t,promise:n}}async function I(e,t){for(const n of await e)await t(await n)}function D(e){return new Promise(t=>t(e()))}let N;function F(){return N}},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(36);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})}));var r=n(37);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})}));var i=n(38);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}})}));var a=n(9);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}})}));var s=n(39);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}})}));var c=n(40);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}})}));var l=n(41);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}})}));var u=n(42);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}})}));var d=n(18);Object.keys(d).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}})}));var h=n(43);Object.keys(h).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return h[e]}})}));var p=n(44);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}})}));var m=n(45);Object.keys(m).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return m[e]}})}));var g=n(10);Object.keys(g).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return g[e]}})}));var f=n(7);Object.keys(f).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return f[e]}})}));var _=n(8);Object.keys(_).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return _[e]}})}));var b=n(46);Object.keys(b).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}})}));var v=n(47);Object.keys(v).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return v[e]}})}));var E=n(48);Object.keys(E).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return E[e]}})}));var y=n(49);Object.keys(y).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return y[e]}})}));var S=n(50);Object.keys(S).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return S[e]}})}));var T=n(51);Object.keys(T).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return T[e]}})}));var w=n(52);Object.keys(w).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}})}));var C=n(53);Object.keys(C).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return C[e]}})}));var x=n(11);Object.keys(x).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return x[e]}})}));var O=n(54);Object.keys(O).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return O[e]}})}));var k=n(55);Object.keys(k).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}})}));var R=n(56);Object.keys(R).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return R[e]}})}));var A=n(19);Object.keys(A).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return A[e]}})}));var I=n(57);Object.keys(I).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return I[e]}})}));var D=n(58);Object.keys(D).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return D[e]}})}));var N=n(59);Object.keys(N).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return N[e]}})}));var F=n(60);Object.keys(F).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return F[e]}})}));var M=n(12);Object.keys(M).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return M[e]}})}));var P=n(21);Object.keys(P).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return P[e]}})}));var L=n(22);Object.keys(L).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return L[e]}})}));var U=n(23);Object.keys(U).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return U[e]}})}));var B=n(61);Object.keys(B).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return B[e]}})}));var j=n(62);Object.keys(j).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return j[e]}})}));var G=n(20);Object.keys(G).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return G[e]}})}));var q=n(63);Object.keys(q).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return q[e]}})}))},function(e,t,n){var o,r;!function(i,a){"use strict";void 0===(r="function"==typeof(o=function(){var e=function(){},t="undefined"!=typeof window&&void 0!==window.navigator&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function o(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function r(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function i(n){return"debug"===n&&(n="log"),"undefined"!=typeof console&&("trace"===n&&t?r:void 0!==console[n]?o(console,n):void 0!==console.log?o(console,"log"):e)}function a(t,o){for(var r=0;r=0&&t<=i.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(r=t,!1!==o&&function(e){var t=(n[e]||"silent").toUpperCase();if("undefined"!=typeof window&&s){try{return void(window.localStorage[s]=t)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"="+t+";"}catch(e){}}}(t),a.call(i,t,e),"undefined"==typeof console&&t0&&a.length>r&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var o={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=h.bind(o);return r.listener=n,o.wrapFn=r,r}function m(e,t,n){var o=e._events;if(void 0===o)return[];var r=o[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=r[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var l=c.length,u=f(c,l);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,r=i;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1=0;o--)this.removeListener(e,t[o]);return this},s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.invertedDirection=function(e){if(e===o.ToWidget)return o.FromWidget;if(e===o.FromWidget)return o.ToWidget;throw new Error("Invalid direction")},t.WidgetApiDirection=void 0,t.WidgetApiDirection=o,function(e){e.ToWidget="toWidget",e.FromWidget="fromWidget"}(o||(t.WidgetApiDirection=o={}))},function(e,t,n){"use strict";var o,r;Object.defineProperty(t,"__esModule",{value:!0}),t.CurrentApiVersions=t.UnstableApiVersion=t.MatrixApiVersion=void 0,t.MatrixApiVersion=o,function(e){e.Prerelease1="0.0.1",e.Prerelease2="0.0.2"}(o||(t.MatrixApiVersion=o={})),t.UnstableApiVersion=r,function(e){e.MSC2762="org.matrix.msc2762",e.MSC2871="org.matrix.msc2871"}(r||(t.UnstableApiVersion=r={}));var i=[o.Prerelease1,o.Prerelease2,r.MSC2762,r.MSC2871];t.CurrentApiVersions=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PostmessageTransport=void 0;var o=n(6),r=n(3);function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:null;return!this.isState&&this.eventType===e&&("m.room.message"!==this.eventType||null===this.keyStr||this.keyStr===t)}}])&&i(t.prototype,n),r&&i(t,r),e}();t.WidgetEventCapability=s},function(e,t,n){"use strict";let o;n.d(t,"a",(function(){return o})),function(e){e.ClientReady="im.vector.ready",e.HangupCall="im.vector.hangup",e.OpenIntegrationManager="integration_manager_open",e.ViewRoom="io.element.view_room"}(o||(o={}))},,,function(e,t,n){var o,r,i;r=[],void 0===(i="function"==typeof(o=function(){var e=XMLHttpRequest;if(!e)throw new Error("missing XMLHttpRequest");function t(i,a){if("function"!=typeof a)throw new Error("Bad callback given: "+a);if(!i)throw new Error("No options given");var s=i.onResponse;if((i="string"==typeof i?{uri:i}:JSON.parse(JSON.stringify(i))).onResponse=s,i.verbose&&(t.log=function(){var e,t,n={},i=["trace","debug","info","warn","error"];for(t=0;t>18&63,i=c>>12&63,a=c>>6&63,s=63&c,p[d++]=l.charAt(r)+l.charAt(i)+l.charAt(a)+l.charAt(s)}while(u299)&&o.error){for(var r in e=new Error("CouchDB error: "+(o.error.reason||o.error.error)),o)e[r]=o[r];return n(e,t,o)}return n(e,t,o)}))},t})?o.apply(t,r):o)||(e.exports=i)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(0),r=n(1);class i{constructor(e){(e=e||{}).maxTimelineEntries=e.maxTimelineEntries||50,this.opts=e,this.accountData={},this.inviteRooms={},this.joinRooms={},this.nextBatch=null,this.groups={invite:{},join:{},leave:{}}}accumulate(e,t){this._accumulateRooms(e,t),this._accumulateGroups(e),this._accumulateAccountData(e),this.nextBatch=e.next_batch}_accumulateAccountData(e){e.account_data&&e.account_data.events&&e.account_data.events.forEach(e=>{this.accountData[e.type]=e})}_accumulateRooms(e,t){e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach(n=>{this._accumulateRoom(n,"invite",e.rooms.invite[n],t)}),e.rooms.join&&Object.keys(e.rooms.join).forEach(n=>{this._accumulateRoom(n,"join",e.rooms.join[n],t)}),e.rooms.leave&&Object.keys(e.rooms.leave).forEach(n=>{this._accumulateRoom(n,"leave",e.rooms.leave[n],t)}))}_accumulateRoom(e,t,n,r){switch(t){case"invite":this._accumulateInviteState(e,n);break;case"join":this.inviteRooms[e]&&delete this.inviteRooms[e],this._accumulateJoinState(e,n,r);break;case"leave":this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:o.a.error("Unknown cateogory: ",t)}}_accumulateInviteState(e,t){if(!t.invite_state||!t.invite_state.events)return;if(!this.inviteRooms[e])return void(this.inviteRooms[e]={invite_state:t.invite_state});const n=this.inviteRooms[e];t.invite_state.events.forEach(e=>{let t=!1;for(let o=0;o{o._accountData[e.type]=e}),t.unread_notifications&&(o._unreadNotifications=t.unread_notifications),t.summary){const e="m.heroes",n="m.invited_member_count",r="m.joined_member_count",i=o._summary,a=t.summary;i[e]=a[e]||i[e],i[r]=a[r]||i[r],i[n]=a[n]||i[n]}if(t.ephemeral&&t.ephemeral.events&&t.ephemeral.events.forEach(e=>{"m.receipt"===e.type&&e.content&&Object.keys(e.content).forEach(t=>{e.content[t]["m.read"]&&Object.keys(e.content[t]["m.read"]).forEach(n=>{o._readReceipts[n]={data:e.content[t]["m.read"][n],eventId:t}})})}),t.timeline&&t.timeline.limited&&(o._timeline=[]),t.state&&t.state.events&&t.state.events.forEach(e=>{a(o._currentState,e)}),t.timeline&&t.timeline.events&&t.timeline.events.forEach((e,r)=>{let i;if(a(o._currentState,e),n)i=e;else{i=Object.assign({},e),void 0!==i.unsigned&&(i.unsigned=Object.assign({},i.unsigned));const t=e.unsigned?e.unsigned.age:e.age;void 0!==t&&(i._localTs=Date.now()-t)}o._timeline.push({event:i,token:0===r?t.timeline.prev_batch:null})}),o._timeline.length>this.opts.maxTimelineEntries){for(let e=o._timeline.length-this.opts.maxTimelineEntries;e{this._accumulateGroup(t,"invite",e.groups.invite[t])}),e.groups.join&&Object.keys(e.groups.join).forEach(t=>{this._accumulateGroup(t,"join",e.groups.join[t])}),e.groups.leave&&Object.keys(e.groups.leave).forEach(t=>{this._accumulateGroup(t,"leave",e.groups.leave[t])}))}_accumulateGroup(e,t,n){for(const t of["invite","join","leave"])delete this.groups[t][e];this.groups[t][e]=n}getJSON(e){const t={join:{},invite:{},leave:{}};Object.keys(this.inviteRooms).forEach(e=>{t.invite[e]=this.inviteRooms[e]}),Object.keys(this.joinRooms).forEach(n=>{const o=this.joinRooms[n],i={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:o._unreadNotifications,summary:o._summary};Object.keys(o._accountData).forEach(e=>{i.account_data.events.push(o._accountData[e])});const s={type:"m.receipt",room_id:n,content:{}};Object.keys(o._readReceipts).forEach(e=>{const t=o._readReceipts[e];s.content[t.eventId]||(s.content[t.eventId]={"m.read":{}}),s.content[t.eventId]["m.read"][e]=t.data}),Object.keys(s.content).length>0&&i.ephemeral.events.push(s),o._timeline.forEach(t=>{if(!i.timeline.prev_batch){if(!t.token)return;i.timeline.prev_batch=t.token}let n;!e&&t.event._localTs?(n=Object.assign({},t.event),void 0!==n.unsigned&&(n.unsigned=Object.assign({},n.unsigned)),delete n._localTs,n.unsigned=n.unsigned||{},n.unsigned.age=Date.now()-t.event._localTs):n=t.event,i.timeline.events.push(n)});const c=Object.create(null);for(let e=i.timeline.events.length-1;e>=0;e--){const t=i.timeline.events[e];if(null===t.state_key||void 0===t.state_key)continue;const n=Object(r.c)(t);n.unsigned&&(n.unsigned.prev_content&&(n.content=n.unsigned.prev_content),n.unsigned.prev_sender&&(n.sender=n.unsigned.prev_sender)),a(c,n)}Object.keys(o._currentState).forEach(e=>{Object.keys(o._currentState[e]).forEach(t=>{let n=o._currentState[e][t];c[e]&&c[e][t]&&(n=c[e][t]),i.state.events.push(n)})}),t.join[n]=i});const n=[];return Object.keys(this.accountData).forEach(e=>{n.push(this.accountData[e])}),{nextBatch:this.nextBatch,roomsData:t,groupsData:this.groups,accountData:n}}getNextBatchToken(){return this.nextBatch}}function a(e,t){null!==t.state_key&&void 0!==t.state_key&&t.type&&(e[t.type]||(e[t.type]=Object.create(null)),e[t.type][t.state_key]=t)}},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixWidgetType=void 0,t.MatrixWidgetType=o,function(e){e.Custom="m.custom",e.JitsiMeet="m.jitsi",e.Stickerpicker="m.stickerpicker"}(o||(t.MatrixWidgetType=o={}))},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.BuiltInModalButtonID=void 0,t.BuiltInModalButtonID=o,function(e){e.Close="m.close"}(o||(t.BuiltInModalButtonID=o={}))},function(e,t,n){"use strict";function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n{let r=!0;const i=e.open(t);i.onupgradeneeded=()=>{r=!1},i.onblocked=()=>o(),i.onsuccess=()=>{i.result.close(),r||e.deleteDatabase(t),n(r)},i.onerror=e=>o(e.target.error)})}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var o=n(17),r=n(1),i=n(25),a=n(0);function s(e,t,n){const o=e.openCursor(t);return new Promise((e,t)=>{const r=[];o.onerror=e=>{t(new Error("Query failed: "+e.target.errorCode))},o.onsuccess=t=>{const o=t.target.result;o?(r.push(n(o)),o.continue()):e(r)}})}function c(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function l(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function u(e){return l(e).then(e=>e.target.result)}function d(e,t){this.indexedDB=e,this._dbName="matrix-js-sdk:"+(t||"default"),this.db=null,this._disconnected=!0,this._syncAccumulator=new o.a,this._isNewlyCreated=!1}d.exists=function(e,t){return t="matrix-js-sdk:"+(t||"default"),i.a(e,t)},d.prototype={connect:function(){if(!this._disconnected)return a.a.log("LocalIndexedDBStoreBackend.connect: already connected or connecting"),Promise.resolve();this._disconnected=!1,a.a.log("LocalIndexedDBStoreBackend.connect: connecting...");const e=this.indexedDB.open(this._dbName,3);return e.onupgradeneeded=e=>{const t=e.target.result,n=e.oldVersion;a.a.log("LocalIndexedDBStoreBackend.connect: upgrading from "+n),n<1&&(this._isNewlyCreated=!0,function(e){e.createObjectStore("users",{keyPath:["userId"]}),e.createObjectStore("accountData",{keyPath:["type"]}),e.createObjectStore("sync",{keyPath:["clobber"]})}(t)),n<2&&function(e){e.createObjectStore("oob_membership_events",{keyPath:["room_id","state_key"]}).createIndex("room","room_id")}(t),n<3&&function(e){e.createObjectStore("client_options",{keyPath:["clobber"]})}(t)},e.onblocked=()=>{a.a.log("can't yet open LocalIndexedDBStoreBackend because it is open elsewhere")},a.a.log("LocalIndexedDBStoreBackend.connect: awaiting connection..."),l(e).then(e=>(a.a.log("LocalIndexedDBStoreBackend.connect: connected"),this.db=e.target.result,this.db.onversionchange=()=>{this.db.close()},this._init()))},isNewlyCreated:function(){return Promise.resolve(this._isNewlyCreated)},_init:function(){return Promise.all([this._loadAccountData(),this._loadSyncData()]).then(([e,t])=>{a.a.log("LocalIndexedDBStoreBackend: loaded initial data"),this._syncAccumulator.accumulate({next_batch:t.nextBatch,rooms:t.roomsData,groups:t.groupsData,account_data:{events:e}},!0)})},getOutOfBandMembers:function(e){return new Promise((t,n)=>{const o=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),r=IDBKeyRange.only(e),i=o.openCursor(r),a=[];let s=!1;i.onsuccess=e=>{const n=e.target.result;if(!n)return a.length||s?t(a):t(null);const o=n.value;o.oob_written?s=!0:a.push(o),n.continue()},i.onerror=e=>{n(e)}}).then(t=>(a.a.log("LL: got "+(t&&t.length)+` membershipEvents from storage for room ${e} ...`),t))},setOutOfBandMembers:async function(e,t){a.a.log("LL: backend about to store "+t.length+" members for "+e);const n=this.db.transaction(["oob_membership_events"],"readwrite"),o=n.objectStore("oob_membership_events");t.forEach(e=>{o.put(e)});const r={room_id:e,oob_written:!0,state_key:0};o.put(r),await c(n),a.a.log(`LL: backend done storing for ${e}!`)},clearOutOfBandMembers:async function(e){const t=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),n=IDBKeyRange.only(e),o=u(t.openKeyCursor(n,"next")).then(e=>e&&e.primaryKey[1]),r=u(t.openKeyCursor(n,"prev")).then(e=>e&&e.primaryKey[1]),[i,s]=await Promise.all([o,r]),c=this.db.transaction(["oob_membership_events"],"readwrite").objectStore("oob_membership_events"),l=IDBKeyRange.bound([e,i],[e,s]);var d;a.a.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,i],[e,s]),await(d=c.delete(l),new Promise((e,t)=>{d.onsuccess=()=>e(d),d.onerror=e=>t(e)}))},clearDatabase:function(){return new Promise((e,t)=>{a.a.log("Removing indexeddb instance: "+this._dbName);const n=this.indexedDB.deleteDatabase(this._dbName);n.onblocked=()=>{a.a.log("can't yet delete indexeddb "+this._dbName+" because it is open elsewhere")},n.onerror=t=>{a.a.warn("unable to delete js-sdk store indexeddb: "+t.target.error),e()},n.onsuccess=()=>{a.a.log("Removed indexeddb instance: "+this._dbName),e()}})},getSavedSync:function(e){void 0===e&&(e=!0);const t=this._syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve(r.c(t)):Promise.resolve(t):Promise.resolve(null)},getNextBatchToken:function(){return Promise.resolve(this._syncAccumulator.getNextBatchToken())},setSyncData:function(e){return Promise.resolve().then(()=>{this._syncAccumulator.accumulate(e)})},syncToDatabase:function(e){const t=this._syncAccumulator.getJSON(!0);return Promise.all([this._persistUserPresenceEvents(e),this._persistAccountData(t.accountData),this._persistSyncData(t.nextBatch,t.roomsData,t.groupsData)])},_persistSyncData:function(e,t,n){return a.a.log("Persisting sync data up to ",e),r.x(()=>{const o=this.db.transaction(["sync"],"readwrite");return o.objectStore("sync").put({clobber:"-",nextBatch:e,roomsData:t,groupsData:n}),c(o)})},_persistAccountData:function(e){return r.x(()=>{const t=this.db.transaction(["accountData"],"readwrite"),n=t.objectStore("accountData");for(let t=0;t{const t=this.db.transaction(["users"],"readwrite"),n=t.objectStore("users");for(const t of e)n.put({userId:t[0],event:t[1]});return c(t)})},getUserPresenceEvents:function(){return r.x(()=>s(this.db.transaction(["users"],"readonly").objectStore("users"),void 0,e=>[e.value.userId,e.value.event]))},_loadAccountData:function(){return a.a.log("LocalIndexedDBStoreBackend: loading account data..."),r.x(()=>s(this.db.transaction(["accountData"],"readonly").objectStore("accountData"),void 0,e=>e.value).then(e=>(a.a.log("LocalIndexedDBStoreBackend: loaded account data"),e)))},_loadSyncData:function(){return a.a.log("LocalIndexedDBStoreBackend: loading sync data..."),r.x(()=>s(this.db.transaction(["sync"],"readonly").objectStore("sync"),void 0,e=>e.value).then(e=>(a.a.log("LocalIndexedDBStoreBackend: loaded sync data"),e.length>1&&a.a.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{})))},getClientOptions:function(){return Promise.resolve().then(()=>s(this.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,e=>{if(e.value&&e.value&&e.value.options)return e.value.options}).then(e=>e[0]))},storeClientOptions:async function(e){const t=this.db.transaction(["client_options"],"readwrite");t.objectStore("client_options").put({clobber:"-",options:e}),await c(t)}}},,,,,function(e,t,n){"use strict";(function(e){var o=n(34),r=n(35),i=n(32);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return j(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(o)return j(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,n){var o=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,n);case"utf8":case"utf-8":return x(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return k(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,n);default:if(o)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),o=!0}}function f(e,t,n){var o=e[t];e[t]=e[n],e[n]=o}function _(e,t,n,o,r){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=c.from(t,o)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,o,r);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,o,r);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,o,r){var i,a=1,s=e.length,c=t.length;if(void 0!==o&&("ucs2"===(o=String(o).toLowerCase())||"ucs-2"===o||"utf16le"===o||"utf-16le"===o)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){var u=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var d=!0,h=0;hr&&(o=r):o=r;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");o>i/2&&(o=i/2);for(var a=0;a>8,r=n%256,i.push(r),i.push(o);return i}(t,e.length-n),e,n,o)}function C(e,t,n){return 0===t&&n===e.length?o.fromByteArray(e):o.fromByteArray(e.slice(t,n))}function x(e,t,n){n=Math.min(e.length,n);for(var o=[],r=t;r239?4:l>223?3:l>191?2:1;if(r+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(i=e[r+1]))&&(c=(31&l)<<6|63&i)>127&&(u=c);break;case 3:i=e[r+1],a=e[r+2],128==(192&i)&&128==(192&a)&&(c=(15&l)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:i=e[r+1],a=e[r+2],s=e[r+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,o.push(u>>>10&1023|55296),u=56320|1023&u),o.push(u),r+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",o=0;for(;o0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,o,r){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===r&&(r=this.length),t<0||n>e.length||o<0||r>this.length)throw new RangeError("out of range index");if(o>=r&&t>=n)return 0;if(o>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(r>>>=0)-(o>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),l=this.slice(o,r),u=e.slice(t,n),d=0;dr)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");o||(o="utf8");for(var i=!1;;)switch(o){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":return y(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return T(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+o);o=(""+o).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O(e,t,n){var o="";n=Math.min(e.length,n);for(var r=t;ro)&&(n=o);for(var r="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,o,r,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function N(e,t,n,o){t<0&&(t=65535+t+1);for(var r=0,i=Math.min(e.length-n,2);r>>8*(o?r:1-r)}function F(e,t,n,o){t<0&&(t=4294967295+t+1);for(var r=0,i=Math.min(e.length-n,4);r>>8*(o?r:3-r)&255}function M(e,t,n,o,r,i){if(n+o>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(e,t,n,o,i){return i||M(e,0,n,4),r.write(e,t,n,o,23,4),n+4}function L(e,t,n,o,i){return i||M(e,0,n,8),r.write(e,t,n,o,52,8),n+8}c.prototype.slice=function(e,t){var n,o=this.length;if((e=~~e)<0?(e+=o)<0&&(e=0):e>o&&(e=o),(t=void 0===t?o:~~t)<0?(t+=o)<0&&(t=0):t>o&&(t=o),t0&&(r*=256);)o+=this[e+--t]*r;return o},c.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var o=this[e],r=1,i=0;++i=(r*=128)&&(o-=Math.pow(2,8*t)),o},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var o=t,r=1,i=this[e+--o];o>0&&(r*=256);)i+=this[e+--o]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),r.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),r.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),r.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),r.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,o){(e=+e,t|=0,n|=0,o)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+r]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):F(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,o){if(e=+e,t|=0,!o){var r=Math.pow(2,8*n-1);D(this,e,t,n,r-1,-r)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,o){if(e=+e,t|=0,!o){var r=Math.pow(2,8*n-1);D(this,e,t,n,r-1,-r)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):F(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return P(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return P(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return L(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return L(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,o){if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("sourceStart out of bounds");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t=0;--r)e[r+t]=this[r+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===o){(t-=3)>-1&&i.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function G(e){return o.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,o){for(var r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}}).call(this,n(5))},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e){e.exports=JSON.parse('{"0":"O","1":"l","֭":"֖","֮":"֘","֨":"֙","֤":"֚","᪴":"ۛ","⃛":"ۛ","ؙ":"̓","ࣳ":"̓","̓":"̓","̕":"̓","ُ":"̓","ٝ":"̔","֜":"́","֝":"́","ؘ":"́","݇":"́","́":"́","॔":"́","َ":"́","̀":"̀","॓":"̀","̌":"̆","꙼":"̆","٘":"̆","ٚ":"̆","ͮ":"̆","ۨ":"̆̇","̐":"̆̇","ँ":"̆̇","ঁ":"̆̇","ઁ":"̆̇","ଁ":"̆̇","ఀ":"̆̇","ಁ":"̆̇","ഁ":"̆̇","𑒿":"̆̇","᳐":"̂","̑":"̂","ٛ":"̂","߮":"̂","꛰":"̂","֯":"̊","۟":"̊","៓":"̊","゚":"̊","ْ":"̊","ஂ":"̊","ံ":"̊","ំ":"̊","𑌀":"̊","ํ":"̊","ໍ":"̊","ͦ":"̊","ⷪ":"̊","࣫":"̈","߳":"̈","ً":"̋","ࣰ":"̋","͂":"̃","ٓ":"̃","ׄ":"̇","۬":"̇","݀":"̇","࣪":"̇","݁":"̇","͘":"̇","ֹ":"̇","ֺ":"̇","ׂ":"̇","ׁ":"̇","߭":"̇","ं":"̇","ਂ":"̇","ં":"̇","்":"̇","̷":"̸","᪷":"̨","̢":"̨","ͅ":"̨","᳒":"̄","̅":"̄","ٙ":"̄","߫":"̄","꛱":"̄","᳚":"̎","ٗ":"̒","͗":"͐","ࣿ":"͐","ࣸ":"͐","ऀ":"͒","᳭":"̖","᳜":"̩","ٖ":"̩","᳕":"̫","͇":"̳","ࣹ":"͔","ࣺ":"͕","゛":"゙","゜":"゚","̶":"̵","〬":"̉","ׅ":"̣","࣭":"̣","᳝":"̣","ִ":"̣","ٜ":"̣","़":"̣","়":"̣","਼":"̣","઼":"̣","଼":"̣","𑇊":"̣","𑓃":"̣","𐨺":"̣","࣮":"̤","᳞":"̤","༷":"̥","〭":"̥","̧":"̦","̡":"̦","̹":"̦","᳙":"̭","᳘":"̮","॒":"̱","̠":"̱","ࣱ":"ٌ","ࣨ":"ٌ","ࣥ":"ٌ","ﱞ":"ﹲّ","ࣲ":"ٍ","ﱟ":"ﹴّ","ﳲ":"ﹷّ","ﱠ":"ﹶّ","ﳳ":"ﹹّ","ﱡ":"ﹸّ","ؚ":"ِ","̗":"ِ","ﳴ":"ﹻّ","ﱢ":"ﹺّ","ﱣ":"ﹼٰ","ٟ":"ٕ","̍":"ٰ","݂":"ܼ","ਃ":"ঃ","ః":"ঃ","ಃ":"ঃ","ഃ":"ঃ","ඃ":"ঃ","း":"ঃ","𑓁":"ঃ","់":"่","່":"่","້":"้","໊":"๊","໋":"๋","꙯":"⃩","\\u2028":" ","\\u2029":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","ߺ":"_","﹍":"_","﹎":"_","﹏":"_","‐":"-","‑":"-","‒":"-","–":"-","﹘":"-","۔":"-","⁃":"-","˗":"-","−":"-","➖":"-","Ⲻ":"-","⨩":"-̓","⸚":"-̈","﬩":"-̇","∸":"-̇","⨪":"-̣","꓾":"-.","~":"〜","؍":",","٫":",","‚":",","¸":",","ꓹ":",","⸲":"،","٬":"،",";":";","⸵":"؛","ः":":","ઃ":":",":":":","։":":","܃":":","܄":":","᛬":":","︰":":","᠃":":","᠉":":","⁚":":","׃":":","˸":":","꞉":":","∶":":","ː":":","ꓽ":":","⩴":"::=","⧴":":→","!":"!","ǃ":"!","ⵑ":"!","‼":"!!","⁉":"!?","ʔ":"?","Ɂ":"?","ॽ":"?","Ꭾ":"?","ꛫ":"?","⁈":"?!","⁇":"??","⸮":"؟","𝅭":".","․":".","܁":".","܂":".","꘎":".","𐩐":".","٠":".","۰":".","ꓸ":".","ꓻ":".,","‥":"..","ꓺ":"..","…":"...","꛴":"꛳꛳","・":"·","・":"·","᛫":"·","·":"·","⸱":"·","𐄁":"·","•":"·","‧":"·","∙":"·","⋅":"·","ꞏ":"·","ᐧ":"·","⋯":"···","ⵈ":"···","ᑄ":"·<","⋗":"·>","ᐷ":"·>","ᑀ":"·>","ᔯ":"·4","ᑾ":"·b","ᒀ":"·ḃ","ᑺ":"·d","ᒘ":"·J","ᒶ":"·L","ᑶ":"·P","ᑗ":"·U","ᐺ":"·V","ᐼ":"·Ʌ","ᒮ":"·Γ","ᐎ":"·Δ","ᑙ":"·Ո","ᐌ":"·ᐁ","ᐐ":"·ᐄ","ᐒ":"·ᐅ","ᐔ":"·ᐆ","ᐗ":"·ᐊ","ᐙ":"·ᐋ","ᐾ":"·ᐲ","ᑂ":"·ᐴ","ᑆ":"·ᐹ","ᑛ":"·ᑏ","ᑔ":"·ᑐ","ᑝ":"·ᑐ","ᑟ":"·ᑑ","ᑡ":"·ᑕ","ᑣ":"·ᑖ","ᑴ":"·ᑫ","ᑸ":"·ᑮ","ᑼ":"·ᑰ","ᒒ":"·ᒉ","ᒔ":"·ᒋ","ᒖ":"·ᒌ","ᒚ":"·ᒎ","ᒜ":"·ᒐ","ᒞ":"·ᒑ","ᒬ":"·ᒣ","ᒰ":"·ᒦ","ᒲ":"·ᒧ","ᒴ":"·ᒨ","ᒸ":"·ᒫ","ᓉ":"·ᓀ","ᣆ":"·ᓂ","ᣈ":"·ᓃ","ᣊ":"·ᓄ","ᣌ":"·ᓅ","ᓋ":"·ᓇ","ᓍ":"·ᓈ","ᓜ":"·ᓓ","ᓞ":"·ᓕ","ᓠ":"·ᓖ","ᓢ":"·ᓗ","ᓤ":"·ᓘ","ᓦ":"·ᓚ","ᓨ":"·ᓛ","ᓶ":"·ᓭ","ᓸ":"·ᓯ","ᓺ":"·ᓰ","ᓼ":"·ᓱ","ᓾ":"·ᓲ","ᔀ":"·ᓴ","ᔂ":"·ᓵ","ᔗ":"·ᔐ","ᔙ":"·ᔑ","ᔛ":"·ᔒ","ᔝ":"·ᔓ","ᔟ":"·ᔔ","ᔡ":"·ᔕ","ᔣ":"·ᔖ","ᔱ":"·ᔨ","ᔳ":"·ᔩ","ᔵ":"·ᔪ","ᔷ":"·ᔫ","ᔹ":"·ᔭ","ᔻ":"·ᔮ","ᣎ":"·ᕃ","ᣏ":"·ᕆ","ᣐ":"·ᕇ","ᣑ":"·ᕈ","ᣒ":"·ᕉ","ᣓ":"·ᕋ","ᕎ":"·ᕌ","ᕛ":"·ᕚ","ᕨ":"·ᕧ","ᢳ":"·ᢱ","ᢶ":"·ᢴ","ᢹ":"·ᢸ","ᣂ":"·ᣀ","꠰":"।","॥":"।।","᰼":"᰻᰻","။":"၊၊","᪩":"᪨᪨","᪫":"᪪᪨","᭟":"᭞᭞","𐩗":"𐩖𐩖","𑑌":"𑑋𑑋","𑙂":"𑙁𑙁","𑱂":"𑱁𑱁","᱿":"᱾᱾","՝":"\'","'":"\'","‘":"\'","’":"\'","‛":"\'","′":"\'","‵":"\'","՚":"\'","׳":"\'","`":"\'","`":"\'","`":"\'","´":"\'","΄":"\'","´":"\'","᾽":"\'","᾿":"\'","῾":"\'","ʹ":"\'","ʹ":"\'","ˈ":"\'","ˊ":"\'","ˋ":"\'","˴":"\'","ʻ":"\'","ʽ":"\'","ʼ":"\'","ʾ":"\'","ꞌ":"\'","י":"\'","ߴ":"\'","ߵ":"\'","ᑊ":"\'","ᛌ":"\'","𖽑":"\'","𖽒":"\'","᳓":"\'\'","\\"":"\'\'",""":"\'\'","“":"\'\'","”":"\'\'","‟":"\'\'","″":"\'\'","‶":"\'\'","〃":"\'\'","״":"\'\'","˝":"\'\'","ʺ":"\'\'","˶":"\'\'","ˮ":"\'\'","ײ":"\'\'","‴":"\'\'\'","‷":"\'\'\'","⁗":"\'\'\'\'","Ɓ":"\'B","Ɗ":"\'D","ʼn":"\'n","Ƥ":"\'P","Ƭ":"\'T","Ƴ":"\'Y","[":"(","❨":"(","❲":"(","〔":"(","﴾":"(","⸨":"((","㈠":"(ー)","⑵":"(2)","⒇":"(2O)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⒜":"(a)","🄐":"(A)","⒝":"(b)","🄑":"(B)","⒞":"(c)","🄒":"(C)","⒟":"(d)","🄓":"(D)","⒠":"(e)","🄔":"(E)","⒡":"(f)","🄕":"(F)","⒢":"(g)","🄖":"(G)","⒣":"(h)","🄗":"(H)","⒤":"(i)","⒥":"(j)","🄙":"(J)","⒦":"(k)","🄚":"(K)","⑴":"(l)","🄘":"(l)","⒧":"(l)","🄛":"(L)","⑿":"(l2)","⒀":"(l3)","⒁":"(l4)","⒂":"(l5)","⒃":"(l6)","⒄":"(l7)","⒅":"(l8)","⒆":"(l9)","⑾":"(ll)","⑽":"(lO)","🄜":"(M)","⒩":"(n)","🄝":"(N)","⒪":"(o)","🄞":"(O)","⒫":"(p)","🄟":"(P)","⒬":"(q)","🄠":"(Q)","⒭":"(r)","🄡":"(R)","⒨":"(rn)","⒮":"(s)","🄢":"(S)","🄪":"(S)","⒯":"(t)","🄣":"(T)","⒰":"(u)","🄤":"(U)","⒱":"(v)","🄥":"(V)","⒲":"(w)","🄦":"(W)","⒳":"(x)","🄧":"(X)","⒴":"(y)","🄨":"(Y)","⒵":"(z)","🄩":"(Z)","㈀":"(ᄀ)","㈎":"(가)","㈁":"(ᄂ)","㈏":"(나)","㈂":"(ᄃ)","㈐":"(다)","㈃":"(ᄅ)","㈑":"(라)","㈄":"(ᄆ)","㈒":"(마)","㈅":"(ᄇ)","㈓":"(바)","㈆":"(ᄉ)","㈔":"(사)","㈇":"(ᄋ)","㈕":"(아)","㈝":"(오전)","㈞":"(오후)","㈈":"(ᄌ)","㈖":"(자)","㈜":"(주)","㈉":"(ᄎ)","㈗":"(차)","㈊":"(ᄏ)","㈘":"(카)","㈋":"(ᄐ)","㈙":"(타)","㈌":"(ᄑ)","㈚":"(파)","㈍":"(ᄒ)","㈛":"(하)","㈦":"(七)","㈢":"(三)","🉁":"(三)","㈨":"(九)","㈡":"(二)","🉂":"(二)","㈤":"(五)","㈹":"(代)","㈽":"(企)","㉁":"(休)","㈧":"(八)","㈥":"(六)","㈸":"(労)","🉇":"(勝)","㈩":"(十)","㈿":"(協)","㈴":"(名)","㈺":"(呼)","㈣":"(四)","㈯":"(土)","㈻":"(学)","🉃":"(安)","🉅":"(打)","🉈":"(敗)","㈰":"(日)","㈪":"(月)","㈲":"(有)","㈭":"(木)","🉀":"(本)","㈱":"(株)","㈬":"(水)","㈫":"(火)","🉄":"(点)","㈵":"(特)","🉆":"(盗)","㈼":"(監)","㈳":"(社)","㈷":"(祝)","㉀":"(祭)","㉂":"(自)","㉃":"(至)","㈶":"(財)","㈾":"(資)","㈮":"(金)","]":")","❩":")","❳":")","〕":")","﴿":")","⸩":"))","❴":"{","𝄔":"{","❵":"}","〚":"⟦","〛":"⟧","⟨":"❬","〈":"❬","〈":"❬","㇛":"❬","く":"❬","𡿨":"❬","⟩":"❭","〉":"❭","〉":"❭","^":"︿","⸿":"¶","⁎":"*","٭":"*","∗":"*","𐌟":"*","᜵":"/","⁁":"/","∕":"/","⁄":"/","╱":"/","⟋":"/","⧸":"/","𝈺":"/","㇓":"/","〳":"/","Ⳇ":"/","ノ":"/","丿":"/","⼃":"/","⧶":"/̄","⫽":"//","⫻":"///","\":"\\\\","﹨":"\\\\","∖":"\\\\","⟍":"\\\\","⧵":"\\\\","⧹":"\\\\","𝈏":"\\\\","𝈻":"\\\\","㇔":"\\\\","丶":"\\\\","⼂":"\\\\","⳹":"\\\\\\\\","⑊":"\\\\\\\\","⟈":"\\\\ᑕ","ꝸ":"&","૰":"॰","𑂻":"॰","𑇇":"॰","⚬":"॰","𑇛":"꣼","៙":"๏","៕":"๚","៚":"๛","༌":"་","༎":"།།","˄":"^","ˆ":"^","꙾":"ˇ","˘":"ˇ","‾":"ˉ","﹉":"ˉ","﹊":"ˉ","﹋":"ˉ","﹌":"ˉ","¯":"ˉ"," ̄":"ˉ","▔":"ˉ","ъ":"ˉb","ꙑ":"ˉbi","͵":"ˏ","˻":"˪","꜖":"˪","꜔":"˫","。":"˳","⸰":"°","˚":"°","∘":"°","○":"°","◦":"°","⍜":"°̲","⍤":"°̈","℃":"°C","℉":"°F","௵":"௳","༛":"༚༚","༟":"༚༝","࿎":"༝༚","༞":"༝༝","Ⓒ":"©","Ⓡ":"®","Ⓟ":"℗","𝈛":"⅄","⯬":"↞","⯭":"↟","⯮":"↠","⯯":"↡","↵":"↲","⥥":"⇃⇂","⥯":"⇃ᛚ","𝛛":"∂","𝜕":"∂","𝝏":"∂","𝞉":"∂","𝟃":"∂","𞣌":"∂","𞣍":"∂̵","ð":"∂̵","⌀":"∅","𝛁":"∇","𝛻":"∇","𝜵":"∇","𝝯":"∇","𝞩":"∇","𑢨":"∇","⍢":"∇̈","⍫":"∇̴","█":"∎","■":"∎","⨿":"∐","᛭":"+","➕":"+","𐊛":"+","⨣":"+̂","⨢":"+̊","⨤":"+̃","∔":"+̇","⨥":"+̣","⨦":"+̰","⨧":"+₂","➗":"÷","‹":"<","❮":"<","˂":"<","𝈶":"<","ᐸ":"<","ᚲ":"<","⋖":"<·","Ⲵ":"<·","ᑅ":"<·","≪":"<<","⋘":"<<<","᐀":"=","⹀":"=","゠":"=","꓿":"=","≚":"=̆","≙":"=̂","≗":"=̊","≐":"=̇","≑":"=̣̇","⩮":"=⃰","⩵":"==","⩶":"===","≞":"=ͫ","›":">","❯":">","˃":">","𝈷":">","ᐳ":">","𖼿":">","ᑁ":">·","⪥":"><","≫":">>","⨠":">>","⋙":">>>","⁓":"~","˜":"~","῀":"~","∼":"~","⍨":"~̈","⸞":"~̇","⩪":"~̇","⸟":"~̣","𞣈":"∠","⋀":"∧","∯":"∮∮","∰":"∮∮∮","⸫":"∴","⸪":"∵","⸬":"∷","𑇞":"≈","♎":"≏","🝞":"≏","≣":"≡","⨃":"⊍","⨄":"⊎","𝈸":"⊏","𝈹":"⊐","⨅":"⊓","⨆":"⊔","⨂":"⊗","⍟":"⊛","🝱":"⊠","🝕":"⊡","◁":"⊲","▷":"⊳","⍣":"⋆̈","︴":"⌇","◠":"⌒","⨽":"⌙","⌥":"⌤","⧇":"⌻","◎":"⌾","⦾":"⌾","⧅":"⍂","⦰":"⍉","⏃":"⍋","⏂":"⍎","⏁":"⍕","⏆":"⍭","☸":"⎈","︵":"⏜","︶":"⏝","︷":"⏞","︸":"⏟","︹":"⏠","︺":"⏡","▱":"⏥","⏼":"⏻","︱":"│","|":"│","┃":"│","┏":"┌","┣":"├","▐":"▌","▗":"▖","▝":"▘","☐":"□","■":"▪","▸":"▶","►":"▶","⳩":"☧","🜊":"☩","🌒":"☽","🌙":"☽","⏾":"☾","🌘":"☾","⧙":"⦚","🜺":"⧟","⨾":"⨟","𐆠":"⳨","♩":"𝅘𝅥","♪":"𝅘𝅥𝅮","⓪":"🄍","↺":"🄎","˙":"ॱ","ൎ":"ॱ","-":"ー","—":"ー","―":"ー","─":"ー","━":"ー","㇐":"ー","ꟷ":"ー","ᅳ":"ー","ㅡ":"ー","一":"ー","⼀":"ー","ᆖ":"ーー","ힹ":"ーᅡ","ힺ":"ーᅥ","ힻ":"ーᅥ丨","ힼ":"ーᅩ","ᆕ":"ーᅮ","ᅴ":"ー丨","ㅢ":"ー丨","ᆗ":"ー丨ᅮ","🄏":"$⃠","₤":"£","〒":"₸","〶":"₸","᭜":"᭐","꧆":"꧐","𑓑":"১","೧":"౧","ၥ":"၁","①":"➀","⑩":"➉","⏨":"₁₀","𝟐":"2","𝟚":"2","𝟤":"2","𝟮":"2","𝟸":"2","🯲":"2","Ꝛ":"2","Ƨ":"2","Ϩ":"2","Ꙅ":"2","ᒿ":"2","ꛯ":"2","ꧏ":"٢","۲":"٢","૨":"२","𑓒":"২","೨":"౨","②":"➁","ƻ":"2̵","🄃":"2,","⒉":"2.","㏵":"22日","㍮":"22点","㏶":"23日","㍯":"23点","㏷":"24日","㍰":"24点","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏴":"2l日","㍭":"2l点","⒛":"2O.","㏳":"2O日","㍬":"2O点","෩":"෨ා","෯":"෨ී","㏡":"2日","㋁":"2月","㍚":"2点","𝈆":"3","𝟑":"3","𝟛":"3","𝟥":"3","𝟯":"3","𝟹":"3","🯳":"3","Ɜ":"3","Ȝ":"3","Ʒ":"3","Ꝫ":"3","Ⳍ":"3","З":"3","Ӡ":"3","𖼻":"3","𑣊":"3","۳":"٣","𞣉":"٣","૩":"३","③":"➂","Ҙ":"3̦","🄄":"3,","⒊":"3.","㏾":"3l日","㏽":"3O日","㏢":"3日","㋂":"3月","㍛":"3点","𝟒":"4","𝟜":"4","𝟦":"4","𝟰":"4","𝟺":"4","🯴":"4","Ꮞ":"4","𑢯":"4","۴":"٤","૪":"४","④":"➃","🄅":"4,","⒋":"4.","ᔰ":"4·","㏣":"4日","㋃":"4月","㍜":"4点","𝟓":"5","𝟝":"5","𝟧":"5","𝟱":"5","𝟻":"5","🯵":"5","Ƽ":"5","𑢻":"5","⑤":"➄","🄆":"5,","⒌":"5.","㏤":"5日","㋄":"5月","㍝":"5点","𝟔":"6","𝟞":"6","𝟨":"6","𝟲":"6","𝟼":"6","🯶":"6","Ⳓ":"6","б":"6","Ꮾ":"6","𑣕":"6","۶":"٦","𑓖":"৬","⑥":"➅","🄇":"6,","⒍":"6.","㏥":"6日","㋅":"6月","㍞":"6点","𝈒":"7","𝟕":"7","𝟟":"7","𝟩":"7","𝟳":"7","𝟽":"7","🯷":"7","𐓒":"7","𑣆":"7","⑦":"➆","🄈":"7,","⒎":"7.","㏦":"7日","㋆":"7月","㍟":"7点","ଃ":"8","৪":"8","੪":"8","𞣋":"8","𝟖":"8","𝟠":"8","𝟪":"8","𝟴":"8","𝟾":"8","🯸":"8","ȣ":"8","Ȣ":"8","𐌚":"8","૮":"८","⑧":"➇","🄉":"8,","⒏":"8.","㏧":"8日","㋇":"8月","㍠":"8点","੧":"9","୨":"9","৭":"9","൭":"9","𝟗":"9","𝟡":"9","𝟫":"9","𝟵":"9","𝟿":"9","🯹":"9","Ꝯ":"9","Ⳋ":"9","𑣌":"9","𑢬":"9","𑣖":"9","१":"٩","𑣤":"٩","۹":"٩","೯":"౯","⑨":"➈","🄊":"9,","⒐":"9.","㏨":"9日","㋈":"9月","㍡":"9点","⍺":"a","a":"a","𝐚":"a","𝑎":"a","𝒂":"a","𝒶":"a","𝓪":"a","𝔞":"a","𝕒":"a","𝖆":"a","𝖺":"a","𝗮":"a","𝘢":"a","𝙖":"a","𝚊":"a","ɑ":"a","α":"a","𝛂":"a","𝛼":"a","𝜶":"a","𝝰":"a","𝞪":"a","а":"a","ⷶ":"ͣ","A":"A","𝐀":"A","𝐴":"A","𝑨":"A","𝒜":"A","𝓐":"A","𝔄":"A","𝔸":"A","𝕬":"A","𝖠":"A","𝗔":"A","𝘈":"A","𝘼":"A","𝙰":"A","Α":"A","𝚨":"A","𝛢":"A","𝜜":"A","𝝖":"A","𝞐":"A","А":"A","Ꭺ":"A","ᗅ":"A","ꓮ":"A","𖽀":"A","𐊠":"A","⍶":"a̲","ǎ":"ă","Ǎ":"Ă","ȧ":"å","Ȧ":"Å","ẚ":"ả","℀":"a/c","℁":"a/s","ꜳ":"aa","Ꜳ":"AA","æ":"ae","ӕ":"ae","Æ":"AE","Ӕ":"AE","ꜵ":"ao","Ꜵ":"AO","🜇":"AR","ꜷ":"au","Ꜷ":"AU","ꜹ":"av","ꜻ":"av","Ꜹ":"AV","Ꜻ":"AV","ꜽ":"ay","Ꜽ":"AY","ꭺ":"ᴀ","∀":"Ɐ","𝈗":"Ɐ","ᗄ":"Ɐ","ꓯ":"Ɐ","𐐟":"Ɒ","𝐛":"b","𝑏":"b","𝒃":"b","𝒷":"b","𝓫":"b","𝔟":"b","𝕓":"b","𝖇":"b","𝖻":"b","𝗯":"b","𝘣":"b","𝙗":"b","𝚋":"b","Ƅ":"b","Ь":"b","Ꮟ":"b","ᑲ":"b","ᖯ":"b","B":"B","ℬ":"B","𝐁":"B","𝐵":"B","𝑩":"B","𝓑":"B","𝔅":"B","𝔹":"B","𝕭":"B","𝖡":"B","𝗕":"B","𝘉":"B","𝘽":"B","𝙱":"B","Ꞵ":"B","Β":"B","𝚩":"B","𝛣":"B","𝜝":"B","𝝗":"B","𝞑":"B","В":"B","Ᏼ":"B","ᗷ":"B","ꓐ":"B","𐊂":"B","𐊡":"B","𐌁":"B","ɓ":"b̔","ᑳ":"ḃ","ƃ":"b̄","Ƃ":"b̄","Б":"b̄","ƀ":"b̵","ҍ":"b̵","Ҍ":"b̵","ѣ":"b̵","Ѣ":"b̵","ᑿ":"b·","ᒁ":"ḃ·","ᒈ":"b\'","Ы":"bl","в":"ʙ","ᏼ":"ʙ","c":"c","ⅽ":"c","𝐜":"c","𝑐":"c","𝒄":"c","𝒸":"c","𝓬":"c","𝔠":"c","𝕔":"c","𝖈":"c","𝖼":"c","𝗰":"c","𝘤":"c","𝙘":"c","𝚌":"c","ᴄ":"c","ϲ":"c","ⲥ":"c","с":"c","ꮯ":"c","𐐽":"c","ⷭ":"ͨ","🝌":"C","𑣲":"C","𑣩":"C","C":"C","Ⅽ":"C","ℂ":"C","ℭ":"C","𝐂":"C","𝐶":"C","𝑪":"C","𝒞":"C","𝓒":"C","𝕮":"C","𝖢":"C","𝗖":"C","𝘊":"C","𝘾":"C","𝙲":"C","Ϲ":"C","Ⲥ":"C","С":"C","Ꮯ":"C","ꓚ":"C","𐊢":"C","𐌂":"C","𐐕":"C","𐔜":"C","¢":"c̸","ȼ":"c̸","₡":"C⃫","🅮":"C⃠","ç":"c̦","ҫ":"c̦","Ç":"C̦","Ҫ":"C̦","Ƈ":"C\'","℅":"c/o","℆":"c/u","🅭":"㏄\\t⃝","⋴":"ꞓ","ɛ":"ꞓ","ε":"ꞓ","ϵ":"ꞓ","𝛆":"ꞓ","𝛜":"ꞓ","𝜀":"ꞓ","𝜖":"ꞓ","𝜺":"ꞓ","𝝐":"ꞓ","𝝴":"ꞓ","𝞊":"ꞓ","𝞮":"ꞓ","𝟄":"ꞓ","ⲉ":"ꞓ","є":"ꞓ","ԑ":"ꞓ","ꮛ":"ꞓ","𑣎":"ꞓ","𐐩":"ꞓ","€":"Ꞓ","Ⲉ":"Ꞓ","Є":"Ꞓ","⍷":"ꞓ̲","ͽ":"ꜿ","Ͽ":"Ꜿ","ⅾ":"d","ⅆ":"d","𝐝":"d","𝑑":"d","𝒅":"d","𝒹":"d","𝓭":"d","𝔡":"d","𝕕":"d","𝖉":"d","𝖽":"d","𝗱":"d","𝘥":"d","𝙙":"d","𝚍":"d","ԁ":"d","Ꮷ":"d","ᑯ":"d","ꓒ":"d","Ⅾ":"D","ⅅ":"D","𝐃":"D","𝐷":"D","𝑫":"D","𝒟":"D","𝓓":"D","𝔇":"D","𝔻":"D","𝕯":"D","𝖣":"D","𝗗":"D","𝘋":"D","𝘿":"D","𝙳":"D","Ꭰ":"D","ᗞ":"D","ᗪ":"D","ꓓ":"D","ɗ":"d̔","ɖ":"d̨","ƌ":"d̄","đ":"d̵","Đ":"D̵","Ð":"D̵","Ɖ":"D̵","₫":"ḏ̵","ꝺ":"Ꝺ","ᑻ":"d·","ᒇ":"d\'","ʤ":"dȝ","dz":"dz","ʣ":"dz","Dz":"Dz","DZ":"DZ","dž":"dž","Dž":"Dž","DŽ":"DŽ","ʥ":"dʑ","ꭰ":"ᴅ","⸹":"ẟ","δ":"ẟ","𝛅":"ẟ","𝛿":"ẟ","𝜹":"ẟ","𝝳":"ẟ","𝞭":"ẟ","ծ":"ẟ","ᕷ":"ẟ","℮":"e","e":"e","ℯ":"e","ⅇ":"e","𝐞":"e","𝑒":"e","𝒆":"e","𝓮":"e","𝔢":"e","𝕖":"e","𝖊":"e","𝖾":"e","𝗲":"e","𝘦":"e","𝙚":"e","𝚎":"e","ꬲ":"e","е":"e","ҽ":"e","ⷷ":"ͤ","⋿":"E","E":"E","ℰ":"E","𝐄":"E","𝐸":"E","𝑬":"E","𝓔":"E","𝔈":"E","𝔼":"E","𝕰":"E","𝖤":"E","𝗘":"E","𝘌":"E","𝙀":"E","𝙴":"E","Ε":"E","𝚬":"E","𝛦":"E","𝜠":"E","𝝚":"E","𝞔":"E","Е":"E","ⴹ":"E","Ꭼ":"E","ꓰ":"E","𑢦":"E","𑢮":"E","𐊆":"E","ě":"ĕ","Ě":"Ĕ","ɇ":"e̸","Ɇ":"E̸","ҿ":"ę","ꭼ":"ᴇ","ə":"ǝ","ә":"ǝ","∃":"Ǝ","ⴺ":"Ǝ","ꓱ":"Ǝ","ɚ":"ǝ˞","ᴔ":"ǝo","ꭁ":"ǝo̸","ꭂ":"ǝo̵","Ә":"Ə","𝈡":"Ɛ","ℇ":"Ɛ","Ԑ":"Ɛ","Ꮛ":"Ɛ","𖼭":"Ɛ","𐐁":"Ɛ","ᶟ":"ᵋ","ᴈ":"ɜ","з":"ɜ","ҙ":"ɜ̦","𐑂":"ɞ","ꞝ":"ʚ","𐐪":"ʚ","𝐟":"f","𝑓":"f","𝒇":"f","𝒻":"f","𝓯":"f","𝔣":"f","𝕗":"f","𝖋":"f","𝖿":"f","𝗳":"f","𝘧":"f","𝙛":"f","𝚏":"f","ꬵ":"f","ꞙ":"f","ſ":"f","ẝ":"f","ք":"f","𝈓":"F","ℱ":"F","𝐅":"F","𝐹":"F","𝑭":"F","𝓕":"F","𝔉":"F","𝔽":"F","𝕱":"F","𝖥":"F","𝗙":"F","𝘍":"F","𝙁":"F","𝙵":"F","Ꞙ":"F","Ϝ":"F","𝟊":"F","ᖴ":"F","ꓝ":"F","𑣂":"F","𑢢":"F","𐊇":"F","𐊥":"F","𐔥":"F","ƒ":"f̦","Ƒ":"F̦","ᵮ":"f̴","℻":"FAX","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ʩ":"fŋ","ᖵ":"Ⅎ","ꓞ":"Ⅎ","𝈰":"ꟻ","ᖷ":"ꟻ","g":"g","ℊ":"g","𝐠":"g","𝑔":"g","𝒈":"g","𝓰":"g","𝔤":"g","𝕘":"g","𝖌":"g","𝗀":"g","𝗴":"g","𝘨":"g","𝙜":"g","𝚐":"g","ɡ":"g","ᶃ":"g","ƍ":"g","ց":"g","𝐆":"G","𝐺":"G","𝑮":"G","𝒢":"G","𝓖":"G","𝔊":"G","𝔾":"G","𝕲":"G","𝖦":"G","𝗚":"G","𝘎":"G","𝙂":"G","𝙶":"G","Ԍ":"G","Ꮐ":"G","Ᏻ":"G","ꓖ":"G","ᶢ":"ᵍ","ɠ":"g̔","ǧ":"ğ","Ǧ":"Ğ","ǵ":"ģ","ǥ":"g̵","Ǥ":"G̵","Ɠ":"G\'","ԍ":"ɢ","ꮐ":"ɢ","ᏻ":"ɢ","h":"h","ℎ":"h","𝐡":"h","𝒉":"h","𝒽":"h","𝓱":"h","𝔥":"h","𝕙":"h","𝖍":"h","𝗁":"h","𝗵":"h","𝘩":"h","𝙝":"h","𝚑":"h","һ":"h","հ":"h","Ꮒ":"h","H":"H","ℋ":"H","ℌ":"H","ℍ":"H","𝐇":"H","𝐻":"H","𝑯":"H","𝓗":"H","𝕳":"H","𝖧":"H","𝗛":"H","𝘏":"H","𝙃":"H","𝙷":"H","Η":"H","𝚮":"H","𝛨":"H","𝜢":"H","𝝜":"H","𝞖":"H","Ⲏ":"H","Н":"H","Ꮋ":"H","ᕼ":"H","ꓧ":"H","𐋏":"H","ᵸ":"ᴴ","ɦ":"h̔","ꚕ":"h̔","Ᏺ":"h̔","Ⱨ":"H̩","Ң":"H̩","ħ":"h̵","ℏ":"h̵","ћ":"h̵","Ħ":"H̵","Ӊ":"H̦","Ӈ":"H̦","н":"ʜ","ꮋ":"ʜ","ң":"ʜ̩","ӊ":"ʜ̦","ӈ":"ʜ̦","Ԋ":"Ƕ","ꮀ":"ⱶ","Ͱ":"Ⱶ","Ꭸ":"Ⱶ","Ꮀ":"Ⱶ","ꚱ":"Ⱶ","ꞕ":"ꜧ","˛":"i","⍳":"i","i":"i","ⅰ":"i","ℹ":"i","ⅈ":"i","𝐢":"i","𝑖":"i","𝒊":"i","𝒾":"i","𝓲":"i","𝔦":"i","𝕚":"i","𝖎":"i","𝗂":"i","𝗶":"i","𝘪":"i","𝙞":"i","𝚒":"i","ı":"i","𝚤":"i","ɪ":"i","ɩ":"i","ι":"i","ι":"i","ͺ":"i","𝛊":"i","𝜄":"i","𝜾":"i","𝝸":"i","𝞲":"i","і":"i","ꙇ":"i","ӏ":"i","ꭵ":"i","Ꭵ":"i","𑣃":"i","ⓛ":"Ⓘ","⍸":"i̲","ǐ":"ĭ","Ǐ":"Ĭ","ɨ":"i̵","ᵻ":"i̵","ᵼ":"i̵","ⅱ":"ii","ⅲ":"iii","ij":"ij","ⅳ":"iv","ⅸ":"ix","j":"j","ⅉ":"j","𝐣":"j","𝑗":"j","𝒋":"j","𝒿":"j","𝓳":"j","𝔧":"j","𝕛":"j","𝖏":"j","𝗃":"j","𝗷":"j","𝘫":"j","𝙟":"j","𝚓":"j","ϳ":"j","ј":"j","J":"J","𝐉":"J","𝐽":"J","𝑱":"J","𝒥":"J","𝓙":"J","𝔍":"J","𝕁":"J","𝕵":"J","𝖩":"J","𝗝":"J","𝘑":"J","𝙅":"J","𝙹":"J","Ʝ":"J","Ϳ":"J","Ј":"J","Ꭻ":"J","ᒍ":"J","ꓙ":"J","ɉ":"j̵","Ɉ":"J̵","ᒙ":"J·","𝚥":"ȷ","յ":"ȷ","ꭻ":"ᴊ","𝐤":"k","𝑘":"k","𝒌":"k","𝓀":"k","𝓴":"k","𝔨":"k","𝕜":"k","𝖐":"k","𝗄":"k","𝗸":"k","𝘬":"k","𝙠":"k","𝚔":"k","K":"K","K":"K","𝐊":"K","𝐾":"K","𝑲":"K","𝒦":"K","𝓚":"K","𝔎":"K","𝕂":"K","𝕶":"K","𝖪":"K","𝗞":"K","𝘒":"K","𝙆":"K","𝙺":"K","Κ":"K","𝚱":"K","𝛫":"K","𝜥":"K","𝝟":"K","𝞙":"K","Ⲕ":"K","К":"K","Ꮶ":"K","ᛕ":"K","ꓗ":"K","𐔘":"K","ƙ":"k̔","Ⱪ":"K̩","Қ":"K̩","₭":"K̵","Ꝁ":"K̵","Ҟ":"K̵","Ƙ":"K\'","׀":"l","|":"l","∣":"l","⏽":"l","│":"l","١":"l","۱":"l","𐌠":"l","𞣇":"l","𝟏":"l","𝟙":"l","𝟣":"l","𝟭":"l","𝟷":"l","🯱":"l","I":"l","I":"l","Ⅰ":"l","ℐ":"l","ℑ":"l","𝐈":"l","𝐼":"l","𝑰":"l","𝓘":"l","𝕀":"l","𝕴":"l","𝖨":"l","𝗜":"l","𝘐":"l","𝙄":"l","𝙸":"l","Ɩ":"l","l":"l","ⅼ":"l","ℓ":"l","𝐥":"l","𝑙":"l","𝒍":"l","𝓁":"l","𝓵":"l","𝔩":"l","𝕝":"l","𝖑":"l","𝗅":"l","𝗹":"l","𝘭":"l","𝙡":"l","𝚕":"l","ǀ":"l","Ι":"l","𝚰":"l","𝛪":"l","𝜤":"l","𝝞":"l","𝞘":"l","Ⲓ":"l","І":"l","Ӏ":"l","ו":"l","ן":"l","ا":"l","𞸀":"l","𞺀":"l","ﺎ":"l","ﺍ":"l","ߊ":"l","ⵏ":"l","ᛁ":"l","ꓲ":"l","𖼨":"l","𐊊":"l","𐌉":"l","𝈪":"L","Ⅼ":"L","ℒ":"L","𝐋":"L","𝐿":"L","𝑳":"L","𝓛":"L","𝔏":"L","𝕃":"L","𝕷":"L","𝖫":"L","𝗟":"L","𝘓":"L","𝙇":"L","𝙻":"L","Ⳑ":"L","Ꮮ":"L","ᒪ":"L","ꓡ":"L","𖼖":"L","𑢣":"L","𑢲":"L","𐐛":"L","𐔦":"L","ﴼ":"l̋","ﴽ":"l̋","ł":"l̸","Ł":"L̸","ɭ":"l̨","Ɨ":"l̵","ƚ":"l̵","ɫ":"l̴","إ":"lٕ","ﺈ":"lٕ","ﺇ":"lٕ","ٳ":"lٕ","ŀ":"l·","Ŀ":"l·","ᒷ":"l·","🄂":"l,","⒈":"l.","ױ":"l\'","⒓":"l2.","㏫":"l2日","㋋":"l2月","㍤":"l2点","⒔":"l3.","㏬":"l3日","㍥":"l3点","⒕":"l4.","㏭":"l4日","㍦":"l4点","⒖":"l5.","㏮":"l5日","㍧":"l5点","⒗":"l6.","㏯":"l6日","㍨":"l6点","⒘":"l7.","㏰":"l7日","㍩":"l7点","⒙":"l8.","㏱":"l8日","㍪":"l8点","⒚":"l9.","㏲":"l9日","㍫":"l9点","lj":"lj","IJ":"lJ","Lj":"Lj","LJ":"LJ","‖":"ll","∥":"ll","Ⅱ":"ll","ǁ":"ll","װ":"ll","𐆙":"l̵l̵","⒒":"ll.","Ⅲ":"lll","𐆘":"l̵l̵S̵","㏪":"ll日","㋊":"ll月","㍣":"ll点","Ю":"lO","⒑":"lO.","㏩":"lO日","㋉":"lO月","㍢":"lO点","ʪ":"ls","₶":"lt","Ⅳ":"lV","Ⅸ":"lX","ɮ":"lȝ","ʫ":"lz","أ":"lٴ","ﺄ":"lٴ","ﺃ":"lٴ","ٲ":"lٴ","ٵ":"lٴ","ﷳ":"lكبر","ﷲ":"lللّٰo","㏠":"l日","㋀":"l月","㍙":"l点","ⳑ":"ʟ","ꮮ":"ʟ","𐑃":"ʟ","M":"M","Ⅿ":"M","ℳ":"M","𝐌":"M","𝑀":"M","𝑴":"M","𝓜":"M","𝔐":"M","𝕄":"M","𝕸":"M","𝖬":"M","𝗠":"M","𝘔":"M","𝙈":"M","𝙼":"M","Μ":"M","𝚳":"M","𝛭":"M","𝜧":"M","𝝡":"M","𝞛":"M","Ϻ":"M","Ⲙ":"M","М":"M","Ꮇ":"M","ᗰ":"M","ᛖ":"M","ꓟ":"M","𐊰":"M","𐌑":"M","Ӎ":"M̦","🝫":"MB","ⷨ":"ᷟ","𝐧":"n","𝑛":"n","𝒏":"n","𝓃":"n","𝓷":"n","𝔫":"n","𝕟":"n","𝖓":"n","𝗇":"n","𝗻":"n","𝘯":"n","𝙣":"n","𝚗":"n","ո":"n","ռ":"n","N":"N","ℕ":"N","𝐍":"N","𝑁":"N","𝑵":"N","𝒩":"N","𝓝":"N","𝔑":"N","𝕹":"N","𝖭":"N","𝗡":"N","𝘕":"N","𝙉":"N","𝙽":"N","Ν":"N","𝚴":"N","𝛮":"N","𝜨":"N","𝝢":"N","𝞜":"N","Ⲛ":"N","ꓠ":"N","𐔓":"N","𐆎":"N̊","ɳ":"n̨","ƞ":"n̩","η":"n̩","𝛈":"n̩","𝜂":"n̩","𝜼":"n̩","𝝶":"n̩","𝞰":"n̩","Ɲ":"N̦","ᵰ":"n̴","nj":"nj","Nj":"Nj","NJ":"NJ","№":"No","ͷ":"ᴎ","и":"ᴎ","𐑍":"ᴎ","ņ":"ɲ","ం":"o","ಂ":"o","ം":"o","ං":"o","०":"o","੦":"o","૦":"o","௦":"o","౦":"o","೦":"o","൦":"o","๐":"o","໐":"o","၀":"o","٥":"o","۵":"o","o":"o","ℴ":"o","𝐨":"o","𝑜":"o","𝒐":"o","𝓸":"o","𝔬":"o","𝕠":"o","𝖔":"o","𝗈":"o","𝗼":"o","𝘰":"o","𝙤":"o","𝚘":"o","ᴏ":"o","ᴑ":"o","ꬽ":"o","ο":"o","𝛐":"o","𝜊":"o","𝝄":"o","𝝾":"o","𝞸":"o","σ":"o","𝛔":"o","𝜎":"o","𝝈":"o","𝞂":"o","𝞼":"o","ⲟ":"o","о":"o","ჿ":"o","օ":"o","ס":"o","ه":"o","𞸤":"o","𞹤":"o","𞺄":"o","ﻫ":"o","ﻬ":"o","ﻪ":"o","ﻩ":"o","ھ":"o","ﮬ":"o","ﮭ":"o","ﮫ":"o","ﮪ":"o","ہ":"o","ﮨ":"o","ﮩ":"o","ﮧ":"o","ﮦ":"o","ە":"o","ഠ":"o","ဝ":"o","𐓪":"o","𑣈":"o","𑣗":"o","𐐬":"o","߀":"O","০":"O","୦":"O","〇":"O","𑓐":"O","𑣠":"O","𝟎":"O","𝟘":"O","𝟢":"O","𝟬":"O","𝟶":"O","🯰":"O","O":"O","𝐎":"O","𝑂":"O","𝑶":"O","𝒪":"O","𝓞":"O","𝔒":"O","𝕆":"O","𝕺":"O","𝖮":"O","𝗢":"O","𝘖":"O","𝙊":"O","𝙾":"O","Ο":"O","𝚶":"O","𝛰":"O","𝜪":"O","𝝤":"O","𝞞":"O","Ⲟ":"O","О":"O","Օ":"O","ⵔ":"O","ዐ":"O","ଠ":"O","𐓂":"O","ꓳ":"O","𑢵":"O","𐊒":"O","𐊫":"O","𐐄":"O","𐔖":"O","⁰":"º","ᵒ":"º","ǒ":"ŏ","Ǒ":"Ŏ","ۿ":"ô","Ő":"Ö","ø":"o̸","ꬾ":"o̸","Ø":"O̸","ⵁ":"O̸","Ǿ":"Ó̸","ɵ":"o̵","ꝋ":"o̵","ө":"o̵","ѳ":"o̵","ꮎ":"o̵","ꮻ":"o̵","⊖":"O̵","⊝":"O̵","⍬":"O̵","𝈚":"O̵","🜔":"O̵","Ɵ":"O̵","Ꝋ":"O̵","θ":"O̵","ϑ":"O̵","𝛉":"O̵","𝛝":"O̵","𝜃":"O̵","𝜗":"O̵","𝜽":"O̵","𝝑":"O̵","𝝷":"O̵","𝞋":"O̵","𝞱":"O̵","𝟅":"O̵","Θ":"O̵","ϴ":"O̵","𝚯":"O̵","𝚹":"O̵","𝛩":"O̵","𝛳":"O̵","𝜣":"O̵","𝜭":"O̵","𝝝":"O̵","𝝧":"O̵","𝞗":"O̵","𝞡":"O̵","Ө":"O̵","Ѳ":"O̵","ⴱ":"O̵","Ꮎ":"O̵","Ꮻ":"O̵","ꭴ":"ơ","ﳙ":"oٰ","🄁":"O,","🄀":"O.","ơ":"o\'","Ơ":"O\'","Ꭴ":"O\'","%":"º/₀","٪":"º/₀","⁒":"º/₀","‰":"º/₀₀","؉":"º/₀₀","‱":"º/₀₀₀","؊":"º/₀₀₀","œ":"oe","Œ":"OE","ɶ":"oᴇ","∞":"oo","ꝏ":"oo","ꚙ":"oo","Ꝏ":"OO","Ꚙ":"OO","ﳗ":"oج","ﱑ":"oج","ﳘ":"oم","ﱒ":"oم","ﶓ":"oمج","ﶔ":"oمم","ﱓ":"oى","ﱔ":"oى","ൟ":"oരo","တ":"oာ","㍘":"O点","ↄ":"ɔ","ᴐ":"ɔ","ͻ":"ɔ","𐑋":"ɔ","Ↄ":"Ɔ","Ͻ":"Ɔ","ꓛ":"Ɔ","𐐣":"Ɔ","ꬿ":"ɔ̸","ꭢ":"ɔe","𐐿":"ɷ","⍴":"p","p":"p","𝐩":"p","𝑝":"p","𝒑":"p","𝓅":"p","𝓹":"p","𝔭":"p","𝕡":"p","𝖕":"p","𝗉":"p","𝗽":"p","𝘱":"p","𝙥":"p","𝚙":"p","ρ":"p","ϱ":"p","𝛒":"p","𝛠":"p","𝜌":"p","𝜚":"p","𝝆":"p","𝝔":"p","𝞀":"p","𝞎":"p","𝞺":"p","𝟈":"p","ⲣ":"p","р":"p","P":"P","ℙ":"P","𝐏":"P","𝑃":"P","𝑷":"P","𝒫":"P","𝓟":"P","𝔓":"P","𝕻":"P","𝖯":"P","𝗣":"P","𝘗":"P","𝙋":"P","𝙿":"P","Ρ":"P","𝚸":"P","𝛲":"P","𝜬":"P","𝝦":"P","𝞠":"P","Ⲣ":"P","Р":"P","Ꮲ":"P","ᑭ":"P","ꓑ":"P","𐊕":"P","ƥ":"p̔","ᵽ":"p̵","ᑷ":"p·","ᒆ":"P\'","ᴩ":"ᴘ","ꮲ":"ᴘ","φ":"ɸ","ϕ":"ɸ","𝛗":"ɸ","𝛟":"ɸ","𝜑":"ɸ","𝜙":"ɸ","𝝋":"ɸ","𝝓":"ɸ","𝞅":"ɸ","𝞍":"ɸ","𝞿":"ɸ","𝟇":"ɸ","ⲫ":"ɸ","ф":"ɸ","𝐪":"q","𝑞":"q","𝒒":"q","𝓆":"q","𝓺":"q","𝔮":"q","𝕢":"q","𝖖":"q","𝗊":"q","𝗾":"q","𝘲":"q","𝙦":"q","𝚚":"q","ԛ":"q","գ":"q","զ":"q","ℚ":"Q","𝐐":"Q","𝑄":"Q","𝑸":"Q","𝒬":"Q","𝓠":"Q","𝔔":"Q","𝕼":"Q","𝖰":"Q","𝗤":"Q","𝘘":"Q","𝙌":"Q","𝚀":"Q","ⵕ":"Q","ʠ":"q̔","🜀":"QE","ᶐ":"ɋ","ᴋ":"ĸ","κ":"ĸ","ϰ":"ĸ","𝛋":"ĸ","𝛞":"ĸ","𝜅":"ĸ","𝜘":"ĸ","𝜿":"ĸ","𝝒":"ĸ","𝝹":"ĸ","𝞌":"ĸ","𝞳":"ĸ","𝟆":"ĸ","ⲕ":"ĸ","к":"ĸ","ꮶ":"ĸ","қ":"ĸ̩","ҟ":"ĸ̵","𝐫":"r","𝑟":"r","𝒓":"r","𝓇":"r","𝓻":"r","𝔯":"r","𝕣":"r","𝖗":"r","𝗋":"r","𝗿":"r","𝘳":"r","𝙧":"r","𝚛":"r","ꭇ":"r","ꭈ":"r","ᴦ":"r","ⲅ":"r","г":"r","ꮁ":"r","𝈖":"R","ℛ":"R","ℜ":"R","ℝ":"R","𝐑":"R","𝑅":"R","𝑹":"R","𝓡":"R","𝕽":"R","𝖱":"R","𝗥":"R","𝘙":"R","𝙍":"R","𝚁":"R","Ʀ":"R","Ꭱ":"R","Ꮢ":"R","𐒴":"R","ᖇ":"R","ꓣ":"R","𖼵":"R","ɽ":"r̨","ɼ":"r̩","ɍ":"r̵","ғ":"r̵","ᵲ":"r̴","ґ":"r\'","𑣣":"rn","m":"rn","ⅿ":"rn","𝐦":"rn","𝑚":"rn","𝒎":"rn","𝓂":"rn","𝓶":"rn","𝔪":"rn","𝕞":"rn","𝖒":"rn","𝗆":"rn","𝗺":"rn","𝘮":"rn","𝙢":"rn","𝚖":"rn","𑜀":"rn","₥":"rn̸","ɱ":"rn̦","ᵯ":"rn̴","₨":"Rs","ꭱ":"ʀ","ꮢ":"ʀ","я":"ᴙ","ᵳ":"ɾ̴","℩":"ɿ","s":"s","𝐬":"s","𝑠":"s","𝒔":"s","𝓈":"s","𝓼":"s","𝔰":"s","𝕤":"s","𝖘":"s","𝗌":"s","𝘀":"s","𝘴":"s","𝙨":"s","𝚜":"s","ꜱ":"s","ƽ":"s","ѕ":"s","ꮪ":"s","𑣁":"s","𐑈":"s","S":"S","𝐒":"S","𝑆":"S","𝑺":"S","𝒮":"S","𝓢":"S","𝔖":"S","𝕊":"S","𝕾":"S","𝖲":"S","𝗦":"S","𝘚":"S","𝙎":"S","𝚂":"S","Ѕ":"S","Տ":"S","Ꮥ":"S","Ꮪ":"S","ꓢ":"S","𖼺":"S","𐊖":"S","𐐠":"S","ʂ":"s̨","ᵴ":"s̴","ꞵ":"ß","β":"ß","ϐ":"ß","𝛃":"ß","𝛽":"ß","𝜷":"ß","𝝱":"ß","𝞫":"ß","Ᏸ":"ß","🝜":"sss","st":"st","∫":"ʃ","ꭍ":"ʃ","∑":"Ʃ","⅀":"Ʃ","Σ":"Ʃ","𝚺":"Ʃ","𝛴":"Ʃ","𝜮":"Ʃ","𝝨":"Ʃ","𝞢":"Ʃ","ⵉ":"Ʃ","∬":"ʃʃ","∭":"ʃʃʃ","⨌":"ʃʃʃʃ","𝐭":"t","𝑡":"t","𝒕":"t","𝓉":"t","𝓽":"t","𝔱":"t","𝕥":"t","𝖙":"t","𝗍":"t","𝘁":"t","𝘵":"t","𝙩":"t","𝚝":"t","⊤":"T","⟙":"T","🝨":"T","T":"T","𝐓":"T","𝑇":"T","𝑻":"T","𝒯":"T","𝓣":"T","𝔗":"T","𝕋":"T","𝕿":"T","𝖳":"T","𝗧":"T","𝘛":"T","𝙏":"T","𝚃":"T","Τ":"T","𝚻":"T","𝛵":"T","𝜯":"T","𝝩":"T","𝞣":"T","Ⲧ":"T","Т":"T","Ꭲ":"T","ꓔ":"T","𖼊":"T","𑢼":"T","𐊗":"T","𐊱":"T","𐌕":"T","ƭ":"t̔","⍡":"T̈","Ⱦ":"T̸","Ț":"Ţ","Ʈ":"T̨","Ҭ":"T̩","₮":"T⃫","ŧ":"t̵","Ŧ":"T̵","ᵵ":"t̴","Ⴀ":"Ꞇ","Ꜩ":"T3","ʨ":"tɕ","℡":"TEL","ꝷ":"tf","ʦ":"ts","ʧ":"tʃ","ꜩ":"tȝ","τ":"ᴛ","𝛕":"ᴛ","𝜏":"ᴛ","𝝉":"ᴛ","𝞃":"ᴛ","𝞽":"ᴛ","т":"ᴛ","ꭲ":"ᴛ","ҭ":"ᴛ̩","ţ":"ƫ","ț":"ƫ","Ꮏ":"ƫ","𝐮":"u","𝑢":"u","𝒖":"u","𝓊":"u","𝓾":"u","𝔲":"u","𝕦":"u","𝖚":"u","𝗎":"u","𝘂":"u","𝘶":"u","𝙪":"u","𝚞":"u","ꞟ":"u","ᴜ":"u","ꭎ":"u","ꭒ":"u","ʋ":"u","υ":"u","𝛖":"u","𝜐":"u","𝝊":"u","𝞄":"u","𝞾":"u","ս":"u","𐓶":"u","𑣘":"u","∪":"U","⋃":"U","𝐔":"U","𝑈":"U","𝑼":"U","𝒰":"U","𝓤":"U","𝔘":"U","𝕌":"U","𝖀":"U","𝖴":"U","𝗨":"U","𝘜":"U","𝙐":"U","𝚄":"U","Ս":"U","ሀ":"U","𐓎":"U","ᑌ":"U","ꓴ":"U","𖽂":"U","𑢸":"U","ǔ":"ŭ","Ǔ":"Ŭ","ᵾ":"u̵","ꮜ":"u̵","Ʉ":"U̵","Ꮜ":"U̵","ᑘ":"U·","ᑧ":"U\'","ᵫ":"ue","ꭣ":"uo","ṃ":"ꭑ","պ":"ɰ","ሣ":"ɰ","℧":"Ʊ","ᘮ":"Ʊ","ᘴ":"Ʊ","ᵿ":"ʊ̵","∨":"v","⋁":"v","v":"v","ⅴ":"v","𝐯":"v","𝑣":"v","𝒗":"v","𝓋":"v","𝓿":"v","𝔳":"v","𝕧":"v","𝖛":"v","𝗏":"v","𝘃":"v","𝘷":"v","𝙫":"v","𝚟":"v","ᴠ":"v","ν":"v","𝛎":"v","𝜈":"v","𝝂":"v","𝝼":"v","𝞶":"v","ѵ":"v","ט":"v","𑜆":"v","ꮩ":"v","𑣀":"v","𝈍":"V","٧":"V","۷":"V","Ⅴ":"V","𝐕":"V","𝑉":"V","𝑽":"V","𝒱":"V","𝓥":"V","𝔙":"V","𝕍":"V","𝖁":"V","𝖵":"V","𝗩":"V","𝘝":"V","𝙑":"V","𝚅":"V","Ѵ":"V","ⴸ":"V","Ꮩ":"V","ᐯ":"V","ꛟ":"V","ꓦ":"V","𖼈":"V","𑢠":"V","𐔝":"V","𐆗":"V̵","ᐻ":"V·","🝬":"VB","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","Ⅵ":"Vl","Ⅶ":"Vll","Ⅷ":"Vlll","🜈":"Vᷤ","ᴧ":"ʌ","𐓘":"ʌ","٨":"Ʌ","۸":"Ʌ","Λ":"Ʌ","𝚲":"Ʌ","𝛬":"Ʌ","𝜦":"Ʌ","𝝠":"Ʌ","𝞚":"Ʌ","Л":"Ʌ","ⴷ":"Ʌ","𐒰":"Ʌ","ᐱ":"Ʌ","ꛎ":"Ʌ","ꓥ":"Ʌ","𖼽":"Ʌ","𐊍":"Ʌ","Ӆ":"Ʌ̦","ᐽ":"Ʌ·","ɯ":"w","𝐰":"w","𝑤":"w","𝒘":"w","𝓌":"w","𝔀":"w","𝔴":"w","𝕨":"w","𝖜":"w","𝗐":"w","𝘄":"w","𝘸":"w","𝙬":"w","𝚠":"w","ᴡ":"w","ѡ":"w","ԝ":"w","ա":"w","𑜊":"w","𑜎":"w","𑜏":"w","ꮃ":"w","𑣯":"W","𑣦":"W","𝐖":"W","𝑊":"W","𝑾":"W","𝒲":"W","𝓦":"W","𝔚":"W","𝕎":"W","𝖂":"W","𝖶":"W","𝗪":"W","𝘞":"W","𝙒":"W","𝚆":"W","Ԝ":"W","Ꮃ":"W","Ꮤ":"W","ꓪ":"W","ѽ":"w҆҇","𑓅":"ẇ","₩":"W̵","ꝡ":"w̦","ᴍ":"ʍ","м":"ʍ","ꮇ":"ʍ","ӎ":"ʍ̦","᙮":"x","×":"x","⤫":"x","⤬":"x","⨯":"x","x":"x","ⅹ":"x","𝐱":"x","𝑥":"x","𝒙":"x","𝓍":"x","𝔁":"x","𝔵":"x","𝕩":"x","𝖝":"x","𝗑":"x","𝘅":"x","𝘹":"x","𝙭":"x","𝚡":"x","х":"x","ᕁ":"x","ᕽ":"x","ⷯ":"ͯ","᙭":"X","╳":"X","𐌢":"X","𑣬":"X","X":"X","Ⅹ":"X","𝐗":"X","𝑋":"X","𝑿":"X","𝒳":"X","𝓧":"X","𝔛":"X","𝕏":"X","𝖃":"X","𝖷":"X","𝗫":"X","𝘟":"X","𝙓":"X","𝚇":"X","Ꭓ":"X","Χ":"X","𝚾":"X","𝛸":"X","𝜲":"X","𝝬":"X","𝞦":"X","Ⲭ":"X","Х":"X","ⵝ":"X","ᚷ":"X","ꓫ":"X","𐊐":"X","𐊴":"X","𐌗":"X","𐔧":"X","⨰":"ẋ","Ҳ":"X̩","𐆖":"X̵","ⅺ":"xi","ⅻ":"xii","Ⅺ":"Xl","Ⅻ":"Xll","ɣ":"y","ᶌ":"y","y":"y","𝐲":"y","𝑦":"y","𝒚":"y","𝓎":"y","𝔂":"y","𝔶":"y","𝕪":"y","𝖞":"y","𝗒":"y","𝘆":"y","𝘺":"y","𝙮":"y","𝚢":"y","ʏ":"y","ỿ":"y","ꭚ":"y","γ":"y","ℽ":"y","𝛄":"y","𝛾":"y","𝜸":"y","𝝲":"y","𝞬":"y","у":"y","ү":"y","ყ":"y","𑣜":"y","Y":"Y","𝐘":"Y","𝑌":"Y","𝒀":"Y","𝒴":"Y","𝓨":"Y","𝔜":"Y","𝕐":"Y","𝖄":"Y","𝖸":"Y","𝗬":"Y","𝘠":"Y","𝙔":"Y","𝚈":"Y","Υ":"Y","ϒ":"Y","𝚼":"Y","𝛶":"Y","𝜰":"Y","𝝪":"Y","𝞤":"Y","Ⲩ":"Y","У":"Y","Ү":"Y","Ꭹ":"Y","Ꮍ":"Y","ꓬ":"Y","𖽃":"Y","𑢤":"Y","𐊲":"Y","ƴ":"y̔","ɏ":"y̵","ұ":"y̵","¥":"Y̵","Ɏ":"Y̵","Ұ":"Y̵","ʒ":"ȝ","ꝫ":"ȝ","ⳍ":"ȝ","ӡ":"ȝ","ჳ":"ȝ","𝐳":"z","𝑧":"z","𝒛":"z","𝓏":"z","𝔃":"z","𝔷":"z","𝕫":"z","𝖟":"z","𝗓":"z","𝘇":"z","𝘻":"z","𝙯":"z","𝚣":"z","ᴢ":"z","ꮓ":"z","𑣄":"z","𐋵":"Z","𑣥":"Z","Z":"Z","ℤ":"Z","ℨ":"Z","𝐙":"Z","𝑍":"Z","𝒁":"Z","𝒵":"Z","𝓩":"Z","𝖅":"Z","𝖹":"Z","𝗭":"Z","𝘡":"Z","𝙕":"Z","𝚉":"Z","Ζ":"Z","𝚭":"Z","𝛧":"Z","𝜡":"Z","𝝛":"Z","𝞕":"Z","Ꮓ":"Z","ꓜ":"Z","𑢩":"Z","ʐ":"z̨","ƶ":"z̵","Ƶ":"Z̵","ȥ":"z̦","Ȥ":"Z̦","ᵶ":"z̴","ƿ":"þ","ϸ":"þ","Ϸ":"Þ","𐓄":"Þ","⁹":"ꝰ","ᴤ":"ƨ","ϩ":"ƨ","ꙅ":"ƨ","ь":"ƅ","ꮟ":"ƅ","ы":"ƅi","ꭾ":"ɂ","ˤ":"ˁ","ꛍ":"ʡ","⊙":"ʘ","☉":"ʘ","⨀":"ʘ","Ꙩ":"ʘ","ⵙ":"ʘ","𐓃":"ʘ","ℾ":"Γ","𝚪":"Γ","𝛤":"Γ","𝜞":"Γ","𝝘":"Γ","𝞒":"Γ","Ⲅ":"Γ","Г":"Γ","Ꮁ":"Γ","ᒥ":"Γ","𖼇":"Γ","Ғ":"Γ̵","ᒯ":"Γ·","Ґ":"Γ\'","∆":"Δ","△":"Δ","🜂":"Δ","𝚫":"Δ","𝛥":"Δ","𝜟":"Δ","𝝙":"Δ","𝞓":"Δ","Ⲇ":"Δ","ⵠ":"Δ","ᐃ":"Δ","𖼚":"Δ","𐊅":"Δ","𐊣":"Δ","⍙":"Δ̲","ᐏ":"Δ·","ᐬ":"Δᐠ","𝟋":"ϝ","𝛇":"ζ","𝜁":"ζ","𝜻":"ζ","𝝵":"ζ","𝞯":"ζ","ⳤ":"ϗ","𝛌":"λ","𝜆":"λ","𝝀":"λ","𝝺":"λ","𝞴":"λ","Ⲗ":"λ","𐓛":"λ","µ":"μ","𝛍":"μ","𝜇":"μ","𝝁":"μ","𝝻":"μ","𝞵":"μ","𝛏":"ξ","𝜉":"ξ","𝝃":"ξ","𝝽":"ξ","𝞷":"ξ","𝚵":"Ξ","𝛯":"Ξ","𝜩":"Ξ","𝝣":"Ξ","𝞝":"Ξ","ϖ":"π","ℼ":"π","𝛑":"π","𝛡":"π","𝜋":"π","𝜛":"π","𝝅":"π","𝝕":"π","𝝿":"π","𝞏":"π","𝞹":"π","𝟉":"π","ᴨ":"π","п":"π","∏":"Π","ℿ":"Π","𝚷":"Π","𝛱":"Π","𝜫":"Π","𝝥":"Π","𝞟":"Π","Ⲡ":"Π","П":"Π","ꛛ":"Π","𐊭":"Ϙ","𐌒":"Ϙ","ϛ":"ς","𝛓":"ς","𝜍":"ς","𝝇":"ς","𝞁":"ς","𝞻":"ς","𝚽":"Φ","𝛷":"Φ","𝜱":"Φ","𝝫":"Φ","𝞥":"Φ","Ⲫ":"Φ","Ф":"Φ","Փ":"Φ","ቀ":"Φ","ᛰ":"Φ","𐊳":"Φ","ꭓ":"χ","ꭕ":"χ","𝛘":"χ","𝜒":"χ","𝝌":"χ","𝞆":"χ","𝟀":"χ","ⲭ":"χ","𝛙":"ψ","𝜓":"ψ","𝝍":"ψ","𝞇":"ψ","𝟁":"ψ","ѱ":"ψ","𐓹":"ψ","𝚿":"Ψ","𝛹":"Ψ","𝜳":"Ψ","𝝭":"Ψ","𝞧":"Ψ","Ⲯ":"Ψ","Ѱ":"Ψ","𐓑":"Ψ","ᛘ":"Ψ","𐊵":"Ψ","⍵":"ω","ꞷ":"ω","𝛚":"ω","𝜔":"ω","𝝎":"ω","𝞈":"ω","𝟂":"ω","ⲱ":"ω","ꙍ":"ω","Ω":"Ω","𝛀":"Ω","𝛺":"Ω","𝜴":"Ω","𝝮":"Ω","𝞨":"Ω","ᘯ":"Ω","ᘵ":"Ω","𐊶":"Ω","⍹":"ω̲","ώ":"ῴ","☰":"Ⲷ","Ⳝ":"Ϭ","җ":"ж̩","Җ":"Ж̩","𝈋":"И","Ͷ":"И","ꚡ":"И","𐐥":"И","Й":"Ѝ","Ҋ":"Ѝ̦","ѝ":"й","ҋ":"й̦","𐒼":"Ӄ","ᴫ":"л","ӆ":"л̦","ꭠ":"љ","𐓫":"ꙩ","ᷮ":"ⷬ","𐓍":"Ћ","𝈂":"Ӿ","𝈢":"Ѡ","Ꮗ":"Ѡ","ᗯ":"Ѡ","Ѽ":"Ѡ҆҇","ᣭ":"Ѡ·","Ꞷ":"Ꙍ","ӌ":"ҷ","Ӌ":"Ҷ","Ҿ":"Ҽ̨","ⲽ":"ш","Ⲽ":"Ш","Ꙑ":"Ъl","℈":"Э","🜁":"Ꙙ","𖼜":"Ꙙ","ꦒ":"ⰿ","և":"եւ","ኔ":"ձ","ﬔ":"մե","ﬕ":"մի","ﬗ":"մխ","ﬓ":"մն","∩":"Ո","⋂":"Ո","𝉅":"Ո","በ":"Ո","ᑎ":"Ո","ꓵ":"Ո","ᑚ":"Ո·","ᑨ":"Ո\'","ﬖ":"վն","₽":"Ք","˓":"ՙ","ʿ":"ՙ","ℵ":"א","ﬡ":"א","אָ":"אַ","אּ":"אַ","ﭏ":"אל","ℶ":"ב","ℷ":"ג","ℸ":"ד","ﬢ":"ד","ﬣ":"ה","יּ":"יִ","ﬤ":"כ","ﬥ":"ל","ﬦ":"ם","ﬠ":"ע","ﬧ":"ר","שׂ":"שׁ","שּ":"שׁ","שּׂ":"שּׁ","ﬨ":"ת","ﺀ":"ء","۽":"ء͈","ﺂ":"آ","ﺁ":"آ","ﭑ":"ٱ","ﭐ":"ٱ","𞸁":"ب","𞸡":"ب","𞹡":"ب","𞺁":"ب","𞺡":"ب","ﺑ":"ب","ﺒ":"ب","ﺐ":"ب","ﺏ":"ب","ݑ":"بۛ","ࢶ":"بۢ","ࢡ":"بٔ","ﲠ":"بo","ﳢ":"بo","ﲜ":"بج","ﰅ":"بج","ﲝ":"بح","ﰆ":"بح","ﷂ":"بحى","ﲞ":"بخ","ﰇ":"بخ","ﳒ":"بخ","ﱋ":"بخ","ﶞ":"بخى","ﱪ":"بر","ﱫ":"بز","ﲟ":"بم","ﳡ":"بم","ﱬ":"بم","ﰈ":"بم","ﱭ":"بن","ﱮ":"بى","ﰉ":"بى","ﱯ":"بى","ﰊ":"بى","ﭔ":"ٻ","ﭕ":"ٻ","ﭓ":"ٻ","ﭒ":"ٻ","ې":"ٻ","ﯦ":"ٻ","ﯧ":"ٻ","ﯥ":"ٻ","ﯤ":"ٻ","ﭜ":"ڀ","ﭝ":"ڀ","ﭛ":"ڀ","ﭚ":"ڀ","ࢩ":"ݔ","ݧ":"ݔ","⍥":"ة","ö":"ة","ﺔ":"ة","ﺓ":"ة","ۃ":"ة","𞸕":"ت","𞸵":"ت","𞹵":"ت","𞺕":"ت","𞺵":"ت","ﺗ":"ت","ﺘ":"ت","ﺖ":"ت","ﺕ":"ت","ﲥ":"تo","ﳤ":"تo","ﲡ":"تج","ﰋ":"تج","ﵐ":"تجم","ﶠ":"تجى","ﶟ":"تجى","ﲢ":"تح","ﰌ":"تح","ﵒ":"تحج","ﵑ":"تحج","ﵓ":"تحم","ﲣ":"تخ","ﰍ":"تخ","ﵔ":"تخم","ﶢ":"تخى","ﶡ":"تخى","ﱰ":"تر","ﱱ":"تز","ﲤ":"تم","ﳣ":"تم","ﱲ":"تم","ﰎ":"تم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﶤ":"تمى","ﶣ":"تمى","ﱳ":"تن","ﱴ":"تى","ﰏ":"تى","ﱵ":"تى","ﰐ":"تى","ﭠ":"ٺ","ﭡ":"ٺ","ﭟ":"ٺ","ﭞ":"ٺ","ﭤ":"ٿ","ﭥ":"ٿ","ﭣ":"ٿ","ﭢ":"ٿ","𞸂":"ج","𞸢":"ج","𞹂":"ج","𞹢":"ج","𞺂":"ج","𞺢":"ج","ﺟ":"ج","ﺠ":"ج","ﺞ":"ج","ﺝ":"ج","ﲧ":"جح","ﰕ":"جح","ﶦ":"جحى","ﶾ":"جحى","ﷻ":"جل جلlلo","ﲨ":"جم","ﰖ":"جم","ﵙ":"جمح","ﵘ":"جمح","ﶧ":"جمى","ﶥ":"جمى","ﴝ":"جى","ﴁ":"جى","ﴞ":"جى","ﴂ":"جى","ﭸ":"ڃ","ﭹ":"ڃ","ﭷ":"ڃ","ﭶ":"ڃ","ﭴ":"ڄ","ﭵ":"ڄ","ﭳ":"ڄ","ﭲ":"ڄ","ﭼ":"چ","ﭽ":"چ","ﭻ":"چ","ﭺ":"چ","ﮀ":"ڇ","ﮁ":"ڇ","ﭿ":"ڇ","ﭾ":"ڇ","𞸇":"ح","𞸧":"ح","𞹇":"ح","𞹧":"ح","𞺇":"ح","𞺧":"ح","ﺣ":"ح","ﺤ":"ح","ﺢ":"ح","ﺡ":"ح","څ":"حۛ","ځ":"حٔ","ݲ":"حٔ","ﲩ":"حج","ﰗ":"حج","ﶿ":"حجى","ﲪ":"حم","ﰘ":"حم","ﵛ":"حمى","ﵚ":"حمى","ﴛ":"حى","ﳿ":"حى","ﴜ":"حى","ﴀ":"حى","𞸗":"خ","𞸷":"خ","𞹗":"خ","𞹷":"خ","𞺗":"خ","𞺷":"خ","ﺧ":"خ","ﺨ":"خ","ﺦ":"خ","ﺥ":"خ","ﲫ":"خج","ﰙ":"خج","ﰚ":"خح","ﲬ":"خم","ﰛ":"خم","ﴟ":"خى","ﴃ":"خى","ﴠ":"خى","ﴄ":"خى","𐋡":"د","𞸃":"د","𞺃":"د","𞺣":"د","ﺪ":"د","ﺩ":"د","ڈ":"دؕ","ﮉ":"دؕ","ﮈ":"دؕ","ڎ":"دۛ","ﮇ":"دۛ","ﮆ":"دۛ","ۮ":"د̂","ࢮ":"د̤̣","𞸘":"ذ","𞺘":"ذ","𞺸":"ذ","ﺬ":"ذ","ﺫ":"ذ","ﱛ":"ذٰ","ڋ":"ڊؕ","ﮅ":"ڌ","ﮄ":"ڌ","ﮃ":"ڍ","ﮂ":"ڍ","𞸓":"ر","𞺓":"ر","𞺳":"ر","ﺮ":"ر","ﺭ":"ر","ڑ":"رؕ","ﮍ":"رؕ","ﮌ":"رؕ","ژ":"رۛ","ﮋ":"رۛ","ﮊ":"رۛ","ڒ":"ر̆","ࢹ":"ر̆̇","ۯ":"ر̂","ݬ":"رٔ","ﱜ":"رٰ","ﷶ":"رسول","﷼":"رىlل","𞸆":"ز","𞺆":"ز","𞺦":"ز","ﺰ":"ز","ﺯ":"ز","ࢲ":"ز̂","ݱ":"ڗؕ","𞸎":"س","𞸮":"س","𞹎":"س","𞹮":"س","𞺎":"س","𞺮":"س","ﺳ":"س","ﺴ":"س","ﺲ":"س","ﺱ":"س","ش":"سۛ","𞸔":"سۛ","𞸴":"سۛ","𞹔":"سۛ","𞹴":"سۛ","𞺔":"سۛ","𞺴":"سۛ","ﺷ":"سۛ","ﺸ":"سۛ","ﺶ":"سۛ","ﺵ":"سۛ","ݾ":"س̂","ﴱ":"سo","ﳨ":"سo","ﴲ":"سۛo","ﳪ":"سۛo","ﲭ":"سج","ﴴ":"سج","ﰜ":"سج","ﴭ":"سۛج","ﴷ":"سۛج","ﴥ":"سۛج","ﴉ":"سۛج","ﵝ":"سجح","ﵞ":"سجى","ﵩ":"سۛجى","ﲮ":"سح","ﴵ":"سح","ﰝ":"سح","ﴮ":"سۛح","ﴸ":"سۛح","ﴦ":"سۛح","ﴊ":"سۛح","ﵜ":"سحج","ﵨ":"سۛحم","ﵧ":"سۛحم","ﶪ":"سۛحى","ﲯ":"سخ","ﴶ":"سخ","ﰞ":"سخ","ﴯ":"سۛخ","ﴹ":"سۛخ","ﴧ":"سۛخ","ﴋ":"سۛخ","ﶨ":"سخى","ﷆ":"سخى","ﴪ":"سر","ﴎ":"سر","ﴩ":"سۛر","ﴍ":"سۛر","ﲰ":"سم","ﳧ":"سم","ﰟ":"سم","ﴰ":"سۛم","ﳩ":"سۛم","ﴨ":"سۛم","ﴌ":"سۛم","ﵡ":"سمج","ﵠ":"سمح","ﵟ":"سمح","ﵫ":"سۛمخ","ﵪ":"سۛمخ","ﵣ":"سمم","ﵢ":"سمم","ﵭ":"سۛمم","ﵬ":"سۛمم","ﴗ":"سى","ﳻ":"سى","ﴘ":"سى","ﳼ":"سى","ﴙ":"سۛى","ﳽ":"سۛى","ﴚ":"سۛى","ﳾ":"سۛى","𐋲":"ص","𞸑":"ص","𞸱":"ص","𞹑":"ص","𞹱":"ص","𞺑":"ص","𞺱":"ص","ﺻ":"ص","ﺼ":"ص","ﺺ":"ص","ﺹ":"ص","ڞ":"صۛ","ࢯ":"ص̤̣","ﲱ":"صح","ﰠ":"صح","ﵥ":"صحح","ﵤ":"صحح","ﶩ":"صحى","ﲲ":"صخ","ﴫ":"صر","ﴏ":"صر","ﷵ":"صلعم","ﷹ":"صلى","ﷰ":"صلى","ﷺ":"صلى lللo علىo وسلم","ﲳ":"صم","ﰡ":"صم","ﷅ":"صمم","ﵦ":"صمم","ﴡ":"صى","ﴅ":"صى","ﴢ":"صى","ﴆ":"صى","𞸙":"ض","𞸹":"ض","𞹙":"ض","𞹹":"ض","𞺙":"ض","𞺹":"ض","ﺿ":"ض","ﻀ":"ض","ﺾ":"ض","ﺽ":"ض","ﲴ":"ضج","ﰢ":"ضج","ﲵ":"ضح","ﰣ":"ضح","ﵮ":"ضحى","ﶫ":"ضحى","ﲶ":"ضخ","ﰤ":"ضخ","ﵰ":"ضخم","ﵯ":"ضخم","ﴬ":"ضر","ﴐ":"ضر","ﲷ":"ضم","ﰥ":"ضم","ﴣ":"ضى","ﴇ":"ضى","ﴤ":"ضى","ﴈ":"ضى","𐋨":"ط","𞸈":"ط","𞹨":"ط","𞺈":"ط","𞺨":"ط","ﻃ":"ط","ﻄ":"ط","ﻂ":"ط","ﻁ":"ط","ڟ":"طۛ","ﲸ":"طح","ﰦ":"طح","ﴳ":"طم","ﴺ":"طم","ﰧ":"طم","ﵲ":"طمح","ﵱ":"طمح","ﵳ":"طمم","ﵴ":"طمى","ﴑ":"طى","ﳵ":"طى","ﴒ":"طى","ﳶ":"طى","𞸚":"ظ","𞹺":"ظ","𞺚":"ظ","𞺺":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻆ":"ظ","ﻅ":"ظ","ﲹ":"ظم","ﴻ":"ظم","ﰨ":"ظم","؏":"ع","𞸏":"ع","𞸯":"ع","𞹏":"ع","𞹯":"ع","𞺏":"ع","𞺯":"ع","ﻋ":"ع","ﻌ":"ع","ﻊ":"ع","ﻉ":"ع","ﲺ":"عج","ﰩ":"عج","ﷄ":"عجم","ﵵ":"عجم","ﷷ":"علىo","ﲻ":"عم","ﰪ":"عم","ﵷ":"عمم","ﵶ":"عمم","ﵸ":"عمى","ﶶ":"عمى","ﴓ":"عى","ﳷ":"عى","ﴔ":"عى","ﳸ":"عى","𞸛":"غ","𞸻":"غ","𞹛":"غ","𞹻":"غ","𞺛":"غ","𞺻":"غ","ﻏ":"غ","ﻐ":"غ","ﻎ":"غ","ﻍ":"غ","ﲼ":"غج","ﰫ":"غج","ﲽ":"غم","ﰬ":"غم","ﵹ":"غمم","ﵻ":"غمى","ﵺ":"غمى","ﴕ":"غى","ﳹ":"غى","ﴖ":"غى","ﳺ":"غى","𞸐":"ف","𞸰":"ف","𞹰":"ف","𞺐":"ف","𞺰":"ف","ﻓ":"ف","ﻔ":"ف","ﻒ":"ف","ﻑ":"ف","ڧ":"ف","ﲾ":"فج","ﰭ":"فج","ﲿ":"فح","ﰮ":"فح","ﳀ":"فخ","ﰯ":"فخ","ﵽ":"فخم","ﵼ":"فخم","ﳁ":"فم","ﰰ":"فم","ﷁ":"فمى","ﱼ":"فى","ﰱ":"فى","ﱽ":"فى","ﰲ":"فى","𞸞":"ڡ","𞹾":"ڡ","ࢻ":"ڡ","ٯ":"ڡ","𞸟":"ڡ","𞹟":"ڡ","ࢼ":"ڡ","ڤ":"ڡۛ","ﭬ":"ڡۛ","ﭭ":"ڡۛ","ﭫ":"ڡۛ","ﭪ":"ڡۛ","ڨ":"ڡۛ","ࢤ":"ڢۛ","ﭰ":"ڦ","ﭱ":"ڦ","ﭯ":"ڦ","ﭮ":"ڦ","𞸒":"ق","𞸲":"ق","𞹒":"ق","𞹲":"ق","𞺒":"ق","𞺲":"ق","ﻗ":"ق","ﻘ":"ق","ﻖ":"ق","ﻕ":"ق","ﳂ":"قح","ﰳ":"قح","ﷱ":"قلى","ﳃ":"قم","ﰴ":"قم","ﶴ":"قمح","ﵾ":"قمح","ﵿ":"قمم","ﶲ":"قمى","ﱾ":"قى","ﰵ":"قى","ﱿ":"قى","ﰶ":"قى","𞸊":"ك","𞸪":"ك","𞹪":"ك","ﻛ":"ك","ﻜ":"ك","ﻚ":"ك","ﻙ":"ك","ک":"ك","ﮐ":"ك","ﮑ":"ك","ﮏ":"ك","ﮎ":"ك","ڪ":"ك","ڭ":"كۛ","ﯕ":"كۛ","ﯖ":"كۛ","ﯔ":"كۛ","ﯓ":"كۛ","ݣ":"كۛ","ﲀ":"كl","ﰷ":"كl","ﳄ":"كج","ﰸ":"كج","ﳅ":"كح","ﰹ":"كح","ﳆ":"كخ","ﰺ":"كخ","ﳇ":"كل","ﳫ":"كل","ﲁ":"كل","ﰻ":"كل","ﳈ":"كم","ﳬ":"كم","ﲂ":"كم","ﰼ":"كم","ﷃ":"كمم","ﶻ":"كمم","ﶷ":"كمى","ﲃ":"كى","ﰽ":"كى","ﲄ":"كى","ﰾ":"كى","ݢ":"ڬ","ﮔ":"گ","ﮕ":"گ","ﮓ":"گ","ﮒ":"گ","ࢰ":"گ","ڴ":"گۛ","ﮜ":"ڱ","ﮝ":"ڱ","ﮛ":"ڱ","ﮚ":"ڱ","ﮘ":"ڳ","ﮙ":"ڳ","ﮗ":"ڳ","ﮖ":"ڳ","𞸋":"ل","𞸫":"ل","𞹋":"ل","𞺋":"ل","𞺫":"ل","ﻟ":"ل","ﻠ":"ل","ﻞ":"ل","ﻝ":"ل","ڷ":"لۛ","ڵ":"ل̆","ﻼ":"لl","ﻻ":"لl","ﻺ":"لlٕ","ﻹ":"لlٕ","ﻸ":"لlٴ","ﻷ":"لlٴ","ﳍ":"لo","ﻶ":"لآ","ﻵ":"لآ","ﳉ":"لج","ﰿ":"لج","ﶃ":"لجج","ﶄ":"لجج","ﶺ":"لجم","ﶼ":"لجم","ﶬ":"لجى","ﳊ":"لح","ﱀ":"لح","ﶵ":"لحم","ﶀ":"لحم","ﶂ":"لحى","ﶁ":"لحى","ﳋ":"لخ","ﱁ":"لخ","ﶆ":"لخم","ﶅ":"لخم","ﳌ":"لم","ﳭ":"لم","ﲅ":"لم","ﱂ":"لم","ﶈ":"لمح","ﶇ":"لمح","ﶭ":"لمى","ﲆ":"لى","ﱃ":"لى","ﲇ":"لى","ﱄ":"لى","𞸌":"م","𞸬":"م","𞹬":"م","𞺌":"م","𞺬":"م","ﻣ":"م","ﻤ":"م","ﻢ":"م","ﻡ":"م","ࢧ":"مۛ","۾":"م͈","ﲈ":"مl","ﳎ":"مج","ﱅ":"مج","ﶌ":"مجح","ﶒ":"مجخ","ﶍ":"مجم","ﷀ":"مجى","ﳏ":"مح","ﱆ":"مح","ﶉ":"محج","ﶊ":"محم","ﷴ":"محمد","ﶋ":"محى","ﳐ":"مخ","ﱇ":"مخ","ﶎ":"مخج","ﶏ":"مخم","ﶹ":"مخى","ﳑ":"مم","ﲉ":"مم","ﱈ":"مم","ﶱ":"ممى","ﱉ":"مى","ﱊ":"مى","𞸍":"ن","𞸭":"ن","𞹍":"ن","𞹭":"ن","𞺍":"ن","𞺭":"ن","ﻧ":"ن","ﻨ":"ن","ﻦ":"ن","ﻥ":"ن","ݨ":"نؕ","ݩ":"ن̆","ﳖ":"نo","ﳯ":"نo","ﶸ":"نجح","ﶽ":"نجح","ﶘ":"نجم","ﶗ":"نجم","ﶙ":"نجى","ﷇ":"نجى","ﳓ":"نح","ﱌ":"نح","ﶕ":"نحم","ﶖ":"نحى","ﶳ":"نحى","ﳔ":"نخ","ﱍ":"نخ","ﲊ":"نر","ﲋ":"نز","ﳕ":"نم","ﳮ":"نم","ﲌ":"نم","ﱎ":"نم","ﶛ":"نمى","ﶚ":"نمى","ﲍ":"نن","ﲎ":"نى","ﱏ":"نى","ﲏ":"نى","ﱐ":"نى","ۂ":"ۀ","ﮥ":"ۀ","ﮤ":"ۀ","𐋤":"و","𞸅":"و","𞺅":"و","𞺥":"و","ﻮ":"و","ﻭ":"و","ࢱ":"و","ۋ":"وۛ","ﯟ":"وۛ","ﯞ":"وۛ","ۇ":"و̓","ﯘ":"و̓","ﯗ":"و̓","ۆ":"و̆","ﯚ":"و̆","ﯙ":"و̆","ۉ":"و̂","ﯣ":"و̂","ﯢ":"و̂","ۈ":"وٰ","ﯜ":"وٰ","ﯛ":"وٰ","ؤ":"وٴ","ﺆ":"وٴ","ﺅ":"وٴ","ٶ":"وٴ","ٷ":"و̓ٴ","ﯝ":"و̓ٴ","ﷸ":"وسلم","ﯡ":"ۅ","ﯠ":"ۅ","ٮ":"ى","𞸜":"ى","𞹼":"ى","ں":"ى","𞸝":"ى","𞹝":"ى","ﮟ":"ى","ﮞ":"ى","ࢽ":"ى","ﯨ":"ى","ﯩ":"ى","ﻰ":"ى","ﻯ":"ى","ي":"ى","𞸉":"ى","𞸩":"ى","𞹉":"ى","𞹩":"ى","𞺉":"ى","𞺩":"ى","ﻳ":"ى","ﻴ":"ى","ﻲ":"ى","ﻱ":"ى","ی":"ى","ﯾ":"ى","ﯿ":"ى","ﯽ":"ى","ﯼ":"ى","ے":"ى","ﮯ":"ى","ﮮ":"ى","ٹ":"ىؕ","ﭨ":"ىؕ","ﭩ":"ىؕ","ﭧ":"ىؕ","ﭦ":"ىؕ","ڻ":"ىؕ","ﮢ":"ىؕ","ﮣ":"ىؕ","ﮡ":"ىؕ","ﮠ":"ىؕ","پ":"ىۛ","ﭘ":"ىۛ","ﭙ":"ىۛ","ﭗ":"ىۛ","ﭖ":"ىۛ","ث":"ىۛ","𞸖":"ىۛ","𞸶":"ىۛ","𞹶":"ىۛ","𞺖":"ىۛ","𞺶":"ىۛ","ﺛ":"ىۛ","ﺜ":"ىۛ","ﺚ":"ىۛ","ﺙ":"ىۛ","ڽ":"ىۛ","ۑ":"ىۛ","ؿ":"ىۛ","ࢷ":"ىۛۢ","ݖ":"ى̆","ێ":"ى̆","ࢺ":"ى̆̇","ؽ":"ى̂","ࢨ":"ىٔ","ﲐ":"ىٰ","ﱝ":"ىٰ","ﳞ":"ىo","ﳱ":"ىo","ﳦ":"ىۛo","ئ":"ىٴ","ﺋ":"ىٴ","ﺌ":"ىٴ","ﺊ":"ىٴ","ﺉ":"ىٴ","ٸ":"ىٴ","ﯫ":"ىٴl","ﯪ":"ىٴl","ﲛ":"ىٴo","ﳠ":"ىٴo","ﯭ":"ىٴo","ﯬ":"ىٴo","ﯸ":"ىٴٻ","ﯷ":"ىٴٻ","ﯶ":"ىٴٻ","ﲗ":"ىٴج","ﰀ":"ىٴج","ﲘ":"ىٴح","ﰁ":"ىٴح","ﲙ":"ىٴخ","ﱤ":"ىٴر","ﱥ":"ىٴز","ﲚ":"ىٴم","ﳟ":"ىٴم","ﱦ":"ىٴم","ﰂ":"ىٴم","ﱧ":"ىٴن","ﯯ":"ىٴو","ﯮ":"ىٴو","ﯱ":"ىٴو̓","ﯰ":"ىٴو̓","ﯳ":"ىٴو̆","ﯲ":"ىٴو̆","ﯵ":"ىٴوٰ","ﯴ":"ىٴوٰ","ﯻ":"ىٴى","ﯺ":"ىٴى","ﱨ":"ىٴى","ﯹ":"ىٴى","ﰃ":"ىٴى","ﱩ":"ىٴى","ﰄ":"ىٴى","ﳚ":"ىج","ﱕ":"ىج","ﰑ":"ىۛج","ﶯ":"ىجى","ﳛ":"ىح","ﱖ":"ىح","ﶮ":"ىحى","ﳜ":"ىخ","ﱗ":"ىخ","ﲑ":"ىر","ﱶ":"ىۛر","ﲒ":"ىز","ﱷ":"ىۛز","ﳝ":"ىم","ﳰ":"ىم","ﲓ":"ىم","ﱘ":"ىم","ﲦ":"ىۛم","ﳥ":"ىۛم","ﱸ":"ىۛم","ﰒ":"ىۛم","ﶝ":"ىمم","ﶜ":"ىمم","ﶰ":"ىمى","ﲔ":"ىن","ﱹ":"ىۛن","ﲕ":"ىى","ﱙ":"ىى","ﲖ":"ىى","ﱚ":"ىى","ﱺ":"ىۛى","ﰓ":"ىۛى","ﱻ":"ىۛى","ﰔ":"ىۛى","ﮱ":"ۓ","ﮰ":"ۓ","𐊸":"ⵀ","⁞":"ⵂ","⸽":"ⵂ","⦙":"ⵂ","︙":"ⵗ","⁝":"ⵗ","⋮":"ⵗ","Մ":"ሆ","Ռ":"ቡ","Ի":"ኮ","Պ":"ጣ","आ":"अा","ऒ":"अाॆ","ओ":"अाे","औ":"अाै","ऄ":"अॆ","ऑ":"अॉ","ऍ":"एॅ","ऎ":"एॆ","ऐ":"एे","ई":"र्इ","ઽ":"ऽ","𑇜":"ꣻ","𑇋":"ऺ","ુ":"ु","ૂ":"ू","ੋ":"ॆ","੍":"्","્":"्","আ":"অা","ৠ":"ঋৃ","ৡ":"ঋৃ","𑒒":"ঘ","𑒔":"চ","𑒖":"জ","𑒘":"ঞ","𑒙":"ট","𑒛":"ড","𑒪":"ণ","𑒞":"ত","𑒟":"থ","𑒠":"দ","𑒡":"ধ","𑒢":"ন","𑒣":"প","𑒩":"ব","𑒧":"ম","𑒨":"য","𑒫":"র","𑒝":"ল","𑒭":"ষ","𑒮":"স","𑓄":"ঽ","𑒰":"া","𑒱":"ি","𑒹":"ে","𑒼":"ো","𑒾":"ৌ","𑓂":"্","𑒽":"ৗ","ਉ":"ੳੁ","ਊ":"ੳੂ","ਆ":"ਅਾ","ਐ":"ਅੈ","ਔ":"ਅੌ","ਇ":"ੲਿ","ਈ":"ੲੀ","ਏ":"ੲੇ","આ":"અા","ઑ":"અાૅ","ઓ":"અાે","ઔ":"અાૈ","ઍ":"અૅ","એ":"અે","ઐ":"અૈ","ଆ":"ଅା","௮":"அ","ர":"ஈ","ா":"ஈ","௫":"ஈு","௨":"உ","ഉ":"உ","ஊ":"உள","ഊ":"உൗ","௭":"எ","௷":"எவ","ஜ":"ஐ","ജ":"ஐ","௧":"க","௪":"ச","௬":"சு","௲":"சூ","ഺ":"டி","ണ":"ண","௺":"நீ","௴":"மீ","௰":"ய","ഴ":"ழ","ௗ":"ள","ை":"ன","ശ":"ஶ","௸":"ஷ","ി":"ி","ീ":"ி","ொ":"ெஈ","ௌ":"ெள","ோ":"ேஈ","ಅ":"అ","ಆ":"ఆ","ಇ":"ఇ","ౠ":"ఋా","ౡ":"ఌా","ಒ":"ఒ","ఔ":"ఒౌ","ಔ":"ఒౌ","ఓ":"ఒౕ","ಓ":"ఒౕ","ಜ":"జ","ಞ":"ఞ","ఢ":"డ̣","ಣ":"ణ","థ":"ధּ","భ":"బ̣","ಯ":"య","ఠ":"రּ","ಱ":"ఱ","ಲ":"ల","ష":"వ̣","హ":"వా","మ":"వు","ూ":"ుా","ౄ":"ృా","ೡ":"ಌಾ","ഈ":"ഇൗ","ഐ":"എെ","ഓ":"ഒാ","ഔ":"ഒൗ","ൡ":"ഞ","൫":"ദ്ര","൹":"നു","ഌ":"നു","ങ":"നു","൯":"ന്","ൻ":"ന്","൬":"ന്ന","൚":"ന്മ","റ":"ര","൪":"ര്","ർ":"ര്","൮":"വ്ര","൶":"ഹ്മ","ൂ":"ു","ൃ":"ു","ൈ":"െെ","෪":"ජ","෫":"ද","𑐓":"𑐴𑑂𑐒","𑐙":"𑐴𑑂𑐘","𑐤":"𑐴𑑂𑐣","𑐪":"𑐴𑑂𑐩","𑐭":"𑐴𑑂𑐬","𑐯":"𑐴𑑂𑐮","𑗘":"𑖂","𑗙":"𑖂","𑗚":"𑖃","𑗛":"𑖄","𑗜":"𑖲","𑗝":"𑖳","ฃ":"ข","ด":"ค","ต":"ค","ม":"ฆ","ຈ":"จ","ซ":"ช","ฏ":"ฎ","ท":"ฑ","ບ":"บ","ປ":"ป","ຝ":"ฝ","ພ":"พ","ຟ":"ฟ","ฦ":"ภ","ຍ":"ย","។":"ฯ","ๅ":"า","ำ":"̊า","ិ":"ิ","ី":"ี","ឹ":"ึ","ឺ":"ื","ຸ":"ุ","ູ":"ู","แ":"เเ","ໜ":"ຫນ","ໝ":"ຫມ","ຳ":"̊າ","༂":"འུྂཿ","༃":"འུྂ༔","ཪ":"ར","ༀ":"ཨོཾ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","𑲲":"𑲪","ႁ":"ဂှ","က":"ဂာ","ၰ":"ဃှ","ၦ":"ပှ","ဟ":"ပာ","ၯ":"ပာှ","ၾ":"ၽှ","ဩ":"သြ","ဪ":"သြော်","႞":"ႃ̊","ឣ":"អ","᧐":"ᦞ","᧑":"ᦱ","᪀":"ᩅ","᪐":"ᩅ","꩓":"ꨁ","꩖":"ꨣ","᭒":"ᬍ","᭓":"ᬑ","᭘":"ᬨ","ꦣ":"ꦝ","ᢖ":"ᡜ","ᡕ":"ᠵ","ῶ":"Ꮿ","ᐍ":"ᐁ·","ᐫ":"ᐁᐠ","ᐑ":"ᐄ·","ᐓ":"ᐅ·","ᐭ":"ᐅᐠ","ᐕ":"ᐆ·","ᐘ":"ᐊ·","ᐮ":"ᐊᐠ","ᐚ":"ᐋ·","ᣝ":"ᐞᣟ","ᓑ":"ᐡ","ᕀ":"ᐩ","ᐿ":"ᐲ·","ᑃ":"ᐴ·","⍩":"ᐵ","ᑇ":"ᐹ·","ᑜ":"ᑏ·","⸧":"ᑐ","⊃":"ᑐ","ᑞ":"ᑐ·","ᑩ":"ᑐ\'","⟉":"ᑐ/","⫗":"ᑐᑕ","ᑠ":"ᑑ·","⸦":"ᑕ","⊂":"ᑕ","ᑢ":"ᑕ·","ᑪ":"ᑕ\'","ᑤ":"ᑖ·","ᑵ":"ᑫ·","ᒅ":"ᑫ\'","ᑹ":"ᑮ·","ᑽ":"ᑰ·","ᘃ":"ᒉ","ᒓ":"ᒉ·","ᒕ":"ᒋ·","ᒗ":"ᒌ·","ᒛ":"ᒎ·","ᘂ":"ᒐ","ᒝ":"ᒐ·","ᒟ":"ᒑ·","ᒭ":"ᒣ·","ᒱ":"ᒦ·","ᒳ":"ᒧ·","ᒵ":"ᒨ·","ᒹ":"ᒫ·","ᓊ":"ᓀ·","ᣇ":"ᓂ·","ᣉ":"ᓃ·","ᣋ":"ᓄ·","ᣍ":"ᓅ·","ᓌ":"ᓇ·","ᓎ":"ᓈ·","ᘄ":"ᓓ","ᓝ":"ᓓ·","ᓟ":"ᓕ·","ᓡ":"ᓖ·","ᓣ":"ᓗ·","ᓥ":"ᓘ·","ᘇ":"ᓚ","ᓧ":"ᓚ·","ᓩ":"ᓛ·","ᓷ":"ᓭ·","ᓹ":"ᓯ·","ᓻ":"ᓰ·","ᓽ":"ᓱ·","ᓿ":"ᓲ·","ᔁ":"ᓴ·","ᔃ":"ᓵ·","ᔌ":"ᔋ<","ᔎ":"ᔋb","ᔍ":"ᔋᑕ","ᔏ":"ᔋᒐ","ᔘ":"ᔐ·","ᔚ":"ᔑ·","ᔜ":"ᔒ·","ᔞ":"ᔓ·","ᔠ":"ᔔ·","ᔢ":"ᔕ·","ᔤ":"ᔖ·","ᔲ":"ᔨ·","ᔴ":"ᔩ·","ᔶ":"ᔪ·","ᔸ":"ᔫ·","ᔺ":"ᔭ·","ᔼ":"ᔮ·","ᘢ":"ᕃ","ᣠ":"ᕃ·","ᘣ":"ᕆ","ᘤ":"ᕊ","ᕏ":"ᕌ·","ᖃ":"ᕐb","ᖄ":"ᕐḃ","ᖁ":"ᕐd","ᕿ":"ᕐP","ᙯ":"ᕐᑫ","ᕾ":"ᕐᑬ","ᖀ":"ᕐᑮ","ᖂ":"ᕐᑰ","ᖅ":"ᕐᒃ","ᕜ":"ᕚ·","ᣣ":"ᕞ·","ᣤ":"ᕦ·","ᕩ":"ᕧ·","ᣥ":"ᕫ·","ᣨ":"ᖆ·","ᖑ":"ᖕJ","ᙰ":"ᖕᒉ","ᖎ":"ᖕᒊ","ᖏ":"ᖕᒋ","ᖐ":"ᖕᒌ","ᖒ":"ᖕᒎ","ᖓ":"ᖕᒐ","ᖔ":"ᖕᒑ","ᙳ":"ᖖJ","ᙱ":"ᖖᒋ","ᙲ":"ᖖᒌ","ᙴ":"ᖖᒎ","ᙵ":"ᖖᒐ","ᙶ":"ᖖᒑ","ᣪ":"ᖗ·","ᙷ":"ᖧ·","ᙸ":"ᖨ·","ᙹ":"ᖩ·","ᙺ":"ᖪ·","ᙻ":"ᖫ·","ᙼ":"ᖬ·","ᙽ":"ᖭ·","⪫":"ᗒ","⪪":"ᗕ","ꓷ":"ᗡ","ᣰ":"ᗴ·","ᣲ":"ᘛ·","ᶻ":"ᙆ","ꓭ":"ᙠ","ᶺ":"ᣔ","ᴾ":"ᣖ","ᣜ":"ᣟᐞ","ˡ":"ᣳ","ʳ":"ᣴ","ˢ":"ᣵ","ᣛ":"ᣵ","ꚰ":"ᚹ","ᛡ":"ᚼ","⍿":"ᚽ","ᛂ":"ᚽ","𝈿":"ᛋ","↑":"ᛏ","↿":"ᛐ","⥮":"ᛐ⇂","⥣":"ᛐᛚ","ⵣ":"ᛯ","↾":"ᛚ","⨡":"ᛚ","⋄":"ᛜ","◇":"ᛜ","◊":"ᛜ","♢":"ᛜ","🝔":"ᛜ","𑢷":"ᛜ","𐊔":"ᛜ","⍚":"ᛜ̲","⋈":"ᛞ","⨝":"ᛞ","𐓐":"ᛦ","↕":"ᛨ","𐳼":"𐲂","𐳺":"𐲥","ㄱ":"ᄀ","ᆨ":"ᄀ","ᄁ":"ᄀᄀ","ㄲ":"ᄀᄀ","ᆩ":"ᄀᄀ","ᇺ":"ᄀᄂ","ᅚ":"ᄀᄃ","ᇃ":"ᄀᄅ","ᇻ":"ᄀᄇ","ᆪ":"ᄀᄉ","ㄳ":"ᄀᄉ","ᇄ":"ᄀᄉᄀ","ᇼ":"ᄀᄎ","ᇽ":"ᄀᄏ","ᇾ":"ᄀᄒ","ㄴ":"ᄂ","ᆫ":"ᄂ","ᄓ":"ᄂᄀ","ᇅ":"ᄂᄀ","ᄔ":"ᄂᄂ","ㅥ":"ᄂᄂ","ᇿ":"ᄂᄂ","ᄕ":"ᄂᄃ","ㅦ":"ᄂᄃ","ᇆ":"ᄂᄃ","ퟋ":"ᄂᄅ","ᄖ":"ᄂᄇ","ᅛ":"ᄂᄉ","ᇇ":"ᄂᄉ","ㅧ":"ᄂᄉ","ᅜ":"ᄂᄌ","ᆬ":"ᄂᄌ","ㄵ":"ᄂᄌ","ퟌ":"ᄂᄎ","ᇉ":"ᄂᄐ","ᅝ":"ᄂᄒ","ᆭ":"ᄂᄒ","ㄶ":"ᄂᄒ","ᇈ":"ᄂᅀ","ㅨ":"ᄂᅀ","ㄷ":"ᄃ","ᆮ":"ᄃ","ᄗ":"ᄃᄀ","ᇊ":"ᄃᄀ","ᄄ":"ᄃᄃ","ㄸ":"ᄃᄃ","ퟍ":"ᄃᄃ","ퟎ":"ᄃᄃᄇ","ᅞ":"ᄃᄅ","ᇋ":"ᄃᄅ","ꥠ":"ᄃᄆ","ꥡ":"ᄃᄇ","ퟏ":"ᄃᄇ","ꥢ":"ᄃᄉ","ퟐ":"ᄃᄉ","ퟑ":"ᄃᄉᄀ","ꥣ":"ᄃᄌ","ퟒ":"ᄃᄌ","ퟓ":"ᄃᄎ","ퟔ":"ᄃᄐ","ㄹ":"ᄅ","ᆯ":"ᄅ","ꥤ":"ᄅᄀ","ᆰ":"ᄅᄀ","ㄺ":"ᄅᄀ","ꥥ":"ᄅᄀᄀ","ퟕ":"ᄅᄀᄀ","ᇌ":"ᄅᄀᄉ","ㅩ":"ᄅᄀᄉ","ퟖ":"ᄅᄀᄒ","ᄘ":"ᄅᄂ","ᇍ":"ᄅᄂ","ꥦ":"ᄅᄃ","ᇎ":"ᄅᄃ","ㅪ":"ᄅᄃ","ꥧ":"ᄅᄃᄃ","ᇏ":"ᄅᄃᄒ","ᄙ":"ᄅᄅ","ᇐ":"ᄅᄅ","ퟗ":"ᄅᄅᄏ","ꥨ":"ᄅᄆ","ᆱ":"ᄅᄆ","ㄻ":"ᄅᄆ","ᇑ":"ᄅᄆᄀ","ᇒ":"ᄅᄆᄉ","ퟘ":"ᄅᄆᄒ","ꥩ":"ᄅᄇ","ᆲ":"ᄅᄇ","ㄼ":"ᄅᄇ","ퟙ":"ᄅᄇᄃ","ꥪ":"ᄅᄇᄇ","ᇓ":"ᄅᄇᄉ","ㅫ":"ᄅᄇᄉ","ꥫ":"ᄅᄇᄋ","ᇕ":"ᄅᄇᄋ","ퟚ":"ᄅᄇᄑ","ᇔ":"ᄅᄇᄒ","ꥬ":"ᄅᄉ","ᆳ":"ᄅᄉ","ㄽ":"ᄅᄉ","ᇖ":"ᄅᄉᄉ","ᄛ":"ᄅᄋ","ퟝ":"ᄅᄋ","ꥭ":"ᄅᄌ","ꥮ":"ᄅᄏ","ᇘ":"ᄅᄏ","ᆴ":"ᄅᄐ","ㄾ":"ᄅᄐ","ᆵ":"ᄅᄑ","ㄿ":"ᄅᄑ","ᄚ":"ᄅᄒ","ㅀ":"ᄅᄒ","ᄻ":"ᄅᄒ","ᆶ":"ᄅᄒ","ퟲ":"ᄅᄒ","ᇗ":"ᄅᅀ","ㅬ":"ᄅᅀ","ퟛ":"ᄅᅌ","ᇙ":"ᄅᅙ","ㅭ":"ᄅᅙ","ퟜ":"ᄅᅙᄒ","ㅁ":"ᄆ","ᆷ":"ᄆ","ꥯ":"ᄆᄀ","ᇚ":"ᄆᄀ","ퟞ":"ᄆᄂ","ퟟ":"ᄆᄂᄂ","ꥰ":"ᄆᄃ","ᇛ":"ᄆᄅ","ퟠ":"ᄆᄆ","ᄜ":"ᄆᄇ","ㅮ":"ᄆᄇ","ᇜ":"ᄆᄇ","ퟡ":"ᄆᄇᄉ","ꥱ":"ᄆᄉ","ᇝ":"ᄆᄉ","ㅯ":"ᄆᄉ","ᇞ":"ᄆᄉᄉ","ᄝ":"ᄆᄋ","ㅱ":"ᄆᄋ","ᇢ":"ᄆᄋ","ퟢ":"ᄆᄌ","ᇠ":"ᄆᄎ","ᇡ":"ᄆᄒ","ᇟ":"ᄆᅀ","ㅰ":"ᄆᅀ","ㅂ":"ᄇ","ᆸ":"ᄇ","ᄞ":"ᄇᄀ","ㅲ":"ᄇᄀ","ᄟ":"ᄇᄂ","ᄠ":"ᄇᄃ","ㅳ":"ᄇᄃ","ퟣ":"ᄇᄃ","ᇣ":"ᄇᄅ","ퟤ":"ᄇᄅᄑ","ퟥ":"ᄇᄆ","ᄈ":"ᄇᄇ","ㅃ":"ᄇᄇ","ퟦ":"ᄇᄇ","ᄬ":"ᄇᄇᄋ","ㅹ":"ᄇᄇᄋ","ᄡ":"ᄇᄉ","ㅄ":"ᄇᄉ","ᆹ":"ᄇᄉ","ᄢ":"ᄇᄉᄀ","ㅴ":"ᄇᄉᄀ","ᄣ":"ᄇᄉᄃ","ㅵ":"ᄇᄉᄃ","ퟧ":"ᄇᄉᄃ","ᄤ":"ᄇᄉᄇ","ᄥ":"ᄇᄉᄉ","ᄦ":"ᄇᄉᄌ","ꥲ":"ᄇᄉᄐ","ᄫ":"ᄇᄋ","ㅸ":"ᄇᄋ","ᇦ":"ᄇᄋ","ᄧ":"ᄇᄌ","ㅶ":"ᄇᄌ","ퟨ":"ᄇᄌ","ᄨ":"ᄇᄎ","ퟩ":"ᄇᄎ","ꥳ":"ᄇᄏ","ᄩ":"ᄇᄐ","ㅷ":"ᄇᄐ","ᄪ":"ᄇᄑ","ᇤ":"ᄇᄑ","ꥴ":"ᄇᄒ","ᇥ":"ᄇᄒ","ㅅ":"ᄉ","ᆺ":"ᄉ","ᄭ":"ᄉᄀ","ㅺ":"ᄉᄀ","ᇧ":"ᄉᄀ","ᄮ":"ᄉᄂ","ㅻ":"ᄉᄂ","ᄯ":"ᄉᄃ","ㅼ":"ᄉᄃ","ᇨ":"ᄉᄃ","ᄰ":"ᄉᄅ","ᇩ":"ᄉᄅ","ᄱ":"ᄉᄆ","ퟪ":"ᄉᄆ","ᄲ":"ᄉᄇ","ㅽ":"ᄉᄇ","ᇪ":"ᄉᄇ","ᄳ":"ᄉᄇᄀ","ퟫ":"ᄉᄇᄋ","ᄊ":"ᄉᄉ","ㅆ":"ᄉᄉ","ᆻ":"ᄉᄉ","ퟬ":"ᄉᄉᄀ","ퟭ":"ᄉᄉᄃ","ꥵ":"ᄉᄉᄇ","ᄴ":"ᄉᄉᄉ","ᄵ":"ᄉᄋ","ᄶ":"ᄉᄌ","ㅾ":"ᄉᄌ","ퟯ":"ᄉᄌ","ᄷ":"ᄉᄎ","ퟰ":"ᄉᄎ","ᄸ":"ᄉᄏ","ᄹ":"ᄉᄐ","ퟱ":"ᄉᄐ","ᄺ":"ᄉᄑ","ퟮ":"ᄉᅀ","ㅇ":"ᄋ","ᆼ":"ᄋ","ᅁ":"ᄋᄀ","ᇬ":"ᄋᄀ","ᇭ":"ᄋᄀᄀ","ᅂ":"ᄋᄃ","ꥶ":"ᄋᄅ","ᅃ":"ᄋᄆ","ᅄ":"ᄋᄇ","ᅅ":"ᄋᄉ","ᇱ":"ᄋᄉ","ㆂ":"ᄋᄉ","ᅇ":"ᄋᄋ","ㆀ":"ᄋᄋ","ᇮ":"ᄋᄋ","ᅈ":"ᄋᄌ","ᅉ":"ᄋᄎ","ᇯ":"ᄋᄏ","ᅊ":"ᄋᄐ","ᅋ":"ᄋᄑ","ꥷ":"ᄋᄒ","ᅆ":"ᄋᅀ","ᇲ":"ᄋᅀ","ㆃ":"ᄋᅀ","ㅈ":"ᄌ","ᆽ":"ᄌ","ퟷ":"ᄌᄇ","ퟸ":"ᄌᄇᄇ","ᅍ":"ᄌᄋ","ᄍ":"ᄌᄌ","ㅉ":"ᄌᄌ","ퟹ":"ᄌᄌ","ꥸ":"ᄌᄌᄒ","ㅊ":"ᄎ","ᆾ":"ᄎ","ᅒ":"ᄎᄏ","ᅓ":"ᄎᄒ","ㅋ":"ᄏ","ᆿ":"ᄏ","ㅌ":"ᄐ","ᇀ":"ᄐ","ꥹ":"ᄐᄐ","ㅍ":"ᄑ","ᇁ":"ᄑ","ᅖ":"ᄑᄇ","ᇳ":"ᄑᄇ","ퟺ":"ᄑᄉ","ᅗ":"ᄑᄋ","ㆄ":"ᄑᄋ","ᇴ":"ᄑᄋ","ퟻ":"ᄑᄐ","ꥺ":"ᄑᄒ","ㅎ":"ᄒ","ᇂ":"ᄒ","ᇵ":"ᄒᄂ","ᇶ":"ᄒᄅ","ᇷ":"ᄒᄆ","ᇸ":"ᄒᄇ","ꥻ":"ᄒᄉ","ᅘ":"ᄒᄒ","ㆅ":"ᄒᄒ","ᄽ":"ᄼᄼ","ᄿ":"ᄾᄾ","ㅿ":"ᅀ","ᇫ":"ᅀ","ퟳ":"ᅀᄇ","ퟴ":"ᅀᄇᄋ","ㆁ":"ᅌ","ᇰ":"ᅌ","ퟵ":"ᅌᄆ","ퟶ":"ᅌᄒ","ᅏ":"ᅎᅎ","ᅑ":"ᅐᅐ","ㆆ":"ᅙ","ᇹ":"ᅙ","ꥼ":"ᅙᅙ","ㅤ":"ᅠ","ㅏ":"ᅡ","ᆣ":"ᅡー","ᅶ":"ᅡᅩ","ᅷ":"ᅡᅮ","ᅢ":"ᅡ丨","ㅐ":"ᅡ丨","ㅑ":"ᅣ","ᅸ":"ᅣᅩ","ᅹ":"ᅣᅭ","ᆤ":"ᅣᅮ","ᅤ":"ᅣ丨","ㅒ":"ᅣ丨","ㅓ":"ᅥ","ᅼ":"ᅥー","ᅺ":"ᅥᅩ","ᅻ":"ᅥᅮ","ᅦ":"ᅥ丨","ㅔ":"ᅥ丨","ㅕ":"ᅧ","ᆥ":"ᅧᅣ","ᅽ":"ᅧᅩ","ᅾ":"ᅧᅮ","ᅨ":"ᅧ丨","ㅖ":"ᅧ丨","ㅗ":"ᅩ","ᅪ":"ᅩᅡ","ㅘ":"ᅩᅡ","ᅫ":"ᅩᅡ丨","ㅙ":"ᅩᅡ丨","ᆦ":"ᅩᅣ","ᆧ":"ᅩᅣ丨","ᅿ":"ᅩᅥ","ᆀ":"ᅩᅥ丨","ힰ":"ᅩᅧ","ᆁ":"ᅩᅧ丨","ᆂ":"ᅩᅩ","ힱ":"ᅩᅩ丨","ᆃ":"ᅩᅮ","ᅬ":"ᅩ丨","ㅚ":"ᅩ丨","ㅛ":"ᅭ","ힲ":"ᅭᅡ","ힳ":"ᅭᅡ丨","ᆄ":"ᅭᅣ","ㆇ":"ᅭᅣ","ᆆ":"ᅭᅣ","ᆅ":"ᅭᅣ丨","ㆈ":"ᅭᅣ丨","ힴ":"ᅭᅥ","ᆇ":"ᅭᅩ","ᆈ":"ᅭ丨","ㆉ":"ᅭ丨","ㅜ":"ᅮ","ᆉ":"ᅮᅡ","ᆊ":"ᅮᅡ丨","ᅯ":"ᅮᅥ","ㅝ":"ᅮᅥ","ᆋ":"ᅮᅥー","ᅰ":"ᅮᅥ丨","ㅞ":"ᅮᅥ丨","ힵ":"ᅮᅧ","ᆌ":"ᅮᅧ丨","ᆍ":"ᅮᅮ","ᅱ":"ᅮ丨","ㅟ":"ᅮ丨","ힶ":"ᅮ丨丨","ㅠ":"ᅲ","ᆎ":"ᅲᅡ","ힷ":"ᅲᅡ丨","ᆏ":"ᅲᅥ","ᆐ":"ᅲᅥ丨","ᆑ":"ᅲᅧ","ㆊ":"ᅲᅧ","ᆒ":"ᅲᅧ丨","ㆋ":"ᅲᅧ丨","ힸ":"ᅲᅩ","ᆓ":"ᅲᅮ","ᆔ":"ᅲ丨","ㆌ":"ᅲ丨","ㆍ":"ᆞ","ퟅ":"ᆞᅡ","ᆟ":"ᆞᅥ","ퟆ":"ᆞᅥ丨","ᆠ":"ᆞᅮ","ᆢ":"ᆞᆞ","ᆡ":"ᆞ丨","ㆎ":"ᆞ丨","ヘ":"へ","⍁":"〼","⧄":"〼","꒞":"ꁊ","꒬":"ꁐ","꒜":"ꃀ","꒨":"ꄲ","꒿":"ꉙ","꒾":"ꊱ","꒔":"ꋍ","꓀":"ꎫ","꓂":"ꎵ","꒺":"ꎿ","꒰":"ꏂ","꒧":"ꑘ","⊥":"ꓕ","⟂":"ꓕ","𝈜":"ꓕ","Ʇ":"ꓕ","Ꞟ":"ꓤ","⅁":"ꓨ","⅂":"ꓶ","𝈕":"ꓶ","𝈫":"ꓶ","𖼦":"ꓶ","𐐑":"ꓶ","⅃":"𖼀","𑫦":"𑫥𑫯","𑫨":"𑫥𑫥","𑫩":"𑫥𑫥𑫯","𑫪":"𑫥𑫥𑫰","𑫧":"𑫥𑫰","𑫴":"𑫳𑫯","𑫶":"𑫳𑫳","𑫷":"𑫳𑫳𑫯","𑫸":"𑫳𑫳𑫰","𑫵":"𑫳𑫰","𑫬":"𑫫𑫯","𑫭":"𑫫𑫫","𑫮":"𑫫𑫫𑫯","⊕":"𐊨","⨁":"𐊨","🜨":"𐊨","Ꚛ":"𐊨","▽":"𐊼","𝈔":"𐊼","🜄":"𐊼","⧖":"𐋀","ꞛ":"𐐺","Ꞛ":"𐐒","𐒠":"𐒆","𐏑":"𐎂","𐏓":"𐎓","𒀸":"𐎚","☥":"𐦞","𓋹":"𐦞","〹":"卄","不":"不","丽":"丽","並":"並","⎜":"丨","⎟":"丨","⎢":"丨","⎥":"丨","⎪":"丨","⎮":"丨","㇑":"丨","ᅵ":"丨","ㅣ":"丨","⼁":"丨","ᆜ":"丨ー","ᆘ":"丨ᅡ","ᆙ":"丨ᅣ","ힽ":"丨ᅣᅩ","ힾ":"丨ᅣ丨","ힿ":"丨ᅧ","ퟀ":"丨ᅧ丨","ᆚ":"丨ᅩ","ퟁ":"丨ᅩ丨","ퟂ":"丨ᅭ","ᆛ":"丨ᅮ","ퟃ":"丨ᅲ","ᆝ":"丨ᆞ","ퟄ":"丨丨","串":"串","丸":"丸","丹":"丹","乁":"乁","㇠":"乙","⼄":"乙","㇟":"乚","⺃":"乚","㇖":"乛","⺂":"乛","⻲":"亀","亂":"亂","㇚":"亅","⼅":"亅","了":"了","ニ":"二","⼆":"二","𠄢":"𠄢","⼇":"亠","亮":"亮","⼈":"人","イ":"亻","⺅":"亻","什":"什","仌":"仌","令":"令","你":"你","倂":"併","倂":"併","侀":"侀","來":"來","例":"例","侮":"侮","侮":"侮","侻":"侻","便":"便","值":"値","倫":"倫","偺":"偺","備":"備","像":"像","僚":"僚","僧":"僧","僧":"僧","㒞":"㒞","⼉":"儿","兀":"兀","⺎":"兀","充":"充","免":"免","免":"免","兔":"兔","兤":"兤","⼊":"入","內":"內","全":"全","兩":"兩","ハ":"八","⼋":"八","六":"六","具":"具","𠔜":"𠔜","𠔥":"𠔥","冀":"冀","㒹":"㒹","⼌":"冂","再":"再","𠕋":"𠕋","冒":"冒","冕":"冕","㒻":"㒻","最":"最","⼍":"冖","冗":"冗","冤":"冤","⼎":"冫","冬":"冬","况":"况","况":"况","冷":"冷","凉":"凉","凌":"凌","凜":"凜","凞":"凞","⼏":"几","𠘺":"𠘺","凵":"凵","⼐":"凵","⼑":"刀","⺉":"刂","刃":"刃","切":"切","切":"切","列":"列","利":"利","㓟":"㓟","刺":"刺","刻":"刻","剆":"剆","割":"割","剷":"剷","劉":"劉","𠠄":"𠠄","カ":"力","力":"力","⼒":"力","劣":"劣","㔕":"㔕","劳":"劳","勇":"勇","勇":"勇","勉":"勉","勉":"勉","勒":"勒","勞":"勞","勤":"勤","勤":"勤","勵":"勵","⼓":"勹","勺":"勺","勺":"勺","包":"包","匆":"匆","𠣞":"𠣞","⼔":"匕","北":"北","北":"北","⼕":"匚","⼖":"匸","匿":"匿","⼗":"十","〸":"十","〺":"卅","卉":"卉","࿖":"卍","࿕":"卐","卑":"卑","卑":"卑","博":"博","ト":"卜","⼘":"卜","⼙":"卩","⺋":"㔾","即":"即","卵":"卵","卽":"卽","卿":"卿","卿":"卿","卿":"卿","⼚":"厂","𠨬":"𠨬","⼛":"厶","參":"參","⼜":"又","及":"及","叟":"叟","𠭣":"𠭣","ロ":"口","⼝":"口","囗":"口","⼞":"口","句":"句","叫":"叫","叱":"叱","吆":"吆","吏":"吏","吝":"吝","吸":"吸","呂":"呂","呈":"呈","周":"周","咞":"咞","咢":"咢","咽":"咽","䎛":"㖈","哶":"哶","唐":"唐","啓":"啓","啟":"啓","啕":"啕","啣":"啣","善":"善","善":"善","喇":"喇","喙":"喙","喙":"喙","喝":"喝","喝":"喝","喫":"喫","喳":"喳","嗀":"嗀","嗂":"嗂","嗢":"嗢","嘆":"嘆","嘆":"嘆","噑":"噑","噴":"噴","器":"器","囹":"囹","圖":"圖","圗":"圗","⼟":"土","士":"土","⼠":"土","型":"型","城":"城","㦳":"㘽","埴":"埴","堍":"堍","報":"報","堲":"堲","塀":"塀","塚":"塚","塚":"塚","塞":"塞","填":"塡","壿":"墫","墬":"墬","墳":"墳","壘":"壘","壟":"壟","𡓤":"𡓤","壮":"壮","売":"売","壷":"壷","⼡":"夂","夆":"夆","⼢":"夊","タ":"夕","⼣":"夕","多":"多","夢":"夢","⼤":"大","奄":"奄","奈":"奈","契":"契","奔":"奔","奢":"奢","女":"女","⼥":"女","𡚨":"𡚨","𡛪":"𡛪","姘":"姘","姬":"姬","娛":"娛","娧":"娧","婢":"婢","婦":"婦","嬀":"媯","㛮":"㛮","㛼":"㛼","媵":"媵","嬈":"嬈","嬨":"嬨","嬾":"嬾","嬾":"嬾","⼦":"子","⼧":"宀","宅":"宅","𡧈":"𡧈","寃":"寃","寘":"寘","寧":"寧","寧":"寧","寧":"寧","寮":"寮","寳":"寳","𡬘":"𡬘","⼨":"寸","寿":"寿","将":"将","⼩":"小","尢":"尢","⺐":"尢","⼪":"尢","⺏":"尣","㞁":"㞁","⼫":"尸","尿":"尿","屠":"屠","屢":"屢","層":"層","履":"履","屮":"屮","屮":"屮","⼬":"屮","𡴋":"𡴋","⼭":"山","峀":"峀","岍":"岍","𡷤":"𡷤","𡷦":"𡷦","崙":"崙","嵃":"嵃","嵐":"嵐","嵫":"嵫","嵮":"嵮","嵼":"嵼","嶲":"嶲","嶺":"嶺","⼮":"巛","巢":"巢","エ":"工","⼯":"工","⼰":"己","⺒":"巳","㠯":"㠯","巽":"巽","⼱":"巾","帲":"帡","帨":"帨","帽":"帽","幩":"幩","㡢":"㡢","𢆃":"𢆃","⼲":"干","年":"年","𢆟":"𢆟","⺓":"幺","⼳":"幺","⼴":"广","度":"度","㡼":"㡼","庰":"庰","庳":"庳","庶":"庶","廊":"廊","廊":"廊","廉":"廉","廒":"廒","廓":"廓","廙":"廙","廬":"廬","⼵":"廴","廾":"廾","⼶":"廾","𢌱":"𢌱","𢌱":"𢌱","弄":"弄","⼷":"弋","⼸":"弓","弢":"弢","弢":"弢","⼹":"彐","⺔":"彑","当":"当","㣇":"㣇","⼺":"彡","形":"形","彩":"彩","彫":"彫","⼻":"彳","律":"律","㣣":"㣣","徚":"徚","復":"復","徭":"徭","⼼":"心","⺖":"忄","⺗":"㣺","忍":"忍","志":"志","念":"念","忹":"忹","怒":"怒","怜":"怜","恵":"恵","㤜":"㤜","㤺":"㤺","悁":"悁","悔":"悔","悔":"悔","惇":"惇","惘":"惘","惡":"惡","𢛔":"𢛔","愈":"愈","慨":"慨","慄":"慄","慈":"慈","慌":"慌","慌":"慌","慎":"慎","慎":"慎","慠":"慠","慺":"慺","憎":"憎","憎":"憎","憎":"憎","憐":"憐","憤":"憤","憯":"憯","憲":"憲","𢡄":"𢡄","𢡊":"𢡊","懞":"懞","懲":"懲","懲":"懲","懲":"懲","懶":"懶","懶":"懶","戀":"戀","⼽":"戈","成":"成","戛":"戛","戮":"戮","戴":"戴","⼾":"戶","戸":"戶","⼿":"手","⺘":"扌","扝":"扝","抱":"抱","拉":"拉","拏":"拏","拓":"拓","拔":"拔","拼":"拼","拾":"拾","𢬌":"𢬌","挽":"挽","捐":"捐","捨":"捨","捻":"捻","掃":"掃","掠":"掠","掩":"掩","揄":"揄","揤":"揤","摒":"摒","𢯱":"𢯱","搜":"搜","搢":"搢","揅":"揅","摩":"摩","摷":"摷","摾":"摾","㨮":"㨮","搉":"㩁","撚":"撚","撝":"撝","擄":"擄","㩬":"㩬","⽀":"支","⽁":"攴","⺙":"攵","敏":"敏","敏":"敏","敖":"敖","敬":"敬","數":"數","𣀊":"𣀊","⽂":"文","⻫":"斉","⽃":"斗","料":"料","⽄":"斤","⽅":"方","旅":"旅","⽆":"无","⺛":"旡","既":"既","旣":"旣","⽇":"日","易":"易","曶":"㫚","㫤":"㫤","晉":"晉","晩":"晚","晴":"晴","晴":"晴","暑":"暑","暑":"暑","暈":"暈","㬈":"㬈","暜":"暜","暴":"暴","曆":"曆","㬙":"㬙","𣊸":"𣊸","⽈":"曰","更":"更","書":"書","⽉":"月","𣍟":"𣍟","肦":"朌","胐":"朏","胊":"朐","脁":"朓","胶":"㬵","朗":"朗","朗":"朗","朗":"朗","脧":"朘","望":"望","望":"望","幐":"㬺","䐠":"㬻","𣎓":"𣎓","膧":"朣","𣎜":"𣎜","⽊":"木","李":"李","杓":"杓","杖":"杖","杞":"杞","𣏃":"𣏃","柿":"杮","杻":"杻","枅":"枅","林":"林","㭉":"㭉","𣏕":"𣏕","柳":"柳","柺":"柺","栗":"栗","栟":"栟","桒":"桒","𣑭":"𣑭","梁":"梁","梅":"梅","梅":"梅","梎":"梎","梨":"梨","椔":"椔","楂":"楂","㮝":"㮝","㮝":"㮝","槩":"㮣","樧":"榝","榣":"榣","槪":"槪","樂":"樂","樂":"樂","樂":"樂","樓":"樓","𣚣":"𣚣","檨":"檨","櫓":"櫓","櫛":"櫛","欄":"欄","㰘":"㰘","⽋":"欠","次":"次","𣢧":"𣢧","歔":"歔","㱎":"㱎","⽌":"止","⻭":"歯","歲":"歲","歷":"歷","歹":"歹","⽍":"歹","⺞":"歺","殟":"殟","殮":"殮","⽎":"殳","殺":"殺","殺":"殺","殺":"殺","殻":"殻","𣪍":"𣪍","⽏":"毋","⺟":"母","𣫺":"𣫺","⽐":"比","⽑":"毛","⽒":"氏","⺠":"民","⽓":"气","⽔":"水","⺡":"氵","⺢":"氺","汎":"汎","汧":"汧","沈":"沈","沿":"沿","泌":"泌","泍":"泍","泥":"泥","𣲼":"𣲼","洛":"洛","洞":"洞","洴":"洴","派":"派","流":"流","流":"流","流":"流","洖":"洖","浩":"浩","浪":"浪","海":"海","海":"海","浸":"浸","涅":"涅","𣴞":"𣴞","淋":"淋","淚":"淚","淪":"淪","淹":"淹","渚":"渚","港":"港","湮":"湮","潙":"溈","滋":"滋","滋":"滋","溜":"溜","溺":"溺","滇":"滇","滑":"滑","滛":"滛","㴳":"㴳","漏":"漏","漢":"漢","漢":"漢","漣":"漣","𣻑":"𣻑","潮":"潮","𣽞":"𣽞","𣾎":"𣾎","濆":"濆","濫":"濫","濾":"濾","瀛":"瀛","瀞":"瀞","瀞":"瀞","瀹":"瀹","灊":"灊","㶖":"㶖","⽕":"火","⺣":"灬","灰":"灰","灷":"灷","災":"災","炙":"炙","炭":"炭","烈":"烈","烙":"烙","煮":"煮","煮":"煮","𤉣":"𤉣","煅":"煅","煉":"煉","𤋮":"𤋮","熜":"熜","燎":"燎","燐":"燐","𤎫":"𤎫","爐":"爐","爛":"爛","爨":"爨","⽖":"爪","爫":"爫","⺤":"爫","爵":"爵","爵":"爵","⽗":"父","⽘":"爻","⺦":"丬","⽙":"爿","⽚":"片","牐":"牐","⽛":"牙","𤘈":"𤘈","⽜":"牛","牢":"牢","犀":"犀","犕":"犕","⽝":"犬","⺨":"犭","犯":"犯","狀":"狀","𤜵":"𤜵","狼":"狼","猪":"猪","猪":"猪","𤠔":"𤠔","獵":"獵","獺":"獺","⽞":"玄","率":"率","率":"率","⽟":"玉","王":"王","㺬":"㺬","玥":"玥","玲":"玲","㺸":"㺸","㺸":"㺸","珞":"珞","琉":"琉","理":"理","琢":"琢","瑇":"瑇","瑜":"瑜","瑩":"瑩","瑱":"瑱","瑱":"瑱","璅":"璅","璉":"璉","璘":"璘","瓊":"瓊","⽠":"瓜","⽡":"瓦","㼛":"㼛","甆":"甆","⽢":"甘","⽣":"生","甤":"甤","⽤":"用","⽥":"田","画":"画","甾":"甾","𤰶":"𤰶","留":"留","略":"略","異":"異","異":"異","𤲒":"𤲒","⽦":"疋","⽧":"疒","痢":"痢","瘐":"瘐","瘟":"瘟","瘝":"瘝","療":"療","癩":"癩","⽨":"癶","⽩":"白","𤾡":"𤾡","𤾸":"𤾸","⽪":"皮","⽫":"皿","𥁄":"𥁄","㿼":"㿼","益":"益","益":"益","盛":"盛","盧":"盧","䀈":"䀈","⽬":"目","直":"直","直":"直","𥃲":"𥃲","𥃳":"𥃳","省":"省","䀘":"䀘","𥄙":"𥄙","眞":"眞","真":"真","真":"真","𥄳":"𥄳","着":"着","睊":"睊","睊":"睊","鿃":"䀹","䀹":"䀹","䀹":"䀹","晣":"䀿","䁆":"䁆","瞋":"瞋","𥉉":"𥉉","瞧":"瞧","⽭":"矛","⽮":"矢","⽯":"石","䂖":"䂖","𥐝":"𥐝","硏":"研","硎":"硎","硫":"硫","碌":"碌","碌":"碌","碑":"碑","磊":"磊","磌":"磌","磌":"磌","磻":"磻","䃣":"䃣","礪":"礪","⽰":"示","⺭":"礻","礼":"礼","社":"社","祈":"祈","祉":"祉","𥘦":"𥘦","祐":"祐","祖":"祖","祖":"祖","祝":"祝","神":"神","祥":"祥","視":"視","視":"視","祿":"祿","𥚚":"𥚚","禍":"禍","禎":"禎","福":"福","福":"福","𥛅":"𥛅","禮":"禮","⽱":"禸","⽲":"禾","秊":"秊","䄯":"䄯","秫":"秫","稜":"稜","穊":"穊","穀":"穀","穀":"穀","穏":"穏","⽳":"穴","突":"突","𥥼":"𥥼","窱":"窱","立":"立","⽴":"立","⻯":"竜","𥪧":"𥪧","𥪧":"𥪧","竮":"竮","⽵":"竹","笠":"笠","節":"節","節":"節","䈂":"䈂","𥮫":"𥮫","篆":"篆","䈧":"䈧","築":"築","𥲀":"𥲀","𥳐":"𥳐","簾":"簾","籠":"籠","⽶":"米","类":"类","粒":"粒","精":"精","糒":"糒","糖":"糖","糨":"糨","䊠":"䊠","糣":"糣","糧":"糧","⽷":"糸","⺯":"糹","𥾆":"𥾆","紀":"紀","紐":"紐","索":"索","累":"累","絶":"絕","絣":"絣","絛":"絛","綠":"綠","綾":"綾","緇":"緇","練":"練","練":"練","練":"練","縂":"縂","䌁":"䌁","縉":"縉","縷":"縷","繁":"繁","繅":"繅","𦇚":"𦇚","䌴":"䌴","⽸":"缶","𦈨":"𦈨","缾":"缾","𦉇":"𦉇","⽹":"网","⺫":"罒","⺲":"罒","⺱":"罓","䍙":"䍙","署":"署","𦋙":"𦋙","罹":"罹","罺":"罺","羅":"羅","𦌾":"𦌾","⽺":"羊","羕":"羕","羚":"羚","羽":"羽","⽻":"羽","翺":"翺","老":"老","⽼":"老","⺹":"耂","者":"者","者":"者","者":"者","⽽":"而","𦓚":"𦓚","⽾":"耒","𦔣":"𦔣","⽿":"耳","聆":"聆","聠":"聠","𦖨":"𦖨","聯":"聯","聰":"聰","聾":"聾","⾀":"聿","⺺":"肀","⾁":"肉","肋":"肋","肭":"肭","育":"育","䏕":"䏕","䏙":"䏙","腁":"胼","脃":"脃","脾":"脾","䐋":"䐋","朡":"朡","𦞧":"𦞧","𦞵":"𦞵","朦":"䑃","臘":"臘","⾂":"臣","臨":"臨","⾃":"自","臭":"臭","⾄":"至","⾅":"臼","舁":"舁","舁":"舁","舄":"舄","⾆":"舌","舘":"舘","⾇":"舛","⾈":"舟","䑫":"䑫","⾉":"艮","良":"良","⾊":"色","⾋":"艸","艹":"艹","艹":"艹","⺾":"艹","⺿":"艹","⻀":"艹","芋":"芋","芑":"芑","芝":"芝","花":"花","芳":"芳","芽":"芽","若":"若","若":"若","苦":"苦","𦬼":"𦬼","茶":"茶","荒":"荒","荣":"荣","茝":"茝","茣":"茣","莽":"莽","荓":"荓","菉":"菉","菊":"菊","菌":"菌","菜":"菜","菧":"菧","華":"華","菱":"菱","著":"著","著":"著","𦰶":"𦰶","莭":"莭","落":"落","葉":"葉","蔿":"蒍","𦳕":"𦳕","𦵫":"𦵫","蓮":"蓮","蓱":"蓱","蓳":"蓳","蓼":"蓼","蔖":"蔖","䔫":"䔫","蕤":"蕤","𦼬":"𦼬","藍":"藍","䕝":"䕝","𦾱":"𦾱","䕡":"䕡","藺":"藺","蘆":"蘆","䕫":"䕫","蘒":"蘒","蘭":"蘭","𧃒":"𧃒","虁":"蘷","蘿":"蘿","⾌":"虍","⻁":"虎","虐":"虐","虜":"虜","虜":"虜","虧":"虧","虩":"虩","⾍":"虫","蚩":"蚩","蚈":"蚈","蛢":"蛢","蜎":"蜎","蜨":"蜨","蝫":"蝫","蟡":"蟡","蝹":"蝹","蝹":"蝹","螆":"螆","䗗":"䗗","𧏊":"𧏊","螺":"螺","蠁":"蠁","䗹":"䗹","蠟":"蠟","⾎":"血","行":"行","⾏":"行","衠":"衠","衣":"衣","⾐":"衣","⻂":"衤","裂":"裂","𧙧":"𧙧","裏":"裏","裗":"裗","裞":"裞","裡":"裡","裸":"裸","裺":"裺","䘵":"䘵","褐":"褐","襁":"襁","襤":"襤","⾑":"襾","⻄":"西","⻃":"覀","覆":"覆","見":"見","⾒":"見","𧢮":"𧢮","⻅":"见","⾓":"角","⾔":"言","𧥦":"𧥦","詽":"訮","訞":"䚶","䚾":"䚾","䛇":"䛇","誠":"誠","說":"說","說":"說","調":"調","請":"請","諒":"諒","論":"論","諭":"諭","諭":"諭","諸":"諸","諸":"諸","諾":"諾","諾":"諾","謁":"謁","謁":"謁","謹":"謹","謹":"謹","識":"識","讀":"讀","讏":"讆","變":"變","變":"變","⻈":"讠","⾕":"谷","⾖":"豆","豈":"豈","豕":"豕","⾗":"豕","豣":"豜","⾘":"豸","𧲨":"𧲨","⾙":"貝","貫":"貫","賁":"賁","賂":"賂","賈":"賈","賓":"賓","贈":"贈","贈":"贈","贛":"贛","⻉":"贝","⾚":"赤","⾛":"走","起":"起","趆":"赿","𧻓":"𧻓","𧼯":"𧼯","⾜":"足","跋":"跋","趼":"趼","跺":"跥","路":"路","跰":"跰","躛":"躗","⾝":"身","車":"車","⾞":"車","軔":"軔","輧":"軿","輦":"輦","輪":"輪","輸":"輸","輸":"輸","輻":"輻","轢":"轢","⻋":"车","⾟":"辛","辞":"辞","辰":"辰","⾠":"辰","⾡":"辵","辶":"辶","⻌":"辶","⻍":"辶","巡":"巡","連":"連","逸":"逸","逸":"逸","遲":"遲","遼":"遼","𨗒":"𨗒","𨗭":"𨗭","邏":"邏","⾢":"邑","邔":"邔","郎":"郎","郞":"郎","郞":"郎","郱":"郱","都":"都","𨜮":"𨜮","鄑":"鄑","鄛":"鄛","⾣":"酉","酪":"酪","醙":"醙","醴":"醴","⾤":"釆","里":"里","⾥":"里","量":"量","金":"金","⾦":"金","鈴":"鈴","鈸":"鈸","鉶":"鉶","鋗":"鋗","鋘":"鋘","鉼":"鉼","錄":"錄","鍊":"鍊","鎮":"鎭","鏹":"鏹","鐕":"鐕","𨯺":"𨯺","⻐":"钅","⻑":"長","⾧":"長","⻒":"镸","⻓":"长","⾨":"門","開":"開","䦕":"䦕","閭":"閭","閷":"閷","𨵷":"𨵷","⻔":"门","⾩":"阜","⻏":"阝","⻖":"阝","阮":"阮","陋":"陋","降":"降","陵":"陵","陸":"陸","陼":"陼","隆":"隆","隣":"隣","䧦":"䧦","⾪":"隶","隷":"隷","隸":"隷","隸":"隷","⾫":"隹","雃":"雃","離":"離","難":"難","難":"難","⾬":"雨","零":"零","雷":"雷","霣":"霣","𩅅":"𩅅","露":"露","靈":"靈","⾭":"靑","⻘":"青","靖":"靖","靖":"靖","𩇟":"𩇟","⾮":"非","⾯":"面","𩈚":"𩈚","⾰":"革","䩮":"䩮","䩶":"䩶","⾱":"韋","韛":"韛","韠":"韠","⻙":"韦","⾲":"韭","𩐊":"𩐊","⾳":"音","響":"響","響":"響","⾴":"頁","䪲":"䪲","頋":"頋","頋":"頋","頋":"頋","領":"領","頩":"頩","𩒖":"𩒖","頻":"頻","頻":"頻","類":"類","⻚":"页","⾵":"風","𩖶":"𩖶","⻛":"风","⾶":"飛","⻜":"飞","⻝":"食","⾷":"食","⻟":"飠","飢":"飢","飯":"飯","飼":"飼","䬳":"䬳","館":"館","餩":"餩","⻠":"饣","⾸":"首","⾹":"香","馧":"馧","⾺":"馬","駂":"駂","駱":"駱","駾":"駾","驪":"驪","⻢":"马","⾻":"骨","䯎":"䯎","⾼":"高","⾽":"髟","𩬰":"𩬰","鬒":"鬒","鬒":"鬒","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⻤":"鬼","⿂":"魚","魯":"魯","鱀":"鱀","鱗":"鱗","⻥":"鱼","⿃":"鳥","鳽":"鳽","䳎":"䳎","鵧":"鵧","䳭":"䳭","𪃎":"𪃎","鶴":"鶴","𪄅":"𪄅","䳸":"䳸","鷺":"鷺","𪈎":"𪈎","鸞":"鸞","鹃":"鹂","⿄":"鹵","鹿":"鹿","⿅":"鹿","𪊑":"𪊑","麗":"麗","麟":"麟","⿆":"麥","⻨":"麦","麻":"麻","⿇":"麻","𪎒":"𪎒","⿈":"黃","⻩":"黄","⿉":"黍","黎":"黎","䵖":"䵖","⿊":"黑","黒":"黑","墨":"墨","黹":"黹","⿋":"黹","⿌":"黽","鼅":"鼅","黾":"黾","⿍":"鼎","鼏":"鼏","⿎":"鼓","鼖":"鼖","⿏":"鼠","鼻":"鼻","⿐":"鼻","齃":"齃","⿑":"齊","⻬":"齐","⿒":"齒","𪘀":"𪘀","⻮":"齿","龍":"龍","⿓":"龍","龎":"龎","⻰":"龙","龜":"龜","龜":"龜","龜":"龜","⿔":"龜","⻳":"龟","⿕":"龠"}')},function(e,t,n){"use strict";t.byteLength=function(e){var t=l(e),n=t[0],o=t[1];return 3*(n+o)/4-o},t.toByteArray=function(e){var t,n,o=l(e),a=o[0],s=o[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),u=0,d=s>0?a-4:a;for(n=0;n>16&255,c[u++]=t>>8&255,c[u++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[u++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i=[],a=0,s=n-r;as?s:a+16383));1===r?(t=e[n-1],i.push(o[t>>2]+o[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],i.push(o[t>>10]+o[t>>4&63]+o[t<<2&63]+"="));return i.join("")};for(var o=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var r,i,a=[],s=t;s>18&63]+o[i>>12&63]+o[i>>6&63]+o[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,o,r){var i,a,s=8*r-o-1,c=(1<>1,u=-7,d=n?r-1:0,h=n?-1:1,p=e[t+d];for(d+=h,i=p&(1<<-u)-1,p>>=-u,u+=s;u>0;i=256*i+e[t+d],d+=h,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=o;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===i)i=1-l;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,o),i-=l}return(p?-1:1)*a*Math.pow(2,i-o)},t.write=function(e,t,n,o,r,i){var a,s,c,l=8*i-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=o?0:i-1,m=o?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[n+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[n+p]=255&a,p+=m,a/=256,l-=8);e[n+p-m]|=128*g}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetApi=void 0;var o=n(6),r=n(7),i=n(8),a=n(9),s=n(10),c=n(11),l=n(18),u=n(19),d=n(12);function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(p(this,_),(e=h.call(this)).clientOrigin=n,E(b(e),"transport",void 0),E(b(e),"capabilitiesFinished",!1),E(b(e),"requestedCapabilities",[]),E(b(e),"approvedCapabilities",void 0),E(b(e),"cachedClientVersions",void 0),!window.parent)throw new Error("No parent window. This widget doesn't appear to be embedded properly.");return e.transport=new a.PostmessageTransport(r.WidgetApiDirection.FromWidget,t,window.parent,window),e.transport.targetOrigin=n,e.transport.on("message",e.handleMessage.bind(b(e))),e}return t=_,(n=[{key:"hasCapability",value:function(e){return Array.isArray(this.approvedCapabilities)?this.approvedCapabilities.includes(e):this.requestedCapabilities.includes(e)}},{key:"requestCapability",value:function(e){if(this.capabilitiesFinished)throw new Error("Capabilities have already been negotiated");this.requestedCapabilities.push(e)}},{key:"requestCapabilities",value:function(e){var t=this;e.forEach((function(e){return t.requestCapability(e)}))}},{key:"requestCapabilityToSendState",value:function(e,t){this.requestCapability(d.WidgetEventCapability.forStateEvent(d.EventDirection.Send,e,t).raw)}},{key:"requestCapabilityToReceiveState",value:function(e,t){this.requestCapability(d.WidgetEventCapability.forStateEvent(d.EventDirection.Receive,e,t).raw)}},{key:"requestCapabilityToSendEvent",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomEvent(d.EventDirection.Send,e).raw)}},{key:"requestCapabilityToReceiveEvent",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomEvent(d.EventDirection.Receive,e).raw)}},{key:"requestCapabilityToSendMessage",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomMessageEvent(d.EventDirection.Send,e).raw)}},{key:"requestCapabilityToReceiveMessage",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomMessageEvent(d.EventDirection.Receive,e).raw)}},{key:"requestOpenIDConnectToken",value:function(){var e=this;return new Promise((function(t,n){e.transport.sendComplete(s.WidgetApiFromWidgetAction.GetOpenIDCredentials,{}).then((function(o){var r=o.response;r.state===c.OpenIDRequestState.Allowed?t(r):r.state===c.OpenIDRequestState.Blocked?n(new Error("User declined to verify their identity")):r.state===c.OpenIDRequestState.PendingUserConfirmation?e.on("action:".concat(s.WidgetApiToWidgetAction.OpenIDCredentials),(function i(a){a.preventDefault();var l=a.detail;l.data.original_request_id===o.requestId&&(l.data.state===c.OpenIDRequestState.Allowed?(t(l.data),e.transport.reply(l,{})):l.data.state===c.OpenIDRequestState.Blocked?(n(new Error("User declined to verify their identity")),e.transport.reply(l,{})):(n(new Error("Invalid state on reply: "+r.state)),e.transport.reply(l,{error:{message:"Invalid state"}})),e.off("action:".concat(s.WidgetApiToWidgetAction.OpenIDCredentials),i))})):n(new Error("Invalid state: "+r.state))})).catch(n)}))}},{key:"sendContentLoaded",value:function(){return this.transport.send(s.WidgetApiFromWidgetAction.ContentLoaded,{}).then()}},{key:"sendSticker",value:function(e){return this.transport.send(s.WidgetApiFromWidgetAction.SendSticker,e).then()}},{key:"setAlwaysOnScreen",value:function(e){return this.transport.send(s.WidgetApiFromWidgetAction.UpdateAlwaysOnScreen,{value:e}).then((function(e){return e.success}))}},{key:"openModalWidget",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:l.MatrixWidgetType.Custom;return this.transport.send(s.WidgetApiFromWidgetAction.OpenModalWidget,{type:r,url:e,name:t,buttons:n,data:o}).then()}},{key:"closeModalWidget",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.transport.send(s.WidgetApiFromWidgetAction.CloseModalWidget,e).then()}},{key:"sendRoomEvent",value:function(e,t){return this.transport.send(s.WidgetApiFromWidgetAction.SendEvent,{type:e,content:t})}},{key:"sendStateEvent",value:function(e,t,n){return this.transport.send(s.WidgetApiFromWidgetAction.SendEvent,{type:e,content:n,state_key:t})}},{key:"setModalButtonEnabled",value:function(e,t){if(e===u.BuiltInModalButtonID.Close)throw new Error("The close button cannot be disabled");return this.transport.send(s.WidgetApiFromWidgetAction.SetModalButtonEnabled,{button:e,enabled:t}).then()}},{key:"start",value:function(){this.transport.start()}},{key:"handleMessage",value:function(e){var t=new CustomEvent("action:".concat(e.detail.action),{detail:e.detail,cancelable:!0});if(this.emit("action:".concat(e.detail.action),t),!t.defaultPrevented)switch(e.detail.action){case s.WidgetApiToWidgetAction.SupportedApiVersions:return this.replyVersions(e.detail);case s.WidgetApiToWidgetAction.Capabilities:return this.handleCapabilities(e.detail);case s.WidgetApiToWidgetAction.UpdateVisibility:case s.WidgetApiToWidgetAction.NotifyCapabilities:return this.transport.reply(e.detail,{});default:return this.transport.reply(e.detail,{error:{message:"Unknown or unsupported action: "+e.detail.action}})}}},{key:"replyVersions",value:function(e){this.transport.reply(e,{supported_versions:i.CurrentApiVersions})}},{key:"getClientVersions",value:function(){var e=this;return Array.isArray(this.cachedClientVersions)?Promise.resolve(this.cachedClientVersions):this.transport.send(s.WidgetApiFromWidgetAction.SupportedApiVersions,{}).then((function(t){return e.cachedClientVersions=t.supported_versions,t.supported_versions})).catch((function(e){return console.warn("non-fatal error getting supported client versions: ",e),[]}))}},{key:"handleCapabilities",value:function(e){var t=this;return this.capabilitiesFinished?this.transport.reply(e,{error:{message:"Capability negotiation already completed"}}):this.getClientVersions().then((function(n){return n.includes(i.UnstableApiVersion.MSC2871)?t.once("action:".concat(s.WidgetApiToWidgetAction.NotifyCapabilities),(function(e){t.approvedCapabilities=e.detail.data.approved,t.emit("ready")})):t.emit("ready"),t.capabilitiesFinished=!0,t.transport.reply(e,{capabilities:t.requestedCapabilities})}))}}])&&m(t.prototype,n),o&&m(t,o),_}(o.EventEmitter);t.WidgetApi=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClientWidgetApi=void 0;var o=n(6),r=n(9),i=n(7),a=n(10),s=n(8),c=n(12),l=n(11),u=n(20);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:null;return this.allowedEvents.some((function(n){return n.matchesAsRoomEvent(e,t)&&n.direction===c.EventDirection.Send}))}},{key:"canSendStateEvent",value:function(e,t){return this.allowedEvents.some((function(n){return n.matchesAsStateEvent(e,t)&&n.direction===c.EventDirection.Send}))}},{key:"canReceiveRoomEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.allowedEvents.some((function(n){return n.matchesAsRoomEvent(e,t)&&n.direction===c.EventDirection.Receive}))}},{key:"canReceiveStateEvent",value:function(e,t){return this.allowedEvents.some((function(n){return n.matchesAsStateEvent(e,t)&&n.direction===c.EventDirection.Receive}))}},{key:"stop",value:function(){this.isStopped=!0,this.transport.stop()}},{key:"onIframeLoad",value:function(e){this.beginCapabilities(),this.iframe.removeEventListener("onload",this.onIframeLoad.bind(this))}},{key:"beginCapabilities",value:function(){var e,t=this;if(this.capabilitiesFinished)throw new Error("Capabilities exchange already completed");this.emit("preparing"),this.transport.send(a.WidgetApiToWidgetAction.Capabilities,{}).then((function(n){return e=n.capabilities,t.driver.validateCapabilities(new Set(n.capabilities))})).then((function(n){console.log("Widget ".concat(t.widget.id," is allowed capabilities:"),Array.from(n)),t.allowedCapabilities=n,t.allowedEvents=c.WidgetEventCapability.findEventCapabilities(n),t.capabilitiesFinished=!0,t.transport.send(a.WidgetApiToWidgetAction.NotifyCapabilities,{requested:e,approved:Array.from(n)}).catch((function(e){console.warn("non-fatal error notifying widget of approved capabilities:",e)})),t.emit("ready")}))}},{key:"handleContentLoadedAction",value:function(e){this.widget.waitForIframeLoad?this.transport.reply(e,{error:{message:"Improper sequence: not expecting load event"}}):(this.transport.reply(e,{}),this.beginCapabilities())}},{key:"replyVersions",value:function(e){this.transport.reply(e,{supported_versions:s.CurrentApiVersions})}},{key:"handleOIDC",value:function(e){var t=this,n=1,o=function(o,r){return r=r||{},n>1?t.transport.send(a.WidgetApiToWidgetAction.OpenIDCredentials,p({state:o,original_request_id:e.requestId},r)):t.transport.reply(e,p({state:o},r))},r=function(r){return console.error("[ClientWidgetApi] Failed to handle OIDC: ",r),n>1?o(l.OpenIDRequestState.Blocked):t.transport.reply(e,{error:{message:r}})},i=new u.SimpleObservable((function(e){return e.state===l.OpenIDRequestState.PendingUserConfirmation&&n>1?(i.close(),r("client provided out-of-phase response to OIDC flow")):e.state===l.OpenIDRequestState.PendingUserConfirmation?(o(e.state),void n++):e.state!==l.OpenIDRequestState.Allowed||e.token?(e.state===l.OpenIDRequestState.Blocked&&(e.token=null),i.close(),o(e.state,e.token)):r("client provided invalid OIDC token for an allowed request")}));this.driver.askOpenID(i)}},{key:"handleSendEvent",value:function(e){var t,n=this;if(!e.data.type)return this.transport.reply(e,{error:{message:"Invalid request - missing event type"}});if(null!==e.data.state_key&&void 0!==e.data.state_key){if(!this.canSendStateEvent(e.data.type,e.data.state_key))return this.transport.reply(e,{error:{message:"Cannot send state events of this type"}});t=this.driver.sendEvent(e.data.type,e.data.content||{},e.data.state_key)}else{var o=e.data.content||{},r=o.msgtype;if(!this.canSendRoomEvent(e.data.type,r))return this.transport.reply(e,{error:{message:"Cannot send room events of this type"}});t=this.driver.sendEvent(e.data.type,o,null)}t.then((function(t){return n.transport.reply(e,{room_id:t.roomId,event_id:t.eventId})})).catch((function(t){return console.error("error sending event: ",t),n.transport.reply(e,{error:{message:"Error sending event"}})}))}},{key:"handleMessage",value:function(e){if(!this.isStopped){var t=new CustomEvent("action:".concat(e.detail.action),{detail:e.detail,cancelable:!0});if(this.emit("action:".concat(e.detail.action),t),!t.defaultPrevented)switch(e.detail.action){case a.WidgetApiFromWidgetAction.ContentLoaded:return this.handleContentLoadedAction(e.detail);case a.WidgetApiFromWidgetAction.SupportedApiVersions:return this.replyVersions(e.detail);case a.WidgetApiFromWidgetAction.SendEvent:return this.handleSendEvent(e.detail);case a.WidgetApiFromWidgetAction.GetOpenIDCredentials:return this.handleOIDC(e.detail);default:return this.transport.reply(e.detail,{error:{message:"Unknown or unsupported action: "+e.detail.action}})}}}},{key:"takeScreenshot",value:function(){return this.transport.send(a.WidgetApiToWidgetAction.TakeScreenshot,{})}},{key:"updateVisibility",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.UpdateVisibility,{visible:e})}},{key:"sendWidgetConfig",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.WidgetConfig,e).then()}},{key:"notifyModalWidgetButtonClicked",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.ButtonClicked,{id:e}).then()}},{key:"notifyModalWidgetClose",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.CloseModalWidget,e).then()}},{key:"feedEvent",value:function(e){if(void 0!==e.state_key&&null!==e.state_key){if(!this.canReceiveStateEvent(e.type,e.state_key))return Promise.resolve()}else if(!this.canReceiveRoomEvent(e.type,(e.content||{}).msgtype))return Promise.resolve();return this.transport.send(a.WidgetApiToWidgetAction.SendEvent,e).then()}}])&&m(t.prototype,n),o&&m(t,o),h}(o.EventEmitter);t.ClientWidgetApi=y},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isErrorResponse=function(e){if("error"in e){return!!e.error.message}return!1}},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.VideoConferenceCapabilities=t.StickerpickerCapabilities=t.MatrixCapabilities=void 0,t.MatrixCapabilities=o,function(e){e.Screenshots="m.capability.screenshot",e.StickerSending="m.sticker",e.AlwaysOnScreen="m.always_on_screen"}(o||(t.MatrixCapabilities=o={}));var r=[o.StickerSending];t.StickerpickerCapabilities=r;var i=[o.AlwaysOnScreen];t.VideoConferenceCapabilities=i},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetKind=void 0,t.WidgetKind=o,function(e){e.Room="room",e.Account="account",e.Modal="modal"}(o||(t.WidgetKind=o={}))},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.ModalButtonKind=void 0,t.ModalButtonKind=o,function(e){e.Primary="m.primary",e.Secondary="m.secondary",e.Warning="m.warning",e.Danger="m.danger",e.Link="m.link"}(o||(t.ModalButtonKind=o={}))},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetParser=void 0;var o=n(23),r=n(21);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n(.*?)<\\/${t}>|<${t}>|<${t}\\s*\\/>)`]=n[t];o=_(o,e)}return o}(function(e,t){let n;t&&"object"==typeof t&&(n=t.count,Object.keys(t).forEach(e=>{void 0===t[e]&&(console.warn("safeCounterpartTranslate called with undefined interpolation name: "+e),t[e]="undefined"),null===t[e]&&(console.warn("safeCounterpartTranslate called with null interpolation name: "+e),t[e]="null")}));let o=a.a.translate(e,t);return void 0===o&&void 0!==n&&(o=a.a.translate(e,Object.assign({},t,{locale:"en"}))),o}(e,Object.assign({interpolate:!1},t)),t,n);return o}function _(e,t){const n=[e];let o=!1;for(const r in t){const i=new RegExp(r,"g");let a=!1;for(let e=0;e{o=t;for(let t=0;t{if(a.a.registerTranslations(n,e),a.a.setLocale(n),l.a.setValue("language",null,h.a.DEVICE,n),console.log("set language to "+n),"en"!==n)return O("i18n/"+o.en.fileName)}).then(e=>{e&&a.a.registerTranslations("en",e)})}function v(){return x().then(e=>{const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push({value:n,label:e[n].label});return t})}function E(){return navigator.languages&&navigator.languages.length?navigator.languages:navigator.language?[navigator.language]:[navigator.userLanguage||"en"]}function y(){return E()[0]}function S(e){const t=[],n=T(e),o=n.split("-");return 2===o.length&&o[0]===o[1]?t.push(o[0]):(t.push(n),2===o.length&&t.push(o[0])),t}function T(e){return e.toLowerCase().replace("_","-")}function w(){return a.a.getLocale()}function C(e){const t=w(),n=e.map(T);{const o=n.indexOf(t);if(o>-1)return e[o]}{const o=n.findIndex(e=>e.substr(0,2)===t.substr(0,2));if(o>-1)return e[o]}{const t=n.findIndex(e=>e.startsWith("en"));if(t>-1)return e[t]}return e[0]}function x(){return new Promise((e,t)=>{let n;n="string"==typeof d.a?d.a:"i18n/languages.json",r()({method:"GET",url:n},(n,o,r)=>{n||o.status<200||o.status>=300?t(n):e(JSON.parse(r))})})}async function O(e,t=3){return Object(p.c)(()=>function(e){return new Promise((t,n)=>{r()({method:"GET",url:e},(e,o,r)=>{e||o.status<200||o.status>=300?n(e):t(function(e){const t={};for(const n of Object.keys(e)){const o=n.split("|",2);if(2===o.length){let r=t[o[0]];void 0===r&&(r={},t[o[0]]=r),r[o[1]]=e[n]}else t[n]=e[n]}return t}(JSON.parse(r)))})})}(e),t,t=>(console.log("Failed to load i18n",e),console.error(t),!0))}a.a.setSeparator("|"),a.a.setFallbackLocale("en")},function(e,t,n){e.exports=n(848)()},function(e,t,n){"use strict";n.r(t),n.d(t,"loadSkin",(function(){return r})),n.d(t,"resetSkin",(function(){return i})),n.d(t,"getComponent",(function(){return a}));var o=n(820);function r(e){o.a.load(e)}function i(){o.a.reset()}function a(e){return o.a.getComponent(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return D}));var o=n(82),r=n.n(o),i=n(261),a=n(1),s=n(161),c=n(381),l=n(85),u=n(709),d=n(88),h=n(87);function p(e,t,n){return{action:"MatrixActions.sync",state:t,prevState:n,matrixClient:e}}function m(e,t){return{action:"MatrixActions.accountData",event:t,event_type:t.getType(),event_content:t.getContent()}}function g(e,t,n){return{action:"MatrixActions.Room.accountData",event:t,event_type:t.getType(),event_content:t.getContent(),room:n}}function f(e,t){return{action:"MatrixActions.Room",room:t}}function _(e,t,n){return{action:"MatrixActions.Room.tags",room:n}}function b(e,t,n){return{action:"MatrixActions.Room.receipt",event:t,room:n,matrixClient:e}}function v(e,t,n,o,r,i){return{action:"MatrixActions.Room.timeline",event:t,isLiveEvent:i.liveEvent,isLiveUnfilteredRoomTimelineEvent:n&&i.timeline.getTimelineSet()===n.getUnfilteredTimelineSet()}}function E(e,t,n,o){return{action:"MatrixActions.Room.myMembership",room:t,membership:n,oldMembership:o}}function y(e,t){return{action:"MatrixActions.Event.decrypted",event:t}}var S={_matrixClientListenersStop:[],start(e){this._addMatrixClientListener(e,"sync",p),this._addMatrixClientListener(e,"accountData",m),this._addMatrixClientListener(e,"Room.accountData",g),this._addMatrixClientListener(e,"Room",f),this._addMatrixClientListener(e,"Room.tags",_),this._addMatrixClientListener(e,"Room.receipt",b),this._addMatrixClientListener(e,"Room.timeline",v),this._addMatrixClientListener(e,"Room.myMembership",E),this._addMatrixClientListener(e,"Event.decrypted",y)},_addMatrixClientListener(e,t,n){const o=(...t)=>{const o=n(e,...t);o&&h.a.dispatch(o,!0)};e.on(t,o),this._matrixClientListenersStop.push(()=>{e.removeListener(t,o)})},stop(){this._matrixClientListenersStop.forEach(e=>e())}},T=n(89),w=n(317),C=n(377),x=n(368),O=n(193),k=n(168),R=n(268),A=n(246);class I{constructor(){r()(this,"opts",{initialSyncLimit:20}),r()(this,"matrixClient",null),r()(this,"justRegisteredUserId",void 0),r()(this,"currentClientCreds",void 0)}setIndexedDbWorkerScript(e){u.a.indexedDbWorkerScript=e}get(){return this.matrixClient}unset(){this.matrixClient=null,S.stop()}setJustRegisteredUserId(e){this.justRegisteredUserId=e,e&&window.localStorage.setItem("mx_registration_time",String((new Date).getTime()))}currentUserIsJustRegistered(){return this.matrixClient&&this.matrixClient.credentials.userId===this.justRegisteredUserId}userRegisteredWithinLastHours(e){try{const t=new Date(window.localStorage.getItem("mx_registration_time"));return((new Date).getTime()-t.getTime())/36e5<=e}catch(e){return!1}}replaceUsingCreds(e){this.currentClientCreds=e,this.createClient(e)}async assign(){for(const e of["indexeddb","memory"])try{const e=this.matrixClient.store.startup();console.log("MatrixClientPeg: waiting for MatrixClient store to initialise"),await e;break}catch(t){if("indexeddb"!==e)throw console.error("Failed to start memory store!",t),t;console.error("Error starting matrixclient store - falling back to memory store",t),this.matrixClient.store=new i.a({localStorage:localStorage})}x.f(this.matrixClient);try{!d.a.getValue("lowBandwidth")&&this.matrixClient.initCrypto&&(await this.matrixClient.initCrypto(),this.matrixClient.setCryptoTrustCrossSignedDevices(!d.a.getValue("e2ee.manuallyVerifyAllSessions")),await Object(k.f)(this.matrixClient),x.e(!0))}catch(e){if(e&&"InvalidCryptoStoreError"===e.name){const e=l.getComponent("views.dialogs.CryptoStoreTooNewDialog");T.a.createDialog(e)}console.warn("Unable to initialise e2e",e)}const e=a.c(this.opts);return e.pendingEventOrdering="detached",e.lazyLoadMembers=!0,e.clientWellKnownPollPeriod=7200,S.start(this.matrixClient),C.a.matrixClient=this.matrixClient,e}async start(){const e=await this.assign();console.log("MatrixClientPeg: really starting MatrixClient"),await this.get().startClient(e),console.log("MatrixClientPeg: MatrixClient started")}getCredentials(){return{homeserverUrl:this.matrixClient.baseUrl,identityServerUrl:this.matrixClient.idBaseUrl,userId:this.matrixClient.credentials.userId,deviceId:this.matrixClient.getDeviceId(),accessToken:this.matrixClient.getAccessToken(),guest:this.matrixClient.isGuest()}}getHomeserverName(){const e=/^@.+:(.+)$/.exec(this.matrixClient.credentials.userId);if(null===e||e.length<1)throw new Error("Failed to derive homeserver name from user ID!");return e[1]}createClient(e){const t={baseUrl:e.homeserverUrl,idBaseUrl:e.identityServerUrl,accessToken:e.accessToken,userId:e.userId,deviceId:e.deviceId,pickleKey:e.pickleKey,timelineSupport:!0,forceTURN:!d.a.getValue("webRtcAllowPeerToPeer"),fallbackICEServerAllowed:!!d.a.getValue("fallbackICEServerAllowed"),verificationMethods:[w.d.SAS,R.d,w.d.RECIPROCATE_QR_CODE],unstableClientRelationAggregation:!0,identityServer:new O.a,cryptoCallbacks:{}},n={getDehydrationKey:A.a.getDehydrationKey};Object.assign(t.cryptoCallbacks,k.c,n),this.matrixClient=Object(u.a)(t),this.matrixClient.setMaxListeners(500),this.matrixClient.setGuest(Boolean(e.guest));const o=new c.a(null,{timelineSupport:!0});o.getLiveTimeline().setPaginationToken("",s.a.BACKWARDS),this.matrixClient.setNotifTimelineSet(o)}}window.mxMatrixClientPeg||(window.mxMatrixClientPeg=new I);const D=window.mxMatrixClientPeg},function(e,t,n){"use strict";(function(e){var o=n(825),r=n(385);class i extends o.Dispatcher{dispatch(e,t=!1){e instanceof r.a?e.fn(e=>{this.dispatch(e,t)}):t?super.dispatch(e):setTimeout(super.dispatch.bind(this,e),0)}fire(e,t=!1){this.dispatch({action:e},t)}}const a=new i,s=e;s.mxDispatcher||(s.mxDispatcher=a),t.a=a}).call(this,n(5))},function(e,t,n){"use strict";n.d(t,"a",(function(){return te}));var o=n(82),r=n.n(o),i=n(221),a=n(86),s=n(95);class c extends i.a{constructor(e,t){super(),this.featureNames=e,this.watchers=t}getValue(e,t){if(this.featureNames.includes(e))return this.readFeature(e);if("notificationsEnabled"===e){const e=localStorage.getItem("notifications_enabled");return"string"==typeof e?"true"===e:null}if("notificationBodyEnabled"===e){const e=localStorage.getItem("notifications_body_enabled");return"string"==typeof e?"true"===e:null}if("audioNotificationsEnabled"===e){const e=localStorage.getItem("audio_notifications_enabled");return"string"==typeof e?"true"===e:null}if(["showRightPanelInRoom","showRightPanelInGroup","lastRightPanelPhaseForRoom","lastRightPanelPhaseForGroup"].includes(e)){return JSON.parse(localStorage.getItem("mx_"+e)||"{}").value}return(this.getSettings()||{})[e]}setValue(e,t,n){if(this.featureNames.includes(e))return this.writeFeature(e,n),Promise.resolve();if("notificationsEnabled"===e)return localStorage.setItem("notifications_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if("notificationBodyEnabled"===e)return localStorage.setItem("notifications_body_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if("audioNotificationsEnabled"===e)return localStorage.setItem("audio_notifications_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if(["showRightPanelInRoom","showRightPanelInGroup","lastRightPanelPhaseForRoom","lastRightPanelPhaseForGroup"].includes(e))return localStorage.setItem("mx_"+e,JSON.stringify({value:n})),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();const o=this.getSettings()||{};return o[e]=n,localStorage.setItem("mx_local_settings",JSON.stringify(o)),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve()}canSetValue(e,t){return!0}isSupported(){return void 0!==localStorage&&null!==localStorage}watchSetting(e,t,n){this.watchers.watchSetting(e,t,n)}unwatchSetting(e){this.watchers.unwatchSetting(e)}getSettings(){const e=localStorage.getItem("mx_local_settings");return e?JSON.parse(e):null}readFeature(e){if(a.a.get()&&a.a.get().isGuest())return!1;const t=localStorage.getItem("mx_labs_feature_"+e);return"true"===t||"false"!==t&&null}writeFeature(e,t){localStorage.setItem("mx_labs_feature_"+e,""+t),this.watchers.notifyUpdate(e,null,s.a.DEVICE,t)}}class l extends i.a{constructor(e){super(),this.watchers=e}getValue(e,t){if("blacklistUnverifiedDevices"===e){const e=this.read("mx_local_settings");if(e&&e.blacklistUnverifiedDevicesPerRoom)return e.blacklistUnverifiedDevicesPerRoom[t]}const n=this.read(this.getKey(e,t));return n?n.value:null}setValue(e,t,n){if("blacklistUnverifiedDevices"===e){let o=this.read("mx_local_settings");return o||(o={}),o.blacklistUnverifiedDevicesPerRoom||(o.blacklistUnverifiedDevicesPerRoom={}),o.blacklistUnverifiedDevicesPerRoom[t]=n,localStorage.setItem("mx_local_settings",JSON.stringify(o)),this.watchers.notifyUpdate(e,t,s.a.ROOM_DEVICE,n),Promise.resolve()}return null===n?localStorage.removeItem(this.getKey(e,t)):(n=JSON.stringify({value:n}),localStorage.setItem(this.getKey(e,t),n)),this.watchers.notifyUpdate(e,t,s.a.ROOM_DEVICE,n),Promise.resolve()}canSetValue(e,t){return!0}isSupported(){return void 0!==localStorage&&null!==localStorage}read(e){const t=localStorage.getItem(e);return t?JSON.parse(t):null}getKey(e,t){return"mx_setting_"+e+"_"+t}}class u extends i.a{constructor(e,t){super(),this.defaults=e,this.invertedDefaults=t}getValue(e,t){let n=this.defaults[e];return void 0===n&&(n=this.invertedDefaults[e]),n}async setValue(e,t,n){throw new Error("Cannot set values on the default level handler")}canSetValue(e,t){return!1}isSupported(){return!0}}var d=n(377),h=n(144);class p extends d.a{constructor(e){super(),this.watchers=e,r()(this,"onAccountData",(e,t,n)=>{const o=t.roomId;if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",o,s.a.ROOM_ACCOUNT,t)}else if("org.matrix.room.color_scheme"===e.getType())this.watchers.notifyUpdate("roomColor",o,s.a.ROOM_ACCOUNT,e.getContent());else if("im.vector.web.settings"===e.getType()){const t=n?n.getContent():{},r=Object(h.d)(t,e.getContent());for(const t of r){const n=e.getContent()[t];this.watchers.notifyUpdate(t,o,s.a.ROOM_ACCOUNT,n)}}else"im.vector.setting.allowed_widgets"===e.getType()&&this.watchers.notifyUpdate("allowedWidgets",o,s.a.ROOM_ACCOUNT,e.getContent())})}initMatrixClient(e,t){e&&e.removeListener("Room.accountData",this.onAccountData),t.on("Room.accountData",this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("roomColor"===e)return this.getSettings(t,"org.matrix.room.color_scheme");if("allowedWidgets"===e)return this.getSettings(t,"im.vector.setting.allowed_widgets");return(this.getSettings(t)||{})[e]}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return e.disable=!n,a.a.get().setRoomAccountData(t,"org.matrix.room.preview_urls",e)}if("roomColor"===e)return a.a.get().setRoomAccountData(t,"org.matrix.room.color_scheme",n);if("allowedWidgets"===e)return a.a.get().setRoomAccountData(t,"im.vector.setting.allowed_widgets",n);const o=this.getSettings(t)||{};return o[e]=n,a.a.get().setRoomAccountData(t,"im.vector.web.settings",o)}canSetValue(e,t){const n=a.a.get().getRoom(t);return null!=n}isSupported(){const e=a.a.get();return null!=e}getSettings(e,t="im.vector.web.settings"){const n=a.a.get().getRoom(e);if(!n)return null;const o=n.getAccountData(t);return o&&o.getContent()?Object(h.a)(o.getContent()):null}}const m=["im.vector.riot.breadcrumb_rooms","im.vector.setting.breadcrumbs"];class g extends d.a{constructor(e){super(),this.watchers=e,r()(this,"onAccountData",(e,t)=>{if("org.matrix.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",null,s.a.ACCOUNT,t)}else if("im.vector.web.settings"===e.getType()){const n=t?t.getContent():{},o=Object(h.d)(n,e.getContent());for(const t of o){const n=e.getContent()[t];this.watchers.notifyUpdate(t,null,s.a.ACCOUNT,n)}}else if(m.includes(e.getType()))this.notifyBreadcrumbsUpdate(e);else if("im.vector.setting.integration_provisioning"===e.getType()){const t=e.getContent().enabled;this.watchers.notifyUpdate("integrationProvisioning",null,s.a.ACCOUNT,t)}else if("io.element.recent_emoji"===e.getType()){const t=e.getContent().enabled;this.watchers.notifyUpdate("recent_emoji",null,s.a.ACCOUNT,t)}})}initMatrixClient(e,t){e&&e.removeListener("accountData",this.onAccountData),t.on("accountData",this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings("org.matrix.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("breadcrumb_rooms"===e){let e=this.getSettings("im.vector.setting.breadcrumbs");return e&&e.recent_rooms||(e=this.getSettings("im.vector.riot.breadcrumb_rooms"),e&&(e.recent_rooms=e.rooms)),e&&e.recent_rooms?e.recent_rooms:[]}if("recent_emoji"===e){const e=this.getSettings("io.element.recent_emoji");return e?e.recent_emoji:null}if("integrationProvisioning"===e){const e=this.getSettings("im.vector.setting.integration_provisioning");return e?e.enabled:null}const n=this.getSettings()||{};let o=n[e];return null==o&&("hideAvatarChanges"!==e&&"hideDisplaynameChanges"!==e||(o=n.hideAvatarDisplaynameChanges)),o}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings("org.matrix.preview_urls")||{};return e.disable=!n,a.a.get().setAccountData("org.matrix.preview_urls",e)}if("breadcrumb_rooms"===e){let e=this.getSettings("im.vector.setting.breadcrumbs");return e&&e.recent_rooms||(e=this.getSettings("im.vector.riot.breadcrumb_rooms")),e||(e={}),e.recent_rooms=n,a.a.get().setAccountData("im.vector.setting.breadcrumbs",e)}if("recent_emoji"===e){const e=this.getSettings("io.element.recent_emoji")||{};return e.recent_emoji=n,a.a.get().setAccountData("io.element.recent_emoji",e)}if("integrationProvisioning"===e){const e=this.getSettings("im.vector.setting.integration_provisioning")||{};return e.enabled=n,a.a.get().setAccountData("im.vector.setting.integration_provisioning",e)}const o=this.getSettings()||{};return o[e]=n,a.a.get().setAccountData("im.vector.web.settings",o)}canSetValue(e,t){return!0}isSupported(){const e=a.a.get();return null!=e}getSettings(e="im.vector.web.settings"){const t=a.a.get();if(!t)return null;const n=t.getAccountData(e);return n&&n.getContent()?Object(h.a)(n.getContent()):null}notifyBreadcrumbsUpdate(e){let t=[];if("im.vector.riot.breadcrumb_rooms"===e.getType()){const n=this.getSettings("im.vector.setting.breadcrumbs");t=n?n.recent_rooms:e.getContent().rooms}else{if("im.vector.setting.breadcrumbs"!==e.getType())return;t=e.getContent().recent_rooms}this.watchers.notifyUpdate("breadcrumb_rooms",null,s.a.ACCOUNT,t||[])}}class f extends d.a{constructor(e){super(),this.watchers=e,r()(this,"onEvent",(e,t,n)=>{const o=e.getRoomId(),r=this.client.getRoom(o);if(r&&(!r||t===r.currentState))if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",o,s.a.ROOM,t)}else if("im.vector.web.settings"===e.getType()){const t=n?n.getContent():{},r=Object(h.d)(t,e.getContent());for(const t of r)this.watchers.notifyUpdate(t,o,s.a.ROOM,e.getContent()[t])}})}initMatrixClient(e,t){e&&e.removeListener("RoomState.events",this.onEvent),t.on("RoomState.events",this.onEvent)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}return(this.getSettings(t)||{})[e]}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return e.disable=!n,a.a.get().sendStateEvent(t,"org.matrix.room.preview_urls",e)}const o=this.getSettings(t)||{};return o[e]=n,a.a.get().sendStateEvent(t,"im.vector.web.settings",o,"")}canSetValue(e,t){const n=a.a.get(),o=n.getRoom(t);let r="im.vector.web.settings";return"urlPreviewsEnabled"===e&&(r="org.matrix.room.preview_urls"),!!o&&o.currentState.maySendStateEvent(r,n.getUserId())}isSupported(){const e=a.a.get();return null!=e}getSettings(e,t="im.vector.web.settings"){const n=a.a.get().getRoom(e);if(!n)return null;const o=n.currentState.getStateEvents(t,"");return o&&o.getContent()?Object(h.a)(o.getContent()):null}}var _=n(92),b=n(1);class v extends i.a{constructor(e){super(),this.featureNames=e}getValue(e,t){const n=_.a.get()||{};if(this.featureNames.includes(e)){const t=(n.features||{})[e];return Object(b.r)(t)?null:!0===t||!1===t?t:"enable"===t||"disable"!==t&&null}if("theme"===e)return n.default_theme;const o=n.settingDefaults;return!o||Object(b.r)(o[e])?null:o[e]}async setValue(e,t,n){throw new Error("Cannot change settings at the config level")}canSetValue(e,t){return!1}isSupported(){return!0}}var E=n(83),y=n(87),S=n(265),T=n(710),w=n(156);class C extends w.a{onChange(e,t,n){y.a.dispatch({action:"feature_custom_status_changed"})}}var x=n(485);class O extends w.a{constructor(e,t){super(),this.setter=e,this.inverse=t}onChange(e,t,n){this.setter.call(a.a.get(),this.inverse?!n:n)}}var k=n(104);class R extends w.a{onChange(e,t,n){k.a.get().reload()}}var A=n(93);class I extends w.a{constructor(){super()}onChange(e,t,n){y.a.dispatch({action:A.a.UpdateFontSize,size:n})}}class D extends w.a{constructor(){super()}onChange(e,t,n){y.a.dispatch({action:A.a.UpdateSystemFont,useSystemFont:te.getValue("useSystemFont"),font:n})}}class N extends w.a{constructor(){super()}onChange(e,t,n){y.a.dispatch({action:A.a.UpdateSystemFont,useSystemFont:n,font:te.getValue("systemFont")})}}var F=n(117),M=n(98);class P extends w.a{constructor(e,t=!1){super(),this.uiFeatureName=e,this.forcedValue=t}getValueOverride(e,t,n,o){return this.settingDisabled?this.forcedValue:null}get settingDisabled(){return!te.getValue(this.uiFeatureName)}}var L=n(101);class U extends w.a{constructor(e){super(),this.controllers=e}getValueOverride(e,t,n,o){for(const r of this.controllers){const i=r.getValueOverride(e,t,n,o);if(null!=i)return i}return null}onChange(e,t,n){for(const o of this.controllers)o.onChange(e,t,n)}get settingDisabled(){for(const e of this.controllers)if(e.settingDisabled)return!0;return!1}}const B=[s.a.DEVICE,s.a.ROOM_DEVICE,s.a.ROOM_ACCOUNT,s.a.ACCOUNT,s.a.CONFIG],j=[s.a.ROOM_ACCOUNT,s.a.ACCOUNT],G=[s.a.DEVICE,s.a.ROOM_DEVICE,s.a.ROOM_ACCOUNT,s.a.ACCOUNT,s.a.CONFIG,s.a.ROOM],q=[s.a.DEVICE,s.a.ACCOUNT,s.a.CONFIG],H=[s.a.DEVICE,s.a.CONFIG],V=[s.a.DEVICE],z=[s.a.DEVICE,s.a.CONFIG],K=[s.a.CONFIG],W={feature_latex_maths:{isFeature:!0,displayName:Object(E.b)("Render LaTeX maths in messages"),supportedLevels:H,default:!1},feature_communities_v2_prototypes:{isFeature:!0,displayName:Object(E.b)("Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution."),supportedLevels:H,default:!1},feature_new_spinner:{isFeature:!0,displayName:Object(E.b)("New spinner design"),supportedLevels:H,default:!1},feature_pinning:{isFeature:!0,displayName:Object(E.b)("Message Pinning"),supportedLevels:H,default:!1},feature_custom_status:{isFeature:!0,displayName:Object(E.b)("Custom user status messages"),supportedLevels:H,default:!1,controller:new C},feature_custom_tags:{isFeature:!0,displayName:Object(E.b)("Group & filter rooms by custom tags (refresh to apply changes)"),supportedLevels:H,default:!1},feature_state_counters:{isFeature:!0,displayName:Object(E.b)("Render simple counters in room header"),supportedLevels:H,default:!1},feature_many_integration_managers:{isFeature:!0,displayName:Object(E.b)("Multiple integration managers"),supportedLevels:H,default:!1},feature_mjolnir:{isFeature:!0,displayName:Object(E.b)("Try out new ways to ignore people (experimental)"),supportedLevels:H,default:!1},feature_custom_themes:{isFeature:!0,displayName:Object(E.b)("Support adding custom themes"),supportedLevels:H,default:!1},feature_roomlist_preview_reactions_dms:{isFeature:!0,displayName:Object(E.b)("Show message previews for reactions in DMs"),supportedLevels:H,default:!1},feature_roomlist_preview_reactions_all:{isFeature:!0,displayName:Object(E.b)("Show message previews for reactions in all rooms"),supportedLevels:H,default:!1},feature_dehydration:{isFeature:!0,displayName:Object(E.b)("Offline encrypted messaging using dehydrated devices"),supportedLevels:H,default:!1},advancedRoomListLogging:{displayName:Object(E.b)("Enable advanced debugging for the room list"),supportedLevels:V,default:!1},mjolnirRooms:{supportedLevels:[s.a.ACCOUNT],default:[]},mjolnirPersonalRoom:{supportedLevels:[s.a.ACCOUNT],default:null},feature_bridge_state:{isFeature:!0,supportedLevels:H,displayName:Object(E.b)("Show info about bridges in room settings"),default:!1},"RoomList.backgroundImage":{supportedLevels:q,default:null},baseFontSize:{displayName:Object(E.b)("Font size"),supportedLevels:q,default:10,controller:new I},useCustomFontSize:{displayName:Object(E.b)("Use custom size"),supportedLevels:q,default:!1},"MessageComposerInput.suggestEmoji":{supportedLevels:q,displayName:Object(E.b)("Enable Emoji suggestions while typing"),default:!0,invertedSettingName:"MessageComposerInput.dontSuggestEmoji"},"Notifications.alwaysShowBadgeCounts":{supportedLevels:j,default:!1},useCompactLayout:{supportedLevels:V,displayName:Object(E.b)("Use a more compact ‘Modern’ layout"),default:!1},showRedactions:{supportedLevels:G,displayName:Object(E.b)("Show a placeholder for removed messages"),default:!0,invertedSettingName:"hideRedactions"},showJoinLeaves:{supportedLevels:G,displayName:Object(E.b)("Show join/leave messages (invites/kicks/bans unaffected)"),default:!0,invertedSettingName:"hideJoinLeaves"},showAvatarChanges:{supportedLevels:G,displayName:Object(E.b)("Show avatar changes"),default:!0,invertedSettingName:"hideAvatarChanges"},showDisplaynameChanges:{supportedLevels:G,displayName:Object(E.b)("Show display name changes"),default:!0,invertedSettingName:"hideDisplaynameChanges"},showReadReceipts:{supportedLevels:B,displayName:Object(E.b)("Show read receipts sent by other users"),default:!0,invertedSettingName:"hideReadReceipts"},showTwelveHourTimestamps:{supportedLevels:q,displayName:Object(E.b)("Show timestamps in 12 hour format (e.g. 2:30pm)"),default:!1},alwaysShowTimestamps:{supportedLevels:q,displayName:Object(E.b)("Always show message timestamps"),default:!1},autoplayGifsAndVideos:{supportedLevels:q,displayName:Object(E.b)("Autoplay GIFs and videos"),default:!1},enableSyntaxHighlightLanguageDetection:{supportedLevels:q,displayName:Object(E.b)("Enable automatic language detection for syntax highlighting"),default:!1},"Pill.shouldShowPillAvatar":{supportedLevels:q,displayName:Object(E.b)("Show avatars in user and room mentions"),default:!0,invertedSettingName:"Pill.shouldHidePillAvatar"},"TextualBody.enableBigEmoji":{supportedLevels:q,displayName:Object(E.b)("Enable big emoji in chat"),default:!0,invertedSettingName:"TextualBody.disableBigEmoji"},"MessageComposerInput.isRichTextEnabled":{supportedLevels:q,default:!1},"MessageComposer.showFormatting":{supportedLevels:q,default:!1},sendTypingNotifications:{supportedLevels:q,displayName:Object(E.b)("Send typing notifications"),default:!0,invertedSettingName:"dontSendTypingNotifications"},showTypingNotifications:{supportedLevels:q,displayName:Object(E.b)("Show typing notifications"),default:!0},"MessageComposerInput.ctrlEnterToSend":{supportedLevels:q,displayName:M.b?Object(E.b)("Use Command + Enter to send a message"):Object(E.b)("Use Ctrl + Enter to send a message"),default:!1},"MessageComposerInput.autoReplaceEmoji":{supportedLevels:q,displayName:Object(E.b)("Automatically replace plain text Emoji"),default:!1},"VideoView.flipVideoHorizontally":{supportedLevels:q,displayName:Object(E.b)("Mirror local video feed"),default:!1},"TagPanel.enableTagPanel":{supportedLevels:q,displayName:Object(E.b)("Enable Community Filter Panel"),default:!0,invertedSettingName:"TagPanel.disableTagPanel",controller:new P(L.a.Communities,!0)},theme:{supportedLevels:q,default:"light",controller:new x.a},custom_themes:{supportedLevels:q,default:[]},use_system_theme:{supportedLevels:V,default:!0,displayName:Object(E.b)("Match system theme")},useSystemFont:{supportedLevels:V,default:!1,displayName:Object(E.b)("Use a system font"),controller:new N},systemFont:{supportedLevels:V,default:"",displayName:Object(E.b)("System font name"),controller:new D},webRtcAllowPeerToPeer:{supportedLevels:z,displayName:Object(E.b)("Allow Peer-to-Peer for 1:1 calls"),default:!0,invertedSettingName:"webRtcForceTURN"},webrtc_audiooutput:{supportedLevels:V,default:null},webrtc_audioinput:{supportedLevels:V,default:null},webrtc_videoinput:{supportedLevels:V,default:null},language:{supportedLevels:z,default:"en"},breadcrumb_rooms:{supportedLevels:[s.a.ACCOUNT],default:[]},recent_emoji:{supportedLevels:[s.a.ACCOUNT],default:[]},room_directory_servers:{supportedLevels:[s.a.ACCOUNT],default:[]},integrationProvisioning:{supportedLevels:[s.a.ACCOUNT],default:!0},allowedWidgets:{supportedLevels:[s.a.ROOM_ACCOUNT],default:{}},analyticsOptIn:{supportedLevels:z,displayName:Object(E.b)("Send analytics data"),default:!1},showCookieBar:{supportedLevels:z,default:!0},autocompleteDelay:{supportedLevels:z,default:200},readMarkerInViewThresholdMs:{supportedLevels:z,default:3e3},readMarkerOutOfViewThresholdMs:{supportedLevels:z,default:3e4},blacklistUnverifiedDevices:{supportedLevels:[s.a.ROOM_DEVICE,s.a.DEVICE],supportedLevelsAreOrdered:!0,displayName:{default:Object(E.b)("Never send encrypted messages to unverified sessions from this session"),"room-device":Object(E.b)("Never send encrypted messages to unverified sessions in this room from this session")},default:!1,controller:new P(L.a.AdvancedEncryption)},urlPreviewsEnabled:{supportedLevels:G,displayName:{default:Object(E.b)("Enable inline URL previews by default"),"room-account":Object(E.b)("Enable URL previews for this room (only affects you)"),room:Object(E.b)("Enable URL previews by default for participants in this room")},default:!0,controller:new P(L.a.URLPreviews)},urlPreviewsEnabled_e2ee:{supportedLevels:[s.a.ROOM_DEVICE,s.a.ROOM_ACCOUNT],displayName:{"room-account":Object(E.b)("Enable URL previews for this room (only affects you)")},default:!1,controller:new P(L.a.URLPreviews)},roomColor:{supportedLevels:G,displayName:Object(E.b)("Room Colour"),default:{primary_color:null,secondary_color:null}},notificationsEnabled:{supportedLevels:V,default:!1,controller:new T.b},notificationSound:{supportedLevels:j,default:!1},notificationBodyEnabled:{supportedLevels:V,default:!0,controller:new T.a},audioNotificationsEnabled:{supportedLevels:V,default:!0},enableWidgetScreenshots:{supportedLevels:q,displayName:Object(E.b)("Enable widget screenshots on supported widgets"),default:!1},"PinnedEvents.isOpen":{supportedLevels:[s.a.ROOM_DEVICE],default:!1},promptBeforeInviteUnknownUsers:{supportedLevels:q,displayName:Object(E.b)("Prompt before sending invites to potentially invalid matrix IDs"),default:!0},showDeveloperTools:{supportedLevels:q,displayName:Object(E.b)("Show developer tools"),default:!1},widgetOpenIDPermissions:{supportedLevels:V,default:{allow:[],deny:[]}},"RoomList.orderAlphabetically":{supportedLevels:q,displayName:Object(E.b)("Order rooms by name"),default:!1},"RoomList.orderByImportance":{supportedLevels:q,displayName:Object(E.b)("Show rooms with unread notifications first"),default:!0},breadcrumbs:{supportedLevels:q,displayName:Object(E.b)("Show shortcuts to recently viewed rooms above the room list"),default:!0},showHiddenEventsInTimeline:{displayName:Object(E.b)("Show hidden events in timeline"),supportedLevels:V,default:!1},lowBandwidth:{supportedLevels:z,displayName:Object(E.b)("Low bandwidth mode"),default:!1,controller:new R},fallbackICEServerAllowed:{supportedLevels:V,displayName:Object(E.b)("Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)"),default:null},showImages:{supportedLevels:q,displayName:Object(E.b)("Show previews/thumbnails for images"),default:!0},showRightPanelInRoom:{supportedLevels:V,default:!1},showRightPanelInGroup:{supportedLevels:V,default:!1},lastRightPanelPhaseForRoom:{supportedLevels:V,default:F.b.RoomSummary},lastRightPanelPhaseForGroup:{supportedLevels:V,default:F.b.GroupMemberList},enableEventIndexing:{supportedLevels:V,displayName:Object(E.b)("Enable message search in encrypted rooms"),default:!0},crawlerSleepTime:{supportedLevels:V,displayName:Object(E.b)("How fast should messages be downloaded."),default:3e3},showCallButtonsInComposer:{supportedLevels:z,default:!0,controller:new P(L.a.Voip)},"e2ee.manuallyVerifyAllSessions":{supportedLevels:V,displayName:Object(E.b)("Manually verify all remote sessions"),default:!1,controller:new U([new P(L.a.AdvancedEncryption),new O(S.b.prototype.setCryptoTrustCrossSignedDevices,!0)])},ircDisplayNameWidth:{supportedLevels:[s.a.ROOM_DEVICE,s.a.DEVICE],supportedLevelsAreOrdered:!0,displayName:Object(E.b)("IRC display name width"),default:80},useIRCLayout:{supportedLevels:q,displayName:Object(E.b)("Enable experimental, compact IRC style layout"),default:!1},showChatEffects:{supportedLevels:q,displayName:Object(E.b)("Show chat effects"),default:!0},"Widgets.pinned":{supportedLevels:j,default:{}},"Widgets.leftPanel":{supportedLevels:q,default:null},[L.a.RoomHistorySettings]:{supportedLevels:K,default:!0},[L.a.AdvancedEncryption]:{supportedLevels:K,default:!0},[L.a.URLPreviews]:{supportedLevels:K,default:!0},[L.a.Widgets]:{supportedLevels:K,default:!0},[L.a.Voip]:{supportedLevels:K,default:!0},[L.a.Feedback]:{supportedLevels:K,default:!0},[L.a.Registration]:{supportedLevels:K,default:!0},[L.a.PasswordReset]:{supportedLevels:K,default:!0},[L.a.Deactivate]:{supportedLevels:K,default:!0},[L.a.ShareQRCode]:{supportedLevels:K,default:!0},[L.a.ShareSocial]:{supportedLevels:K,default:!0},[L.a.IdentityServer]:{supportedLevels:K,default:!0,controller:new P(L.a.ThirdPartyID)},[L.a.ThirdPartyID]:{supportedLevels:K,default:!0},[L.a.Flair]:{supportedLevels:K,default:!0,controller:new P(L.a.Communities)},[L.a.Communities]:{supportedLevels:K,default:!0},[L.a.AdvancedSettings]:{supportedLevels:K,default:!0}};class Y extends i.a{constructor(e){super(),this.handler=e,r()(this,"cache",{})}getValue(e,t){const n=t||"UNDEFINED",o=this.cache[e];return o&&o.hasOwnProperty(n)?o[n]:this.handler.getValue(e,t)}setValue(e,t,n){this.cache[e]||(this.cache[e]={});const o=this.cache[e],r=t||"UNDEFINED";o[r]=n;const i=this.handler.setValue(e,t,n);return Promise.resolve(i).finally(()=>{delete o[r]})}canSetValue(e,t){return this.handler.canSetValue(e,t)}isSupported(){return this.handler.isSupported()}}const $=new class{constructor(){r()(this,"watchers",{})}watchSetting(e,t,n){this.watchers[e]||(this.watchers[e]={}),this.watchers[e][t]||(this.watchers[e][t]=[]),this.watchers[e][t].push(n)}unwatchSetting(e){for(const t of Object.keys(this.watchers))for(const n of Object.keys(this.watchers[t])){let o;for(;-1!==(o=this.watchers[t][n].indexOf(e));)this.watchers[t][n].splice(o,1)}}notifyUpdate(e,t,n,o){if(!this.watchers[e])return;const r=this.watchers[e],i=[];null!==t&&r[t]&&i.push(...r[t]),t?r.null&&i.push(...r.null):i.push(...Object.values(r).flat(1));for(const e of i)e(t,n,o)}},Q={},X={},J=[];for(const e of Object.keys(W))Q[e]=W[e].default,W[e].isFeature&&J.push(e),W[e].invertedSettingName&&(X[W[e].invertedSettingName]=!W[e].default);const Z={[s.a.DEVICE]:new c(J,$),[s.a.ROOM_DEVICE]:new l($),[s.a.ROOM_ACCOUNT]:new p($),[s.a.ACCOUNT]:new g($),[s.a.ROOM]:new f($),[s.a.CONFIG]:new v(J),[s.a.DEFAULT]:new u(Q,X)};for(const e of Object.keys(Z))Z[e]=new Y(Z[e]);const ee=[s.a.DEVICE,s.a.ROOM_DEVICE,s.a.ROOM_ACCOUNT,s.a.ACCOUNT,s.a.ROOM,s.a.CONFIG,s.a.DEFAULT];class te{static getFeatureSettingNames(){return Object.keys(W).filter(e=>te.isFeature(e))}static watchSetting(e,t,n){const o=W[e],r=e;if(!o)throw new Error(e+" is not a setting");o.invertedSettingName&&(e=o.invertedSettingName);const i=`${(new Date).getTime()}_${te.watcherCount++}_${e}_${t}`,a=(e,t,o)=>{const i=te.getValue(r);n(r,e,t,o,i)};return te.watchers[i]=a,$.watchSetting(e,t,a),i}static unwatchSetting(e){te.watchers[e]?($.unwatchSetting(te.watchers[e]),delete te.watchers[e]):console.warn("Ending non-existent watcher ID "+e)}static monitorSetting(e,t){t=t||null,this.monitors[e]||(this.monitors[e]={});const n=()=>{this.monitors[e][t]=te.watchSetting(e,t,(e,t,n,o,r)=>{y.a.dispatch({action:"setting_updated",settingName:e,roomId:t,level:n,newValueAtLevel:o,newValue:r})})};if(Object.keys(this.monitors[e]).find(e=>e===t||null===e)){if(null===t){for(const t of Object.keys(this.monitors[e]))te.unwatchSetting(this.monitors[e][t]);this.monitors[e]={},n()}}else n()}static getDisplayName(e,t=s.a.DEFAULT){if(!W[e]||!W[e].displayName)return null;let n=W[e].displayName;return n instanceof Object&&(n=n[t]?n[t]:n.default),Object(E.a)(n)}static isFeature(e){return!!W[e]&&W[e].isFeature}static isEnabled(e){return!!W[e]&&(!W[e].controller||!W[e].controller.settingDisabled)}static getValue(e,t=null,n=!1){if(!W[e])throw new Error("Setting '"+e+"' does not appear to be a setting.");const o=W[e],r=o.supportedLevelsAreOrdered?o.supportedLevels:ee;return te.getValueAt(r[0],e,t,!1,n)}static getValueAt(e,t,n=null,o=!1,r=!1){const i=W[t];if(!i)throw new Error("Setting '"+t+"' does not appear to be a setting.");const a=i.supportedLevelsAreOrdered?i.supportedLevels:ee;a.includes(s.a.DEFAULT)||a.push(s.a.DEFAULT);const c=a.indexOf(e);if(-1===c)throw new Error("Level "+e+" is not prioritized");const l=te.getHandlers(t);if(i.invertedSettingName&&(t=i.invertedSettingName),o){const o=l[e];if(!o)return te.getFinalValue(i,e,n,null,null);const r=o.getValue(t,n);return te.getFinalValue(i,e,n,r,e)}for(let o=c;o")),console.log("--- default level order: "+JSON.stringify(ee)),console.log("--- registered handlers: "+JSON.stringify(Object.keys(Z)));const o=e=>{for(const n of Object.keys(Z)){const o=Z[n];try{const r=o.getValue(e,t);console.log(`--- ${n}@${t||""} = ${JSON.stringify(r)}`)}catch(e){console.log(`--- ${o}@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=o.getValue(e,null);console.log(`--- ${n}@ = ${JSON.stringify(t)}`)}catch(e){console.log(`--- ${o}@ THREW ERROR: ${e.message}`),console.error(e)}}console.log("--- calculating as returned by SettingsStore"),console.log("--- these might not match if the setting uses a controller - be warned!");try{const n=te.getValue(e,t);console.log(`--- SettingsStore#generic@${t||""} = ${JSON.stringify(n)}`)}catch(e){console.log(`--- SettingsStore#generic@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=te.getValue(e,null);console.log("--- SettingsStore#generic@ = "+JSON.stringify(t))}catch(e){console.log("--- SettingsStore#generic@$ THREW ERROR: "+e.message),console.error(e)}for(const n of ee){try{const o=te.getValueAt(n,e,t);console.log(`--- SettingsStore#${n}@${t||""} = ${JSON.stringify(o)}`)}catch(e){console.log(`--- SettingsStore#${n}@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=te.getValueAt(n,e,null);console.log(`--- SettingsStore#${n}@ = ${JSON.stringify(t)}`)}catch(e){console.log(`--- SettingsStore#${n}@$ THREW ERROR: ${e.message}`),console.error(e)}}};o(e),n.invertedSettingName&&(console.log("--- TESTING INVERTED SETTING NAME"),console.log("--- inverted: "+n.invertedSettingName),o(n.invertedSettingName)),console.log("--- END DEBUG")}static getHandler(e,t){const n=te.getHandlers(e);return n[t]?n[t]:null}static getHandlers(e){if(!W[e])return{};const t={};for(const n of W[e].supportedLevels){if(!Z[n])throw new Error("Unexpected level "+n);te.isLevelSupported(n)&&(t[n]=Z[n])}return t.default||(t.default=Z.default),t}}r()(te,"watchers",{}),r()(te,"monitors",{}),r()(te,"watcherCount",1),window.mxSettingsStore=te},function(e,t,n){"use strict";var o=n(94),r=n.n(o),i=n(82),a=n.n(i),s=n(81),c=n.n(s),l=n(135),u=n.n(l),d=n(90),h=n.n(d),p=n(110),m=n(87),g=n(130),f=n(85),_=n(84),b=n.n(_),v=n(83);class E extends c.a.Component{constructor(...e){super(...e),a()(this,"state",{component:null,error:null}),a()(this,"_onWrapperCancelClick",()=>{this.props.onFinished(!1)})}componentDidMount(){this._unmounted=!1,console.log("Starting load of AsyncWrapper for modal"),this.props.prom.then(e=>{if(this._unmounted)return;const t=e.default?e.default:e;this.setState({component:t})}).catch(e=>{console.warn("AsyncWrapper promise failed",e),this.setState({error:e})})}componentWillUnmount(){this._unmounted=!0}render(){if(this.state.component){const e=this.state.component;return c.a.createElement(e,this.props)}if(this.state.error){const e=f.getComponent("views.dialogs.BaseDialog"),t=f.getComponent("views.elements.DialogButtons");return c.a.createElement(e,{onFinished:this.props.onFinished,title:Object(v.a)("Error")},Object(v.a)("Unable to load! Check your network connectivity and try again."),c.a.createElement(t,{primaryButton:Object(v.a)("Dismiss"),onPrimaryButtonClick:this._onWrapperCancelClick,hasCancel:!1}))}{const e=f.getComponent("elements.Spinner");return c.a.createElement(e,null)}}}a()(E,"propTypes",{prom:b.a.object.isRequired});class y{constructor(){a()(this,"counter",0),a()(this,"priorityModal",null),a()(this,"staticModal",null),a()(this,"modals",[]),a()(this,"onBackgroundClick",()=>{const e=this.getCurrentModal();e&&(e.closeReason="backgroundClick",e.close(),e.closeReason=null)})}static getOrCreateContainer(){let e=document.getElementById("mx_Dialog_Container");return e||(e=document.createElement("div"),e.id="mx_Dialog_Container",document.body.appendChild(e)),e}static getOrCreateStaticContainer(){let e=document.getElementById("mx_Dialog_StaticContainer");return e||(e=document.createElement("div"),e.id="mx_Dialog_StaticContainer",document.body.appendChild(e)),e}hasDialogs(){return this.priorityModal||this.staticModal||this.modals.length>0}createTrackedDialog(e,t,...n){return p.a.trackEvent("Modal",e,t),this.createDialog(...n)}appendTrackedDialog(e,t,...n){return p.a.trackEvent("Modal",e,t),this.appendDialog(...n)}createDialog(e,...t){return this.createDialogAsync(Promise.resolve(e),...t)}appendDialog(e,...t){return this.appendDialogAsync(Promise.resolve(e),...t)}createTrackedDialogAsync(e,t,...n){return p.a.trackEvent("Modal",e,t),this.createDialogAsync(...n)}appendTrackedDialogAsync(e,t,...n){return p.a.trackEvent("Modal",e,t),this.appendDialogAsync(...n)}closeCurrentModal(e){const t=this.getCurrentModal();t&&(t.closeReason=e,t.close())}buildModal(e,t,n,o){const i={onFinished:t?t.onFinished:null,onBeforeClose:o.onBeforeClose,beforeClosePromise:null,closeReason:null,className:n,elem:null,close:null},[a,s]=this.getCloseFn(i,t),l=this.counter++;return i.elem=c.a.createElement(E,r()({key:l,prom:e},t,{onFinished:a})),i.close=a,{modal:i,closeDialog:a,onFinishedProm:s}}getCloseFn(e,t){const n=Object(g.b)();return[async(...o)=>{if(e.beforeClosePromise)await e.beforeClosePromise;else if(e.onBeforeClose){e.beforeClosePromise=e.onBeforeClose(e.closeReason);const t=await e.beforeClosePromise;if(e.beforeClosePromise=null,!t)return}n.resolve(o),t&&t.onFinished&&t.onFinished.apply(null,o);const r=this.modals.indexOf(e);r>=0&&this.modals.splice(r,1),this.priorityModal===e&&(this.priorityModal=null,this.modals=[]),this.staticModal===e&&(this.staticModal=null,this.modals=[]),this.reRender()},n.promise]}createDialogAsync(e,t,n,o=!1,r=!1,i={}){const{modal:a,closeDialog:s,onFinishedProm:c}=this.buildModal(e,t,n,i);return o?this.priorityModal=a:r?this.staticModal=a:this.modals.unshift(a),this.reRender(),{close:s,finished:c}}appendDialogAsync(e,t,n){const{modal:o,closeDialog:r,onFinishedProm:i}=this.buildModal(e,t,n,{});return this.modals.push(o),this.reRender(),{close:r,finished:i}}getCurrentModal(){return this.priorityModal?this.priorityModal:this.modals[0]||this.staticModal}reRender(){if(0===this.modals.length&&!this.priorityModal&&!this.staticModal)return m.a.dispatch({action:"aria_unhide_main_app"}),u.a.unmountComponentAtNode(y.getOrCreateContainer()),void u.a.unmountComponentAtNode(y.getOrCreateStaticContainer());if(m.a.dispatch({action:"aria_hide_main_app"}),this.staticModal){const e=h()("mx_Dialog_wrapper mx_Dialog_staticWrapper",this.staticModal.className),t=c.a.createElement("div",{className:e},c.a.createElement("div",{className:"mx_Dialog"},this.staticModal.elem),c.a.createElement("div",{className:"mx_Dialog_background mx_Dialog_staticBackground",onClick:this.onBackgroundClick}));u.a.render(t,y.getOrCreateStaticContainer())}else u.a.unmountComponentAtNode(y.getOrCreateStaticContainer());const e=this.getCurrentModal();if(e!==this.staticModal){const t=h()("mx_Dialog_wrapper",e.className,{mx_Dialog_wrapperWithStaticUnder:this.staticModal}),n=c.a.createElement("div",{className:t},c.a.createElement("div",{className:"mx_Dialog"},e.elem),c.a.createElement("div",{className:"mx_Dialog_background",onClick:this.onBackgroundClick}));u.a.render(n,y.getOrCreateContainer())}else u.a.unmountComponentAtNode(y.getOrCreateContainer())}}window.singletonModalManager||(window.singletonModalManager=new y);t.a=window.singletonModalManager},function(e,t,n){var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t{if(e.key===s.a.ENTER)return e.stopPropagation(),e.preventDefault(),n(e);e.key===s.a.SPACE&&(e.stopPropagation(),e.preventDefault())},p.onKeyUp=e=>{if(e.key===s.a.SPACE)return e.stopPropagation(),e.preventDefault(),n(e);e.key===s.a.ENTER&&(e.stopPropagation(),e.preventDefault())}),p.ref=u,p.className=l()("mx_AccessibleButton",d,{mx_AccessibleButton_hasKind:i,["mx_AccessibleButton_kind_"+i]:i,mx_AccessibleButton_disabled:c}),a.a.createElement(t,h,o)}u.defaultProps={element:"div",role:"button",tabIndex:0},u.displayName="AccessibleButton"},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var o=n(82),r=n.n(o);const i={brand:"Element",integrations_ui_url:"https://scalar.vector.im/",integrations_rest_url:"https://scalar.vector.im/api",bug_report_endpoint_url:null,jitsi:{preferredDomain:"jitsi.riot.im"},desktopBuilds:{available:!0,logo:n(824),url:"https://element.io/get-started"}};class a{static setInstance(e){a.instance=e,window.mxReactSdkConfig=e}static get(){return a.instance||{}}static put(e){const t=Object.keys(i);for(let n=0;n",BACKTICK:"`",SPACE:" ",SLASH:"/",SQUARE_BRACKET_LEFT:"[",SQUARE_BRACKET_RIGHT:"]",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z"},r=navigator.platform.toUpperCase().indexOf("MAC")>=0;function i(e){return r?e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey:e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.shiftKey}function a(e){return r?e.metaKey&&!e.altKey&&!e.ctrlKey:e.ctrlKey&&!e.altKey&&!e.metaKey}},function(e,t,n){var o=n(822);e.exports=function(e,t){if(null==e)return{};var n,r,i=o(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return x})),n.d(t,"b",(function(){return O})),n.d(t,"n",(function(){return k})),n.d(t,"k",(function(){return R})),n.d(t,"o",(function(){return A})),n.d(t,"m",(function(){return I})),n.d(t,"l",(function(){return D}));var o=n(94),r=n.n(o),i=n(82),a=n.n(i),s=n(81),c=n.n(s),l=n(135),u=n.n(l),d=n(90),h=n.n(d),p=n(98),m=n(525);n.d(t,"c",(function(){return m.a}));var g=n(526);n.d(t,"d",(function(){return g.a}));var f=n(527);n.d(t,"e",(function(){return f.a}));var _=n(528);n.d(t,"f",(function(){return _.a}));var b=n(529);n.d(t,"g",(function(){return b.a}));var v=n(530);n.d(t,"h",(function(){return v.a}));var E=n(531);n.d(t,"i",(function(){return E.a}));var y=n(532);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function T(e){for(var t=1;t{if(!e)return;let t=e.querySelector('[role^="menuitem"]');t||(t=e.querySelector("[tab-index]")),t&&t.focus(),this.setState({contextMenuElem:e})}),a()(this,"onContextMenu",t=>{if(this.props.onFinished){this.props.onFinished(),t.preventDefault(),t.stopPropagation();const n=t.clientX,o=t.clientY;e(()=>{const e=document.createEvent("MouseEvents");e.initMouseEvent("contextmenu",!0,!0,window,0,0,0,n,o,!1,!1,!1,!1,0,null),document.elementFromPoint(n,o).dispatchEvent(e)})}}),a()(this,"onContextMenuPreventBubbling",e=>{e.stopPropagation()}),a()(this,"onFinished",e=>{e.stopPropagation(),e.preventDefault(),this.props.onFinished&&this.props.onFinished()}),a()(this,"onMoveFocus",(e,t)=>{let n=!1;do{const o=t?e.lastElementChild:e.firstElementChild,r=t?e.previousElementSibling:e.nextElementSibling;n?o?e=o:r?e=r:(n=!1,e=e.parentElement):r?(e=r,n=!0):e=e.parentElement,e&&e.classList.contains("mx_ContextualMenu")&&(e=t?e.lastElementChild:e.firstElementChild,n=!0)}while(e&&!C.has(e.getAttribute("role")));e&&e.focus()}),a()(this,"onMoveFocusHomeEnd",(e,t)=>{let n=e.querySelectorAll('[role^="menuitem"]');n||(n=e.querySelectorAll("[tab-index]")),n&&n.length&&(t?n[0].focus():n[n.length-1].focus())}),a()(this,"onKeyDown",e=>{if(!this.props.managed)return void(e.key===p.a.ESCAPE&&(this.props.onFinished(),e.stopPropagation(),e.preventDefault()));let t=!0;switch(e.key){case p.a.TAB:case p.a.ESCAPE:case p.a.ARROW_LEFT:case p.a.ARROW_RIGHT:this.props.onFinished();break;case p.a.ARROW_UP:this.onMoveFocus(e.target,!0);break;case p.a.ARROW_DOWN:this.onMoveFocus(e.target,!1);break;case p.a.HOME:this.onMoveFocusHomeEnd(this.state.contextMenuElem,!0);break;case p.a.END:this.onMoveFocusHomeEnd(this.state.contextMenuElem,!1);break;default:t=!1}t&&(e.stopPropagation(),e.preventDefault())}),this.state={contextMenuElem:null},this.initialFocus=document.activeElement}componentWillUnmount(){this.initialFocus.focus()}renderMenu(e=this.props.hasBackground){const t={},n=this.props;let o;n.top?t.top=n.top:t.bottom=n.bottom,n.left?(t.left=n.left,o=x.Left):(t.right=n.right,o=x.Right);const r=this.state.contextMenuElem?this.state.contextMenuElem.getBoundingClientRect():null,i={};n.chevronFace&&(o=n.chevronFace);const a=o&&o!==x.None;if(o===x.Top||o===x.Bottom)i.left=n.chevronOffset;else if(void 0!==t.top){const e=t.top;let o=e;if(r){const e=10;o=Math.min(t.top,document.body.clientHeight-r.height+e)}t.top=o,i.top=Math.max(n.chevronOffset,n.chevronOffset+e-o)}let s;a&&(s=c.a.createElement("div",{style:i,className:"mx_ContextualMenu_chevron_"+o}));const l=h()({mx_ContextualMenu:!0,mx_ContextualMenu_left:!a&&t.left,mx_ContextualMenu_right:!a&&t.right,mx_ContextualMenu_top:!a&&t.top,mx_ContextualMenu_bottom:!a&&t.bottom,mx_ContextualMenu_withChevron_left:o===x.Left,mx_ContextualMenu_withChevron_right:o===x.Right,mx_ContextualMenu_withChevron_top:o===x.Top,mx_ContextualMenu_withChevron_bottom:o===x.Bottom}),u={};n.menuWidth&&(u.width=n.menuWidth),n.menuHeight&&(u.height=n.menuHeight),isNaN(Number(n.menuPaddingTop))||(u.paddingTop=n.menuPaddingTop),isNaN(Number(n.menuPaddingLeft))||(u.paddingLeft=n.menuPaddingLeft),isNaN(Number(n.menuPaddingBottom))||(u.paddingBottom=n.menuPaddingBottom),isNaN(Number(n.menuPaddingRight))||(u.paddingRight=n.menuPaddingRight);const d={};let p;return isNaN(Number(n.zIndex))||(u.zIndex=n.zIndex+1,d.zIndex=n.zIndex),e&&(p=c.a.createElement("div",{className:"mx_ContextualMenu_background",style:d,onClick:this.onFinished,onContextMenu:this.onContextMenu})),c.a.createElement("div",{className:"mx_ContextualMenu_wrapper",style:T(T({},t),d),onKeyDown:this.onKeyDown,onContextMenu:this.onContextMenuPreventBubbling},c.a.createElement("div",{className:l,style:u,ref:this.collectContextMenuRect,role:this.props.managed?"menu":void 0},s,n.children),p)}render(){return u.a.createPortal(this.renderMenu(),w())}}a()(O,"defaultProps",{hasBackground:!0,managed:!0});const k=(e,t=12)=>{const n=e.right+window.pageXOffset+3;let o=e.top+e.height/2+window.pageYOffset;return o-=t+8,{left:n,top:o,chevronOffset:t}},R=(e,t=x.None,n=0)=>{const o={chevronFace:t},r=e.right+window.pageXOffset,i=e.bottom+window.pageYOffset,a=e.top+window.pageYOffset;return o.right=window.innerWidth-r,i{const e=Object(s.useRef)(null),[t,n]=Object(s.useState)(!1);return[t,e,()=>{n(!0)},()=>{n(!1)},n]};class I extends O{render(){return this.renderMenu(!1)}}function D(e,t){const n=function(...e){u.a.unmountComponentAtNode(w()),t&&t.onFinished&&t.onFinished.apply(null,e)},o=c.a.createElement(I,r()({},t,{onFinished:n,windowResize:n}),c.a.createElement(e,r()({},t,{onFinished:n})));return u.a.render(o,w()),{close:n}}}).call(this,n(147).setImmediate)},function(e,t,n){"use strict";let o;n.d(t,"a",(function(){return o})),function(e){e.AdvancedEncryption="UIFeature.advancedEncryption",e.URLPreviews="UIFeature.urlPreviews",e.Widgets="UIFeature.widgets",e.Voip="UIFeature.voip",e.Feedback="UIFeature.feedback",e.Registration="UIFeature.registration",e.PasswordReset="UIFeature.passwordReset",e.Deactivate="UIFeature.deactivate",e.ShareQRCode="UIFeature.shareQrCode",e.ShareSocial="UIFeature.shareSocial",e.IdentityServer="UIFeature.identityServer",e.ThirdPartyID="UIFeature.thirdPartyId",e.Flair="UIFeature.flair",e.Communities="UIFeature.communities",e.AdvancedSettings="UIFeature.advancedSettings",e.RoomHistorySettings="UIFeature.roomHistorySettings"}(o||(o={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return S}));var o=n(99),r=n.n(o),i=n(82),a=n.n(i),s=n(201),c=n(83),l=n(104),u=n(92),d=n(86),h=n(130),p=n(115),m=n(322);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function f(e){for(var t=1;t{const t=(new _).encode(e),n=await window.crypto.subtle.digest("sha-256",t);return[...new Uint8Array(n)].map(e=>e.toString(16).padStart(2,"0")).join("")},E=new Set(["register","login","forgot_password","soft_logout","new","settings","welcome","home","start","directory","start_sso","start_cas","groups","complete_security","post_registration","room","user","group"]);const y=e=>{var t,n;const o=d.a.get(),r=null==o?void 0:o.getRoom(e);return{num_users:null==r?void 0:r.getJoinedMemberCount(),is_encrypted:null==o?void 0:o.isRoomEncrypted(e),is_public:"public"===(null==r||null===(t=r.currentState.getStateEvents("m.room.join_rules",""))||void 0===t||null===(n=t.getContent())||void 0===n?void 0:n.join_rule)}};class S{constructor(){a()(this,"baseUrl",null),a()(this,"appKey",null),a()(this,"userKey",null),a()(this,"anonymous",void 0),a()(this,"appPlatform",void 0),a()(this,"appVersion","unknown"),a()(this,"initTime",S.getTimestamp()),a()(this,"firstPage",!0),a()(this,"heartbeatIntervalId",void 0),a()(this,"activityIntervalId",void 0),a()(this,"trackTime",!0),a()(this,"lastBeat",void 0),a()(this,"storedDuration",0),a()(this,"lastView",void 0),a()(this,"lastViewTime",0),a()(this,"lastViewStoredDuration",0),a()(this,"sessionStarted",!1),a()(this,"heartbeatEnabled",!1),a()(this,"inactivityCounter",0),a()(this,"pendingEvents",[]),a()(this,"lastMsTs",0),a()(this,"getOrientation",()=>window.innerWidth>window.innerHeight?b.Landscape:b.Portrait),a()(this,"reportOrientation",()=>{this.track("[CLY]_orientation",{mode:this.getOrientation()})}),a()(this,"endSession",()=>{this.sessionStarted&&(window.removeEventListener("resize",this.reportOrientation),this.reportViewDuration(),this.request({end_session:1,session_duration:S.getTimestamp()-this.lastBeat})),this.sessionStarted=!1}),a()(this,"onVisibilityChange",()=>{document.hidden?this.stopTime():this.startTime()}),a()(this,"onUserActivity",()=>{this.inactivityCounter>=20&&this.startTime(),this.inactivityCounter=0})}static get instance(){return S.internalInstance}get disabled(){return!this.baseUrl}canEnable(){var e,t;const n=u.a.get();return Boolean("1"!==navigator.doNotTrack&&(null==n||null===(e=n.countly)||void 0===e?void 0:e.url)&&(null==n||null===(t=n.countly)||void 0===t?void 0:t.appKey))}async changeUserKey(e,t=!1){const n=this.userKey;this.userKey=e,n&&t&&await this.request({old_device_id:n})}async enable(e=!0){if(!this.disabled&&this.anonymous===e)return;if(!this.canEnable())return;this.disabled||this.request();const t=u.a.get();this.baseUrl=new URL("/i",t.countly.url),this.appKey=t.countly.appKey,this.anonymous=e,e?await this.changeUserKey(Object(s.a)(64)):await this.changeUserKey(await v(d.a.get().getUserId()),!0);const n=l.a.get();this.appPlatform=n.getHumanReadableName();try{this.appVersion=await n.getAppVersion()}catch(e){console.warn("Failed to get app version, using 'unknown'")}this.heartbeatIntervalId=setInterval(this.heartbeat.bind(this),5e3),this.trackSessions(),this.trackErrors()}async disable(){this.disabled||(await this.track("Opt-Out"),this.endSession(),window.clearInterval(this.heartbeatIntervalId),window.clearTimeout(this.activityIntervalId),this.baseUrl=null,window.removeEventListener("beforeunload",this.endSession),window.removeEventListener("unload",this.endSession),window.removeEventListener("visibilitychange",this.onVisibilityChange),window.removeEventListener("mousemove",this.onUserActivity),window.removeEventListener("click",this.onUserActivity),window.removeEventListener("keydown",this.onUserActivity),window.removeEventListener("scroll",this.onUserActivity))}reportFeedback(e,t){this.track("[CLY]_star_rating",{rating:e,comment:t},null,{},!0)}trackPageChange(e){this.disabled||this.trackPageView()}async trackPageView(){this.reportViewDuration(),await Object(h.d)(0);const e=await async function(e=!0){const t=Object(s.a)(8),{origin:n,hash:o}=window.location;let{pathname:r}=window.location;n.startsWith("file://")&&(r=`//`);let[i,a,...c]=o.split("/");E.has(a)||(a=``);for(let n=0;n`:await v(c[n]);const l=n+r+`${i}/${a}/${c.join("/")}`,u={};let d="$/"+o;switch(a){case"room":{d="view_room";const e=p.a.getRoomId();d+=" "+c[0],u.room_id=c[0],Object.assign(u,y(e));break}}return{name:d,url:l,meta:u}}(this.anonymous),t=e.name;this.lastView=t,this.lastViewTime=S.getTimestamp();const n=f(f({},e.meta),{},{name:t,visit:1,domain:window.location.hostname,view:e.url,segment:this.appPlatform,start:this.firstPage});this.firstPage&&(this.firstPage=!1),this.track("[CLY]_view",n)}static getTimestamp(){return Math.floor((new Date).getTime()/1e3)}getMsTimestamp(){const e=(new Date).getTime();return this.lastMsTs>=e?this.lastMsTs++:this.lastMsTs=e,this.lastMsTs}async recordError(e,t=!1){if(this.disabled||this.anonymous)return;let n="";"object"==typeof e?void 0!==e.stack?n=e.stack:(void 0!==e.name&&(n+=e.name+":"),void 0!==e.message&&(n+=e.message+"\n"),void 0!==e.fileName&&(n+="in "+e.fileName+"\n"),void 0!==e.lineNumber&&(n+="on "+e.lineNumber),void 0!==e.columnNumber&&(n+=":"+e.columnNumber)):n=e+"",n=await(async(e,t,n)=>{const o=[];e.replace(t,(...e)=>(o.push(n(...e)),""));const r=await Promise.all(o);return e.replace(t,()=>r.shift())})(n,/([!@+#]).+?:[\w:.]+/g,async(e,t)=>t+await v(e.substring(1)));const o=this.getMetrics(),r={_resolution:null==o?void 0:o._resolution,_error:n,_app_version:this.appVersion,_run:S.getTimestamp()-this.initTime,_nonfatal:!t,_view:this.lastView};void 0!==navigator.onLine&&(r._online=navigator.onLine),r._background=document.hasFocus(),this.request({crash:JSON.stringify(r)})}trackErrors(){window.onerror=(e,t,n,o,r)=>{if(void 0!==r)this.recordError(r,!1);else{let r="";void 0!==e&&(r+=e+"\n"),void 0!==t&&(r+="at "+t),void 0!==n&&(r+=":"+n),void 0!==o&&(r+=":"+o),r+="\n";try{const e=[];let t=arguments.callee.caller;for(;t;)e.push(t.name),t=t.caller;r+=e.join("\n")}catch(e){}this.recordError(r,!1)}},window.addEventListener("unhandledrejection",e=>{var t;this.recordError(new Error(`Unhandled rejection (reason: ${(null===(t=e.reason)||void 0===t?void 0:t.stack)||e.reason}).`),!0)})}heartbeat(){const e={};if(this.sessionStarted&&this.trackTime){const t=S.getTimestamp();t-this.lastBeat>=60&&(e.session_duration=t-this.lastBeat,this.lastBeat=t)}(this.pendingEvents.length>0||e.session_duration)&&this.request(e)}async request(e={}){const t=f(f({app_key:this.appKey,device_id:this.userKey},this.getTimeParams()),e);if(this.pendingEvents.length>0){const e=10,n=this.pendingEvents.splice(0,e);t.events=JSON.stringify(n)}const n=new URLSearchParams(t);try{await window.fetch(this.baseUrl.toString(),{method:"POST",mode:"no-cors",cache:"no-cache",redirect:"follow",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n})}catch(e){console.error("Analytics error: ",e)}}getTimeParams(){const e=new Date;return{timestamp:this.getMsTimestamp(),hour:e.getHours(),dow:e.getDay()}}queue(e){const{count:t=1}=e,n=r()(e,["count"]),o=f(f(f({},this.getTimeParams()),n),{},{count:t,platform:this.appPlatform,app_version:this.appVersion});this.pendingEvents.push(o),this.pendingEvents.length>1e3&&this.pendingEvents.shift()}startTime(){this.trackTime||(this.trackTime=!0,this.lastBeat=S.getTimestamp()-this.storedDuration,this.lastViewTime=S.getTimestamp()-this.lastViewStoredDuration,this.lastViewStoredDuration=0)}stopTime(){this.trackTime&&(this.trackTime=!1,this.storedDuration=S.getTimestamp()-this.lastBeat,this.lastViewStoredDuration=S.getTimestamp()-this.lastViewTime)}getMetrics(){if(this.anonymous)return;const e={};return e._app_version=this.appVersion,e._ua=navigator.userAgent,screen.width&&screen.height&&(e._resolution=`${screen.width}x${screen.height}`),window.devicePixelRatio&&(e._density=window.devicePixelRatio),e._locale=Object(c.d)(),e}async beginSession(e=!0){if(!this.sessionStarted){this.reportOrientation(),window.addEventListener("resize",this.reportOrientation),this.lastBeat=S.getTimestamp(),this.sessionStarted=!0,this.heartbeatEnabled=e;const t={custom:{home_server:d.a.get()&&d.a.getHomeserverName(),anonymous:this.anonymous}},n={begin_session:1,user_details:JSON.stringify(t)},o=this.getMetrics();o&&(n.metrics=JSON.stringify(o)),await this.request(n)}}reportViewDuration(){this.lastView&&(this.track("[CLY]_view",{name:this.lastView},null,{dur:this.trackTime?S.getTimestamp()-this.lastViewTime:this.lastViewStoredDuration}),this.lastView=null)}trackSessions(){this.beginSession(),this.startTime(),window.addEventListener("beforeunload",this.endSession),window.addEventListener("unload",this.endSession),window.addEventListener("visibilitychange",this.onVisibilityChange),window.addEventListener("mousemove",this.onUserActivity),window.addEventListener("click",this.onUserActivity),window.addEventListener("keydown",this.onUserActivity),window.addEventListener("scroll",this.onUserActivity),this.activityIntervalId=setInterval(()=>{this.inactivityCounter++,this.inactivityCounter>=20&&this.stopTime()},6e4)}trackBeginInvite(e){this.track("begin_invite",{},e)}trackSendInvite(e,t,n){this.track("send_invite",{},t,{dur:S.getTimestamp()-e,sum:n})}async trackRoomCreate(e,t){if(this.disabled)return;let n=S.getTimestamp();const o=d.a.get();o.getRoom(t)||(await new Promise(e=>{const n=r=>{r.roomId===t&&(o.off("Room",n),e())};o.on("Room",n)}),n=S.getTimestamp()),this.track("create_room",{},t,{dur:n-e})}trackRoomJoin(e,t,n){this.track("join_room",{type:n},t,{dur:S.getTimestamp()-e})}async trackSendMessage(e,t,n,o,r,i){if(this.disabled)return;const a=d.a.get().getRoom(n),s=(await t).event_id;let c=S.getTimestamp();a.findEventById(s)||(await new Promise(e=>{const t=n=>{n.getId()===s&&(a.off("Room.localEchoUpdated",t),e())};a.on("Room.localEchoUpdated",t)}),c=S.getTimestamp()),this.track("send_message",{is_edit:o,is_reply:r,msgtype:i.msgtype,format:i.format},n,{dur:c-e})}trackStartCall(e,t=!1,n=!1){this.track("start_call",{is_video:t,is_jitsi:n},e)}trackJoinCall(e,t=!1,n=!1){this.track("join_call",{is_video:t,is_jitsi:n},e)}trackRoomDirectoryBegin(){this.track("room_directory")}trackRoomDirectory(e){this.track("room_directory_done",{},null,{dur:S.getTimestamp()-e})}trackRoomDirectorySearch(e,t){this.track("room_directory_search",{query_length:t.length,query_num_words:t.split(" ").length},null,{sum:e})}async track(e,t,n,o,r=!1){if(this.disabled&&!r)return;let i=t||{};n&&(i=f(f({room_id:await v(n)},y(n)),t)),this.queue(f({key:e,count:1,segmentation:i},o)),this.disabled&&r&&await this.request({device_id:Object(s.a)(64)})}}a()(S,"internalInstance",new S),window.mxCountlyAnalytics=S},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var o=n(99),r=n.n(o),i=n(82),a=n.n(i),s=n(81),c=n.n(s),l=n(90),u=n.n(l),d=n(85),h=n(105);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e){for(var t=1;t{this.validate({focused:!0})},200)),a()(this,"onFocus",e=>{this.setState({focused:!0}),this.props.validateOnFocus&&this.validate({focused:!0}),this.props.onFocus&&this.props.onFocus(e)}),a()(this,"onChange",e=>{this.props.validateOnChange&&this.validateOnChange(),this.props.onChange&&this.props.onChange(e)}),a()(this,"onBlur",e=>{this.setState({focused:!1}),this.props.validateOnBlur&&this.validate({focused:!1}),this.props.onBlur&&this.props.onBlur(e)}),this.state={valid:void 0,feedback:void 0,feedbackVisible:!1,focused:!1},this.id=this.props.id||"mx_Field_"+g++}focus(){this.input.focus()}async validate({focused:e,allowEmpty:t=!0}){if(!this.props.onValidate)return;const n=this.input?this.input.value:null,{valid:o,feedback:r}=await this.props.onValidate({value:n,focused:e,allowEmpty:t});return this.state.focused&&r?this.setState({valid:o,feedback:r,feedbackVisible:!0}):this.setState({valid:o,feedbackVisible:!1}),o}render(){const e=this.props,{element:t,prefixComponent:n,postfixComponent:o,className:i,onValidate:a,children:s,tooltipContent:l,forceValidity:h,tooltipClassName:p,list:g,validateOnBlur:f,validateOnChange:_,validateOnFocus:b}=e,v=r()(e,["element","prefixComponent","postfixComponent","className","onValidate","children","tooltipContent","forceValidity","tooltipClassName","list","validateOnBlur","validateOnChange","validateOnFocus"]);v.placeholder=v.placeholder||v.label,v.id=this.id,v.onFocus=this.onFocus,v.onChange=this.onChange,v.onBlur=this.onBlur;const E=m(m({},v),{},{ref:e=>this.input=e,list:g}),y=c.a.createElement(this.props.element,E,s);let S=null;n&&(S=c.a.createElement("span",{className:"mx_Field_prefix"},n));let T=null;o&&(T=c.a.createElement("span",{className:"mx_Field_postfix"},o));const w=null!=h,C=u()("mx_Field","mx_Field_"+this.props.element,i,{mx_Field_labelAlwaysTopLeft:n,mx_Field_valid:w?h:a&&!0===this.state.valid,mx_Field_invalid:w?!h:a&&!1===this.state.valid}),x=d.getComponent("elements.Tooltip");let O;return(l||this.state.feedback)&&(O=c.a.createElement(x,{tooltipClassName:u()("mx_Field_tooltip",p),visible:this.state.focused&&this.props.forceTooltipVisible||this.state.feedbackVisible,label:l||this.state.feedback,forceOnRight:!0})),c.a.createElement("div",{className:C},S,y,c.a.createElement("label",{htmlFor:this.id},this.props.label),T,O)}}a()(f,"defaultProps",{element:"input",type:"text",validateOnFocus:!0,validateOnBlur:!0,validateOnChange:!0})},function(e,t,n){"use strict";var o=n(82),r=n.n(o);class i{constructor(){r()(this,"platform",null)}get(){return this.platform}set(e){this.platform=e}}window.mxPlatformPeg||(window.mxPlatformPeg=new i),t.a=window.mxPlatformPeg},function(e,t,n){(function(e,o){var r;(function(){var i="Expected a function",a="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],c="[object Arguments]",l="[object Array]",u="[object Boolean]",d="[object Date]",h="[object Error]",p="[object Function]",m="[object GeneratorFunction]",g="[object Map]",f="[object Number]",_="[object Object]",b="[object RegExp]",v="[object Set]",E="[object String]",y="[object Symbol]",S="[object WeakMap]",T="[object ArrayBuffer]",w="[object DataView]",C="[object Float32Array]",x="[object Float64Array]",O="[object Int8Array]",k="[object Int16Array]",R="[object Int32Array]",A="[object Uint8Array]",I="[object Uint16Array]",D="[object Uint32Array]",N=/\b__p \+= '';/g,F=/\b(__p \+=) '' \+/g,M=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,U=RegExp(P.source),B=RegExp(L.source),j=/<%-([\s\S]+?)%>/g,G=/<%([\s\S]+?)%>/g,q=/<%=([\s\S]+?)%>/g,H=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,z=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K=/[\\^$.*+?()[\]{}|]/g,W=RegExp(K.source),Y=/^\s+|\s+$/g,$=/^\s+/,Q=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,oe=/\w*$/,re=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,ce=/^(?:0|[1-9]\d*)$/,le=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ue=/($^)/,de=/['\n\r\u2028\u2029\\]/g,he="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",pe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",me="[\\ud800-\\udfff]",ge="["+pe+"]",fe="["+he+"]",_e="\\d+",be="[\\u2700-\\u27bf]",ve="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ee="[^\\ud800-\\udfff"+pe+_e+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ye="\\ud83c[\\udffb-\\udfff]",Se="[^\\ud800-\\udfff]",Te="(?:\\ud83c[\\udde6-\\uddff]){2}",we="[\\ud800-\\udbff][\\udc00-\\udfff]",Ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",xe="(?:"+ve+"|"+Ee+")",Oe="(?:"+Ce+"|"+Ee+")",ke="(?:"+fe+"|"+ye+")"+"?",Re="[\\ufe0e\\ufe0f]?"+ke+("(?:\\u200d(?:"+[Se,Te,we].join("|")+")[\\ufe0e\\ufe0f]?"+ke+")*"),Ae="(?:"+[be,Te,we].join("|")+")"+Re,Ie="(?:"+[Se+fe+"?",fe,Te,we,me].join("|")+")",De=RegExp("['’]","g"),Ne=RegExp(fe,"g"),Fe=RegExp(ye+"(?="+ye+")|"+Ie+Re,"g"),Me=RegExp([Ce+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ge,Ce,"$"].join("|")+")",Oe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ge,Ce+xe,"$"].join("|")+")",Ce+"?"+xe+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",_e,Ae].join("|"),"g"),Pe=RegExp("[\\u200d\\ud800-\\udfff"+he+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ue=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Be=-1,je={};je[C]=je[x]=je[O]=je[k]=je[R]=je[A]=je["[object Uint8ClampedArray]"]=je[I]=je[D]=!0,je[c]=je[l]=je[T]=je[u]=je[w]=je[d]=je[h]=je[p]=je[g]=je[f]=je[_]=je[b]=je[v]=je[E]=je[S]=!1;var Ge={};Ge[c]=Ge[l]=Ge[T]=Ge[w]=Ge[u]=Ge[d]=Ge[C]=Ge[x]=Ge[O]=Ge[k]=Ge[R]=Ge[g]=Ge[f]=Ge[_]=Ge[b]=Ge[v]=Ge[E]=Ge[y]=Ge[A]=Ge["[object Uint8ClampedArray]"]=Ge[I]=Ge[D]=!0,Ge[h]=Ge[p]=Ge[S]=!1;var qe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},He=parseFloat,Ve=parseInt,ze="object"==typeof e&&e&&e.Object===Object&&e,Ke="object"==typeof self&&self&&self.Object===Object&&self,We=ze||Ke||Function("return this")(),Ye=t&&!t.nodeType&&t,$e=Ye&&"object"==typeof o&&o&&!o.nodeType&&o,Qe=$e&&$e.exports===Ye,Xe=Qe&&ze.process,Je=function(){try{var e=$e&&$e.require&&$e.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch(e){}}(),Ze=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,ot=Je&&Je.isSet,rt=Je&&Je.isTypedArray;function it(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,o){for(var r=-1,i=null==e?0:e.length;++r-1}function ht(e,t,n){for(var o=-1,r=null==e?0:e.length;++o-1;);return n}function Ft(e,t){for(var n=e.length;n--&&yt(t,e[n],0)>-1;);return n}function Mt(e,t){for(var n=e.length,o=0;n--;)e[n]===t&&++o;return o}var Pt=xt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Lt=xt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ut(e){return"\\"+qe[e]}function Bt(e){return Pe.test(e)}function jt(e){var t=-1,n=Array(e.size);return e.forEach((function(e,o){n[++t]=[o,e]})),n}function Gt(e,t){return function(n){return e(t(n))}}function qt(e,t){for(var n=-1,o=e.length,r=0,i=[];++n",""":'"',"'":"'"});var Yt=function e(t){var n,o=(t=null==t?We:Yt.defaults(We.Object(),t,Yt.pick(We,Ue))).Array,r=t.Date,he=t.Error,pe=t.Function,me=t.Math,ge=t.Object,fe=t.RegExp,_e=t.String,be=t.TypeError,ve=o.prototype,Ee=pe.prototype,ye=ge.prototype,Se=t["__core-js_shared__"],Te=Ee.toString,we=ye.hasOwnProperty,Ce=0,xe=(n=/[^.]+$/.exec(Se&&Se.keys&&Se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Oe=ye.toString,ke=Te.call(ge),Re=We._,Ae=fe("^"+Te.call(we).replace(K,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ie=Qe?t.Buffer:void 0,Fe=t.Symbol,Pe=t.Uint8Array,qe=Ie?Ie.allocUnsafe:void 0,ze=Gt(ge.getPrototypeOf,ge),Ke=ge.create,Ye=ye.propertyIsEnumerable,$e=ve.splice,Xe=Fe?Fe.isConcatSpreadable:void 0,Je=Fe?Fe.iterator:void 0,bt=Fe?Fe.toStringTag:void 0,xt=function(){try{var e=ei(ge,"defineProperty");return e({},"",{}),e}catch(e){}}(),$t=t.clearTimeout!==We.clearTimeout&&t.clearTimeout,Qt=r&&r.now!==We.Date.now&&r.now,Xt=t.setTimeout!==We.setTimeout&&t.setTimeout,Jt=me.ceil,Zt=me.floor,en=ge.getOwnPropertySymbols,tn=Ie?Ie.isBuffer:void 0,nn=t.isFinite,on=ve.join,rn=Gt(ge.keys,ge),an=me.max,sn=me.min,cn=r.now,ln=t.parseInt,un=me.random,dn=ve.reverse,hn=ei(t,"DataView"),pn=ei(t,"Map"),mn=ei(t,"Promise"),gn=ei(t,"Set"),fn=ei(t,"WeakMap"),_n=ei(ge,"create"),bn=fn&&new fn,vn={},En=Oi(hn),yn=Oi(pn),Sn=Oi(mn),Tn=Oi(gn),wn=Oi(fn),Cn=Fe?Fe.prototype:void 0,xn=Cn?Cn.valueOf:void 0,On=Cn?Cn.toString:void 0;function kn(e){if(Va(e)&&!Na(e)&&!(e instanceof Dn)){if(e instanceof In)return e;if(we.call(e,"__wrapped__"))return ki(e)}return new In(e)}var Rn=function(){function e(){}return function(t){if(!Ha(t))return{};if(Ke)return Ke(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function An(){}function In(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Dn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Qn(e,t,n,o,r,i){var a,s=1&t,l=2&t,h=4&t;if(n&&(a=r?n(e,o,r,i):n(e)),void 0!==a)return a;if(!Ha(e))return e;var S=Na(e);if(S){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&we.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return br(e,a)}else{var N=oi(e),F=N==p||N==m;if(La(e))return hr(e,s);if(N==_||N==c||F&&!r){if(a=l||F?{}:ii(e),!s)return l?function(e,t){return vr(e,ni(e),t)}(e,function(e,t){return e&&vr(t,ys(t),e)}(a,e)):function(e,t){return vr(e,ti(e),t)}(e,Kn(a,e))}else{if(!Ge[N])return r?e:{};a=function(e,t,n){var o=e.constructor;switch(t){case T:return pr(e);case u:case d:return new o(+e);case w:return function(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case C:case x:case O:case k:case R:case A:case"[object Uint8ClampedArray]":case I:case D:return mr(e,n);case g:return new o;case f:case E:return new o(e);case b:return function(e){var t=new e.constructor(e.source,oe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case v:return new o;case y:return r=e,xn?ge(xn.call(r)):{}}var r}(e,N,s)}}i||(i=new Ln);var M=i.get(e);if(M)return M;i.set(e,a),$a(e)?e.forEach((function(o){a.add(Qn(o,t,n,o,e,i))})):za(e)&&e.forEach((function(o,r){a.set(r,Qn(o,t,n,r,e,i))}));var P=S?void 0:(h?l?Wr:Kr:l?ys:Es)(e);return st(P||e,(function(o,r){P&&(o=e[r=o]),Hn(a,r,Qn(o,t,n,r,e,i))})),a}function Xn(e,t,n){var o=n.length;if(null==e)return!o;for(e=ge(e);o--;){var r=n[o],i=t[r],a=e[r];if(void 0===a&&!(r in e)||!i(a))return!1}return!0}function Jn(e,t,n){if("function"!=typeof e)throw new be(i);return Ei((function(){e.apply(void 0,n)}),t)}function Zn(e,t,n,o){var r=-1,i=dt,a=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=pt(t,At(n))),o?(i=ht,a=!1):t.length>=200&&(i=Dt,a=!1,t=new Pn(t));e:for(;++r-1},Fn.prototype.set=function(e,t){var n=this.__data__,o=Vn(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this},Mn.prototype.clear=function(){this.size=0,this.__data__={hash:new Nn,map:new(pn||Fn),string:new Nn}},Mn.prototype.delete=function(e){var t=Jr(this,e).delete(e);return this.size-=t?1:0,t},Mn.prototype.get=function(e){return Jr(this,e).get(e)},Mn.prototype.has=function(e){return Jr(this,e).has(e)},Mn.prototype.set=function(e,t){var n=Jr(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this},Pn.prototype.add=Pn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.clear=function(){this.__data__=new Fn,this.size=0},Ln.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ln.prototype.get=function(e){return this.__data__.get(e)},Ln.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Fn){var o=n.__data__;if(!pn||o.length<199)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new Mn(o)}return n.set(e,t),this.size=n.size,this};var eo=Sr(co),to=Sr(lo,!0);function no(e,t){var n=!0;return eo(e,(function(e,o,r){return n=!!t(e,o,r)})),n}function oo(e,t,n){for(var o=-1,r=e.length;++o0&&n(s)?t>1?io(s,t-1,n,o,r):mt(r,s):o||(r[r.length]=s)}return r}var ao=Tr(),so=Tr(!0);function co(e,t){return e&&ao(e,t,Es)}function lo(e,t){return e&&so(e,t,Es)}function uo(e,t){return ut(t,(function(t){return ja(e[t])}))}function ho(e,t){for(var n=0,o=(t=cr(t,e)).length;null!=e&&nt}function fo(e,t){return null!=e&&we.call(e,t)}function _o(e,t){return null!=e&&t in ge(e)}function bo(e,t,n){for(var r=n?ht:dt,i=e[0].length,a=e.length,s=a,c=o(a),l=1/0,u=[];s--;){var d=e[s];s&&t&&(d=pt(d,At(t))),l=sn(d.length,l),c[s]=!n&&(t||i>=120&&d.length>=120)?new Pn(s&&d):void 0}d=e[0];var h=-1,p=c[0];e:for(;++h=s)return c;var l=n[o];return c*("desc"==l?-1:1)}}return e.index-t.index}(e,t,n)}))}function Fo(e,t,n){for(var o=-1,r=t.length,i={};++o-1;)s!==e&&$e.call(s,c,1),$e.call(e,c,1);return e}function Po(e,t){for(var n=e?t.length:0,o=n-1;n--;){var r=t[n];if(n==o||r!==i){var i=r;si(r)?$e.call(e,r,1):er(e,r)}}return e}function Lo(e,t){return e+Zt(un()*(t-e+1))}function Uo(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Zt(t/2))&&(e+=e)}while(t);return n}function Bo(e,t){return yi(gi(e,t,Ks),e+"")}function jo(e){return Bn(Rs(e))}function Go(e,t){var n=Rs(e);return wi(n,$n(t,0,n.length))}function qo(e,t,n,o){if(!Ha(e))return e;for(var r=-1,i=(t=cr(t,e)).length,a=i-1,s=e;null!=s&&++ri?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=o(i);++r>>1,a=e[i];null!==a&&!Xa(a)&&(n?a<=t:a=200){var l=t?null:Ur(e);if(l)return Ht(l);a=!1,r=Dt,c=new Pn}else c=t?[]:s;e:for(;++o=o?e:Ko(e,t,n)}var dr=$t||function(e){return We.clearTimeout(e)};function hr(e,t){if(t)return e.slice();var n=e.length,o=qe?qe(n):new e.constructor(n);return e.copy(o),o}function pr(e){var t=new e.constructor(e.byteLength);return new Pe(t).set(new Pe(e)),t}function mr(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function gr(e,t){if(e!==t){var n=void 0!==e,o=null===e,r=e==e,i=Xa(e),a=void 0!==t,s=null===t,c=t==t,l=Xa(t);if(!s&&!l&&!i&&e>t||i&&a&&c&&!s&&!l||o&&a&&c||!n&&c||!r)return 1;if(!o&&!i&&!l&&e1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(r--,i):void 0,a&&ci(n[0],n[1],a)&&(i=r<3?void 0:i,r=1),t=ge(t);++o-1?r[i?t[a]:a]:void 0}}function kr(e){return zr((function(t){var n=t.length,o=n,r=In.prototype.thru;for(e&&t.reverse();o--;){var a=t[o];if("function"!=typeof a)throw new be(i);if(r&&!s&&"wrapper"==$r(a))var s=new In([],!0)}for(o=s?o:n;++o1&&v.reverse(),d&&ls))return!1;var l=i.get(e),u=i.get(t);if(l&&u)return l==t&&u==e;var d=-1,h=!0,p=2&n?new Pn:void 0;for(i.set(e,t),i.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[o],t=t.join(n>2?", ":" "),e.replace(X,"{\n/* [wrapped with "+t+"] */\n")}(o,function(e,t){return st(s,(function(n){var o="_."+n[0];t&n[1]&&!dt(e,o)&&e.push(o)})),e.sort()}(function(e){var t=e.match(J);return t?t[1].split(Z):[]}(o),n)))}function Ti(e){var t=0,n=0;return function(){var o=cn(),r=16-(o-n);if(n=o,r>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function wi(e,t){var n=-1,o=e.length,r=o-1;for(t=void 0===t?o:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Yi(e,n)}));function ta(e){var t=kn(e);return t.__chain__=!0,t}function na(e,t){return t(e)}var oa=zr((function(e){var t=e.length,n=t?e[0]:0,o=this.__wrapped__,r=function(t){return Yn(t,e)};return!(t>1||this.__actions__.length)&&o instanceof Dn&&si(n)?((o=o.slice(n,+n+(t?1:0))).__actions__.push({func:na,args:[r],thisArg:void 0}),new In(o,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(r)}));var ra=Er((function(e,t,n){we.call(e,n)?++e[n]:Wn(e,n,1)}));var ia=Or(Di),aa=Or(Ni);function sa(e,t){return(Na(e)?st:eo)(e,Xr(t,3))}function ca(e,t){return(Na(e)?ct:to)(e,Xr(t,3))}var la=Er((function(e,t,n){we.call(e,n)?e[n].push(t):Wn(e,n,[t])}));var ua=Bo((function(e,t,n){var r=-1,i="function"==typeof t,a=Ma(e)?o(e.length):[];return eo(e,(function(e){a[++r]=i?it(t,e,n):vo(e,t,n)})),a})),da=Er((function(e,t,n){Wn(e,n,t)}));function ha(e,t){return(Na(e)?pt:ko)(e,Xr(t,3))}var pa=Er((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ma=Bo((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ci(e,t[0],t[1])?t=[]:n>2&&ci(t[0],t[1],t[2])&&(t=[t[0]]),No(e,io(t,1),[])})),ga=Qt||function(){return We.Date.now()};function fa(e,t,n){return t=n?void 0:t,jr(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function _a(e,t){var n;if("function"!=typeof t)throw new be(i);return e=os(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ba=Bo((function(e,t,n){var o=1;if(n.length){var r=qt(n,Qr(ba));o|=32}return jr(e,o,t,n,r)})),va=Bo((function(e,t,n){var o=3;if(n.length){var r=qt(n,Qr(va));o|=32}return jr(t,o,e,n,r)}));function Ea(e,t,n){var o,r,a,s,c,l,u=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new be(i);function m(t){var n=o,i=r;return o=r=void 0,u=t,s=e.apply(i,n)}function g(e){return u=e,c=Ei(_,t),d?m(e):s}function f(e){var n=e-l;return void 0===l||n>=t||n<0||h&&e-u>=a}function _(){var e=ga();if(f(e))return b(e);c=Ei(_,function(e){var n=t-(e-l);return h?sn(n,a-(e-u)):n}(e))}function b(e){return c=void 0,p&&o?m(e):(o=r=void 0,s)}function v(){var e=ga(),n=f(e);if(o=arguments,r=this,l=e,n){if(void 0===c)return g(l);if(h)return dr(c),c=Ei(_,t),m(l)}return void 0===c&&(c=Ei(_,t)),s}return t=is(t)||0,Ha(n)&&(d=!!n.leading,a=(h="maxWait"in n)?an(is(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),v.cancel=function(){void 0!==c&&dr(c),u=0,o=l=r=c=void 0},v.flush=function(){return void 0===c?s:b(ga())},v}var ya=Bo((function(e,t){return Jn(e,1,t)})),Sa=Bo((function(e,t,n){return Jn(e,is(t)||0,n)}));function Ta(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new be(i);var n=function(){var o=arguments,r=t?t.apply(this,o):o[0],i=n.cache;if(i.has(r))return i.get(r);var a=e.apply(this,o);return n.cache=i.set(r,a)||i,a};return n.cache=new(Ta.Cache||Mn),n}function wa(e){if("function"!=typeof e)throw new be(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ta.Cache=Mn;var Ca=lr((function(e,t){var n=(t=1==t.length&&Na(t[0])?pt(t[0],At(Xr())):pt(io(t,1),At(Xr()))).length;return Bo((function(o){for(var r=-1,i=sn(o.length,n);++r=t})),Da=Eo(function(){return arguments}())?Eo:function(e){return Va(e)&&we.call(e,"callee")&&!Ye.call(e,"callee")},Na=o.isArray,Fa=Ze?At(Ze):function(e){return Va(e)&&mo(e)==T};function Ma(e){return null!=e&&qa(e.length)&&!ja(e)}function Pa(e){return Va(e)&&Ma(e)}var La=tn||ic,Ua=et?At(et):function(e){return Va(e)&&mo(e)==d};function Ba(e){if(!Va(e))return!1;var t=mo(e);return t==h||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Wa(e)}function ja(e){if(!Ha(e))return!1;var t=mo(e);return t==p||t==m||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ga(e){return"number"==typeof e&&e==os(e)}function qa(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ha(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Va(e){return null!=e&&"object"==typeof e}var za=tt?At(tt):function(e){return Va(e)&&oi(e)==g};function Ka(e){return"number"==typeof e||Va(e)&&mo(e)==f}function Wa(e){if(!Va(e)||mo(e)!=_)return!1;var t=ze(e);if(null===t)return!0;var n=we.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Te.call(n)==ke}var Ya=nt?At(nt):function(e){return Va(e)&&mo(e)==b};var $a=ot?At(ot):function(e){return Va(e)&&oi(e)==v};function Qa(e){return"string"==typeof e||!Na(e)&&Va(e)&&mo(e)==E}function Xa(e){return"symbol"==typeof e||Va(e)&&mo(e)==y}var Ja=rt?At(rt):function(e){return Va(e)&&qa(e.length)&&!!je[mo(e)]};var Za=Mr(Oo),es=Mr((function(e,t){return e<=t}));function ts(e){if(!e)return[];if(Ma(e))return Qa(e)?Kt(e):br(e);if(Je&&e[Je])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Je]());var t=oi(e);return(t==g?jt:t==v?Ht:Rs)(e)}function ns(e){return e?(e=is(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function os(e){var t=ns(e),n=t%1;return t==t?n?t-n:t:0}function rs(e){return e?$n(os(e),0,4294967295):0}function is(e){if("number"==typeof e)return e;if(Xa(e))return NaN;if(Ha(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ha(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Y,"");var n=ie.test(e);return n||se.test(e)?Ve(e.slice(2),n?2:8):re.test(e)?NaN:+e}function as(e){return vr(e,ys(e))}function ss(e){return null==e?"":Jo(e)}var cs=yr((function(e,t){if(hi(t)||Ma(t))vr(t,Es(t),e);else for(var n in t)we.call(t,n)&&Hn(e,n,t[n])})),ls=yr((function(e,t){vr(t,ys(t),e)})),us=yr((function(e,t,n,o){vr(t,ys(t),e,o)})),ds=yr((function(e,t,n,o){vr(t,Es(t),e,o)})),hs=zr(Yn);var ps=Bo((function(e,t){e=ge(e);var n=-1,o=t.length,r=o>2?t[2]:void 0;for(r&&ci(t[0],t[1],r)&&(o=1);++n1),t})),vr(e,Wr(e),n),o&&(n=Qn(n,7,Hr));for(var r=t.length;r--;)er(n,t[r]);return n}));var Cs=zr((function(e,t){return null==e?{}:function(e,t){return Fo(e,t,(function(t,n){return fs(e,n)}))}(e,t)}));function xs(e,t){if(null==e)return{};var n=pt(Wr(e),(function(e){return[e]}));return t=Xr(t),Fo(e,n,(function(e,n){return t(e,n[0])}))}var Os=Br(Es),ks=Br(ys);function Rs(e){return null==e?[]:It(e,Es(e))}var As=Cr((function(e,t,n){return t=t.toLowerCase(),e+(n?Is(t):t)}));function Is(e){return Bs(ss(e).toLowerCase())}function Ds(e){return(e=ss(e))&&e.replace(le,Pt).replace(Ne,"")}var Ns=Cr((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Fs=Cr((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Ms=wr("toLowerCase");var Ps=Cr((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ls=Cr((function(e,t,n){return e+(n?" ":"")+Bs(t)}));var Us=Cr((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Bs=wr("toUpperCase");function js(e,t,n){return e=ss(e),void 0===(t=n?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Me)||[]}(e):function(e){return e.match(ee)||[]}(e):e.match(t)||[]}var Gs=Bo((function(e,t){try{return it(e,void 0,t)}catch(e){return Ba(e)?e:new he(e)}})),qs=zr((function(e,t){return st(t,(function(t){t=xi(t),Wn(e,t,ba(e[t],e))})),e}));function Hs(e){return function(){return e}}var Vs=kr(),zs=kr(!0);function Ks(e){return e}function Ws(e){return wo("function"==typeof e?e:Qn(e,1))}var Ys=Bo((function(e,t){return function(n){return vo(n,e,t)}})),$s=Bo((function(e,t){return function(n){return vo(e,n,t)}}));function Qs(e,t,n){var o=Es(t),r=uo(t,o);null!=n||Ha(t)&&(r.length||!o.length)||(n=t,t=e,e=this,r=uo(t,Es(t)));var i=!(Ha(n)&&"chain"in n&&!n.chain),a=ja(e);return st(r,(function(n){var o=t[n];e[n]=o,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__),r=n.__actions__=br(this.__actions__);return r.push({func:o,args:arguments,thisArg:e}),n.__chain__=t,n}return o.apply(e,mt([this.value()],arguments))})})),e}function Xs(){}var Js=Dr(pt),Zs=Dr(lt),ec=Dr(_t);function tc(e){return li(e)?Ct(xi(e)):function(e){return function(t){return ho(t,e)}}(e)}var nc=Fr(),oc=Fr(!0);function rc(){return[]}function ic(){return!1}var ac=Ir((function(e,t){return e+t}),0),sc=Lr("ceil"),cc=Ir((function(e,t){return e/t}),1),lc=Lr("floor");var uc,dc=Ir((function(e,t){return e*t}),1),hc=Lr("round"),pc=Ir((function(e,t){return e-t}),0);return kn.after=function(e,t){if("function"!=typeof t)throw new be(i);return e=os(e),function(){if(--e<1)return t.apply(this,arguments)}},kn.ary=fa,kn.assign=cs,kn.assignIn=ls,kn.assignInWith=us,kn.assignWith=ds,kn.at=hs,kn.before=_a,kn.bind=ba,kn.bindAll=qs,kn.bindKey=va,kn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Na(e)?e:[e]},kn.chain=ta,kn.chunk=function(e,t,n){t=(n?ci(e,t,n):void 0===t)?1:an(os(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var i=0,a=0,s=o(Jt(r/t));ir?0:r+n),(o=void 0===o||o>r?r:os(o))<0&&(o+=r),o=n>o?0:rs(o);n>>0)?(e=ss(e))&&("string"==typeof t||null!=t&&!Ya(t))&&!(t=Jo(t))&&Bt(e)?ur(Kt(e),0,n):e.split(t,n):[]},kn.spread=function(e,t){if("function"!=typeof e)throw new be(i);return t=null==t?0:an(os(t),0),Bo((function(n){var o=n[t],r=ur(n,0,t);return o&&mt(r,o),it(e,this,r)}))},kn.tail=function(e){var t=null==e?0:e.length;return t?Ko(e,1,t):[]},kn.take=function(e,t,n){return e&&e.length?Ko(e,0,(t=n||void 0===t?1:os(t))<0?0:t):[]},kn.takeRight=function(e,t,n){var o=null==e?0:e.length;return o?Ko(e,(t=o-(t=n||void 0===t?1:os(t)))<0?0:t,o):[]},kn.takeRightWhile=function(e,t){return e&&e.length?nr(e,Xr(t,3),!1,!0):[]},kn.takeWhile=function(e,t){return e&&e.length?nr(e,Xr(t,3)):[]},kn.tap=function(e,t){return t(e),e},kn.throttle=function(e,t,n){var o=!0,r=!0;if("function"!=typeof e)throw new be(i);return Ha(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),Ea(e,t,{leading:o,maxWait:t,trailing:r})},kn.thru=na,kn.toArray=ts,kn.toPairs=Os,kn.toPairsIn=ks,kn.toPath=function(e){return Na(e)?pt(e,xi):Xa(e)?[e]:br(Ci(ss(e)))},kn.toPlainObject=as,kn.transform=function(e,t,n){var o=Na(e),r=o||La(e)||Ja(e);if(t=Xr(t,4),null==n){var i=e&&e.constructor;n=r?o?new i:[]:Ha(e)&&ja(i)?Rn(ze(e)):{}}return(r?st:co)(e,(function(e,o,r){return t(n,e,o,r)})),n},kn.unary=function(e){return fa(e,1)},kn.union=Vi,kn.unionBy=zi,kn.unionWith=Ki,kn.uniq=function(e){return e&&e.length?Zo(e):[]},kn.uniqBy=function(e,t){return e&&e.length?Zo(e,Xr(t,2)):[]},kn.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zo(e,void 0,t):[]},kn.unset=function(e,t){return null==e||er(e,t)},kn.unzip=Wi,kn.unzipWith=Yi,kn.update=function(e,t,n){return null==e?e:tr(e,t,sr(n))},kn.updateWith=function(e,t,n,o){return o="function"==typeof o?o:void 0,null==e?e:tr(e,t,sr(n),o)},kn.values=Rs,kn.valuesIn=function(e){return null==e?[]:It(e,ys(e))},kn.without=$i,kn.words=js,kn.wrap=function(e,t){return xa(sr(t),e)},kn.xor=Qi,kn.xorBy=Xi,kn.xorWith=Ji,kn.zip=Zi,kn.zipObject=function(e,t){return ir(e||[],t||[],Hn)},kn.zipObjectDeep=function(e,t){return ir(e||[],t||[],qo)},kn.zipWith=ea,kn.entries=Os,kn.entriesIn=ks,kn.extend=ls,kn.extendWith=us,Qs(kn,kn),kn.add=ac,kn.attempt=Gs,kn.camelCase=As,kn.capitalize=Is,kn.ceil=sc,kn.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=is(n))==n?n:0),void 0!==t&&(t=(t=is(t))==t?t:0),$n(is(e),t,n)},kn.clone=function(e){return Qn(e,4)},kn.cloneDeep=function(e){return Qn(e,5)},kn.cloneDeepWith=function(e,t){return Qn(e,5,t="function"==typeof t?t:void 0)},kn.cloneWith=function(e,t){return Qn(e,4,t="function"==typeof t?t:void 0)},kn.conformsTo=function(e,t){return null==t||Xn(e,t,Es(t))},kn.deburr=Ds,kn.defaultTo=function(e,t){return null==e||e!=e?t:e},kn.divide=cc,kn.endsWith=function(e,t,n){e=ss(e),t=Jo(t);var o=e.length,r=n=void 0===n?o:$n(os(n),0,o);return(n-=t.length)>=0&&e.slice(n,r)==t},kn.eq=Ra,kn.escape=function(e){return(e=ss(e))&&B.test(e)?e.replace(L,Lt):e},kn.escapeRegExp=function(e){return(e=ss(e))&&W.test(e)?e.replace(K,"\\$&"):e},kn.every=function(e,t,n){var o=Na(e)?lt:no;return n&&ci(e,t,n)&&(t=void 0),o(e,Xr(t,3))},kn.find=ia,kn.findIndex=Di,kn.findKey=function(e,t){return vt(e,Xr(t,3),co)},kn.findLast=aa,kn.findLastIndex=Ni,kn.findLastKey=function(e,t){return vt(e,Xr(t,3),lo)},kn.floor=lc,kn.forEach=sa,kn.forEachRight=ca,kn.forIn=function(e,t){return null==e?e:ao(e,Xr(t,3),ys)},kn.forInRight=function(e,t){return null==e?e:so(e,Xr(t,3),ys)},kn.forOwn=function(e,t){return e&&co(e,Xr(t,3))},kn.forOwnRight=function(e,t){return e&&lo(e,Xr(t,3))},kn.get=gs,kn.gt=Aa,kn.gte=Ia,kn.has=function(e,t){return null!=e&&ri(e,t,fo)},kn.hasIn=fs,kn.head=Mi,kn.identity=Ks,kn.includes=function(e,t,n,o){e=Ma(e)?e:Rs(e),n=n&&!o?os(n):0;var r=e.length;return n<0&&(n=an(r+n,0)),Qa(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&yt(e,t,n)>-1},kn.indexOf=function(e,t,n){var o=null==e?0:e.length;if(!o)return-1;var r=null==n?0:os(n);return r<0&&(r=an(o+r,0)),yt(e,t,r)},kn.inRange=function(e,t,n){return t=ns(t),void 0===n?(n=t,t=0):n=ns(n),function(e,t,n){return e>=sn(t,n)&&e=-9007199254740991&&e<=9007199254740991},kn.isSet=$a,kn.isString=Qa,kn.isSymbol=Xa,kn.isTypedArray=Ja,kn.isUndefined=function(e){return void 0===e},kn.isWeakMap=function(e){return Va(e)&&oi(e)==S},kn.isWeakSet=function(e){return Va(e)&&"[object WeakSet]"==mo(e)},kn.join=function(e,t){return null==e?"":on.call(e,t)},kn.kebabCase=Ns,kn.last=Bi,kn.lastIndexOf=function(e,t,n){var o=null==e?0:e.length;if(!o)return-1;var r=o;return void 0!==n&&(r=(r=os(n))<0?an(o+r,0):sn(r,o-1)),t==t?function(e,t,n){for(var o=n+1;o--;)if(e[o]===t)return o;return o}(e,t,r):Et(e,Tt,r,!0)},kn.lowerCase=Fs,kn.lowerFirst=Ms,kn.lt=Za,kn.lte=es,kn.max=function(e){return e&&e.length?oo(e,Ks,go):void 0},kn.maxBy=function(e,t){return e&&e.length?oo(e,Xr(t,2),go):void 0},kn.mean=function(e){return wt(e,Ks)},kn.meanBy=function(e,t){return wt(e,Xr(t,2))},kn.min=function(e){return e&&e.length?oo(e,Ks,Oo):void 0},kn.minBy=function(e,t){return e&&e.length?oo(e,Xr(t,2),Oo):void 0},kn.stubArray=rc,kn.stubFalse=ic,kn.stubObject=function(){return{}},kn.stubString=function(){return""},kn.stubTrue=function(){return!0},kn.multiply=dc,kn.nth=function(e,t){return e&&e.length?Do(e,os(t)):void 0},kn.noConflict=function(){return We._===this&&(We._=Re),this},kn.noop=Xs,kn.now=ga,kn.pad=function(e,t,n){e=ss(e);var o=(t=os(t))?zt(e):0;if(!t||o>=t)return e;var r=(t-o)/2;return Nr(Zt(r),n)+e+Nr(Jt(r),n)},kn.padEnd=function(e,t,n){e=ss(e);var o=(t=os(t))?zt(e):0;return t&&ot){var o=e;e=t,t=o}if(n||e%1||t%1){var r=un();return sn(e+r*(t-e+He("1e-"+((r+"").length-1))),t)}return Lo(e,t)},kn.reduce=function(e,t,n){var o=Na(e)?gt:Ot,r=arguments.length<3;return o(e,Xr(t,4),n,r,eo)},kn.reduceRight=function(e,t,n){var o=Na(e)?ft:Ot,r=arguments.length<3;return o(e,Xr(t,4),n,r,to)},kn.repeat=function(e,t,n){return t=(n?ci(e,t,n):void 0===t)?1:os(t),Uo(ss(e),t)},kn.replace=function(){var e=arguments,t=ss(e[0]);return e.length<3?t:t.replace(e[1],e[2])},kn.result=function(e,t,n){var o=-1,r=(t=cr(t,e)).length;for(r||(r=1,e=void 0);++o9007199254740991)return[];var n=4294967295,o=sn(e,4294967295);e-=4294967295;for(var r=Rt(o,t=Xr(t));++n=i)return e;var s=n-zt(o);if(s<1)return o;var c=a?ur(a,0,s).join(""):e.slice(0,s);if(void 0===r)return c+o;if(a&&(s+=c.length-s),Ya(r)){if(e.slice(s).search(r)){var l,u=c;for(r.global||(r=fe(r.source,ss(oe.exec(r))+"g")),r.lastIndex=0;l=r.exec(u);)var d=l.index;c=c.slice(0,void 0===d?s:d)}}else if(e.indexOf(Jo(r),s)!=s){var h=c.lastIndexOf(r);h>-1&&(c=c.slice(0,h))}return c+o},kn.unescape=function(e){return(e=ss(e))&&U.test(e)?e.replace(P,Wt):e},kn.uniqueId=function(e){var t=++Ce;return ss(e)+t},kn.upperCase=Us,kn.upperFirst=Bs,kn.each=sa,kn.eachRight=ca,kn.first=Mi,Qs(kn,(uc={},co(kn,(function(e,t){we.call(kn.prototype,t)||(uc[t]=e)})),uc),{chain:!1}),kn.VERSION="4.17.19",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){kn[e].placeholder=kn})),st(["drop","take"],(function(e,t){Dn.prototype[e]=function(n){n=void 0===n?1:an(os(n),0);var o=this.__filtered__&&!t?new Dn(this):this.clone();return o.__filtered__?o.__takeCount__=sn(n,o.__takeCount__):o.__views__.push({size:sn(n,4294967295),type:e+(o.__dir__<0?"Right":"")}),o},Dn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var n=t+1,o=1==n||3==n;Dn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Xr(e,3),type:n}),t.__filtered__=t.__filtered__||o,t}})),st(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Dn.prototype[e]=function(){return this[n](1).value()[0]}})),st(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Dn.prototype[e]=function(){return this.__filtered__?new Dn(this):this[n](1)}})),Dn.prototype.compact=function(){return this.filter(Ks)},Dn.prototype.find=function(e){return this.filter(e).head()},Dn.prototype.findLast=function(e){return this.reverse().find(e)},Dn.prototype.invokeMap=Bo((function(e,t){return"function"==typeof e?new Dn(this):this.map((function(n){return vo(n,e,t)}))})),Dn.prototype.reject=function(e){return this.filter(wa(Xr(e)))},Dn.prototype.slice=function(e,t){e=os(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Dn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=os(t))<0?n.dropRight(-t):n.take(t-e)),n)},Dn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Dn.prototype.toArray=function(){return this.take(4294967295)},co(Dn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),o=/^(?:head|last)$/.test(t),r=kn[o?"take"+("last"==t?"Right":""):t],i=o||/^find/.test(t);r&&(kn.prototype[t]=function(){var t=this.__wrapped__,a=o?[1]:arguments,s=t instanceof Dn,c=a[0],l=s||Na(t),u=function(e){var t=r.apply(kn,mt([e],a));return o&&d?t[0]:t};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=i&&!d,m=s&&!h;if(!i&&l){t=m?t:new Dn(this);var g=e.apply(t,a);return g.__actions__.push({func:na,args:[u],thisArg:void 0}),new In(g,d)}return p&&m?e.apply(this,a):(g=this.thru(u),p?o?g.value()[0]:g.value():g)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ve[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",o=/^(?:pop|shift)$/.test(e);kn.prototype[e]=function(){var e=arguments;if(o&&!this.__chain__){var r=this.value();return t.apply(Na(r)?r:[],e)}return this[n]((function(n){return t.apply(Na(n)?n:[],e)}))}})),co(Dn.prototype,(function(e,t){var n=kn[t];if(n){var o=n.name+"";we.call(vn,o)||(vn[o]=[]),vn[o].push({name:t,func:n})}})),vn[Rr(void 0,2).name]=[{name:"wrapper",func:void 0}],Dn.prototype.clone=function(){var e=new Dn(this.__wrapped__);return e.__actions__=br(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=br(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=br(this.__views__),e},Dn.prototype.reverse=function(){if(this.__filtered__){var e=new Dn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Dn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Na(e),o=t<0,r=n?e.length:0,i=function(e,t,n){var o=-1,r=n.length;for(;++o=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},kn.prototype.plant=function(e){for(var t,n=this;n instanceof An;){var o=ki(n);o.__index__=0,o.__values__=void 0,t?r.__wrapped__=o:t=o;var r=o;n=n.__wrapped__}return r.__wrapped__=e,t},kn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Dn){var t=e;return this.__actions__.length&&(t=new Dn(this)),(t=t.reverse()).__actions__.push({func:na,args:[Hi],thisArg:void 0}),new In(t,this.__chain__)}return this.thru(Hi)},kn.prototype.toJSON=kn.prototype.valueOf=kn.prototype.value=function(){return or(this.__wrapped__,this.__actions__)},kn.prototype.first=kn.prototype.head,Je&&(kn.prototype[Je]=function(){return this}),kn}();We._=Yt,void 0===(r=function(){return Yt}.call(t,n,t,o))||(o.exports=r)}).call(this)}).call(this,n(5),n(224)(e))},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var o=n(827),r=n(828);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=v,t.resolve=function(e,t){return v(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?v(e,!1,!0).resolveObject(t):t},t.format=function(e){r.isString(e)&&(e=v(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),d=["%","/","?",";","#"].concat(u),h=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},f={javascript:!0,"javascript:":!0},_={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(2);function v(e,t,n){if(e&&r.isObject(e)&&e instanceof i)return e;var o=new i;return o.parse(e,t,n),o}i.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i127?N+="x":N+=D[F];if(!N.match(p)){var P=A.slice(0,O),L=A.slice(O+1),U=D.match(m);U&&(P.push(U[1]),L.unshift(U[2])),L.length&&(v="/"+L.join(".")+v),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=o.toASCII(this.hostname));var B=this.port?":"+this.port:"",j=this.hostname||"";this.host=j+B,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!g[S])for(O=0,I=u.length;O0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift());return n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!T.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=T.slice(-1)[0],x=(n.host||e.host||T.length>1)&&("."===C||".."===C)||""===C,O=0,k=T.length;k>=0;k--)"."===(C=T[k])?T.splice(k,1):".."===C?(T.splice(k,1),O++):O&&(T.splice(k,1),O--);if(!y&&!S)for(;O--;O)T.unshift("..");!y||""===T[0]||T[0]&&"/"===T[0].charAt(0)||T.unshift(""),x&&"/"!==T.join("/").substr(-1)&&T.push("");var R,A=""===T[0]||T[0]&&"/"===T[0].charAt(0);w&&(n.hostname=n.host=A?"":T.length?T.shift():"",(R=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift()));return(y=y||n.host&&T.length)&&!A&&T.unshift(""),T.length?n.pathname=T.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return m})),n.d(t,"d",(function(){return g})),n.d(t,"g",(function(){return f})),n.d(t,"f",(function(){return _})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return v})),n.d(t,"i",(function(){return E})),n.d(t,"j",(function(){return y})),n.d(t,"b",(function(){return S})),n.d(t,"h",(function(){return w}));var o=n(86),r=n(995),i=n.n(r),a=n(1),s=n(592),c=n(423),l=n(82),u=n.n(l);class d extends c.b{constructor(e){if(super(),u()(this,"_elementUrl",void 0),this._elementUrl=e,!this._elementUrl.startsWith("http:")&&!this._elementUrl.startsWith("https:"))throw new Error("Element prefix URL does not appear to be an HTTP(S) URL")}forEvent(e,t,n){return`${this._elementUrl}/#/room/${e}/${t}${this.encodeServerCandidates(n)}`}forRoom(e,t){return`${this._elementUrl}/#/room/${e}${this.encodeServerCandidates(t)}`}forUser(e){return`${this._elementUrl}/#/user/${e}`}forGroup(e){return`${this._elementUrl}/#/group/${e}`}forEntity(e){if("!"===e[0]||"#"===e[0])return this.forRoom(e);if("@"===e[0])return this.forUser(e);if("+"===e[0])return this.forGroup(e);throw new Error("Unrecognized entity")}isPermalinkHost(e){const t=new URL(this._elementUrl);return e===(t.host||t.hostname)}encodeServerCandidates(e){return e&&0!==e.length?"?via="+e.map(e=>encodeURIComponent(e)).join("&via="):""}parsePermalink(e){if(!e||!e.startsWith(this._elementUrl))throw new Error("Does not appear to be a permalink");const t=e.substring((this._elementUrl+"/#/").length).split("/");if(t.length<2)throw new Error("URL is missing parts");const n=t[0],o=t[1];if("user"===n)return c.a.forUser(o);if("group"===n)return c.a.forGroup(o);if("room"===n){if(2===t.length)return c.a.forRoom(o,[]);const e=(t.length>2?t.slice(2).join("/"):"").split("?"),n=e[0],r=(e.length>1?e[1]:"").split("via=").filter(e=>!!e);return c.a.forEvent(o,n,r)}throw new Error("Unknown entity type in permalink")}}var h=n(424),p=n(92);class m{constructor(e,t=null){if(this._room=e,this._roomId=e?e.roomId:t,this._highestPlUserId=null,this._populationMap=null,this._bannedHostsRegexps=null,this._allowedHostsRegexps=null,this._serverCandidates=null,this._started=!1,!this._roomId)throw new Error("Failed to resolve a roomId for the permalink creator to use");this.onMembership=this.onMembership.bind(this),this.onRoomState=this.onRoomState.bind(this)}load(){this._room&&this._room.currentState?(this._updateAllowedServers(),this._updateHighestPlUser(),this._updatePopulationMap(),this._updateServerCandidates()):console.warn("Tried to load a permalink creator with no room state")}start(){this.load(),this._room.on("RoomMember.membership",this.onMembership),this._room.on("RoomState.events",this.onRoomState),this._started=!0}stop(){this._room.removeListener("RoomMember.membership",this.onMembership),this._room.removeListener("RoomState.events",this.onRoomState),this._started=!1}isStarted(){return this._started}forEvent(e){return T().forEvent(this._roomId,e,this._serverCandidates)}forShareableRoom(){if(this._room){const e=this._room.getCanonicalAlias();if(e)return T().forRoom(e,this._serverCandidates)}return T().forRoom(this._roomId,this._serverCandidates)}forRoom(){return T().forRoom(this._roomId,this._serverCandidates)}onRoomState(e){switch(e.getType()){case"m.room.server_acl":return this._updateAllowedServers(),this._updateHighestPlUser(),this._updatePopulationMap(),void this._updateServerCandidates();case"m.room.power_levels":return this._updateHighestPlUser(),void this._updateServerCandidates()}}onMembership(e,t,n){const o=t.userId,r=t.membership,i=C(o),a="join"!==n&&"join"===r;"join"===n&&"join"!==r?this._populationMap[i]--:a&&this._populationMap[i]++,this._updateHighestPlUser(),this._updateServerCandidates()}_updateHighestPlUser(){const e=this._room.currentState.getStateEvents("m.room.power_levels","");if(e){const t=e.getContent();if(t){const e=t.users;if(e){const t=Object.entries(e).filter(([e])=>{const t=this._room.getMember(e);if(!t||"join"!==t.membership)return!1;const n=C(e);return!k(n)&&!O(n,this._bannedHostsRegexps)&&O(n,this._allowedHostsRegexps)}).reduce((e,t)=>t[1]>e[1]?t:e,[null,0]),[n,o]=t;if(null!==n&&o>=50)return void(this._highestPlUserId=n)}}}this._highestPlUserId=null}_updateAllowedServers(){const e=[];let t=[new RegExp(".*")];if(this._room.currentState){const n=this._room.currentState.getStateEvents("m.room.server_acl","");if(n&&n.getContent()){const o=e=>new RegExp("^"+a.n(e,!1)+"$");(n.getContent().deny||[]).forEach(t=>e.push(o(t)));const r=n.getContent().allow||[];t=[],r.forEach(e=>t.push(o(e)))}}this._bannedHostsRegexps=e,this._allowedHostsRegexps=t}_updatePopulationMap(){const e={};for(const t of this._room.getJoinedMembers()){const n=C(t.userId);e[n]||(e[n]=0),e[n]++}this._populationMap=e}_updateServerCandidates(){let e=[];this._highestPlUserId&&e.push(C(this._highestPlUserId));const t=Object.keys(this._populationMap).sort((e,t)=>this._populationMap[t]-this._populationMap[e]).filter(t=>!e.includes(t)&&!k(t)&&!O(t,this._bannedHostsRegexps)&&O(t,this._allowedHostsRegexps)).slice(0,3-e.length);e=e.concat(t),this._serverCandidates=e}}function g(e){return T().forEntity(e)}function f(e){return T().forUser(e)}function _(e){if(!e)throw new Error("can't permalink a falsey roomId");if("!"!==e[0])return T().forRoom(e,[]);const t=o.a.get().getRoom(e);if(!t)return T().forRoom(e,[]);const n=new m(t);return n.load(),n.forRoom()}function b(e){return T().forGroup(e)}function v(e){return!!(new s.b).isPermalinkHost(e)||T().isPermalinkHost(e)}function E(e){return e?"#"===e[0]||"!"===e[0]?_(e):"@"===e[0]?f(e):"+"===e[0]?b(e):y(e):null}function y(e){if(!e.startsWith("http:")&&!e.startsWith("https:"))return e;const t=e.match(h.a.ELEMENT_URL_PATTERN);if(t)return t[1];try{const t=w(e);if(t)if(t.roomIdOrAlias){const n=t.eventId?"/"+t.eventId:"";e=`#/room/${t.roomIdOrAlias}${n}`,t.viaServers.length>0&&(e+=(new s.b).encodeServerCandidates(t.viaServers))}else t.groupId?e="#/group/"+t.groupId:t.userId&&(e="#/user/"+t.userId)}catch(e){}return e}function S(e){try{let t=w(e);if(!t){const n=e.match(h.a.ELEMENT_URL_PATTERN);if(n){const e=new d("http://localhost"),o=n[1].split("#").slice(1).join("#");t=e.parsePermalink("http://localhost/#"+o)}}if(!t)return null;if(t.userId)return t.userId;if(t.groupId)return t.groupId;if(t.roomIdOrAlias)return t.roomIdOrAlias}catch(e){}return null}function T(){const e=p.a.get().permalinkPrefix;return e&&e!==s.a?new d(e):new s.b}function w(e){const t=p.a.get().permalinkPrefix;return e.startsWith(s.a)?(new s.b).parsePermalink(e):t&&e.startsWith(t)?new d(t).parsePermalink(e):null}function C(e){return e.split(":").splice(1).join(":")}function x(e){return e?new URL("https://"+e).hostname:null}function O(e,t){if(!(e=x(e)))return!0;if(t.length>0&&!t[0].test)throw new Error(t[0]);return t.filter(t=>t.test(e)).length>0}function k(e){return!!(e=x(e))&&(e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),i()(e))}},function(e,t,n){"use strict";var o=n(82),r=n.n(o),i=n(6),a=n.n(i),s=n(323),c=n(140),l=n(86),u=n(87);function d(e){return e.chunk.map(e=>Object(s.c)(e))}function h(e){return e.chunk.map(e=>Object(s.d)(e))}let p=0;const m=[];async function g(e){p>=3&&await new Promise((e,t)=>{m.push(e)}),p++;try{return await e()}catch(e){throw e}finally{p--,function(){const e=m.shift();"function"==typeof e&&e()}()}}class f extends a.a{constructor(){super(),r()(this,"STATE_KEY",{GroupMembers:"GroupMembers",GroupInvitedMembers:"GroupInvitedMembers",Summary:"Summary",GroupRooms:"GroupRooms"}),this._state={},this._state[this.STATE_KEY.Summary]={},this._state[this.STATE_KEY.GroupRooms]={},this._state[this.STATE_KEY.GroupMembers]={},this._state[this.STATE_KEY.GroupInvitedMembers]={},this._ready={},this._ready[this.STATE_KEY.Summary]={},this._ready[this.STATE_KEY.GroupRooms]={},this._ready[this.STATE_KEY.GroupMembers]={},this._ready[this.STATE_KEY.GroupInvitedMembers]={},this._fetchResourcePromise={[this.STATE_KEY.Summary]:{},[this.STATE_KEY.GroupRooms]:{},[this.STATE_KEY.GroupMembers]:{},[this.STATE_KEY.GroupInvitedMembers]:{}},this._resourceFetcher={[this.STATE_KEY.Summary]:e=>g(()=>l.a.get().getGroupSummary(e)),[this.STATE_KEY.GroupRooms]:e=>g(()=>l.a.get().getGroupRooms(e).then(h)),[this.STATE_KEY.GroupMembers]:e=>g(()=>l.a.get().getGroupUsers(e).then(d)),[this.STATE_KEY.GroupInvitedMembers]:e=>g(()=>l.a.get().getGroupInvitedUsers(e).then(d))}}_fetchResource(e,t){if(this._fetchResourcePromise[e][t])return;const n=this._resourceFetcher[e](t);return this._fetchResourcePromise[e][t]=n,n.then(n=>{this._state[e][t]=n,this._ready[e][t]=!0,this._notifyListeners()}).catch(n=>{e===this.STATE_KEY.GroupInvitedMembers&&403===n.httpStatus||(console.error(`Failed to get resource ${e} for ${t}`,n),this.emit("error",n,t,e))}).finally(()=>{delete this._fetchResourcePromise[e][t]}),n}_notifyListeners(){this.emit("update")}registerListener(e,t){return this.on("update",t),this.emit("update"),e&&(this._fetchResource(this.STATE_KEY.Summary,e),this._fetchResource(this.STATE_KEY.GroupRooms,e),this._fetchResource(this.STATE_KEY.GroupMembers,e),this._fetchResource(this.STATE_KEY.GroupInvitedMembers,e)),{unregister:()=>{this.unregisterListener(t)}}}unregisterListener(e){this.removeListener("update",e)}isStateReady(e,t){return this._ready[t][e]}getGroupIdsForRoomId(e){return Object.keys(this._state[this.STATE_KEY.GroupRooms]).filter(t=>(this._state[this.STATE_KEY.GroupRooms][t]||[]).some(t=>t.roomId===e))}getSummary(e){return this._state[this.STATE_KEY.Summary][e]||{}}getGroupRooms(e){return this._state[this.STATE_KEY.GroupRooms][e]||[]}getGroupMembers(e){return this._state[this.STATE_KEY.GroupMembers][e]||[]}getGroupInvitedMembers(e){return this._state[this.STATE_KEY.GroupInvitedMembers][e]||[]}getGroupPublicity(e){return(this._state[this.STATE_KEY.Summary][e]||{}).user?(this._state[this.STATE_KEY.Summary][e]||{}).user.is_publicised:null}isUserPrivileged(e){return(this._state[this.STATE_KEY.Summary][e]||{}).user?(this._state[this.STATE_KEY.Summary][e]||{}).user.is_privileged:null}refreshGroupRooms(e){return this._fetchResource(this.STATE_KEY.GroupRooms,e)}refreshGroupMembers(e){return this._fetchResource(this.STATE_KEY.GroupMembers,e)}addRoomToGroup(e,t,n){return l.a.get().addRoomToGroup(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}updateGroupRoomVisibility(e,t,n){return l.a.get().updateGroupRoomVisibility(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}removeRoomFromGroup(e,t){return l.a.get().removeRoomFromGroup(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}inviteUserToGroup(e,t){return l.a.get().inviteUserToGroup(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}acceptGroupInvite(e){return l.a.get().acceptGroupInvite(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}joinGroup(e){return l.a.get().joinGroup(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}leaveGroup(e){return u.a.dispatch({action:"deselect_tags",tag:e}),l.a.get().leaveGroup(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e))}addRoomToGroupSummary(e,t,n){return l.a.get().addRoomToGroupSummary(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}addUserToGroupSummary(e,t,n){return l.a.get().addUserToGroupSummary(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}removeRoomFromGroupSummary(e,t){return l.a.get().removeRoomFromGroupSummary(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}removeUserFromGroupSummary(e,t){return l.a.get().removeUserFromGroupSummary(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}setGroupPublicity(e,t){return l.a.get().setGroupPublicity(e,t).then(()=>{c.a.invalidatePublicisedGroups(l.a.get().credentials.userId)}).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}}let _=null;_||(_=new f),t.a=_},function(e,t,n){"use strict";var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(83),c=n(104),l=n(92),u=n(89),d=n(85);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t"):e.replace(m,"#/$1"):(console.warn(`Unexpected hash location "${e}"`),"#/")}(t)}const _={"App Platform":{id:1,expl:Object(s.b)("The platform you're on"),example:"Electron Platform"},"App Version":{id:2,expl:Object(s.b)("The version of %(brand)s"),getTextVariables:()=>({brand:l.a.get().brand}),example:"15.0.0"},"User Type":{id:3,expl:Object(s.b)("Whether or not you're logged in (we don't record your username)"),example:"Logged In"},"Chosen Language":{id:4,expl:Object(s.b)("Your language of choice"),example:"en"},Instance:{id:5,expl:Object(s.b)("Which officially provided instance you are using, if any"),example:"app"},"RTE: Uses Richtext Mode":{id:6,expl:Object(s.b)("Whether or not you're using the Richtext mode of the Rich Text Editor"),example:"off"},"Homeserver URL":{id:7,expl:Object(s.b)("Your homeserver's URL"),example:"https://matrix.org"},"Touch Input":{id:8,expl:Object(s.b)("Whether you're using %(brand)s on a device where touch is the primary input mechanism"),getTextVariables:()=>({brand:l.a.get().brand}),example:"false"},Breadcrumbs:{id:9,expl:Object(s.b)("Whether or not you're using the 'breadcrumbs' feature (avatars above the room list)"),example:"disabled"},"Installed PWA":{id:10,expl:Object(s.b)("Whether you're using %(brand)s as an installed Progressive Web App"),getTextVariables:()=>({brand:l.a.get().brand}),example:"false"}};const b="mx_Riot_Analytics_uid";class v{constructor(){r()(this,"baseUrl",null),r()(this,"siteId",null),r()(this,"visitVariables",{}),r()(this,"firstPage",!0),r()(this,"heartbeatIntervalID",null),r()(this,"creationTs",void 0),r()(this,"lastVisitTs",void 0),r()(this,"visitCount",void 0),r()(this,"showDetailsModal",()=>{let e=[];e=this.disabled?Object.keys(_).map(e=>[e,Object(s.a)("e.g. %(exampleValue)s",{exampleValue:_[e].example})]):Object.values(this.visitVariables);const t=`${window.screen.width}x${window.screen.height}`,n=[{expl:Object(s.b)("Every page you use in the app"),value:Object(s.a)("e.g. ",{},{CurrentPageURL:f})},{expl:Object(s.b)("Your user agent"),value:navigator.userAgent},{expl:Object(s.b)("Your device resolution"),value:t}],o=d.getComponent("dialogs.ErrorDialog");u.a.createTrackedDialog("Analytics Details","",o,{title:Object(s.a)("Analytics"),description:a.a.createElement("div",{className:"mx_AnalyticsModal"},a.a.createElement("div",null,Object(s.a)("The information being sent to us to help make %(brand)s better includes:",{brand:l.a.get().brand})),a.a.createElement("table",null,e.map(e=>a.a.createElement("tr",{key:e[0]},a.a.createElement("td",null,Object(s.a)(_[e[0]].expl,_[e[0]].getTextVariables?_[e[0]].getTextVariables():null)),void 0!==e[1]&&a.a.createElement("td",null,a.a.createElement("code",null,e[1])))),n.map((e,t)=>a.a.createElement("tr",{key:t},a.a.createElement("td",null,Object(s.a)(e.expl)),a.a.createElement("td",null,a.a.createElement("code",null,e.value))))),a.a.createElement("div",null,Object(s.a)("Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.")))})}),this.creationTs=localStorage&&localStorage.getItem("mx_Riot_Analytics_cts"),!this.creationTs&&localStorage&&localStorage.setItem("mx_Riot_Analytics_cts",this.creationTs=String((new Date).getTime())),this.lastVisitTs=localStorage&&localStorage.getItem("mx_Riot_Analytics_lvts"),this.visitCount=localStorage&&localStorage.getItem("mx_Riot_Analytics_vc")||"0",this.visitCount=String(parseInt(this.visitCount,10)+1),localStorage&&localStorage.setItem("mx_Riot_Analytics_vc",this.visitCount)}get disabled(){return!this.baseUrl}canEnable(){const e=l.a.get();return"1"!==navigator.doNotTrack&&e&&e.piwik&&e.piwik.url&&e.piwik.siteId}async enable(){if(!this.disabled)return;if(!this.canEnable())return;const e=l.a.get();this.baseUrl=new URL("piwik.php",e.piwik.url),this.baseUrl.searchParams.set("rec","1"),this.baseUrl.searchParams.set("idsite",e.piwik.siteId),this.baseUrl.searchParams.set("apiv","1"),this.baseUrl.searchParams.set("send_image","0"),this.baseUrl.searchParams.set("_id",function(){try{let e=localStorage&&localStorage.getItem(b);return!e&&localStorage&&localStorage.setItem(b,e=[...Array(16)].map(()=>Math.random().toString(16)[2]).join("")),e}catch(e){return console.error("Analytics error: ",e),""}}()),this.baseUrl.searchParams.set("_idts",this.creationTs),this.baseUrl.searchParams.set("_idvc",this.visitCount),this.lastVisitTs&&this.baseUrl.searchParams.set("_viewts",this.lastVisitTs);const t=c.a.get();this.setVisitVariable("App Platform",t.getHumanReadableName());try{this.setVisitVariable("App Version",await t.getAppVersion())}catch(e){this.setVisitVariable("App Version","unknown")}this.setVisitVariable("Chosen Language",Object(s.d)());const n=window.location.hostname;"riot.im"===n?this.setVisitVariable("Instance",window.location.pathname):n.endsWith(".element.io")&&this.setVisitVariable("Instance",n.replace(".element.io",""));let o="unknown";try{o=String(window.matchMedia("(display-mode: standalone)").matches)}catch(e){}this.setVisitVariable("Installed PWA",o);let r="unknown";try{r=String(window.matchMedia("(pointer: coarse)").matches)}catch(e){}this.setVisitVariable("Touch Input",r),this.heartbeatIntervalID=window.setInterval(this.ping.bind(this),3e4)}disable(){this.disabled||(this.trackEvent("Analytics","opt-out"),window.clearInterval(this.heartbeatIntervalID),this.baseUrl=null,this.visitVariables={},localStorage.removeItem(b),localStorage.removeItem("mx_Riot_Analytics_cts"),localStorage.removeItem("mx_Riot_Analytics_vc"),localStorage.removeItem("mx_Riot_Analytics_lvts"))}async _track(e){if(this.disabled)return;const t=new Date,n=p(p({},e),{},{url:f(),_cvar:JSON.stringify(this.visitVariables),res:`${window.screen.width}x${window.screen.height}`,rand:String(Math.random()).slice(2,8),h:t.getHours(),m:t.getMinutes(),s:t.getSeconds()}),o=new URL(this.baseUrl.toString());for(const e in n)o.searchParams.set(e,n[e]);try{await window.fetch(o.toString(),{method:"GET",mode:"no-cors",cache:"no-cache",redirect:"follow"})}catch(e){console.error("Analytics error: ",e)}}ping(){this._track({ping:"1"}),localStorage.setItem("mx_Riot_Analytics_lvts",String((new Date).getTime()))}trackPageChange(e){this.disabled||(this.firstPage?this.firstPage=!1:("number"!=typeof e&&console.warn("Analytics.trackPageChange: expected generationTimeMs to be a number"),this._track({gt_ms:String(e)})))}trackEvent(e,t,n,o){this.disabled||this._track({e_c:e,e_a:t,e_n:n,e_v:o})}setVisitVariable(e,t){this.disabled||(this.visitVariables[_[e].id]=[e,t])}setLoggedIn(e,t){if(this.disabled)return;const n=l.a.get();if(!n.piwik)return;const o=n.piwik.whitelistedHSUrls||[];var r;this.setVisitVariable("User Type",e?"Guest":"Logged In"),this.setVisitVariable("Homeserver URL",(r=t,o.includes(r)?r:""))}setBreadcrumbs(e){this.disabled||this.setVisitVariable("Breadcrumbs",e?"enabled":"disabled")}}window.mxAnalytics||(window.mxAnalytics=new v),t.a=window.mxAnalytics},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var o=n(81),r=n.n(o),i=n(84),a=n.n(i),s=n(83),c=n(88);const l=({w:e=32,h:t=32,imgClassName:o,message:i})=>{let a;return a=c.a.getValue("feature_new_spinner")?n(705):n(706),r.a.createElement("div",{className:"mx_Spinner"},i&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"mx_Spinner_Msg"},i)," "),r.a.createElement("img",{src:a,width:e,height:t,className:o,"aria-label":Object(s.a)("Loading...")}))};l.propTypes={w:a.a.number,h:a.a.number,imgClassName:a.a.string,message:a.a.node},t.a=l},function(e,t,n){"use strict";n.d(t,"a",(function(){return g}));var o=n(94),r=n.n(o),i=n(99),a=n.n(i),s=n(82),c=n.n(s),l=n(81),u=n.n(l),d=n(90),h=n.n(d),p=n(91),m=n(262);class g extends u.a.PureComponent{constructor(e){super(e),c()(this,"onMouseOver",()=>{this.props.forceHide||this.setState({hover:!0})}),c()(this,"onMouseLeave",()=>{this.setState({hover:!1})}),this.state={hover:!1}}componentDidUpdate(e){!e.forceHide&&this.props.forceHide&&this.state.hover&&this.setState({hover:!1})}render(){const e=this.props,{title:t,tooltip:n,children:o,tooltipClassName:i,forceHide:s,yOffset:c}=e,l=a()(e,["title","tooltip","children","tooltipClassName","forceHide","yOffset"]),d=this.state.hover?u.a.createElement(m.a,{className:"mx_AccessibleTooltipButton_container",tooltipClassName:h()("mx_AccessibleTooltipButton_tooltip",i),label:n||t,yOffset:c}):u.a.createElement("div",null);return u.a.createElement(p.a,r()({},l,{onMouseOver:this.onMouseOver,onMouseLeave:this.onMouseLeave,"aria-label":t}),o,d)}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(81),r=n.n(o);class i extends r.a.Component{constructor(e){super(e),this._collectContainerRef=this._collectContainerRef.bind(this)}_collectContainerRef(e){e&&!this.containerRef&&(this.containerRef=e),this.props.wrappedRef&&this.props.wrappedRef(e)}getScrollTop(){return this.containerRef.scrollTop}render(){return r.a.createElement("div",{ref:this._collectContainerRef,style:this.props.style,className:["mx_AutoHideScrollbar",this.props.className].join(" "),onScroll:this.props.onScroll,onWheel:this.props.onWheel,tabIndex:this.props.tabIndex},this.props.children)}}},function(e,t,n){"use strict";var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(321),c=n(87),l=n(86),u=n(85),d=n(89),h=n(83),p=n(549),m=n(130),g=n(102);const f={joining:!1,joinError:null,roomId:null,initialEventId:null,initialEventPixelOffset:null,isInitialEventHighlighted:!1,roomAlias:null,roomLoading:!1,roomLoadError:null,forwardingEvent:null,quotingEvent:null,replyingToEvent:null,shouldPeek:!1};class _ extends s.Store{constructor(){super(c.a),r()(this,"state",f)}setState(e){let t=!1;for(const n of Object.keys(e))if(this.state[n]!==e[n]){t=!0;break}t&&(this.state=Object.assign(this.state,e),this.__emitChange())}__onDispatch(e){switch(e.action){case"view_room":this.viewRoom(e);break;case"view_create_group":case"view_welcome_page":case"view_home_page":case"view_my_groups":case"view_group":this.setState({roomId:null,roomAlias:null});break;case"view_room_error":this.viewRoomError(e);break;case"will_join":this.setState({joining:!0});break;case"cancel_join":this.setState({joining:!1});break;case"join_room":this.joinRoom(e);break;case"join_room_error":this.joinRoomError(e);break;case"join_room_ready":this.setState({shouldPeek:!1});break;case"on_client_not_viable":case"on_logged_out":this.reset();break;case"forward_event":this.setState({forwardingEvent:e.event});break;case"reply_to_event":e.event&&e.event.getRoomId()!==this.state.roomId?c.a.dispatch({action:"view_room",room_id:e.event.getRoomId(),replyingToEvent:e.event}):this.setState({replyingToEvent:e.event});break;case"open_room_settings":{const t=u.getComponent("dialogs.RoomSettingsDialog");d.a.createTrackedDialog("Room settings","",t,{roomId:e.room_id||this.state.roomId},null,!1,!0);break}}}async viewRoom(e){if(e.room_id){const t={roomId:e.room_id,roomAlias:e.room_alias,initialEventId:e.event_id,isInitialEventHighlighted:e.highlighted,forwardingEvent:null,roomLoading:!1,roomLoadError:null,shouldPeek:void 0===e.should_peek||e.should_peek,joining:e.joining||!1,replyingToEvent:null,isEditingSettings:!1};e.replyingToEvent&&e.replyingToEvent.getRoomId()===e.room_id&&(t.replyingToEvent=e.replyingToEvent),this.state.forwardingEvent&&c.a.dispatch({action:"send_event",room_id:t.roomId,event:this.state.forwardingEvent}),this.setState(t),e.auto_join&&this.joinRoom(e)}else if(e.room_alias){let t=Object(p.a)(e.room_alias);if(!t){this.setState({roomId:null,initialEventId:null,initialEventPixelOffset:null,isInitialEventHighlighted:null,roomAlias:e.room_alias,roomLoading:!0,roomLoadError:null});try{const n=await l.a.get().getRoomIdForAlias(e.room_alias);Object(p.b)(e.room_alias,n.room_id),t=n.room_id}catch(t){return console.error("RVS failed to get room id for alias: ",t),void c.a.dispatch({action:"view_room_error",room_id:null,room_alias:e.room_alias,err:t})}}c.a.dispatch({action:"view_room",room_id:t,event_id:e.event_id,highlighted:e.highlighted,room_alias:e.room_alias,auto_join:e.auto_join,oob_data:e.oob_data})}}viewRoomError(e){this.setState({roomId:e.room_id,roomAlias:e.room_alias,roomLoading:!1,roomLoadError:e.err})}async joinRoom(e){const t=g.a.getTimestamp();this.setState({joining:!0});const n=l.a.get(),o=this.state.roomAlias||this.state.roomId;try{await Object(m.c)(()=>n.joinRoom(o,e.opts),5,e=>504===e.httpStatus),g.a.instance.trackRoomJoin(t,this.state.roomId,e._type),c.a.dispatch({action:"join_room_ready"})}catch(e){c.a.dispatch({action:"join_room_error",err:e});let t=e.message?e.message:JSON.stringify(e);if(console.log("Failed to join room:",t),"ConnectionError"===e.name)t=Object(h.a)("There was an error joining the room");else if("M_INCOMPATIBLE_ROOM_VERSION"===e.errcode)t=a.a.createElement("div",null,Object(h.a)("Sorry, your homeserver is too old to participate in this room."),a.a.createElement("br",null),Object(h.a)("Please contact your homeserver administrator."));else if(404===e.httpStatus){const e=this.getInvitingUserId(this.state.roomId);e&&(t=e.endsWith(":"+l.a.get().getDomain())?Object(h.a)("The person who invited you already left the room."):Object(h.a)("The person who invited you already left the room, or their server is offline."))}const n=u.getComponent("dialogs.ErrorDialog");d.a.createTrackedDialog("Failed to join room","",n,{title:Object(h.a)("Failed to join room"),description:t})}}getInvitingUserId(e){const t=l.a.get(),n=t.getRoom(e);if(n&&"invite"===n.getMyMembership()){const e=n.getMember(t.getUserId()),o=e?e.events.member:null;return o&&o.getSender()}}joinRoomError(e){this.setState({joining:!1,joinError:e.err})}reset(){this.state=Object.assign({},f)}getRoomId(){return this.state.roomId}getInitialEventId(){return this.state.initialEventId}isInitialEventHighlighted(){return this.state.isInitialEventHighlighted}getRoomAlias(){return this.state.roomAlias}isRoomLoading(){return this.state.roomLoading}getRoomLoadError(){return this.state.roomLoadError}isJoining(){return this.state.joining}getJoinError(){return this.state.joinError}getForwardingEvent(){return this.state.forwardingEvent}getQuotingEvent(){return this.state.replyingToEvent}shouldPeek(){return this.state.shouldPeek}}let b=null;b||(b=new _),t.a=b},function(e,t,n){"use strict";function o(e){return e.slice(0,e.length)}function r(e,t){if(e.length===t.length){for(let n=0;n!e.includes(t))||!!e.some(e=>!t.includes(e)))}function a(e,t){return{added:t.filter(t=>!e.includes(t)),removed:e.filter(e=>!t.includes(e))}}function s(e,t){return e.filter(e=>t.includes(e))}function c(...e){return Array.from(e.reduce((e,t)=>(t.forEach(t=>e.add(t)),e),new Set))}n.d(t,"c",(function(){return o})),n.d(t,"e",(function(){return r})),n.d(t,"d",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"g",(function(){return s})),n.d(t,"f",(function(){return c})),n.d(t,"a",(function(){return l}));class l{constructor(e){this.a=e}get value(){return this.a}groupBy(e){const t=this.a.reduce((t,n)=>{const o=e(n);return t.has(o)||t.set(o,[]),t.get(o).push(n),t},new Map);return new u(t)}}class u{constructor(e){this.val=e}orderBy(e){const t=[];for(const n of e)this.val.has(n)&&t.push(...this.val.get(n));return new l(t)}}},function(e,t,n){"use strict";let o;n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return r})),function(e){e.RoomMemberList="RoomMemberList",e.FilePanel="FilePanel",e.NotificationPanel="NotificationPanel",e.RoomMemberInfo="RoomMemberInfo",e.EncryptionPanel="EncryptionPanel",e.RoomSummary="RoomSummary",e.Widget="Widget",e.Room3pidMemberInfo="Room3pidMemberInfo",e.GroupMemberList="GroupMemberList",e.GroupRoomList="GroupRoomList",e.GroupRoomInfo="GroupRoomInfo",e.GroupMemberInfo="GroupMemberInfo"}(o||(o={}));const r=[o.RoomSummary,o.NotificationPanel,o.FilePanel,o.RoomMemberList,o.GroupMemberList,o.GroupRoomList]},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return l}));var o=n(82),r=n.n(o),i=n(6),a=n(542),s=n.n(a);const c="update";class l extends i.EventEmitter{constructor(e,t={}){super(),this.dispatcher=e,r()(this,"storeState",void 0),r()(this,"lock",new s.a),r()(this,"dispatcherRef",void 0),this.dispatcherRef=e.register(this.onDispatch.bind(this)),this.storeState=t}get state(){return this.storeState}stop(){this.dispatcherRef&&this.dispatcher.unregister(this.dispatcherRef)}async updateState(e){await this.lock.acquireAsync();try{this.storeState=Object.freeze(Object.assign({},this.storeState,e)),this.emit(c,this)}finally{await this.lock.release()}}async reset(e=null,t=!1){await this.lock.acquireAsync();try{this.storeState=Object.freeze(e||{}),t||this.emit(c,this)}finally{await this.lock.release()}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"d",(function(){return a})),n.d(t,"c",(function(){return s}));var o=n(588);let r;!function(e){e.Invite="im.vector.fake.invite",e.Untagged="im.vector.fake.recent",e.Archived="im.vector.fake.archived",e.LowPriority="m.lowpriority",e.Favourite="m.favourite",e.DM="im.vector.fake.direct",e.ServerNotice="m.server_notice"}(r||(r={}));const i=[r.Invite,r.Favourite,r.DM,r.Untagged,r.LowPriority,r.ServerNotice,r.Archived];function a(e){return!Object(o.b)(r,e)}let s;!function(e){e.Timeline="TIMELINE",e.PossibleTagChange="POSSIBLE_TAG_CHANGE",e.ReadReceipt="READ_RECEIPT",e.NewRoom="NEW_ROOM",e.RoomRemoved="ROOM_REMOVED"}(s||(s={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return B})),n.d(t,"j",(function(){return j})),n.d(t,"i",(function(){return G})),n.d(t,"g",(function(){return q})),n.d(t,"h",(function(){return H})),n.d(t,"d",(function(){return V})),n.d(t,"b",(function(){return $})),n.d(t,"f",(function(){return Q})),n.d(t,"e",(function(){return X})),n.d(t,"c",(function(){return J}));var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(356),c=n.n(s),l=n(998),u=n(424),d=n(1003),h=n.n(d),p=n(1005),m=n.n(p),g=n(90),f=n.n(g),_=n(660),b=n.n(_),v=n(107),E=n.n(v),y=n(1007),S=n.n(y),T=n(427),w=n(88),C=n(595),x=n.n(C),O=n(86),k=n(108),R=n(289),A=n(237);function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function D(e){for(var t=1;t{const r=n[e],i=t[e];i&&"string"==typeof i&&U.test(i)&&(o+=r+":"+i+";",delete t[e])}),o&&(t.style=o),{tagName:e,attribs:t}}},K={allowedTags:["font","del","h1","h2","h3","h4","h5","h6","blockquote","p","a","ul","ol","sup","sub","nl","li","b","i","u","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre","span","img"],allowedAttributes:{font:["color","data-mx-bg-color","data-mx-color","style"],span:["data-mx-maths","data-mx-bg-color","data-mx-color","data-mx-spoiler","style"],div:["data-mx-maths"],a:["href","name","target","rel"],img:["src","width","height","alt","title"],ol:["start"],code:["class"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:B,allowProtocolRelative:!1,transformTags:z,nestingLimit:50},W=D(D({},K),{},{transformTags:{code:z.code,"*":z["*"]}});class Y extends class{constructor(e,t){this.highlightClass=e,this.highlightLink=t}applyHighlights(e,t){let n,o=0,r=[];const i=t[0];for(;(n=e.toLowerCase().indexOf(i.toLowerCase(),o))>=0;){if(n>o){const i=e.substring(o,n);r=r.concat(this.applySubHighlights(i,t))}const a=n+i.length;r.push(this.processSnippet(e.substring(n,a),!0)),o=a}if(o!==e.length){const n=e.substring(o,void 0);r=r.concat(this.applySubHighlights(n,t))}return r}applySubHighlights(e,t){return t[1]?this.applyHighlights(e,t.slice(1)):[this.processSnippet(e,!1)]}}{processSnippet(e,t){if(!t)return e;let n=`${e}`;return this.highlightLink&&(n=`${n}`),n}}function $(e,t,n={}){const o="org.matrix.custom.html"===e.format&&e.formatted_body;let r,i,s,l=!1,u=K;n.forComposerQuote&&(u=W);try{if(t&&t.length>0){const e=new Y("mx_EventTile_searchHighlight",n.highlightLink),o=t.map((function(e){return c()(e,u)}));u.textFilter=function(t){return e.applyHighlights(t,o).join("")}}let a="string"==typeof e.formatted_body?e.formatted_body:null;const h="string"==typeof e.body?e.body:"";if(n.stripReplyFallback&&a&&(a=A.a.stripHTMLReply(a)),r=n.stripReplyFallback?A.a.stripPlainReply(h):h,d=o?a:h,l=N.test(d)||F.test(d),o&&(s=!0,i=c()(a,u),w.a.getValue("feature_latex_maths"))){const e=x.a.load(i,{_useHtmlParser2:!0,decodeEntities:!1});e('div, span[data-mx-maths!=""]').replaceWith((function(t,n){return S.a.renderToString(T.AllHtmlEntities.decode(e(n).attr("data-mx-maths")),{throwOnError:!1,displayMode:"div"==n.name,output:"htmlAndMathml"})})),i=e.html()}}finally{delete u.textFilter}var d;const h=s?i:r;if(n.returnString)return h;let p=!1;if(!n.disableBigEmoji&&l){let t=void 0!==h?h.trim():"";t=t.replace(P,""),t=t.replace(M,"");const n=L.exec(t);p=n&&n[0]&&n[0].length===t.length&&(r===i||void 0===e.formatted_body||!e.formatted_body.includes("http:")&&!e.formatted_body.includes("https:"))}const m=f()({mx_EventTile_body:!0,mx_EventTile_bigEmoji:p,"markdown-body":o&&!p});return s?a.a.createElement("span",{key:"body",ref:n.ref,className:m,dangerouslySetInnerHTML:{__html:i},dir:"auto"}):a.a.createElement("span",{key:"body",ref:n.ref,className:m,dir:"auto"},r)}function Q(e,t=u.a.options){return h()(e,t)}function X(e,t=u.a.options){return c()(function(e,t=u.a.options){return m()(e,t)}(e,t),K)}function J(e){switch(e.nodeName){case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"PRE":case"BLOCKQUOTE":case"P":case"UL":case"OL":case"LI":case"HR":case"TABLE":case"THEAD":case"TBODY":case"TR":case"TH":case"TD":return!0;case"DIV":return!e.hasAttribute("data-mx-maths");default:return!1}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var o=n(107),r=n(86),i=n(92),a=n(87),s=n(301),c=n(88),l=n(159),u=n(133),d=n(144),h=n(83),p=n(3);class m{static canUserModifyWidgets(e){if(!e)return console.warn("No room ID specified"),!1;const t=r.a.get();if(!t)return console.warn("User must be be logged in"),!1;const n=t.getRoom(e);if(!n)return console.warn(`Room ID ${e} is not recognised`),!1;const o=t.credentials.userId;return o?"join"!==n.getMyMembership()?(console.warn(`User ${o} is not in room ${e}`),!1):n.currentState.maySendStateEvent("im.vector.modular.widgets",o):(console.warn("Failed to get user ID"),!1)}static isScalarUrl(e){if(!e)return console.error("Scalar URL check failed. No URL specified"),!1;const t=o.parse(e);let n=i.a.get().integrations_widgets_urls;if(!n||0===n.length){const e=l.a.sharedInstance().getPrimaryManager();n=e?[e.apiUrl]:[]}for(let e=0;e{function i(n){return!(!n||!n.getContent())&&(t?void 0!==n.getContent()[e]:void 0===n.getContent()[e])}if(i(r.a.get().getAccountData("m.widgets")))return void n();function a(e){i(r.a.get().getAccountData("m.widgets"))&&(r.a.get().removeListener("accountData",a),clearTimeout(s),n())}const s=setTimeout(()=>{r.a.get().removeListener("accountData",a),o(new Error("Timed out waiting for widget ID "+e+" to appear"))},2e4);r.a.get().on("accountData",a)})}static waitForRoomWidget(e,t,n){return new Promise((o,i)=>{function a(t){const o=t.some(t=>t.getContent()&&t.getContent().id===e);return n?o:!o}const s=r.a.get().getRoom(t);if(a(s.currentState.getStateEvents("im.vector.modular.widgets")))return void o();function c(e){if(e.getRoomId()!==t)return;a(s.currentState.getStateEvents("im.vector.modular.widgets"))&&(r.a.get().removeListener("RoomState.events",c),clearTimeout(l),o())}const l=setTimeout(()=>{r.a.get().removeListener("RoomState.events",c),i(new Error("Timed out waiting for widget ID "+e+" to appear"))},2e4);r.a.get().on("RoomState.events",c)})}static setUserWidget(e,t,n,o,i){const s={type:t.preferred,url:n,name:o,data:i},c=r.a.get(),l=Object(d.a)(m.getUserWidgets());try{delete l[e]}catch(e){console.error("$widgetId is non-configurable")}const u=Boolean(n);return u&&(l[e]={content:s,sender:c.getUserId(),state_key:e,type:"m.widget",id:e}),c.setAccountData("m.widgets",l).then(()=>m.waitForUserWidget(e,u)).then(()=>{a.a.dispatch({action:"user_widget_updated"})})}static setRoomWidget(e,t,n,o,i,a){let c;const l=Boolean(o);c=l?{type:n.legacy,url:o,name:i,data:a}:{},s.a.setRoomWidgetEcho(e,t,c);return r.a.get().sendStateEvent(e,"im.vector.modular.widgets",c,t).then(()=>m.waitForRoomWidget(t,e,l)).finally(()=>{s.a.removeRoomWidgetEcho(e,t)})}static getRoomWidgets(e){const t=e.currentState.getStateEvents("im.vector.modular.widgets");return t?t.filter(e=>e.getContent().type&&e.getContent().url):[]}static getUserWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");return t&&t.getContent()?t.getContent():{}}static getUserWidgetsArray(){return Object.values(m.getUserWidgets())}static getStickerpickerWidgets(){return m.getUserWidgetsArray().filter(e=>e.content&&"m.stickerpicker"===e.content.type)}static getIntegrationManagerWidgets(){return m.getUserWidgetsArray().filter(e=>e.content&&"m.integration_manager"===e.content.type)}static getRoomWidgetsOfType(e,t){return(m.getRoomWidgets(e)||[]).filter(e=>{const n=e.getContent();return n.url&&t.matches(n.type)})}static removeIntegrationManagerWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");if(!t)return;const n=t.getContent()||{};return Object.entries(n).forEach(([e,t])=>{t.content&&"m.integration_manager"===t.content.type&&delete n[e]}),e.setAccountData("m.widgets",n)}static addIntegrationManagerWidget(e,t,n){return m.setUserWidget("integration_manager_"+(new Date).getTime(),u.a.INTEGRATION_MANAGER,t,"Integration Manager: "+e,{api_url:n})}static removeStickerpickerWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");if(!t)return;const n=t.getContent()||{};return Object.entries(n).forEach(([e,t])=>{t.content&&"m.stickerpicker"===t.content.type&&delete n[e]}),e.setAccountData("m.widgets",n)}static makeAppConfig(e,t,n,o,r){if(!n)throw new Error("Widgets must be created by someone - provide a senderUserId");return t.creatorUserId=n,t.id=e,t.roomId=o,t.eventId=r,t.name=t.name||t.type,t}static getCapWhitelistForAppTypeInRoomId(e,t){const n=c.a.getValue("enableWidgetScreenshots",t)?[p.MatrixCapabilities.Screenshots]:[];return u.a.JITSI.matches(e)&&n.push(p.MatrixCapabilities.AlwaysOnScreen),n}static getLocalJitsiWrapperUrl(e={}){const t=["conferenceDomain=$domain","conferenceId=$conferenceId","isAudioOnly=$isAudioOnly","displayName=$matrix_display_name","avatarUrl=$matrix_avatar_url","userId=$matrix_user_id","roomId=$matrix_room_id","theme=$theme"];e.auth&&t.push("auth="+e.auth);const n=t.join("&");let o=window.location.href;"https:"===window.location.protocol||e.forLocalRender||(o="https://app.element.io/");return new URL("jitsi.html#"+n,o).href}static getWidgetName(e){var t;return(null==e||null===(t=e.name)||void 0===t?void 0:t.trim())||Object(h.a)("Unknown App")}static getWidgetDataTitle(e){var t,n;return(null==e||null===(t=e.data)||void 0===t||null===(n=t.title)||void 0===n?void 0:n.trim())||""}static editWidget(e,t){c.a.getValue("feature_many_integration_managers")?l.a.sharedInstance().openAll(e,"type_"+t.type,t.id):l.a.sharedInstance().getPrimaryManager().open(e,"type_"+t.type,t.id)}static isManagedByManager(e){if(m.isScalarUrl(e.url)){const e=l.a.sharedInstance();if(e.hasManager()){const t=e.getPrimaryManager();return m.isScalarUrl(t.apiUrl)}}return!1}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(86),r=n(105);n(263);class i{constructor(e){this.matrixClient=e,this.roomToUser=null,this._hasSentOutPatchDirectAccountDataPatch=!1,this._onAccountData=this._onAccountData.bind(this);const t=e.getAccountData("m.direct");this.mDirectEvent=t?t.getContent():{},this.userToRooms=null}static makeShared(){return i._sharedInstance=new i(o.a.get()),i._sharedInstance}static shared(){return i._sharedInstance}start(){this._populateRoomToUser(),this.matrixClient.on("accountData",this._onAccountData)}stop(){this.matrixClient.removeListener("accountData",this._onAccountData)}_onAccountData(e){"m.direct"==e.getType()&&(this.mDirectEvent=this.matrixClient.getAccountData("m.direct").getContent()||{},this.userToRooms=null,this.roomToUser=null)}_patchUpSelfDMs(e){const t=this.matrixClient.getUserId(),n=e[t];if(n){const o=n.map(e=>{const n=this.matrixClient.getRoom(e);if(n){const o=n.guessDMUserId();if(o&&o!==t)return{userId:o,roomId:e}}}).filter(e=>!!e);return!!o.length&&(e[t]=n.filter(e=>!o.some(t=>t.roomId===e)),o.forEach(({userId:t,roomId:n})=>{const o=e[t];o?(o.push(n),e[t]=Object(r.uniq)(o)):e[t]=[n]}),!0)}}getDMRoomsForUserId(e){return this._getUserToRooms()[e]||[]}getDMRoomForIdentifiers(e){let t=this.getDMRoomsForUserId(e[0]);for(let n=1;no.includes(e))}return t.map(e=>o.a.get().getRoom(e)).filter(e=>e&&"join"===e.getMyMembership())[0]}getUserIdForRoomId(e){if(null==this.roomToUser&&this._populateRoomToUser(),void 0===this.roomToUser[e]){const t=this.matrixClient.getRoom(e);if(t)return t.getDMInviter()}return this.roomToUser[e]}getUniqueRoomsWithIndividuals(){return this.roomToUser?Object.keys(this.roomToUser).map(e=>({userId:this.getUserIdForRoomId(e),room:this.matrixClient.getRoom(e)})).filter(e=>e.userId&&e.room&&2===e.room.getInvitedAndJoinedMemberCount()).reduce((e,t)=>(e[t.userId]=t.room)&&e,{}):{}}_getUserToRooms(){if(!this.userToRooms){const e=this.mDirectEvent,t=e[this.matrixClient.getUserId()];if(t&&t.length){const t=this._patchUpSelfDMs(e);console.warn("Invalid m.direct account data detected (self-chats that shouldn't be), patching it up."),t&&!this._hasSentOutPatchDirectAccountDataPatch&&(this._hasSentOutPatchDirectAccountDataPatch=!0,this.matrixClient.setAccountData("m.direct",e))}this.userToRooms=e}return this.userToRooms}_populateRoomToUser(){this.roomToUser={};for(const e of Object.keys(this._getUserToRooms()))for(const t of this.userToRooms[e])this.roomToUser[t]=e}}},function(e,t,n){"use strict";n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return u})),n.d(t,"a",(function(){return d})),n.d(t,"d",(function(){return h})),n.d(t,"c",(function(){return p})),n.d(t,"b",(function(){return m})),n.d(t,"i",(function(){return S})),n.d(t,"h",(function(){return T})),n.d(t,"j",(function(){return w})),n.d(t,"g",(function(){return C}));var o=n(174),r=n.n(o),i=n(0),a=n(6),s=n(1),c=n(176);let l,u,d,h,p,m;!function(e){e.Fledgling="fledgling",e.InviteSent="invite_sent",e.WaitLocalMedia="wait_local_media",e.CreateOffer="create_offer",e.CreateAnswer="create_answer",e.Connecting="connecting",e.Connected="connected",e.Ringing="ringing",e.Ended="ended"}(l||(l={})),function(e){e.Voice="voice",e.Video="video"}(u||(u={})),function(e){e.Inbound="inbound",e.Outbound="outbound"}(d||(d={})),function(e){e.Local="local",e.Remote="remote"}(h||(h={})),function(e){e.Hangup="hangup",e.State="state",e.Error="error",e.Replaced="replaced",e.LocalHoldUnhold="local_hold_unhold",e.RemoteHoldUnhold="remote_hold_unhold",e.HoldUnhold="hold_unhold"}(p||(p={})),function(e){e.UserHangup="user_hangup",e.LocalOfferFailed="local_offer_failed",e.NoUserMedia="no_user_media",e.UnknownDevices="unknown_devices",e.SendInvite="send_invite",e.CreateAnswer="create_answer",e.SendAnswer="send_answer",e.SetRemoteDescription="set_remote_description",e.SetLocalDescription="set_local_description",e.AnsweredElsewhere="answered_elsewhere",e.IceFailed="ice_failed",e.InviteTimeout="invite_timeout",e.Replaced="replaced",e.SignallingFailed="signalling_timeout"}(m||(m={}));class g extends Error{constructor(e,t,n){super(t+": "+n),r()(this,"code",void 0),this.code=e}}class f extends a.EventEmitter{constructor(e){super(),r()(this,"roomId",void 0),r()(this,"type",void 0),r()(this,"callId",void 0),r()(this,"state",void 0),r()(this,"hangupParty",void 0),r()(this,"hangupReason",void 0),r()(this,"direction",void 0),r()(this,"ourPartyId",void 0),r()(this,"client",void 0),r()(this,"forceTURN",void 0),r()(this,"turnServers",void 0),r()(this,"candidateSendQueue",void 0),r()(this,"candidateSendTries",void 0),r()(this,"sentEndOfCandidates",void 0),r()(this,"peerConn",void 0),r()(this,"localVideoElement",void 0),r()(this,"remoteVideoElement",void 0),r()(this,"remoteAudioElement",void 0),r()(this,"screenSharingStream",void 0),r()(this,"remoteStream",void 0),r()(this,"localAVStream",void 0),r()(this,"inviteOrAnswerSent",void 0),r()(this,"waitForLocalAVStream",void 0),r()(this,"msg",void 0),r()(this,"config",void 0),r()(this,"successor",void 0),r()(this,"opponentMember",void 0),r()(this,"opponentVersion",void 0),r()(this,"opponentPartyId",void 0),r()(this,"inviteTimeout",void 0),r()(this,"remoteOnHold",void 0),r()(this,"unholdingRemote",void 0),r()(this,"micMuted",void 0),r()(this,"vidMuted",void 0),r()(this,"makingOffer",void 0),r()(this,"ignoreOffer",void 0),r()(this,"gotUserMediaForInvite",async e=>{if(this.successor)return void this.successor.gotUserMediaForAnswer(e);if(this.callHasEnded())return;this.setState(l.CreateOffer),i.a.debug("gotUserMediaForInvite -> "+this.type);const t=this.getLocalVideoElement();if(t&&this.type===u.Video){t.autoplay=!0,this.screenSharingStream?(i.a.debug("Setting screen sharing stream to the local video element"),t.srcObject=this.screenSharingStream):t.srcObject=e,t.muted=!0;try{await t.play()}catch(e){i.a.info("Failed to play local video element",e)}}this.localAVStream=e,i.a.info("Got local AV stream with id "+this.localAVStream.id),_(e.getAudioTracks(),!0),this.peerConn=this.createPeerConnection();for(const t of e.getAudioTracks())i.a.info("Adding audio track with id "+t.id),this.peerConn.addTrack(t,e);for(const t of(this.screenSharingStream||e).getVideoTracks())i.a.info("Adding audio track with id "+t.id),this.peerConn.addTrack(t,e)}),r()(this,"gotUserMediaForAnswer",async e=>{if(this.callHasEnded())return;const t=this.getLocalVideoElement();if(t&&this.type===u.Video){t.autoplay=!0,t.srcObject=e,t.muted=!0;try{await t.play()}catch(e){i.a.info("Failed to play local video element",e)}}this.localAVStream=e,i.a.info("Got local AV stream with id "+this.localAVStream.id),_(e.getAudioTracks(),!0);for(const t of e.getTracks())this.peerConn.addTrack(t,e);let n;this.setState(l.CreateAnswer);try{n=await this.peerConn.createAnswer()}catch(e){return i.a.debug("Failed to create answer: ",e),void this.terminate(h.Local,m.CreateAnswer,!0)}try{await this.peerConn.setLocalDescription(n),this.setState(l.Connecting),await new Promise(e=>{setTimeout(e,200)}),this.sendAnswer()}catch(e){return i.a.debug("Error setting local description!",e),void this.terminate(h.Local,m.SetLocalDescription,!0)}}),r()(this,"gotLocalIceCandidate",e=>{if(e.candidate){if(i.a.debug("Got local ICE "+e.candidate.sdpMid+" candidate: "+e.candidate.candidate),this.callHasEnded())return;""===e.candidate.candidate&&this.sentEndOfCandidates||(this.queueCandidate(e.candidate),""===e.candidate.candidate&&(this.sentEndOfCandidates=!0))}}),r()(this,"onIceGatheringStateChange",e=>{if(i.a.debug("ice gathering state changed to "+this.peerConn.iceGatheringState),"complete"===this.peerConn.iceGatheringState&&!this.sentEndOfCandidates){const e={candidate:""};this.queueCandidate(e),this.sentEndOfCandidates=!0}}),r()(this,"gotLocalOffer",async e=>{if(i.a.debug("Created offer: ",e),this.callHasEnded())return void i.a.debug("Ignoring newly created offer on call ID "+this.callId+" because the call has ended");try{await this.peerConn.setLocalDescription(e)}catch(e){return i.a.debug("Error setting local description!",e),void this.terminate(h.Local,m.SetLocalDescription,!0)}if("gathering"===this.peerConn.iceGatheringState&&await new Promise(e=>{setTimeout(e,200)}),this.callHasEnded())return;const t=this.state===l.CreateOffer?"offer":"description",n=this.state===l.CreateOffer?c.a.CallInvite:c.a.CallNegotiate,o={[t]:this.peerConn.localDescription,lifetime:6e4};i.a.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in offer`),this.candidateSendQueue=[];try{await this.sendVoipEvent(n,o),this.sendCandidateQueue(),this.state===l.CreateOffer&&(this.inviteOrAnswerSent=!0,this.setState(l.InviteSent),this.inviteTimeout=setTimeout(()=>{this.inviteTimeout=null,this.state===l.InviteSent&&this.hangup(m.InviteTimeout,!1)},6e4))}catch(e){this.client.cancelPendingEvent(e.event);let t=m.SignallingFailed,n="Signalling failed";this.state===l.CreateOffer&&(t=m.SendInvite,n="Failed to send invite"),"UnknownDeviceError"==e.name&&(t=m.UnknownDevices,n="Unknown devices present in the room"),this.emit(p.Error,new g(t,n,e)),this.terminate(h.Local,t,!1)}}),r()(this,"getLocalOfferFailed",e=>{i.a.error("Failed to get local offer",e),this.emit(p.Error,new g(m.LocalOfferFailed,"Failed to get local offer!",e)),this.terminate(h.Local,m.LocalOfferFailed,!1)}),r()(this,"getUserMediaFailed",e=>{this.successor?this.successor.getUserMediaFailed(e):(i.a.warn("Failed to get user media - ending call",e),this.emit(p.Error,new g(m.NoUserMedia,"Couldn't start capturing media! Is your microphone set up and does this app have permission?",e)),this.terminate(h.Local,m.NoUserMedia,!1))}),r()(this,"onIceConnectionStateChanged",()=>{this.callHasEnded()||(i.a.debug("ICE connection state changed to: "+this.peerConn.iceConnectionState),"connected"==this.peerConn.iceConnectionState?this.setState(l.Connected):"failed"==this.peerConn.iceConnectionState&&this.hangup(m.IceFailed,!1))}),r()(this,"onSignallingStateChanged",()=>{i.a.debug("call "+this.callId+": Signalling state changed to: "+this.peerConn.signalingState)}),r()(this,"onTrack",e=>{0!==e.streams.length?this.remoteStream&&e.streams[0].id!==this.remoteStream.id?i.a.warn(`Ignoring new stream ID ${e.streams[0].id}: we already have stream ID ${this.remoteStream.id}`):(this.remoteStream||i.a.info("Got remote stream with id "+e.streams[0].id),this.remoteStream=e.streams[0],i.a.debug(`Track id ${e.track.id} of kind ${e.track.kind} added`),"video"===e.track.kind?this.remoteVideoElement&&this.playRemoteVideo():this.remoteAudioElement&&this.playRemoteAudio()):i.a.warn(`Streamless ${e.track.kind} found: ignoring.`)}),r()(this,"onNegotiationNeeded",async()=>{if(i.a.info("Negotation is needed!"),this.state===l.CreateOffer||0!==this.opponentVersion){this.makingOffer=!0;try{const e=await this.peerConn.createOffer();await this.gotLocalOffer(e)}catch(e){return void this.getLocalOfferFailed(e)}finally{this.makingOffer=!1}}else i.a.info("Opponent does not support renegotiation: ignoring negotiationneeded event")}),r()(this,"onHangupReceived",e=>{i.a.debug("Hangup received"),this.partyIdMatches(e)||void 0===this.opponentPartyId||this.state===l.Ringing?this.terminate(h.Remote,e.reason||m.UserHangup,!0):i.a.info(`Ignoring message from party ID ${e.party_id}: our partner is ${this.opponentPartyId}`)}),r()(this,"onRejectReceived",e=>{i.a.debug("Reject received"),this.state===l.InviteSent?this.terminate(h.Remote,m.UserHangup,!0):i.a.debug(`Call is in state: ${this.state}: ignoring reject`)}),r()(this,"onAnsweredElsewhere",e=>{i.a.debug("Answered elsewhere"),this.terminate(h.Remote,m.AnsweredElsewhere,!0)}),this.roomId=e.roomId,this.client=e.client,this.type=null,this.forceTURN=e.forceTURN,this.ourPartyId=this.client.deviceId,this.turnServers=e.turnServers||[],0===this.turnServers.length&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:["stun:turn.matrix.org"]});for(const e of this.turnServers)s.a(e,["urls"]);this.callId="c"+(new Date).getTime()+Math.random(),this.state=l.Fledgling,this.candidateSendQueue=[],this.candidateSendTries=0,this.sentEndOfCandidates=!1,this.inviteOrAnswerSent=!1,this.makingOffer=!1,this.remoteOnHold=!1,this.unholdingRemote=!1,this.micMuted=!1,this.vidMuted=!1}placeVoiceCall(){i.a.debug("placeVoiceCall"),this.checkForErrorListener(),this.placeCallWithConstraints(b(u.Voice)),this.type=u.Voice}placeVideoCall(e,t){i.a.debug("placeVideoCall"),this.checkForErrorListener(),this.localVideoElement=t,this.remoteVideoElement=e,this.placeCallWithConstraints(b(u.Video)),this.type=u.Video}async placeScreenSharingCall(e,t){i.a.debug("placeScreenSharingCall"),this.checkForErrorListener(),this.localVideoElement=t,this.remoteVideoElement=e;try{this.screenSharingStream=await navigator.mediaDevices.getDisplayMedia({audio:!1}),i.a.debug("Got screen stream, requesting audio stream...");const e=b(u.Voice);this.placeCallWithConstraints(e)}catch(e){this.emit(p.Error,new g(m.NoUserMedia,"Failed to get screen-sharing stream: ",e))}this.type=u.Video}getOpponentMember(){return this.opponentMember}getLocalVideoElement(){return this.localVideoElement}getRemoteVideoElement(){return this.remoteVideoElement}getRemoteAudioElement(){return this.remoteAudioElement}async setLocalVideoElement(e){if(this.localVideoElement=e,e&&this.localAVStream&&this.type===u.Video){e.autoplay=!0,e.srcObject=this.localAVStream,e.muted=!0;try{await e.play()}catch(e){i.a.info("Failed to play local video element",e)}}}setRemoteVideoElement(e){e!==this.remoteVideoElement&&(e.autoplay=!0,this.remoteAudioElement&&(e.muted=!0),this.remoteVideoElement=e,this.remoteStream&&this.playRemoteVideo())}async setRemoteAudioElement(e){e!==this.remoteAudioElement&&(this.remoteAudioElement=e,this.remoteStream&&this.playRemoteAudio())}async initWithInvite(e){this.msg=e.getContent(),this.peerConn=this.createPeerConnection();try{await this.peerConn.setRemoteDescription(this.msg.offer)}catch(e){return i.a.debug("Failed to set remote description",e),void this.terminate(h.Local,m.SetRemoteDescription,!1)}if(!this.remoteStream||0===this.remoteStream.getTracks().length)return i.a.error("No remote stream or no tracks after setting remote description!"),void this.terminate(h.Local,m.SetRemoteDescription,!1);this.type=this.remoteStream.getTracks().some(e=>"video"===e.kind)?u.Video:u.Voice,this.setState(l.Ringing),this.direction=d.Inbound,this.opponentVersion=this.msg.version,this.opponentPartyId=this.msg.party_id||null,this.opponentMember=e.sender,e.getLocalAge()&&setTimeout(()=>{this.state==l.Ringing&&(i.a.debug("Call invite has expired. Hanging up."),this.hangupParty=h.Remote,this.setState(l.Ended),this.stopAllMedia(),"closed"!=this.peerConn.signalingState&&this.peerConn.close(),this.emit(p.Hangup))},this.msg.lifetime-e.getLocalAge())}initWithHangup(e){this.msg=e.getContent(),this.setState(l.Ended)}async answer(){if(!this.inviteOrAnswerSent)if(i.a.debug(`Answering call ${this.callId} of type ${this.type}`),this.localAVStream||this.waitForLocalAVStream)this.localAVStream?this.gotUserMediaForAnswer(this.localAVStream):this.waitForLocalAVStream&&this.setState(l.WaitLocalMedia);else{const e=b(this.type);i.a.log("Getting user media with constraints",e),this.setState(l.WaitLocalMedia),this.waitForLocalAVStream=!0;try{const t=await navigator.mediaDevices.getUserMedia(e);this.waitForLocalAVStream=!1,this.gotUserMediaForAnswer(t)}catch(e){return void this.getUserMediaFailed(e)}}}replacedBy(e){i.a.debug(this.callId+" being replaced by "+e.callId),this.state===l.WaitLocalMedia?(i.a.debug("Telling new call to wait for local media"),e.waitForLocalAVStream=!0):(this.state===l.CreateOffer||this.state===l.InviteSent)&&(i.a.debug("Handing local stream to new call"),e.gotUserMediaForAnswer(this.localAVStream),delete this.localAVStream),e.localVideoElement=this.localVideoElement,e.remoteVideoElement=this.remoteVideoElement,e.remoteAudioElement=this.remoteAudioElement,this.successor=e,this.emit(p.Replaced,e),this.hangup(m.Replaced,!0)}hangup(e,t){if(this.callHasEnded())return;i.a.debug("Ending call "+this.callId),this.terminate(h.Local,e,!t);m.UserHangup,this.sendVoipEvent(c.a.CallHangup,{})}reject(){if(this.state!==l.Ringing)throw Error("Call must be in 'ringing' state to reject!");if(this.opponentVersion<1)return i.a.info(`Opponent version is less than 1 (${this.opponentVersion}): sending hangup instead of reject`),void this.hangup(m.UserHangup,!0);i.a.debug("Rejecting call: "+this.callId),this.terminate(h.Local,m.UserHangup,!0),this.sendVoipEvent(c.a.CallReject,{})}setLocalVideoMuted(e){this.vidMuted=e,this.updateMuteStatus()}isLocalVideoMuted(){return this.vidMuted}setMicrophoneMuted(e){this.micMuted=e,this.updateMuteStatus()}isMicrophoneMuted(){return this.micMuted}isRemoteOnHold(){return this.remoteOnHold}setRemoteOnHold(e){if(this.isRemoteOnHold()!==e){this.remoteOnHold=e,e||(this.unholdingRemote=!0);for(const t of this.peerConn.getTransceivers())t.direction=e?"inactive":"sendrecv";this.updateMuteStatus(),e||this.playRemoteAudio(),this.emit(p.RemoteHoldUnhold,this.remoteOnHold)}}isLocalOnHold(){if(this.state!==l.Connected)return!1;if(this.unholdingRemote)return!1;let e=!0;for(const t of this.peerConn.getTransceivers()){["inactive","recvonly"].includes(t.currentDirection)||(e=!1)}return e}updateMuteStatus(){if(!this.localAVStream)return;const e=this.micMuted||this.remoteOnHold;_(this.localAVStream.getAudioTracks(),!e);const t=this.vidMuted||this.remoteOnHold;_(this.localAVStream.getVideoTracks(),!t),this.remoteOnHold?this.remoteAudioElement&&this.remoteAudioElement.srcObject===this.remoteStream?this.remoteAudioElement.muted=!0:this.remoteVideoElement&&this.remoteVideoElement.srcObject===this.remoteStream&&(this.remoteVideoElement.muted=!0):this.playRemoteAudio()}sendAnswer(){const e={answer:{sdp:this.peerConn.localDescription.sdp,type:this.peerConn.localDescription.type}};i.a.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in answer`),this.candidateSendQueue=[],this.sendVoipEvent(c.a.CallAnswer,e).then(()=>{this.inviteOrAnswerSent=!0,this.sendCandidateQueue()}).catch(e=>{this.setState(l.Ringing),this.client.cancelPendingEvent(e.event);let t=m.SendAnswer,n="Failed to send answer";throw"UnknownDeviceError"==e.name&&(t=m.UnknownDevices,n="Unknown devices present in the room"),this.emit(p.Error,new g(t,n,e)),e})}onRemoteIceCandidatesReceived(e){if(this.callHasEnded())return;if(!this.partyIdMatches(e.getContent()))return void i.a.info(`Ignoring candidates from party ID ${e.getContent().party_id}: we have chosen party ID `+this.opponentPartyId);const t=e.getContent().candidates;if(t)for(const e of t){if(!(null!==e.sdpMid&&void 0!==e.sdpMid||null!==e.sdpMLineIndex&&void 0!==e.sdpMLineIndex))return void i.a.debug("Ignoring remote ICE candidate with no sdpMid or sdpMLineIndex");i.a.debug("Got remote ICE "+e.sdpMid+" candidate: "+e.candidate);try{this.peerConn.addIceCandidate(e)}catch(e){this.ignoreOffer||i.a.info("Failed to add remore ICE candidate",e)}}else i.a.info("Ignoring candidates event with no candidates!")}async onAnswerReceived(e){if(!this.callHasEnded())if(void 0===this.opponentPartyId){this.opponentVersion=e.getContent().version,this.opponentPartyId=e.getContent().party_id||null,this.opponentMember=e.sender,this.setState(l.Connecting);try{await this.peerConn.setRemoteDescription(e.getContent().answer)}catch(e){return i.a.debug("Failed to set remote description",e),void this.terminate(h.Local,m.SetRemoteDescription,!1)}if(null!==this.opponentPartyId)try{await this.sendVoipEvent(c.a.CallSelectAnswer,{selected_party_id:this.opponentPartyId})}catch(e){i.a.warn("Failed to send select_answer event",e)}}else i.a.info(`Ignoring answer from party ID ${e.getContent().party_id}: we already have an answer/reject from `+this.opponentPartyId)}async onSelectAnswerReceived(e){if(this.direction!==d.Inbound)return void i.a.warn("Got select_answer for an outbound call: ignoring");const t=e.getContent().selected_party_id;null!=t?t!==this.ourPartyId&&(i.a.info(`Got select_answer for party ID ${t}: we are party ID ${this.ourPartyId}.`),this.terminate(h.Remote,m.AnsweredElsewhere,!0)):i.a.warn("Got nonsensical select_answer with null/undefined selected_party_id: ignoring")}async onNegotiateReceived(e){const t=e.getContent().description;if(!t||!t.sdp||!t.type)return void i.a.info("Ignoring invalid m.call.negotiate event");const n=this.direction===d.Inbound,o="offer"===t.type&&(this.makingOffer||"stable"!=this.peerConn.signalingState);if(this.ignoreOffer=!n&&o,this.ignoreOffer)return void i.a.info("Ignoring colliding negotiate event because we're impolite");const r=this.isLocalOnHold();"answer"===t.type&&(this.unholdingRemote=!1);try{if(await this.peerConn.setRemoteDescription(t),"offer"===t.type){const e=await this.peerConn.createAnswer();await this.peerConn.setLocalDescription(e),this.sendVoipEvent(c.a.CallNegotiate,{description:this.peerConn.localDescription})}}catch(e){i.a.warn("Failed to complete negotiation",e)}const a=this.isLocalOnHold();r!==a&&(this.emit(p.LocalHoldUnhold,a),this.emit(p.HoldUnhold,a))}callHasEnded(){return this.state===l.Ended}async playRemoteAudio(){this.remoteVideoElement&&(this.remoteVideoElement.muted=!0),this.remoteAudioElement.muted=!1,this.remoteAudioElement.srcObject=this.remoteStream;try{v&&(i.a.info("Setting audio sink to "+v+", was "+this.remoteAudioElement.sinkId),await this.remoteAudioElement.setSinkId(v))}catch(e){i.a.warn("Couldn't set requested audio output device: using default",e)}try{await this.remoteAudioElement.play()}catch(e){i.a.error("Failed to play remote audio element",e)}}async playRemoteVideo(){this.remoteVideoElement.srcObject=this.remoteStream,i.a.info("playing remote video. stream active? "+this.remoteStream.active);try{await this.remoteVideoElement.play()}catch(e){i.a.info("Failed to play remote video element",e)}}setState(e){const t=this.state;this.state=e,this.emit(p.State,e,t)}sendVoipEvent(e,t){return this.client.sendEvent(this.roomId,e,Object.assign({},t,{version:1,call_id:this.callId,party_id:this.ourPartyId}))}queueCandidate(e){if(this.candidateSendQueue.push(e),this.state===l.Ringing||!this.inviteOrAnswerSent)return;const t=this.direction===d.Inbound?500:2e3;0===this.candidateSendTries&&setTimeout(()=>{this.sendCandidateQueue()},t)}async terminate(e,t,n){if(this.callHasEnded())return;this.inviteTimeout&&(clearTimeout(this.inviteTimeout),this.inviteTimeout=null);const o=this.getRemoteVideoElement(),r=this.getRemoteAudioElement(),a=this.getLocalVideoElement();if(o&&(o.pause(),o.srcObject=null),r){r.pause(),r.srcObject=null;try{await this.remoteAudioElement.setSinkId("")}catch(e){i.a.warn("Failed to set sink ID back to default")}}a&&(a.pause(),a.srcObject=null),this.hangupParty=e,this.hangupReason=t,this.setState(l.Ended),this.stopAllMedia(),this.peerConn&&"closed"!==this.peerConn.signalingState&&this.peerConn.close(),n&&this.emit(p.Hangup,this)}stopAllMedia(){if(i.a.debug(`stopAllMedia (stream=${this.localAVStream})`),this.localAVStream)for(const e of this.localAVStream.getTracks())e.stop();if(this.screenSharingStream)for(const e of this.screenSharingStream.getTracks())e.stop();if(this.remoteStream)for(const e of this.remoteStream.getTracks())e.stop()}checkForErrorListener(){if(0===this.listeners("error").length)throw new Error("You MUST attach an error listener using call.on('error', function() {})")}sendCandidateQueue(){if(0===this.candidateSendQueue.length)return;const e=this.candidateSendQueue;this.candidateSendQueue=[],++this.candidateSendTries;const t={candidates:e};i.a.debug("Attempting to send "+e.length+" candidates"),this.sendVoipEvent(c.a.CallCandidates,t).then(()=>{this.candidateSendTries=0,this.sendCandidateQueue()},t=>{for(let t=0;t5)return i.a.debug("Failed to send candidates on attempt "+this.candidateSendTries+". Giving up for now.",t),void(this.candidateSendTries=0);const n=500*Math.pow(2,this.candidateSendTries);++this.candidateSendTries,i.a.debug("Failed to send candidates. Retrying in "+n+"ms",t),setTimeout(()=>{this.sendCandidateQueue()},n)})}async placeCallWithConstraints(e){i.a.log("Getting user media with constraints",e),this.client._callEventHandler.calls.set(this.callId,this),this.setState(l.WaitLocalMedia),this.direction=d.Outbound,this.config=e;try{const t=await navigator.mediaDevices.getUserMedia(e);this.gotUserMediaForInvite(t)}catch(e){return void this.getUserMediaFailed(e)}}createPeerConnection(){const e=new window.RTCPeerConnection({iceTransportPolicy:this.forceTURN?"relay":void 0,iceServers:this.turnServers});return e.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChanged),e.addEventListener("signalingstatechange",this.onSignallingStateChanged),e.addEventListener("icecandidate",this.gotLocalIceCandidate),e.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),e.addEventListener("track",this.onTrack),e.addEventListener("negotiationneeded",this.onNegotiationNeeded),e}partyIdMatches(e){return(e.party_id||null)===this.opponentPartyId}}function _(e,t){for(let n=0;n{const i=await e.getSessionIdForDevice(s,!0);null===i?(o[t]=o[t]||[],o[t].push(n)):(r[t]=r[t]||{},r[t][a]={device:n,sessionId:i})})())}return await Promise.all(i),[o,r]}async function p(e,t,n,o,i,a){"number"==typeof o&&(a=i,i=o,o=!1);const s=[],c={},l={};for(const[t,i]of Object.entries(n)){c[t]={};for(const n of i){const i=n.deviceId,a=n.getIdentityKey();if(a===e.deviceCurve25519Key){r.a.info("Attempted to start session with ourself! Ignoring"),c[t][i]={device:n,sessionId:null};continue}e._sessionsInProgress[a]||(e._sessionsInProgress[a]=new Promise((t,n)=>{l[a]={resolve:(...n)=>{delete e._sessionsInProgress[a],t(...n)},reject:(...t)=>{delete e._sessionsInProgress[a],n(...t)}}}));const u=await e.getSessionIdForDevice(a,l[a]);null!==u&&l[a]&&(delete e._sessionsInProgress[a],l[a].resolve(),delete l[a]),(null===u||o)&&(o?r.a.info("Forcing new Olm session for "+t+":"+i):r.a.info("Making new Olm session for "+t+":"+i),s.push([t,i])),c[t][i]={device:n,sessionId:u}}}if(0===s.length)return c;let u;try{u=await t.claimOneTimeKeys(s,"signed_curve25519",i)}catch(e){for(const e of Object.values(l))e.resolve();throw r.a.log("failed to claim one-time keys",e,s),e}a&&"failures"in u&&a.push(...Object.keys(u.failures));const d=u.one_time_keys||{},h=[];for(const[t,i]of Object.entries(n)){const n=d[t]||{};for(let a=0;a{l[d]&&l[d].resolve(e),c[t][u].sessionId=e},e=>{throw l[d]&&l[d].resolve(),e}));else{const e="No one-time keys (alg=signed_curve25519) for device "+t+":"+u;r.a.warn(e),l[d]&&l[d].resolve()}}}return await Promise.all(h),c}async function m(e,t,n,o){const i=o.deviceId;try{await g(e,t,n,i,o.getFingerprint())}catch(e){return r.a.error("Unable to verify signature on one-time key for device "+n+":"+i+":",e),null}let a;try{a=await e.createOutboundSession(o.getIdentityKey(),t.key)}catch(e){return r.a.error("Error starting olm session with device "+n+":"+i+": "+e),null}return r.a.log("Started new olm sessionid "+a+" for device "+n+":"+i),a}async function g(e,t,n,o,r){const i="ed25519:"+o,a=((t.signatures||{})[n]||{})[i];if(!a)throw Error("No signature");const c=Object.assign({},t);delete c.unsigned,delete c.signatures;const l=s.a.stringify(c);e.verifySignature(r,l,a)}function f(t,n,o,r){let i=!1;if(n instanceof Uint8Array){const t=new e.Olm.PkSigning;r=t.init_with_seed(n),n=t,i=!0}const a=t.signatures||{};delete t.signatures;const c=t.unsigned;t.unsigned&&delete t.unsigned;try{const e=a[o]||{};return a[o]=e,e["ed25519:"+r]=n.sign(s.a.stringify(t))}finally{t.signatures=a,c&&(t.unsigned=c),i&&n.free()}}function _(t,n,o){const r="ed25519:"+n;if(!(t.signatures&&t.signatures[o]&&t.signatures[o][r]))throw new Error("No signature");const i=t.signatures[o][r],a=new e.Olm.Utility,c=t.signatures;delete t.signatures;const l=t.unsigned;t.unsigned&&delete t.unsigned;try{a.ed25519_verify(n,s.a.stringify(t),i)}finally{t.signatures=c,l&&(t.unsigned=l),a.free()}}function b(e){return o.from(e).toString("base64")}function v(e){return b(e).replace(/=+$/g,"")}function E(e){return o.from(e,"base64")}}.call(this,n(5),n(31).Buffer)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.closest=t.distance=t.patch=t.absolute=t.negate=t.isEqual=t.subtract=t.add=void 0;var o=i(n(329)),r=i(n(164));function i(e){return e&&e.__esModule?e:{default:e}}t.add=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},t.subtract=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},t.isEqual=function(e,t){return e.x===t.x&&e.y===t.y},t.negate=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},t.absolute=function(e){return{x:Math.abs(e.x),y:Math.abs(e.y)}},t.patch=function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return n={},(0,r.default)(n,e,t),(0,r.default)(n,"x"===e?"y":"x",o),n};var a=t.distance=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))};t.closest=function(e,t){return Math.min.apply(Math,(0,o.default)(t.map((function(t){return a(e,t)}))))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"c",(function(){return l})),n.d(t,"b",(function(){return u})),n.d(t,"d",(function(){return h})),n.d(t,"e",(function(){return p}));var o=n(83);function r(){return[Object(o.a)("Sun"),Object(o.a)("Mon"),Object(o.a)("Tue"),Object(o.a)("Wed"),Object(o.a)("Thu"),Object(o.a)("Fri"),Object(o.a)("Sat")]}function i(){return[Object(o.a)("Jan"),Object(o.a)("Feb"),Object(o.a)("Mar"),Object(o.a)("Apr"),Object(o.a)("May"),Object(o.a)("Jun"),Object(o.a)("Jul"),Object(o.a)("Aug"),Object(o.a)("Sep"),Object(o.a)("Oct"),Object(o.a)("Nov"),Object(o.a)("Dec")]}function a(e){return(e<10?"0":"")+e}function s(e,t=!1){let n=e.getHours()%12;const r=a(e.getMinutes()),i=e.getHours()>=12?Object(o.a)("PM"):Object(o.a)("AM");if(n=n||12,t){return`${n}:${r}:${a(e.getSeconds())}${i}`}return`${n}:${r}${i}`}function c(e,t=!1){const n=new Date,a=r(),s=i();return e.toDateString()===n.toDateString()?h(e,t):n.getTime()-e.getTime()<5184e5?Object(o.a)("%(weekDayName)s %(time)s",{weekDayName:a[e.getDay()],time:h(e,t)}):n.getFullYear()===e.getFullYear()?Object(o.a)("%(weekDayName)s, %(monthName)s %(day)s %(time)s",{weekDayName:a[e.getDay()],monthName:s[e.getMonth()],day:e.getDate(),time:h(e,t)}):u(e,t)}function l(e){const t=r(),n=i();return Object(o.a)("%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s",{weekDayName:t[e.getDay()],monthName:n[e.getMonth()],day:e.getDate(),fullYear:e.getFullYear()})}function u(e,t=!1){const n=r(),a=i();return Object(o.a)("%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",{weekDayName:n[e.getDay()],monthName:a[e.getMonth()],day:e.getDate(),fullYear:e.getFullYear(),time:d(e,t)})}function d(e,t=!1){return t?s(e,!0):a(e.getHours())+":"+a(e.getMinutes())+":"+a(e.getSeconds())}function h(e,t=!1){return t?s(e):a(e.getHours())+":"+a(e.getMinutes())}function p(e,t){return!(!t||!e)&&(Math.abs(e.getTime()-t.getTime())>864e5||e.getDay()!==t.getDay())}},function(e,t,n){var o=n(621),r="object"==typeof self&&self&&self.Object===Object&&self,i=o||r||Function("return this")();e.exports=i},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var o=n(1);function r(e,t,n,r,i,a){if("string"!=typeof t||!t)return"";if(0!==t.indexOf("mxc://"))return a?t:"";let s=t.slice(6),c="/_matrix/media/r0/download/";const l={};n&&(l.width=Math.round(n)),r&&(l.height=Math.round(r)),i&&(l.method=i),o.t(l).length>0&&(c="/_matrix/media/r0/thumbnail/");const u=s.indexOf("#");let d="";return u>=0&&(d=s.substr(u),s=s.substr(0,u)),e+c+s+(0===o.t(l).length?"":"?"+o.e(l))+d}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return l}));var o=n(6),r=n(1),i=n(0);const a={NOT_SENT:"not_sent",ENCRYPTING:"encrypting",SENDING:"sending",QUEUED:"queued",SENT:"sent",CANCELLED:"cancelled"},s={};function c(e){return s[e]||(s[e]=e),s[e]}const l=function(e){["state_key","type","sender","room_id","membership"].forEach(t=>{e[t]&&(e[t]=c(e[t]))}),["membership","avatar_url","displayname"].forEach(t=>{e.content&&e.content[t]&&(e.content[t]=c(e.content[t]))}),["rel_type"].forEach(t=>{e.content&&e.content["m.relates_to"]&&e.content["m.relates_to"][t]&&(e.content["m.relates_to"][t]=c(e.content["m.relates_to"][t]))}),this.event=e||{},this.sender=null,this.target=null,this.status=null,this.error=null,this.forwardLooking=!0,this._pushActions=null,this._replacingEvent=null,this._localRedactionEvent=null,this._isCancelled=!1,this._clearEvent={},this._senderCurve25519Key=null,this._claimedEd25519Key=null,this._forwardingCurve25519KeyChain=[],this._untrusted=null,this._decryptionPromise=null,this._retryDecryption=!1,this.verificationRequest=null,this._txnId=null,this._localTimestamp=Date.now()-this.getAge()};r.o(l,o.EventEmitter),r.i(l.prototype,{getId:function(){return this.event.event_id},getSender:function(){return this.event.sender||this.event.user_id},getType:function(){return this._clearEvent.type||this.event.type},getWireType:function(){return this.event.type},getRoomId:function(){return this.event.room_id},getTs:function(){return this.event.origin_server_ts},getDate:function(){return this.event.origin_server_ts?new Date(this.event.origin_server_ts):null},getOriginalContent:function(){return this._localRedactionEvent?{}:this._clearEvent.content||this.event.content||{}},getContent:function(){return this._localRedactionEvent?{}:this._replacingEvent?this._replacingEvent.getContent()["m.new_content"]||{}:this.getOriginalContent()},getWireContent:function(){return this.event.content||{}},getPrevContent:function(){return this.getUnsigned().prev_content||this.event.prev_content||{}},getDirectionalContent:function(){return this.forwardLooking?this.getContent():this.getPrevContent()},getAge:function(){return this.getUnsigned().age||this.event.age},getLocalAge:function(){return Date.now()-this._localTimestamp},getStateKey:function(){return this.event.state_key},isState:function(){return void 0!==this.event.state_key},makeEncrypted:function(e,t,n,o){this._clearEvent={type:this.event.type,content:this.event.content},this.event.type=e,this.event.content=t,this._senderCurve25519Key=n,this._claimedEd25519Key=o},isBeingDecrypted:function(){return null!=this._decryptionPromise},isDecryptionFailure:function(){return this._clearEvent&&this._clearEvent.content&&"m.bad.encrypted"===this._clearEvent.content.msgtype},attemptDecryption:async function(e,t){if(!this.isEncrypted())throw new Error("Attempt to decrypt event which isn't encrypted");if(this._clearEvent&&this._clearEvent.content&&"m.bad.encrypted"!==this._clearEvent.content.msgtype)throw new Error("Attempt to decrypt event which has already been decrypted");return this._decryptionPromise?(i.a.log(`Event ${this.getId()} already being decrypted; queueing a retry`),this._retryDecryption=!0,this._decryptionPromise):(this._decryptionPromise=this._decryptionLoop(e,t),this._decryptionPromise)},cancelAndResendKeyRequest:function(e,t){const n=this.getWireContent();return e.requestRoomKey({algorithm:n.algorithm,room_id:this.getRoomId(),session_id:n.session_id,sender_key:n.sender_key},this.getKeyRequestRecipients(t),!0)},getKeyRequestRecipients:function(e){const t=this.getWireContent(),n=[{userId:e,deviceId:"*"}],o=this.getSender();return o!==e&&n.push({userId:o,deviceId:t.device_id}),n},_decryptionLoop:async function(e,t){for(await Promise.resolve();;){let n,o;this._retryDecryption=!1;try{e?(n=await e.decryptEvent(this),t&&i.a.info(`Decrypted event on retry (id=${this.getId()})`)):n=this._badEncryptedMessage("Encryption not enabled")}catch(e){if("DecryptionError"!==e.name){const n=t?"re":"";return i.a.error(`Error ${n}decrypting event (id=${this.getId()}): ${e.stack||e}`),this._decryptionPromise=null,void(this._retryDecryption=!1)}if(o=e,this._retryDecryption){i.a.log(`Got error decrypting event (id=${this.getId()}: `+e+"), but retrying");continue}i.a.warn(`Error decrypting event (id=${this.getId()}): ${e.detailedString}`),n=this._badEncryptedMessage(e.message)}return this._decryptionPromise=null,this._retryDecryption=!1,this._setClearData(n),this.setPushActions(null),void this.emit("Event.decrypted",this,o)}},_badEncryptedMessage:function(e){return{clearEvent:{type:"m.room.message",content:{msgtype:"m.bad.encrypted",body:"** Unable to decrypt: "+e+" **"}}}},_setClearData:function(e){this._clearEvent=e.clearEvent,this._senderCurve25519Key=e.senderCurve25519Key||null,this._claimedEd25519Key=e.claimedEd25519Key||null,this._forwardingCurve25519KeyChain=e.forwardingCurve25519KeyChain||[],this._untrusted=e.untrusted||!1},getClearContent:function(){const e=this._clearEvent;return e&&e.content?e.content:null},isEncrypted:function(){return!this.isState()&&"m.room.encrypted"===this.event.type},getSenderKey:function(){return this._senderCurve25519Key},getKeysClaimed:function(){return{ed25519:this._claimedEd25519Key}},getClaimedEd25519Key:function(){return this._claimedEd25519Key},getForwardingCurve25519KeyChain:function(){return this._forwardingCurve25519KeyChain},isKeySourceUntrusted:function(){return this._untrusted},getUnsigned:function(){return this.event.unsigned||{}},unmarkLocallyRedacted:function(){const e=this._localRedactionEvent;return this._localRedactionEvent=null,this.event.unsigned&&(this.event.unsigned.redacted_because=null),!!e},markLocallyRedacted:function(e){this._localRedactionEvent||(this.emit("Event.beforeRedaction",this,e),this._localRedactionEvent=e,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event)},makeRedacted:function(e){if(!e.event)throw new Error("invalid redaction_event in makeRedacted");let t;for(t in this._localRedactionEvent=null,this.emit("Event.beforeRedaction",this,e),this._replacingEvent=null,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event,this.event)this.event.hasOwnProperty(t)&&(u[t]||delete this.event[t]);const n=d[this.getType()]||{},o=this.getContent();for(t in o)o.hasOwnProperty(t)&&(n[t]||delete o[t])},isRedacted:function(){return Boolean(this.getUnsigned().redacted_because)},isRedaction:function(){return"m.room.redaction"===this.getType()},getPushActions:function(){return this._pushActions},setPushActions:function(e){this._pushActions=e},handleRemoteEcho:function(e){const t=this.getUnsigned(),n=this.getId();this.event=e,t.redacted_because&&(this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=t.redacted_because),this.setStatus(null),this.getId()!==n&&this.emit("Event.localEventIdReplaced",this)},isSending(){return!!this.status},setStatus(e){this.status=e,this.emit("Event.status",this,e)},replaceLocalEventId(e){this.event.event_id=e,this.emit("Event.localEventIdReplaced",this)},isRelation(e){const t=this.getWireContent(),n=t&&t["m.relates_to"];return n&&n.rel_type&&n.event_id&&(e&&n.rel_type===e||!e)},getRelation(){return this.isRelation()?this.getWireContent()["m.relates_to"]:null},makeReplaced(e){this.isRedacted()&&e||this._replacingEvent!==e&&(this._replacingEvent=e,this.emit("Event.replaced",this))},getAssociatedStatus(){return this._replacingEvent?this._replacingEvent.status:this._localRedactionEvent?this._localRedactionEvent.status:this.status},getServerAggregatedRelation(e){const t=this.getUnsigned()["m.relations"];if(t)return t[e]},replacingEventId(){const e=this.getServerAggregatedRelation("m.replace");return e?e.event_id:this._replacingEvent?this._replacingEvent.getId():void 0},replacingEvent(){return this._replacingEvent},replacingEventDate(){const e=this.getServerAggregatedRelation("m.replace");if(e){const t=e.origin_server_ts;if(Number.isFinite(t))return new Date(t)}else if(this._replacingEvent)return this._replacingEvent.getDate()},localRedactionEvent(){return this._localRedactionEvent},getAssociatedId(){const e=this.getRelation();return e?e.event_id:this.isRedaction()?this.event.redacts:void 0},hasAssocation(){return!!this.getAssociatedId()},updateAssociatedId(e){const t=this.getRelation();t?t.event_id=e:this.isRedaction()&&(this.event.redacts=e)},flagCancelled(e=!0){this._isCancelled=e},isCancelled(){return this._isCancelled},toJSON(){const e={type:this.getType(),sender:this.getSender(),content:this.getContent(),event_id:this.getId(),origin_server_ts:this.getTs(),unsigned:this.getUnsigned(),room_id:this.getRoomId()};return this.isRedaction()&&(e.redacts=this.event.redacts),this.isEncrypted()?{decrypted:e,encrypted:this.event}:e},setVerificationRequest:function(e){this.verificationRequest=e},setTxnId(e){this._txnId=e},getTxnId(){return this._txnId}});const u=["event_id","type","room_id","user_id","sender","state_key","prev_state","content","unsigned","origin_server_ts"].reduce((function(e,t){return e[t]=1,e}),{}),d={"m.room.member":{membership:1},"m.room.create":{creator:1},"m.room.join_rules":{join_rule:1},"m.room.power_levels":{ban:1,events:1,events_default:1,kick:1,redact:1,state_default:1,users:1,users_default:1},"m.room.aliases":{aliases:1}}},function(e,t,n){"use strict";function o(e,t){return new Promise(n=>{setTimeout(n,e,t)})}async function r(e,t,n){const o=new Promise(o=>{const r=setTimeout(o,n,t);e.then(()=>{clearTimeout(r)})});return Promise.race([e,o])}function i(){let e,t;const n=new Promise((n,o)=>{e=n,t=o});return{resolve:e,reject:t,promise:n}}function a(e){return Promise.allSettled?Promise.allSettled(e):Promise.all(e.map(e=>e.then(e=>({status:"fulfilled",value:e})).catch(e=>({status:"rejected",reason:e}))))}async function s(e,t,n){let o;for(let r=0;r1&&void 0!==arguments[1]?arguments[1]:o,n=void 0,r=[],i=void 0,a=!1,s=function(e,n){return t(e,r[n])},c=function(){for(var t=arguments.length,o=Array(t),c=0;ce instanceof i).find(t=>t.matches(e));return t||new i(e,e)}}r()(i,"JITSI",new i("m.jitsi","jitsi")),r()(i,"STICKERPICKER",new i("m.stickerpicker","m.stickerpicker")),r()(i,"INTEGRATION_MANAGER",new i("m.integration_manager","m.integration_manager")),r()(i,"CUSTOM",new i("m.custom","m.custom"))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var o=n(82),r=n.n(o),i=n(6),a=n.n(i);class s extends a.a{constructor(...e){super(...e),r()(this,"toasts",[]),r()(this,"countSeen",0)}static sharedInstance(){return window.mxToastStore||(window.mxToastStore=new s),window.mxToastStore}reset(){this.toasts=[],this.countSeen=0}addOrReplaceToast(e){const t=this.toasts.findIndex(t=>t.key===e.key);if(-1===t){let t=this.toasts.length;for(;t>0&&this.toasts[t-1].priorityt.key!==e),t!==this.toasts.length&&(0===this.toasts.length&&(this.countSeen=0),this.emit("update"))}getToasts(){return this.toasts}getCountSeen(){return this.countSeen}}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(805)},function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(684),c=n.n(s),l=n(84),u=n.n(l),d=n(90),h=n.n(d),p=n(98),m=n(91),g=n(86),f=n(83),_=n(97);class b extends a.a.Component{constructor(e){super(e),r()(this,"_onKeyDown",e=>{this.props.onKeyDown&&this.props.onKeyDown(e),this.props.hasCancel&&e.key===p.a.ESCAPE&&(e.stopPropagation(),e.preventDefault(),this.props.onFinished(!1))}),r()(this,"_onCancelClick",e=>{this.props.onFinished(!1)}),this._matrixClient=g.a.get()}render(){let e,t;return this.props.hasCancel&&(e=a.a.createElement(m.a,{onClick:this._onCancelClick,className:"mx_Dialog_cancelButton","aria-label":Object(f.a)("Close dialog")})),this.props.headerImage&&(t=a.a.createElement("img",{className:"mx_Dialog_titleImage",src:this.props.headerImage,alt:""})),a.a.createElement(_.a.Provider,{value:this._matrixClient},a.a.createElement(c.a,{returnFocus:!0,lockProps:{onKeyDown:this._onKeyDown,role:"dialog","aria-labelledby":"mx_BaseDialog_title","aria-describedby":this.props.contentId},className:h()({[this.props.className]:!0,mx_Dialog_fixedWidth:this.props.fixedWidth})},a.a.createElement("div",{className:h()("mx_Dialog_header",{mx_Dialog_headerWithButton:!!this.props.headerButton,mx_Dialog_headerWithCancel:!!e})},a.a.createElement("div",{className:h()("mx_Dialog_title",this.props.titleClass),id:"mx_BaseDialog_title"},t,this.props.title),this.props.headerButton,e),this.props.children))}}r()(b,"propTypes",{onFinished:u.a.func.isRequired,hasCancel:u.a.bool,onKeyDown:u.a.func,className:u.a.string,fixedWidth:u.a.bool,title:u.a.node.isRequired,headerImage:u.a.string,children:u.a.node,contentId:u.a.string,titleClass:u.a.oneOfType([u.a.string,u.a.object,u.a.arrayOf(u.a.string)])}),r()(b,"defaultProps",{hasCancel:!0,fixedWidth:!0})},function(e,t,n){(function(e){var o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},o=0;o=i)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(e){return"[Circular]"}default:return e}})),c=o[n];n=3&&(o.depth=arguments[2]),arguments.length>=4&&(o.colors=arguments[3]),m(n)?o.showHidden=n:n&&t._extend(o,n),b(o.showHidden)&&(o.showHidden=!1),b(o.depth)&&(o.depth=2),b(o.colors)&&(o.colors=!1),b(o.customInspect)&&(o.customInspect=!0),o.colors&&(o.stylize=c),u(o,e,o.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function l(e,t){return e}function u(e,n,o){if(e.customInspect&&n&&T(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var r=n.inspect(o,e);return _(r)||(r=u(e,r,o)),r}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(f(t))return e.stylize(""+t,"number");if(m(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return d(n);if(0===a.length){if(T(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(v(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(y(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return d(n)}var l,E="",w=!1,C=["{","}"];(p(n)&&(w=!0,C=["[","]"]),T(n))&&(E=" [Function"+(n.name?": "+n.name:"")+"]");return v(n)&&(E=" "+RegExp.prototype.toString.call(n)),y(n)&&(E=" "+Date.prototype.toUTCString.call(n)),S(n)&&(E=" "+d(n)),0!==a.length||w&&0!=n.length?o<0?v(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=w?function(e,t,n,o,r){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,E,C)):C[0]+E+C[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,o,r,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,r)||{value:t[r]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),k(o,r)||(a="["+r+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?u(e,c.value,null):u(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&r.match(/^\d+$/))return s;(a=JSON.stringify(""+r)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function g(e){return null===e}function f(e){return"number"==typeof e}function _(e){return"string"==typeof e}function b(e){return void 0===e}function v(e){return E(e)&&"[object RegExp]"===w(e)}function E(e){return"object"==typeof e&&null!==e}function y(e){return E(e)&&"[object Date]"===w(e)}function S(e){return E(e)&&("[object Error]"===w(e)||e instanceof Error)}function T(e){return"function"==typeof e}function w(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var o=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,o,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=m,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=f,t.isString=_,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=v,t.isObject=E,t.isDate=y,t.isError=S,t.isFunction=T,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(811);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),x[e.getMonth()],t].join(" ")}function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",O(),t.format.apply(t,arguments))},t.inherits=n(812),t._extend=function(e,t){if(!t||!E(t))return e;for(var n=Object.keys(t),o=n.length;o--;)e[n[o]]=t[n[o]];return e};var R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function A(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(R&&e[R]){var t;if("function"!=typeof(t=e[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,R,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,o=new Promise((function(e,o){t=e,n=o})),r=[],i=0;i{this._usersPending[t].resolve=e,this._usersPending[t].reject=n}).then(e=>(this._userGroups[t]=e,setTimeout(()=>{delete this._userGroups[t]},18e5),this._userGroups[t])).catch(e=>{if("M_UNRECOGNIZED"===e.errcode)return console.warn("Cannot display flair, server does not support groups"),void(i=!1);throw console.error("Could not get groups for user",t,e),e}).finally(()=>{delete this._usersInFlight[t]}),this._debounceTimeoutID&&clearTimeout(this._debounceTimeoutID),this._debounceTimeoutID=setTimeout(()=>{this._batchedGetPublicGroups(e)},200),this._usersPending[t].prom)}async _batchedGetPublicGroups(e){this._usersInFlight=this._usersPending,this._usersPending={};let t={users:[]};try{t=await e.getPublicisedGroups(Object.keys(this._usersInFlight))}catch(e){return void Object.keys(this._usersInFlight).forEach(t=>{this._usersInFlight[t]&&this._usersInFlight[t].reject(e)})}const n=t.users;Object.keys(this._usersInFlight).forEach(e=>{this._usersInFlight[e]&&this._usersInFlight[e].resolve(n[e]||[])})}getGroupProfileCachedFast(e,t){return e&&t?this._groupProfiles[t]?this._groupProfiles[t]:(this.getGroupProfileCached(e,t),null):null}async getGroupProfileCached(e,t){if(this._groupProfiles[t])return this._groupProfiles[t];if(this._groupProfilesPromise[t]){try{await this._groupProfilesPromise[t]}catch(e){return null}return this._groupProfiles[t]}let n;console.log("FlairStore: Request group profile of "+t),this._groupProfilesPromise[t]=e.getGroupProfile(t);try{n=await this._groupProfilesPromise[t]}catch(e){return console.log("FlairStore: Failed to get group profile for "+t,e),delete this._groupProfilesPromise[t],null}return this._groupProfiles[t]={groupId:t,avatarUrl:n.avatar_url,name:n.name,shortDescription:n.short_description},delete this._groupProfilesPromise[t],console.log("FlairStore: Emit updateGroupProfile for "+t),this.emit("updateGroupProfile"),setTimeout(()=>{this.refreshGroupProfile(e,t)},18e5),this._groupProfiles[t]}refreshGroupProfile(e,t){return delete this._groupProfiles[t],this.getGroupProfileCached(e,t)}}void 0===e.singletonFlairStore&&(e.singletonFlairStore=new a),t.a=e.singletonFlairStore}).call(this,n(5))},function(e,t,n){var o=n(575);function r(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return r=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var t=r();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return S})),n.d(t,"b",(function(){return w}));var o=n(82),r=n.n(o),i=n(88),a=n(119),s=n(236),c=n(87),l=n(589),u=n(335),d=n(1625),h=n(115),p=n(1621),m=n(191),g=n(1),f=n(800),_=n(1284),b=n(139),v=n(692),E=n(171),y=n(802);const S="lists_update";class T extends b.a{constructor(){super(c.a),r()(this,"initialListsGenerated",!1),r()(this,"algorithm",new p.a),r()(this,"filterConditions",[]),r()(this,"tagWatcher",new d.a(this)),r()(this,"updateFn",new _.a(()=>{for(const e of Object.keys(this.unfilteredLists))E.a.instance.getListState(e).setRooms(this.unfilteredLists[e]);this.emit(S)})),r()(this,"watchedSettings",["feature_custom_tags","advancedRoomListLogging"]),r()(this,"onAlgorithmListUpdated",()=>{i.a.getValue("advancedRoomListLogging")&&console.log("Underlying algorithm has triggered a list update - marking"),this.updateFn.mark()}),r()(this,"onAlgorithmFilterUpdated",()=>{this.updateFn.trigger()}),this.checkLoggingEnabled();for(const e of this.watchedSettings)i.a.monitorSetting(e,null);h.a.addListener(()=>this.handleRVSUpdate({})),this.algorithm.on(p.b,this.onAlgorithmListUpdated),this.algorithm.on(u.a,this.onAlgorithmFilterUpdated)}get unfilteredLists(){return this.algorithm?this.algorithm.getUnfilteredRooms():{}}get orderedLists(){return this.algorithm?this.algorithm.getOrderedRooms():{}}get matrixClient(){return super.matrixClient}async resetStore(){await this.reset(),this.tagWatcher=new d.a(this),this.filterConditions=[],this.initialListsGenerated=!1,this.algorithm.off(p.b,this.onAlgorithmListUpdated),this.algorithm.off(u.a,this.onAlgorithmListUpdated),this.algorithm=new p.a,this.algorithm.on(p.b,this.onAlgorithmListUpdated),this.algorithm.on(u.a,this.onAlgorithmListUpdated),await this.reset(null,!0)}async makeReady(e){e&&(super.matrixClient=e),this.checkLoggingEnabled(),console.log("Regenerating room lists: Startup"),await this.readAndCacheSettingsFromStore(),await this.regenerateAllLists({trigger:!1}),await this.handleRVSUpdate({trigger:!1}),this.updateFn.mark(),this.updateFn.trigger()}checkLoggingEnabled(){i.a.getValue("advancedRoomListLogging")&&console.warn("Advanced room list logging is enabled")}async readAndCacheSettingsFromStore(){const e=i.a.getValue("feature_custom_tags");await this.updateState({tagsEnabled:e}),await this.updateAlgorithmInstances()}async handleRVSUpdate({trigger:e=!0}){if(!this.matrixClient)return;const t=h.a.getRoomId();if(!t&&this.algorithm.stickyRoom)await this.algorithm.setStickyRoom(null);else if(t){const e=this.matrixClient.getRoom(t);e?e!==this.algorithm.stickyRoom&&(i.a.getValue("advancedRoomListLogging")&&console.log("Changing sticky room to "+t),await this.algorithm.setStickyRoom(e)):(console.warn(t+" is current in RVS but missing from client - clearing sticky room"),await this.algorithm.setStickyRoom(null))}e&&this.updateFn.trigger()}async onReady(){await this.makeReady()}async onNotReady(){await this.resetStore()}async onAction(t){this.matrixClient&&this.initialListsGenerated&&(T.TEST_MODE?await this.onDispatchAsync(t):e(()=>this.onDispatchAsync(t)))}async onDispatchAsync(e){if(this.matrixClient&&this.initialListsGenerated){if("setting_updated"===e.action&&this.watchedSettings.includes(e.settingName)){if("advancedRoomListLogging"===e.settingName){const e=i.a.getValue("advancedRoomListLogging");return void console.warn("Advanced room list logging is enabled? "+e)}console.log("Regenerating room lists: Settings changed"),await this.readAndCacheSettingsFromStore(),await this.regenerateAllLists({trigger:!1}),this.updateFn.trigger()}if(!this.algorithm)throw new Error("Room list store has no algorithm to process dispatcher update with");if("MatrixActions.Room.receipt"===e.action){if(Object(l.a)(e.event,this.matrixClient)){const t=e.room;return t?(i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Got own read receipt in "+t.roomId),await this.handleRoomUpdate(t,a.c.ReadReceipt),void this.updateFn.trigger()):void console.warn("Own read receipt was in unknown room "+t.roomId)}}else if("MatrixActions.Room.tags"===e.action){const t=e;i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Got tag change in "+t.room.roomId),await this.handleRoomUpdate(t.room,a.c.PossibleTagChange),this.updateFn.trigger()}else if("MatrixActions.Room.timeline"===e.action){const t=e;if(!t.isLiveEvent||!e.isLiveUnfilteredRoomTimelineEvent)return;const n=t.event.getRoomId(),o=this.matrixClient.getRoom(n),r=async e=>{if(i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Live timeline event "+t.event.getId()+" in "+e.roomId),"m.room.tombstone"===t.event.getType()&&""===t.event.getStateKey()){i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Got tombstone event - trying to remove now-dead room");if(this.matrixClient.getRoom(t.event.getContent().replacement_room))return}await this.handleRoomUpdate(e,a.c.Timeline),this.updateFn.trigger()};if(!o)return console.warn(`Live timeline event ${t.event.getId()} received without associated room`),console.warn("Queuing failed room update for retry as a result."),void setTimeout(async()=>{const e=this.matrixClient.getRoom(n);await r(e)},100);await r(o)}else if("MatrixActions.Event.decrypted"===e.action){const t=e,n=t.event.getRoomId(),o=this.matrixClient.getRoom(n);if(!o)return void console.warn(`Event ${t.event.getId()} was decrypted in an unknown room ${n}`);i.a.getValue("advancedRoomListLogging")&&console.log(`[RoomListDebug] Decrypted timeline event ${t.event.getId()} in ${n}`),await this.handleRoomUpdate(o,a.c.Timeline),this.updateFn.trigger()}else if("MatrixActions.accountData"===e.action&&"m.direct"===e.event_type){const t=e;i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Received updated DM map");const n=t.event.getContent();for(const e of Object.keys(n)){const t=n[e];for(const e of t){const t=this.matrixClient.getRoom(e);t?await this.handleRoomUpdate(t,a.c.PossibleTagChange):console.warn(e+" was found in DMs but the room is not in the store")}}this.updateFn.trigger()}else if("MatrixActions.Room.myMembership"===e.action){const t=e,n=Object(m.b)(t.oldMembership),o=Object(m.b)(t.membership);if(n!==m.a.Join&&o===m.a.Join){i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Handling new room "+t.room.roomId);const e=t.room.currentState.getStateEvents("m.room.create","");if(e&&e.getContent().predecessor){i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Room has a predecessor");const t=this.matrixClient.getRoom(e.getContent().predecessor.room_id);if(t){this.algorithm.stickyRoom===t&&(i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Clearing sticky room due to room upgrade"),await this.algorithm.setStickyRoom(null)),i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Removing previous room from room list"),await this.algorithm.handleRoomUpdate(t,a.c.RoomRemoved)}}return i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Adding new room to room list"),await this.handleRoomUpdate(t.room,a.c.NewRoom),void this.updateFn.trigger()}if(n!==m.a.Invite&&o===m.a.Invite)return i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Handling invite to "+t.room.roomId),await this.handleRoomUpdate(t.room,a.c.NewRoom),void this.updateFn.trigger();if(n!==o)return i.a.getValue("advancedRoomListLogging")&&console.log("[RoomListDebug] Handling membership change in "+t.room.roomId),await this.handleRoomUpdate(t.room,a.c.PossibleTagChange),void this.updateFn.trigger()}}}async handleRoomUpdate(e,t){if(!y.a.instance.isRoomVisible(e))return;await this.algorithm.handleRoomUpdate(e,t)&&(i.a.getValue("advancedRoomListLogging")&&console.log(`[DEBUG] Room "${e.name}" (${e.roomId}) triggered by ${t} requires list update`),this.updateFn.mark())}async setTagSorting(e,t){await this.setAndPersistTagSorting(e,t),this.updateFn.trigger()}async setAndPersistTagSorting(e,t){await this.algorithm.setTagSorting(e,t),localStorage.setItem("mx_tagSort_"+e,t)}getTagSorting(e){return this.algorithm.getTagSorting(e)}getStoredTagSorting(e){return localStorage.getItem("mx_tagSort_"+e)}calculateTagSorting(e){const t=e===a.a.Invite||e===a.a.DM?s.b.Recent:s.b.Alphabetic,n=i.a.getValue("RoomList.orderAlphabetically",null,!0),o=this.getTagSorting(e),r=this.getStoredTagSorting(e);let c=t;return r?c=r:Object(g.r)(n)?o&&(c=o):c=n?s.b.Alphabetic:s.b.Recent,c}async setListOrder(e,t){await this.setAndPersistListOrder(e,t),this.updateFn.trigger()}async setAndPersistListOrder(e,t){await this.algorithm.setListOrdering(e,t),localStorage.setItem("mx_listOrder_"+e,t)}getListOrder(e){return this.algorithm.getListOrdering(e)}getStoredListOrder(e){return localStorage.getItem("mx_listOrder_"+e)}calculateListOrder(e){const t=s.a.Natural,n=i.a.getValue("RoomList.orderByImportance",null,!0),o=this.getListOrder(e),r=this.getStoredListOrder(e);let a=t;return r?a=r:Object(g.r)(n)?o&&(a=o):a=n?s.a.Importance:s.a.Natural,a}async updateAlgorithmInstances(){this.updateFn.mark();for(const e of Object.keys(this.orderedLists)){const t=this.getTagSorting(e),n=this.getListOrder(e),o=this.calculateTagSorting(e),r=this.calculateListOrder(e);o!==t&&await this.setAndPersistTagSorting(e,o),r!==n&&await this.setAndPersistListOrder(e,r)}}async regenerateAllLists({trigger:e=!0}){console.warn("Regenerating all room lists");const t=this.matrixClient.getVisibleRooms().filter(e=>y.a.instance.isRoomVisible(e)),n=new Set;if(this.state.tagsEnabled)for(const e of t){if(!e.tags)continue;Object.keys(e.tags).filter(e=>Object(a.d)(e)).forEach(e=>n.add(e))}const o={},r={},i=[...a.b,...Array.from(n)];for(const e of i)o[e]=this.calculateTagSorting(e),r[e]=this.calculateListOrder(e),f.a.instance.ensureLayoutExists(e);await this.algorithm.populateTags(o,r),await this.algorithm.setKnownRooms(t),this.initialListsGenerated=!0,e&&this.updateFn.trigger()}addFilter(e){i.a.getValue("advancedRoomListLogging")&&console.log("Adding filter condition:",e),this.filterConditions.push(e),this.algorithm&&this.algorithm.addFilterCondition(e),this.updateFn.trigger()}removeFilter(e){i.a.getValue("advancedRoomListLogging")&&console.log("Removing filter condition:",e);const t=this.filterConditions.indexOf(e);t>=0&&(this.filterConditions.splice(t,1),this.algorithm&&this.algorithm.removeFilterCondition(e)),this.updateFn.trigger()}getFirstNameFilterCondition(){for(const e of this.filterConditions)if(e instanceof v.a)return e;return null}getTagsForRoom(e){const t=this.algorithm.getTagsForRoom(e);return t||[a.a.Untagged]}}r()(T,"TEST_MODE",!1);class w{static get instance(){return w.internalInstance||(w.internalInstance=new T),w.internalInstance}}r()(w,"internalInstance",void 0),window.mxRoomListStore=w.instance}).call(this,n(147).setImmediate)},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"f",(function(){return i})),n.d(t,"e",(function(){return a})),n.d(t,"c",(function(){return s})),n.d(t,"d",(function(){return c})),n.d(t,"a",(function(){return l}));var o=n(116);function r(e,t){const n=new Map(Object.entries(e));for(const e of t)n.delete(e);return Array.from(n.entries()).reduce((e,[t,n])=>(e[t]=n,e),{})}function i(e,t){const n=Object.keys(e),i=Object(o.b)(n,t);return 0===i.removed.length?a(e):r(e,i.removed)}function a(e,t){const n={};for(const[o,r]of Object.entries(e))n[o]=r,t&&(n[o]=t(o,r));return n}function s(e,t){const n=Object.keys(e),r=Object.keys(t);if(Object(o.d)(n,r))return!0;return Object(o.g)(n,r).some(n=>e[n]!==t[n])}function c(e,t){const n=function(e,t){const n=Object.keys(e),r=Object.keys(t),i=Object(o.b)(n,r);return{changed:Object(o.g)(n,r).filter(n=>e[n]!==t[n]),added:i.added,removed:i.removed}}(e,t);return Object(o.f)(n.removed,n.added,n.changed)}function l(e){return JSON.parse(JSON.stringify(e))}},function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"d",(function(){return i})),n.d(t,"a",(function(){return a})),n.d(t,"e",(function(){return s})),n.d(t,"f",(function(){return c})),n.d(t,"b",(function(){return l}));var o=n(83);function r(e){return e<1e3?e.toString():e<1e4?(e/1e3).toFixed(1)+"K":e<1e5?(e/1e3).toFixed(0)+"K":e<1e7?(e/1e6).toFixed(1)+"M":e<1e8?(e/1e6).toFixed(0)+"M":(e/1e9).toFixed(1)+"B"}function i(e){return(new Intl.NumberFormat).format(e)}function a(e,t=2){if(0===e)return"0 Bytes";const n=t<0?0:t,o=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,o)).toFixed(n))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][o]}function s(e){return e.match(/.{1,4}/g).join(" ")}function c(e){return"mx_Username_color"+(function(e){let t,n,o=0;if(0===e.length)return o;for(t=0;t0)return e=e.slice(0,t),Object(o.a)("%(items)s and %(count)s others",{items:e.join(", "),count:n});{const t=e.pop();return Object(o.a)("%(items)s and %(lastItem)s",{items:e.join(", "),lastItem:t})}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(84),c=n.n(s),l=n(90),u=n.n(l),d=n(85),h=n(83);class p extends a.a.Component{constructor(...e){super(...e),r()(this,"onOk",()=>{this.props.onFinished(!0)}),r()(this,"onCancel",()=>{this.props.onFinished(!1)})}render(){const e=d.getComponent("views.dialogs.BaseDialog"),t=d.getComponent("views.elements.DialogButtons");let n="";return this.props.danger&&(n="danger"),a.a.createElement(e,{className:u()("mx_QuestionDialog",this.props.className),onFinished:this.props.onFinished,title:this.props.title,contentId:"mx_Dialog_content",headerImage:this.props.headerImage,hasCancel:this.props.hasCancelButton,fixedWidth:this.props.fixedWidth},a.a.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},this.props.description),a.a.createElement(t,{primaryButton:this.props.button||Object(h.a)("OK"),primaryButtonClass:n,primaryDisabled:this.props.buttonDisabled,cancelButton:this.props.cancelButton,hasCancel:this.props.hasCancelButton&&!this.props.quitOnly,onPrimaryButtonClick:this.onOk,focus:this.props.focus,onCancel:this.onCancel},this.props.extraButtons))}}r()(p,"propTypes",{title:c.a.string,description:c.a.node,extraButtons:c.a.node,button:c.a.string,buttonDisabled:c.a.bool,danger:c.a.bool,focus:c.a.bool,onFinished:c.a.func.isRequired,headerImage:c.a.string,quitOnly:c.a.bool,fixedWidth:c.a.bool,className:c.a.string}),r()(p,"defaultProps",{title:"",description:"",extraButtons:null,focus:!0,hasCancelButton:!0,danger:!1,quitOnly:!1})},function(e,t,n){(function(e){var o=void 0!==e&&e||"undefined"!=typeof self&&self||window,r=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(r.call(setTimeout,o,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,o,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(o,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(821),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var o=n(81);const r=(e,t,n)=>{const r=Object(o.useRef)(n);Object(o.useEffect)(()=>{r.current=n},[n]),Object(o.useEffect)(()=>{if(!e)return;const n=(...e)=>r.current(...e);return e.on(t,n),()=>{e.removeListener(t,n)}},[t,e])}},function(e,t,n){var o=n(398)("wks"),r=n(327),i=n(179).Symbol,a="function"==typeof i;(e.exports=function(e){return o[e]||(o[e]=a&&i[e]||(a?i:r)("Symbol."+e))}).store=o},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var o=n(82),r=n.n(o),i=n(81),a=n.n(i),s=n(84),c=n.n(s),l=n(85),u=n(83);class d extends a.a.Component{render(){const e=l.getComponent("views.dialogs.BaseDialog");return a.a.createElement(e,{className:"mx_ErrorDialog",onFinished:this.props.onFinished,title:this.props.title||Object(u.a)("Error"),headerImage:this.props.headerImage,contentId:"mx_Dialog_content"},a.a.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},this.props.description||Object(u.a)("An error has occurred.")),a.a.createElement("div",{className:"mx_Dialog_buttons"},a.a.createElement("button",{className:"mx_Dialog_primary",onClick:this.props.onFinished,autoFocus:this.props.focus},this.props.button||Object(u.a)("OK"))))}}r()(d,"propTypes",{title:c.a.string,description:c.a.oneOfType([c.a.element,c.a.string]),button:c.a.string,focus:c.a.bool,onFinished:c.a.func.isRequired,headerImage:c.a.string}),r()(d,"defaultProps",{focus:!0,title:null,description:null,button:null})},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){"use strict";var o=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},t.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};var r=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",MENUITEM:"menuitem",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"},i=t.SPECIAL_ELEMENTS=Object.create(null);i[o.HTML]=Object.create(null),i[o.HTML][r.ADDRESS]=!0,i[o.HTML][r.APPLET]=!0,i[o.HTML][r.AREA]=!0,i[o.HTML][r.ARTICLE]=!0,i[o.HTML][r.ASIDE]=!0,i[o.HTML][r.BASE]=!0,i[o.HTML][r.BASEFONT]=!0,i[o.HTML][r.BGSOUND]=!0,i[o.HTML][r.BLOCKQUOTE]=!0,i[o.HTML][r.BODY]=!0,i[o.HTML][r.BR]=!0,i[o.HTML][r.BUTTON]=!0,i[o.HTML][r.CAPTION]=!0,i[o.HTML][r.CENTER]=!0,i[o.HTML][r.COL]=!0,i[o.HTML][r.COLGROUP]=!0,i[o.HTML][r.DD]=!0,i[o.HTML][r.DETAILS]=!0,i[o.HTML][r.DIR]=!0,i[o.HTML][r.DIV]=!0,i[o.HTML][r.DL]=!0,i[o.HTML][r.DT]=!0,i[o.HTML][r.EMBED]=!0,i[o.HTML][r.FIELDSET]=!0,i[o.HTML][r.FIGCAPTION]=!0,i[o.HTML][r.FIGURE]=!0,i[o.HTML][r.FOOTER]=!0,i[o.HTML][r.FORM]=!0,i[o.HTML][r.FRAME]=!0,i[o.HTML][r.FRAMESET]=!0,i[o.HTML][r.H1]=!0,i[o.HTML][r.H2]=!0,i[o.HTML][r.H3]=!0,i[o.HTML][r.H4]=!0,i[o.HTML][r.H5]=!0,i[o.HTML][r.H6]=!0,i[o.HTML][r.HEAD]=!0,i[o.HTML][r.HEADER]=!0,i[o.HTML][r.HGROUP]=!0,i[o.HTML][r.HR]=!0,i[o.HTML][r.HTML]=!0,i[o.HTML][r.IFRAME]=!0,i[o.HTML][r.IMG]=!0,i[o.HTML][r.INPUT]=!0,i[o.HTML][r.LI]=!0,i[o.HTML][r.LINK]=!0,i[o.HTML][r.LISTING]=!0,i[o.HTML][r.MAIN]=!0,i[o.HTML][r.MARQUEE]=!0,i[o.HTML][r.MENU]=!0,i[o.HTML][r.META]=!0,i[o.HTML][r.NAV]=!0,i[o.HTML][r.NOEMBED]=!0,i[o.HTML][r.NOFRAMES]=!0,i[o.HTML][r.NOSCRIPT]=!0,i[o.HTML][r.OBJECT]=!0,i[o.HTML][r.OL]=!0,i[o.HTML][r.P]=!0,i[o.HTML][r.PARAM]=!0,i[o.HTML][r.PLAINTEXT]=!0,i[o.HTML][r.PRE]=!0,i[o.HTML][r.SCRIPT]=!0,i[o.HTML][r.SECTION]=!0,i[o.HTML][r.SELECT]=!0,i[o.HTML][r.SOURCE]=!0,i[o.HTML][r.STYLE]=!0,i[o.HTML][r.SUMMARY]=!0,i[o.HTML][r.TABLE]=!0,i[o.HTML][r.TBODY]=!0,i[o.HTML][r.TD]=!0,i[o.HTML][r.TEMPLATE]=!0,i[o.HTML][r.TEXTAREA]=!0,i[o.HTML][r.TFOOT]=!0,i[o.HTML][r.TH]=!0,i[o.HTML][r.THEAD]=!0,i[o.HTML][r.TITLE]=!0,i[o.HTML][r.TR]=!0,i[o.HTML][r.TRACK]=!0,i[o.HTML][r.UL]=!0,i[o.HTML][r.WBR]=!0,i[o.HTML][r.XMP]=!0,i[o.MATHML]=Object.create(null),i[o.MATHML][r.MI]=!0,i[o.MATHML][r.MO]=!0,i[o.MATHML][r.MN]=!0,i[o.MATHML][r.MS]=!0,i[o.MATHML][r.MTEXT]=!0,i[o.MATHML][r.ANNOTATION_XML]=!0,i[o.SVG]=Object.create(null),i[o.SVG][r.TITLE]=!0,i[o.SVG][r.FOREIGN_OBJECT]=!0,i[o.SVG][r.DESC]=!0},function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"h",(function(){return m})),n.d(t,"g",(function(){return g})),n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return _})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return v})),n.d(t,"d",(function(){return E}));var o=n(81),r=n.n(o),i=n(86),a=n(360),s=n(89),c=n(85),l=n(83),u=n(521),d=n(683),h=n(154);function p(e,t){const n=new a.a(e);return n.invite(t).then(e=>Promise.resolve({states:e,inviter:n}))}function m(e){const t=c.getComponent("dialogs.InviteDialog");s.a.createTrackedDialog("Start DM","",t,{kind:u.a,initialText:e},null,!1,!0)}function g(e){const t=c.getComponent("dialogs.InviteDialog");s.a.createTrackedDialog("Invite Users","",t,{kind:u.b,roomId:e},null,!1,!0)}function f(e,t){s.a.createTrackedDialog("Invite Users to Community","",d.a,{communityName:t,roomId:e},null,!1,!0)}function _(e){const t=h.a.instance.getGeneralChat(e);if(!t)throw new Error("Failed to locate appropriate room to start an invite in");{const n=h.a.instance.getCommunityName(e);f(t.roomId,n)}}function b(e){if(!e||"m.room.third_party_invite"!==e.getType())return!1;const t=["key_validity_url","public_key","display_name"];for(let n=0;n{const n=i.a.get().getRoom(e);E(t.states,n,t.inviter)}).catch(e=>{console.error(e.stack);const t=c.getComponent("dialogs.ErrorDialog");s.a.createTrackedDialog("Failed to invite","",t,{title:Object(l.a)("Failed to invite"),description:e&&e.message?e.message:Object(l.a)("Operation failed")})})}function E(e,t,n){const o=Object.keys(e).filter(t=>"error"===e[t]);if(1===o.length&&n.fatal){const e=c.getComponent("dialogs.ErrorDialog");return s.a.createTrackedDialog("Failed to invite users to the room","",e,{title:Object(l.a)("Failed to invite users to the room:",{roomName:t.name}),description:n.getErrorText(o[0])}),!1}{const i=[];for(const t of o)if("error"===e[t]){const e=n.getErrorText(t);i.push(t+": "+e)}if(i.length>0){const e=r.a.createElement("div",null,i.map(e=>r.a.createElement("div",{key:e},e))),n=c.getComponent("dialogs.ErrorDialog");return s.a.createTrackedDialog("Failed to invite the following users to the room","",n,{title:Object(l.a)("Failed to invite the following users to the %(roomName)s room:",{roomName:t.name}),description:e}),!1}}return!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var o=n(82),r=n.n(o),i=n(139),a=n(87),s=n(191),c=n(88),l=n(1),u=n(118),d=n(140),h=n(177),p=n(109);class m extends i.a{constructor(){super(a.a,{})}static get instance(){return m.internalInstance}getSelectedCommunityId(){return c.a.getValue("feature_communities_v2_prototypes")?h.a.getSelectedTags()[0]:null}getSelectedCommunityName(){return m.instance.getCommunityName(this.getSelectedCommunityId())}getSelectedCommunityGeneralChat(){const e=this.getSelectedCommunityId();if(e)return this.getGeneralChat(e)}getCommunityName(e){const t=d.a.getGroupProfileCachedFast(this.matrixClient,e);return(null==t?void 0:t.name)||e}getCommunityProfile(e){return d.a.getGroupProfileCachedFast(this.matrixClient,e)}getGeneralChat(e){const t=p.a.getGroupRooms(e).map(e=>this.matrixClient.getRoom(e.roomId)).filter(e=>!!e);let n=t.find(t=>{const n=t.currentState.getStateEvents("im.vector.general_chat","");return!(!n||n.getContent().groupId!==e)});return n||(n=t[0]),n}isAdminOf(e){const t=p.a.getGroupMembers(e).find(e=>e.userId===this.matrixClient.getUserId());return null==t?void 0:t.isPrivileged}canInviteTo(e){const t=this.getGeneralChat(e);if(!t)return this.isAdminOf(e);const n=t.getMember(this.matrixClient.getUserId());if(!n)return this.isAdminOf(e);const o=t.currentState.getStateEvents("m.room.power_levels","");if(!o)return this.isAdminOf(e);return(Object(l.r)(o.invite)?50:Number(o.invite))<=n.powerLevel}async onAction(e){if(this.matrixClient&&c.a.getValue("feature_communities_v2_prototypes"))if("MatrixActions.Room.myMembership"===e.action){const t=e.room,n=Object(s.b)(e.membership);if(n===Object(s.b)(e.oldMembership))return;if(n===s.a.Invite)try{const e=l.f("/rooms/$roomId/group_info",{$roomId:t.roomId}),n=await this.matrixClient._http.authedRequest(void 0,"GET",e,void 0,void 0,{prefix:"/_matrix/client/unstable/im.vector.custom"});await this.matrixClient.setAccountData("im.vector.group_info."+t.roomId,n)}catch(e){console.warn("Non-fatal error getting group information for invite:",e)}}else if("MatrixActions.accountData"===e.action)e.event_type.startsWith("im.vector.group_info.")&&this.emit(u.b,e.event_type.substring("im.vector.group_info.".length));else if("select_tag"===e.action){const t=this.getGeneralChat(e.tag);t&&a.a.dispatch({action:"view_room",room_id:t.roomId})}}getInviteProfile(e){if(!this.matrixClient)return{displayName:null,avatarMxc:null};const t=this.matrixClient.getRoom(e);if(c.a.getValue("feature_communities_v2_prototypes")){const t=this.matrixClient.getAccountData("im.vector.group_info."+e);if(t&&t.getContent())return{displayName:t.getContent().name,avatarMxc:t.getContent().avatar_url}}return{displayName:t.name,avatarMxc:t.avatar_url}}async onReady(){for(const e of this.matrixClient.getRooms()){const t=e.currentState.getMembers().find(e=>e.userId===this.matrixClient.getUserId());t&&(Object(s.b)(t.membership)===s.a.Invite&&this.emit(u.b,e.roomId))}}}r()(m,"internalInstance",new m)},function(e,t,n){"use strict";var o=n(81),r=n.n(o),i=n(480);t.a=({description:e,acceptLabel:t,rejectLabel:n,onAccept:o,onReject:a})=>r.a.createElement("div",null,r.a.createElement("div",{className:"mx_Toast_description"},e),r.a.createElement("div",{className:"mx_Toast_buttons","aria-live":"off"},a&&n&&r.a.createElement(i.a,{label:n,kind:"danger",onClick:a}),r.a.createElement(i.a,{label:t,onClick:o})))},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));class o{getValueOverride(e,t,n,o){return null}onChange(e,t,n){}get settingDisabled(){return!1}}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return I})),n.d(t,"b",(function(){return D}));var o,r=n(82),i=n.n(r),a=n(81),s=n.n(a),c=n(86),l=n(104),u=n(89),d=n(83),h=n(123),p=n(87),m=n(121),g=n(301),f=n(88),_=n(1296),b=n(486),v=n(133),E=n(95),y=n(728),S=n(146),T=n(150),w=n(196),C=n(260),x=n(13),O=n(110),k=n(102),R=n(101),A=n(0);let I;!function(e){e.Ring="ringAudio",e.Ringback="ringbackAudio",e.CallEnd="callendAudio",e.Busy="busyAudio"}(o||(o={})),function(e){e.Voice="voice",e.Video="video",e.ScreenSharing="screensharing"}(I||(I={}));class D{constructor(){i()(this,"calls",new Map),i()(this,"audioPromises",new Map),i()(this,"dispatcherRef",null),i()(this,"onCallIncoming",e=>{p.a.dispatch({action:"incoming_call",call:e},!0)}),i()(this,"onAction",e=>{switch(e.action){case"place_call":{if(!c.a.get().supportsVoip())return void u.a.createTrackedDialog("Call Handler","VoIP is unsupported",T.a,{title:Object(d.a)("VoIP is unsupported"),description:Object(d.a)("You cannot place VoIP calls in this browser.")});if(this.getAllActiveCalls().length>1)return void u.a.createTrackedDialog("Call Handler","Existing Call",T.a,{title:Object(d.a)("Too Many Calls"),description:Object(d.a)("You've reached the maximum number of simultaneous calls.")});const t=c.a.get().getRoom(e.room_id);if(!t)return void console.error("Room %s does not exist.",e.room_id);const n=t.getJoinedMembers();if(n.length<=1)return void u.a.createTrackedDialog("Call Handler","Cannot place call with self",T.a,{description:Object(d.a)("You cannot place a call with yourself.")});2===n.length?(console.info("Place %s call in %s",e.type,e.room_id),this.placeCall(e.room_id,e.type,e.local_element,e.remote_element)):p.a.dispatch({action:"place_conference_call",room_id:e.room_id,type:e.type,remote_element:e.remote_element,local_element:e.local_element})}break;case"place_conference_call":console.info("Place conference call in %s",e.room_id),O.a.trackEvent("voip","placeConferenceCall"),k.a.instance.trackStartCall(e.room_id,e.type===I.Video,!0),this.startCallApp(e.room_id,e.type);break;case"end_conference":console.info("Terminating conference call in %s",e.room_id),this.terminateCallApp(e.room_id);break;case"hangup_conference":console.info("Leaving conference call in %s",e.room_id),this.hangupCallApp(e.room_id);break;case"incoming_call":{if(!c.a.get().supportsVoip())return;const t=e.call;if(this.getCallForRoom(t.roomId))return;O.a.trackEvent("voip","receiveCall","type",t.type),this.calls.set(t.roomId,t),this.setCallListeners(t)}break;case"hangup":case"reject":if(!this.calls.get(e.room_id))return;"reject"===e.action?this.calls.get(e.room_id).reject():this.calls.get(e.room_id).hangup(h.b.UserHangup,!1);break;case"answer":{if(!this.calls.has(e.room_id))return;if(this.getAllActiveCalls().length>1)return void u.a.createTrackedDialog("Call Handler","Existing Call",T.a,{title:Object(d.a)("Too Many Calls"),description:Object(d.a)("You've reached the maximum number of simultaneous calls.")});const t=this.calls.get(e.room_id);t.answer(),this.setCallAudioElement(t),this.setActiveCallRoomId(e.room_id),k.a.instance.trackJoinCall(e.room_id,t.type===h.f.Video,!1),p.a.dispatch({action:"view_room",room_id:e.room_id});break}}})}static sharedInstance(){return window.mxCallHandler||(window.mxCallHandler=new D),window.mxCallHandler}start(){this.dispatcherRef=p.a.register(this.onAction),navigator.mediaSession&&(navigator.mediaSession.setActionHandler("play",(function(){})),navigator.mediaSession.setActionHandler("pause",(function(){})),navigator.mediaSession.setActionHandler("seekbackward",(function(){})),navigator.mediaSession.setActionHandler("seekforward",(function(){})),navigator.mediaSession.setActionHandler("previoustrack",(function(){})),navigator.mediaSession.setActionHandler("nexttrack",(function(){}))),f.a.getValue(R.a.Voip)&&c.a.get().on("Call.incoming",this.onCallIncoming)}stop(){const e=c.a.get();e&&e.removeListener("Call.incoming",this.onCallIncoming),null!==this.dispatcherRef&&(p.a.unregister(this.dispatcherRef),this.dispatcherRef=null)}getCallForRoom(e){return this.calls.get(e)||null}getAnyActiveCall(){for(const e of this.calls.values())if(e.state!==h.e.Ended)return e;return null}getAllActiveCalls(){const e=[];for(const t of this.calls.values())t.state!==h.e.Ended&&t.state!==h.e.Ringing&&e.push(t);return e}getAllActiveCallsNotInRoom(e){const t=[];for(const[n,o]of this.calls.entries())n!==e&&o.state!==h.e.Ended&&t.push(o);return t}play(e){const t=document.getElementById(e);if(t){const n=async()=>{try{await t.play()}catch(e){console.log("Unable to play audio clip",e)}};this.audioPromises.has(e)?this.audioPromises.set(e,this.audioPromises.get(e).then(()=>(t.load(),n()))):this.audioPromises.set(e,n())}}pause(e){const t=document.getElementById(e);t&&(this.audioPromises.has(e)?this.audioPromises.set(e,this.audioPromises.get(e).then(()=>t.pause())):t.pause())}matchesCallForThisRoom(e){const t=this.getCallForRoom(e.roomId);return t&&e.callId===t.callId}setCallListeners(e){e.on(h.c.Error,t=>{this.matchesCallForThisRoom(e)&&(O.a.trackEvent("voip","callError","error",t.toString()),console.error("Call error:",t),t.code!==h.b.NoUserMedia?0!==c.a.get().getTurnServers().length||null!==f.a.getValue("fallbackICEServerAllowed")?u.a.createTrackedDialog("Call Failed","",T.a,{title:Object(d.a)("Call Failed"),description:t.message}):this.showICEFallbackPrompt():this.showMediaCaptureError(e))}),e.on(h.c.Hangup,()=>{this.matchesCallForThisRoom(e)&&(O.a.trackEvent("voip","callHangup"),this.removeCallForRoom(e.roomId))}),e.on(h.c.State,(t,n)=>{if(this.matchesCallForThisRoom(e)){switch(this.setCallState(e,t),n){case h.e.Ringing:this.pause(o.Ring);break;case h.e.InviteSent:this.pause(o.Ringback)}switch(t){case h.e.Ringing:this.play(o.Ring);break;case h.e.InviteSent:this.play(o.Ringback);break;case h.e.Ended:if(O.a.trackEvent("voip","callEnded","hangupReason",e.hangupReason),this.removeCallForRoom(e.roomId),n===h.e.InviteSent&&(e.hangupParty===h.d.Remote||e.hangupParty===h.d.Local&&e.hangupReason===h.b.InviteTimeout)){let t,n;this.play(o.Busy),e.hangupReason===h.b.UserHangup?(t=Object(d.a)("Call Declined"),n=Object(d.a)("The other party declined the call.")):e.hangupReason===h.b.InviteTimeout?(t=Object(d.a)("Call Failed"),n=Object(d.a)("The remote side failed to pick up")+"."):(t=Object(d.a)("Call Failed"),n=Object(d.a)("The call could not be established")),u.a.createTrackedDialog("Call Handler","Call Failed",T.a,{title:t,description:n})}else e.hangupReason===h.b.AnsweredElsewhere&&n===h.e.Connecting?u.a.createTrackedDialog("Call Handler","Call Failed",T.a,{title:Object(d.a)("Answered Elsewhere"),description:Object(d.a)("The call was answered on another device.")}):this.play(o.CallEnd)}}}),e.on(h.c.Replaced,t=>{this.matchesCallForThisRoom(e)&&(console.log(`Call ID ${e.callId} is being replaced by call ID ${t.callId}`),e.state===h.e.Ringing?this.pause(o.Ring):e.state===h.e.InviteSent&&this.pause(o.Ringback),this.calls.set(t.roomId,t),this.setCallListeners(t),this.setCallState(t,t.state))})}setCallAudioElement(e){const t=function(){const e=document.getElementById("remoteAudio");return e||(console.error("Failed to find remoteAudio element - cannot play audio!You need to add an