Overview

URL kinodroid.net/4262-familnye-cennosti-27-28-seriya-2017.html
IP104.31.69.166
ASNAS13335 CloudFlare, Inc.
Location United States
Report completed2017-07-17 15:19:37 CEST
StatusLoading report..
urlQuery Alerts No alerts detected


Settings

UserAgentMozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Referer
Pool
Access Level


Intrusion Detection Systems

Suricata /w Emerging Threats Pro  No alerts detected


Blacklists

MDL  No alerts detected
OpenPhish  No alerts detected
PhishTank  No alerts detected
Fortinet's Web Filter
Added / Verified Severity Host Comment
2017-07-17 2 afterview.ru/code/afterview.php?id=2 Malware
DNS-BH  No alerts detected
mnemonic secure dns  No alerts detected


Recent reports on same IP/ASN/Domain

Last 2 reports on IP: 104.31.69.166

Date UQ / IDS / BL URL IP
2017-07-24 23:05:52 +0200
0 - 0 - 11 lightbulbradiology.com/wp-content/receptivene (...) 104.31.69.166
2017-07-21 15:54:11 +0200
0 - 1 - 0 cellolessen.nl/ 104.31.69.166

Last 10 reports on ASN: AS13335 CloudFlare, Inc.

Date UQ / IDS / BL URL IP
2017-07-27 04:42:30 +0200
0 - 2 - 1 newsheadlineupdates.com/wp-content/plugins/ub (...) 104.28.20.72
2017-07-27 04:41:51 +0200
0 - 2 - 0 jeribilelan.tk/ 104.27.135.133
2017-07-27 04:41:27 +0200
0 - 1 - 0 update.rightsnetwork.net/rightsplugin/modules (...) 104.20.42.89
2017-07-27 04:40:36 +0200
0 - 2 - 0 downloadnada.lavasoft.com/update/5354/834/AdA (...) 104.16.241.32
2017-07-27 04:38:46 +0200
0 - 0 - 4 www.keyfora.com/security/f866ayh21p5jmts3cjrv (...) 104.18.47.15
2017-07-27 04:32:28 +0200
0 - 5 - 0 l2b.secretlab.pw/ 104.24.113.208
2017-07-27 04:25:14 +0200
0 - 0 - 1 upit.us/ad/security-service50/us/details.html 104.27.173.246
2017-07-27 04:20:24 +0200
0 - 0 - 0 ihackedit.com 104.31.76.212
2017-07-27 04:20:17 +0200
0 - 0 - 2 down.yeadesktop.com/YeaDesk 104.18.36.179
2017-07-27 04:18:07 +0200
0 - 0 - 1 hyundaitanphu.vn/wp-content/themes/bazar/them (...) 104.27.153.30

No other reports on domain: .



JavaScript

Executed Scripts (64)


Executed Evals (1)

#1 JavaScript::Eval (size: 318459, repeated: 1) - SHA256: 162170e8d9c405697bebb021c739ef96ebf1cee65ebd06277f8f0d2d1b07149d

                                        var uppod_players;
var uppodstyle = '';

function Uppod(loadvars) {
        var _this = this;
        var canvasObjs = [];
        var vars;
        var brw;
        var ierr = '';
        var ipad = false;
        var iphone = false;
        var android = false;
        var opera = false;
        var mobile = false;
        var nativecontrols = false;
        var ihtml5 = false;
        var init = false;
        var initevent = false;
        var iplay = false;
        var istart = false;
        var ifull = false;
        var irealfull = false;
        var ihide = false;
        var lastXY = 0;
        var lastdXY = 0;
        var ibuff = false;
        var iover = false;
        var istartevnt = false;
        var iline = false;
        var iloaded = false;
        var igo = false;
        var iwebkit = false;
        var firefox = false;
        var safari = false;
        var chrome = false;
        var nametip;
        var name_txt;
        var controls;
        var youtubeElemId;
        var youtubeIframe;
        var mouseMoveCatcher;
        var playlist;
        var pl_mc;
        var pl;
        var plwidth;
        var plheight;
        var ipl;
        var plbg;
        var pltext;
        var plplayed;
        var plrandom;
        var plpage = 0;
        var v;
        var vvv;
        var muted;
        var hideInterval;
        var rmenu;
        var timelength = 4;
        var timeitems = 0;
        var line_s;
        var volbarline_s;
        var lastTime = 0;
        var ltc = 0;
        var layer;
        var player;
        var uibg;
        var uibg_gl;
        var oo;
        var play_b;
        var pause_b;
        var back_b;
        var stop_b;
        var start_b;
        var time_play_b;
        var time_back_b;
        var time_all_b;
        var volume_b;
        var volume_mute_b;
        var volbarline_b;
        var volbarline_all_b;
        var volbarline_play_b;
        var volbar_b;
        var volbars;
        var sep_b;
        var run_b;
        var run_pos;
        var runvolume_b;
        var runvolume_pos;
        var sep;
        var download_b;
        var next_b;
        var prev_b;
        var plnext_b;
        var plprev_b;
        var full_b;
        var full_back_b;
        var line_b;
        var line_all_b;
        var line_load_b;
        var line_play_b;
        var line_but_b;
        var space_b;
        var buffer_b;
        var menu_b;
        var playlist_b;
        var hd_b;
        var hdselect;
        var hd1_b;
        var sub_b;
        var sub_text;
        var sub_bg;
        var sub;
        var sub_lang = 0;
        var sub_showed = false;
        var sub_menu;
        var sub_menu2;
        var sub_menu_bg;
        var isub_menu_color;
        var isub_menu_bgcolor;
        var sub_last;
        var sub_lang_all = false;
        var mybuts = [];
        var cntrlength;
        var cntrl;
        var cntrls;
        var cntrli;
        var controls;
        var browser = new Uppod.Browser();
        var logo;
        var uppod = {
            _controls: null,
            _mediaW: null,
            _parentDom: null,
            _ads: null,
            iframe: {},
            window: {},
            document: {},
            toolTipOn: function(domElment) {
                domElment.onmouseover = function() {
                    ToolTip(domElment, domElment.title)
                };
                domElment.onmouseout = function() {
                    ToolTipHide(domElment)
                }
            },
            createMediaW: function() {
                this._mediaW = new Uppod.MediaW({
                    mode: vars.m,
                    vars: vars,
                    mobile: mobile,
                    ads: this.ads()
                });
                this._mediaW.onError.bind(function() {
                    onReady();
                    NotFound()
                });
                return this._mediaW
            },
            mediaW: function() {
                return this._mediaW
            },
            controls: function() {
                if (!this._controls) {
                    this._controls = new Uppod.Controls()
                }
                return this._controls
            },
            playerBodyElement: function() {
                return body
            },
            parentDom: function() {
                return this._parentDom
            },
            ads: function() {
                if (!this._ads && Uppod.Ads) {
                    this._ads = new Uppod.Ads({
                        containerDom: uppod.document.body,
                        uid: vars.uid,
                        playerDom: this.playerBodyElement().c,
                        prerollVast: CreateLink(vars.vast_preroll),
                        postrollVast: CreateLink(vars.vast_postroll),
                        pauserollVast: CreateLink(vars.vast_pauseroll),
                        midrollVast: CreateLink(vars.vast_midroll),
                        midrollTimes: CreateLink(vars.midroll_times),
                        adEachPlaylistItem: parseInt(vars.vast_pl) === 1,
                        pauseOnClick: parseInt(vars.vast_pauseonclick) === 1,
                        prerollPauseOnClick: parseInt(vars.vast_preroll_pauseonclick) === 1,
                    })
                }
                return this._ads
            },
            vars: function() {
                return vars
            },
            toogleFullscreen: function() {
                return Full.apply(this, arguments)
            },
            isFullscreen: function() {
                return ifull
            },
        };
        if (loadvars.uid) {
            if (!uppod_players) {
                uppod_players = []
            }
            this.uid = loadvars.id = loadvars.uid
        };
        uppod_players.push(this);
        if (document.getElementById(loadvars.id)) {
            Init()
        } else {
            document.addEventListener('DOMContentLoaded', Init)
        };

        function createBody() {
            body = new Shaper2({
                w: vars.sw,
                h: vars.sh,
                bgc: vars.bodycolor,
                brd: vars.brd,
                brdc: vars.brdcolor,
                h0: (vars.cntrlout == 1 ? vars.sh - vars.cntrloutheight : 0) - (vars.pl && vars.plplace == "bottom" ? vars.plth + 20 : 0),
                a: (vars.transparent == 1 ? -1 : 1)
            });
            uppod.document.body.appendChild(body.c);
            CSS(uppod.iframe.contentDocument.body, {
                '-webkit-user-select': 'none',
                '-khtml-user-select': 'none',
                '-moz-user-select': 'none',
                '-o-user-select': 'none',
                'user-select': 'none',
                'overflow': 'hidden',
                'margin': '0px',
                'padding': '0px',
                'width': '100%',
                'height': '100%',
            });
            CSS(body.c, {
                'position': 'relative',
                'top': 0,
                'left': 0
            })
        };

        function createScreen() {
            scrn = new Shaper2({
                w: vars.scrn_w,
                h: vars.scrn_h,
                bgc: vars.screencolor,
                o: (vars.padding > 0 ? vars.o / 2 : 0),
                a: (vars.transparent == 1 ? -1 : 1)
            });
            body.c.appendChild(scrn.c);
            CSS(scrn.c, {
                'position': 'absolute',
                'top': vars.padding,
                'left': vars.padding,
                'zIndex': 1
            })
        };

        function createPlaylists() {
            var iyt;
            var stop = false;
            if (vars.pl) {
                if (typeof(vars.pl) == 'object') {
                    CreatePl()
                };
                if (typeof(vars.pl) == 'string') {
                    vars.pl_original = vars.pl;
                    var str;
                    if (vars.pl.indexOf("{") == 0) {
                        str = vars.pl;
                        str = str.replace(/'/g, '"')
                    } else {
                        if (vars.pl.indexOf("youtube:") == 0) {
                            if (vars.pl.indexOf('user_') == 8) {
                                vars.pl = 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=' + vars.pl.substr(13) + '&key=' + vars.ytapi
                            }
                            if (vars.pl.indexOf('search_') == 8) {
                                vars.pl = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=' + Ytpl(vars.pl.substr(15)) + '&maxResults=' + vars.ytpllimit + '&order=' + vars.ytplorder + '&relevanceLanguage=' + vars.lang + '&key=' + vars.ytapi
                            }
                            if (vars.pl.indexOf('pl_') == 8) {
                                vars.pl = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=' + vars.pl.substr(11) + '&maxResults=' + vars.ytpllimit + '&key=' + vars.ytapi
                            }
                            iyt = true
                        }
                        str = LoadFile(vars.pl)
                    };
                    if (str) {
                        if (str.indexOf('#') == 0) {
                            str = un(str)
                        };
                        try {
                            if (str.indexOf("\'") > -1) {
                                str = str.replace(/\\'/g, "'")
                            };
                            vars.pl = JSON.parse(str);
                            if (iyt) {
                                var obj = vars.pl;
                                var newobj = {};
                                newobj["playlist"] = [];
                                var i;
                                if (obj.error) {
                                    if (obj.error.errors[0].reason == "keyInvalid") {}
                                } else {
                                    if (obj.items[0].contentDetails) {
                                        vars.pl = 'youtube:pl_' + obj.items[0].contentDetails.relatedPlaylists.uploads;
                                        createPlaylists();
                                        stop = true
                                    } else {
                                        if (obj.items.length > 0) {
                                            for (i = 0; i < obj.items.length; i++) {
                                                if (obj.items[i].snippet) {
                                                    newobj["playlist"][i] = new Object();
                                                    if (vars.pl_original.indexOf(":pl_") > 0) {
                                                        newobj["playlist"][i].file = 'http' + (vars.https == 1 ? 's' : '') + '://youtube.com/watch?v=' + obj.items[i].snippet.resourceId.videoId
                                                    }
                                                    if (vars.pl_original.indexOf(":search_") > 0) {
                                                        newobj["playlist"][i].file = 'http' + (vars.https == 1 ? 's' : '') + '://youtube.com/watch?v=' + obj.items[i].id.videoId
                                                    }
                                                    newobj["playlist"][i].poster = obj.items[i].snippet.thumbnails.default.url;
                                                    vars.ytposter == 1 ? newobj["playlist"][i].bigposter = obj.items[i].snippet.thumbnails.high.url : '';
                                                    newobj["playlist"][i].link = newobj["playlist"][i].file;
                                                    newobj["playlist"][i].comment = obj.items[i].snippet.title
                                                }
                                            }
                                            vars.pl = newobj
                                        }
                                    }
                                }
                            }
                            vars.pl.playlist ? vars.pl = vars.pl.playlist : ''
                        } catch (err) {
                            console.log(err);
                            Alert(vars.lang2.errjson_decode + ' ' + Filename(vars.pl_original), true)
                        }
                    };
                    !stop ? CreatePl() : ''
                };
                if (vars.file == '') {
                    ipl = 0;
                    if (vars.random == 1) {
                        ipl = getRandomInt(0, pl.length - 1);
                        Opacity(plbg[0], vars.plalpha);
                        Opacity(plbg[ipl], vars.plalpha_play)
                    }
                    if (vars.pl[ipl].playlist) {
                        if (vars.pl[ipl].playlist[0].playlist) {
                            UpdatedVarsFromPlaylist(vars.pl[ipl].playlist[0].playlist[0])
                        } else {
                            UpdatedVarsFromPlaylist(vars.pl[ipl].playlist[0])
                        }
                    } else {
                        UpdatedVarsFromPlaylist(vars.pl[ipl])
                    }
                }
            }
        };

        function Ytpl(str) {
            var myAmpPattern = / /g;
            var itmp = str.split(' ').length;
            for (var i = 0; i < itmp; i++) {
                str = str.replace(myAmpPattern, "%20")
            }
            return str
        }

        function createAlert() {
            alrt = document.createElement('div');
            alrt.className = 'uppod-alert';
            CSS(alrt, {
                'width': '100%',
                'position': 'absolute',
                'top': vars.padding,
                'left': vars.padding,
                'color': '#' + ReColor(vars.commentcolor),
                'zIndex': 3
            });
            body.c.appendChild(alrt);
            vars.commentbgcolor.indexOf('|') == -1 ? vars.commentbgcolor = vars.commentbgcolor + '|' + vars.commentbgcolor : '';
            alrt_bg = new Shaper2({
                w: vars.sw - vars.padding * 2,
                h: '20',
                o: 0,
                bgc: vars.commentbgcolor,
                bga1: vars.commentbgalpha1,
                bga2: vars.commentbgalpha2
            });
            alrt.appendChild(alrt_bg.c);
            alrt_txt = document.createElement('div');
            alrt.appendChild(alrt_txt);
            CSS(alrt_txt, {
                'position': 'absolute',
                'top': 0,
                'left': 0,
                "paddingTop": (vars.commentmargin + vars.commenttopmargin),
                "paddingLeft": (vars.commentmargin + 5),
                "paddingBottom": (vars.commentmargin * 1.3),
                "fontFamily": vars.namefont,
                "fontSize": vars.namefontsize,
                "fontStyle": FontStyle(vars.namefontstyle),
                "fontWeight": FontWeight(vars.namefontstyle)
            });
            alrt_x = document.createElement('div');
            alrt.appendChild(alrt_x);
            CSS(alrt_x, {
                'position': 'absolute',
                'top': 0,
                'right': 0,
                "paddingTop": 5,
                "paddingRight": 10,
                "cursor": "pointer",
                "color": "#" + vars.commentcolor
            });
            alrt_x.innerHTML = 'x';
            alrt_x.onclick = CloseAlrt;
            alrt.style.display = 'none';
            disableSelection(alrt)
        }

        function createTip() {
            if (vars.tip == 1) {
                tip = uppod.document.createElement('div');
                tip.className = 'uppod-tip';
                uppod.document.body.appendChild(tip);
                CSS(tip, {
                    'position': 'absolute',
                    'top': 0,
                    'left': 0,
                    "visibility": "hidden",
                    "color": "#" + ReColor(vars.tipfontcolor),
                    "borderRadius": vars.tipbgo / 2,
                    "fontFamily": vars.tipfont,
                    "fontSize": vars.tipfontsize,
                    "fontWeight": FontWeight(vars.namefontstyle),
                    "padding": "4px",
                    "lineHeight": "normal"
                });
                tip.style.zIndex = 9;
                CheckGradiendDiv(tip, vars.tipbgcolor)
            }
        }

        function CreateLink(x) {
            if (x) {
                x = x.replace(/\(referer\)/g, encodeURIComponent(vars.referer));
                x = x.replace(/\(random\)/g, Math.random())
            }
            return x
        }

        function createComment() {
            if (vars.comment != undefined && vars.comment != '' && vars.showname == 1) {
                if (vars.shownameliketip == 1) {
                    CreateNameTip(vars.comment);
                    vars.shownameonover == 1 && vars.shownameonstop == 0 ? Hide(nametip) : ''
                } else {
                    Alert(vars.comment, false)
                }
            }
        };

        function createIframe(afterCreateCallback) {
            var _this = this;
            uppod.iframe = document.createElement('iframe');
            CSS(uppod.iframe, {
                'width': '100%',
                'height': '100%',
                'border': 'none',
                'visibility': 'hidden'
            });
            if (vars.transparent == 0) {
                CSS(uppod.iframe, {
                    'backgroundColor': '#' + ReColor(vars.bgcolor)
                })
            }
            uppod.iframe.setAttribute("allowfullscreen", "true");
            if (vars.html5_referer != '') {
                uppod.iframe.setAttribute("src", vars.html5_referer)
            }
            uppod.iframe.onload = function() {
                uppod.window = uppod.iframe.contentWindow;
                uppod.document = uppod.iframe.contentDocument;
                if (vars.html5_referer != '') {
                    uppod.document.open();
                    uppod.document.close()
                }
                CSS(uppod.iframe, {
                    'visibility': 'visible'
                });
                if (afterCreateCallback) {
                    afterCreateCallback.call(_this)
                }
            };
            vars.stg.appendChild(uppod.iframe)
        };

        function createMouseMoveCatcher() {
            mouseMoveCatcher = document.createElement('div');
            mouseMoveCatcher.className = 'uppod-mouse-move-catcher';
            CSS(mouseMoveCatcher, {
                display: 'none',
                'z-index': '103',
                position: 'absolute',
                top: '0px',
                left: '0px',
                width: '100%',
                height: '100%'
            });
            body.c.appendChild(mouseMoveCatcher)
        };

        function createPlayer() {
            createIframe(function() {
                createBody();
                ScreenSize();
                createScreen();
                createPlaylists();
                if (vars.file) {
                    if (vars.file && vars.hd) {
                        QualityLinks()
                    }
                };
                createAlert();
                createComment();
                createMouseMoveCatcher();
                Logo();
                Media();
                Controls();
                oRadius();
                Events();
                createTip();
                if (ierr != '') {
                    Alert(ierr, true)
                }
                sizeInterval = setInterval(Sizing, 100)
            })
        }
        var _onReadyOnce = false;

        function onReady() {
            if (!_onReadyOnce && loadvars.onReady) {
                _onReadyOnce = true;
                setTimeout(function() {
                    loadvars.onReady.call(_this, _this)
                }, 50)
            }
        }

        function initHtml5() {
            vars.stg.innerHTML = '';
            CSS(vars.stg, {
                'lineHeight': '1',
                'textAlign': 'left',
                'text-align': 'left',
                '-moz-user-select': '-moz-none',
                '-o-user-select': 'none',
                '-khtml-user-select': 'none',
                '-webkit-user-select': 'none',
                'user-select': 'none',
                'overflow': 'hidden'
            });
            if (vars.transparent == 0) {
                CSS(vars.stg, {
                    'backgroundColor': '#' + ReColor(vars.bgcolor)
                })
            }
            createPlayer()
        }

        function initFlash() {
            var params = {
                allowFullScreen: "true",
                allowScriptAccess: "always"
            };
            loadvars.file.replace("|", "or");
            delete loadvars.st;
            if (loadvars.stflash) {
                loadvars.st = loadvars.stflash
            }
            new swfobject.embedSWF(vars.swf, vars.id, vars.sw, vars.sh, "10.0.0", false, loadvars, params);
            onReady()
        }

        function Init() {
            if (!loadvars.id) {
                return
            }
            Detect();
            vars = new Vars();
            vars.uid = loadvars.uid;
            vars.config.loader("ogoJZqJYHv5lHcNQZwJyxcedhzGMxcpdoqN7or1YHv5lHcNQZwJlCgDzogs1FY4WhtGJmzFbfYpWFcuzF2UEZbnWhz9JCBVaCzPWht1lEveamlL1m1I0FYNXoz5YFY9Dn2JJFVIQocpWhzdzfBV6hz50Z1I0FYNXozPtIwVaRrDaowPJEzFXFYUyZculoBPQgw8dp3szKv5bCBN7H2JaZcpWhz0DCgDVv2pWhzNHmvDZh118RcpWhzN9Kt1ZobUXh3saZ24WoBN7FYU0HgEXScsZoU19grDNmvo1ZYI0Kv9XCqN7FYU0HgEXE1GFHzdbRrDlmru9f3HWKvGNCcLDxBN7KvhWK1DlgBN7Fi1yxbENFcGJh2pWZYU3SuENo0U4FqPbguGwEzDNCcLaCzHFgcSbxqHbEzVdK1DlgBN9RgENHOUzZwTyRBPbLzJtCgD0CqN9owktCiSXhBe9HBN7LzPzxYeXIzJFEz5JgqFamlkaj3SWCg19obdzxbeXZr0zxY59ftLWLw5bSr1FE1ybCgd0Sip9Lw5bxYpWgqFdgqFaftLWLw5ymr0GCgdtCipajtnPfr1lf2WWIqTamrk7Kry1xYn7KBdMCgdzxYdXIzP1v2NHCr4DLr85mgP6gqHFE30tCiVajtPWCg19Rg0tCiSXKqe9gqHFEzN7Iqk2mrSXKq5NCuybxuybCrDACinPKr0yf2V8Iw5Vf2VMCzN7LzPzxYdXIzP2v2NHCr4DLBN7fqPaRg19nBk4CqN7Lw5wmr1FE3aFEt8zxbV9LraFE1ybftSXhl09gqHqgqF/Lw5imre6gqHFEtdzxYS9mUybsNybmtSXsr0GfNybgqF7Lw5dSr1FE1ybmtSXsi0zxYy6gqHFEtdzxY89Lw53ftSXHl1lRBFdIiSdIiSdE3G8HYuzF3GaobG2hgE8HgEdFOEQHcUlHu9JRcEJZY5Nou9JRcNXocU4r2o8UgEdpYUVKgENh3s8H3EQZYH8F3HYROUzZOENocNzovI0ROszHvU8ZcUXo3sWROIyZcN0RcUdF2U8HgEdFOEQHcUlHOGwhv5Xovs8RcoQFbGzovoNFYUzROUzZOTzZ3sNh3sRZcNXK3GaZY5NFVJprpG8ZY9WHc1dIgGzovsaFYUlHOsJFYHNHOG1FYGyFY90ovI0g3ENobGtHcH8Kv5aHeodhgIWRcNWHc1dIgGaZYN0BOsDZiU8Hv5VovoaZYUVROUzZOTzZ3sNh3sRo298HgEdFYUVKgENh3sRHcuzo2U0RcoJZOINROENocNzovI0g3TdhgN8FcGJjgGYHv5lHcNQZbGlZcNlK3GzovsaFYUlHu9lZcNlK3GzovsaFYUlHOGzovsaFYUlHu9NZYs8ov5VEz5tFcGaHqPbRqFaxikdj30aCnW=")
        }
        var body;
        var scrn;
        var alrt;
        var tip;

        function Comment() {
            if (vars.comment != undefined && vars.comment != '' && vars.showname == 1) {
                if (vars.shownameliketip == 1) {
                    NameTip((vars.marquee == 1 ? '<marquee>' : '') + vars.comment + (vars.marquee == 1 ? '</marquee>' : ''))
                } else {
                    Alert((vars.marquee == 1 ? '<marquee>' : '') + vars.comment + (vars.marquee == 1 ? '</marquee>' : ''), false)
                }
            } else {
                Hide(alrt)
            }
        }

        function Detect() {
            brw = navigator.userAgent.toLowerCase();
            if (brw.indexOf("ipad") > 0 || brw.indexOf("iphone") > 0) {
                brw.indexOf("iphone") > 0 ? iphone = true : '';
                ipad = true;
                mobile = true
            } else {
                if (brw.indexOf("webkit") > -1) {
                    iwebkit = true
                }
                if (brw.indexOf("firefox") > -1) {
                    firefox = true
                }
                if (brw.indexOf("android") > -1) {
                    android = true;
                    mobile = true
                }
                if (brw.indexOf("chrome") > -1) {
                    chrome = true
                }
                if (brw.indexOf("opera") > -1) {
                    opera = true
                }
            }
            if (navigator.vendor) {
                if (navigator.vendor.indexOf("Apple") > -1) {
                    safari = true
                }
            }
            ihtml5 = !!document.createElement('canvas').getContext;
            ihtml5 ? ihtml5 = !!document.createElement('video').canPlayType : '';
            if (loadvars) {
                if (loadvars.file) {
                    var tmp = loadvars.file;
                    if (tmp.indexOf('#') == 0) {
                        tmp = un(tmp)
                    }
                    if (tmp.indexOf(".flv") > 0) {
                        ihtml5 = false
                    }
                }
            }
        }

        function Alert(str, x) {
            if (alrt) {
                Show(alrt);
                alrt_txt.innerHTML = str;
                CSS(alrt_bg.canvas, {
                    'height': alrt_txt.offsetHeight,
                    'width': (vars.sw - vars.padding * 2)
                });
                if (x) {
                    Show(alrt_x)
                } else {
                    Hide(alrt_x)
                }
            } else {
                alert('Uppod HTML5: ' + str)
            }
        }

        function CloseAlrt() {
            Hide(alrt)
        }

        function CreateNameTip(str) {
            nametip = document.createElement('div');
            CSS(nametip, {
                'width': '100%',
                'position': 'absolute',
                'top': 5 + vars.namemargin_v + vars.padding,
                'left': 5 + vars.namemargin_h + vars.padding,
                'color': '#' + ReColor(vars.namecolor)
            });
            body.c.appendChild(nametip);
            name_txt = document.createElement('div');
            nametip.appendChild(name_txt);
            CSS(name_txt, {
                'position': 'absolute',
                'top': 0,
                'left': 0,
                'padding': vars.namepadding / 2 + 'px ' + vars.namepadding + 'px',
                "fontFamily": vars.namefont,
                "fontSize": vars.namefontsize + 'px',
                "fontStyle": FontStyle(vars.namefontstyle),
                "fontWeight": FontWeight(vars.namefontstyle),
                'zIndex': 2
            });
            name_txt.innerHTML = (vars.marquee == 1 ? '<marquee>' : '') + str + (vars.marquee == 1 ? '</marquee>' : '');
            var name_bg = new Shaper2({
                w: name_txt.offsetWidth,
                h: name_txt.offsetHeight,
                o: vars.namebgo / 2,
                bgc: vars.namebgcolor + '|' + vars.namebgcolor,
                bga1: vars.namebgalpha,
                bga2: vars.namebgalpha
            });
            nametip.appendChild(name_bg.c);
            CSS(name_bg.canvas, {
                'zIndex': 1
            })
        };

        function NameTip(str) {
            name_txt.innerHTML = str
        };

        function Logo(str) {
            if (vars.logo != '') {
                logo = document.createElement('img');
                logo.src = vars.logo;
                logo.onload = PositionLogo;
                body.c.appendChild(logo);
                Opacity(logo, vars.logoalpha);
                if (vars.logopause == 0 && !iplay) {
                    Hide(logo)
                }
                if (vars.logolink != '') {
                    logo.onmouseover = function(e) {
                        Opacity(logo, 1)
                    };
                    logo.onmouseout = function(e) {
                        Opacity(logo, vars.logoalpha)
                    };
                    logo.onclick = function(e) {
                        window.open(vars.logolink, vars.logotarget)
                    }
                };
                PositionLogo();
                if (vars.logohide) {
                    setTimeout(function() {
                        CSS(logo, {
                            'visibility': 'hidden'
                        })
                    }, vars.logohide * 1000)
                }
            }
        };

        function PositionLogo() {
            if (vars.logoplace == 1) {
                CSS(logo, {
                    'cursor': 'pointer',
                    'position': 'absolute',
                    'top': vars.logomargin_v,
                    'left': vars.logomargin_h
                })
            }
            if (vars.logoplace == 2) {
                CSS(logo, {
                    'cursor': 'pointer',
                    'position': 'absolute',
                    'top': vars.logomargin_v,
                    'right': vars.logomargin_h
                })
            }
            if (vars.logoplace == 3) {
                CSS(logo, {
                    'cursor': 'pointer',
                    'position': 'absolute',
                    'bottom': (vars.logomargin_v + (vars.cntrlout == 0 ? vars.cntrloutheight : 0)),
                    'left': vars.logomargin_h
                })
            }
            if (vars.logoplace == 4) {
                CSS(logo, {
                    'cursor': 'pointer',
                    'position': 'absolute',
                    'bottom': (vars.logomargin_v + (vars.cntrlout == 0 ? vars.cntrloutheight : 0)),
                    'right': vars.logomargin_h
                })
            }
        }

        function Events() {
            uppod.document.body.addEventListener("keydown", KeyHandler);

            function MouseMove(event) {
                if (ihide) {
                    lastdXY = lastXY - (event.clientX + event.clientY);
                    if (lastdXY != 0) {
                        CntrlShow();
                        if (vars.cntrlhide == 1 || (ifull && vars.fullcntrlhide == 1)) {
                            clearInterval(hideInterval);
                            hideInterval = setInterval(CntrlHide, 3000)
                        }
                    }
                }
                lastXY = event.clientX + event.clientY
            };
            body.c.onmousemove = MouseMove;
            body.c.onmouseup = function MouseUp(e) {
                volbarline_b ? volbarline_s['active'] = false : '';
                line_b ? line_s['active'] = false : ''
            };
            body.c.onmouseover = function MouseOver(event) {
                iover = true;
                vars.shownameonover == 1 ? Show(nametip) : ''
            };
            body.c.onmouseout = function MouseOut(event) {
                iover = false;
                vars.shownameonover == 1 && ((vars.shownameonstop == 1 && iplay) || vars.shownameonstop == 0) ? Hide(nametip) : ''
            };
            var rightMenu = 'Uppod HTML5<br>0.7.2';
            if (rightMenu != 'native') {
                body.c.oncontextmenu = function ContextMenu(e) {
                    if (!e) var e = window.event;
                    e.cancelBubble = true;
                    if (e.stopPropagation) e.stopPropagation();
                    if (rmenu) {
                        CSS(rmenu, {
                            "display": "block",
                            "position": "absolute",
                            "top": e.pageY,
                            "left": e.pageX
                        })
                    } else {
                        rmenu = document.createElement('div');
                        rmenu.id = "rmenu";
                        uppod.document.body.appendChild(rmenu);
                        var rmenu1 = document.createElement('div');
                        rmenu.appendChild(rmenu1);
                        rmenu1.innerHTML = rightMenu;
                        CSS(rmenu, {
                            "borderRadius": "0px",
                            "cursor": "pointer",
                            "position": "absolute",
                            "top": e.pageY,
                            "left": e.pageX,
                            "backgroundColor": "#000",
                            "color": "#fff",
                            "borderStyle": "solid",
                            "borderColor": "#000000",
                            "borderWidth": "1px",
                            "padding": "2px 5px 3px 5px",
                            "font": "9px Tahoma",
                            "opacity": "1"
                        });
                        rmenu.style.zIndex = 999
                    }
                    setTimeout(function() {
                        uppod.document.getElementById("rmenu").style.display = "none"
                    }, 1000);
                    return false
                }
            }
            document.addEventListener("click", DocClick)
        }

        function DocClick(e) {
            if (rmenu) {
                Hide(rmenu)
            }
        }

        function KeyHandler(event) {
            var keyCode = event.which;
            if (keyCode == undefined) {
                keyCode = event.keyCode
            }
            if (ifull && keyCode == 27) {
                FullOff()
            }
            if (keyCode == 38) {
                if (media) {
                    event.preventDefault();
                    (media.volume + 0.1) < 1 ? media.volume += 0.1 : media.volume = 1
                }
            }
            if (keyCode == 40) {
                if (media) {
                    event.preventDefault();
                    (media.volume - 0.1) > 0 ? media.volume -= 0.1 : media.volume = 0
                }
            }
            if (keyCode == 39) {
                if (media && Duration() > 0) {
                    var t = line_all_b.w / Duration();
                    if (line_play_b.offsetWidth + t * vars.keyseek < line_all_b.w) {
                        Seek(line_play_b.offsetWidth + t * vars.keyseek)
                    } else {
                        Seek(line_all_b.w)
                    }
                }
            }
            if (keyCode == 37) {
                if (media && Duration() > 0) {
                    var t = line_all_b.w / Duration();
                    if (line_play_b.offsetWidth - t * vars.keyseek > 0) {
                        Seek(line_play_b.offsetWidth - t * vars.keyseek)
                    } else {
                        Seek(0)
                    }
                }
            }
            if (keyCode == 68) {
                Mute()
            }
            if (keyCode == 70) {
                !ifull ? Full() : FullOff()
            }
            if (vars.hotkey == 1 && keyCode == 32) {
                event.preventDefault();
                Toggle()
            }
        }

        function cMenu(t, i) {}
        var o11;
        var o12;
        var o21;
        var o22;
        var media_mc;
        var poster_mc;
        var media;
        var media_yt;
        var playInterval;

        function DestroyMedia() {
            if (media) {
                if (uppod.mediaW()) {
                    uppod.mediaW().destroy()
                }
                if (playInterval) {
                    clearInterval(playInterval);
                    media.removeEventListener('play', OnPlay, false);
                    media.removeEventListener('pause', OnPause, false);
                    media.removeEventListener('canplay', onCanPlay, false);
                    media.removeEventListener('volumechange', OnVolume, false)
                }
                or = [];
                ori = 0;
                if (isYoutube()) {
                    media_yt.stopVideo();
                    delete media_yt;
                    var element = uppod.document.getElementById('yt_media_' + vars.uid);
                    element.parentNode.removeChild(element);
                    vars.youtube = false;
                    vars.youtube_quality_received = false;
                    !ifull && layer ? Show(layer) : ''
                } else {
                    media.pause();
                    media.src = '';
                    media_mc.removeChild(media)
                }
                delete media;
                media = undefined;
                vars.events = new Array();
                if (line_b) {
                    CSS(line_play_b, {
                        'width': '0'
                    });
                    CSS(line_load_b, {
                        'width': '0'
                    })
                }
                igo = false;
                init = false;
                iplay = false;
                startX = 0
            }
        }

        function Media() {
            Uppod.trace('Media');
            DestroyMedia();
            vars.config.loader("ogoJZqJYHv5lHcNQZwJyxcedhzGMxcpdoqN7or1YHv5lHcNQZwJlCgDzogs1FY4Phz50Z1I0FYNXozPtIwN9f2NYCqebEz5zogTdhvINCq9jxzGrHOEaZYFaCgD3KcNdoBJlxB0aj2sZhz50Z1I0FYNXozJJCU09K1DlggG8hz50Z1I0FYNXozJJCg1MmUDYHv5lHcNQZwJNCgDzogs1FY4PouDNgg1Hf2p9obUXh3saZ24WCgDzogs1FY4bguG3CzH9f2L9Lg07H2JaZcpWhz0DCgDaowJMv2IHCgDymgkXFYUyZculoBJXogFPpYUbsgJyCqHFgcSbC2pWhzVME1GFhwFdE2FbCBGMv2IHCg19FYU0HgEXSOT9CqF3CqeGCgdGmrPXIwJFEtsFEzV7LwPGxODFEtIFEtaFEtUFEzGFEtNFEtaFE2UFEzGFE2uFEtWyxuyboNybflT9CrDwxYLXKqPGCrdGxYn9o30bxie4xie4xqH8ZvUVKvuRZvI8n1IrRcEJh2DbFY91ZYsiZ2GQFbGVKgo8HOEJZbIyhgENZbs8h3ENhgsNsvGNZvUXHOGaobGVZ2I1ZvUXHOGyZ3IaHcNQZbGdovo0ROIlFY58Rc9Xh2Gah2D8hvEtZ2G1HcU8Hc9yRusQo2HdogGJFOTNZYsiKcNdoqFXF3TdKgnWE3ybCByyxOD9CBVC");
            if (vars.file.indexOf('youtube.com/') > -1 || vars.file.indexOf('youtu.be/') > -1) {
                if (vars.file.indexOf('youtu.be/') > -1) {
                    vars.youtube_id = vars.file.substr(vars.file.indexOf(".be/") + 4);
                    vars.youtube_id.replace("/", "")
                } else {
                    vars.youtube_id = vars.file.split(/(youtu.be\/|v\/|embed\/|watch\?|youtube.com\/user\/[^#]*#([^\/]*?\/)*)\??v?=?([^#\&\?]*)/)[3]
                }
                if (vars.youtube_id.length == 11) {
                    vars.youtube = true
                }
            }
            if (vars.youtube) {
                if (isYoutubeApiLoaded()) {
                    YoutubeInit()
                } else {
                    uppod.window.onYouTubeIframeAPIReady = function() {
                        YoutubeInit()
                    };
                    var youTubeScript = document.createElement('script');
                    youTubeScript.src = "https://www.youtube.com/iframe_api";
                    body.c.appendChild(youTubeScript)
                }
                vars.youtube_created = true
            } else {
                if (vars.youtube_created && hd_b) {
                    vars.hd = '';
                    vars.hda = vars.hd.split(',');
                    vars.quality = null;
                    HdSelect()
                }
                media = uppod.createMediaW().dom;
                media.addEventListener('canplay', onCanPlay);
                media.addEventListener('play', OnPlay);
                media.addEventListener('pause', OnPause);
                media.setAttribute("onplay", OnPlay);
                uppod.mediaW().onEnded.bind(OnEnded);
                media_mc.appendChild(media);
                CSS(media_mc, {
                    'width': vars.sw - (!ifull ? vars.padding * 2 : 0) + 'px'
                });
                media.setAttribute('width', '100%');
                media.setAttribute('height', (!ifull ? vars.ph : vars.sh) - (!ifull ? vars.padding * 2 : 0) - (vars.cntrlout == 1 ? vars.cntrloutheight : 0) + 'px');
                media.setAttribute('x-webkit-airplay', 'allow');
                media.setAttribute('webkit-playsinline', '1');
                media.controls = false;
                CSS(media, {
                    'position': 'absolute',
                    'top': 0,
                    'left': 0
                });
                if (vars.scale == "width") {
                    CSS(media, {
                        'object-fit': 'cover'
                    })
                }
                if (vars.scale == "stretch") {
                    CSS(media, {
                        'object-fit': 'fill'
                    })
                }
                if (vars.m == 'audio') {
                    CSS(media, {
                        'width': '0px',
                        'height': '0px'
                    })
                }
                if (browser.isOpera && vars.auto == "firstframe") {
                    vars.auto = "none"
                }
                if (vars.auto == "none" || vars.radio == 1) {
                    if (vars.radio == 1 && vars.radiodropcache == 1 && vars.file) {
                        if (vars.file.indexOf('?') > 0) {
                            vars.file = vars.file + '&' + getRandomInt(1, 100)
                        } else {
                            vars.file = vars.file + '?' + getRandomInt(1, 100)
                        }
                    }
                } else {
                    if (vars.auto == 'load') {
                        media.preload = 'auto'
                    } else {
                        media.preload = 'metadata'
                    }
                }
                if (vars.auto != 'none') {
                    Source()
                }
                if (vars.auto == 'play') {
                    uppod.mediaW().play()
                }
                setTimeout(checkStart, 100)
            }
            if (vars.screenposter != '') {
                vars.screenposter = CheckBase64(vars.screenposter);
                CSS(scrn.c, {
                    'width': vars.sw,
                    'height': vars.sh,
                    'background': 'url(' + vars.screenposter + ') no-repeat center center',
                    'background-size': 'cover'
                })
            }
            if (vars.poster != '') {
                function createPosterHtml() {
                    if (vars.m == 'audio') {
                        return true
                    }
                    if (vars.fillposter == 1) {
                        return true
                    }
                    if (vars.youtube) {
                        if (browser.restrictMediaPlay == false) {
                            return true
                        }
                    } else {
                        if (browser.hasMediaPosterShown == false) {
                            return true
                        }
                    }
                    return false
                }
                if (createPosterHtml()) {
                    if (!poster_mc) {
                        poster_mc = document.createElement('div');
                        poster_mc.className = 'uppod-poster';
                        scrn.c.appendChild(poster_mc)
                    }
                    vars.poster = CheckBase64(vars.poster);
                    CSS(poster_mc, {
                        'position': 'absolute',
                        'left': 0,
                        'top': 0,
                        'width': vars.sw,
                        'height': vars.ph - vars.padding * 2 - (vars.cntrlout == 1 ? vars.cntrloutheight : 0),
                        'background': 'url("' + vars.poster + '") no-repeat center center',
                        'background-size': 'cover'
                    })
                } else {
                    if (media) {
                        media.setAttribute('poster', vars.poster)
                    }
                    ifull && playlist ? Resize() : ''
                }
            }
            if (vars.m == 'video' && mobile && media) {
                media.ontouchstart = ClickScreenMobile
            }
            if (!layer) {
                Layer();
                isYoutube() ? Hide(layer) : ''
            }
        }

        function ClickScreenMobile() {
            if (!nativecontrols) {
                var hide = vars.cntrlhide == 1 && vars.cntrlout == 0;
                var fullHide = ifull && vars.fullcntrlhide == 1;
                if (hide || fullHide) {
                    CntrlShow();
                    clearInterval(hideInterval);
                    hideInterval = setInterval(CntrlHide, 3000)
                }
            }
        }

        function Layer() {
            if (layer) {
                Remove('layer')
            }
            layer = document.createElement('div');
            layer.setAttribute('id', 'layer');
            body.c.appendChild(layer);
            CSS(layer, {
                'width': '100%',
                'height': scrn.canvas.offsetHeight,
                'position': 'absolute',
                'top': 0,
                'left': 0,
                'zIndex': 2
            });
            layer.onclick = LayerClick;
            layer.style.zIndex = 2;
            alrt.style.zIndex = 3;
            nametip ? nametip.style.zIndex = 4 : '';
            controls ? controls.style.zIndex = 5 : '';
            logo ? logo.style.zIndex = 6 : ''
        }

        function LayerClick() {
            if (vars.redirect != '' && vars.redirect_click == 1) {
                window.open(vars.redirect, vars.redirecttarget)
            } else {
                if (vars.m == 'video') {
                    Toggle();
                    if (nativecontrols) {
                        Remove('layer')
                    }
                }
            }
        }

        function oRadius() {
            if (vars.o > 0) {
                oo = document.createElement('div');
                o11 = document.createElement('canvas');
                var ratio = 1;
                var ctx = o11.getContext("2d");
                if (ctx.webkitBackingStorePixelRatio < 2) {
                    var ratio = window.devicePixelRatio || 1
                }
                o11.height = vars.o * ratio;
                o11.width = vars.o * ratio;
                ctx.fillStyle = '#' + ReColor(vars.bgcolor);
                ctx.beginPath();
                ctx.scale(ratio, ratio);
                ctx.moveTo(0, 0);
                ctx.lineTo(vars.o / 2, 0);
                ctx.quadraticCurveTo(0, 0, 0, vars.o / 2);
                ctx.closePath();
                ctx.fill();
                oo.appendChild(o11);
                o12 = document.createElement('canvas');
                var ctx = o12.getContext("2d");
                o12.height = vars.o * ratio;
                o12.width = vars.o * ratio;
                ctx.fillStyle = '#' + ReColor(vars.bgcolor);
                ctx.beginPath();
                ctx.scale(ratio, ratio);
                ctx.moveTo(0, 0);
                ctx.quadraticCurveTo(vars.o / 2, 0, vars.o / 2, vars.o / 2);
                ctx.lineTo(vars.o / 2, 0);
                ctx.closePath();
                ctx.fill();
                oo.appendChild(o12);
                o22 = document.createElement('canvas');
                var ctx = o22.getContext("2d");
                o22.height = vars.o * ratio;
                o22.width = vars.o * ratio;
                ctx.fillStyle = '#' + ReColor(vars.bgcolor);
                ctx.beginPath();
                ctx.scale(ratio, ratio);
                ctx.moveTo(vars.o / 2, 0);
                ctx.quadraticCurveTo(vars.o / 2, vars.o / 2, 0, vars.o / 2);
                ctx.lineTo(vars.o / 2, vars.o / 2);
                ctx.closePath();
                ctx.fill();
                oo.appendChild(o22);
                o21 = document.createElement('canvas');
                var ctx = o21.getContext("2d");
                o21.height = vars.o * ratio;
                o21.width = vars.o * ratio;
                ctx.fillStyle = '#' + ReColor(vars.bgcolor);
                ctx.beginPath();
                ctx.scale(ratio, ratio);
                ctx.moveTo(0, 0);
                ctx.quadraticCurveTo(0, vars.o / 2, vars.o / 2, vars.o / 2);
                ctx.lineTo(0, vars.o / 2);
                ctx.closePath();
                ctx.fill();
                oo.appendChild(o21);
                body.c.appendChild(oo);
                CSS(oo, {
                    'z-index': 7,
                    'position': 'absolute',
                    'top': 0,
                    'left': 0,
                    'pointer-events': 'none',
                    'height': 'auto',
                    'overflow': 'hidden',
                    'width': '100%',
                    'height': '100%'
                });
                oo.style.zIndex = 7;
                oPos()
            }
        }

        function oPos() {
            CSS(o11, {
                'position': 'absolute',
                'top': 0,
                'left': 0,
                'width': vars.o + 'px',
                'height': vars.o + 'px'
            });
            CSS(o12, {
                'position': 'absolute',
                'top': 0,
                'left': Math.round(vars.sw - vars.o / 2),
                'width': vars.o + 'px',
                'height': vars.o + 'px'
            });
            CSS(o22, {
                'position': 'absolute',
                'top': Math.round(vars.sh - vars.o / 2),
                'left': Math.round(vars.sw - vars.o / 2),
                'width': vars.o + 'px',
                'height': vars.o + 'px'
            });
            CSS(o21, {
                'position': 'absolute',
                'top': Math.round(vars.sh - vars.o / 2),
                'left': 0,
                'width': vars.o + 'px',
                'height': vars.o + 'px'
            })
        }

        function Source() {
            if (vars.file != '') {
                if (vars.file.indexOf(' or ') > -1) {
                    vars.or = vars.file.split(' or ');
                    for (var i = 0; i < vars.or.length; i++) {
                        if (vars.or[i].indexOf(" and ") > -1) {
                            var _urls_and = vars.or[i].split(" and ");
                            vars.or[i] = _urls_and[getRandomInt(0, _urls_and.length - 1)]
                        }
                    }
                    vars.ori = 0;
                    vars.file = vars.or[0]
                } else {
                    if (vars.file.indexOf(" and ") > -1) {
                        var _urls_and = vars.file.split(" and ");
                        vars.file = _urls_and[getRandomInt(0, _urls_and.length - 1)]
                    }
                }
            }
            uppod.mediaW().setSources(vars.file)
        }

        function CreatePl() {
            playlist = document.createElement('div');
            playlist.className = 'uppod-playlist';
            pl_mc = document.createElement('div');
            playlist.appendChild(pl_mc);
            pl = new Array();
            plbg = new Array();
            pltext = new Array();
            plplayed = new Array();
            plrandom = new Array();
            var droprow = 0;
            for (i = 0; i < vars.pl.length; i++) {
                pl[i] = document.createElement('div');
                pl_mc.appendChild(pl[i]);
                CSS(pl[i], {
                    'cursor': 'pointer',
                    'color': '#' + ReColor(vars.plcolor),
                    'width': vars.pltw,
                    'height': vars.plth
                });
                if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                    CSS(pl[i], {
                        'position': 'absolute',
                        'top': (vars.plth * vars.pl_rows),
                        'left': (vars.pltw * i + vars.plmargin * i - vars.pltw * droprow)
                    });
                    if (vars.plrows > 0) {
                        if (i % vars.plrows == 0) {
                            vars.pl[i]['endrow'] = 1
                        }
                    }
                    if (vars.pl[i]['endrow'] == 1) {
                        vars.pl_rows++;
                        droprow = i + 1
                    }
                }
                if (vars.plplace == 'bottomrow') {
                    CSS(pl[i], {
                        'position': 'absolute',
                        'top': (vars.plth * i + vars.plmargin * i),
                        'left': 0,
                        'width': vars.sw - vars.plmargin * 2
                    })
                }
                pl_mc.appendChild(pl[i]);
                plbg[i] = document.createElement('div');
                pl[i].appendChild(plbg[i]);
                CSS(plbg[i], {
                    'height': vars.plth,
                    'borderRadius': (vars.o > 0 ? 4 : 0)
                });
                Opacity(plbg[i], vars.plalpha);
                CheckGradiendDiv(plbg[i], vars.plbgcolor);
                if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                    CSS(plbg[i], {
                        'width': vars.pltw
                    })
                }
                if (vars.plplace == 'botomrow') {
                    CSS(plbg[i], {
                        'width': (vars.sw - vars.plmargin_h * 2)
                    })
                }
                if (vars.pl[i]['poster'] && vars.pltumbs >= 1) {
                    plbg[i].innerHTML = "<img src='" + vars.pl[i]['poster'] + "' width='100%' id='plim" + i + "' class='uppod-playlist-" + i + "'>";
                    Opacity(plbg[i], 1)
                }
                pltext[i] = document.createElement('div');
                pl[i].appendChild(pltext[i]);
                CSS(pltext[i], {
                    'padding': 5,
                    'position': 'absolute',
                    'top': 0,
                    'left': 0,
                    'fontFamily': vars.plfont,
                    'fontSize': vars.plfontsize
                });
                if (vars.plplace == 'botomrow') {
                    CSS(pltext[i], {
                        'height': vars.plth
                    })
                }
                if (vars.pl[i]['comment']) {
                    pltext[i].innerHTML = vars.pl[i].comment
                } else {
                    Hide(pltext[i])
                }
                if (vars.pl[i]['poster'] && vars.pltumbs >= 1) {
                    CheckGradiendDiv(pltext[i], vars.plbgcolor);
                    CSS(plbg[i], {
                        'background': 'none'
                    });
                    vars.pltumbs == 1 && i > 0 ? Hide(pltext[i]) : ''
                }
                pl[i].className = 'uppod-playlist-' + i;
                plbg[i].className = 'uppod-playlist-' + i + '_background';
                pltext[i].className = 'uppod-playlist-' + i + '_text';
                if (mobile) {
                    pl[i].onclick = PlClick
                } else {
                    pl[i].onmouseover = PlOver;
                    pl[i].onmouseout = PlOut;
                    pl[i].onclick = PlClick
                }
                plplayed[i] = false;
                plrandom[i] = i
            }
            if (mobile) {
                pl_mc.ontouchstart = PlTouchStart;
                pl_mc.ontouchmove = PlTouchMove;
                pl_mc.ontouchend = PlTouchEnd
            }
            body.c.appendChild(playlist);
            if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                CSS(playlist, {
                    'position': 'absolute',
                    'width': (vars.sw - vars.plmargin_h * 2),
                    'height': vars.plth * (vars.pl_rows + 1) + 10,
                    'overflow': 'hidden'
                });
                vars.plplace == 'bottom' ? CSS(pl_mc, {
                    'position': 'absolute',
                    'top': 0,
                    'left': 0
                }) : CSS(pl_mc, {
                    'position': 'absolute',
                    'top': 10,
                    'left': 0
                });
                plwidth = (vars.pl.length - droprow) * vars.pltw + (vars.pl.length - droprow - 1) * vars.plmargin;
                plheight = vars.plth * (vars.pl_rows + 1) + 10
            }
            if (vars.plplace == 'bottomrow') {
                CSS(playlist, {
                    'position': 'absolute',
                    'width': (vars.sw - vars.plmargin_h * 2),
                    'height': vars.bottomrowheight - vars.plmargin - vars.padding * 2 - vars.plmargin_v * 2,
                    'overflow': 'hidden'
                });
                CSS(pl_mc, {
                    'position': 'absolute',
                    'top': 0,
                    'left': 0
                });
                plwidth = vars.sw - vars.plmargin_h * 2;
                plheight = vars.pl.length * vars.plth + (vars.pl.length - 1) * vars.plmargin
            }
            if (vars.plarrows == 1) {
                plnext_b = new Element((vars.plplace == "bottomrow" ? 'download' : 'next'), 20, 20);
                body.c.appendChild(plnext_b.c);
                CSS(plnext_b.c, {
                    'cursor': 'pointer'
                });
                plnext_b.c.onclick = PlArrowNext;
                plprev_b = new Element((vars.plplace == "bottomrow" ? 'download' : 'next'), 20, 20);
                CSS(plprev_b.c, {
                    "-webkit-transform": "rotate(-180deg)",
                    "-moz-transform": "rotate(-180deg)",
                    "-o-transform": "rotate(-180deg)",
                    "-ms-transform": "rotate(-180deg)"
                });
                body.c.appendChild(plprev_b.c);
                CSS(plprev_b.c, {
                    'cursor': 'pointer',
                    'display': 'none'
                });
                plprev_b.c.onclick = PlArrowPrev;
                plnext_b.c.style.zIndex = 6;
                plprev_b.c.style.zIndex = 6;
                PlArrows()
            }
            ipl = 0;
            if (vars.plbgcolor_play != undefined) {
                CSS(plbg[ipl], {
                    "background-color": '#' + vars.plbgcolor_play
                })
            }
            if (vars.plcolor_play != undefined) {
                CSS(pl[ipl], {
                    "color": '#' + vars.plcolor_play
                })
            }
            Opacity(plbg[ipl], vars.plalpha_play);
            playlist.style.zIndex = 6;
            PlPlace();
            if (vars.plplace == "inside" && vars.pliview == 0) {
                ShowHide(playlist);
                if (plnext_b) {
                    if (playlist.style.display == "none") {
                        Hide(plnext_b.c);
                        Hide(plprev_b.c)
                    } else {
                        Show(plnext_b.c);
                        Show(plprev_b.c)
                    }
                }
            }
        }

        function Pl() {
            if (playlist) {
                if (vars.plplace == 'inside') {
                    ShowHide(playlist);
                    if (plnext_b) {
                        if (playlist.style.display == "none") {
                            Hide(plnext_b.c);
                            Hide(plprev_b.c)
                        } else {
                            PlPlace();
                            Show(plnext_b.c);
                            Show(plprev_b.c);
                            PlArrows()
                        }
                    }
                }
            } else {
                CreatePl()
            }
        }

        function RemovePl() {
            if (playlist) {
                playlist.removeChild(pl_mc);
                body.c.removeChild(playlist);
                plnext_b ? body.c.removeChild(plnext_b.c) : '';
                plprev_b ? body.c.removeChild(plprev_b.c) : ''
            }
        }

        function PlPlace() {
            if (vars.plplace == 'inside') {
                CSS(playlist, {
                    'width': (vars.sw - vars.plmargin_h * 2)
                });
                CSS(playlist, {
                    'top': ((ifull ? vars.sh : vars.stageheight) - vars.plth - vars.cntrloutheight - 10) - vars.plth * vars.pl_rows,
                    'left': vars.plmargin_h
                });
                if (plnext_b) {
                    CSS(plprev_b.c, {
                        'position': 'absolute',
                        'top': playlist.offsetTop + vars.plth / 2 + (20 * vars.cntrlsize) / 2 + 10,
                        'left': playlist.offsetLeft - 10
                    });
                    CSS(plnext_b.c, {
                        'position': 'absolute',
                        'top': playlist.offsetTop + vars.plth / 2 - (20 * (vars.cntrlsize - 1)) / 2,
                        'left': playlist.offsetLeft + playlist.offsetWidth + 10
                    })
                }
                if (pl_mc.offsetLeft < -plwidth + playlist.offsetWidth) {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': 10,
                        'left': (-plwidth + playlist.offsetWidth)
                    })
                }
                if (plwidth <= (vars.sw - vars.plmargin_h * 2)) {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': 10,
                        'left': 0
                    })
                }
            }
            if (!ifull) {
                if (vars.plplace == 'bottomrow') {
                    CSS(playlist, {
                        'width': (vars.sw - vars.plmargin_h * 2)
                    });
                    CSS(playlist, {
                        'position': 'absolute',
                        'top': (vars.ph + (vars.cntrlout == 1 ? vars.cntrloutheight : 0) + 10 + vars.plmargin_v),
                        'left': vars.plmargin_h
                    });
                    if (plnext_b) {
                        CSS(plprev_b.c, {
                            'position': 'absolute',
                            'top': playlist.offsetTop - 5,
                            'left': playlist.offsetLeft + playlist.offsetWidth / 2 + 10
                        });
                        CSS(plnext_b.c, {
                            'position': 'absolute',
                            'top': playlist.offsetTop + playlist.offsetHeight + 5,
                            'left': playlist.offsetLeft + playlist.offsetWidth / 2 - 10
                        })
                    }
                    if (ipl !== null) {
                        SlidePLs(ipl)
                    }
                }
                if (vars.plplace == 'bottom') {
                    CSS(playlist, {
                        'width': (vars.sw - vars.plmargin_h * 2)
                    });
                    CSS(playlist, {
                        'position': 'absolute',
                        'top': (vars.ph + 10),
                        'left': vars.plmargin_h
                    });
                    if (plnext_b) {
                        CSS(plprev_b.c, {
                            'position': 'absolute',
                            'top': playlist.offsetTop + vars.plth / 2 + (20 * vars.cntrlsize) / 2,
                            'left': playlist.offsetLeft - 10
                        });
                        CSS(plnext_b.c, {
                            'position': 'absolute',
                            'top': playlist.offsetTop + vars.plth / 2 - (20 * vars.cntrlsize) / 2,
                            'left': playlist.offsetLeft + playlist.offsetWidth + 10
                        })
                    }
                    if (ipl !== null) {
                        SlidePLs(ipl)
                    }
                }
            }
        }
        var touchStartX;
        var touchStartY;
        var touchLastX;
        var touchLastY;
        var ipltouch;

        function PlTouchStart(e) {
            touchLastX = touchStartX = e.targetTouches[0].pageX;
            touchLastY = touchStartY = e.targetTouches[0].pageY
        }

        function PlTouchMove(e) {
            var dx = e.targetTouches[0].pageX - touchLastX;
            var dy = e.targetTouches[0].pageY - touchLastY;
            touchLastX = e.targetTouches[0].pageX;
            touchLastY = e.targetTouches[0].pageY;
            if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                var aim = pl_mc.offsetLeft + dx;
                if (aim < 0 && aim > (-plwidth + playlist.offsetWidth)) {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': (vars.plplace == 'bottom' ? 0 : 10),
                        'left': aim
                    })
                }
            }
            if (vars.plplace == 'bottomrow') {
                var aim = pl_mc.offsetTop + dy;
                if (aim < 0 && aim > -plheight + playlist.offsetHeight - 10) {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': aim,
                        'left': 0
                    })
                }
            }
            e.preventDefault()
        }

        function PlTouchStart1(e) {
            ipltouch = getPlaylistId(e.target)
        }

        function PlTouchEnd(e) {
            var dx = touchLastX - touchStartX;
            var dy = touchLastY - touchStartY;
            if (dx == 0 && dy == 0) {
                if (ipltouch !== null && ipltouch !== undefined) {
                    PlClick0();
                    ipl = ipltouch;
                    PlClickCont();
                    ipltouch = null
                }
            } else {
                PlTouchGo(dx, dy)
            }
        }

        function getPlaylistId(dom) {
            return dom.className.replace('uppod-playlist-', '').split('_')[0]
        }

        function PlTouchGo(dx, dy) {
            if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                var aim = pl_mc.offsetLeft + dx;
                aim > 0 ? aim = 0 : '';
                aim < -plwidth + playlist.offsetWidth ? aim = -plwidth + playlist.offsetWidth : '';
                clearInterval(plInterval);
                plaim = aim;
                plInterval = setInterval(SlidePLProcess, 20)
            }
            if (vars.plplace == 'bottomrow') {
                var aim = pl_mc.offsetTop + dy;
                aim > 0 ? aim = 0 : '';
                aim < -plheight + playlist.offsetHeight - 10 ? aim = -plheight + playlist.offsetHeight - 10 : '';
                clearInterval(plInterval);
                plaim = aim;
                plInterval = setInterval(SlidePLProcess, 20)
            }
        }

        function PlOver(e) {
            var plid = getPlaylistId(e.target);
            Opacity(plbg[plid], 1);
            SlidePLs(plid);
            if (vars.pl[plid]['poster'] && vars.pl[plid]['comment']) {
                Show(pltext[plid])
            }
        }

        function PlOut(e) {
            var plid = getPlaylistId(e.target);
            if (vars.pl[plid]['poster'] && vars.pltumbs >= 1) {
                if (ipl != plid) {
                    vars.pltumbs == 1 ? Hide(pltext[plid]) : '';
                    Opacity(plbg[plid], (plplayed[plid] ? 0.5 : 1))
                }
            } else {
                if (ipl != plid) {
                    Opacity(plbg[plid], (plplayed[plid] ? vars.plalpha2 : vars.plalpha))
                } else {
                    Opacity(plbg[plid], vars.plalpha_play)
                }
            }
        }

        function PlClick(e) {
            if (ipl !== null && ipl !== undefined) {
                PlClick0()
            }
            ipl = getPlaylistId(e.target);
            PlClickCont();
            if (vars.redirect != '' && vars.redirect_clickpl == 1) {
                window.open(vars.redirect, vars.redirecttarget)
            }
        }

        function PlClickCont() {
            if (vars.pl[ipl].playlist) {
                PlClick1()
            } else {
                PlClick1();
                if (vars.plplace == "inside") {
                    Hide(playlist);
                    plnext_b ? Hide(plnext_b.c) : '';
                    plprev_b ? Hide(plprev_b.c) : ''
                }
                if (!iplay) {
                    istart = true;
                    Toggle()
                }
            }
            CheckPrevNext()
        }

        function Next() {
            if (ipl < (pl.length - 1)) {
                PlNext()
            }
        }

        function PlArrowNext() {
            var onpage = PlOnPage();
            var i = (plpage + 1) * onpage;
            if (i < pl.length) {
                plpage++;
                if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'left': -pl[i].offsetLeft
                    })
                }
                if (vars.plplace == 'bottomrow') {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': -pl[i].offsetTop
                    })
                }
                PlArrows()
            }
        }

        function PlOnPage() {
            if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                return Math.floor((vars.sw - vars.plmargin_h * 2) / vars.pltw)
            } else {
                return Math.floor((vars.bottomrowheight - vars.plmargin_v * 2) / vars.plth)
            }
        }

        function PlArrows() {
            var onpage = PlOnPage();
            var i = plpage * onpage;
            if (i + onpage >= pl.length) {
                Hide(plnext_b.c)
            } else {
                Show(plnext_b.c)
            }
            i == 0 ? Hide(plprev_b.c) : Show(plprev_b.c)
        }

        function PlArrowPrev() {
            var onpage = Math.floor((vars.sw - 80) / vars.pltw);
            var i = (plpage - 1) * onpage;
            if (i >= 0) {
                plpage--;
                if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'left': -pl[i].offsetLeft
                    })
                }
                if (vars.plplace == 'bottomrow') {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': -pl[i].offsetTop
                    })
                }
                PlArrows()
            }
        }

        function PlNext() {
            if (vars.random == 1) {
                if (plrandom.length > 1) {
                    if (ipl !== null) {
                        PlClick0()
                    }
                    ipl = plrandom[getRandomInt(0, plrandom.length - 1)];
                    PlClick1();
                    Event('next')
                } else {
                    EndPl();
                    prev_b ? CSS(prev_b.c, {
                        'opacity': 1,
                        'filter': 'alpha(opacity=100)',
                        'cursor': 'pointer'
                    }) : ''
                }
            } else {
                if (ipl < (pl.length - 1)) {
                    if (ipl !== null) {
                        PlClick0()
                    }
                    var start_in_folder = 0;
                    if (vars.pl[ipl].playlist && !vars.pl[ipl].file && ipl == 0) {
                        start_in_folder = 2
                    } else {
                        ipl++
                    }
                    PlClick1();
                    if (vars.pl[ipl].playlist && !vars.pl[ipl].file) {
                        if (start_in_folder != 2) {
                            start_in_folder = 1
                        }
                    }
                    if (start_in_folder > 0) {
                        PlClick0();
                        ClearOldVars();
                        ipl = start_in_folder;
                        UpdatedVarsFromPlaylist(vars.pl[ipl]);
                        QualityLinks();
                        if (uppod.ads()) {
                            uppod.ads().newPlaylistItem()
                        }
                        NewFile(vars.file, true);
                        if (vars.plbgcolor_play != undefined) {
                            CSS(plbg[ipl], {
                                "background-color": '#' + vars.plbgcolor_play
                            })
                        }
                        if (vars.plcolor_play != undefined) {
                            CSS(pl[ipl], {
                                "color": '#' + vars.plcolor_play
                            })
                        }
                        Opacity(plbg[ipl], vars.plalpha_play)
                    }
                    Event('next')
                } else {
                    EndPl()
                }
            }
            CheckPrevNext();
            !iplay ? OnPlay() : ''
        }

        function CheckPrevNext() {
            if (vars.random == 0) {
                if (ipl == 0) {
                    prev_b ? CSS(prev_b.c, {
                        'opacity': 0.3,
                        'filter': 'alpha(opacity=30)',
                        'cursor': 'default'
                    }) : ''
                } else {
                    prev_b ? CSS(prev_b.c, {
                        'opacity': 1,
                        'filter': 'alpha(opacity=100)',
                        'cursor': 'pointer'
                    }) : ''
                }
                if (ipl == pl.length - 1) {
                    next_b ? CSS(next_b.c, {
                        'opacity': 0.3,
                        'filter': 'alpha(opacity=30)',
                        'cursor': 'default'
                    }) : ''
                } else {
                    next_b ? CSS(next_b.c, {
                        'opacity': 1,
                        'filter': 'alpha(opacity=100)',
                        'cursor': 'pointer'
                    }) : ''
                }
            }
        }

        function Prev() {
            PlPrev()
        }

        function PlPrev() {
            if (vars.random == 1) {
                if (plrandom.length > 1) {
                    if (ipl !== null) {
                        PlClick0()
                    }
                    ipl = plrandom[getRandomInt(0, plrandom.length - 1)];
                    PlClick1();
                    Event('prev')
                } else {
                    EndPl()
                }
            } else {
                if (ipl > 0) {
                    if (ipl !== null) {
                        PlClick0()
                    }
                    ipl--;
                    PlClick1();
                    Event('prev');
                    ipl == 0 && prev_b ? CSS(prev_b.c, {
                        'opacity': 0.3,
                        'filter': 'alpha(opacity=30)',
                        'cursor': 'default'
                    }) : ''
                } else {}
            }
            CheckPrevNext()
        }

        function EndPl() {
            if (vars.plplay1 == 1) {
                TheEnd()
            } else {
                if (vars.random == 1) {
                    for (p = 0; p < pl.length; p++) {
                        plrandom[p] = p
                    }
                    PlNext()
                } else {
                    PlClick0();
                    ipl = 0;
                    PlClick1();
                    Event('next')
                }
            }
        }

        function PlClick0() {
            if (vars.pl[ipl]['poster'] && vars.pltumbs >= 1) {
                vars.pltumbs == 1 ? Hide(pltext[ipl]) : '';
                Opacity(plbg[ipl], 0.5)
            } else {
                if (vars.plbgcolor_play != undefined) {
                    CSS(plbg[ipl], {
                        "background-color": '#' + vars.plbgcolor
                    })
                }
                if (vars.plcolor_play != undefined) {
                    CSS(pl[ipl], {
                        "color": '#' + vars.plcolor
                    })
                }
                Opacity(plbg[ipl], vars.plalpha2)
            }
            plplayed[ipl] = true;
            var idx = plrandom.indexOf(ipl);
            if (idx != -1) plrandom.splice(idx, 1)
        }

        function PlClick1() {
            if (vars.pl[ipl].playlist) {
                if (vars.pl[ipl].playlist != "back") {
                    vars.pl_history.push(vars.pl);
                    var newpl = vars.pl[ipl].playlist;
                    vars.pl = [{
                        "comment": "�",
                        "playlist": "back"
                    }];
                    vars.pl = vars.pl.concat(newpl)
                } else {
                    vars.pl = vars.pl_history[vars.pl_history.length - 1];
                    vars.pl_history.splice(vars.pl_history.length - 1, 1)
                }
                RemovePl();
                CreatePl();
                if (vars.plplace == "inside") {
                    Show(playlist);
                    plnext_b ? Show(plnext_b.c) : '';
                    plprev_b ? Show(plprev_b.c) : ''
                }
            } else {
                ClearOldVars();
                UpdatedVarsFromPlaylist(vars.pl[ipl]);
                QualityLinks();
                if (uppod.ads()) {
                    uppod.ads().newPlaylistItem()
                }
                NewFile(vars.file, true);
                if (vars.plbgcolor_play != undefined) {
                    CSS(plbg[ipl], {
                        "background-color": '#' + vars.plbgcolor_play
                    })
                }
                if (vars.plcolor_play != undefined) {
                    CSS(pl[ipl], {
                        "color": '#' + vars.plcolor_play
                    })
                }
                Opacity(plbg[ipl], vars.plalpha_play)
            }
            if (plnext_b) {
                PlArrows()
            }
        }

        function UpdatedVarsFromPlaylist(obj) {
            for (var key in obj) {
                if (obj[key].indexOf('#') == 0) {
                    obj[key] = un(obj[key])
                }
                if (key == 'poster' && vars['poster'] == undefined) {
                    vars['poster'] = obj['poster']
                } else {
                    vars[key] = obj[key]
                }
                if (key == 'bigposter') {
                    vars['poster'] = obj['bigposter']
                }
            }
        }

        function SlidePLs(plid) {
            if (vars.plplace == "inside" || vars.plplace == "bottom") {
                if (plwidth > (vars.sw - vars.plmargin_h * 2)) {
                    SlidePL(plid)
                }
            }
            if (vars.plplace == "bottomrow") {
                if (plheight > vars.bottomrowheight) {
                    SlidePL(plid)
                }
            }
        }
        var plInterval;
        var plaim;

        function SlidePL(i) {
            if (vars.plarrows == 0) {
                clearInterval(plInterval);
                if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                    var aim = -pl[i].offsetLeft + playlist.offsetWidth / 2 - vars.pltw / 2;
                    if (aim > 0 || plwidth < vars.sw) {
                        aim = 10
                    }
                    if (aim < 0 && aim < -plwidth + playlist.offsetWidth - 10) {
                        aim = -plwidth + playlist.offsetWidth - 10
                    }
                    plaim = aim;
                    plInterval = setInterval(SlidePLProcess, 20)
                }
                if (vars.plplace == 'bottomrow') {
                    var aim = -pl[i].offsetTop + playlist.offsetHeight / 2 - vars.plth / 2;
                    if (aim > 0) {
                        aim = 10
                    }
                    if (aim < -plheight + playlist.offsetHeight - 10) {
                        aim = -plheight + playlist.offsetHeight - 10
                    }
                    plaim = aim;
                    plInterval = setInterval(SlidePLProcess, 20)
                }
            }
        }

        function SlidePLProcess() {
            var aim = plaim;
            if (vars.plplace == 'inside' || vars.plplace == 'bottom') {
                if (Math.abs((pl_mc.offsetLeft - aim) / 10) <= 1) {
                    clearInterval(plInterval)
                } else {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': (vars.plplace == 'bottom' ? 0 : 10),
                        'left': pl_mc.offsetLeft - (pl_mc.offsetLeft - aim) / 10
                    })
                }
            }
            if (vars.plplace == 'bottomrow') {
                if (Math.abs((pl_mc.offsetTop - aim) / 10) <= 1) {
                    clearInterval(plInterval)
                } else {
                    CSS(pl_mc, {
                        'position': 'absolute',
                        'top': pl_mc.offsetTop - (pl_mc.offsetTop - aim) / 10,
                        'left': 0
                    })
                }
            }
        }

        function ClearOldVars() {
            if (sub) {
                KillSub();
                sub = null
            }
        }

        function NewFile(s, autoplay) {
            Uppod.trace('NewFile s=' + s + ' autoplay=' + autoplay);
            iplay = false;
            istartevnt = false;
            vars.file = s;
            if (autoplay) {
                vars.auto = 'play'
            }
            Media();
            Comment();
            if (autoplay) {
                OnPlay()
            }
        }

        function checkStart() {
            if (media != undefined) {
                if (Uppod.browser.doSendCanPlay == false || !vars.file || vars.file == '' || vars.auto != 'play') {
                    onReady()
                }
                if (media.networkState >= 0 || vars.youtube) {
                    init = true;
                    CSS(media, {
                        'opacity': 1,
                        'filter': 'alpha(opacity=100)'
                    });
                    Opacity(media, 1);
                    playInterval = setInterval(Playing, 100);
                    media.addEventListener('pause', OnPause, false);
                    media.addEventListener('seeking', OnSeeking, false);
                    media.addEventListener('seeked', OnSeeked, false);
                    media.addEventListener('volumechange', OnVolume, false);

                    function isFullscreen() {
                        if (document.fullscreen) {
                            document.fullscreen
                        } else if (document.webkitIsFullScreen) {
                            document.webkitIsFullScreen
                        } else if (document.mozFullScreen) {
                            document.mozFullScreen
                        }
                    }

                    function FullscreenChange() {}
                    document.addEventListener("fullscreenchange", function() {
                        !document.fullscreen && ifull && !opera ? FullOff() : '';
                        FullscreenChange()
                    }, false);
                    document.addEventListener("mozfullscreenchange", function() {
                        !document.mozFullScreen && ifull ? FullOff() : '';
                        FullscreenChange()
                    }, false);
                    document.addEventListener("webkitfullscreenchange", function() {
                        !document.webkitIsFullScreen && ifull ? FullOff() : '';
                        FullscreenChange()
                    }, false);
                    document.addEventListener("MSFullscreenChange", function() {
                        (document.fullscreenElement != undefined) && ifull ? FullOff() : '';
                        FullscreenChange()
                    }, false);
                    muted || v == 0 ? Volume(0) : (v > 0 ? Volume(-v) : '');
                    if (!initevent) {
                        Event("init");
                        initevent = true
                    }
                } else {
                    setTimeout(checkStart, 100)
                }
            }
        }

        function Play() {
            iplay = false;
            Toggle()
        }

        function Pause() {
            iplay = true;
            Toggle()
        }

        function Toggle(e) {
            var stop = false;
            if (uppod.ads()) {
                uppod.ads().isActive() ? stop = true : ''
            }
            if (vars.redirect != '' && vars.redirect_play == 1) {
                window.open(vars.redirect, vars.redirecttarget);
                vars.redirect_play = 0
            }
            Protection();
            if (!stop) {
                Uppod.trace("Toggle e=" + e);
                if (vars.auto == 'none' && !vars.youtube) {
                    media.autoplay = true;
                    Source();
                    istart = true
                }
                vars.auto = 'play';
                if (!vars.file || vars.file == '') {
                    Event('player_error', 'nofile')
                }
                istart = true;
                if (!iplay) {
                    if (isYoutube()) {
                        media_yt.playVideo();
                        OnPlay()
                    } else {
                        uppod.mediaW().play();
                        OnPlay()
                    }
                } else {
                    if (isYoutube()) {
                        media_yt.pauseVideo();
                        OnPause()
                    } else {
                        uppod.mediaW().pause();
                        OnPause()
                    }
                }
            }
        }

        function Mybut(m) {
            if (mybuts[m.substr(11)]) {
                var act = mybuts[m.substr(11)].s.link;
                if (act.indexOf('http') == 0) {
                    Link(act, (mybuts[m.substr(11)].s.target ? mybuts[m.substr(11)].s.target : "_blank"))
                } else {
                    if (act == 'toggle') {
                        Toggle()
                    }
                    if (act.indexOf('js:') == 0) {
                        var js_vars = '';
                        if (act.indexOf(',') > 0) {
                            js_vars = act.substr(act.indexOf(',') + 1);
                            act = act.substr(0, act.indexOf(','))
                        }
                        eval(act.substr(3) + '(' + js_vars + ')')
                    }
                }
                Event('mybut', act)
            }
        }

        function Link(l, t) {
            if (l) {
                l = l.replace('(referer)', encodeURIComponent(vars.referer));
                l = l.replace('(link)', encodeURIComponent(vars.link));
                l = l.replace('(file)', encodeURIComponent(vars.file));
                l = l.replace('(redirect)', encodeURIComponent(vars.redirect));
                l = l.replace('(comment)', encodeURIComponent(vars.comment));
                l = l.replace('(time)', CurrentTime());
                if (l.substr(0, 3) == 'js:') {
                    var myjsa = l.substr(3).split(',');
                    eval(myjsa[0] + '(' + (myjsa.length > 1 ? myjsa[1] : '') + (myjsa.length > 2 ? ',' + myjsa[2] : '') + (myjsa.length > 3 ? ',' + myjsa[3] : '') + ');')
                }
                if (l.indexOf('http') == 0) {
                    window.open(l, t)
                }
            }
        }

        function Stop() {
            Uppod.trace('Stop');
            if (iplay) {
                Toggle();
                OnPause()
            }
            vars.radio == 0 ? Seek(0) : '';
            time_play_b ? time_play_b.c.innerHTML = formatTime(0) : '';
            time_back_b ? time_back_b.c.innerHTML = formatTime(Duration()) : '';
            vars.auto = 'none';
            if (isYoutube()) {
                media_yt.stopVideo()
            }
            Media();
            Event('stop');
            line_b && run_b ? RunPos(run_b, line_b, line_play_b, line_all_b, run_pos) : '';
            sub ? StopSub() : ''
        }

        function Download() {
            iplay ? Toggle() : '';
            var downloadUrl = vars.download != 1 && vars.download != '' ? vars.download : (uppod.mediaW().length > 0 ? uppod.mediaW().sources[0] : (vars.file.indexOf("|") > 0 ? vars.file.substr(0, vars.file.indexOf("|")) : vars.file));
            window.open(downloadUrl, "_blank");
            Event('download')
        }

        function Protection() {
            if (vars.urlprotect_go) {
                if (vars.urlprotect_stop == 1) {
                    media.src = ''
                }
                if (vars.urlprotect_warning == 1) {
                    Alert((vars.redirect != '' ? '<a href="' + vars.redirect + '" style="font-size:200%;color:#fff">' : '') + (vars.urlprotect_msg != '' ? vars.urlprotect_msg : vars.redirect) + (vars.redirect != '' ? '</a>' : ''), false)
                }
            }
        }

        function Quality() {
            if (hd_b) {
                if (vars.filehd) {
                    vars.start = media.currentTime;
                    var fileold = vars.file;
                    NewFile(vars.filehd, true);
                    vars.filehd = fileold;
                    if (hd1_b.c.style.display == 'none') {
                        Hide(hd_b.c);
                        Show(hd1_b.c);
                        Event('quality', '1')
                    } else {
                        Hide(hd1_b.c);
                        Show(hd_b.c);
                        Event('quality', '0')
                    }
                }
            }
        }

        function QualityLinks() {
            if (vars.youtube) {} else {
                if (vars.hd && vars.file) {
                    if (vars.hd.indexOf('::') > 0) {
                        vars.filehd = vars.file.replace(vars.hd.split('::')[0], vars.hd.split('::')[1]);
                        var change = false;
                        if (hd1_b) {
                            if (hd1_b.c.style.display == 'block') {
                                change = true
                            }
                        } else {
                            if (vars.hd1 == 1) {
                                change = true
                            }
                        }
                        if (change) {
                            var fileold = vars.file;
                            vars.file = vars.filehd;
                            vars.filehd = fileold
                        }
                    }
                    if (vars.file.indexOf(",") > -1 && vars.file.indexOf('[') == -1) {
                        vars.file = '[' + vars.file + ']'
                    }
                    if (vars.file.indexOf('[') > -1 && vars.file.indexOf(']') > -1) {
                        var hdf = vars.file.substr(vars.file.indexOf('[') + 1, vars.file.indexOf(']') - vars.file.indexOf('[') - 1).split(vars.hdseparator);
                        var files = '';
                        for (h = 0; h < hdf.length; h++) {
                            files += hdf[h] != '' ? vars.file.substr(0, vars.file.indexOf('[')) + hdf[h] + vars.file.substr(vars.file.indexOf(']') + 1) : '';
                            h < hdf.length - 1 ? files += vars.hdseparator : ''
                        }
                        vars.hdlinks = files.split(vars.hdseparator);
                        HdSelect();
                        if (hdselect) {
                            vars.file = hdselect.value
                        } else {
                            for (h = 0; h < vars.hdlinks.length; h++) {
                                if (vars.hdlinks[h] != '') {
                                    vars.file = vars.hdlinks[h];
                                    break
                                }
                            }
                        }
                    }
                }
            }
        }

        function HdSelect() {
            if (hd_b) {
                if (hdselect && vars.hdlinks) {
                    var start = 0;
                    var hdselects = [];
                    var hh = 0;
                    hdselect.innerHTML = '';
                    vars.hd1 == 1 ? vars.quality = vars.hda[vars.hda.length - 1] : '';
                    for (h = 0; h < vars.hda.length; h++) {
                        if (vars.hdlinks[h]) {
                            if (vars.hdlinks[h] != '') {
                                hdselects[h] = document.createElement('option');
                                hdselects[h].value = vars.hdlinks[h];
                                hdselects[h].innerHTML = vars.hda[h];
                                hdselect.appendChild(hdselects[h]);
                                if (vars.hda[h] == vars.quality) {
                                    start = hh;
                                    hdselects[h].setAttribute("selected", "true");
                                    QualitySelect(false)
                                }
                                hh++
                            }
                        }
                    }
                    SelectRework(hdselect.options[start].text, hd_b)
                }
            }
        }

        function QualitySelecter() {
            QualitySelect(true)
        }

        function QualitySelect(autostart) {
            if (hd_b && vars.hdlinks) {
                if (vars.youtube) {
                    autostart ? vars.start = media_yt.getCurrentTime() : '';
                    if (isYoutube()) {
                        var t = CurrentTime();
                        media_yt.stopVideo();
                        media_yt.setPlaybackQuality(hdselect.value);
                        media_yt.playVideo();
                        media_yt.seekTo(t)
                    }
                } else {
                    autostart ? vars.start = media.currentTime : '';
                    vars.file = hdselect.value;
                    NewFile(hdselect.value, (mobile ? false : autostart))
                }
                SelectRework(hdselect.options[hdselect.selectedIndex].text, hd_b);
                vars.quality = hdselect.options[hdselect.selectedIndex].text;
                Event('quality', vars.quality)
            }
        }

        function Full(re) {
            if (!ifull || re == 're') {
                if (nativecontrols) {
                    if (!media.controls) {
                        CSS(controls, {
                            'visibility': 'hidden'
                        });
                        media.controls = true;
                        Remove('layer');
                        media_mc.onclick = null;
                        if (poster_mc && vars.m == 'video') {
                            poster_mc.style.display = 'none'
                        }
                    }
                } else {
                    if (vars.realfullscreen == 1 && Uppod.Fullscreen.request(vars.stg)) {
                        irealfull = true
                    }
                    Uppod.Fullscreen.hack(vars.stg);
                    if ((vars.iframe != '' || vars.iframeobject) && !irealfull) {
                        CSS((vars.iframeobject ? vars.iframeobject : window.parent.document.getElementById(vars.iframe)), {
                            'width': window.parent.innerWidth,
                            'height': window.parent.innerHeight,
                            'position': 'fixed',
                            'left': 0,
                            'top': 0
                        })
                    }
                    if (re != 're') {
                        ifull = true;
                        vars.stagewidth = vars.sw;
                        vars.stageheight = vars.sh;
                        CSS(body.canvas, {
                            'visibility': 'hidden',
                            'height': (vars.iframe != '' ? window.parent.innerHeight : window.innerHeight)
                        });
                        setTimeout(function() {
                            CSS(body.canvas, {
                                'visibility': 'hidden',
                                'height': (vars.iframe != '' ? window.parent.innerHeight : window.innerHeight)
                            })
                        }, 500);
                        setTimeout(function() {
                            CSS(body.canvas, {
                                'visibility': 'hidden',
                                'height': (vars.iframe != '' ? window.parent.innerHeight : window.innerHeight)
                            })
                        }, 700);
                        CSS(scrn.canvas, {
                            'visibility': 'hidden'
                        });
                        CSS(media_mc, {
                            'backgroundColor': '#000',
                            'position': 'fixed',
                            'left': 0,
                            'top': 0
                        })
                    }
                    full_b.c.style.display = 'none';
                    full_back_b.c.style.display = 'block';
                    if (vars.stageposition == '' && vars.stg.style.position) {
                        vars.stageposition = vars.stg.style.position
                    }
                    vars.stageleft = vars.stg.style.left;
                    vars.stagetop = vars.stg.style.top;
                    vars.stageMarginTop = vars.stg.style['margin-top'];
                    CSS(vars.stg, {
                        'width': '100%',
                        'height': '100%',
                        'margin-top': '0px',
                        'position': 'fixed',
                        'left': '0px',
                        'top': '0px',
                        'z-index': '999999999',
                        'overflow': 'hidden'
                    });
                    layer != undefined ? layer.style.display = 'none' : '';
                    oo ? oo.style.display = 'none' : '';
                    clearInterval(hideInterval);
                    hideInterval = setInterval(CntrlHide, 3000);
                    if (re != 're') {
                        Event('fullscreen')
                    }
                    if (tip) {
                        if (tip.parentNode) {
                            tip.parentNode.removeChild(tip)
                        }
                    }
                }
                if (playlist) {
                    vars.plplace != 'inside' ? CSS(playlist, {
                        'top': -1000
                    }) : '';
                    if (plnext_b && vars.plplace != 'inside') {
                        Hide(plnext_b.c);
                        Hide(plprev_b.c)
                    }
                }
            } else {
                FullOff()
            }
            setTimeout(MenuPosition, 100);
            logo ? PositionLogo() : '';
            sub || sub_menu ? setTimeout(PositionSub, 500) : ''
        }

        function FullOff() {
            if (document.cancelFullScreen) {
                document.cancelFullScreen()
            } else if (document.exitFullscreen) {
                document.exitFullscreen()
            } else if (document.cancelFullscreen) {
                document.cancelFullscreen()
            } else if (document.mozCancelFullScreen) {
                document.mozCancelFullScreen()
            } else if (document.webkitCancelFullScreen) {
                document.webkitCancelFullScreen()
            } else if (document.msExitFullscreen) {
                document.msExitFullscreen()
            }
            ifull = false;
            if ((vars.iframe != '' || vars.iframeobject) && !irealfull) {
                CSS((vars.iframeobject ? vars.iframeobject : window.parent.document.getElementById(vars.iframe)), {
                    'width': vars.stagewidth,
                    'height': vars.stageheight,
                    'margin-top': vars.stageMarginTop,
                    'position': 'static',
                    'left': 0,
                    'top': 0
                })
            }
            CSS(media_mc, {
                'backgroundColor': 'transparent',
                'position': 'absolute',
                'left': 0,
                'top': 0
            });
            CSS(vars.stg, {
                'width': (vars.stagewidthproc != '' ? vars.stagewidthproc : vars.stagewidth),
                'height': vars.stageheight,
                'margin-top': vars.stageMarginTop,
                'position': (vars.stageposition == '' ? 'static' : vars.stageposition),
                'left': vars.stageleft,
                'top': vars.stagetop
            });
            CSS(body.canvas, {
                'visibility': 'visible',
                'height': vars.stageheight
            });
            CSS(scrn.canvas, {
                'visibility': 'visible'
            });
            if (!isYoutube() && layer != undefined) {
                layer.style.display = 'block'
            }
            if (oo) {
                oo.style.display = 'block'
            }
            full_b.c.style.display = 'block';
            full_back_b.c.style.display = 'none';
            if (playlist) {
                PlPlace()
            }
            logo ? PositionLogo() : '';
            sub || sub_menu ? setTimeout(PositionSub, 500) : '';
            if (tip) {
                if (tip.parentNode) {
                    tip.parentNode.removeChild(tip)
                }
            }
            Event('exitfullscreen')
        }
        var menu_big;

        function Menu() {
            if (menu_big) {
                ShowHide(menu_big)
            } else {
                menu_big = document.createElement('div');
                var mb_w = vars.scrn_w < 320 ? vars.scrn_w - 30 : 350;
                var mb_h = (vars.download != '' && vars.download != 0 ? 45 : 0) + (vars.menu_nocode == 1 ? 0 : 45) + (vars.link != '' ? 45 : 0) + 11;
                vars.menu_w = mb_w;
                vars.menu_h = mb_h;
                var menu_big_bg = new Shaper2({
                    w: mb_w,
                    h: mb_h,
                    o: 10,
                    bgc: '000000|000000',
                    bga1: 0.5,
                    bga2: 0.5
                });
                menu_big.appendChild(menu_big_bg.c);
                CSS(menu_big_bg.c, {
                    'position': 'relative',
                    'top': '0',
                    'left': '0'
                });
                if (vars.download != '' && vars.download != 0) {
                    MenuBigItem("menu_download", (vars.download == 1 ? vars.file : vars.download), mb_w, mb_h)
                }
                if (vars.link != '') {
                    MenuBigItem("menu_link", vars.link, mb_w, mb_h)
                }
                CSS(menu_big, {
                    'color': '#ffffff',
                    'font': '10px Verdana'
                });
                menu_big.style.zIndex = 100;
                MenuBigItem("menu_code", (vars.iframeurl != '' ? '<iframe title="sample" width="' + vars.w + '" height="' + vars.h + '" src="' + vars.iframeurl + '" frameborder="0" allowfullscreen></iframe>' : vars.embedcode != '' ? vars.embedcode : ''), mb_w, mb_h);
                var mbx = document.createElement('div');
                mbx.innerHTML = '&nbsp; x &nbsp;';
                menu_big.appendChild(mbx);
                CSS(mbx, {
                    'position': 'absolute',
                    'top': 3,
                    'left': mb_w - 25,
                    'cursor': 'pointer'
                });
                mbx.onclick = MenuClose;
                body.c.appendChild(menu_big);
                MenuPosition()
            }
        }
        var menuitems = 0;

        function MenuBigItem(what, content, mb_w, mb_h) {
            var mbkodt = document.createElement('div');
            mbkodt.innerHTML = vars.lang2[what];
            menu_big.appendChild(mbkodt);
            CSS(mbkodt, {
                'position': 'absolute',
                'top': (5 + menuitems * 45),
                'left': 15
            });
            var mbkodbg = new Shaper2({
                w: mb_w - 20,
                h: 23,
                o: 5,
                bgc: 'ffffff'
            });
            CSS(mbkodbg.c, {
                'position': 'absolute',
                'top': (22 + menuitems * 45),
                'left': 10
            });
            menu_big.appendChild(mbkodbg.c);
            var mbkode = document.createElement('input');
            menu_big.appendChild(mbkode);
            CSS(mbkode, {
                'position': 'absolute',
                'outline': 'none',
                'font': '10px Verdana',
                'top': (25 + menuitems * 45),
                'left': 13,
                'width': mb_w - 28,
                'height': 15,
                'color': '#000000',
                'border': 0,
                'background': 'none'
            });
            mbkode.value = content;
            mbkode.onclick = function() {
                this.select()
            };
            menuitems++
        }

        function MenuClose() {
            if (menu_big) {
                CSS(menu_big, {
                    'display': 'none'
                })
            }
        }

        function MenuPosition() {
            if (menu_big) {
                CSS(menu_big, {
                    'position': 'absolute',
                    'top': ((ifull ? vars.sh : vars.stageheight) - vars.menu_h) / 2,
                    'left': ((ifull ? vars.sw : vars.stagewidth) - vars.menu_w) / 2
                })
            }
        }

        function CntrlHide() {
            var hide_force = false;
            if (uppod.ads()) {
                uppod.ads().isActive() ? hide_force = true : ''
            }
            if ((iplay && CurrentTime() > 0) || hide_force) {
                var hide = !iover && vars.cntrlhide == 1;
                var fullHide = ifull && vars.fullcntrlhide == 1;
                if (hide || fullHide || hide_force) {
                    clearInterval(hideInterval);
                    CSS(controls, {
                        'visibility': 'hidden'
                    });
                    if (playlist && vars.plplace == 'inside') {
                        if (playlist.style.display != "none") {
                            Pl()
                        }
                    }
                    CSS(uppod.iframe.contentDocument.body, {
                        'cursor': 'none'
                    });
                    if (isYoutube()) {
                        mouseMoveCatcher.style.display = 'block'
                    }
                    ihide = true
                }
            }
        }

        function CntrlShow() {
            clearInterval(hideInterval);
            mouseMoveCatcher.style.display = 'none';
            if (!nativecontrols) {
                CSS(controls, {
                    'visibility': 'visible'
                });
                CSS(uppod.iframe.contentDocument.body, {
                    'cursor': 'auto'
                });
                ihide = false
            }
        }

        function ScreenSize() {
            vars.scrn_w = vars.sw - vars.padding * 2;
            vars.scrn_h = vars.ph - vars.padding * 2 - (vars.cntrlout == 1 ? vars.cntrloutheight : 0)
        }

        function Resize() {
            if (vars.sw != 0 && vars.sh != 0 && vars.stg.offsetHeight != 0 && vars.stg.offsetWidth != 0) {
                if (vars.sw != vars.stg.offsetWidth && vars.sh == vars.stg.offsetHeight) {
                    vars.stg.style.height = vars.stg.offsetWidth / (vars.sw / vars.sh) + 'px'
                }
                if (vars.ph != vars.sh) {
                    vars.ph = vars.stg.offsetHeight - (vars.sh - vars.ph)
                } else {
                    vars.ph = vars.stg.offsetHeight
                }
                vars.sh = vars.stg.offsetHeight;
                vars.sw = vars.stg.offsetWidth;
                if (!ifull) {
                    vars.stagewidth = vars.sw;
                    vars.stageheight = vars.sh
                }
                ScreenSize();
                var nh = (!ifull ? vars.ph : vars.sh) - vars.padding * 2 - (vars.cntrlout == 1 ? vars.cntrloutheight : 0);
                if (!ifull) {
                    CSS(body.canvas, {
                        'width': vars.sw,
                        'height': vars.sh
                    });
                    CSS(scrn.canvas, {
                        'width': vars.sw - vars.padding * 2,
                        'height': nh
                    });
                    CSS(layer, {
                        'height': nh
                    })
                }
                if (alrt) {
                    CSS(alrt_bg.canvas, {
                        'width': '' + vars.sw - (ifull ? 0 : vars.padding * 2) + 'px'
                    });
                    if (vars.padding > 0) {
                        CSS(alrt, {
                            'top': (ifull ? 0 : vars.padding),
                            'left': (ifull ? 0 : vars.padding)
                        })
                    }
                }
                if (poster_mc) {
                    CSS(poster_mc, {
                        'width': vars.sw,
                        'height': vars.ph - vars.padding * 2 - (vars.cntrlout == 1 ? vars.cntrloutheight : 0)
                    })
                }
                CSS(media_mc, {
                    'width': '' + vars.sw - (!ifull ? vars.padding * 2 : 0) + 'px',
                    'height': '' + nh + 'px'
                });
                CSS(media, {
                    'width': '' + vars.sw - (!ifull ? vars.padding * 2 : 0) + 'px',
                    'height': '' + nh + 'px'
                });
                if (isYoutube()) {
                    CSS(uppod.document.getElementById('yt_media_' + vars.uid), {
                        'width': '' + vars.sw - (!ifull ? vars.padding * 2 : 0) + 'px',
                        'height': '' + nh + 'px'
                    })
                }
                vars.o > 0 ? oPos() : '';
                uppod.controls().ControlBar.resize();
                if (uibg) {
                    CSS(uibg.canvas, {
                        'width': '' + (vars.sw - (ifull ? 0 : vars.padding * 2) - vars.cntrlbgmargin * 2 - vars.cntrlbgmarginleft - vars.cntrlbgmarginright) + 'px',
                        'height': '' + vars.cntrloutheight + 'px'
                    });
                    uibg_gl ? CSS(uibg_gl.canvas, {
                        'width': '' + (vars.sw - (ifull ? 0 : vars.padding * 2) - vars.cntrlbgmargin * 2) + 'px'
                    }) : ''
                }
                start_b ? CSS(start_b.c, {
                    'left': vars.sw / 2 - start_b.w / 2,
                    'top': (!ifull ? vars.ph : vars.sh) / 2 - start_b.h / 2
                }) : '';
                PlaceControls();
                if (playlist) {
                    PlPlace();
                    if (plnext_b) {
                        if ((vars.plplace == "inside" && playlist.style.display != "none") || !ifull) {
                            Show(plnext_b.c);
                            Show(plprev_b.c);
                            PlArrows();
                            if (plpage > 0) {
                                plpage = plpage - 1;
                                PlArrowNext()
                            }
                        }
                    }
                }
                if (sub) {
                    PositionSub()
                }
            }
        }

        function Back() {
            Seek(0)
        }

        function Mute() {
            if (isYoutube()) {
                if (!media_yt.isMuted()) {
                    media_yt.mute();
                    muted = true
                } else {
                    media_yt.unMute();
                    muted = false
                }
            } else {
                if (media.muted) {
                    media.muted = false;
                    muted = false
                } else {
                    media.muted = true;
                    muted = true
                }
            }
            MuteControl()
        }

        function MuteControl() {
            if (volume_b) {
                if (muted) {
                    volume_b.c.style.display = 'none'
                } else {
                    volume_b.c.style.display = 'block'
                }
            }
            if (volume_mute_b) {
                if (muted) {
                    volume_mute_b.c.style.display = 'block'
                } else {
                    volume_mute_b.c.style.display = 'none'
                }
            }
        }

        function OnPlay() {
            Uppod.trace('OnPlay');
            if (!iplay) {
                if (nativecontrols && !media.controls) {
                    CSS(controls, {
                        'visibility': 'hidden'
                    });
                    media.controls = true;
                    Remove('layer');
                    media_mc.onclick = null
                }
                if (poster_mc && vars.m == 'video') {
                    poster_mc.style.display = 'none'
                }
                if (play_b != undefined) {
                    play_b.c.style.display = 'none';
                    pause_b.c.style.display = 'block'
                }
                iplay = true;
                var hide = vars.cntrlhide == 1 && vars.cntrlout == 0;
                var fullHide = ifull && vars.fullcntrlhide == 1;
                if (hide || fullHide) {
                    clearInterval(hideInterval);
                    hideInterval = setInterval(CntrlHide, 3000)
                }
                if (vars.comment != undefined && vars.comment != '' && vars.showname == 1) {
                    vars.shownameliketip == 1 ? (vars.shownameonstop == 1 ? Hide(nametip) : '') : Hide(alrt)
                }
                if (vars.plplace == "inside" && playlist) {
                    Hide(playlist);
                    plnext_b ? Hide(plnext_b.c) : '';
                    plprev_b ? Hide(plprev_b.c) : ''
                }
                if (start_b) {
                    start_b.c.style.display = 'none'
                }
                if (logo) {
                    if (vars.logoplay == 1) {
                        Show(logo)
                    } else {
                        Hide(logo)
                    }
                }
                Event('play');
                if (!istartevnt) {
                    Event('start');
                    istart = true;
                    istartevnt = true
                }
                if (vars.sub && (vars.substart == 1 || (mobile && nativecontrols))) {
                    CreateSubs()
                }
            }
        }

        function OnSeeking() {
            Event('seeking')
        }

        function OnSeeked() {
            Event('seeked')
        }

        function OnPause() {
            Uppod.trace('OnPause');
            if (iplay) {
                if (play_b != undefined) {
                    play_b.c.style.display = 'block';
                    pause_b.c.style.display = 'none'
                }
                iplay = false;
                if (vars.comment != undefined && vars.comment != '' && vars.showname == 1) {
                    vars.shownameliketip == 1 ? Show(nametip) : Show(alrt)
                }
                start_b ? start_b.c.style.display = 'block' : '';
                if (logo) {
                    if (vars.logopause == 1) {
                        Show(logo)
                    } else {
                        Hide(logo)
                    }
                }
                Event('pause')
            }
        }

        function Event(s, msg) {
            vars.events[s] = msg;
            var evObj = document.createEvent('Events');
            evObj.initEvent(s, true, true);
            vars.stg.dispatchEvent(evObj)
        }

        function onCanPlay() {
            Uppod.trace('onCanPlay');
            if (vars.start > 0) {
                Uppod.trace('onCanPlay set currentTime to ' + vars.start);
                media.currentTime = vars.start;
                vars.start = 0
            }
            onReady()
        }

        function OnVolume() {
            if (volbarline_all_b) {
                vars.ivolbar_v ? VolumeDraw(media.volume * volbarline_s['h']) : VolumeDraw(media.volume * volbarline_s['w'])
            }
            if (volbar_b) {
                VolumeDraw(media.volume * vars.cntrlvolbar.w)
            }
        }

        function OnEnded() {
            Uppod.trace('OnEnded');
            if (media.ended || isYoutube()) {
                Event('end');
                if (vars.radio == 1) {
                    Reload()
                } else {
                    if (vars.repeat == 1) {
                        Play()
                    } else {
                        if (!isYoutube()) {
                            Back()
                        }
                        if (vars.plplay == 1 && pl) {
                            PlNext()
                        } else {
                            TheEnd()
                        }
                    }
                }
            }
        }

        function Reload() {
            Uppod.trace('Reload');
            Stop();
            Toggle()
        }

        function Sizing() {
            if (vars.stg.offsetWidth != vars.sw || vars.stg.offsetHeight < vars.sh - 5 || vars.stg.offsetHeight > vars.sh + 5) {
                Resize()
            }
        }

        function Playing() {
            if (media != undefined) {
                updateTimeDisplay();
                if (iline) {
                    var time = 0;
                    var duration = 0;
                    time = CurrentTime();
                    duration = Duration();
                    var loaded = 0;
                    if (isYoutube()) {
                        loaded = media_yt.getVideoLoadedFraction()
                    } else {
                        if (media.buffered) {
                            if (media.buffered.length > 0) {
                                loaded = (media.buffered.end(media.buffered.length - 1) / media.duration)
                            }
                        }
                    }
                    if (loaded > 0) {
                        CSS(line_load_b, {
                            'width': '' + (loaded * line_all_b.w) + 'px'
                        });
                        if (loaded == 1) {
                            if (!iloaded) {
                                iloaded = true;
                                Event("loaded")
                            }
                        } else {
                            iloaded = false
                        }
                    }
                    CSS(line_play_b, {
                        'width': '' + (time / duration) * line_all_b.w + 'px'
                    });
                    if (ibuff && !igo) {
                        if (time > 0) {
                            HideBuffer();
                            igo = true
                        }
                    }
                    if (iplay && time == lastTime) {
                        if (ltc > 5) {
                            !ibuff ? ShowBuffer() : '';
                            ibuff = true
                        } else {
                            ltc++
                        }
                    } else {
                        if (ibuff) {
                            ibuff = false;
                            HideBuffer()
                        }
                        ltc = 0
                    }
                    lastTime = time
                }
                if (iplay && vars.reloader == 1) {
                    if (CurrentTime() == vars.reloadertime) {
                        vars.reloadercounter++;
                        if (vars.reloadercounter > 200 && media.currentTime != undefined) {
                            vars.reloadercounter = 0;
                            Reload()
                        }
                    } else {
                        vars.reloadercounter = 0
                    }
                    vars.reloadertime = CurrentTime()
                }
                if (vars.eventtime != 0) {
                    if (iplay) {
                        if (is_array(vars.eventtime)) {
                            for (i = 0; i < vars.eventtime.length; i++) {
                                if (!vars.events['time' + vars.eventtime[i]]) {
                                    if (CurrentTime() > vars.eventtime[i]) {
                                        Event('time' + vars.eventtime[i], CurrentTime())
                                    }
                                }
                            }
                        } else {
                            if (!vars.events['time']) {
                                if (CurrentTime() > vars.eventtime) {
                                    Event('time', CurrentTime())
                                }
                            }
                        }
                    }
                }
                if (vars.eventplayed != 0) {
                    if (iplay) {
                        if (is_array(vars.eventplayed)) {
                            for (i = 0; i < vars.eventplayed.length; i++) {
                                if (!vars.events['played' + vars.eventplayed[i]]) {
                                    if ((CurrentTime() / Duration()) * 100 > vars.eventplayed[i]) {
                                        Event('played' + vars.eventplayed[i], (CurrentTime() / Duration()) * 100)
                                    }
                                }
                            }
                        } else {
                            if (!vars.events['played']) {
                                if ((CurrentTime() / Duration()) * 100 > vars.eventplayed) {
                                    Event('played', (CurrentTime() / Duration()) * 100)
                                }
                            }
                        }
                    }
                }
                line_b && run_b ? RunPos(run_b, line_b, line_play_b, line_all_b, run_pos) : '';
                if (sub != undefined && vars.substart == 1) {
                    if (sub[sub_lang]) {
                        if (sub[sub_lang][1]) {
                            var t = parseInt(CurrentTime() * 10);
                            if (sub[sub_lang][1][t] != null) {
                                var str = '';
                                if (vars.sublangsall == 1 && sub_lang_all) {
                                    for (var i = 0; i < sub.length; i++) {
                                        str += sub[i][0][sub[i][1][t]] ? sub[i][0][sub[i][1][t]] + (i < sub.length - 1 ? '<br>' : '') : ''
                                    }
                                } else {
                                    str = sub[sub_lang][0][sub[sub_lang][1][t]]
                                }
                                if (sub) {
                                    var stop = false;
                                    if (sub_last) {
                                        sub_last == str ? stop = true : ''
                                    }!sub_showed ? stop = false : '';
                                    !stop ? ShowSub(str) : ''
                                }
                            }
                            if (sub[sub_lang][1][t] == undefined && sub_showed) {
                                StopSub()
                            }
                        }
                    }
                }
            }
            if (ifull && !irealfull) {
                if (vars.iframe != '') {
                    window.parent.innerWidth != vars.stg.offsetWidth || window.parent.innerHeight != vars.stg.offsetHeight ? Full('re') : ''
                } else {
                    window.innerWidth != vars.stg.offsetWidth || window.innerHeight != vars.stg.offsetHeight ? Full('re') : ''
                }
            }
        }

        function CurrentTime() {
            t = 0;
            if (isYoutube()) {
                t = media_yt.getCurrentTime()
            } else {
                media ? t = media.currentTime : ''
            }
            return t
        }

        function Duration() {
            t = 0;
            if (isYoutube()) {
                t = media_yt.getDuration()
            } else {
                if (media) {
                    if (media.duration && media.duration != 'Infinity') {
                        t = media.duration
                    }
                }
            }
            return t
        }

        function NotFound() {
            if (vars.or.length > 1) {
                if (vars.ori == vars.or.length - 1) {
                    vars.ori = -1
                }
                vars.ori++;
                NewFile(vars.or[vars.ori])
            } else {
                Pause();
                if (vars.alerts == 1) {
                    var message = vars.lang2['file'] + ' ' + vars.lang2['notfound'];
                    Alert(message)
                }
                Event('player_error', 'file not found')
            }
        }

        function TheEnd() {
            if (!nativecontrols) {
                CntrlShow()
            }
            if (vars.redirect != '' && vars.redirect_end == 1) {
                window.open(vars.redirect, vars.redirecttarget);
                vars.redirect_end = 0
            }
            if (media) {
                if (!isYoutube()) {
                    media.currentTime = 0;
                    media.pause()
                } else {
                    media_yt.pauseVideo()
                }
            }
            if (poster_mc && vars.m == 'video') {
                Show(poster_mc)
            }
            if (vars.menuauto == 1 && menu_b) {
                isVisible(menu_big) ? '' : Menu()
            }
        }

        function isVisible(mc) {
            var out = false;
            if (mc) {
                mc.style.visible != 'none' ? out = true : ''
            }
            return out
        }

        function FontStyle(f) {
            var out = 'normal';
            if (f == 'i' || f == 'b><i') {
                out = 'italic'
            }
            return out
        }

        function FontWeight(f) {
            var out = 'normal';
            if (f == 'b' || f == 'b><i') {
                out = 'bold'
            }
            return out
        }

        function ShowBuffer() {
            if (buffer_b) {
                uppod.controls().Buffer.show()
            }
        }

        function HideBuffer() {
            if (buffer_b) {
                uppod.controls().Buffer.hide()
            }
            ibuff = false
        }

        function updateTimeDisplay() {
            time_play_b ? time_play_b.c.innerHTML = formatTime(CurrentTime()) : '';
            if (Duration() > 0) {
                time_back_b ? time_back_b.c.innerHTML = formatTime(Duration() - CurrentTime()) : '';
                time_all_b ? time_all_b.c.innerHTML = formatTime(Duration()) : ''
            }
        }

        function formatTime(seconds, tip) {
            var seconds = Math.round(seconds);
            var minutes = Math.floor(seconds / 60);
            var hours = Math.floor(minutes / 60);
            minutes = Math.floor(minutes % 60);
            seconds = Math.floor(seconds % 60);
            (hours > 0 || timelength > 5) && minutes < 10 ? minutes = "0" + minutes : "";
            seconds = (seconds >= 10) ? seconds : "0" + seconds;
            var out = (hours > 0 || timelength > 5 ? hours + ":" : "") + minutes + ":" + seconds;
            if (out.length != timelength && !tip) {
                timelength = out.length;
                PlaceControls()
            }
            return out
        }

        function CreateSubs() {
            if (vars.sub.indexOf('#') == 0) {
                vars.sub = un(vars.sub)
            }
            var subs = vars.sub.split(',');
            var clangs = vars.sublangs ? vars.sublangs.split(',') : Array();
            sub = Array();
            for (var i = 0; i < subs.length; i++) {
                if (subs[i] != '') {
                    if (clangs[i] == undefined) {
                        var filename = subs[i].substr(subs[i].lastIndexOf('/') + 1);
                        filename = filename.substr(0, filename.lastIndexOf('.'));
                        clangs[i] = filename
                    }
                    CreateSub(i, subs[i], clangs[i]);
                    clangs[i] && vars.sublang ? (clangs[i] == vars.sublang ? sub_lang = i : '') : ''
                } else {
                    if (sub_lang == i) {
                        sub_lang++
                    }
                }
            }
            vars.sub_tmp = vars.sub;
            delete vars.sub
        }

        function CreateSub(l, url, label) {
            if (url) {
                if (url.indexOf('#') == 0) {
                    url = un(url)
                }
                var url_shift = vars.sub_shift;
                if (url.indexOf('shift=') > 0) {
                    url_shift = url.substr(url.indexOf('shift=') + 6) * 1
                }
                if (mobile && (nativecontrols || iphone)) {
                    var track = document.createElement('track');
                    track.setAttribute('src', url);
                    track.setAttribute('label', label);
                    vars.substart == 1 && l == 0 ? track.setAttribute('default', 'true') : '';
                    media.appendChild(track)
                } else {
                    var subtxt = LoadFile(url);
                    if (subtxt) {
                        if (url.indexOf('.srt') > -1 || url.indexOf('.ass') > -1 || url.indexOf('.ssa') > -1 || url.indexOf('.vtt') > -1) {
                            sub[l] = Object();
                            sub[l][0] = Array();
                            sub[l][1] = Array();
                            var rows = Array();
                            rows = subtxt.split('\n');
                            var cnt = 1;
                            var t1 = 0;
                            var t2 = 0;
                            for (i = 0; i < rows.length; i++) {
                                if (url.indexOf('.srt') > -1 || url.indexOf('.vtt') > -1) {
                                    if (rows[i].indexOf('-->') > -1 && rows[i].indexOf(':') > -1) {
                                        t1 = TimerSub(rows[i].substr(0, rows[i].indexOf('-->'))) * 1 + url_shift;
                                        t2 = TimerSub(rows[i].substr(rows[i].indexOf('-->') + 4, 12)) * 1 + url_shift;
                                        sub[l][0][t1] = '';
                                        for (var j = t1; j < t2; j++) {
                                            sub[l][1][j] = t1
                                        }
                                        cnt++
                                    } else {
                                        if (rows[i] != '' && rows[i].length > 1 && rows[i] != cnt) {
                                            sub[l][0][t1] += (sub[l][0][t1] != '' ? '<br>' : '') + rows[i]
                                        }
                                    }
                                }
                                if (url.indexOf('.ass') > -1 || url.indexOf('.ssa') > -1) {
                                    if (rows[i].indexOf('Dialogue:') > -1) {
                                        t1 = TimerSub(rows[i].substr((url.indexOf('.ssa') > -1 ? rows[i].indexOf('=0') + 3 : 12), 12)) * 1 + url_shift;
                                        t2 = TimerSub(rows[i].substr((url.indexOf('.ssa') > -1 ? rows[i].indexOf('=0') + 14 : 23), 10)) * 1 + url_shift;
                                        var p = '';
                                        if (rows[i].indexOf('0,,') > 0) {
                                            p = rows[i].substr(rows[i].indexOf('0,,') + 3)
                                        } else {
                                            if (rows[i].indexOf('ffect,') > 0) {
                                                p = rows[i].substr(rows[i].indexOf('ffect,') + 6)
                                            }
                                        }
                                        if (sub[l][0][t1] != undefined) {
                                            sub[l][0][t1] += '\n' + p
                                        } else {
                                            sub[l][0][t1] = p
                                        }
                                        sub[l][0][t1] = sub[l][0][t1].replace(/{.*?}/, '');
                                        sub[l][0][t1] = sub[l][0][t1].replace(/\\\\N/, '\n');
                                        for (var j = t1; j < t2; j++) {
                                            sub[l][1][j] = t1
                                        }
                                    }
                                }
                            }
                        }
                    }
                    vars.substart = 1
                }
            }
        }

        function ShowSub(str) {
            if (sub_text) {
                KillSub()
            }
            sub_text = document.createElement('div');
            sub_bg = document.createElement('div');
            body.c.appendChild(sub_bg);
            body.c.appendChild(sub_text);
            Show(sub_text);
            Show(sub_bg);
            sub_last = str;
            sub_text.innerHTML = str;
            sub_showed = true;
            PositionSub()
        }

        function StopSub() {
            if (sub_text) {
                KillSub();
                sub_showed = false
            }
        }

        function KillSub() {
            if (sub_text) {
                sub_text.innerHTML = '';
                body.c.removeChild(sub_bg);
                body.c.removeChild(sub_text);
                sub_bg = null;
                sub_text = null
            }
        }

        function PositionSub() {
            var h = (!ifull ? vars.ph : vars.sh) - (vars.cntrlout == 1 && !ifull ? vars.padding / 2 : vars.cntrloutheight);
            if (sub_text) {
                var width = vars.sw - 60;
                CSS(sub_text, {
                    "position": "absolute",
                    "color": (vars.subcolor.length == 6 ? '#' : '') + vars.subcolor,
                    'fontFamily': vars.subfont,
                    'fontSize': (vars.subsize * (ifull ? 1.5 : 1)) + '%',
                    'text-align': 'center',
                    'line-height': '120%',
                    'text-shadow': '1px 1px 1px rgba(1,1,1,0.4)'
                });
                CSS(sub_bg, {
                    "position": "absolute",
                    "backgroundColor": (vars.subbgcolor.length == 6 ? '#' : '') + vars.subbgcolor,
                    'opacity': vars.subbgalpha,
                    'borderRadius': vars.subbgo / 2
                });
                CSS(sub_text, {
                    'max-width': width
                });
                var top = h - vars.submargin * (ifull ? vars.sh / vars.stageheight : 1) - 10 - sub_text.offsetHeight - 5;
                var left = (vars.sw - (sub_text.offsetWidth + 20)) / 2;
                CSS(sub_text, {
                    "position": "absolute",
                    "top": top,
                    "left": left + 10
                });
                CSS(sub_bg, {
                    "width": sub_text.offsetWidth + 20,
                    "height": sub_text.offsetHeight + 10,
                    "position": "absolute",
                    "top": top - 5,
                    "left": left
                })
            }
            if (sub_menu) {
                var top2 = (h - sub_menu.offsetHeight);
                var left2 = sub_b.c.offsetLeft - sub_menu.offsetWidth + sub_b.w + 5;
                left2 < 0 ? left2 = 0 : '';
                CSS(sub_menu, {
                    "position": "absolute",
                    "top": top2,
                    "left": left2
                });
                CSS(sub_menu_bg, {
                    "position": "absolute",
                    "top": top2,
                    "left": left2
                })
            }
        }

        function TimerSub(srt) {
            var tmp = srt.split(':');
            var out = 0;
            tmp.length == 2 ? tmp.unshift("00") : '';
            tmp[0] != '00' ? out += tmp[0] * 3600 : '';
            tmp[1] != '00' ? out += tmp[1] * 60 : '';
            out += tmp[2].substr(0, 2) * 1;
            out = out * 10 + tmp[2].substr(3, 1) * 1;
            return out
        }

        function SetSub() {
                if (vars.submenu == 1) {
                    if (sub_menu) {
                        ToggleView(sub_menu_bg);
                        ToggleView(sub_menu);
                        PositionSub()
                    } else {
                        sub_menu = document.createElement('div');
                        sub_menu_bg = document.createElement('div');
                        body.c.appendChild(sub_menu_bg);
                        body.c.appendChild(sub_menu);
                        sub_menu.innerHTML = '<div id="uppodplayer_sub_switcher" style="width:47px;height:18px;border:1px solid rgba(255,255,255,0.5);border-radius:20px;margin-bottom:10px;padding:1px;cursor:pointer"><div id="uppodplayer_sub_switcher_bg" style="width:45px;height:16px;background:#fff;border-radius:18px;padding:1px;"><div id="uppodplayer_sub_switcher_dot" style="width:16px;height:16px;background:#000;border-radius:17px;color:#000;text-align:center;' + (vars.substart == 0 ? 'float:left' : 'float:right') + '"></div></div></div>';
                        uppod.document.getElementById("uppodplayer_sub_switcher").onclick = ToggleSub;
                        var sub_menu_x = document.createElement('div');
                        sub_menu.appendChild(sub_menu_x);
                        CSS(sub_menu_x, {
                            "fontSize": "80%",
                            "position": "absolute",
                            "top": 5,
                            "right": 7,
                            "color": "#fff",
                            "opacity": 0.5,
                            "margin-top": "-2px",
                            "cursor": "pointer"
                        });
                        sub_menu_x.innerHTML = '�';
                        sub_menu_x.onclick = SetSub;
                        CSS(sub_menu, {
                            "position": "absolute",
                            "top": 0,
                            "left": 0,
                            "color": "#fff",
                            "font": "90% sans-serif",
                            "borderRadius": 10,
                            "padding": 10,
                            "width": 119
                        });
                        sub_menu2 = document.createElement('div');
                        ToggleSubStyle();
                        sub_menu.appendChild(sub_menu2);
                        var b1 = document.createElement('div');
                        SetSubButStyle(b1, false);
                        b1.innerHTML = '+';
                        CSS(b1, {
                            "margin": "0 5px 5px 0"
                        });
                        var b2 = document.createElement('div');
                        SetSubButStyle(b2, false);
                        b2.innerHTML = '-';
                        CSS(b2, {
                            "margin": "0 20px 5px 0"
                        });
                        b1.onclick = function() {
                            vars.subsize += 10;
                            PositionSub()
                        };
                        b2.onclick = function() {
                            vars.subsize -= 10;
                            PositionSub()
                        };
                        var b3 = document.createElement('div');
                        SetSubButStyle(b3, false);
                        b3.innerHTML = ''
                        ';CSS(b3,{"margin":"0 5px 5px 0"});var b4=document.createElement('
                        div ');SetSubButStyle(b4,false);b4.innerHTML=' (';CSS(b4,{"margin":"0 0 5px 0"});b3.onclick=function(){vars.submargin+=10;PositionSub()};b4.onclick=function(){vars.submargin-=10;PositionSub()};var s1=document.createElement('
                                br ');sub_menu2.appendChild(s1);var c=Array();var ccolors=Array("FFFFFF","000000","FAED54","FFB0BE","72CCF8","62DE50","E8BBFF","FEBA54");var c_def=2;for(var i=0;i<7;i++){c[i]=document.createElement('
                                div ');SetSubButStyle(c[i],true);CSS(c[i],{"border":"1px solid #"+(i==1?'
                                666 ':ccolors[i]),"opacity":0.7,"color":"#"+(ccolors[i])});c[i].onclick=function(){vars.subcolor=this.style.color;isub_menu_color.style.opacity=0.7;this.style.opacity=1;isub_menu_color=this;PositionSub()};vars.subcolor==ccolors[i]?c_def=i:'
                                '}c[c_def].style.opacity=1;isub_menu_color=c[c_def];var s2=document.createElement('
                                br ');sub_menu2.appendChild(s2);var cbg=Array();var cbgcolors=Array("FFFFFF","000000","FEF370","D90000","073DA0","409829","644082","a56305");var cbg_def=1;for(i=0;i<7;i++){cbg[i]=document.createElement('
                                div ');SetSubButStyle(cbg[i],true);CSS(cbg[i],{"background-color":"#"+(cbgcolors[i]),"borderColor":"#"+(i==1?'
                                666 ':cbgcolors[i]),"opacity":0.7,"color":"#fff"});i==0||i==2?CSS(cbg[i],{"color":"#000"}):'
                                ';cbg[i].onclick=function(){vars.subbgcolor=this.style.backgroundColor;isub_menu_bgcolor.style.opacity=0.7;this.style.opacity=1;isub_menu_bgcolor=this;PositionSub()};vars.subbgcolor==cbgcolors[i]?cbg_def=i:'
                                '}cbg[cbg_def].style.opacity=1;isub_menu_bgcolor=cbg[cbg_def];var s3=document.createElement('
                                br ');sub_menu2.appendChild(s3);var ca0=document.createElement('
                                div ');sub_menu2.appendChild(ca0);CSS(ca0,{"float":"left","margin":"0 2px 0 2px","cursor":"default"});ca0.innerHTML=' - ';var ca=document.createElement('
                                div ');CSS(ca,{"width":91,"height":4,"border":"1px solid #fff","borderRadius":4,"float":"left","margin":"5px 3px","cursor":"pointer"});sub_menu2.appendChild(ca);var ca2=document.createElement('
                                div ');ca.appendChild(ca2);CSS(ca2,{"width":(vars.subbgalpha*100)+"%","height":4,"borderRadius":4,"background":"#fff"});var ca1=document.createElement('
                                div ');sub_menu2.appendChild(ca1);CSS(ca1,{"float":"left","margin":"0 0 0 2px","fontSize":"80%","cursor":"default"});ca1.innerHTML=' + ';ca.onclick=function(e){var n=e.clientX-findLeft(this);n<5?n=0:'
                                ';CSS(this.firstElementChild,{'
                                width ':n});vars.subbgalpha=n/this.offsetWidth;PositionSub()};if(vars.sublangs){var clang=document.createElement('
                                select ');var clangs=vars.sublangs.split(', ');var subs=vars.sub_tmp.split(', ');for(var l=0;l<clangs.length;l++){var cl=document.createElement('
                                option ');cl.innerHTML=clangs[l];clang.appendChild(cl);if(clangs[l]==vars.sublang){sub_lang=l;cl.setAttribute("selected","true")}if(subs[l]=='
                                '){cl.setAttribute("disabled","true")}}if(vars.sublangsall==1&&clangs.length>1){var cl=document.createElement('
                                option ');cl.innerHTML=vars.lang2['
                                all '];clang.appendChild(cl)}sub_menu2.appendChild(clang);clang.onchange=function(){if(vars.sublangsall==1&&this.selectedIndex==this.length-1){sub_lang=0;sub_lang_all=true}else{sub_lang_all=false;sub_lang=this.selectedIndex}};CSS(clang,{'
                                width ':120,'
                                cursor ':'
                                pointer '})}CSS(sub_menu_bg,{"position":"absolute","top":0,"left":0,"background":"#000","width":sub_menu.offsetWidth,"height":sub_menu.offsetHeight,"opacity":"0.7","borderRadius":10});PositionSub();sub_menu.style.zIndex=7;sub_menu_bg.style.zIndex=7}}else{ToggleSub()}}function ToggleSub(){if(vars.submenu==1){var el=sub_menu.firstElementChild.firstElementChild.firstElementChild;CSS(el,{"float":(vars.substart==1?"left":"right")})}if(sub){vars.substart==0?vars.substart=1:vars.substart=0}else{if(vars.sub&&vars.substart==0){CreateSubs();vars.substart=1}else{vars.substart==0?vars.substart=1:vars.substart=0}}if(vars.substart==0){StopSub()}if(vars.submenu==1){ToggleSubStyle()}else{if(sub_b){vars.substart?CSS(sub_b.c,{'
                                opacity ':sub_b.s.alpha}):CSS(sub_b.c,{'
                                opacity ':sub_b.s.alpha0})}}}function ToggleSubStyle(){vars.substart==0?CSS(sub_menu2,{"visibility":"hidden"}):CSS(sub_menu2,{"visibility":"visible"});CSS(document.getElementById("uppodplayer_sub_switcher_dot"),{"background":(vars.substart==0?"#fff":"#000")});CSS(document.getElementById("uppodplayer_sub_switcher_bg"),{"background":(vars.substart==0?0:"#fff")})}function SetSubButStyle(b,small){sub_menu2.appendChild(b);CSS(b,{"float":"left","textAlign":"center","width":(small?11:20),"height":(small?11:"auto"),"border":"1px solid rgba(255,255,255,0.5)","borderRadius":(small?11:20),"margin":(small?"3px 2px 7px 2px":0),"padding":(small?"0":"0 0 0 0"),"cursor":"pointer"})}function Controls(){if(vars.youtube&&browser.restrictMediaPlay){}var controlsObj=uppod.controls();controlsObj.add(new Uppod.ControlBar(uppod));controls=controlsObj.ControlBar.dom;sep_b=[];sep=0;CntrlBg();cntrl=vars.controls.split(', ');cntrlength=0;cntrls=[];cntrli=[];for(var i=0;i<cntrl.length;i++){if(cntrl[i]=='
                                play '||cntrl[i]=='
                                playstop '){play_b=new Element('
                                play ',20,20);controlsObj.addElement('
                                Play ',play_b);controls.appendChild(play_b.c);CSS(play_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-play_b.h)/2+play_b.s.margintop-play_b.s.marginbottom});play_b.c.onclick=Toggle;if(vars.tip==1&&play_b.s.notip==0){play_b.c.onmouseover=function(){var txt=play_b.s.play_tip?play_b.s.play_tip:vars.lang2['
                                play '];ToolTip(play_b.c,txt)};play_b.c.onmouseout=function(){ToolTipHide(play_b.c)}}pause_b=new Element((cntrl[i]=='
                                playstop '?'
                                stop ':'
                                pause '),20,20,'
                                ','
                                play ');controlsObj.addElement('
                                Pause ',pause_b);controls.appendChild(pause_b.c);CSS(pause_b.c,{'
                                cursor ':'
                                pointer ','
                                display ':'
                                none ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-pause_b.h)/2+pause_b.s.margintop-pause_b.s.marginbottom});cntrl[i]=='
                                playstop '?pause_b.c.onclick=Stop:pause_b.c.onclick=Toggle;cntrls[i]=pause_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+play_b.s.marginleft+play_b.s.marginright;cntrli[i]=play_b;if(vars.tip==1&&pause_b.s.notip==0){pause_b.c.onmouseover=function(){ToolTip(pause_b.c,pause_b.s.pause_tip?pause_b.s.pause_tip:vars.lang2['
                                pause '])};pause_b.c.onmouseout=function(){ToolTipHide(pause_b.c)}}}if(cntrl[i]=='
                                back '){back_b=new Element('
                                back ',30,20);controlsObj.addElement('
                                Back ',back_b);controls.appendChild(back_b.c);CSS(back_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-back_b.h)/2+back_b.s.margintop-back_b.s.marginbottom});back_b.c.onclick=Back;cntrls[i]=back_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+back_b.s.marginleft+back_b.s.marginright;cntrli[i]=back_b;if(vars.tip==1&&back_b.s.notip==0){back_b.c.onmouseover=function(){ToolTip(back_b.c,back_b.s.tip?back_b.s.tip:vars.lang2['
                                back '])};back_b.c.onmouseout=function(){ToolTipHide(back_b.c)}}}if(cntrl[i]=='
                                stop '){stop_b=new Element('
                                stop ',20,20);controlsObj.addElement('
                                Stop ',stop_b);controls.appendChild(stop_b.c);CSS(stop_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-stop_b.h)/2+stop_b.s.margintop-stop_b.s.marginbottom});stop_b.c.onclick=Stop;cntrls[i]=stop_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+stop_b.s.marginleft+stop_b.s.marginright;cntrli[i]=stop_b;if(vars.tip==1&&stop_b.s.notip==0){stop_b.c.onmouseover=function(){ToolTip(stop_b.c,stop_b.s.tip?stop_b.s.tip:vars.lang2['
                                stop '])};stop_b.c.onmouseout=function(){ToolTipHide(stop_b.c)}}}if(cntrl[i].indexOf('
                                my ')==0){var m=cntrl[i].substr(2);mybuts[m]=new Element('
                                my '+m,20,20);controls.appendChild(mybuts[m].c);CSS(mybuts[m].c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-mybuts[m].h)/2+mybuts[m].s.margintop-mybuts[m].s.marginbottom});mybuts[m].c.id='
                                uppod_mybut '+m;mybuts[m].c.onclick=function(){Mybut(this.id)};cntrls[i]=mybuts[m].w+vars.cntrlmargin;cntrlength+=cntrls[i]+mybuts[m].s.marginleft+mybuts[m].s.marginright;cntrli[i]=mybuts[m];if(vars.tip==1&&mybuts[m].s.notip==0&&mybuts[m].s.tip){mybuts[m].c.onmouseover=function(){ToolTip(mybuts[m].c,mybuts[m].s.tip)};mybuts[m].c.onmouseout=function(){ToolTipHide(mybuts[m].c)}}}if(cntrl[i]=='
                                download '){download_b=new Element('
                                download ',20,20);controlsObj.addElement('
                                Download ',download_b);controls.appendChild(download_b.c);CSS(download_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-download_b.h)/2+download_b.s.margintop-download_b.s.marginbottom});download_b.c.onclick=Download;cntrls[i]=download_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+download_b.s.marginleft+download_b.s.marginright;cntrli[i]=download_b;if(vars.tip==1&&download_b.s.notip==0){download_b.c.onmouseover=function(){ToolTip(download_b.c,download_b.s.tip?download_b.s.tip:vars.lang2['
                                download '])};download_b.c.onmouseout=function(){ToolTipHide(download_b.c)}}}if(cntrl[i]=='
                                next '){next_b=new Element('
                                next ',20,20);controlsObj.addElement('
                                Next ',next_b);controls.appendChild(next_b.c);CSS(next_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-next_b.h)/2+next_b.s.margintop-next_b.s.marginbottom});next_b.c.onclick=Next;cntrls[i]=next_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+next_b.s.marginleft+next_b.s.marginright;cntrli[i]=next_b;if(vars.tip==1&&next_b.s.notip==0){next_b.c.onmouseover=function(){ToolTip(next_b.c,next_b.s.tip?next_b.s.tip:vars.lang2['
                                next '])};next_b.c.onmouseout=function(){ToolTipHide(next_b.c)}}}if(cntrl[i]=='
                                prev '){prev_b=new Element('
                                prev ',20,20);controlsObj.addElement('
                                Prev ',prev_b);controls.appendChild(prev_b.c);CSS(prev_b.c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-prev_b.h)/2+prev_b.s.margintop-prev_b.s.marginbottom});if(vars.random==0){CSS(prev_b.c,{'
                                opacity ':0.3,'
                                filter ':'
                                alpha(opacity = 30)
                                ','
                                cursor ':'
                                default '})}prev_b.c.onclick=Prev;cntrls[i]=prev_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+prev_b.s.marginleft+prev_b.s.marginright;cntrli[i]=prev_b;if(vars.tip==1&&prev_b.s.notip==0){prev_b.c.onmouseover=function(){ToolTip(prev_b.c,prev_b.s.tip?prev_b.s.tip:vars.lang2['
                                prev '])};prev_b.c.onmouseout=function(){ToolTipHide(prev_b.c)}}}if(cntrl[i]=='
                                time_play '){time_play_b=new Element('
                                time_play ',30,20);controlsObj.addElement('
                                TimePlay ',time_play_b);controls.appendChild(time_play_b.c);CSS(time_play_b.c,{'
                                cursor ':'
                                default ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-time_play_b.h)/2+3+time_play_b.s.margintop*1-time_play_b.s.marginbottom*1,'
                                white - space ':'
                                nowrap '});cntrls[i]=time_play_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+time_play_b.s.marginleft+time_play_b.s.marginright;cntrli[i]=time_play_b;timeitems++}if(cntrl[i]=='
                                time_back '){time_back_b=new Element('
                                time_back ',30,20);controlsObj.addElement('
                                TimeBack ',time_back_b);controls.appendChild(time_back_b.c);CSS(time_back_b.c,{'
                                cursor ':'
                                default ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-time_back_b.h)/2+3+time_back_b.s.margintop*1-time_back_b.s.marginbottom*1,'
                                white - space ':'
                                nowrap '});cntrls[i]=time_back_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+time_back_b.s.marginleft+time_back_b.s.marginright;cntrli[i]=time_back_b;timeitems++}if(cntrl[i]=='
                                time_all '){time_all_b=new Element('
                                time_all ',30,20);controlsObj.addElement('
                                TimeAll ',time_all_b);controls.appendChild(time_all_b.c);CSS(time_all_b.c,{'
                                cursor ':'
                                default ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-time_all_b.h)/2+3+time_all_b.s.margintop*1-time_all_b.s.marginbottom*1,'
                                white - space ':'
                                nowrap '});cntrls[i]=time_all_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+time_all_b.s.marginleft+time_all_b.s.marginright;cntrli[i]=time_all_b;timeitems++}if(cntrl[i]==' | '){sep_b[sep]=new Element('
                                separator ',5,20);controlsObj.addElement('
                                Separator ',sep_b[sep]);controls.appendChild(sep_b[sep].c);CSS(sep_b[sep].c,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                top ':(vars.cntrloutheight-sep_b[sep].h)/2+sep_b[sep].s.margintop-sep_b[sep].s.marginbottom});cntrls[i]=sep_b[sep].w+vars.cntrlmargin;cntrlength+=cntrls[i]+sep_b[sep].s.marginleft+sep_b[sep].s.marginright;cntrli[i]=sep_b[sep];sep++}if(cntrl[i]=='
                                run_line '){var run_s=Cntrl_Style('
                                run ');run_b=document.createElement('
                                div ');controlsObj.addDom('
                                RunLine ',run_b);controls.appendChild(run_b);var lh=vars.cntrlline['
                                h '];if(vars.cntrl_line){if(vars.cntrl_line['
                                h ']){lh=vars.cntrl_line['
                                h ']}}if(run_s['
                                position ']==0){if(lh%2!=run_s['
                                h ']%2){run_s['
                                h ']++}if(run_s['
                                o ']==1){run_s['
                                w ']=run_s['
                                h ']}}CSS(run_b,{'
                                cursor ':'
                                pointer ','
                                position ':'
                                absolute ','
                                left ':0,'
                                top ':run_s['
                                margintop ']*1-run_s['
                                marginbottom ']*1,'
                                width ':run_s['
                                w ']+'
                                px ','
                                height ':run_s['
                                h ']+'
                                px ','
                                borderRadius ':(run_s['
                                w ']*run_s['
                                o '])+'
                                px ','
                                opacity(':run_s['
                                    alpha '],'
                                    filter ':'
                                    alpha(opacity = '+(run_s['
                                        alpha ']*100)+')
                                    '});CheckGradiendDiv(run_b,run_s['
                                    color ']);if(run_s['
                                    icon ']){if(String(run_s['
                                    icon ']).indexOf("http")==0){IconImg(run_s['
                                    icon '],run_b,0,run_s['
                                    pic_w '],run_s['
                                    pic_h '],run_s['
                                    halficonisover '])}}if(run_s['
                                    bg ']==1){CSS(run_b,{'
                                    border ':'
                                    2 px solid # '+ReColor(run_s['
                                    bgcolor '])})}run_pos=run_s['
                                    position '];if(vars.tip==1&&line_s['
                                    notip ']==0){run_b.onmouseover=function(){media.duration?ToolTip(run_b,'
                                    line '):'
                                    '};run_b.onmouseout=function(){ToolTipHide(run_b)}}}if(cntrl[i]=='
                                    run_volume '&&!mobile){var run_s=Cntrl_Style('
                                    run_volume ');runvolume_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    RunVolume ',runvolume_b);controls.appendChild(runvolume_b);CSS(runvolume_b,{'
                                    pointer - events ':'
                                    none ','
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':run_s['
                                    w ']+'
                                    px ','
                                    height ':run_s['
                                    h ']+'
                                    px ','
                                    borderRadius ':(run_s['
                                    w ']*run_s['
                                    o '])+'
                                    px ','
                                    opacity ':run_s['
                                    alpha '],'
                                    filter ':'
                                    alpha(opacity = '+(run_s['
                                        alpha ']*100)+')
                                    '});CheckGradiendDiv(runvolume_b,run_s['
                                    color ']);runvolume_pos=run_s['
                                    position '];if(vars.ivolbar_v){Hide(runvolume_b)}if(run_s['
                                    bg ']==1){CSS(runvolume_b,{'
                                    border ':'
                                    2 px solid # '+ReColor(run_s['
                                    bgcolor '])})}}if(cntrl[i]=='
                                    sound '&&!mobile&&vars.controls.indexOf("volbarline")>-1){cntrl[i]='
                                    volume ';vars.cntrl_volume=vars.cntrl_sound}if((cntrl[i]=='
                                    volume '||cntrl[i]=='
                                    volbarline_v ')&&!mobile){volume_b=new Element('
                                    volume ',20,20);controlsObj.addElement('
                                    Volume ',volume_b);controls.appendChild(volume_b.c);CSS(volume_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-volume_b.h)/2+volume_b.s.margintop-volume_b.s.marginbottom});volume_b.c.onclick=Mute;volume_mute_b=new Element('
                                    volume_mute ',20,20,'
                                    ','
                                    volume ');controlsObj.addElement('
                                    VolumeMute ',volume_mute_b);controls.appendChild(volume_mute_b.c);CSS(volume_mute_b.c,{'
                                    display ':'
                                    none ','
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-volume_mute_b.h)/2+volume_mute_b.s.margintop-volume_mute_b.s.marginbottom});cntrls[i]=volume_mute_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+volume_mute_b.s.marginleft+volume_mute_b.s.marginright;volume_mute_b.c.onclick=Mute;cntrli[i]=volume_b;vars.tip==1&&volume_b.s.notip==0?volume_b.c.title=(volume_b.s.tip?volume_b.s.tip:vars.lang2['
                                    volume ']):'
                                    ';if(cntrl[i]=='
                                    volbarline_v '){vars.ivolbar_v=true;volbarline_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    VolumeBarlineV ',volbarline_b);controls.appendChild(volbarline_b);vars.cntrl_volbarline_v.bg=0;CSS(volbarline_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':0});volbarline_s=Cntrl_Style('
                                    volbarline_v ');volbarline_all_b=document.createElement('
                                    div ');volbarline_b.appendChild(volbarline_all_b);CSS(volbarline_all_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':volbarline_s['
                                    w '],'
                                    height ':volbarline_s['
                                    h '],'
                                    borderRadius ':((volbarline_s['
                                    h ']/2)*volbarline_s['
                                    o '])+'
                                    px ','
                                    opacity ':volbarline_s['
                                    all_a '],'
                                    filter ':'
                                    alpha(opacity = '+(volbarline_s['
                                        all_a ']*100)+')
                                    '});CheckGradiendDiv(volbarline_all_b,volbarline_s['
                                    color_all ']);volbarline_s['
                                    active ']=false;CSS(volbarline_b,{'
                                    display ':'
                                    none ','
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-volbarline_s['
                                    h '])-10});volbarline_play_b=document.createElement('
                                    div ');volbarline_b.appendChild(volbarline_play_b);CSS(volbarline_play_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':volbarline_s['
                                    w '],'
                                    height ':volbarline_s['
                                    h '],'
                                    borderRadius ':((volbarline_s['
                                    h ']/2)*volbarline_s['
                                    o '])+'
                                    px ','
                                    opacity ':volbarline_s['
                                    play_a '],'
                                    filter ':'
                                    alpha(opacity = '+(volbarline_s['
                                        play_a ']*100)+')
                                    '});CheckGradiendDiv(volbarline_play_b,volbarline_s['
                                    color_play ']);CSS(volbarline_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(-volbarline_s['
                                    h '])});CSS(volbarline_play_b,{'
                                    height ':volbarline_s['
                                    h ']*vars.volume,'
                                    top ':volbarline_s['
                                    h ']-volbarline_s['
                                    h ']*vars.volume});volbarline_b.onmousedown=function VolbarlineDown(e){volbarline_s['
                                    active ']=true;if(!e)var e=window.event;VolumeMove_v(e)};volbarline_b.onmousemove=function VolbarlineMove(e){if(!e)var e=window.event;VolumeMove_v(e)};volbarline_b.onmouseup=function VolbarlineUp(e){volbarline_s['
                                    active ']=false};volbarline_b.onmouseover=function VolbarlineOver(e){volbarline_s['
                                    over ']=true};volbarline_b.onmouseout=function VolbarlineOut(e){volbarline_s['
                                    over ']=false};volume_mute_b.c.onmouseout=volume_b.c.onmouseover=function VolumeOver(e){CSS(volbarline_b,{"display":"block"});if(runvolume_b){CSS(runvolume_b,{"display":"block"});runvolume_b.style.zIndex=8;RunPos(runvolume_b,volbarline_b,volbarline_play_b,volbarline_all_b,runvolume_pos)}volbarline_s['
                                    over ']=true};volume_mute_b.c.onmouseover=volume_b.c.onmouseover=function VolumeOver(e){CSS(volbarline_b,{"display":"block"});if(runvolume_b){CSS(runvolume_b,{"display":"block"});runvolume_b.style.zIndex=8;RunPos(runvolume_b,volbarline_b,volbarline_play_b,volbarline_all_b,runvolume_pos)}volbarline_s['
                                    over ']=true};volume_mute_b.c.onmouseout=volume_b.c.onmouseout=VolbarHide;volbarline_b.style.zIndex=7;if(runvolume_b){Hide(runvolume_b)}}}if(cntrl[i]=='
                                    tune '&&!mobile){cntrl[i]='
                                    volbarline ';vars.cntrl_volbarline=vars.cntrl_tune}if(cntrl[i]=='
                                    volbarline '&&!mobile){volbarline_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    VolumeBarline ',volbarline_b);controls.appendChild(volbarline_b);volbarline_s=Cntrl_Style('
                                    volbarline ');var volbarline_bg_b=document.createElement('
                                    div ');volbarline_b.appendChild(volbarline_bg_b);CSS(volbarline_bg_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':-10,'
                                    width ':volbarline_s['
                                    w '],'
                                    height ':(volbarline_s['
                                    h ']+20),'
                                    opacity ':'
                                    0 ','
                                    filter ':'
                                    alpha(opacity = 0)
                                    '});volbarline_all_b=document.createElement('
                                    div ');volbarline_b.appendChild(volbarline_all_b);CSS(volbarline_all_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':volbarline_s['
                                    w '],'
                                    height ':volbarline_s['
                                    h '],'
                                    borderRadius ':((volbarline_s['
                                    h ']/2)*volbarline_s['
                                    o '])+'
                                    px ','
                                    opacity ':volbarline_s['
                                    all_a '],'
                                    filter ':'
                                    alpha(opacity = '+(volbarline_s['
                                        all_a ']*100)+')
                                    '});CheckGradiendDiv(volbarline_all_b,volbarline_s['
                                    color_all ']);volbarline_s['
                                    active ']=false;volbarline_play_b=document.createElement('
                                    div ');volbarline_b.appendChild(volbarline_play_b);CSS(volbarline_play_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    height ':volbarline_s['
                                    h '],'
                                    borderRadius ':((volbarline_s['
                                    h ']/2)*volbarline_s['
                                    o '])+'
                                    px ','
                                    opacity ':volbarline_s['
                                    play_a '],'
                                    filter ':'
                                    alpha(opacity = '+(volbarline_s['
                                        play_a ']*100)+')
                                    '});CheckGradiendDiv(volbarline_play_b,volbarline_s['
                                    color_play ']);CSS(volbarline_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-volbarline_s['
                                    h '])/2+volbarline_s['
                                    margintop ']-volbarline_s['
                                    marginbottom ']});cntrls[i]=volbarline_s['
                                    w ']+vars.cntrlmargin+5;cntrlength+=cntrls[i]+volbarline_s['
                                    marginleft ']+volbarline_s['
                                    marginright '];CSS(volbarline_play_b,{'
                                    width ':volbarline_s['
                                    w ']*(v?v:vars.volume)});volbarline_b.onmousedown=function(e){volbarline_s['
                                    active ']=true;if(!e)var e=window.event;VolumeMove(e)};volbarline_b.onmousemove=function(e){if(!e)var e=window.event;VolumeMove(e)};volbarline_b.onmouseout=function(e){if(!e)var e=window.event;VolumeOut(e)};volbarline_b.onmouseup=function(e){};cntrli[i]=volbarline_b}if(cntrl[i]=='
                                    volbar '&&!mobile){volbar_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    VolumeBar ',volbar_b);controls.appendChild(volbar_b);volbars=[];vars.cntrl_volbar.all_a?vars.cntrlvolbar.all_a=vars.cntrl_volbar.all_a:'
                                    ';vars.cntrl_volbar.play_a?vars.cntrlvolbar.play_a=vars.cntrl_volbar.play_a:'
                                    ';if(vars.cntrl_volbar.icon){if(vars.cntrl_volbar.icon==1){vars.cntrlvolbar.n=10;vars.cntrlvolbar.bar=1}if(vars.cntrl_volbar.icon==2){vars.cntrlvolbar.n=5;vars.cntrlvolbar.bar=0}if(vars.cntrl_volbar.icon==3){vars.cntrlvolbar.n=10;vars.cntrlvolbar.bar=0}}vars.cntrl_volbar.n?vars.cntrlvolbar.n=vars.cntrl_volbar.n:'
                                    ';vars.cntrl_volbar.bar?vars.cntrlvolbar.bar=vars.cntrl_volbar.bar:'
                                    ';vars.cntrl_volbar.scale?vars.cntrlvolbar.scale=vars.cntrl_volbar.scale:'
                                    ';vars.cntrl_volbar.margintop?vars.cntrlvolbar.margintop=vars.cntrl_volbar.margintop:vars.cntrlvolbar.margintop=0;vars.cntrl_volbar.marginbottom?vars.cntrlvolbar.marginbottom=vars.cntrl_volbar.marginbottom:vars.cntrlvolbar.marginbottom=0;vars.cntrlvolbar.w=vars.cntrlvolbar.n*5*vars.cntrlvolbar.scale;vars.cntrlvolbar.h=10*vars.cntrlvolbar.scale;for(vb=0;vb<vars.cntrlvolbar.n;vb++){var vbh=(vars.cntrlvolbar.bar==1?(10/vars.cntrlvolbar.n)*(vb+1):10*vars.cntrlvolbar.scale);volbars[vb]=new Element('
                                    volbar ',3*vars.cntrlvolbar.scale,vbh);volbar_b.appendChild(volbars[vb].c);CSS(volbars[vb].c,{'
                                    position ':'
                                    absolute ','
                                    top ':10*vars.cntrlvolbar.scale-vbh*vars.cntrlvolbar.scale,'
                                    left ':vb*5*vars.cntrlvolbar.scale+10*(vars.cntrlvolbar.scale-1),'
                                    opacity ':vars.cntrlvolbar.all_a});if(vars.cntrl_volbar.bar==1){volbars[vb].c.onmouseover=function(e){CSS(this,{'
                                    top ':vbh-1})};volbars[vb].c.onmouseout=function(e){CSS(this,{'
                                    top ':vbh})}}};volbar_b.onmousedown=function(e){volbar_b.active=true;if(!e)var e=window.event;VolbarMove(e)};volbar_b.onmousemove=function(e){if(!e)var e=window.event;VolbarMove(e)};volbar_b.onmouseup=function(e){volbar_b.active=false};CSS(volbar_b,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-vars.cntrlvolbar.h)/2+(vars.cntrlvolbar.h-10)*vars.cntrlvolbar.scale+vars.cntrlvolbar.margintop-vars.cntrlvolbar.marginbottom,'
                                    width ':vars.cntrlvolbar.w,'
                                    height ':vars.cntrlvolbar.h});cntrls[i]=(vars.cntrlvolbar.n+1)*5+vars.cntrlmargin;cntrlength+=cntrls[i]+(vars.cntrlvolbar.marginleft?vars.cntrlvolbar.marginleft:0)+(vars.cntrlvolbar.marginright?vars.cntrlvolbar.marginright:0);cntrli[i]=volbar_b;v!=0?VolumeDraw(-v):'
                                    '}if(cntrl[i]=='
                                    full '){controlsObj.add(new Uppod.EnterFullscreenControl(uppod));controlsObj.add(new Uppod.ExitFullscreenControl(uppod));full_b=uppod.controls().EnterFullscreen.options.element;full_back_b=uppod.controls().ExitFullscreen.options.element;cntrls[i]=full_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+full_b.s.marginleft+full_b.s.marginright;cntrli[i]=full_b}if(cntrl[i]=='
                                    sub '){sub_b=new Element('
                                    sub ',20,20);controlsObj.addElement('
                                    Sub ',sub_b);controls.appendChild(sub_b.c);CSS(sub_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-sub_b.h)/2+sub_b.s.margintop-sub_b.s.marginbottom});sub_b.c.onclick=SetSub;cntrls[i]=sub_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+sub_b.s.marginleft+sub_b.s.marginright;cntrli[i]=sub_b;if(vars.tip==1&&sub_b.s.notip==0){sub_b.c.onmouseover=function(){ToolTip(sub_b.c,sub_b.s.tip?sub_b.s.tip:vars.lang2['
                                    sub '])};sub_b.c.onmouseout=function(){ToolTipHide(sub_b.c)}}vars.substart==0?CSS(sub_b.c,{'
                                    opacity ':sub_b.s.alpha0}):'
                                    '}if(cntrl[i]=='
                                    hd '){if(vars.youtube){vars.hdlinks='
                                    hd720, large, medium, small, auto ';vars.hd='
                                    720 p, 480 p, 320 p, 240 p, auto ';vars.hdsw==60?vars.hdsw=55:'
                                    ';vars.filehd='
                                    '}if(vars.hd||vars.filehd!='
                                    '){var isbutton=false;if(vars.hd){vars.hd.indexOf('::')>-1?isbutton=true:'
                                    '}else{vars.filehd!='
                                    '?isbutton=true:'
                                    '}if(isbutton){hd_b=new Element('
                                    hd ',20,20);controlsObj.addElement('
                                    Hd ',hd_b);controls.appendChild(hd_b.c);CSS(hd_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    display ':(vars.hd1==1?'
                                    none ':'
                                    block '),'
                                    position ':'
                                    absolute ','
                                    top ':Math.floor((vars.cntrloutheight-hd_b.h)/2+hd_b.s.margintop-hd_b.s.marginbottom)});if(hd_b.s.icon2){if(hd_b.s.icon==hd_b.s.icon2){CSS(hd_b.c,{'
                                    opacity ':hd_b.s.alpha0})}}cntrls[i]=hd_b.w+vars.cntrlmargin;hd_b.c.onclick=Quality;cntrlength+=cntrls[i]+hd_b.s.marginleft+hd_b.s.marginright;cntrli[i]=hd_b;if(vars.tip==1&&hd_b.s.notip==0){hd_b.c.onmouseover=function(){ToolTip(hd_b.c,hd_b.s.tip?hd_b.s.tip:vars.lang2['
                                    hd '])};hd_b.c.onmouseout=function(){ToolTipHide(hd_b.c)}}hd1_b=new Element('
                                    hd1 ',20,20,'
                                    ','
                                    hd ');controlsObj.addElement('
                                    Hd1 ',hd1_b);controls.appendChild(hd1_b.c);CSS(hd1_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    display ':(vars.hd1==1?'
                                    block ':'
                                    none '),'
                                    position ':'
                                    absolute ','
                                    top ':Math.floor((vars.cntrloutheight-hd1_b.h)/2+hd1_b.s.margintop-hd1_b.s.marginbottom)});hd1_b.c.onclick=Quality;if(vars.tip==1&&hd1_b.s.notip==0){hd1_b.c.onmouseover=function(){ToolTip(hd1_b.c,hd_b.s.tip_off?hd_b.s.tip_off:vars.lang2['
                                    hd '])};hd1_b.c.onmouseout=function(){ToolTipHide(hd1_b.c)}}}else{if(vars.hd.indexOf(', ')>-1){vars.hda=vars.hd.split(', ');if(vars.hdsw==60){vars.hdsw=0;for(var h=0;h<vars.hda.length;h++){vars.hdsw<measureText(vars.hda[h],12).width?vars.hdsw=measureText(vars.hda[h],12).width:'
                                    '}vars.hdsw+=22}hd_b=new Element('
                                    hdselect ',vars.hdsw,20,'
                                    ','
                                    hd ');controlsObj.addElement('
                                    HdSelect ',hd_b);controls.appendChild(hd_b.c);CSS(hd_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':Math.floor((vars.cntrloutheight-hd_b.h)/2+hd_b.s.margintop-hd_b.s.marginbottom)});cntrls[i]=hd_b.w+vars.cntrlmargin;hd_b.c.onclick=Quality;cntrlength+=cntrls[i]+hd_b.s.marginleft+hd_b.s.marginright;cntrli[i]=hd_b;vars.tip==1&&hd_b.s.notip==0?hd_b.c.title=(hd_b.s.tip?hd_b.s.tip:vars.lang2['
                                    hd ']):'
                                    ';hdselect=document.createElement('
                                    select ');hd_b.c.appendChild(hdselect);HdSelect();CSS(hdselect,{'
                                    position ':'
                                    absolute ','
                                    margin ':'
                                    1 px 0 px 0 px - 5 px ','
                                    opacity ':0,'
                                    cursor ':'
                                    pointer '});hdselect.onchange=QualitySelecter}}}}if(cntrl[i]=='
                                    playlist '){if(vars.pl!='
                                    '){playlist_b=new Element('
                                    playlist ',20,20);controlsObj.addElement('
                                    Playlist ',playlist_b);controls.appendChild(playlist_b.c);CSS(playlist_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-playlist_b.h)/2+playlist_b.s.margintop-playlist_b.s.marginbottom});playlist_b.c.onclick=Pl;cntrls[i]=playlist_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+playlist_b.s.marginleft+playlist_b.s.marginright;cntrli[i]=playlist_b;if(vars.tip==1&&playlist_b.s.notip==0){playlist_b.c.onmouseover=function(){ToolTip(playlist_b.c,playlist_b.s.tip?playlist_b.s.tip:vars.lang2['
                                    list '])};playlist_b.c.onmouseout=function(){ToolTipHide(playlist_b.c)}}}}if(cntrl[i]=='
                                    menu '){menu_b=new Element('
                                    menu ',20,20);controlsObj.addElement('
                                    Menu ',menu_b);controls.appendChild(menu_b.c);CSS(menu_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-menu_b.h)/2+menu_b.s.margintop-menu_b.s.marginbottom});menu_b.c.onclick=Menu;cntrls[i]=menu_b.w+vars.cntrlmargin;cntrlength+=cntrls[i]+menu_b.s.marginleft+menu_b.s.marginright;cntrli[i]=menu_b;if(vars.tip==1&&menu_b.s.notip==0){menu_b.c.onmouseover=function(){ToolTip(menu_b.c,menu_b.s.tip?menu_b.s.tip:vars.lang2['
                                    menu '])};menu_b.c.onmouseout=function(){ToolTipHide(menu_b.c)}}}if(cntrl[i]=='
                                    buffer '){if(line_b){buffer_b=new Element('
                                    buffer ',30,14);controlsObj.addElement('
                                    Buffer ',buffer_b);controls.appendChild(buffer_b.c);CSS(buffer_b.c,{'
                                    cursor ':'
                                    default ','
                                    position ':'
                                    absolute ','
                                    white - space ':'
                                    nowrap '});cntrli[i]=buffer_b;cntrls[i]=0;buffer_b.c.innerHTML=vars.lang2['
                                    loading ']}}if(cntrl[i]=='
                                    start '){if(v.m=='
                                    video '&&nativecontrols){}else{start_b=new Element('
                                    start ',20,20);controlsObj.addElement('
                                    Start ',start_b);body.c.appendChild(start_b.c);CSS(start_b.c,{'
                                    cursor ':'
                                    pointer ','
                                    position ':'
                                    absolute ','
                                    top ':((vars.ph)/2-start_b.h/2),'
                                    left ':((vars.sw)/2-start_b.w/2),'
                                    zIndex ':7});start_b.c.onclick=Toggle;start_b.c.style.zIndex=7}}if(cntrl[i]=='
                                    space '){space_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    Space ',space_b);controls.appendChild(space_b);CSS(space_b,{'
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-20)/2});cntrli[i]=space_b}if(cntrl[i]=='
                                    line '){iline=true;line_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    Line ',line_b);controls.appendChild(line_b);line_s=Cntrl_Style('
                                    line ');line_all_b=document.createElement('
                                    div ');line_b.appendChild(line_all_b);CSS(line_all_b,{'
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':'
                                    100 % ','
                                    height ':line_s['
                                    h '],'
                                    borderRadius ':((line_s['
                                    h ']/2)*line_s['
                                    o '])+'
                                    px ','
                                    opacity ':line_s['
                                    all_a '],'
                                    filter ':'
                                    alpha(opacity = '+(line_s['
                                        all_a ']*100)+')
                                    '});CheckGradiendDiv(line_all_b,line_s['
                                    color_all ']);line_load_b=document.createElement('
                                    div ');line_b.appendChild(line_load_b);CSS(line_load_b,{'
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':'
                                    100 % ','
                                    height ':line_s['
                                    h '],'
                                    backgroundColor ':'
                                    # '+ReColor(line_s['
                                    color_load ']),'
                                    borderRadius ':((line_s['
                                    h ']/2)*line_s['
                                    o '])+'
                                    px ','
                                    opacity ':line_s['
                                    load_a '],'
                                    filter ':'
                                    alpha(opacity = '+(line_s['
                                        load_a ']*100)+')
                                    '});CheckGradiendDiv(line_load_b,line_s['
                                    color_load ']);line_play_b=document.createElement('
                                    div ');line_b.appendChild(line_play_b);CSS(line_play_b,{'
                                    position ':'
                                    absolute ','
                                    left ':0,'
                                    top ':0,'
                                    width ':'
                                    100 % ','
                                    height ':line_s['
                                    h '],'
                                    backgroundColor ':'
                                    # '+ReColor(line_s['
                                    color_play ']),'
                                    borderRadius ':((line_s['
                                    h ']/2)*line_s['
                                    o '])+'
                                    px ','
                                    opacity ':line_s['
                                    play_a '],'
                                    filter ':'
                                    alpha(opacity = '+(line_s['
                                        play_a ']*100)+')
                                    '});CheckGradiendDiv(line_play_b,line_s['
                                    color_play ']);CSS(line_b,{'
                                    position ':'
                                    absolute ','
                                    top ':(vars.cntrloutheight-line_s['
                                    h '])/2+line_s['
                                    margintop ']*1-line_s['
                                    marginbottom ']*1,'
                                    cursor ':'
                                    pointer '});CSS(line_play_b,{'
                                    width ':'
                                    0 '});CSS(line_load_b,{'
                                    width ':'
                                    0 '});line_s['
                                    active ']=false;line_but_b=document.createElement('
                                    div ');controlsObj.addDom('
                                    LineBtn ',line_but_b);controls.appendChild(line_but_b);CSS(line_but_b,{'
                                    position ':'
                                    absolute ','
                                    height ':(line_s['
                                    h ']<10?20:line_s['
                                    h ']*2),'
                                    cursor ':'
                                    pointer '});line_but_b.onmousedown=function(e){Uppod.trace('
                                    line_but_b.onmousedown ');if(!istart){Toggle()}line_s['
                                    active ']=true;if(!e)var e=window.event};line_but_b.onmouseup=function(e){Uppod.trace('
                                    line_but_b.onmouseup ');if(istart){SeekMove(e);line_s['
                                    active ']=false}};if(vars.tip==1&&line_s['
                                    notip ']==0){line_but_b.onmouseover=function(){ToolTip(line_but_b,'
                                    line ')};line_but_b.onmouseout=function(){ToolTipHide(line_but_b)}}cntrli[i]=line_b}}time_all_b&&vars.time>0?time_all_b.c.innerHTML=formatTime(vars.time):'
                                    ';PlaceControls()}function CntrlBg(){if(uibg){Remove('
                                    uibg ')}if(vars.cntrlout!=1&&vars.cntrlbg==1){vars.cntrlbgcolor.indexOf(' | ')==-1?vars.cntrlbgcolor=vars.cntrlbgcolor+' | '+vars.cntrlbgcolor:'
                                    ';uibg=new Shaper2({w:(vars.scrn_w-vars.cntrlbgmargin*2-vars.cntrlbgmarginleft-vars.cntrlbgmarginright),h:vars.cntrloutheight,onotop:(vars.cntrloutheight==vars.h?0:1),bgc:vars.cntrlbgcolor,bga1:vars.cntrlbgalpha1,bga2:vars.cntrlbgalpha2,o:(vars.padding>0?vars.o/2:vars.cntrlbgo)})}if(vars.cntrlout==1&&vars.padding==0){vars.cntrlbgcolor.indexOf(' | ')==-1?vars.cntrlbgcolor=vars.cntrlbgcolor+' | '+vars.cntrlbgcolor:'
                                    ';uibg=new Shaper2({w:vars.scrn_w,h:vars.cntrloutheight,o:vars.o/2-vars.padding,onotop:(vars.cntrloutheight==vars.h?0:1),bgc:vars.bodycolor,bga1:1,bga2:1,o:(vars.padding>0?vars.o/2:vars.cntrlbgo)})}if(uibg){uibg.c.setAttribute('
                                    id ','
                                    uibg ');controls.appendChild(uibg.c);CSS(uibg.canvas,{"position":"absolute","top":0,"left":vars.cntrlbgmarginleft+'
                                    px '});if(vars.glass==1){uibg_gl=new Shaper2({w:vars.scrn_w,h:vars.cntrloutheight/2,o:vars.o/2-vars.padding,bgc:(vars.glasscolor.indexOf(' | ')==-1?vars.glasscolor+' | '+vars.glasscolor:vars.glasscolor),bga1:vars.glassalpha1,bga2:vars.glassalpha2});uibg.c.appendChild(uibg_gl.c);CSS(uibg_gl.canvas,{"position":"absolute","top":0,"left":0,"height":vars.cntrloutheight/2,"width":vars.scrn_w})}}}function PlaceControls(){var line_w=vars.sw-cntrlength-vars.cntrlendmargin*2-vars.cntrlmargin*2-(!ifull?vars.padding*2:0)-vars.cntrlmarginleft-vars.cntrlmarginright-(timelength-4)*4*timeitems;var cntrl_x=vars.cntrlendmargin+vars.cntrlmarginleft;var marginleft;var marginright;for(i=0;i<cntrl.length;i++){if(cntrli[i]){marginleft=0;marginright=0;if(cntrli[i].s){marginleft=parseInt(cntrli[i].s.marginleft);marginright=parseInt(cntrli[i].s.marginright)}if(cntrl[i]=='
                                    volbarline '){marginleft=(vars.cntrl_volbarline.marginleft?vars.cntrl_volbarline.marginleft:0);marginright=(vars.cntrl_volbarline.marginright?vars.cntrl_volbarline.marginright:0)}cntrl_x+=marginleft;if(cntrli[i]!=line_b&&cntrli[i]!=space_b){CSS((cntrli[i].c!=undefined?cntrli[i].c:cntrli[i]),{'
                                    left ':cntrl_x});if(cntrl[i]=='
                                    play '||cntrl[i]=='
                                    playstop '){CSS(pause_b.c,{'
                                    left ':cntrl_x})}if(cntrl[i]=='
                                    full '){CSS(full_back_b.c,{'
                                    left ':cntrl_x})}if(cntrl[i]=='
                                    hd '){hd1_b?CSS(hd1_b.c,{'
                                    left ':cntrl_x}):'
                                    '}if(cntrl[i]=='
                                    volume '||cntrl[i]=='
                                    volbarline_v '){CSS(volume_mute_b.c,{'
                                    left ':cntrl_x,'
                                    opacity ':(volume_mute_b.s.icon==2?0.5:1)})}if(cntrl[i]=='
                                    volbarline_v '){CSS(volbarline_b,{'
                                    left ':cntrl_x+volume_b.w/2-volbarline_s['
                                    w ']/2})}if(cntrl[i].indexOf('
                                    time ')>-1){cntrl_x+=(timelength-4)*4+(vars.cntrlmargin-5)}cntrl_x+=Math.floor(cntrls[i]+marginright)}else{if(cntrli[i]==line_b){if(vars.cntrl_line.full==1){CSS(line_b,{'
                                    left ':(vars.cntrl_line.marginleft?vars.cntrl_line.marginleft:0),'
                                    top ':(vars.cntrloutheight)/2+line_all_b.h-(vars.cntrl_line.marginbottom?vars.cntrl_line.marginbottom:0)+(vars.cntrl_line.margintop?vars.cntrl_line.margintop:0)});line_all_b.w=vars.sw-(vars.cntrl_line.marginleft?vars.cntrl_line.marginleft:0)-(vars.cntrl_line.marginright?vars.cntrl_line.marginright:0);line_play_b.w=line_all_b.w;line_load_b.w=line_all_b.w;CSS(line_all_b,{'
                                    width ':'
                                    '+line_all_b.w+'
                                    px '})}else{CSS(line_b,{'
                                    left ':cntrl_x+3+(vars.cntrl_line.marginleft?vars.cntrl_line.marginleft:0)});line_all_b.w=line_w;line_play_b.w=line_w;line_load_b.w=line_w;CSS(line_all_b,{'
                                    width ':'
                                    '+line_w+'
                                    px '});cntrls[i]=line_w;cntrl_x+=Math.floor(cntrls[i]+vars.cntrlmargin+6+(vars.cntrl_line.marginright?vars.cntrl_line.marginright:0)+(vars.cntrl_line.marginleft?vars.cntrl_line.marginleft:0))}CSS(line_but_b,{'
                                    width ':line_all_b.w+'
                                    px ','
                                    position ':'
                                    absolute ','
                                    top ':(parseInt(line_b.style.top)+line_s.h/2-parseInt(line_but_b.style.height)/2),'
                                    left ':line_b.style.left,'
                                    cursor ':'
                                    pointer '})}if(cntrli[i]==space_b){CSS(space_b,{'
                                    left ':cntrl_x+3,'
                                    width ':'
                                    '+line_w+'
                                    px '});cntrls[i]=line_w;cntrl_x+=Math.floor(cntrls[i]+vars.cntrlmargin+6)}}if(buffer_b){CSS(buffer_b.c,{'
                                    left ':line_b.offsetLeft});CSS(buffer_b.c,{'
                                    top ':line_b.offsetTop-10})}}}line_b&&run_b?RunPos(run_b,line_b,line_play_b,line_all_b,run_pos):'
                                    ';if(volbarline_b&&runvolume_b){RunPos(runvolume_b,volbarline_b,volbarline_play_b,volbarline_all_b,runvolume_pos)}}function RunPos(run,line,line_play,line_all,pos){if(run==runvolume_b&&vars.ivolbar_v){var rl=(-line_play.offsetHeight)-(pos>0?run.offsetHeight:run.offsetHeight/2);rl<line.offsetTop?rl=line.offsetTop:'
                                    ';rl>0+run.offsetHeight?rl=run.offsetHeight:'
                                    ';CSS(run,{'
                                    top ':rl+'
                                    px ','
                                    left ':'
                                    '+(line.offsetLeft+line_all.offsetWidth/2-run.offsetWidth/2-(pos=='
                                    1 '?run.offsetWidth/2+line_all.offsetWidth/2:0)+(pos=='
                                    2 '?run.offsetWidth/2+line_all.offsetWidth/2:0))+'
                                    px '})}else{var rl=(line_play.offsetWidth+line.offsetLeft)-(pos>0?run.offsetWidth:run.offsetWidth/2);rl<line.offsetLeft?rl=line.offsetLeft:'
                                    ';rl>line.offsetLeft+line_all.offsetWidth-run.offsetWidth?rl=line.offsetLeft+line_all.offsetWidth-run.offsetWidth:'
                                    ';CSS(run,{'
                                    left ':rl+'
                                    px ','
                                    top ':'
                                    '+Math.floor(line_all.offsetTop+line.offsetTop+line_all.offsetHeight/2-run.offsetHeight/2-(pos=='
                                    1 '?run.offsetHeight/2+line_all.offsetHeight/2:0)+(pos=='
                                    2 '?run.offsetHeight/2+line_all.offsetHeight/2:0)+(vars.cntrl_run['
                                    margintop ']?vars.cntrl_run['
                                    margintop ']*1:"")-(vars.cntrl_run['
                                    marginbottom ']?vars.cntrl_run['
                                    marginbottom ']*1:""))+'
                                    px '})}}function Cntrl_Style(st){var s=[];for(var key in vars.cntrlstyle){s[key]=vars.cntrlstyle[key]}for(var key in vars['
                                    cntrl '+st]){s[key]=vars['
                                    cntrl '+st][key]}for(var key in vars['
                                    cntrl_ '+st]){s[key]=vars['
                                    cntrl_ '+st][key]}return s}function findLeft(obj){var curleft=0;if(obj.offsetParent){curleft=obj.offsetLeft;while(obj=obj.offsetParent){curleft+=obj.offsetLeft}}return curleft}function findTop(obj){var curtop=0;if(obj.offsetParent){curtop=obj.offsetTop;while(obj=obj.offsetParent){curtop+=obj.offsetTop}}return curtop}function VolbarHide(){volbarline_s['
                                    over ']=false;setTimeout(VolbarHideProcess,1000)}function VolbarHideProcess(){if(!volbarline_s['
                                    over ']){CSS(volbarline_b,{"display":"none"});if(runvolume_b){CSS(runvolume_b,{"display":"none"})}}else{setTimeout(VolbarHideProcess,1000)}}function VolumeMove(e){if(volbarline_s['
                                    active ']){if(!e)var e=window.event;var clickX=e.pageX-findLeft(volbarline_b);Volume(clickX)}}function VolumeOut(e){if(volbarline_s['
                                    active ']){if(!e)var e=window.event;var clickX=e.pageX-findLeft(volbarline_b);if(clickX>=volbarline_s['
                                    w ']){volbarline_s['
                                    active ']=false}}}function VolumeMove_v(e){if(volbarline_s['
                                    active ']&&vars.ivolbar_v){if(!e)var e=window.event;var clickY=e.pageY-findTop(volbarline_b);Volume(volbarline_s['
                                    h ']-clickY)}}function VolbarMove(e){if(volbar_b.active){if(!e)var e=window.event;var clickX=e.pageX-findLeft(volbar_b);Volume(clickX)}}function Volume(n){var v=VolumeDraw(n);VolumeN(v)}function VolumeDraw(n){if(volbarline_play_b){if(vars.ivolbar_v){n>0?v=Math.max(0,Math.min(1,(n)/volbarline_s['
                                    h '])):v=-n;CSS(volbarline_play_b,{'
                                    height ':'
                                    '+volbarline_s['
                                    h ']*v+'
                                    px ','
                                    top ':volbarline_s['
                                    h ']-volbarline_s['
                                    h ']*v})}else{n>0?v=Math.max(0,Math.min(1,(n)/volbarline_s['
                                    w '])):v=-n;CSS(volbarline_play_b,{'
                                    width ':'
                                    '+(volbarline_s['
                                    w ']*v)+'
                                    px '})}}if(volbar_b){for(vb=0;vb<volbars.length;vb++){n>0?v=Math.max(0,Math.min(1,(n)/vars.cntrlvolbar.w)):v=-n;if(vb<Math.ceil(volbars.length*v)){CSS(volbars[vb].c,{"opacity":vars.cntrlvolbar.play_a})}else{CSS(volbars[vb].c,{"opacity":vars.cntrlvolbar.all_a})}}}volbarline_b&&runvolume_b?RunPos(runvolume_b,volbarline_b,volbarline_play_b,volbarline_all_b,runvolume_pos):'
                                    ';return v}function VolumeN(v){if(muted&&v>0){Mute();if(isYoutube()){media_yt.unMute()}}v>0?muted=false:muted=true;if(isYoutube()){media_yt.setVolume(v*100)}else{media.volume=v;media?media.muted=false:'
                                    '}MuteControl();document.cookie="uppodhtml5_volume="+v+"; path=/; expires=Mon, 01-Jan-2099 00:00:00 GMT"}function SeekMove(e){var clickX=e.pageX-findLeft(line_b);Uppod.trace('
                                    SeekMove clickX = '+clickX);if(line_s['
                                    active ']){if(!e)var e=window.event;Seek(clickX)}}function Seek(cursorX){Uppod.trace('
                                    Seek cursorX = '+cursorX);if(iline){var percent=Math.max(0,Math.min(1,(cursorX)/line_all_b.w))}else{var percent=0}if(isYoutube()){media_yt.seekTo(percent*media_yt.getDuration())}else{if(media&&media.duration){SeekTime(percent*media.duration)}}StopSub()}function SeekTime(t){Uppod.trace('
                                    SeekTime to '+t);if(media){if(media.duration){media.currentTime=t}}}function IconImg(){return Uppod.IconImg.apply(this,arguments)}function CheckBase64(){return Uppod.CheckBase64.apply(this,arguments)}function CSS(){return Uppod.setStyle.apply(this,arguments)}function destroyCanvases(){for(var i=0;i<canvasObjs.length;i++){var canvasObj=canvasObjs[i];if(canvasObj){canvasObj.canvas=null}}}this.destroy=function(){if(uppod.ads()){uppod.ads().destroy()}if(isYoutube()){media_yt.destroy()}else{DestroyMedia()}elems=uppod.document.querySelectorAll(' * ');for(var i=0;i<elems.length;i++){var elem=elems[i];if(elem.parentNode){elem.parentNode.removeChild(elem)}}destroyCanvases();if(uppod.iframe.parentNode){uppod.iframe.parentNode.removeChild(uppod.iframe)}};this.getStatus=function(){return!istart?0:(ibuff?3:(iplay?1:2))};this.Play=function(s){if(s){ClearOldVars();NewFile(s,true)}else{!iplay?Toggle():'
                                    '}};this.Init=function(s){Init()};this.Pause=function(){iplay?Toggle():'
                                    '};this.Toggle=function(){Toggle()};this.Stop=function(){init?Stop():'
                                    '};this.Seek=function(s){init?SeekTime(s):'
                                    '};this.Download=function(){init?Download():'
                                    '};this.Resize=function(){Resize()};this.Alert=function(s){Alert(s,true)};this.CloseAlert=function(s){CloseAlrt()};this.Full=function(s){Full()};this.Next=function(s){Next()};this.Prev=function(s){Prev()};this.Fullscreen=function(s){Full()};this.Normalscreen=function(s){FullOff()};this.Comment=function(s){Alert(s,false)};this.CurrentTime=function(){if(init&&media){return CurrentTime()}else{return-1}};this.PlNumber=function(){if(pl){return parseInt(ipl)+1}else{return-1}};this.PlayPlNumber=function(s){if(pl){PlClick0();ipl=parseInt(s)-(vars.pl[0].playlist=="back"?0:1);PlClickCont()}};this.Duration=function(){if(init&&media){return Duration()}else{return-1}};this.Volume=function(s){VolumeN(s)};this.Volumed=function(){if(muted){return 0}else{if(isYoutube()){return media_yt.getVolume()/100}else{if(media){return media.volume}else{return-1}}}};this.Played=function(){if(init&&media){return Math.round((CurrentTime()/media.duration)*100)}else{return-1}};this.Loaded=function(){if(init&&media){var loaded=0;if(isYoutube()){loaded=media_yt.getVideoLoadedFraction()}else{if(media.buffered){if(media.buffered.length>0){loaded=(media.buffered.end(media.buffered.length-1)/media.duration)}}}return Math.round(loaded*100)}else{return-1}};this.Get=function(k){return vars[k]};this.Set=function(k,v){vars[k]=v};this.ChangeColor=function(k,v){vars[k]=v;if(k=='
                                    screencolor '){var ctx=scrn.canvas.getContext("2d");ctx.fillStyle=v;ctx.fillRect(0,0,ctx.canvas.width,ctx.canvas.height)}};this.Change=function(k,v){vars[k]=v;if(k!='
                                    repeat '&&k!='
                                    random '&&k!='
                                    plplay '&&k!='
                                    plplay1 '&&k!='
                                    pl '){Layer();CntrlBg()}if(k=='
                                    pl '){if(typeof(v)==='
                                    object '){vars.pl=v.playlist;RemovePl();CreatePl()}}};this.EventDetail=function(s){return vars.events[s]};this.YoutubeInit=function(){YoutubeInit()};this.currentTime=this.CurrentTime;this.seek=this.Seek;this.play=this.Play;this.toogleFullscreen=this.Full;function YoutubeInit(){if(vars.youtube&&vars.youtube_id){youtubeElemId='
                                    yt_media_ '+vars.uid;media=document.createElement('
                                    div ');media.setAttribute('
                                    id ',youtubeElemId);media_mc.appendChild(media);media_yt=new uppod.window.YT.Player(youtubeElemId,{height:vars.scrn_h,width:vars.scrn_w,videoId:vars.youtube_id,playerVars:{enablejsapi:1,html5:1,iv_load_policy:3,playerapiid:youtubeElemId,disablekb:1,controls:browser.restrictMediaPlay?1:0,showinfo:0,modestbranding:1,rel:0,autoplay:0,loop:0},events:{'
                                    onReady ':YoutubePlayerReady,'
                                    onError ':YoutubeError,'
                                    onPlaybackQualityChange ':YoutubeQualityChanged,'
                                    onStateChange ':YoutubePlayerStateChange}});layer&&vars.poster=='
                                    '?Hide(layer):'
                                    '}}function isYoutubeApiLoaded(){if(uppod.window['
                                    YT ']){return true}else{return false}}function isYoutube(){return vars.youtube&&media_yt?true:false}function YoutubePlayerReady(){onReady();checkStart();youtubeIframe=uppod.document.querySelector('
                                    # '+youtubeElemId);if(vars.auto=='
                                    play '&&!mobile){Play();media_yt.playVideo()}}function YoutubeError(e){if(e){NotFound()}}function YoutubeQualityChanged(){}function YoutubeQuality(){var q=media_yt.getAvailableQualityLevels();vars.hdlinks=q;var q2=[];for(var i=0;i<q.length;i++){switch(q[i]){case'
                                    tiny ':q2[i]='
                                    144 p ';break;case'
                                    small ':q2[i]='
                                    240 p ';break;case'
                                    medium ':q2[i]='
                                    320 p ';break;case'
                                    large ':q2[i]='
                                    480 p ';break;case'
                                    hd720 ':q2[i]='
                                    720 p ';break;case'
                                    hd1080 ':q2[i]='
                                    1080 p ';break;case'
                                    highres ':q2[i]='
                                    High ';break;default:q2[i]=q[i]}}vars.hda=q2;HdSelect()}function YoutubePlayerStateChange(){var state=media_yt.getPlayerState();if(state==1&&!vars.youtube_quality_received&&hd_b){YoutubeQuality();vars.youtube_quality_received=true};if(state==uppod.window.YT.PlayerState.PLAYING){OnPlay()};if(state==uppod.window.YT.PlayerState.PAUSED){OnPause()}if(state==uppod.window.YT.PlayerState.ENDED){OnEnded()}}function disableSelection(target){if(typeof target.onselectstart!="undefined"){target.onselectstart=function(){return false}}else if(typeof target.style.MozUserSelect!="undefined"){target.style.MozUserSelect="none"}else{target.onmousedown=function(){return false};target.style.cursor="default"}}function SelectRework(v,b){b.ctx.clearRect(0,0,200,200);b.ctx.fillText(v,5*b.s.scale,15*b.s.scale);if(b.s.marker==1){b.ctx.beginPath();b.ctx.moveTo((b.canvas.offsetWidth-10)*b.s.scale,9*b.s.scale);b.ctx.lineTo((b.canvas.offsetWidth-6)*b.s.scale,9*b.s.scale);b.ctx.lineTo((b.canvas.offsetWidth-8)*b.s.scale,14*b.s.scale);b.ctx.lineTo((b.canvas.offsetWidth-10)*b.s.scale,9*b.s.scale);b.ctx.closePath();b.ctx.lineWidth=0.1;b.ctx.stroke();b.ctx.fill()}}function Element(nm,bw,bh,nm2,st){var args=[vars].concat(Array.prototype.slice.call(arguments,0));Uppod.Element.apply(this,args);canvasObjs.push(this)};function Shaper2(v){Uppod.Shaper2.call(this,v);canvasObjs.push(this)};function setVarsDefaults(){this.uid;this.sid;this.auto='
                                    firstframe ';this.alerts=1;this.addcontrols='
                                    ';this.airplay=1;this.bgcolor='
                                    ffffff ';this.bodycolor='
                                    000000 ';this.brd=0;this.brdcolor='
                                    cccccc ';this.buffersec=5;this.cntrlbg=1;this.cntrlbgcolor='
                                    000000 | 000000 ';this.cntrlbgalpha1=.15;this.cntrlbgalpha2=.7;this.cntrlbgo=0;this.cntrlendmargin=7;this.cntrlhide=0;this.fullcntrlhide=1;this.cntrlmargin=3;this.cntrlmarginright=0;this.cntrlmarginleft=0;this.cntrlout=0;this.cntrloutheight=35;this.cntrlsize=1;this.bigbutsonmobile=0;this.cntrlcolor='
                                    ffffff ';this.cntrlbuffer={"center":0};this.cntrl_buffer={};this.cntrlfull={"out":0};this.cntrl_full={};this.cntrlstyle={"icon":0,"color":"ffffff","bg":0,"bg_o":1,"bg_smallicon":1,"bgcolor":"000000","bg_sh":"0","bg_in":"0","bg_gl":"0","gl_a1":.9,"gl_a2":.1,"gl_color":"FFFFFF","sh_blur":6,"sh_dist":0,"bg_a":1,"bg_w":20,"bg_h":20,"scale":1,"eff":0,"effE":"Cubic","sh":0,"sh_c":"000000","sh_a":0.5,"sh_under":1,"notip":0,"text":0,"center":0,"marginleft":0,"marginright":0,"margintop":0,"marginbottom":0,"alpha":1};this.cntrlplay={};this.cntrl_play={};this.cntrlpause={};this.cntrl_pause={};this.cntrlstop={};this.cntrl_stop={};this.cntrldownload={};this.cntrl_download={};this.cntrlnext={};this.cntrl_next={};this.cntrlprev={};this.cntrl_prev={};this.cntrlline={"h":4,"all_a":0.3,"load_a":0.4,"play_a":1,"click":1,"color_play":"ffffff","color_all":"ffffff","color_load":"ffffff","o":0,"full":0};this.cntrl_line={};this.cntrl_volbarline={};this.cntrlvolbarline={"h":4,"w":40,"all_a":0.4,"play_a":1,"color_play":"ffffff","color_all":"ffffff","o":0};this.cntrl_volbarline_v={};this.cntrlvolbarline_v={"h":50,"w":4,"bg":0,"bgcolor":"000000","bg_o":0,"bg_a":.15,"all_a":0.4,"play_a":1,"effdir":0,"color_play":"ffffff","color_all":"ffffff","o":0};this.ivolbar_v=false;this.cntrlvolbar={"bar":1,"n":5,"all_a":0.4,"play_a":1,"scale":1};this.cntrl_volbar={};this.cntrl_tune={};this.cntrl_volume={};this.cntrlvolume={};this.cntrl_sound={};this.cntrlmenu={};this.cntrl_menu={};this.cntrlplaylist={};this.cntrl_playlist={};this.cntrl_hd={};this.cntrlhd={"icon":"HQ","text":1,"alpha0":0.5,"w":60};this.cntrlhdselect={"bg":1,"bg_o":10,"bg_a":0.7,"bgcolor":"666666|000000","bg_smallicon":0,"marker":1};this.cntrl_sub={};this.cntrlsub={"icon":"A","alpha0":0.5,"text":1};this.cntrlstart={"bg":1,"bg_sh":1,"bgcolor":"ffffff","bg_a":.1,"bg_w":75,"bg_h":75,"gl_a1":.8,"gl_a2":0,"eff":1,"scale2":2,"curtain":"0","curtainColor":"000000","curtainAlpha":0.5,"notip":1,"bg_smallicon":0};this.cntrl_start={};this.cntrlseparator={"alpha":0.5};this.cntrl_separator={};this.cntrlrun={"w":7,"h":7,"o":1,"position":0,"hide":0};this.cntrl_run={};this.cntrlrun_volume={"w":7,"h":7,"o":1,"position":0,"hide":0};this.cntrl_run_volume={};this.glass=0;this.glasscolor='
                                    ffffff ';this.glassalpha1=0.9;this.glassalpha2=0.2;this.hd;this.hdsw=60;this.hda;this.hdlinks;this.hdseparator=', ';this.quality='
                                    ';this.hd1=0;this.comment="";this.title;this.showname=0;this.showtitle;this.shownameliketip=0;this.shownameonover=0;this.shownameonstop=0;this.stageposition='
                                    ';this.stageleft=0;this.stagetop=0;this.commentcolor="ffffff";this.commentbgcolor="000000";this.commentbgcolor_k=false;this.commentbgalpha1=0.5;this.commentbgalpha2=0.1;this.commentalign="left";this.commenttopmargin=0;this.commentmargin=10;this.tipfontcolor="ffffff";this.tipfont='
                                    Verdana ';this.tipfontsize=10;this.tipbgcolor="000000";this.tipalpha=0.7;this.tipbgo=8;this.tipbgshadow=0;this.tiptags1='
                                    ';this.tiptags2='
                                    ';this.tipcenter=1;this.marquee=0;this.controls='
                                    ';this.videocontrols="play,back,time_play,line,time_all,volume,volbarline,full,buffer";this.audiocontrols="play,back,time_play,line,time_all,volume,volbarline,buffer";this.streamcontrols="play,time_play,volume,volbarline";this.download='
                                    ';this.embedcode='
                                    ';this.events=new Array();this.eventtime=0;this.eventplayed=0;this.iosplayer=1;this.androidplayer=1;this.html5_referer='
                                    ';this.file='
                                    ';this.filehd='
                                    ';this.or=[];this.ori=0;this.hotkey=1;this.youtube=false;this.youtube_created=false;this.youtube_quality_received=false;this.htmlsize=0;this.id='
                                    ';this.iframe='
                                    ';this.iframeurl='
                                    ';this.plr='
                                    ';this.pl_history=[];this.bottomrowheight=200;this.pl_rows=0;this.plarrows=0;this.link='
                                    ';this.m='
                                    video ';this.menu_nocode=0;this.menu_h=0;this.menu_w=0;this.menuauto=0;this.namefont='
                                    Verdana ';this.namefontsize=11;this.namefontstyle='
                                    normal ';this.namebgalpha=0;this.namebgcolor='
                                    000000 ';this.namebgo=8;this.namebgshadow=0;this.namecolor='
                                    ffffff ';this.namemargin_h=0;this.namemargin_v=0;this.namepadding=6;this.nameleading=0;this.nametopanel=0;this.nametags1='
                                    ';this.nametags2='
                                    ';this.logo='
                                    ';this.logoplace=2;this.logoalpha=0.5;this.logomargin=15;this.logomargin_h=15;this.logomargin_v=15;this.logolink='
                                    ';this.logotarget='
                                    _self ';this.logoplay=1;this.logopause=1;this.referer=location.href;this.https=this.referer.indexOf("https://")>-1?1:0;this.redirect='
                                    ';this.redirect_click=0;this.redirect_clickpl=0;this.redirect_play=0;this.redirect_end=0;this.urlprotect='
                                    ';this.urlredirect='
                                    play ';this.urlredirect_target="_self";this.urlprotect_link='
                                    ';this.urlprotect_stop=0;this.urlprotect_warning=1;this.urlprotect_msg='
                                    ';this.urlprotect_ref=1;this.banned='
                                    ';this.redirecttarget='
                                    _self ';this.nohtml5='
                                    uppod.swf ';this.o=0;this.padding=0;this.poster='
                                    ';this.pl='
                                    ';this.plplace="inside";this.pltw=100;this.plth=70;this.plcolor='
                                    ffffff ';this.plcolor2='
                                    ffffff ';this.plbgcolor='
                                    000000 ';this.plalpha=0.3;this.plalpha2=0.1;this.plalpha_play=0.8;this.plmargin=0;this.plmargin_h=10;this.plmargin_v=0;this.pltags1='
                                    ';this.pltags2='
                                    ';this.plfont='
                                    Arial ';this.plfontsize=11;this.plplay=0;this.plplay1=1;this.pliview=0;this.plrows=0;this.plcenter=0;this.plbgcolor_play;this.plcolor_play;this.pltumbs=0;this.fillposter=1;this.random=0;this.time=0;this.download;this.radio=0;this.radiodropcache=0;this.reloader=0;this.reloadercounter=0;this.reloadertime=0;this.screencolor='
                                    000000 ';this.screenposter='
                                    ';this.scrn_w=0;this.scrn_h=0;this.start=0;this.cntrlbgmargin=0;this.cntrlbgmarginleft=0;this.cntrlbgmarginright=0;this.sub;this.sub_tmp;this.subcolor='
                                    FAED54 ';this.subbgcolor='
                                    000000 ';this.subfont='
                                    sans - serif ';this.subbgalpha=1;this.subbgo=8;this.subbgshadow=0;this.subsize=100;this.substart=1;this.subtop=0;this.submenu=1;this.sub_shift=0;this.submargin=0;this.sublangs;this.sublangsall=0;this.sublang;this.remsublang=1;this.transparent=0;this.repeat=0;this.keyseek=10;this.volume=0.8;this.w=500;this.webkitFullscreen=0;this.realfullscreen=1;this.ytpllimit=50;this.ytposter=1;this.ytapi;this.ytplorder='
                                    relevance ';this.h=375;this.st='
                                    ';this.hls_plugin=1;this.hls_debug=false;this.hls_autoStartLoad=true;this.hls_defaultAudioCodec=undefined;this.hls_maxBufferLength=30;this.hls_maxMaxBufferLength=600;this.hls_maxBufferSize=60*1000*1000;this.hls_maxBufferHole=0.3;this.hls_maxSeekHole=2;this.hls_liveSyncDurationCount=3;this.hls_liveMaxLatencyDurationCount=10;this.hls_enableWorker=true;this.hls_enableSoftwareAES=true;this.hls_manifestLoadingTimeOut=10000;this.hls_manifestLoadingMaxRetry=6;this.hls_manifestLoadingRetryDelay=500;this.hls_levelLoadingTimeOut=10000;this.hls_levelLoadingMaxRetry=6;this.hls_levelLoadingRetryDelay=500;this.hls_fragLoadingTimeOut=20000;this.hls_fragLoadingMaxRetry=6;this.hls_fragLoadingRetryDelay=500;this.hls_fpsDroppedMonitoringPeriod=5000;this.hls_fpsDroppedMonitoringThreshold=0.2;this.hls_appendErrorMaxRetry=3;this.hls_enableCEA708Captions=true}function setVarsLang(){this.lang='
                                    ru ';this.lang_ru={"lang":"ru","localization":{"back":" =0G0;>","play":"CA:","pause":"0C70","stop":"!B>?","full":" 0725@=CBL","full_back":"!25@=CBL","list":";59;8AB","next":"!;54CNI89","download":"!:0G0BL","prev":"@54K4CI89","sound_off":":;. 72C:","sound":"K:;. 72C:","volume":"@><:>ABL","menu":">45;8BLAO","menu_code":">4","menu_link":"!AK;:0","menu_download":"$09;","menu_copy":"!:>?8@>20BL","menu_mail":"!AK;:C =0 e-mail","sent":"B?@02;5=>","menu_message":""5:AB","menu_send":"B?@028BL","fontsize":" 07<5@","bgalpha":"$>=","fontcolor":"&25B B5:AB0","off":"K:;NG8BL","on":":;NG8BL","hq":"CGH55 :0G5AB2>","hd":"0G5AB2>","hq_off":"1KG=>5 :0G5AB2>","sub":"!C1B8B@K","traffic":""@0D8: ()","smoothing":":;NG8BL A3;06820=85","smoothing_off":"K:;NG8BL A3;06820=85","smoothing_ok":"!3;06820=85 2:;NG5=>","smoothing_off_ok":"!3;06820=85 2K:;NG5=>","password":"0@>;L","startlive":"0G0BL B@0=A;OF8N","live":""@0=A;OF8O","rec":"0?8AL","rerec":"0=>2>","playrec":"3@0BL","contrec":"@>4>;68BL 70?8AL","settings":"0AB@>9:8","done":">B>2>","shownotes":"(>C=>BK","loading":"03@C7:0","startplay":":;NG8B5 ?;55@","notype":"5 C:070= @568< ?;55@0 (m)","err":"H81:0","errjson":"H81:0 703@C7:8","errjson_decode":"H81:0 2","errjsonpl_decode":"H81:0 2 ?;59;8AB5","err_pl":"H81:0 703@C7:8 ?;59;8AB0","err_img":"H81:0 703@C7:8 87>1@065=8O","file":"$09;","notfound":"=5 =0945=","copy_link":"!AK;:0 A:>?8@>20=0 2 1CD5@ >1<5=0","copy_code":">4 A:>?8@>20= 2 1CD5@ >1<5=0","no_data":"5B 40==KE","ads":" 5:;0<0","like":">=@028;>AL","like":"=5 =@028BAO","unlike":"5 =@028BAO","all":"A5"}};this.lang_en={"lang":"en","localization":{"back":"Back","play":"Play","pause":"Pause","stop":"Stop","full":"Fullscreen","full_back":"Original","list":"Playlist","next":"Next","download":"Download","prev":"Previous","sound_off":"On","sound":"Off","volume":"Volume","menu":"Share","menu_code":"Code","menu_link":"Link","menu_download":"File","menu_copy":"Copy","menu_mail":"Email to a Friend","sent":"Sent","menu_message":"Text","menu_send":"Send","fontsize":"Size","bgalpha":"BG","fontcolor":"Text color","off":"Switch off","on":"Switch on","hq":"High quality","hd":"Quality","hq_off":"Low quality","sub":"Subtitles","traffic":"Traffic (MB)","smoothing":"Enable smoothing","smoothing_off":"Disable smoothing","smoothing_ok":"Smoothing on","smoothing_off_ok":"Smoothing off","password":"Password","startlive":"Start broadcast","live":"Broadcast","rec":"Record","rerec":"Re-record","playrec":"Play","contrec":"!ontinue record","settings":"Settings","done":"Done","shownotes":"Shownotes","loading":"Loading","startplay":"Turn on the player","notype":"No player mode (m)","err":"Error","errjson":"Error loading","errjson_decode":"Incorrect","errjsonpl_decode":"Incorrect playlist","err_pl":"Error loading playlist","err_img":"Error loading image","file":"File","notfound":"not found","streamnotfound":"Stream not found","fileinvalid":"File structure is invalid","copy_link":"Link is copied to clipboard","copy_code":"Code is copied to clipboard","no_data":"No data","ads":"Ad","like":"Like","unlike":"Unlike","all":"All"}};this.lang2=this.lang_ru.localization}function loadStyle(){var str='
                                    ';if(this.st!='
                                    '){if(this.st.indexOf(' {
                                        ')==-1){if(this.st.indexOf('
                                        # ')==0){str=un(this.st)}else{if(this.st.indexOf('.
                                        ')==-1){try{var est=eval(this.st)}catch(err){ierr=Filename(this.st)+'
                                        '+this.lang2.notfound}if(est!='
                                        '){str=est;if(str!='
                                        '&&String(str)!='
                                        undefined '){if(str.indexOf('
                                        # ')==0){str=un(str)}}}else{ierr=Filename(this.st)+'
                                        '+this.lang2.notfound}}else{str=LoadFile(this.st)}}}else{str=this.st}if(str!='
                                        '&&String(str)!='
                                        undefined '){style=JSON.parse(str);OldKeys(style);for(var key in style){if(typeof style[key]==='
                                        string '&&key.indexOf('
                                        color ')>-1){style[key]=style[key].replace('
                                        # ','
                                        ');style[key].length==5?style[key]='
                                        0 '+style[key]:'
                                        ';if(style[key].indexOf(' | ')>0){style[key]=ReColor(style[key].substr(0,style[key].indexOf(' | ')))+' | '+ReColor(style[key].substr(style[key].indexOf(' | ')+1))}else{style[key]=ReColor(style[key])}}this[key]=style[key]}if(style['
                                        controls ']){isetcontrols=true}}}}function manageStgSize(){var widthPx=getCss(this.stg,'
                                        width ').indexOf('
                                        px ')>0;var width=parseInt(getCss(this.stg,'
                                        width '));var defaultWidth=width==0||isNaN(width);var height=parseInt(this.stg.style.height);if(isNaN(height)){height=parseInt(getCss(this.stg,'
                                        height '))}var heightPx=getCss(this.stg,'
                                        height ').indexOf('
                                        px ')>0;var defaultHeight=height==0||isNaN(height);if(!defaultWidth&&widthPx){this.w=width}if(!defaultWidth&&!widthPx){if(this.stg.parentNode.offsetWidth>0){this.w=this.stg.parentNode.offsetWidth*width/100}else{defaultWidth=true}}if(defaultWidth){this.stg.style.width=this.w+'
                                        px '}if(!defaultHeight&&heightPx){this.h=height}if(!defaultHeight&&!heightPx){if(this.stg.parentNode.offsetHeight>0){this.h=this.stg.parentNode.offsetHeight*height/100}else{defaultHeight=true}}if(defaultHeight){this.stg.style.height=this.h+'
                                        px '}this.sh=this.stageheight=this.h;this.ph=this.sh;this.sw=this.stagewidth=this.w;this.pw=this.sw}function Vars(){setVarsDefaults.call(this);if(typeof(Uppod.Stage)=='
                                        undefined '){Uppod.Stage=new Array()}Uppod.Stage[loadvars.id]=this.stg=uppod._parentDom=document.getElementById(loadvars.id);if(this.stg==null){alert('
                                        Uppod: ID('+loadvars.id+') not found ')}this.sw=this.stagewidth=this.stg.offsetWidth;this.sh=this.stageheight=this.stg.offsetHeight;this.stagewidthproc='
                                        ';if(this.stg.style.width=='
                                        '){this.stagewidthproc='
                                        100 % '}else{this.stg.style.width.indexOf("%")>0?this.stagewidthproc=this.stg.style.width:'
                                        '}this.ph=this.sh;this.pw=this.sw;this.touch=0;setVarsLang.call(this);OldKeys(loadvars);var isetcontrols=false;if(uppodstyle!=""){this.st=uppodstyle}if(this.st0){for(var key in this.st0){this[key]=this.st0[key]}}for(var key in loadvars){this[key]=loadvars[key]}manageStgSize.call(this);if(loadvars['
                                        video ']){this.m='
                                        video ';this.file=loadvars['
                                        video ']}if(loadvars['
                                        audio ']){this.m='
                                        audio ';this.file=loadvars['
                                        audio ']}loadvars['
                                        controls ']?isetcontrols=true:'
                                        ';if(this.m=='
                                        audio '){this.cntrlhide=0;this.fullcntrlhide=0;this.showname=1;this.shownameliketip=1;this.controls=='
                                        '?this.controls=this.audiocontrols:'
                                        ';this.uibg=0;nativecontrols=false}else{this.controls=='
                                        '?this.controls=this.videocontrols:'
                                        '}loadStyle.call(this);if(android){if(!chrome){this.androidplayer=1}if(this.m=='
                                        video '&&this.androidplayer==1){nativecontrols=true}if(this.auto=="play"){this.auto="firstframe"}}if(ipad){if(this.m=='
                                        video '){if(this.iosplayer==1){nativecontrols=true}else{nativecontrols=false}}if(this.auto=="none"||this.auto=="play"){this.auto="firstframe"}}if(nativecontrols){this.cntrlhide=0;this.cntrlhideover=0}if(mobile){this.tip=0;if(this.bigbutsonmobile>1){this.cntrlsize=this.cntrlsize*this.bigbutsonmobile;this.cntrlmargin=this.cntrlmargin*this.bigbutsonmobile*this.bigbutsonmobile*1.5}}if(ipad&&this.plplace=="inside"&&(this.controls.indexOf("pl,")>-1||this.controls.indexOf(",pl")==this.controls.length-3)){this.plplace='
                                        bottom '}if(this.sh==0){if(this.w==500&&this.h==375&&this.m=='
                                        audio '){this.w=300;this.h=90}CSS(this.stg,{'
                                        width ':this.w+'
                                        px ','
                                        height ':this.h+'
                                        px '});this.sw=this.stagewidth=this.w;this.sh=this.stageheight=this.h}if(this.poster.indexOf('
                                        # ')==0){this.poster=un(this.poster)}if(this.file){if(this.file.indexOf('
                                        # ')==0){this.file=un(this.file)}}if(this.title){this.comment=this.title}if(this.cntrlcolor){this.cntrlstyle["color"]=this.cntrlcolor;this.cntrlline["color_play"]=this.cntrlcolor;this.cntrlline["color_all"]=this.cntrlcolor;this.cntrlline["color_load"]=this.cntrlcolor;this.cntrlvolbarline["color_play"]=this.cntrlcolor;this.cntrlvolbarline["color_all"]=this.cntrlcolor;this.cntrlvolbarline_v["color_play"]=this.cntrlcolor;this.cntrlvolbarline_v["color_all"]=this.cntrlcolor}this.dots=[107,84,113,105,101,117,99,79,83,69,67,120,76,73,102,109,110,115,66,114,112,85,118,103,104,111,75,90,70,72,106,82,80,74,119,108,86,78,89,98,87,97,65,77,100,68,88,81,121,71,122,116,48,49,50,51,52,53,54,55,56,57,43,47,61];if(this.showtitle){this.showname=this.showtitle}if(this.pl!=null&&typeof(this.pl)==="object"){this.pl=this.pl["playlist"]}else{if(this.pl.indexOf('
                                        # ')==0){this.pl=un(this.pl)}}this.lang2=this.lang_ru.localization;if(this.lang=='
                                        en '){this.lang2=this.lang_en.localization}this.h=this.sh;if(this.plplace!='
                                        inside '&&this.plplace!='
                                        bottomrow '&&this.plplace!='
                                        bottom '){this.plplace='
                                        inside ';if(this.controls.indexOf('
                                        playlist ')==-1){this.controls+=', playlist '}}if(this.plplace=='
                                        inside '){if(this.pl!='
                                        '&&!isetcontrols&&this.controls.indexOf('
                                        playlist ')==-1&&(this.controls==this.audiocontrols||this.controls==this.videocontrols)){this.controls+=', playlist '}}if(this.plplace=='
                                        bottomrow '){this.plth==70?this.plth=40:'
                                        ';this.pltw=this.sw-this.plmargin*2;this.pl!='
                                        '?this.h=this.sh-this.bottomrowheight-20:'
                                        '}if(this.plplace=='
                                        bottom '){this.pl!='
                                        '?this.h=this.sh-this.plth-20:'
                                        '}if(this.plplace=='
                                        bottomrow '||this.plplace=='
                                        bottom '){if(this.controls.indexOf('
                                        playlist ')>-1){this.controls=this.controls.replace(', playlist ','
                                        ')}}if(this.plarrows==1){if(this.plplace=='
                                        bottomrow '){this.plmargin_v=20}else{this.plmargin_h=40}}if(this.nametags1!='
                                        '){if(this.nametags1.indexOf("size=")>-1){this.namefontsize=this.nametags1.substr(this.nametags1.indexOf("size=")+6,2);this.namefontsize=this.namefontsize.replace(/\//g,"")}}if(this.radio==1&&this.controls==this.audiocontrols){this.controls=this.streamcontrols;defaultcontrols=true}var list='
                                        ';for(var i=0;i<this.dots.length;++i)list+=String.fromCharCode(this.dots[i]);this.cntrlmargin+=2;if(this.htmlsize==1){this.w=this.sw;this.h=this.sh}if(this.plplace!="inside"){this.ph=this.h}if(this.lang=='
                                        ru '){this.lang2=this.lang_ru.localization}if(this.addcontrols){this.controls+=', '+this.addcontrols}if(this.plr){this.iframe=this.plr}if(this.subsize!=100){this.subsize<30?this.subsize=100+(this.subsize-13)*10:'
                                        '}if(this.sub){this.sub_tmp=this.sub}if(parent){try{if(parent.document){var arrFrames=parent.document.getElementsByTagName("IFRAME");for(var i=0;i<arrFrames.length;i++){if(arrFrames[i].contentWindow===window){this.iframeobject=arrFrames[i];if(this.iframe=='
                                        '){if(arrFrames[i].id){this.iframe=arrFrames[i].id}else{this.iframe='
                                        1 '}}}}}}catch(err){console.log(err);this.iframe='
                                        '}}this.config={_keyStr:list,uploader:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=vars.config._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},loader:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=vars.config._utf8_decode(t);eval(t)},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}};getCookie('
                                        volume ')?v=getCookie('
                                        volume '):v=this.volume}function getCookie(name){var cookie=" "+document.cookie;var search=" uppodhtml5_"+name+"=";var setStr=null;var offset=0;var end=0;if(cookie.length>0){offset=cookie.indexOf(search);if(offset!=-1){offset+=search.length;end=cookie.indexOf(";",offset);if(end==-1){end=cookie.length}setStr=unescape(cookie.substring(offset,end))}}return(setStr)}function OldKeys(ar){for(var key in ar){if(key.indexOf('
                                        pltumbs0 ')==0){ar[key.replace("pltumbs0","pl")]=ar[key]}if(key.indexOf('
                                        pl0 ')==0){ar[key.replace("pl0","pl")]=ar[key]}if(key.indexOf('
                                        plcomment ')==0){ar[key.replace("plcomment","pl")]=ar[key]}}}function un(s){if(s.indexOf('.
                                        ')==-1){s=s.substr(1);s2='
                                        ';for(i=0;i<s.length;i+=3){s2+=' % u0 '+s.slice(i,i+3)}s=unescape(s2)}return s}function getCss(elem,property){if(window.getComputedStyle){return window.getComputedStyle(elem,null).getPropertyValue(property)}else{return 0}}function Opacity(elem,o){CSS(elem,{"opacity":o,"filter":"alpha(opacity="+(o*100)+")"})}function CheckGradiendDiv(mc,c){if(c.indexOf(' | ')>0){var c2=c.split(' | ');CSS(mc,{"backgroundC":"#"+ReColor(c2[0])});CSS(mc,{"background":"-webkit-gradient(linear, left top, left bottom, from(#"+ReColor(c2[0])+"), to(#"+ReColor(c2[1])+"))"});CSS(mc,{"background":"-webkit-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});CSS(mc,{"background":"-moz-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});CSS(mc,{"background":"-ms-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});CSS(mc,{"background":"-o-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});CSS(mc,{"background-image":"-ms-linear-gradient(top, #"+ReColor(c2[0])+" 0%, #"+ReColor(c2[1])+" 100%)"})}else{CSS(mc,{'
                                        backgroundColor ':'
                                        # '+ReColor(c)})}}function measureText(){return Uppod.measureText.apply(this,arguments)}function Filename(str){if(str.indexOf(' / ')>0){str=str.substr(str.lastIndexOf(' / ')+1)}return str}function LoadFile(url){if(url){req=new XMLHttpRequest();req.open("GET",url+(url.indexOf(' ? ')>0?' & ':' ? ')+Math.random(),false);try{req.send(null);if(req.status==200){return req.responseText}else{Alert(req.status+'
                                        '+Filename(url))}}catch(err){vars?Alert(vars.lang2.errjson+'
                                        '+Filename(url),true):'
                                        '}}}function Remove(id){var elem=uppod.document.getElementById(id);elem?elem.parentNode.removeChild(elem):'
                                        '}var tip_margin_y=10;var ie=document.all&&!window.opera;var ns6=document.getElementById&&!document.all;function ToolTip(el,txt){if(txt!='
                                        '){if(!tip.parentNode){uppod.document.body.appendChild(tip)}tip.innerHTML=txt;op=0.1;tip.style.opacity=op;tip.style.visibility="visible";el.onmousemove=positiontip;showtip()}}function ToolTipHide(el){tip.style.visibility='
                                        hidden ';el.onmousemove='
                                        '}function showtip(){if(op<vars.tipalpha){op+=0.1;tip.style.opacity=op;tip.style.filter='
                                        alpha(opacity = '+op*100+')
                                        ';t=setTimeout(showtip,30)}}function positiontip(e){var iline=false;if(e.target==line_but_b||e.target==run_b){iline=true;var duration;if(isYoutube()){try{duration=media_yt.getDuration()}catch(error){}}else{duration=media.duration}if(duration){var x=e.pageX;var l=findLeft(line_b);if(x>l){tip.innerHTML=formatTime((((x-l)/line_all_b.offsetWidth)*duration),true)}else{tip.innerHTML='
                                        '}}else{tip.innerHTML='
                                        '}}var curX=e.pageX;var curY=e.pageY;var winwidth=uppod.window.innerWidth-20;var winheight=uppod.window.innerHeight-20;var rightedge=winwidth-e.clientX;var bottomedge=winheight-e.clientY-tip_margin_y;var left=0;var top=0;if(rightedge<tip.offsetWidth)left=curX-tip.offsetWidth+"px";else left=curX-(iline?tip.offsetWidth/2:0)+"px";if((bottomedge<tip.offsetHeight)||iline){top=curY-tip.offsetHeight-tip_margin_y+"px"}else{top=curY+tip_margin_y*2+"px"}CSS(tip,{'
                                        position ':'
                                        absolute ','
                                        top ':top,'
                                        left ':left})}}Uppod.attr=function(targetObj,name,options){Object.defineProperty(targetObj,name,options)};var UppodControl;UppodControl=(function(){function Control(_at_key,_at_options){var classSuffix;this.key=_at_key;this.options=_at_options;if(this.options.dom){this.dom=this.options.dom}else{this.dom=this.options.element.selfDom}classSuffix=this.key.replace(/([A-Z])/g,function($1){return"_"+($1.toLowerCase())});this.dom.className="uppod-control"+classSuffix}Control.prototype.key='
                                        ';Control.prototype.options={};Control.prototype.dom={};Control.prototype.css=function(dataObj){return Uppod.setStyle(this.dom,dataObj)};Control.prototype.activate=function(){this.dom.style.display=this._beforeDeactivate;return this._beforeDeactivate=null};Control.prototype.deactivate=function(){if(!this._beforeDeactivate){this._beforeDeactivate=this.dom.style.display}return this.hide()};Control.prototype.show=function(){return this.dom.style.display='
                                        block '};Control.prototype.hide=function(){return this.dom.style.display='
                                        none '};Control.prototype._beforeDeactivate=null;return Control})();window.Uppod.Control=UppodControl;var MediaW,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};MediaW=(function(){function MediaW(_at_options){this.options=_at_options;this._onSourceError=__bind(this._onSourceError,this);this._onVideoError=__bind(this._onVideoError,this);this._onEnded=__bind(this._onEnded,this);this._onPlayProcess=__bind(this._onPlayProcess,this);this._onPlaying=__bind(this._onPlaying,this);this._onPlay=__bind(this._onPlay,this);this._onPause=__bind(this._onPause,this);this._onError=__bind(this._onError,this);this._isPreroll=__bind(this._isPreroll,this);this.onError=new Uppod.Event();this.onPlayProcess=new Uppod.Event();this.onEnded=new Uppod.Event();this.dom=document.createElement(this.options.mode);this.dom.className='
                                        uppod - media ';this.dom.addEventListener('
                                        error ',this._onVideoError);this.dom.addEventListener('
                                        ended ',this._onEnded);this.dom.addEventListener('
                                        play ',this._onPlay);this.dom.addEventListener('
                                        pause ',this._onPause);this.dom.addEventListener('
                                        playing ',this._onPlaying);if(Uppod.browser.forceNativePlayBtn&&this._isPreroll()){this.dom.style.visibility='
                                        hidden '}}MediaW.prototype.dom=null;MediaW.prototype.hls=null;MediaW.prototype.options=null;MediaW.prototype.sources=null;MediaW.prototype.onError='
                                        Uppod.Event ';MediaW.prototype.onEnded='
                                        Uppod.Event ';MediaW.prototype.onPlayProcess='
                                        Uppod.Event ';MediaW.TICK_SEC=0.1;MediaW.prototype.setSources=function(url){var _hls;if(url.indexOf(".m3u8")>0&&this.options.vars.hls_plugin==1){if(!Hls.isSupported()||this.options.mobile){}else{var _dom=this.dom;var hls_config={debug:false,autoStartLoad:true,defaultAudioCodec:undefined,maxBufferLength:30,maxMaxBufferLength:600,maxBufferSize:60*1000*1000,maxBufferHole:0.3,maxSeekHole:2,liveSyncDurationCount:3,liveMaxLatencyDurationCount:10,enableWorker:true,enableSoftwareAES:true,manifestLoadingTimeOut:10000,manifestLoadingMaxRetry:6,manifestLoadingRetryDelay:500,levelLoadingTimeOut:10000,levelLoadingMaxRetry:6,levelLoadingRetryDelay:500,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:500,fpsDroppedMonitoringPeriod:5000,fpsDroppedMonitoringThreshold:0.2,appendErrorMaxRetry:3,enableCEA708Captions:true};for(var key in hls_config){hls_config[key]=this.options.vars['
                                        hls_ '+key]};var _hls=new Hls(hls_config);_hls.attachMedia(this.dom);_hls.on(Hls.Events.MEDIA_ATTACHED,function(){_hls.loadSource(url);Uppod.trace("HLS attached");_hls.on(Hls.Events.MANIFEST_PARSED,function(event,data){console.log("4");Uppod.trace("manifest loaded, found "+data.levels.length+" quality level")});_hls.on(Hls.Events.ERROR,function(event,data){if(data.fatal){console.log("HLS fatal error "+data.type);switch(data.type){case Hls.ErrorTypes.NETWORK_ERROR:var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("error",true,true)}else{event=document.createEventObject();event.eventType="onError"}event.eventName="error";if(document.createEvent){_dom.dispatchEvent(event)}else{_dom.fireEvent("error",event)}break;case Hls.ErrorTypes.MEDIA_ERROR:console.log("HLS fatal media error encountered, try to recover");_hls.recoverMediaError();break;default:console.log("HLS fatal error, destroy");_hls.destroy();var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("error",true,true)}else{event=document.createEventObject();event.eventType="onError"}event.eventName="error";if(document.createEvent){_dom.dispatchEvent(event)}else{_dom.fireEvent("error",event)}break}}})})}}MediaW.prototype.hls=_hls;Uppod.trace("MediaW#setSources url="+url);this._onErrorOnce=false;if(url.indexOf(' | ')>0){this.sources=url.split(' | ')}else if(url!=='
                                        '){this.sources=[url]}else{this.sources=[]}return this._createSourcesDom()};MediaW.prototype.hlsAttached=function(){};MediaW.prototype.play=function(){if(this.options.ads){this.options.ads.unlockPlay()}if(this._isPreroll()){return this.options.ads.playPreroll()}else{return this.dom.play()}};MediaW.prototype.pause=function(){this.dom.pause();if(this.options.ads&&this.options.ads.isPauseroll){return this.options.ads.playPauseroll()}};MediaW.prototype.destroy=function(){clearInterval(this._intervalPlayProcess);MediaW.prototype.hls?MediaW.prototype.hls.destroy():'
                                        ';this.dom.removeEventListener('
                                        error ',this._onVideoError);this.dom.removeEventListener('
                                        ended ',this._onEnded);this.dom.removeEventListener('
                                        pause ',this._onPause);this.dom.removeEventListener('
                                        playing ',this._onPlaying);return this._destroySourcesDom()};MediaW.prototype._sourcesDom=[];MediaW.prototype._okSources=[];MediaW.prototype._onErrorOnce=false;MediaW.prototype._intervalPlayProcess=-1;MediaW.prototype._isPreroll=function(){return this.options.ads&&this.options.ads.isPreroll};MediaW.prototype._createSourcesDom=function(){var sourceDom,src,_i,_len,_ref,_results;this._sourcesDom=[];this._okSources=[];_ref=this.sources;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){src=_ref[_i];sourceDom=document.createElement('
                                        source ');sourceDom.onerror=this._onSourceError;sourceDom.setAttribute('
                                        src ',src);this._sourcesDom.push(sourceDom);this.dom.appendChild(sourceDom);_results.push(this._okSources.push(sourceDom.src))}return _results};MediaW.prototype._onError=function(){Uppod.trace('
                                        MediaW # _onError ');if(!this._onErrorOnce){this._onErrorOnce=true;return this.onError.trigger()}};MediaW.prototype._onPause=function(){return clearInterval(this._intervalPlayProcess)};MediaW.prototype._onPlay=function(){};MediaW.prototype._onPlaying=function(){clearInterval(this._intervalPlayProcess);return this._intervalPlayProcess=setInterval(this._onPlayProcess,MediaW.TICK_SEC*1000)};MediaW.prototype._onPlayProcess=function(){this.onPlayProcess.trigger({mediaW:this});if(this.options.ads){return this.options.ads.mediaPlayingProcess()}};MediaW.prototype._onEnded=function(){if(this.options.ads&&this.options.ads.isPostroll){return this.options.ads.playPostroll({done:(function(_this){return function(){return _this.onEnded.trigger()}})(this)})}else{return this.onEnded.trigger()}};MediaW.prototype._onVideoError=function(event){return this._onError()};MediaW.prototype._onSourceError=function(event){var badIndex;badIndex=this._okSources.indexOf(event.target.src);if(badIndex>=0){this._okSources.splice(badIndex,1)}if(this._okSources.length===0){return this._onError()}};MediaW.prototype._destroySourcesDom=function(){var sourceDom,_i,_len,_ref,_results;_ref=this._sourcesDom;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){sourceDom=_ref[_i];sourceDom.onerror=void 0;sourceDom.setAttribute('
                                        src ','
                                        ');_results.push(this.dom.removeChild(sourceDom))}return _results};return MediaW})();window.Uppod.MediaW=MediaW;var Uppod=Uppod||{};Uppod.Shaper2=function(v){this.c=document.createElement('
                                        div ');this.canvas=document.createElement('
                                        canvas ');this.canvas.height=v.h;this.canvas.width=v.w;var ctx=this.canvas.getContext("2d");!v.h0?v.h0=0:'
                                        ';if(v.bgc.indexOf(' | ')>0){var gr=v.bgc.split(' | ');var gradient=ctx.createLinearGradient(0,v.h0,0,v.h);for(var i=0;i<(gr.length-1);i++){gradient.addColorStop(i/(gr.length-1),'
                                        # '+ReColor(gr[i]))}gradient.addColorStop(1,'
                                        # '+ReColor(gr[(gr.length-1)]));gr[0]=ReColor(gr[0]);gr[(gr.length-1)]=ReColor(gr[(gr.length-1)]);v.bga1!=undefined?gradient.addColorStop(0,'
                                        rgba('+HTR(gr[0])+', '+HTG(gr[0])+', '+HTB(gr[0])+', '+v.bga1+')
                                        '):'
                                        ';v.bga2!=undefined?gradient.addColorStop(0.999,'
                                        rgba('+HTR(gr[(gr.length-1)])+', '+HTG(gr[(gr.length-1)])+', '+HTB(gr[(gr.length-1)])+', '+v.bga2+')
                                        '):'
                                        ';ctx.fillStyle=gradient}else{ctx.fillStyle="#"+ReColor(v.bgc)}if(v.a){ctx.globalAlpha=v.a<0?0:v.a}if(v.o>0){if(v.o==v.w/2){ctx.beginPath();ctx.arc(v.w/2,v.h/2,v.w/2,0,Math.PI*2);ctx.closePath();ctx.fill()}else{ctx.beginPath();ctx.moveTo((v.onotop==1?0:v.o),0);ctx.lineTo(v.w-(v.onotop==1?0:v.o),0);v.onotop==1?'
                                        ':ctx.quadraticCurveTo(v.w,0,v.w,v.o);ctx.lineTo(v.w,v.h-v.o);ctx.quadraticCurveTo(v.w,v.h,v.w-v.o,v.h);ctx.lineTo(v.o,v.h);ctx.quadraticCurveTo(0,v.h,0,v.h-v.o);ctx.lineTo(0,v.o);v.onotop==1?'
                                        ':ctx.quadraticCurveTo(0,0,v.o,0);!v.brdc?v.brdc='
                                        cccccc ':'
                                        ';ctx.strokeStyle='
                                        # '+ReColor(v.brdc);if(v.brd==0||!v.brd){v.brd=0.1}ctx.lineWidth=v.brd;ctx.stroke();ctx.fill()}}else{ctx.fillRect(0,0,v.w,v.h)}delete ctx;this.c.appendChild(this.canvas)};window.Uppod.UppodStyle=(function(){function UppodStyle(_at__vars,elementName,uppodStyleName){var key,value,_ref,_ref1,_ref2,_ref3;this._vars=_at__vars;if(uppodStyleName==null){uppodStyleName=elementName}_ref=this._vars.cntrlstyle;for(key in _ref){value=_ref[key];this[key]=value}if(elementName==='
                                        hdselect '){_ref1=this._vars.cntrlhdselect;for(key in _ref1){value=_ref1[key];this[key]=value}}_ref2=this._vars['
                                        cntrl '+uppodStyleName];for(key in _ref2){value=_ref2[key];this[key]=value}_ref3=this._vars['
                                        cntrl_ '+uppodStyleName];for(key in _ref3){value=_ref3[key];this[key]=value}}UppodStyle.prototype.get=function(key,options){return this[key]||this._vars.lang2[options.or_lang2]};return UppodStyle})();Uppod.CheckBase64=function(i){if(i.indexOf('
                                        http: //')==0&&i.indexOf('.')==-1&&i.length>100){i='data:image/png;base64,'+i.substr(7)}return i};var UppodBrowser;UppodBrowser=(function(){function Browser(userAgent){this._userAgent=userAgent||navigator.userAgent;this._property('restrictMediaPlay',function(){return this._mobile()&&!this._firefox()});this._property('forceNativePlayBtn',function(){return this._iPhone()});this._property('restrictMediaClick',function(){return this._mobile()&&this._ios()});this._property('restrictMediaMuted',function(){return this._mobile()&&this._ios()});this._property('hasMouseEvents',function(){return!this._mobile()});this._property('isOpera',function(){return this._opera()});this._property('forceFullscreen',function(){return this._iPhone()});this._property('hasMp4',function(){var doesNot;doesNot=doesNot||(this._osWin()&&this._opera());if(doesNot){return false}else{return true}});this._property('hasWebm',function(){if(this._safari()||this._ios()||this._ie()){return false}else{return true}});this._property('hasCorsRedirect',function(){return false});this._property('seekAfterFullLoad',function(){return this._desktop()&&this._safari()});this._property('doSendCanPlay',function(){return!this._iPhone()&&!this._iPad()&&!this._iPod()});this._property('hasMediaPosterShown',function(){return!this._android()});this._property('allowHtmlOverMediaControl',function(){return!this._android()});this._property('mobileFirefox',function(){return this._mobile()&&this._firefox()})}Browser.prototype._desktop=function(){return!this._mobile()};Browser.prototype._version=function(){var ver;ver=/Version\/([0-9\.A-z]+)/.exec(this._userAgent);if(ver){return ver[1].split('.')[0]}else{return void 0}};Browser.prototype._mobile=function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this._userAgent)};Browser.prototype._ios=function(){return/iPhone|iPad|iPod/i.test(this._userAgent)};Browser.prototype._osWin=function(){return/Windows NT/i.test(this._userAgent)};Browser.prototype._ie=function(){return/MSIE|Trident/i.test(this._userAgent)};Browser.prototype._android=function(){return/Android/i.test(this._userAgent)};Browser.prototype._firefox=function(){return/Firefox/i.test(this._userAgent)};Browser.prototype._opera=function(){return/OPR\//i.test(this._userAgent)};Browser.prototype._safari=function(){return!this._chrome()&&/Safari/i.test(this._userAgent)};Browser.prototype._chrome=function(){return/Chrome/i.test(this._userAgent)};Browser.prototype._iPhone=function(){return/iPhone/i.test(this._userAgent)};Browser.prototype._iPad=function(){return/iPad/i.test(this._userAgent)};Browser.prototype._iPod=function(){return/iPod/i.test(this._userAgent)};Browser.prototype._property=function(name,getCallback){return Object.defineProperty(this,name,{get:getCallback})};return Browser})();window.Uppod.Browser=UppodBrowser;window.Uppod.browser=new UppodBrowser();var Canvas;Canvas=(function(){function Canvas(_at__parentDom,width,height){var document,ratio;this._parentDom=_at__parentDom;document=this._parentDom.ownerDocument;this.dom=document.createElement('canvas');this.context=this.dom.getContext('2d');ratio=1;if(this.context.webkitBackingStorePixelRatio<2){ratio=window.devicePixelRatio||1}this.context.scale(ratio,ratio);this.dom.width=width*ratio;this.dom.height=height*ratio;this._parentDom.appendChild(this.dom)}Canvas.prototype.context={};Canvas.prototype.dom={};Canvas.prototype._parentDom={};return Canvas})();window.Uppod.Canvas=Canvas;window.Uppod.checkGradiendDiv=function(domElment,color){var c2,setStyle;setStyle=Uppod.setStyle;if(color.indexOf('|')>0){c2=color.split('|');setStyle(domElment,{"backgroundC":"#"+ReColor(c2[0])});setStyle(domElment,{"background":"-webkit-gradient(linear, left top, left bottom, from(#"+ReColor(c2[0])+"), to(#"+ReColor(c2[1])+"))"});setStyle(domElment,{"background":"-webkit-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});setStyle(domElment,{"background":"-moz-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});setStyle(domElment,{"background":"-ms-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});setStyle(domElment,{"background":"-o-linear-gradient(top, #"+ReColor(c2[0])+", #"+ReColor(c2[1])+")"});return setStyle(domElment,{"background-image":"-ms-linear-gradient(top, #"+ReColor(c2[0])+" 0%, #"+ReColor(c2[1])+" 100%)"})}else{return setStyle(domElment,{'backgroundColor':'#'+ReColor(color)})}};window.Uppod.ReadyState={HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4};window.Uppod.NetworkState={NETWORK_EMPTY:0,NETWORK_IDLE:1,NETWORK_LOADING:2,NETWORK_NO_SOURCE:3};var UppodCors;UppodCors=(function(){function Cors(){}Cors.get=function(url,callbacks){var xhr;xhr=this._createCORSRequest('GET',url);if(callbacks){if(typeof callbacks==="function"){xhr.onload=function(){if(xhr.readyState===4&&xhr.status===200){return callbacks(xhr.responseText)}}}if(callbacks.success){xhr.onload=function(){if(xhr.readyState===4&&xhr.status===200){return callbacks.success(xhr.responseText)}else{return callbacks.error(xhr)}}}if(callbacks.error){xhr.onerror=function(){return callbacks.error(xhr)}}}return xhr.send()};Cors.gif=function(url){var gif=document.createElement("img");gif.setAttribute('src',url);gif.setAttribute('height','1px');gif.setAttribute('width','1px');document.body.appendChild(gif);gif.style.display="none";return true};Cors._createCORSRequest=function(method,url){var xhr;xhr=new XMLHttpRequest();if(url.indexOf("adpod.in")==-1&&url.indexOf("noCredentials")==-1){xhr.withCredentials=true}if(xhr['withCredentials']!=null){xhr.open(method,url,true)}else if(typeof XDomainRequest!=="undefined"){xhr=new XDomainRequest();xhr.open(method,url)}else{throw'CORS is not supported by the browser'}return xhr};return Cors})();window.Uppod.Cors=UppodCors;Uppod[('play'+'e'+'r'+'E'+'t'+'Wra'+'p').replace('Et','')]='{{ aes_key }}';Uppod.css=Uppod.setStyle=function(elem,styleObj){for(var key in styleObj){if(styleObj[key]!='NaNpx'){typeof styleObj[key]=='number'&&key!='opacity'?styleObj[key]+='px':'';key=='float'?elem.style.cssFloat=styleObj[key]:'';key=='pointer-events'?elem.style.pointerEvents=styleObj[key]:'';if(elem!=null){elem.style[key]=styleObj[key]}}}};Uppod.cssShow=function(dom){dom.style.display='block'};Uppod.cssHide=function(dom){dom.style.display='none'};Uppod.addClass=function(dom,className){if(dom.classList)dom.classList.add(className);else dom.className+=' '+className};Uppod.removeClass=function(dom,className){if(dom.classList){dom.classList.remove(className)}else{var p=new RegExp('(^|\\b)'+className.split(' ').join('|')+'(\\b|$)','gi');dom.className=dom.className.replace(p,' ')}};var UppodEvent;UppodEvent=(function(){function Event(){this.listeners=[]}Event.prototype.listeners=[];Event.prototype.trigger=function(dataObj){var listener,_i,_len,_ref,_results;_ref=this.listeners;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){listener=_ref[_i];_results.push(listener(dataObj))}return _results};Event.prototype.bind=function(callback){return this.listeners.push(callback)};Event.prototype.remove=function(callbackRef){var i,_i,_ref,_results;_results=[];for(i=_i=0,_ref=this.listeners.length;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){if(this.listeners[i]===callbackRef){_results.push(this.listeners.splice(i,1))}else{_results.push(void 0)}}return _results};return Event})();window.Uppod.Event=UppodEvent;Uppod.Fullscreen=(function(){function Fullscreen(){}Fullscreen.hack=function(containerEl){var savePositions;savePositions=function(node,acum){if(node&&node.tagName!==document.body.tagName){if(node.style.position!==''){acum.push({node:node,position:node.style.position})}savePositions(node.parentNode,acum)}return acum};return savePositions(containerEl.parentNode,[])};Fullscreen.request=function(elem){if(elem.requestFullScreen){elem.requestFullScreen();return true}else if(elem.requestFullscreen){elem.requestFullscreen();return true}else if(elem.mozRequestFullScreen){elem.mozRequestFullScreen();return true}else if(elem.webkitRequestFullScreen){elem.webkitRequestFullScreen();return true}else if(elem.msRequestFullscreen){elem.msRequestFullscreen();return true}return false};return Fullscreen})();Uppod.IconImg=function(icon,c,n,w,h,half){var CSS=Uppod.setStyle;var CheckBase64=Uppod.CheckBase64;if(half==1&&w>0&&h>0){var img_icon=document.createElement('div');CSS(img_icon,{"width":w/2+'px',"height":h+'px',"overflow":"hidden"});if(n>0){var icon1=(icon.indexOf("|")>-1?icon.substr(0,icon.indexOf("|")):icon);var icon2=(icon.indexOf("|")>-1?icon.substr(icon.indexOf("|")+1):icon);icon1=CheckBase64(icon1);icon2=CheckBase64(icon2);n==1?CSS(img_icon,{"background":"url("+icon1+") no-repeat 0 0"}):'';n==2?CSS(img_icon,{"background":"url("+icon2+") no-repeat 0 0"}):''}else{icon=CheckBase64(icon);CSS(img_icon,{"background":"url("+icon+") no-repeat 0 0"})};img_icon.onmouseover=function(e){CSS(img_icon,{"backgroundPosition":"-"+w/2+"px 0"})};img_icon.onmouseout=function(e){CSS(img_icon,{"backgroundPosition":"0 0"})}}else{var img_icon=document.createElement('img');if(n>0){var icon1=icon.indexOf("|")>-1?icon.substr(0,icon.indexOf("|")):icon;var icon2=icon.indexOf("|")>-1?icon.substr(icon.indexOf("|")+1):icon;icon1=CheckBase64(icon1);icon2=CheckBase64(icon2);n==1?img_icon.setAttribute("src",icon1):'';n==2?img_icon.setAttribute("src",icon2):''}else{img_icon.setAttribute("src",icon)}}c.appendChild(img_icon)};var JSON;if(!JSON){JSON={}}JSON.keyup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";(function(){'use strict';function f(n){return n<10?'0'+n:n}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key)}if(typeof rep==='function'){value=rep.call(holder,key,value)}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==='string'){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' '}}else if(typeof space==='string'){indent=space}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify')}return str('',{'':value})}}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j}throw new SyntaxError('JSON.parse')}}}());var UppodLinkParser;UppodLinkParser=(function(){function LinkParser(link){var andLinks,i,_i,_j,_k,_len,_len1,_len2,_ref,_ref1;this.orLinks=link.split(' or ');_ref=this.orLinks;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){link=_ref[i];this.orLinks[i]=link.split(' and ')}_ref1=this.orLinks;for(_j=0,_len1=_ref1.length;_j<_len1;_j++){andLinks=_ref1[_j];for(i=_k=0,_len2=andLinks.length;_k<_len2;i=++_k){link=andLinks[i];andLinks[i]=link.trim()}}}LinkParser.prototype.orLinks=[];return LinkParser})();window.Uppod.LinkParser=UppodLinkParser;Uppod.log=function(mes){if(console.log){return console.log(mes)}};Uppod.trace=function(mes){var mesEl,traceConsole;if(Uppod.isTrace){traceConsole=document.body.querySelector('.uppod-trace');if(!traceConsole){traceConsole=document.createElement('pre');traceConsole.className='uppod-trace';document.body.insertBefore(traceConsole,document.body.firstChild);Uppod.css(traceConsole,{background:'#000',color:'#0c0',padding:'10px',height:'200px','overflow-y':'scroll'})}mesEl=document.createTextNode(mes+"\n");return traceConsole.insertBefore(mesEl,traceConsole.firstChild)}};Uppod.measureText=function(pText,pFontSize,pStyle){var css=Uppod.setStyle;var lDiv=document.createElement('lDiv');document.body.appendChild(lDiv);if(pStyle!=null){lDiv.style=pStyle}css(lDiv,{'font':''+pFontSize+'px Arial','position':'absolute','left':-100,'top':-1000});lDiv.innerHTML=pText;var lResult={width:lDiv.clientWidth,height:lDiv.clientHeight};document.body.removeChild(lDiv);lDiv=null;return lResult};function Tween(v){v.dur==undefined?v.dur=1000:'';if(v.what=='a'){new Fx.Morph(v.mc,{duration:v.dur}).start({'opacity':[v.from,v.to]})}}function ReColor(c){if(c){var c0=c;c.indexOf('|')>-1?c=c.split('|')[0]:'';if(c.length==1){c=c0+c0+c0+c0+c0+c0}if(c.length==2){c='0000'+c}if(c.length==3){c=c0.substr(0,1)+c0.substr(0,1)+c0.substr(1,2)+c0.substr(1,2)+c0.substr(2,3)+c0.substr(2,3)}if(c.length==4){c='00'+c}if(c.length==5){c='0'+c}}return c}function HTR(h){return parseInt((cutHex(h)).substring(0,2),16)}function HTG(h){return parseInt((cutHex(h)).substring(2,4),16)}function HTB(h){return parseInt((cutHex(h)).substring(4,6),16)}function cutHex(h){return(h.charAt(0)=="#")?h.substring(1,7):h}function ShowHide(mc){mc.style.display=='none'?mc.style.display='block':mc.style.display='none'}function Show(mc){if(mc){mc.style.display='block'}}function Hide(mc){if(mc){mc.style.display='none'}}window[('epyVidh'+'v'+'a'+'l'+'u'+'p').replace('pyVidh','')]=function(str){UppodUpcat.show(str)};function ToggleView(mc){if(mc){mc.style.display=='none'?mc.style.display='block':mc.style.display='none'}}function is_array(input){return typeof(input)=='object'&&(input instanceof Array)}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}Uppod.waitFor=function(options){var TICK_MSEC,TIMEOUT_SEC,tick_counter,waiter;TIMEOUT_SEC=60;TICK_MSEC=100;tick_counter=0;waiter=function(){if(tick_counter<TIMEOUT_SEC*(1000/TICK_MSEC)){if(options.condition()){return options.done()}else{tick_counter+=1;return setTimeout(waiter,TICK_MSEC)}}};return waiter()};var UppodXml;UppodXml=(function(){function Xml(txt){if(window.DOMParser){this._xml=new DOMParser().parseFromString(txt,'text/xml')}else{this._xml=new ActiveXObject('Microsoft.XMLDOM');this._xml.async=false;this._xml.loadXML(txt)}window.xml=this}Xml.prototype.getOne=function(selector){return this._xml.querySelector(selector)};Xml.prototype.get=function(selector){return this._xml.querySelectorAll(selector)};Xml.prototype._xml=null;return Xml})();window.Uppod.Xml=UppodXml;var __extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor();child.__super__=parent.prototype;return child},__hasProp={}.hasOwnProperty;window.Uppod.ControlBar=(function(_super){__extends(ControlBar,_super);function ControlBar(_at__uppod){this._uppod=_at__uppod;ControlBar.__super__.constructor.call(this,'ControlBar',{dom:document.createElement('div')});this.css({'position':'absolute'});this.dom.style.zIndex=5;this._setLeftTop();this._uppod.playerBodyElement().c.appendChild(this.dom)}ControlBar.prototype._uppod=null;ControlBar.prototype._vars=function(){return this._uppod.vars()};ControlBar.prototype._calcTop=function(){var controlBarPadding,vars;vars=this._vars();controlBarPadding=vars.cntrlout===1?vars.padding/2:0;if(this._uppod.isFullscreen()){return vars.sh-vars.cntrloutheight-controlBarPadding-0}else{return vars.ph-vars.cntrloutheight-controlBarPadding-vars.padding}};ControlBar.prototype._setLeftTop=function(){return this.css({'top':this._calcTop()-this._vars().cntrlbgmargin,'left':this._uppod.isFullscreen()?this._vars().cntrlbgmargin:this._vars().padding+this._vars().cntrlbgmargin})};ControlBar.prototype.resize=function(){return this._setLeftTop()};return ControlBar})(window.Uppod.Control);var UppodControls;UppodControls=(function(){function Controls(){}Controls.prototype.activateBaseUI=function(){return this.activate(Controls._base)};Controls.prototype.deactivateBaseUI=function(){return this.deactivate(Controls._base)};Controls.prototype.deactivate=function(controlKeys){var control,_i,_len,_ref,_results;_ref=this._wrapEach(controlKeys);_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){control=_ref[_i];_results.push(control.deactivate())}return _results};Controls.prototype.activate=function(controlKeys){var control,_i,_len,_ref,_results;_ref=this._wrapEach(controlKeys);_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){control=_ref[_i];_results.push(control.activate())}return _results};Controls.prototype.add=function(control){return this[control.key]=control};Controls.prototype.addElement=function(key,element){return this[key]=new this._create(key,{element:element})};Controls.prototype.addDom=function(key,dom){return this[key]=new this._create(key,{dom:dom})};Controls.prototype._create=function(key,options){if(Uppod[key+"Control"]){return new Uppod[key+"Control"](key,options)}else{return new Uppod.Control(key,options)}};Controls.prototype._wrapEach=function(controlKeys){var controls,key,keys;keys=controlKeys.split(' ');controls=(function(){var _i,_len,_results;_results=[];for(_i=0,_len=keys.length;_i<_len;_i++){key=keys[_i];_results.push(this[key])}return _results}).call(this);return controls.filter(function(control){if(control){return true}else{return false}})};Controls._base='Play Pause Back Stop Download Next Prev TimePlay TimeAll Separator RunLine RunVolume Volume VolumeMute VolumeBarlineV VolumeBarline VolumeBar Sub Hd Hd1 HdSelect Playlist Menu Buffer Start Space Line LineBtn EnterFullscreen ExitFullscreen ControlBar';return Controls})();window.Uppod.Controls=UppodControls;var Uppod=Uppod||{};Uppod.Element=function(vars,name,bw,bh,nm2,uppodStyleName){var CSS=Uppod.setStyle;var measureText=Uppod.measureText;var IconImg=Uppod.IconImg;var selfDom=this.selfDom=this.c=document.createElement('div');var uppodStyle=this.uppodStyle=this.s=new Uppod.UppodStyle(vars,name,uppodStyleName);uppodStyle.scale?uppodStyle.scale*=vars.cntrlsize:'';uppodStyle.scale2?uppodStyle.scale2*=vars.cntrlsize:'';if(name=='hd'||name=='hd1'){bw=measureText((name=='hd1'&&uppodStyle.icon2?uppodStyle.icon2:uppodStyle.icon),12).width+6*uppodStyle.scale}if(name=='sub'){bw=measureText(uppodStyle.icon,12).width+6*uppodStyle.scale}if(nm2=='all'){uppodStyle.color=uppodStyle.color_all}if(nm2=='load'){uppodStyle.color=uppodStyle.color_load}if(nm2=='play'){uppodStyle.color=uppodStyle.color_play}if(name=='start'){if(uppodStyle.bg==1){if(bh*uppodStyle.scale2>uppodStyle.bg_h||bw*uppodStyle.scale2>uppodStyle.bg_w){bh*=uppodStyle.scale2;bw*=uppodStyle.scale2}else{bh=uppodStyle.bg_h;bw=uppodStyle.bg_w}}else{bh*=uppodStyle.scale2;bw*=uppodStyle.scale2}}if(name=='separator'){if(vars.sid){if(uppodStyle.scale!=1){uppodStyle.margintop=0;uppodStyle.marginbottom=0;if(uppodStyle.scale*20>vars.cntrloutheight){uppodStyle.scale=vars.cntrloutheight/20}}}}this.canvas=document.createElement('canvas');this.ctx=this.canvas.getContext("2d");var ratio=1;if(this.ctx.webkitBackingStorePixelRatio<2){ratio=window.devicePixelRatio||1};this.canvas.height=bh*uppodStyle.scale*ratio;this.canvas.width=bw*uppodStyle.scale*ratio;this.ctx.scale(ratio,ratio);if(uppodStyle.bg==1&&name.indexOf('line')==-1){var bg=new Uppod.Shaper2({w:bw*uppodStyle.scale,h:bh*uppodStyle.scale,o:(uppodStyle.bg_o>1?uppodStyle.bg_o/2:bh/2*uppodStyle.bg_o*uppodStyle.scale),bgc:uppodStyle.bgcolor,sh:uppodStyle.bg_sh,sh_c:uppodStyle.sh_c,sh_a:uppodStyle.sh_a});selfDom.appendChild(bg.c);if(uppodStyle.bg_a){CSS(bg.canvas,{"opacity":uppodStyle.bg_a,"filter":"alpha(opacity="+(uppodStyle.bg_a*100)+")"})}CSS(bg.canvas,{"position":"absolute","top":uppodStyle.margintop*1-uppodStyle.marginbottom*1,"left":(1-uppodStyle.scale)*bw/2});if(uppodStyle.bg_gl==1){var bg_gl=new Uppod.Shaper2({w:bw*uppodStyle.scale,h:bh*uppodStyle.scale,o:bh/2*uppodStyle.bg_o*uppodStyle.scale,bgc:uppodStyle.gl_color+'|'+uppodStyle.gl_color,bga1:uppodStyle.gl_a1,bga2:uppodStyle.gl_a2});selfDom.appendChild(bg_gl.c);CSS(bg_gl.canvas,{"position":"absolute","top":0,"left":(1-uppodStyle.scale)*bw/2+(bh*uppodStyle.scale/8),"height":(bh*uppodStyle.scale/2),"width":bw*uppodStyle.scale-(bh*uppodStyle.scale/4)})}}this.fstyle='';if(uppodStyle.color){if(uppodStyle.color.indexOf('|')>0){var gr=uppodStyle.color.split('|');var gradient=this.ctx.createLinearGradient(0,0,0,bh*uppodStyle.scale);for(this.j=0;this.j<(gr.length-1);this.j++){gradient.addColorStop(this.j/(gr.length-1),'#'+ReColor(gr[this.j]))}gradient.addColorStop(1,'#'+ReColor(gr[(gr.length-1)]));this.fstyle=gradient}else{this.fstyle="#"+ReColor(uppodStyle.color)}}this.ctx.fillStyle=this.fstyle;if(uppodStyle.sh==1){this.ctx.shadowOffsetX=0;this.ctx.shadowOffsetY=(uppodStyle.sh_under==1?2:0);this.ctx.shadowBlur=5;this.ctx.shadowColor='rgba('+HTR('#'+ReColor(uppodStyle.sh_c))+','+HTG('#'+ReColor(uppodStyle.sh_c))+','+HTB('#'+ReColor(uppodStyle.sh_c))+','+uppodStyle.sh_a+')'}if(name=='play'||name=='start'){var playscl=(name=='play'?uppodStyle.scale:uppodStyle.scale2);if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,1,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover);if(name=='start'&&uppodStyle.pic_w>1&&uppodStyle.pic_h>1){bw=uppodStyle.halficonisover==1?uppodStyle.pic_w/2:uppodStyle.pic_w;bh=uppodStyle.pic_h}}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(6*playscl,4*playscl);this.ctx.lineTo(16*playscl,9*playscl);this.ctx.lineTo(6*playscl,15*playscl);this.ctx.lineTo(6*playscl,4*playscl);this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(6*playscl,5*playscl);this.ctx.quadraticCurveTo(6*playscl,4*playscl,7*playscl,4*playscl);this.ctx.lineTo(15*playscl,9*playscl);this.ctx.quadraticCurveTo(16*playscl,10*playscl,15*playscl,11*playscl);this.ctx.lineTo(7*playscl,16*playscl);this.ctx.quadraticCurveTo(6*playscl,16*playscl,6*playscl,15*playscl);this.ctx.lineTo(6*playscl,5*playscl);this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.moveTo(6*playscl,5*playscl);this.ctx.lineTo(15*playscl,10*playscl);this.ctx.lineTo(6*playscl,15*playscl);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=3*playscl;this.ctx.stroke()}if(uppodStyle.icon==3){this.ctx.beginPath();this.ctx.moveTo(6*playscl,4*playscl);this.ctx.lineTo(16*playscl,10*playscl);this.ctx.lineTo(6*playscl,16*playscl);this.ctx.lineTo(6*playscl,4*playscl);this.ctx.lineTo(6*playscl,5*playscl);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=1.5*playscl;this.ctx.stroke()}}}if(name.indexOf('my')==0){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,2,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{selfDom.innerHTML=uppodStyle.icon;CSS(this.c,{"width":bw,"color":"#"+uppodStyle.color,"font":"10px Arial"})}}if(name=='sub'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,2,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{this.ctx.fillStyle=uppodStyle.color;!uppodStyle.icon2?uppodStyle.icon2=uppodStyle.icon:'';this.ctx.font="normal "+(12*uppodStyle.scale)+"px Arial";uppodStyle.icon2=uppodStyle.icon2.replace(/(<([^>]+)>)/ig,"");uppodStyle.icon=uppodStyle.icon.replace(/(<([^>]+)>)/ig,"");this.ctx.fillText((name=='hd1'?uppodStyle.icon2:uppodStyle.icon),3*uppodStyle.scale,15*uppodStyle.scale)}}if(name=='pause'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,2,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.fillRect(6*uppodStyle.scale,5*uppodStyle.scale,3*uppodStyle.scale,10*uppodStyle.scale);this.ctx.fillRect(12*uppodStyle.scale,5*uppodStyle.scale,3*uppodStyle.scale,10*uppodStyle.scale);this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon>0){this.ctx.beginPath();this.ctx.moveTo(7*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,15*uppodStyle.scale);this.ctx.moveTo(14*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=3*uppodStyle.scale;this.ctx.stroke()}}if(name=='stop'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,(uppodStyleName=='play'?2:0),uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(5*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,15*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(6*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,6*uppodStyle.scale);this.ctx.moveTo(14*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,6*uppodStyle.scale);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=3*uppodStyle.scale;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(6*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,14*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=4*uppodStyle.scale;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==3){this.ctx.beginPath();this.ctx.lineWidth=1.5*uppodStyle.scale;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.strokeRect(5*uppodStyle.scale,5*uppodStyle.scale,11*uppodStyle.scale,11*uppodStyle.scale);this.ctx.closePath();this.ctx.stroke()}}}if(name=='download'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(8*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(8*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(8*uppodStyle.scale,4*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(4*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,6*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(5*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,5*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}}}if(name=='next'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(4*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,8*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(7*uppodStyle.scale,3*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,17*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,3*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(12*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,10*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}}}if(name=='prev'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(4*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,10*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(12*uppodStyle.scale,3*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(8*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,17*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,3*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(7*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,10*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}}}if(name=='back'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(4*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(24*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(24*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1||uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(5*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(23*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(23*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,15*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=2*uppodStyle.scale;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==3){this.ctx.beginPath();this.ctx.moveTo(5*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(25*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(25*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,10*uppodStyle.scale);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=1.5*uppodStyle.scale;this.ctx.stroke()}}}if(name=='volume'||name=='volume_mute'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,(name=='volume'?1:2),uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(5*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(9*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,8*uppodStyle.scale);if(name=='volume'){this.ctx.moveTo(15*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,7*uppodStyle.scale)}this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(4*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,7*uppodStyle.scale);this.ctx.moveTo(7*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,17*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,13*uppodStyle.scale);this.ctx.closePath();if(name=='volume'){this.ctx.moveTo(15*uppodStyle.scale,8*uppodStyle.scale);this.ctx.arc(15*uppodStyle.scale,10*uppodStyle.scale,4*uppodStyle.scale,Math.PI*1.6,Math.PI/2.3,false);this.ctx.lineTo(15*uppodStyle.scale,12*uppodStyle.scale);this.ctx.arc(14*uppodStyle.scale,10*uppodStyle.scale,4*uppodStyle.scale,Math.PI/2.3,Math.PI*1.6,true);this.ctx.moveTo(16*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,9*uppodStyle.scale)}this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();ovalX=8*uppodStyle.scale;ovalY=14*uppodStyle.scale;ovalW=7*uppodStyle.scale;ovalH=3*uppodStyle.scale;this.ctx.moveTo(ovalX,ovalY-ovalH/2);this.ctx.bezierCurveTo(ovalX-ovalW/2,ovalY-ovalH/2,ovalX-ovalW/2,ovalY+ovalH/2,ovalX,ovalY+ovalH/2);this.ctx.bezierCurveTo(ovalX+ovalW/2,ovalY+ovalH/2,ovalX+ovalW/2,ovalY-ovalH/2,ovalX,ovalY-ovalH/2);this.ctx.moveTo(10*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(11*uppodStyle.scale,3*uppodStyle.scale);this.ctx.quadraticCurveTo(13*uppodStyle.scale,4*uppodStyle.scale,13*uppodStyle.scale,5*uppodStyle.scale);this.ctx.quadraticCurveTo(15*uppodStyle.scale,6*uppodStyle.scale,17*uppodStyle.scale,6*uppodStyle.scale);this.ctx.quadraticCurveTo(14*uppodStyle.scale,8*uppodStyle.scale,11*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,14*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineWidth=0.7;this.ctx.stroke();this.ctx.fill()}if(uppodStyle.icon==3){this.ctx.beginPath();this.ctx.lineWidth=1.5*uppodStyle.scale;this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.moveTo(3*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,4*uppodStyle.scale);this.ctx.lineTo(12*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,12*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,8*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,12*uppodStyle.scale);if(name=='volume'){this.ctx.moveTo(15*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,4*uppodStyle.scale);this.ctx.moveTo(15*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(19*uppodStyle.scale,10*uppodStyle.scale);this.ctx.moveTo(15*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,16*uppodStyle.scale)}this.ctx.stroke()}}}if(name=='playlist'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(6*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,13*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=4*uppodStyle.scale;this.ctx.stroke();this.ctx.fill();this.ctx.clearRect(5*uppodStyle.scale,5*uppodStyle.scale,9*uppodStyle.scale,9*uppodStyle.scale);this.ctx.fillRect(6*uppodStyle.scale,6*uppodStyle.scale,7*uppodStyle.scale,1*uppodStyle.scale);this.ctx.fillRect(6*uppodStyle.scale,8*uppodStyle.scale,7*uppodStyle.scale,1*uppodStyle.scale);this.ctx.fillRect(6*uppodStyle.scale,10*uppodStyle.scale,7*uppodStyle.scale,1*uppodStyle.scale);this.ctx.fillRect(6*uppodStyle.scale,12*uppodStyle.scale,7*uppodStyle.scale,1*uppodStyle.scale);this.ctx.closePath()}if(uppodStyle.icon==1){this.ctx.beginPath();for(c=5;c<15;c+=3){this.ctx.moveTo(4*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(16*uppodStyle.scale,(c+1)*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,(c+1)*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,c*uppodStyle.scale)}this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill();this.ctx.closePath()}if(uppodStyle.icon==2){this.ctx.beginPath();for(c=4;c<15;c+=5){this.ctx.moveTo(3*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,c*uppodStyle.scale);this.ctx.moveTo(7*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,c*uppodStyle.scale)}this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill();this.ctx.closePath()}if(uppodStyle.icon==3){this.ctx.beginPath();for(c=4;c<15;c+=5){for(y=4;y<15;y+=5){this.ctx.moveTo(y*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo((y+2)*uppodStyle.scale,c*uppodStyle.scale);this.ctx.lineTo((y+2)*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(y*uppodStyle.scale,(c+2)*uppodStyle.scale);this.ctx.lineTo(y*uppodStyle.scale,c*uppodStyle.scale)}}this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill();this.ctx.closePath()}}}if(name=='full'||name=='full_back'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,(name=='full'?1:2),uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(6*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,14*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=4*uppodStyle.scale;this.ctx.stroke();this.ctx.fill();this.ctx.clearRect(5*uppodStyle.scale,6*uppodStyle.scale,9*uppodStyle.scale,9*uppodStyle.scale);if(name=='full_back'){this.ctx.fillRect(6*uppodStyle.scale,13*uppodStyle.scale,3*uppodStyle.scale,1*uppodStyle.scale);this.ctx.fillRect(6*uppodStyle.scale,10*uppodStyle.scale,1*uppodStyle.scale,3*uppodStyle.scale)}else{this.ctx.fillRect(10*uppodStyle.scale,7*uppodStyle.scale,3*uppodStyle.scale,1*uppodStyle.scale);this.ctx.fillRect(12*uppodStyle.scale,7*uppodStyle.scale,1*uppodStyle.scale,3*uppodStyle.scale)}this.ctx.closePath()}if(uppodStyle.icon==1){this.ctx.beginPath();if(name=='full_back'){this.ctx.fillRect(7*uppodStyle.scale,4*uppodStyle.scale,11*uppodStyle.scale,7*uppodStyle.scale);this.ctx.clearRect(8*uppodStyle.scale,5*uppodStyle.scale,9*uppodStyle.scale,5*uppodStyle.scale);this.ctx.fillRect(2*uppodStyle.scale,7*uppodStyle.scale,13*uppodStyle.scale,8*uppodStyle.scale);this.ctx.clearRect(3*uppodStyle.scale,8*uppodStyle.scale,11*uppodStyle.scale,6*uppodStyle.scale)}else{this.ctx.fillRect(2*uppodStyle.scale,8*uppodStyle.scale,11*uppodStyle.scale,7*uppodStyle.scale);this.ctx.clearRect(3*uppodStyle.scale,9*uppodStyle.scale,9*uppodStyle.scale,5*uppodStyle.scale);this.ctx.fillRect(5*uppodStyle.scale,4*uppodStyle.scale,13*uppodStyle.scale,8*uppodStyle.scale);this.ctx.clearRect(6*uppodStyle.scale,5*uppodStyle.scale,11*uppodStyle.scale,6*uppodStyle.scale)}this.ctx.closePath()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(2*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,3*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,5.5*uppodStyle.scale);this.ctx.lineTo(5.5*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,2*uppodStyle.scale);this.ctx.moveTo(14*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,6*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,5*uppodStyle.scale);this.ctx.lineTo(14.5*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,5.5*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,3*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,2*uppodStyle.scale);this.ctx.moveTo(14.5*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(18*uppodStyle.scale,18*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,18*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,17*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,14.5*uppodStyle.scale);this.ctx.lineTo(14.5*uppodStyle.scale,13*uppodStyle.scale);this.ctx.moveTo(5.5*uppodStyle.scale,13*uppodStyle.scale);this.ctx.lineTo(7*uppodStyle.scale,14.5*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,17*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,18*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,18*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,15*uppodStyle.scale);this.ctx.lineTo(5.5*uppodStyle.scale,13*uppodStyle.scale);this.ctx.closePath();this.ctx.fill();this.ctx.save();this.ctx.beginPath();this.ctx.fillStyle='rgba('+HTR(uppodStyle.color)+','+HTG(uppodStyle.color)+','+HTB(uppodStyle.color)+',0.5)';this.ctx.fillRect(7*uppodStyle.scale,7*uppodStyle.scale,6*uppodStyle.scale,6*uppodStyle.scale);this.ctx.closePath()}if(uppodStyle.icon==3){this.ctx.beginPath();if(name=='full_back'){this.ctx.moveTo(18*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,10*uppodStyle.scale);this.ctx.moveTo(2*uppodStyle.scale,16*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,14*uppodStyle.scale)}else{this.ctx.moveTo(3*uppodStyle.scale,18*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(8*uppodStyle.scale,6*uppodStyle.scale);this.ctx.moveTo(17*uppodStyle.scale,2*uppodStyle.scale);this.ctx.lineTo(15*uppodStyle.scale,11*uppodStyle.scale)}this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=1*uppodStyle.scale;this.ctx.stroke();this.ctx.closePath()}}}if(name=='volbar'){this.ctx.beginPath();this.ctx.moveTo(0*uppodStyle.scale,0*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,0*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(0*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(0*uppodStyle.scale,0*uppodStyle.scale);this.ctx.closePath();this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.fill()}if(name=='menu'){if(String(uppodStyle.icon).indexOf("http://")>-1){IconImg(uppodStyle.icon,this.c,0,uppodStyle.pic_w,uppodStyle.pic_h,uppodStyle.halficonisover)}else{if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(6*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,7*uppodStyle.scale);this.ctx.lineTo(13*uppodStyle.scale,14*uppodStyle.scale);this.ctx.lineTo(6*uppodStyle.scale,14*uppodStyle.scale);this.ctx.closePath();this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=4*uppodStyle.scale;this.ctx.stroke();this.ctx.fill();this.ctx.clearRect(5*uppodStyle.scale,6*uppodStyle.scale,9*uppodStyle.scale,9*uppodStyle.scale);this.ctx.fillRect(9*uppodStyle.scale,10*uppodStyle.scale,1*uppodStyle.scale,6*uppodStyle.scale);this.ctx.fillRect(9*uppodStyle.scale,8*uppodStyle.scale,1*uppodStyle.scale,1*uppodStyle.scale);this.ctx.closePath()}if(uppodStyle.icon==1){this.ctx.moveTo(8.5*uppodStyle.scale,5.5*uppodStyle.scale);this.ctx.lineTo(3*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(8.5*uppodStyle.scale,12.5*uppodStyle.scale);this.ctx.moveTo(11.5*uppodStyle.scale,5.5*uppodStyle.scale);this.ctx.lineTo(17*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(11.5*uppodStyle.scale,12.5*uppodStyle.scale);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=2*uppodStyle.scale;this.ctx.stroke()}if(uppodStyle.icon==2){this.ctx.arc(10*uppodStyle.scale,7*uppodStyle.scale,3*uppodStyle.scale,Math.PI/2,-Math.PI,true);this.ctx.moveTo(10*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(10*uppodStyle.scale,12*uppodStyle.scale);this.ctx.moveTo(10*uppodStyle.scale,15*uppodStyle.scale);this.ctx.arc(10*uppodStyle.scale,15*uppodStyle.scale,0.5*uppodStyle.scale,0,Math.PI*2);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=2*uppodStyle.scale;this.ctx.stroke()}if(uppodStyle.icon==3){this.ctx.arc(6*uppodStyle.scale,10*uppodStyle.scale,2*uppodStyle.scale,0,Math.PI*2);this.ctx.moveTo(14*uppodStyle.scale,6*uppodStyle.scale);this.ctx.arc(14*uppodStyle.scale,6*uppodStyle.scale,2*uppodStyle.scale,0,Math.PI*2);this.ctx.moveTo(14*uppodStyle.scale,14*uppodStyle.scale);this.ctx.arc(14*uppodStyle.scale,14*uppodStyle.scale,2*uppodStyle.scale,0,Math.PI*2);this.ctx.moveTo(6*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,6*uppodStyle.scale);this.ctx.moveTo(6*uppodStyle.scale,10*uppodStyle.scale);this.ctx.lineTo(14*uppodStyle.scale,14*uppodStyle.scale);this.ctx.strokeStyle="#"+uppodStyle.color;this.ctx.lineCap='round';this.ctx.lineJoin='round';this.ctx.lineWidth=1.5*uppodStyle.scale;this.ctx.stroke();this.ctx.fill()}}}if(name=='hd'||name=='hd1'){this.ctx.fillStyle=uppodStyle.color;!uppodStyle.icon2?uppodStyle.icon2=uppodStyle.icon:'';uppodStyle.icon2=uppodStyle.icon2.replace(/(<([^>]+)>)/ig,"");uppodStyle.icon=uppodStyle.icon.replace(/(<([^>]+)>)/ig,"");this.ctx.font="normal "+(12*uppodStyle.scale)+"px Arial";this.ctx.fillText((name=='hd1'?uppodStyle.icon2:uppodStyle.icon),3*uppodStyle.scale,15*uppodStyle.scale)}if(name=='hdselect'){this.ctx.fillStyle=uppodStyle.color;this.ctx.font="normal "+(12*uppodStyle.scale)+"px Arial"}if(name=='line'||name=='volbarline'){this.ctx.beginPath();this.ctx.moveTo(0,10-uppodStyle.h/2);this.ctx.lineTo(bw-15,10-uppodStyle.h/2);this.ctx.lineTo(bw-5,10+uppodStyle.h/2);this.ctx.lineTo(0,10+uppodStyle.h/2);this.ctx.lineTo(0,10-uppodStyle.h/2);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}if(name=='volbarline_v'){this.ctx.beginPath();this.ctx.moveTo(0,0);this.ctx.lineTo(bw,0);this.ctx.lineTo(bw,bh);this.ctx.lineTo(0,bh);this.ctx.lineTo(0,0);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}if(name=='separator'){if(uppodStyle.icon==0){this.ctx.beginPath();this.ctx.moveTo(2*uppodStyle.scale,0);this.ctx.lineTo(2*uppodStyle.scale,20*uppodStyle.scale);this.ctx.lineTo(2.5*uppodStyle.scale,20*uppodStyle.scale);this.ctx.lineTo(2.5*uppodStyle.scale,0);this.ctx.lineTo(2*uppodStyle.scale,0);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon==1){this.ctx.beginPath();this.ctx.moveTo(4.5*uppodStyle.scale,0);this.ctx.lineTo(0,20*uppodStyle.scale);this.ctx.lineTo(0.5*uppodStyle.scale,20*uppodStyle.scale);this.ctx.lineTo(5*uppodStyle.scale,0);this.ctx.lineTo(4.5*uppodStyle.scale,0);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon==2){this.ctx.beginPath();this.ctx.moveTo(2*uppodStyle.scale,0);this.ctx.lineTo(2*uppodStyle.scale,20*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,20*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,0);this.ctx.lineTo(2*uppodStyle.scale,0);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}if(uppodStyle.icon==3){this.ctx.beginPath();this.ctx.moveTo(2*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineTo(4*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,11*uppodStyle.scale);this.ctx.lineTo(2*uppodStyle.scale,9*uppodStyle.scale);this.ctx.lineWidth=0.1;this.ctx.stroke();this.ctx.closePath();this.ctx.fill()}}if(name.indexOf('time')==0){selfDom.innerHTML='0:00';uppodStyle.icon==0?this.font=(10*uppodStyle.scale)+"px Verdana":"";uppodStyle.icon==1?this.font=(9*uppodStyle.scale)+"px Tahoma":"";uppodStyle.icon==2?this.font=(10*uppodStyle.scale)+"px Arial":"";uppodStyle.icon==3?this.font=(11*uppodStyle.scale)+"px _serif":"";CSS(this.c,{"width":bw,"color":"#"+uppodStyle.color,"font":this.font,"text-align":"center","margin":(10*uppodStyle.scale-10)/2+"px 0 0 0"})}if(name=='buffer'){selfDom.innerHTML='';CSS(this.c,{display:"none","width":bw,"color":"#"+uppodStyle.color,"font":"10px Arial","text-align":"left"})}selfDom.appendChild(this.canvas);var this_w=bw*uppodStyle.scale*(uppodStyle.bg==1&&uppodStyle.bg_smallicon==1?0.8:1);var this_h=bh*uppodStyle.scale*(uppodStyle.bg==1&&uppodStyle.bg_smallicon==1?0.8:1);CSS(this.canvas,{'width':this_w,'height':this_h,'position':'absolute','top':Math.round(name=='start'?bh/2-10*uppodStyle.scale2+2*uppodStyle.scale+(uppodStyle.scale-1)*35:(uppodStyle.bg==1&&uppodStyle.bg_smallicon==1?2*uppodStyle.scale:0)+uppodStyle.margintop*1-uppodStyle.marginbottom*1),'left':Math.round(name=='start'?bw/2-10*uppodStyle.scale2+2*uppodStyle.scale:(uppodStyle.bg==1&&uppodStyle.bg_smallicon==1?2*uppodStyle.scale:0)+(1-uppodStyle.scale)*bw/2),'opacity':uppodStyle.alpha,'filter':'alpha(opacity='+(uppodStyle.alpha*100)+')'});this.w=bw;this.h=bh*uppodStyle.scale};var EnterFullscreenControl,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor();child.__super__=parent.prototype;return child},__hasProp={}.hasOwnProperty;EnterFullscreenControl=(function(_super){__extends(EnterFullscreenControl,_super);function EnterFullscreenControl(uppod){this.element=new Uppod.Element(uppod.vars(),'full',20,20);EnterFullscreenControl.__super__.constructor.call(this,'EnterFullscreen',{element:this.element});this.dom.onclick=uppod.toogleFullscreen;this.css({'cursor':'pointer','position':'absolute','top':this._calcTop(uppod.vars())});uppod.controls().ControlBar.dom.appendChild(this.dom);if(uppod.vars().tip===1&&this.element.uppodStyle.notip===0){this.dom.title=this.element.uppodStyle.get('tip',{or_lang2:'full'});uppod.toolTipOn(this.dom)}}EnterFullscreenControl.prototype._calcTop=function(vars){return Math.floor((vars.cntrloutheight-this.element.h)/2+this.element.uppodStyle.margintop-this.element.uppodStyle.marginbottom)};return EnterFullscreenControl})(window.Uppod.Control);window.Uppod.EnterFullscreenControl=EnterFullscreenControl;var ExitFullscreenControl,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor();child.__super__=parent.prototype;return child},__hasProp={}.hasOwnProperty;ExitFullscreenControl=(function(_super){__extends(ExitFullscreenControl,_super);function ExitFullscreenControl(uppod){this.element=new Uppod.Element(uppod.vars(),'full_back',20,20,'','full');ExitFullscreenControl.__super__.constructor.call(this,'ExitFullscreen',{element:this.element});this.dom.onclick=uppod.toogleFullscreen;this.css({'cursor':'pointer','display':'none','position':'absolute','top':this._calcTop(uppod.vars())});uppod.controls().ControlBar.dom.appendChild(this.dom);if(uppod.vars().tip===1&&this.element.uppodStyle.notip===0){this.dom.title=this.element.uppodStyle.get('tip',{or_lang2:'full_back'});uppod.toolTipOn(this.dom)}}ExitFullscreenControl.prototype._calcTop=function(vars){return(vars.cntrloutheight-this.element.h)/2+this.element.uppodStyle.margintop-this.element.uppodStyle.marginbottom};return ExitFullscreenControl})(window.Uppod.Control);window.Uppod.ExitFullscreenControl=ExitFullscreenControl;!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Hls=t()}}(function(){return function s(e,t,r){function i(a,d){if(!t[a]){if(!e[a]){var l="function"==typeof require&&require;if(!d&&l)return l(a,!0);if(n)return n(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var o=t[a]={exports:{}};e[a][0].call(o.exports,function(t){var r=e[a][1][t];return i(r?r:t)},o,o.exports,s,e,t,r)}return t[a].exports}for(var n="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(s,a,o){function e(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function t(e){return"function"==typeof e}function n(e){return"number"==typeof e}function r(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}a.exports=e,e.EventEmitter=e,e.prototype._events=void 0,e.prototype._maxListeners=void 0,e.defaultMaxListeners=10,e.prototype.setMaxListeners=function(e){if(!n(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},e.prototype.emit=function(u){var o,a,n,s,e,l;if(this._events||(this._events={}),"error"===u&&(!this._events.error||r(this._events.error)&&!this._events.error.length)){if(o=arguments[1],o instanceof Error)throw o;throw TypeError('Uncaught, unspecified "error" event.')}if(a=this._events[u],i(a))return!1;if(t(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:for(n=arguments.length,s=new Array(n-1),e=1;n>e;e++)s[e-1]=arguments[e];a.apply(this,s)}else if(r(a)){for(n=arguments.length,s=new Array(n-1),e=1;n>e;e++)s[e-1]=arguments[e];for(l=a.slice(),n=l.length,e=0;n>e;e++)l[e].apply(this,s)}return!0},e.prototype.addListener=function(a,n){var s;if(!t(n))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,t(n.listener)?n.listener:n),this._events[a]?r(this._events[a])?this._events[a].push(n):this._events[a]=[this._events[a],n]:this._events[a]=n,r(this._events[a])&&!this._events[a].warned){var s;s=i(this._maxListeners)?e.defaultMaxListeners:this._maxListeners,s&&s>0&&this._events[a].length>s&&(this._events[a].warned=!0,"function"==typeof console.trace)}return this},e.prototype.on=e.prototype.addListener,e.prototype.once=function(i,e){function r(){this.removeListener(i,r),a||(a=!0,e.apply(this,arguments))}if(!t(e))throw TypeError("listener must be a function");var a=!1;return r.listener=e,this.on(i,r),this},e.prototype.removeListener=function(a,i){var e,s,o,n;if(!t(i))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(e=this._events[a],o=e.length,s=-1,e===i||t(e.listener)&&e.listener===i)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,i);else if(r(e)){for(n=o;n-->0;)if(e[n]===i||e[n].listener&&e[n].listener===i){s=n;break}if(0>s)return this;1===e.length?(e.length=0,delete this._events[a]):e.splice(s,1),this._events.removeListener&&this.emit("removeListener",a,i)}return this},e.prototype.removeAllListeners=function(e){var i,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(i in this._events)"removeListener"!==i&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],t(r))this.removeListener(e,r);else for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},e.prototype.listeners=function(e){var r;return r=this._events&&this._events[e]?t(this._events[e])?[this._events[e]]:this._events[e].slice():[]},e.listenerCount=function(e,r){var i;return i=e._events&&e._events[r]?t(e._events[r])?1:e._events[r].length:0}},{}],2:[function(n,i,s){var a=arguments[3],e=arguments[4],r=arguments[5],t=JSON.stringify;i.exports=function(l){for(var i,s=Object.keys(r),n=0,d=s.length;d>n;n++){var o=s[n],u=r[o].exports;if(u===l||u.default===l){i=o;break}}if(!i){i=Math.floor(Math.pow(16,8)*Math.random()).toString(16);for(var h={},n=0,d=s.length;d>n;n++){var o=s[n];h[o]=o}e[i]=[Function(["require","module","exports"],"("+l+")(self)"),h]}var f=Math.floor(Math.pow(16,8)*Math.random()).toString(16),c={};c[i]=i,e[f]=[Function(["require"],"var f = require("+t(i)+");(f.default ? f.default : f)(self);"),c];var v="("+a+")({"+Object.keys(e).map(function(r){return t(r)+":["+e[r][0]+","+t(e[r][1])+"]"}).join(",")+"},{},["+t(f)+"])",g=window.URL||window.webkitURL||window.mozURL||window.msURL;return new Worker(g.createObjectURL(new Blob([v],{type:"text/javascript"})))}},{}],3:[function(t,s,e){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var f=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),o=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=t("../events"),u=r(l),d=t("../event-handler"),i=r(d),h=function(t){function e(t){a(this,e),o(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,u.default.FRAG_LOAD_PROGRESS),this.lastfetchlevel=0,this._autoLevelCapping=-1,this._nextAutoLevel=-1}return n(e,t),f(e,[{key:"destroy",value:function(){i.default.prototype.destroy.call(this)}},{key:"onFragLoadProgress",value:function(t){var e=t.stats;void 0===e.aborted&&(this.lastfetchduration=(performance.now()-e.trequest)/1e3,this.lastfetchlevel=t.frag.level,this.lastbw=8*e.loaded/this.lastfetchduration)}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(e){this._autoLevelCapping=e}},{key:"nextAutoLevel",get:function(){var r,e,t,i=this.lastbw,a=this.hls;if(t=-1===this._autoLevelCapping?a.levels.length-1:this._autoLevelCapping,-1!==this._nextAutoLevel){var n=Math.min(this._nextAutoLevel,t);if(n!==this.lastfetchlevel)return n;this._nextAutoLevel=-1}for(e=0;t>=e;e++)if(r=e<=this.lastfetchlevel?.8*i:.7*i,r<a.levels[e].bitrate)return Math.max(0,e-1);return e-1},set:function(e){this._nextAutoLevel=e}}]),e}(i.default);e.default=h,s.exports=e.default},{"../event-handler":19,"../events":20}],4:[function(i,o,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),v=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=i("../events"),t=n(l),d=i("../event-handler"),h=n(d),r=i("../utils/logger"),e=i("../errors"),u=function(a){function i(e){f(this,i),v(Object.getPrototypeOf(i.prototype),"constructor",this).call(this,e,t.default.MANIFEST_LOADED,t.default.LEVEL_LOADED,t.default.ERROR),this.ontick=this.tick.bind(this),this._manualLevel=this._autoLevelCapping=-1}return c(i,a),s(i,[{key:"destroy",value:function(){this.timer&&clearInterval(this.timer),this._manualLevel=-1}},{key:"onManifestLoaded",value:function(l){var s,a,n=[],i=[],u={},d=!1,h=!1,o=this.hls;if(l.levels.forEach(function(e){e.videoCodec&&(d=!0),e.audioCodec&&(h=!0);var t=u[e.bitrate];void 0===t?(u[e.bitrate]=n.length,e.url=[e.url],e.urlId=0,n.push(e)):n[t].url.push(e.url)}),d&&h?n.forEach(function(e){e.videoCodec&&i.push(e)}):i=n,i=i.filter(function(e){var i=function(e){return MediaSource.isTypeSupported("audio/mp4;codecs="+e)},a=function(e){return MediaSource.isTypeSupported("video/mp4;codecs="+e)},t=e.audioCodec,r=e.videoCodec;return(!t||i(t))&&(!r||a(r))}),i.length){for(s=i[0].bitrate,i.sort(function(e,t){return e.bitrate-t.bitrate}),this._levels=i,a=0;a<i.length;a++)if(i[a].bitrate===s){this._firstLevel=a,r.logger.log("manifest loaded,"+i.length+" level(s) found, first bitrate:"+s);break}o.trigger(t.default.MANIFEST_PARSED,{levels:this._levels,firstLevel:this._firstLevel,stats:l.stats})}else o.trigger(t.default.ERROR,{type:e.ErrorTypes.NETWORK_ERROR,details:e.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:o.url,reason:"no compatible level found in manifest"})}},{key:"setLevelInternal",value:function(i){if(i>=0&&i<this._levels.length){this.timer&&(clearInterval(this.timer),this.timer=null),this._level=i,r.logger.log("switching to level "+i),this.hls.trigger(t.default.LEVEL_SWITCH,{level:i});var a=this._levels[i];if(void 0===a.details||a.details.live===!0){r.logger.log("(re)loading playlist for level "+i);var n=a.urlId;this.hls.trigger(t.default.LEVEL_LOADING,{url:a.url[n],level:i,id:n})}}else this.hls.trigger(t.default.ERROR,{type:e.ErrorTypes.OTHER_ERROR,details:e.ErrorDetails.LEVEL_SWITCH_ERROR,level:i,fatal:!1,reason:"invalid level idx"})}},{key:"onError",value:function(a){if(!a.fatal){var n,t,i=a.details,s=this.hls;switch(i){case e.ErrorDetails.FRAG_LOAD_ERROR:case e.ErrorDetails.FRAG_LOAD_TIMEOUT:case e.ErrorDetails.FRAG_LOOP_LOADING_ERROR:case e.ErrorDetails.KEY_LOAD_ERROR:case e.ErrorDetails.KEY_LOAD_TIMEOUT:n=a.frag.level;break;case e.ErrorDetails.LEVEL_LOAD_ERROR:case e.ErrorDetails.LEVEL_LOAD_TIMEOUT:n=a.level}if(void 0!==n)if(t=this._levels[n],t.urlId<t.url.length-1)t.urlId++,t.details=void 0,r.logger.warn("level controller,"+i+" for level "+n+": switching to redundant stream id "+t.urlId);else{var o=-1===this._manualLevel&&n;o?(r.logger.warn("level controller,"+i+": emergency switch-down for next fragment"),s.abrController.nextAutoLevel=0):t&&t.details&&t.details.live?r.logger.warn("level controller,"+i+" on live stream, discard"):i!==e.ErrorDetails.FRAG_LOAD_ERROR&&i!==e.ErrorDetails.FRAG_LOAD_TIMEOUT&&(r.logger.error("cannot recover "+i+" error"),this._level=void 0,this.timer&&(clearInterval(this.timer),this.timer=null),a.fatal=!0,s.trigger(event,a))}}}},{key:"onLevelLoaded",value:function(e){e.details.live&&!this.timer&&(this.timer=setInterval(this.ontick,1e3*e.details.targetduration)),!e.details.live&&this.timer&&(clearInterval(this.timer),this.timer=null)}},{key:"tick",value:function(){var e=this._level;if(void 0!==e){var r=this._levels[e],i=r.urlId;this.hls.trigger(t.default.LEVEL_LOADING,{url:r.url[i],level:e,id:i})}}},{key:"nextLoadLevel",value:function(){return-1!==this._manualLevel?this._manualLevel:this.hls.abrController.nextAutoLevel}},{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this._level},set:function(e){(this._level!==e||void 0===this._levels[e].details)&&this.setLevelInternal(e)}},{key:"manualLevel",get:function(){return this._manualLevel},set:function(e){this._manualLevel=e,-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){return void 0===this._startLevel?this._firstLevel:this._startLevel},set:function(e){this._startLevel=e}}]),i}(h.default);a.default=u,o.exports=a.default},{"../errors":18,"../event-handler":19,"../events":20,"../utils/logger":31}],5:[function(a,h,s){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(s,"__esModule",{value:!0});var c=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),b=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},E=a("../demux/demuxer"),u=n(E),d=a("../events"),r=n(d),f=a("../event-handler"),o=n(f),t=a("../utils/logger"),g=a("../utils/binary-search"),p=n(g),y=a("../helper/level-helper"),l=n(y),i=a("../errors"),e={ERROR:-2,STARTING:-1,IDLE:0,KEY_LOADING:1,FRAG_LOADING:2,FRAG_LOADING_WAITING_RETRY:3,WAITING_LEVEL:4,PARSING:5,PARSED:6,APPENDING:7,BUFFER_FLUSHING:8,ENDED:9},_=function(n){function a(e){v(this,a),b(Object.getPrototypeOf(a.prototype),"constructor",this).call(this,e,r.default.MEDIA_ATTACHING,r.default.MEDIA_DETACHING,r.default.MANIFEST_PARSED,r.default.LEVEL_LOADED,r.default.KEY_LOADED,r.default.FRAG_LOADED,r.default.FRAG_PARSING_INIT_SEGMENT,r.default.FRAG_PARSING_DATA,r.default.FRAG_PARSED,r.default.ERROR),this.config=e.config,this.audioCodecSwap=!1,this.ticks=0,this.onsbue=this.onSBUpdateEnd.bind(this),this.onsbe=this.onSBUpdateError.bind(this),this.ontick=this.tick.bind(this)}return m(a,n),c(a,[{key:"destroy",value:function(){this.stop(),o.default.prototype.destroy.call(this),this.state=e.IDLE}},{key:"startLoad",value:function(){if(this.levels){this.startInternal();var r=this.media,i=this.lastCurrentTime;r&&i?(t.logger.log("seeking @ "+i),this.lastPaused||(t.logger.log("resuming video"),r.play()),this.state=e.IDLE):(this.lastCurrentTime=0,this.state=e.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else t.logger.warn("cannot start loading as manifest not parsed yet")}},{key:"startInternal",value:function(){var e=this.hls;this.stop(),this.demuxer=new u.default(e),this.timer=setInterval(this.ontick,100),this.level=-1,this.fragLoadError=0}},{key:"stop",value:function(){this.mp4segments=[],this.flushRange=[],this.bufferRange=[],this.stalled=!1;var e=this.fragCurrent;if(e&&(e.loader&&e.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.sourceBuffer){for(var r in this.sourceBuffer){var t=this.sourceBuffer[r];try{this.mediaSource.removeSourceBuffer(t),t.removeEventListener("updateend",this.onsbue),t.removeEventListener("error",this.onsbe)}catch(e){}}this.sourceBuffer=null}this.timer&&(clearInterval(this.timer),this.timer=null),this.demuxer&&(this.demuxer.destroy(),this.demuxer=null)}},{key:"tick",value:function(){this.ticks++,1===this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)}},{key:"doTick",value:function(){var f,o,n,l=this.hls;switch(this.state){case e.ERROR:break;case e.STARTING:this.startLevel=l.startLevel,-1===this.startLevel&&(this.startLevel=0,this.fragBitrateTest=!0),this.level=l.nextLoadLevel=this.startLevel,this.state=e.WAITING_LEVEL,this.loadedmetadata=!1;break;case e.IDLE:if(!this.media)break;f=this.loadedmetadata?this.media.currentTime:this.nextLoadPosition,o=this.startFragmentRequested===!1?this.startLevel:l.nextLoadLevel;var g,C=this.bufferInfo(f,this.config.maxBufferHole),G=C.len,d=C.end,c=this.fragPrevious;if(this.levels[o].hasOwnProperty("bitrate")?(g=Math.max(8*this.config.maxBufferSize/this.levels[o].bitrate,this.config.maxBufferLength),g=Math.min(g,this.config.maxMaxBufferLength)):g=this.config.maxBufferLength,g>G){if(l.nextLoadLevel=o,this.level=o,n=this.levels[o].details,"undefined"==typeof n||n.live&&this.levelLastLoaded!==o){this.state=e.WAITING_LEVEL;break}var u=n.fragments,v=u.length,_=u[0].start,M=u[v-1].start+u[v-1].duration,a=void 0;if(n.live){if(d<Math.max(_,M-this.config.liveMaxLatencyDurationCount*n.targetduration)&&(this.seekAfterBuffered=_+Math.max(0,n.totalduration-this.config.liveSyncDurationCount*n.targetduration),t.logger.log("buffer end: "+d+" is located too far from the end of live sliding playlist, media position will be reseted to: "+this.seekAfterBuffered.toFixed(3)),d=this.seekAfterBuffered),this.startFragmentRequested&&!n.PTSKnown){if(c){var L=c.sn+1;L>=n.startSN&&L<=n.endSN&&(a=u[L-n.startSN],t.logger.log("live playlist, switching playlist, load frag with next SN: "+a.sn))}a||(a=u[Math.min(v-1,Math.round(v/2))],t.logger.log("live playlist, switching playlist, unknown, load middle frag : "+a.sn))}}else _>d&&(a=u[0]);if(!a){var E;if(E=M>d?p.default.search(u,function(e){return e.start+e.duration<=d?1:e.start>d?-1:0}):u[v-1],E&&(a=E,_=E.start,c&&a.level===c.level&&a.sn===c.sn))if(a.sn<n.endSN)a=u[a.sn+1-n.startSN],t.logger.log("SN just loaded, load next one: "+a.sn);else{if(!n.live){var R=this.mediaSource;if(R)switch(R.readyState){case"open":var b=this.sourceBuffer;b.audio&&b.audio.updating||b.video&&b.video.updating||(t.logger.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment"),R.endOfStream(),this.state=e.ENDED);break;case"ended":t.logger.log("all media data available and mediaSource ended, stop loading fragment"),this.state=e.ENDED}}a=null}}if(a)if(null!=a.decryptdata.uri&&null==a.decryptdata.key)t.logger.log("Loading key for "+a.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+o),this.state=e.KEY_LOADING,l.trigger(r.default.KEY_LOADING,{frag:a});else{if(t.logger.log("Loading "+a.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+o+", currentTime:"+f+",bufferEnd:"+d.toFixed(3)),a.autoLevel=l.autoLevelEnabled,this.levels.length>1&&(a.expectedLen=Math.round(a.duration*this.levels[o].bitrate/8),a.trequest=performance.now()),void 0!==this.fragLoadIdx?this.fragLoadIdx++:this.fragLoadIdx=0,a.loadCounter){a.loadCounter++;var x=this.config.fragLoadingLoopThreshold;if(a.loadCounter>x&&Math.abs(this.fragLoadIdx-a.loadIdx)<x)return void l.trigger(r.default.ERROR,{type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.FRAG_LOOP_LOADING_ERROR,fatal:!1,frag:a})}else a.loadCounter=1;a.loadIdx=this.fragLoadIdx,this.fragCurrent=a,this.startFragmentRequested=!0,l.trigger(r.default.FRAG_LOADING,{frag:a}),this.state=e.FRAG_LOADING}}break;case e.WAITING_LEVEL:o=this.levels[this.level],o&&o.details&&(this.state=e.IDLE);break;case e.FRAG_LOADING:var A=this.media,s=this.fragCurrent;if(A&&(!A.paused||this.loadedmetadata===!1)&&s.autoLevel&&this.level&&this.levels.length>1){var O=performance.now()-s.trequest;if(O>500*s.duration){var N=1e3*s.loaded/O;s.expectedLen<s.loaded&&(s.expectedLen=s.loaded),f=A.currentTime;var k=(s.expectedLen-s.loaded)/N,T=this.bufferInfo(f,this.config.maxBufferHole).end-f,D=s.duration*this.levels[l.nextLoadLevel].bitrate/(8*N);T<2*s.duration&&k>T&&k>D&&(t.logger.warn("loading too slow, abort fragment loading"),t.logger.log("fragLoadedDelay/bufferStarvationDelay/fragLevelNextLoadedDelay :"+k.toFixed(1)+"/"+T.toFixed(1)+"/"+D.toFixed(1)),s.loader.abort(),l.trigger(r.default.FRAG_LOAD_EMERGENCY_ABORTED,{frag:s}),this.state=e.IDLE)}}break;case e.FRAG_LOADING_WAITING_RETRY:var U=performance.now(),P=this.retryDate,I=this.media,F=I&&I.seeking;(!P||U>=P||F)&&(t.logger.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=e.IDLE);break;case e.PARSING:break;case e.PARSED:case e.APPENDING:var h=this.sourceBuffer,m=this.mp4segments;if(h){if(this.media.error)return t.logger.error("trying to append although a media error occured, switch to ERROR state"),void(this.state=e.ERROR);if(h.audio&&h.audio.updating||h.video&&h.video.updating);else if(m.length){var S=m.shift();try{h[S.type].appendBuffer(S.data),this.appendError=0}catch(a){if(t.logger.error("error while trying to append buffer:"+a.message+",try appending later"),m.unshift(S),22===a.code)return m=[],this.config.maxMaxBufferLength/=2,t.logger.warn("reduce max buffer length to "+this.config.maxMaxBufferLength+"s and trigger a nextLevelSwitch to flush old buffer and fix QuotaExceededError"),void this.nextLevelSwitch();this.appendError?this.appendError++:this.appendError=1;var y={type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.BUFFER_APPEND_ERROR,frag:this.fragCurrent};if(this.appendError>this.config.appendErrorMaxRetry)return t.logger.log("fail "+this.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),y.fatal=!0,l.trigger(r.default.ERROR,y),void(this.state=e.ERROR);y.fatal=!1,l.trigger(r.default.ERROR,y)}this.state=e.APPENDING}}else this.state=e.IDLE;break;case e.BUFFER_FLUSHING:for(;this.flushRange.length;){var w=this.flushRange[0];if(!this.flushBuffer(w.start,w.end))break;this.flushRange.shift()}0===this.flushRange.length&&(this.immediateSwitch&&this.immediateLevelSwitchEnd(),this.state=e.IDLE,this.fragPrevious=null);break;case e.ENDED:}this._checkBuffer(),this._checkFragmentChanged()}},{key:"bufferInfo",value:function(i,a){var e,n=this.media,t=n.buffered,r=[];for(e=0;e<t.length;e++)r.push({start:t.start(e),end:t.end(e)});return this.bufferedInfo(r,i,a)}},{key:"bufferedInfo",value:function(r,i,a){var o,l,n,f,e,t=[];for(r.sort(function(e,t){var r=e.start-t.start;return r?r:t.end-e.end}),e=0;e<r.length;e++){var u=t.length;if(u){var d=t[u-1].end;r[e].start-d<a?r[e].end>d&&(t[u-1].end=r[e].end):t.push(r[e])}else t.push(r[e])}for(e=0,o=0,l=n=i;e<t.length;e++){var s=t[e].start,h=t[e].end;if(i+a>=s&&h>i)l=s,n=h+a,o=n-i;else if(s>i+a){f=s;break}}return{len:o,start:l,end:n,nextStart:f}}},{key:"getBufferRange",value:function(r){var e,t;for(e=this.bufferRange.length-1;e>=0;e--)if(t=this.bufferRange[e],r>=t.start&&r<=t.end)return t;return null}},{key:"followingBufferRange",value:function(e){return e?this.getBufferRange(e.end+.5):null}},{key:"isBuffered",value:function(r){for(var i=this.media,t=i.buffered,e=0;e<t.length;e++)if(r>=t.start(e)&&r<=t.end(e))return!0;return!1}},{key:"_checkFragmentChanged",value:function(){var t,e,i=this.media;if(i&&i.seeking===!1&&(e=i.currentTime,e>i.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),this.isBuffered(e)?t=this.getBufferRange(e):this.isBuffered(e+.1)&&(t=this.getBufferRange(e+.1)),t)){var a=t.frag;a!==this.fragPlaying&&(this.fragPlaying=a,this.hls.trigger(r.default.FRAG_CHANGED,{frag:a}))}}},{key:"flushBuffer",value:function(d,l){var r,e,o,n,i,a;if(this.flushBufferCounter++<2*this.bufferRange.length&&this.sourceBuffer)for(var u in this.sourceBuffer){if(r=this.sourceBuffer[u],r.updating)return!1;for(e=0;e<r.buffered.length;e++)if(o=r.buffered.start(e),n=r.buffered.end(e),-1!==navigator.userAgent.toLowerCase().indexOf("firefox")&&l===Number.POSITIVE_INFINITY?(i=d,a=l):(i=Math.max(o,d),a=Math.min(n,l)),Math.min(a,n)-i>.5)return t.logger.log("flush "+u+" ["+i+","+a+"], of ["+o+","+n+"], pos:"+this.media.currentTime),r.remove(i,a),!1}else t.logger.warn("abort flushing too many retries");var s,h=[];for(e=0;e<this.bufferRange.length;e++)s=this.bufferRange[e],this.isBuffered((s.start+s.end)/2)&&h.push(s);return this.bufferRange=h,t.logger.log("buffer flushed"),!0}},{key:"immediateLevelSwitch",value:function(){t.logger.log("immediateLevelSwitch"),this.immediateSwitch||(this.immediateSwitch=!0,this.previouslyPaused=this.media.paused,this.media.pause());var r=this.fragCurrent;r&&r.loader&&r.loader.abort(),this.fragCurrent=null,this.flushBufferCounter=0,this.flushRange.push({start:0,end:Number.POSITIVE_INFINITY}),this.state=e.BUFFER_FLUSHING,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,this.tick()}},{key:"immediateLevelSwitchEnd",value:function(){this.immediateSwitch=!1,this.media.currentTime-=1e-4,this.previouslyPaused||this.media.play()}},{key:"nextLevelSwitch",value:function(){var r,i,t;if(i=this.getBufferRange(this.media.currentTime),i&&this.flushRange.push({start:0,end:i.start-1}),this.media.paused)r=0;else{var s=this.hls.nextLoadLevel,o=this.levels[s],n=this.fragLastKbps;r=n&&this.fragCurrent?this.fragCurrent.duration*o.bitrate/(1e3*n)+1:0}if(t=this.getBufferRange(this.media.currentTime+r),t&&(t=this.followingBufferRange(t))){this.flushRange.push({start:t.start,end:Number.POSITIVE_INFINITY});var a=this.fragCurrent;a&&a.loader&&a.loader.abort(),this.fragCurrent=null}this.flushRange.length&&(this.flushBufferCounter=0,this.state=e.BUFFER_FLUSHING,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,this.tick())}},{key:"onMediaAttaching",value:function(t){var r=this.media=t.media,e=this.mediaSource=new MediaSource;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),e.addEventListener("sourceopen",this.onmso),e.addEventListener("sourceended",this.onmse),e.addEventListener("sourceclose",this.onmsc),r.src=URL.createObjectURL(e)}},{key:"onMediaDetaching",value:function(){var e=this.media;e&&e.ended&&(t.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var a=this.levels;a&&a.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.loadCounter=void 0})});var i=this.mediaSource;if(i){if("open"===i.readyState)try{i.endOfStream()}catch(e){t.logger.warn("onMediaDetaching:"+e.message+" while calling endOfStream")}i.removeEventListener("sourceopen",this.onmso),i.removeEventListener("sourceended",this.onmse),i.removeEventListener("sourceclose",this.onmsc),this.media.src="",this.mediaSource=null,e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("loadedmetadata",this.onvmetadata),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvmetadata=null),this.media=null,this.loadedmetadata=!1,this.stop()}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(r.default.MEDIA_DETACHED)}},{key:"onMediaSeeking",value:function(){if(this.state===e.FRAG_LOADING){if(0===this.bufferInfo(this.media.currentTime,this.config.maxBufferHole).len){t.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load");var r=this.fragCurrent;r&&(r.loader&&r.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.state=e.IDLE}}else this.state===e.ENDED&&(this.state=e.IDLE);this.media&&(this.lastCurrentTime=this.media.currentTime),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()}},{key:"onMediaSeeked",value:function(){this.tick()}},{key:"onMediaMetadata",value:function(){var e=this.media,r=e.currentTime;r||r===this.startPosition||(t.logger.log("onMediaMetadata: adjust currentTime to startPosition"),e.currentTime=this.startPosition),this.loadedmetadata=!0,this.tick()}},{key:"onMediaEnded",value:function(){t.logger.log("media ended"),this.startPosition=this.lastCurrentTime=0}},{key:"onManifestParsed",value:function(r){var e,i=!1,a=!1;r.levels.forEach(function(t){e=t.codecs,e&&(-1!==e.indexOf("mp4a.40.2")&&(i=!0),-1!==e.indexOf("mp4a.40.5")&&(a=!0))}),this.audiocodecswitch=i&&a,this.audiocodecswitch&&t.logger.log("both AAC/HE-AAC audio found in levels; declaring audio codec as HE-AAC"),this.levels=r.levels,this.startLevelLoaded=!1,this.startFragmentRequested=!1,this.media&&this.config.autoStartLoad&&this.startLoad()}},{key:"onLevelLoaded",value:function(n){var i=n.details,a=n.level,s=this.levels[a],o=i.totalduration;if(t.logger.log("level "+a+" loaded ["+i.startSN+","+i.endSN+"],duration:"+o),this.levelLastLoaded=a,i.live){var u=s.details;u?(l.default.mergeDetails(u,i),i.PTSKnown?t.logger.log("live playlist sliding:"+i.fragments[0].start.toFixed(3)):t.logger.log("live playlist - outdated PTS, unknown sliding")):(i.PTSKnown=!1,t.logger.log("live playlist - first load, unknown sliding"))}else i.PTSKnown=!1;s.details=i,this.hls.trigger(r.default.LEVEL_UPDATED,{details:i,level:a}),this.startLevelLoaded===!1&&(i.live&&(this.startPosition=Math.max(0,o-this.config.liveSyncDurationCount*i.targetduration)),this.nextLoadPosition=this.startPosition,this.startLevelLoaded=!0),this.state===e.WAITING_LEVEL&&(this.state=e.IDLE),this.tick()}},{key:"onKeyLoaded",value:function(){this.state===e.KEY_LOADING&&(this.state=e.IDLE,this.tick())}},{key:"onFragLoaded",value:function(a){var i=this.fragCurrent;if(this.state===e.FRAG_LOADING&&i&&a.frag.level===i.level&&a.frag.sn===i.sn)if(this.fragBitrateTest===!0)this.state=e.IDLE,this.fragBitrateTest=!1,a.stats.tparsed=a.stats.tbuffered=performance.now(),this.hls.trigger(r.default.FRAG_BUFFERED,{stats:a.stats,frag:i});else{this.state=e.PARSING,this.stats=a.stats;var s=this.levels[this.level],o=s.details,d=o.totalduration,h=i.start,l=i.level,u=i.sn,n=s.audioCodec||this.config.defaultAudioCodec;this.audioCodecSwap&&(t.logger.log("swapping playlist audio codec"),void 0===n&&(n=this.lastAudioCodec),n=-1!==n.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),t.logger.log("Demuxing "+u+" of ["+o.startSN+" ,"+o.endSN+"],level "+l),this.demuxer.push(a.payload,n,s.videoCodec,h,i.cc,l,u,d,i.decryptdata)}this.fragLoadError=0}},{key:"onFragParsingInitSegment",value:function(i){if(this.state===e.PARSING){var n,r=this.levels[this.level].audioCodec,a=this.levels[this.level].videoCodec;this.lastAudioCodec=i.audioCodec,r&&this.audioCodecSwap&&(t.logger.log("swapping playlist audio codec"),r=-1!==r.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),t.logger.log("playlist_level/init_segment codecs: video => "+a+"/"+i.videoCodec+"; audio => "+r+"/"+i.audioCodec),(void 0===r||void 0===i.audioCodec)&&(r=i.audioCodec),(void 0===a||void 0===i.videoCodec)&&(a=i.videoCodec);var s=navigator.userAgent.toLowerCase();this.audiocodecswitch&&1!==i.audioChannelCount&&-1===s.indexOf("android")&&-1===s.indexOf("firefox")&&(r="mp4a.40.5"),this.sourceBuffer||(this.sourceBuffer={},t.logger.log("selected A/V codecs for sourceBuffers:"+r+","+a),r&&(n=this.sourceBuffer.audio=this.mediaSource.addSourceBuffer("audio/mp4;codecs="+r),n.addEventListener("updateend",this.onsbue),n.addEventListener("error",this.onsbe)),a&&(n=this.sourceBuffer.video=this.mediaSource.addSourceBuffer("video/mp4;codecs="+a),n.addEventListener("updateend",this.onsbue),n.addEventListener("error",this.onsbe))),r&&this.mp4segments.push({type:"audio",data:i.audioMoov}),a&&this.mp4segments.push({type:"video",data:i.videoMoov}),this.tick()}}},{key:"onFragParsingData",value:function(i){if(this.state===e.PARSING){this.tparse2=Date.now();var a=this.levels[this.level],n=this.fragCurrent;t.logger.log("parsed "+i.type+",PTS:["+i.startPTS.toFixed(3)+","+i.endPTS.toFixed(3)+"],DTS:["+i.startDTS.toFixed(3)+"/"+i.endDTS.toFixed(3)+"],nb:"+i.nb);var s=l.default.updateFragPTS(a.details,n.sn,i.startPTS,i.endPTS);this.hls.trigger(r.default.LEVEL_PTS_UPDATED,{details:a.details,level:this.level,drift:s}),this.mp4segments.push({type:i.type,data:i.moof}),this.mp4segments.push({type:i.type,data:i.mdat}),this.nextLoadPosition=i.endPTS,this.bufferRange.push({type:i.type,start:i.startPTS,end:i.endPTS,frag:n}),this.tick()}else t.logger.warn("not in PARSING state, ignoring FRAG_PARSING_DATA event")}},{key:"onFragParsed",value:function(){if(this.state===e.PARSING){this.stats.tparsed=performance.now();var t=this.sourceBuffer,r=t.audio&&t.audio.updating||t.video&&t.video.updating;0!==this.mp4segments.length||r?this.state=e.PARSED:this.state=e.IDLE,this.tick()}}},{key:"onError",value:function(a){switch(a.details){case i.ErrorDetails.FRAG_LOAD_ERROR:case i.ErrorDetails.FRAG_LOAD_TIMEOUT:if(!a.fatal){var n=this.fragLoadError;if(n?n++:n=1,n<=this.config.fragLoadingMaxRetry){this.fragLoadError=n,a.frag.loadCounter=0;var s=Math.min(Math.pow(2,n-1)*this.config.fragLoadingRetryDelay,64e3);t.logger.warn("mediaController: frag loading failed, retry in "+s+" ms"),this.retryDate=performance.now()+s,this.state=e.FRAG_LOADING_WAITING_RETRY}else t.logger.error("mediaController: "+a.details+" reaches max retry, redispatch as fatal ..."),a.fatal=!0,this.hls.trigger(r.default.ERROR,a),this.state=e.ERROR}break;case i.ErrorDetails.FRAG_LOOP_LOADING_ERROR:case i.ErrorDetails.LEVEL_LOAD_ERROR:case i.ErrorDetails.LEVEL_LOAD_TIMEOUT:case i.ErrorDetails.KEY_LOAD_ERROR:case i.ErrorDetails.KEY_LOAD_TIMEOUT:t.logger.warn("mediaController: "+a.details+" while loading frag,switch to "+(a.fatal?"ERROR":"IDLE")+" state ..."),this.state=a.fatal?e.ERROR:e.IDLE}}},{key:"onSBUpdateEnd",value:function(){if(this.state===e.APPENDING&&0===this.mp4segments.length){var a=this.fragCurrent,i=this.stats;a&&(this.fragPrevious=a,i.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*i.length/(i.tbuffered-i.tfirst)),this.hls.trigger(r.default.FRAG_BUFFERED,{stats:i,frag:a}),t.logger.log("media buffered : "+this.timeRangesToString(this.media.buffered)),this.state=e.IDLE)}this.tick()}},{key:"_checkBuffer",value:function(){var e=this.media;if(e){var u=e.readyState;if(u){var s=this.seekAfterBuffered;if(s)e.duration>=s&&(e.currentTime=s,this.seekAfterBuffered=void 0);else{var a=e.currentTime,o=this.bufferInfo(a,0),f=!(e.paused||e.ended||e.seeking||3>u),l=.2,d=a>e.playbackRate*this.lastCurrentTime;if(this.stalled&&d&&(this.stalled=!1),o.len<=l&&(d||!f?l=0:(t.logger.log("playback seems stuck @"+a),this.stalled||(this.hls.trigger(r.default.ERROR,{type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1}),this.stalled=!0)),o.len<=l)){var n=o.nextStart,h=n-a;n&&h<this.config.maxSeekHole&&h>.005&&!e.seeking&&(t.logger.log("adjust currentTime from "+a+" to "+n),e.currentTime=n)}}}}}},{key:"swapAudioCodec",value:function(){this.audioCodecSwap=!this.audioCodecSwap}},{key:"onSBUpdateError",value:function(a){t.logger.error("sourceBuffer error:"+a),this.state=e.ERROR,this.hls.trigger(r.default.ERROR,{type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.BUFFER_APPENDING_ERROR,fatal:!1,frag:this.fragCurrent})}},{key:"timeRangesToString",value:function(t){for(var r="",i=t.length,e=0;i>e;e++)r+="["+t.start(e)+","+t.end(e)+"]";return r}},{key:"onMediaSourceOpen",value:function(){t.logger.log("media source opened"),this.hls.trigger(r.default.MEDIA_ATTACHED),this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvmetadata=this.onMediaMetadata.bind(this),this.onvended=this.onMediaEnded.bind(this);var e=this.media;e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("loadedmetadata",this.onvmetadata),e.addEventListener("ended",this.onvended),this.levels&&this.config.autoStartLoad&&this.startLoad(),this.mediaSource.removeEventListener("sourceopen",this.onmso)}},{key:"onMediaSourceClose",value:function(){t.logger.log("media source closed")}},{key:"onMediaSourceEnded",value:function(){t.logger.log("media source ended")}},{key:"currentLevel",get:function(){if(this.media){var e=this.getBufferRange(this.media.currentTime);if(e)return e.frag.level}return-1}},{key:"nextBufferRange",get:function(){return this.media?this.followingBufferRange(this.getBufferRange(this.media.currentTime)):null}},{key:"nextLevel",get:function(){var e=this.nextBufferRange;return e?e.frag.level:-1}}]),a}(o.default);s.default=_,h.exports=s.default},{"../demux/demuxer":14,"../errors":18,"../event-handler":19,"../events":20,"../helper/level-helper":21,"../utils/binary-search":29,"../utils/logger":31}],6:[function(t,o,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(r,"__esModule",{value:!0});var s=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),v=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=t("../events"),e=i(l),d=t("../event-handler"),a=i(d),f=t("../utils/cea-708-interpreter"),c=i(f),u=function(r){function t(r){h(this,t),v(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,r,e.default.MEDIA_ATTACHING,e.default.MEDIA_DETACHING,e.default.FRAG_PARSING_USERDATA,e.default.MANIFEST_LOADING,e.default.FRAG_LOADED),this.hls=r,this.config=r.config,this.config.enableCEA708Captions&&(this.cea708Interpreter=new c.default)}return n(t,r),s(t,[{key:"destroy",value:function(){a.default.prototype.destroy.call(this)}},{key:"onMediaAttaching",value:function(e){var t=this.media=e.media;this.cea708Interpreter.attach(t)}},{key:"onMediaDetaching",value:function(){this.cea708Interpreter.detach()}},{key:"onManifestLoading",value:function(){this.lastPts=Number.POSITIVE_INFINITY}},{key:"onFragLoaded",value:function(t){var e=t.frag.start;e<=this.lastPts&&this.cea708Interpreter.clear(),this.lastPts=e}},{key:"onFragParsingUserdata",value:function(t){for(var e=0;e<t.samples.length;e++)this.cea708Interpreter.push(t.samples[e].pts,t.samples[e].bytes)}}]),t}(a.default);r.default=u,o.exports=r.default},{"../event-handler":19,"../events":20,"../utils/cea-708-interpreter":30}],7:[function(n,t,e){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),a=function(){function e(h){r(this,e),this._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],this._precompute();var i,s,t,o,l,n=this._tables[0][4],u=this._tables[1],a=h.length,d=1;if(4!==a&&6!==a&&8!==a)throw new Error("Invalid aes key size="+a);for(o=h.slice(0),l=[],this._key=[o,l],i=a;4*a+28>i;i++)t=o[i-1],(i%a===0||8===a&&i%a===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%a===0&&(t=t<<8^t>>>24^d<<24,d=d<<1^283*(d>>7))),o[i]=o[i-a]^t;for(s=0;i;s++,i--)t=o[3&s?i:i-4],4>=i||4>s?l[s]=t:l[s]=u[0][n[t>>>24]]^u[1][n[t>>16&255]]^u[2][n[t>>8&255]]^u[3][n[255&t]]}return i(e,[{key:"_precompute",value:function(){var e,i,r,u,h,d,t,s,l,n=this._tables[0],o=this._tables[1],f=n[4],v=o[4],a=[],c=[];for(e=0;256>e;e++)c[(a[e]=e<<1^283*(e>>7))^e]=e;for(i=r=0;!f[i];i^=u||1,r=c[r]||1)for(t=r^r<<1^r<<2^r<<3^r<<4,t=t>>8^255&t^99,f[i]=t,v[t]=i,d=a[h=a[u=a[i]]],l=16843009*d^65537*h^257*u^16843008*i,s=257*a[t]^16843008*t,e=0;4>e;e++)n[e][i]=s=s<<24^s>>>8,o[e][t]=l=l<<24^l>>>8;for(e=0;5>e;e++)n[e]=n[e].slice(0),o[e]=o[e].slice(0)}},{key:"decrypt",value:function(R,p,_,E,b,m){var f,g,v,n,e=this._key[1],t=R^e[0],i=E^e[1],a=_^e[2],r=p^e[3],y=e.length/4-2,s=4,o=this._tables[1],h=o[0],d=o[1],u=o[2],l=o[3],c=o[4];for(n=0;y>n;n++)f=h[t>>>24]^d[i>>16&255]^u[a>>8&255]^l[255&r]^e[s],g=h[i>>>24]^d[a>>16&255]^u[r>>8&255]^l[255&t]^e[s+1],v=h[a>>>24]^d[r>>16&255]^u[t>>8&255]^l[255&i]^e[s+2],r=h[r>>>24]^d[t>>16&255]^u[i>>8&255]^l[255&a]^e[s+3],s+=4,t=f,i=g,a=v;for(n=0;4>n;n++)b[(3&-n)+m]=c[t>>>24]<<24^c[i>>16&255]<<16^c[a>>8&255]<<8^c[255&r]^e[s++],f=t,t=i,i=a,a=r,r=f}}]),e}();e.default=a,t.exports=e.default},{}],8:[function(t,r,e){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),s=t("./aes"),o=i(s),l=function(){function e(t,r){a(this,e),this.key=t,this.iv=r}return n(e,[{key:"ntoh",value:function(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24}},{key:"doDecrypt",value:function(i,g,a){var u,f,s,h,l,c,d,n,e,r=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>2),p=new o.default(Array.prototype.slice.call(g)),v=new Uint8Array(i.byteLength),t=new Int32Array(v.buffer);for(u=~~a[0],f=~~a[1],s=~~a[2],h=~~a[3],e=0;e<r.length;e+=4)l=~~this.ntoh(r[e]),c=~~this.ntoh(r[e+1]),d=~~this.ntoh(r[e+2]),n=~~this.ntoh(r[e+3]),p.decrypt(l,c,d,n,t,e),t[e]=this.ntoh(t[e]^u),t[e+1]=this.ntoh(t[e+1]^f),t[e+2]=this.ntoh(t[e+2]^s),t[e+3]=this.ntoh(t[e+3]^h),u=l,f=c,s=d,h=n;return v}},{key:"localDecrypt",value:function(e,t,r,i){var a=this.doDecrypt(e,t,r);i.set(a,e.byteOffset)}},{key:"decrypt",value:function(n){var r=32e3,t=new Int32Array(n),i=new Uint8Array(n.byteLength),e=0,s=this.key,a=this.iv;for(this.localDecrypt(t.subarray(e,e+r),s,a,i),e=r;e<t.length;e+=r)a=new Uint32Array([this.ntoh(t[e-4]),this.ntoh(t[e-3]),this.ntoh(t[e-2]),this.ntoh(t[e-1])]),this.localDecrypt(t.subarray(e,e+r),s,a,i);return i}}]),e}();e.default=l,r.exports=e.default},{"./aes":7}],9:[function(t,n,r){"use strict";function u(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var d=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),s=t("./aes128-decrypter"),o=u(s),i=t("../errors"),e=t("../utils/logger"),l=function(){function t(r){a(this,t),this.hls=r;try{var e=window?window.crypto:crypto;this.subtle=e.subtle||e.webkitSubtle,this.disableWebCrypto=!this.subtle}catch(e){this.disableWebCrypto=!0}}return d(t,[{key:"destroy",value:function(){}},{key:"decrypt",value:function(e,t,r,i){this.disableWebCrypto&&this.hls.config.enableSoftwareAES?this.decryptBySoftware(e,t,r,i):this.decryptByWebCrypto(e,t,r,i)}},{key:"decryptByWebCrypto",value:function(t,r,i,a){var n=this;e.logger.log("decrypting by WebCrypto API"),this.subtle.importKey("raw",r,{name:"AES-CBC",length:128},!1,["decrypt"]).then(function(e){n.subtle.decrypt({name:"AES-CBC",iv:i.buffer},e,t).then(a).catch(function(e){n.onWebCryptoError(e,t,r,i,a)})}).catch(function(e){n.onWebCryptoError(e,t,r,i,a)})}},{key:"decryptBySoftware",value:function(r,i,a,n){e.logger.log("decrypting by JavaScript Implementation");var t=new DataView(i.buffer),s=new Uint32Array([t.getUint32(0),t.getUint32(4),t.getUint32(8),t.getUint32(12)]);t=new DataView(a.buffer);var l=new Uint32Array([t.getUint32(0),t.getUint32(4),t.getUint32(8),t.getUint32(12)]),u=new o.default(s,l);n(u.decrypt(r).buffer)}},{key:"onWebCryptoError",value:function(t,r,a,n,s){this.hls.config.enableSoftwareAES?(e.logger.log("disabling to use WebCrypto API"),this.disableWebCrypto=!0,this.decryptBySoftware(r,a,n,s)):(e.logger.error("decrypting error : "+t.message),this.hls.trigger(Event.ERROR,{type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.FRAG_DECRYPT_ERROR,fatal:!0,reason:t.message}))}}]),t}();r.default=l,n.exports=r.default},{"../errors":18,"../utils/logger":31,"./aes128-decrypter":8}],10:[function(e,s,t){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),h=e("./adts"),o=r(h),l=e("../utils/logger"),u=e("../demux/id3"),i=r(u),d=function(){function e(t,r){a(this,e),this.observer=t,this.remuxerClass=r,this.remuxer=new this.remuxerClass(t),this._aacTrack={type:"audio",id:-1,sequenceNumber:0,samples:[],len:0}}return n(e,[{key:"push",value:function(t,p,R,m,_,E,b,y){var a,n,g,c,e,s,h,u,v,r=this._aacTrack,d=new i.default(t),f=90*d.timeStamp;for(e=d.length,u=t.length;u-1>e&&(255!==t[e]||240!==(240&t[e+1]));e++);for(r.audiosamplerate||(a=o.default.getAudioConfig(this.observer,t,e,p),r.config=a.config,r.audiosamplerate=a.samplerate,r.channelCount=a.channelCount,r.codec=a.codec,r.timescale=a.samplerate,r.duration=a.samplerate*y,l.logger.log("parsed codec:"+r.codec+",rate:"+a.samplerate+",nb channel:"+a.channelCount)),c=0,g=9216e4/r.audiosamplerate;u>e+5&&(s=1&t[e+1]?7:9,n=(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5,n-=s,n>0&&u>=e+s+n);)for(h=f+c*g,v={unit:t.subarray(e+s,e+s+n),pts:h,dts:h},r.samples.push(v),r.len+=n,e+=n+s,c++;u-1>e&&(255!==t[e]||240!==(240&t[e+1]));e++);this.remuxer.remux(this._aacTrack,{samples:[]},{samples:[{pts:f,dts:f,unit:d.payload}]},m)}},{key:"destroy",value:function(){}}],[{key:"probe",value:function(t){var e,r,a=new i.default(t);if(a.hasTimeStamp)for(e=a.length,r=t.length;r-1>e;e++)if(255===t[e]&&240===(240&t[e+1]))return!0;return!1}}]),e}();t.default=d,s.exports=t.default},{"../demux/id3":16,"../utils/logger":31,"./adts":11}],11:[function(t,i,e){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),s=t("../utils/logger"),r=t("../errors"),o=function(){function e(){a(this,e)}return n(e,null,[{key:"getAudioConfig",value:function(f,u,l,a){var i,e,n,o,t,h=navigator.userAgent.toLowerCase(),d=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];return i=((192&u[l+2])>>>6)+1,e=(60&u[l+2])>>>2,e>d.length-1?void f.trigger(Event.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+e}):(o=(1&u[l+2])<<2,o|=(192&u[l+3])>>>6,s.logger.log("manifest codec:"+a+",ADTS data:type:"+i+",sampleingIndex:"+e+"["+d[e]+"Hz],channelConfig:"+o),-1!==h.indexOf("firefox")?e>=6?(i=5,t=new Array(4),n=e-3):(i=2,t=new Array(2),n=e):-1!==h.indexOf("android")?(i=2,t=new Array(2),n=e):(i=5,t=new Array(4),a&&(-1!==a.indexOf("mp4a.40.29")||-1!==a.indexOf("mp4a.40.5"))||!a&&e>=6?n=e-3:((a&&-1!==a.indexOf("mp4a.40.2")&&(e>=6||1===o)||!a&&1===o)&&(i=2,t=new Array(2)),n=e)),t[0]=i<<3,t[0]|=(14&e)>>1,t[1]|=(1&e)<<7,t[1]|=o<<3,5===i&&(t[1]|=(14&n)>>1,t[2]=(1&n)<<7,t[2]|=8,t[3]=0),{config:t,samplerate:d[e],channelCount:o,codec:"mp4a.40."+i})}}]),e}();e.default=o,i.exports=e.default},{"../errors":18,"../utils/logger":31}],12:[function(e,o,t){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var f=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),s=e("../events"),c=r(s),i=e("../errors"),u=e("../demux/aacdemuxer"),a=r(u),h=e("../demux/tsdemuxer"),n=r(h),l=function(){function e(t,r){d(this,e),this.hls=t,this.remuxer=r}return f(e,[{key:"destroy",value:function(){var e=this.demuxer;e&&e.destroy()}},{key:"push",value:function(t,r,s,o,l,u,d,h){var e=this.demuxer;if(!e)if(n.default.probe(t))e=this.demuxer=new n.default(this.hls,this.remuxer);else{if(!a.default.probe(t))return void this.hls.trigger(c.default.ERROR,{type:i.ErrorTypes.MEDIA_ERROR,details:i.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"});e=this.demuxer=new a.default(this.hls,this.remuxer)}e.push(t,r,s,o,l,u,d,h)}}]),e}();t.default=l,o.exports=t.default},{"../demux/aacdemuxer":10,"../demux/tsdemuxer":17,"../errors":18,"../events":20}],13:[function(t,s,i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(i,"__esModule",{value:!0});var a=t("../demux/demuxer-inline"),n=r(a),f=t("../events"),e=r(f),l=t("events"),u=r(l),d=t("../remux/mp4-remuxer"),h=r(d),o=function(r){var t=new u.default;t.trigger=function(i){for(var r=arguments.length,a=Array(r>1?r-1:0),e=1;r>e;e++)a[e-1]=arguments[e];t.emit.apply(t,[i,i].concat(a))},t.off=function(a){for(var r=arguments.length,i=Array(r>1?r-1:0),e=1;r>e;e++)i[e-1]=arguments[e];t.removeListener.apply(t,[a].concat(i))},r.addEventListener("message",function(i){switch(i.data.cmd){case"init":r.demuxer=new n.default(t,h.default);break;case"demux":var e=i.data;r.demuxer.push(new Uint8Array(e.data),e.audioCodec,e.videoCodec,e.timeOffset,e.cc,e.level,e.sn,e.duration)}}),t.on(e.default.FRAG_PARSING_INIT_SEGMENT,function(a,t){var e={event:a},i=[];t.audioCodec&&(e.audioCodec=t.audioCodec,e.audioMoov=t.audioMoov.buffer,e.audioChannelCount=t.audioChannelCount,i.push(e.audioMoov)),t.videoCodec&&(e.videoCodec=t.videoCodec,e.videoMoov=t.videoMoov.buffer,e.videoWidth=t.videoWidth,e.videoHeight=t.videoHeight,i.push(e.videoMoov)),r.postMessage(e,i)}),t.on(e.default.FRAG_PARSING_DATA,function(i,e){var t={event:i,type:e.type,startPTS:e.startPTS,endPTS:e.endPTS,startDTS:e.startDTS,endDTS:e.endDTS,moof:e.moof.buffer,mdat:e.mdat.buffer,nb:e.nb};r.postMessage(t,[t.moof,t.mdat])}),t.on(e.default.FRAG_PARSED,function(e){r.postMessage({event:e})}),t.on(e.default.ERROR,function(e,t){r.postMessage({event:e,data:t})}),t.on(e.default.FRAG_PARSING_METADATA,function(e,t){var i={event:e,samples:t.samples};r.postMessage(i)}),t.on(e.default.FRAG_PARSING_USERDATA,function(e,t){var i={event:e,samples:t.samples};r.postMessage(i)})};i.default=o,s.exports=i.default},{"../demux/demuxer-inline":12,"../events":20,"../remux/mp4-remuxer":27,events:1}],14:[function(t,u,i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(i,"__esModule",{value:!0});var o=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),l=t("../events"),e=r(l),f=t("../demux/demuxer-inline"),s=r(f),d=t("../demux/demuxer-worker"),h=r(d),n=t("../utils/logger"),c=t("../remux/mp4-remuxer"),a=r(c),g=t("../crypt/decrypter"),p=r(g),y=function(){function r(e){if(v(this,r),this.hls=e,e.config.enableWorker&&"undefined"!=typeof Worker){n.logger.log("demuxing in webworker");try{var i=t("webworkify");this.w=i(h.default),this.onwmsg=this.onWorkerMessage.bind(this),this.w.addEventListener("message",this.onwmsg),this.w.postMessage({cmd:"init"})}catch(t){n.logger.error("error while initializing DemuxerWorker, fallback on DemuxerInline"),this.demuxer=new s.default(e,a.default)}}else this.demuxer=new s.default(e,a.default);this.demuxInitialized=!0}return o(r,[{key:"destroy",value:function(){this.w?(this.w.removeEventListener("message",this.onwmsg),this.w.terminate(),this.w=null):(this.demuxer.destroy(),this.demuxer=null),this.decrypter&&(this.decrypter.destroy(),this.decrypter=null)}},{key:"pushDecrypted",value:function(e,t,r,i,a,n,s,o){this.w?this.w.postMessage({cmd:"demux",data:e,audioCodec:t,videoCodec:r,timeOffset:i,cc:a,level:n,sn:s,duration:o},[e]):this.demuxer.push(new Uint8Array(e),t,r,i,a,n,s,o)}},{key:"push",value:function(t,r,i,a,n,s,o,l,e){if(t.byteLength>0&&null!=e&&null!=e.key&&"AES-128"===e.method){null==this.decrypter&&(this.decrypter=new p.default(this.hls));var u=this;this.decrypter.decrypt(t,e.key,e.iv,function(e){u.pushDecrypted(e,r,i,a,n,s,o,l)})}else this.pushDecrypted(t,r,i,a,n,s,o,l)}},{key:"onWorkerMessage",value:function(t){switch(t.data.event){case e.default.FRAG_PARSING_INIT_SEGMENT:var r={};t.data.audioMoov&&(r.audioMoov=new Uint8Array(t.data.audioMoov),r.audioCodec=t.data.audioCodec,r.audioChannelCount=t.data.audioChannelCount),t.data.videoMoov&&(r.videoMoov=new Uint8Array(t.data.videoMoov),r.videoCodec=t.data.videoCodec,r.videoWidth=t.data.videoWidth,r.videoHeight=t.data.videoHeight),this.hls.trigger(e.default.FRAG_PARSING_INIT_SEGMENT,r);break;case e.default.FRAG_PARSING_DATA:this.hls.trigger(e.default.FRAG_PARSING_DATA,{moof:new Uint8Array(t.data.moof),mdat:new Uint8Array(t.data.mdat),startPTS:t.data.startPTS,endPTS:t.data.endPTS,startDTS:t.data.startDTS,endDTS:t.data.endDTS,type:t.data.type,nb:t.data.nb});break;case e.default.FRAG_PARSING_METADATA:this.hls.trigger(e.default.FRAG_PARSING_METADATA,{samples:t.data.samples});break;case e.default.FRAG_PARSING_USERDATA:this.hls.trigger(e.default.FRAG_PARSING_USERDATA,{samples:t.data.samples});break;default:this.hls.trigger(t.data.event,t.data.data)}}}]),r}();i.default=y,u.exports=i.default},{"../crypt/decrypter":9,"../demux/demuxer-inline":12,"../demux/demuxer-worker":13,"../events":20,"../remux/mp4-remuxer":27,"../utils/logger":31,webworkify:2}],15:[function(t,r,e){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),n=t("../utils/logger"),s=function(){function e(t){i(this,e),this.data=t,this.bytesAvailable=this.data.byteLength,this.word=0,this.bitsAvailable=0}return a(e,[{key:"loadWord",value:function(){var t=this.data.byteLength-this.bytesAvailable,r=new Uint8Array(4),e=Math.min(4,this.bytesAvailable);if(0===e)throw new Error("no bytes available");r.set(this.data.subarray(t,t+e)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*e,this.bytesAvailable-=e}},{key:"skipBits",value:function(e){var t;this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}},{key:"readBits",value:function(t){var e=Math.min(this.bitsAvailable,t),r=this.word>>>32-e;return t>32&&n.logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0?this.word<<=e:this.bytesAvailable>0&&this.loadWord(),e=t-e,e>0?r<<e|this.readBits(e):r}},{key:"skipLZ",value:function(){var e;for(e=0;e<this.bitsAvailable;++e)if(0!==(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBoolean",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"readUShort",value:function(){return this.readBits(16)}},{key:"readUInt",value:function(){return this.readBits(32)}},{key:"skipScalingList",value:function(a){var t,i,r=8,e=8;for(t=0;a>t;t++)0!==e&&(i=this.readEG(),e=(r+i+256)%256),r=0===e?r:e}},{key:"readSPS",value:function(){var t,g,p,l,a,n,i,o,r,s=0,d=0,h=0,f=0,c=1;if(this.readUByte(),t=this.readUByte(),g=this.readBits(5),this.skipBits(3),p=this.readUByte(),this.skipUEG(),100===t||110===t||122===t||244===t||44===t||83===t||86===t||118===t||128===t){var v=this.readUEG();if(3===v&&this.skipBits(1),this.skipUEG(),this.skipUEG(),this.skipBits(1),this.readBoolean())for(o=3!==v?8:12,r=0;o>r;r++)this.readBoolean()&&(6>r?this.skipScalingList(16):this.skipScalingList(64))}this.skipUEG();var u=this.readUEG();if(0===u)this.readUEG();else if(1===u)for(this.skipBits(1),this.skipEG(),this.skipEG(),l=this.readUEG(),r=0;l>r;r++)this.skipEG();if(this.skipUEG(),this.skipBits(1),a=this.readUEG(),n=this.readUEG(),i=this.readBits(1),0===i&&this.skipBits(1),this.skipBits(1),this.readBoolean()&&(s=this.readUEG(),d=this.readUEG(),h=this.readUEG(),f=this.readUEG()),this.readBoolean()&&this.readBoolean()){var e=void 0,y=this.readUByte();switch(y){case 2:e=[12,11];break;case 3:e=[10,11];break;case 4:e=[16,11];break;case 5:e=[40,33];break;case 6:e=[24,11];break;case 7:e=[20,11];break;case 8:e=[32,11];break;case 9:e=[80,33];break;case 10:e=[18,11];break;case 11:e=[15,11];break;case 12:e=[64,33];break;case 13:e=[160,99];break;case 14:e=[4,3];break;case 15:e=[3,2];break;case 16:e=[2,1];break;case 255:e=[this.readUByte()<<8|this.readUByte(),this.readUByte()<<8|this.readUByte()]}e&&(c=e[0]/e[1])}return{width:(16*(a+1)-2*s-2*d)*c,height:(2-i)*(n+1)*16-(i?2:4)*(h+f)}}},{key:"readSliceType",value:function(){return this.readUByte(),this.readUEG(),this.readUEG()}}]),e}();e.default=s,r.exports=e.default},{"../utils/logger":31}],16:[function(r,i,e){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),t=r("../utils/logger"),s=function(){function e(i){a(this,e),this._hasTimeStamp=!1;for(var l,u,d,h,f,s,o,n,r=0;;)if(o=this.readUTF(i,r,3),r+=3,"ID3"===o)r+=3,l=127&i[r++],u=127&i[r++],d=127&i[r++],h=127&i[r++],f=(l<<21)+(u<<14)+(d<<7)+h,s=r+f,this._parseID3Frames(i,r,s),r=s;else{if("3DI"!==o)return r-=3,n=r,void(n&&(this.hasTimeStamp||t.logger.warn("ID3 tag found,but no timestamp"),this._length=n,this._payload=i.subarray(0,n)));r+=7,t.logger.log("3DI footer found,end:"+r)}}return n(e,[{key:"readUTF",value:function(i,e,a){var t="",r=e,n=e+a;do t+=String.fromCharCode(i[r++]);while(n>r);return t}},{key:"_parseID3Frames",value:function(r,e,n){for(var a,s,o,l,i;n>=e+8;)switch(a=this.readUTF(r,e,4),e+=4,s=r[e++]<<24+r[e++]<<16+r[e++]<<8+r[e++],l=r[e++]<<8+r[e++],o=e,a){case"PRIV":if("com.apple.streaming.transportStreamTimestamp"===this.readUTF(r,e,44)){e+=44,e+=4;var u=1&r[e++];this._hasTimeStamp=!0,i=((r[e++]<<23)+(r[e++]<<15)+(r[e++]<<7)+r[e++])/45,u&&(i+=47721858.84),i=Math.round(i),t.logger.trace("ID3 timestamp found:"+i),this._timeStamp=i}}}},{key:"hasTimeStamp",get:function(){return this._hasTimeStamp}},{key:"timeStamp",get:function(){return this._timeStamp}},{key:"length",get:function(){return this._length}},{key:"payload",get:function(){return this._payload}}]),e}();e.default=s,i.exports=e.default},{"../utils/logger":31}],17:[function(t,o,i){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(i,"__esModule",{value:!0});var f=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),c=t("./adts"),v=a(c),l=t("../events"),n=a(l),d=t("./exp-golomb"),s=a(d),e=t("../utils/logger"),r=t("../errors"),u=function(){function t(e,r){h(this,t),this.observer=e,this.remuxerClass=r,this.lastCC=0,this.remuxer=new this.remuxerClass(e),this._userData=[]}return f(t,[{key:"switchLevel",value:function(){this.pmtParsed=!1,this._pmtId=-1,this.lastAacPTS=null,this.aacOverFlow=null,this._avcTrack={type:"video",id:-1,sequenceNumber:0,samples:[],len:0,nbNalu:0},this._aacTrack={type:"audio",id:-1,sequenceNumber:0,samples:[],len:0},this._id3Track={type:"id3",id:-1,sequenceNumber:0,samples:[],len:0},this._txtTrack={type:"text",id:-1,sequenceNumber:0,samples:[],len:0},this.remuxer.switchLevel()}},{key:"insertDiscontinuity",value:function(){this.switchLevel(),this.remuxer.insertDiscontinuity()}},{key:"push",value:function(i,A,E,R,f,m,g,_){var l,o,s,t,d,u,y,a,h=i.length;this.audioCodec=A,this.videoCodec=E,this.timeOffset=R,this._duration=_,this.contiguous=!1,f!==this.lastCC?(e.logger.log("discontinuity detected"),this.insertDiscontinuity(),this.lastCC=f):m!==this.lastLevel?(e.logger.log("level switch detected"),this.switchLevel(),this.lastLevel=m):g===this.lastSN+1&&(this.contiguous=!0),this.lastSN=g,this.contiguous||(this.aacOverFlow=null);var p=this.pmtParsed,v=this._avcTrack.id,c=this._aacTrack.id,b=this._id3Track.id;for(h-=h%188,t=0;h>t;t+=188)if(71===i[t]){if(d=!!(64&i[t+1]),u=((31&i[t+1])<<8)+i[t+2],y=(48&i[t+3])>>4,y>1){if(a=t+5+i[t+4],a===t+188)continue}else a=t+4;p?u===v?(d&&(l&&this._parseAVCPES(this._parsePES(l)),l={data:[],size:0}),l&&(l.data.push(i.subarray(a,t+188)),l.size+=t+188-a)):u===c?(d&&(o&&this._parseAACPES(this._parsePES(o)),o={data:[],size:0}),o&&(o.data.push(i.subarray(a,t+188)),o.size+=t+188-a)):u===b&&(d&&(s&&this._parseID3PES(this._parsePES(s)),s={data:[],size:0}),s&&(s.data.push(i.subarray(a,t+188)),s.size+=t+188-a)):(d&&(a+=i[a]+1),0===u?this._parsePAT(i,a):u===this._pmtId&&(this._parsePMT(i,a),p=this.pmtParsed=!0,v=this._avcTrack.id,c=this._aacTrack.id,b=this._id3Track.id))}else this.observer.trigger(n.default.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});l&&this._parseAVCPES(this._parsePES(l)),o&&this._parseAACPES(this._parsePES(o)),s&&this._parseID3PES(this._parsePES(s)),this.remux()}},{key:"remux",value:function(){this.remuxer.remux(this._aacTrack,this._avcTrack,this._id3Track,this._txtTrack,this.timeOffset,this.contiguous)}},{key:"destroy",value:function(){this.switchLevel(),this._initPTS=this._initDTS=void 0,this._duration=0}},{key:"_parsePAT",value:function(e,t){this._pmtId=(31&e[t+10])<<8|e[t+11]}},{key:"_parsePMT",value:function(r,t){var a,n,s,i;for(a=(15&r[t+1])<<8|r[t+2],n=t+3+a-4,s=(15&r[t+10])<<8|r[t+11],t+=12+s;n>t;){switch(i=(31&r[t+1])<<8|r[t+2],r[t]){case 15:this._aacTrack.id=i;break;case 21:this._id3Track.id=i;break;case 27:this._avcTrack.id=i;break;default:e.logger.log("unkown stream type:"+r[t])}t+=((15&r[t+3])<<8|r[t+4])+5}}},{key:"_parsePES",value:function(t){var e,a,u,o,d,n,r,i,s,l=0;if(e=t.data[0],u=(e[0]<<16)+(e[1]<<8)+e[2],1===u){for(o=(e[4]<<8)+e[5],a=e[7],192&a&&(r=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,r>4294967295&&(r-=8589934592),64&a?(i=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,i>4294967295&&(i-=8589934592)):i=r),d=e[8],s=d+9,t.data[0]=t.data[0].subarray(s),t.size-=s,n=new Uint8Array(t.size);t.data.length;)e=t.data.shift(),n.set(e,l),l+=e.byteLength;return{data:n,pts:r,dts:i,len:o}}return null}},{key:"_parseAVCPES",value:function(i){var t,y,n,l,h=this,r=this._avcTrack,u=r.samples,m=this._parseAVCNALu(i.data),d=[],o=!1,c=!1,v=0;if(0===m.length&&u.length>0){var g=u[u.length-1],f=g.units.units[g.units.units.length-1],p=new Uint8Array(f.data.byteLength+i.data.byteLength);p.set(f.data,0),p.set(i.data,f.data.byteLength),f.data=p,g.units.length+=i.data.byteLength,r.len+=i.data.byteLength}i.data=null;var a="";m.forEach(function(e){switch(e.type){case 1:n=!0,o&&(a+="NDR ");break;case 5:n=!0,o&&(a+="IDR "),c=!0;break;case 6:n=!0,o&&(a+="SEI "),t=new s.default(e.data),t.readUByte();var b=t.readUByte();if(4===b){var p=0;do p=t.readUByte();while(255===p);var R=t.readUByte();if(181===R){var _=t.readUShort();if(49===_){var A=t.readUInt();if(1195456820===A){var k=t.readUByte();if(3===k){var g=t.readUByte(),E=t.readUByte(),T=31&g,f=[g,E];for(l=0;T>l;l++)f.push(t.readUByte()),f.push(t.readUByte()),f.push(t.readUByte());h._txtTrack.samples.push({type:3,pts:i.pts,bytes:f})}}}}}break;case 7:if(n=!0,o&&(a+="SPS "),!r.sps){t=new s.default(e.data);var y=t.readSPS();r.width=y.width,r.height=y.height,r.sps=[e.data],r.timescale=h.remuxer.timescale,r.duration=h.remuxer.timescale*h._duration;var L=e.data.subarray(1,4),m="avc1.";for(l=0;3>l;l++){var u=L[l].toString(16);u.length<2&&(u="0"+u),m+=u}r.codec=m}break;case 8:n=!0,o&&(a+="PPS "),r.pps||(r.pps=[e.data]);break;case 9:n=!1,o&&(a+="AUD ");break;default:n=!1,a+="unknown NAL "+e.type+" "}n&&(d.push(e),v+=e.data.byteLength)}),(o||a.length)&&e.logger.log(a),d.length&&(c===!0||r.sps)&&(y={units:{units:d,length:v},pts:i.pts,dts:i.dts,key:c},u.push(y),r.len+=v,r.nbNalu+=d.length)}},{key:"_parseAVCNALu",value:function(r){for(var n,i,s,p,a,l,t=0,f=r.byteLength,e=0,d=[];f>t;)switch(n=r[t++],e){case 0:0===n&&(e=1);break;case 1:e=0===n?2:0;break;case 2:case 3:if(0===n)e=3;else if(1===n&&f>t){if(p=31&r[t],a)s={data:r.subarray(a,t-e-1),type:l},d.push(s);else if(i=t-e-1){var c=this._avcTrack,h=c.samples;if(h.length){var v=h[h.length-1],g=v.units.units,o=g[g.length-1],u=new Uint8Array(o.data.byteLength+i);u.set(o.data,0),u.set(r.subarray(0,i),o.data.byteLength),o.data=u,v.units.length+=i,c.len+=i}}a=t,l=p,e=0}else e=0}return a&&(s={data:r.subarray(a,f),type:l},d.push(s)),d}},{key:"_parseAACPES",value:function(R){var s,l,p,b,t,d,f,o,_,a=this._aacTrack,i=R.data,c=R.pts,k=0,L=this._duration,A=this.audioCodec,u=this.aacOverFlow,E=this.lastAacPTS;if(u){var m=new Uint8Array(u.byteLength+i.byteLength);m.set(u,0),m.set(i,u.byteLength),i=m}for(t=k,o=i.length;o-1>t&&(255!==i[t]||240!==(240&i[t+1]));t++);if(t){var y,h;if(o-1>t?(y="AAC PES did not start with ADTS header,offset:"+t,h=!1):(y="no ADTS header found in AAC PES",h=!0),this.observer.trigger(n.default.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.FRAG_PARSING_ERROR,fatal:h,reason:y}),h)return}if(a.audiosamplerate||(s=v.default.getAudioConfig(this.observer,i,t,A),a.config=s.config,a.audiosamplerate=s.samplerate,a.channelCount=s.channelCount,a.codec=s.codec,a.timescale=s.samplerate,a.duration=s.samplerate*L,e.logger.log("parsed codec:"+a.codec+",rate:"+s.samplerate+",nb channel:"+s.channelCount)),b=0,p=9216e4/a.audiosamplerate,u&&E){var g=E+p;Math.abs(g-c)>1&&(e.logger.log("AAC: align PTS for overlapping frames by "+Math.round((g-c)/90)),c=g)}for(;o>t+5&&(d=1&i[t+1]?7:9,l=(3&i[t+3])<<11|i[t+4]<<3|(224&i[t+5])>>>5,l-=d,l>0&&o>=t+d+l);)for(f=c+b*p,_={unit:i.subarray(t+d,t+d+l),pts:f,dts:f},a.samples.push(_),a.len+=l,t+=l+d,b++;o-1>t&&(255!==i[t]||240!==(240&i[t+1]));t++);u=o>t?i.subarray(t,o):null,this.aacOverFlow=u,this.lastAacPTS=f}},{key:"_parseID3PES",value:function(e){this._id3Track.samples.push(e)}}],[{key:"probe",value:function(e){return e.length>=564&&71===e[0]&&71===e[188]&&71===e[376]?!0:!1}}]),t}();i.default=u,o.exports=i.default},{"../errors":18,"../events":20,"../utils/logger":31,"./adts":11,"./exp-golomb":15}],18:[function(i,a,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t={NETWORK_ERROR:"hlsNetworkError",MEDIA_ERROR:"hlsMediaError",OTHER_ERROR:"hlsOtherError"};e.ErrorTypes=t;var r={MANIFEST_LOAD_ERROR:"manifestLoadError",MANIFEST_LOAD_TIMEOUT:"manifestLoadTimeOut",MANIFEST_PARSING_ERROR:"manifestParsingError",LEVEL_LOAD_ERROR:"levelLoadError",LEVEL_LOAD_TIMEOUT:"levelLoadTimeOut",LEVEL_SWITCH_ERROR:"levelSwitchError",FRAG_LOAD_ERROR:"fragLoadError",FRAG_LOOP_LOADING_ERROR:"fragLoopLoadingError",FRAG_LOAD_TIMEOUT:"fragLoadTimeOut",FRAG_DECRYPT_ERROR:"fragDecryptError",FRAG_PARSING_ERROR:"fragParsingError",KEY_LOAD_ERROR:"keyLoadError",KEY_LOAD_TIMEOUT:"keyLoadTimeOut",BUFFER_APPEND_ERROR:"bufferAppendError",BUFFER_APPENDING_ERROR:"bufferAppendingError",BUFFER_STALLED_ERROR:"bufferStalledError"};e.ErrorDetails=r},{}],19:[function(n,t,e){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),a=function(){function e(n){r(this,e),this.hls=n,this.onEvent=this.onEvent.bind(this);for(var i=arguments.length,a=Array(i>1?i-1:0),t=1;i>t;t++)a[t-1]=arguments[t];this.handledEvents=a,this.useGenericHandler=!0,this.registerListeners()}return i(e,[{key:"destroy",value:function(){this.unregisterListeners()}},{key:"isEventHandler",value:function(){return"object"==typeof this.handledEvents&&this.handledEvents.length&&"function"==typeof this.onEvent}},{key:"registerListeners",value:function(){this.isEventHandler()&&this.handledEvents.forEach(function(e){if("hlsEventGeneric"===e)throw new Error("Forbidden event name: "+e);this.hls.on(e,this.onEvent)}.bind(this))}},{key:"unregisterListeners",value:function(){this.isEventHandler()&&this.handledEvents.forEach(function(e){this.hls.off(e,this.onEvent)}.bind(this))}},{key:"onEvent",value:function(e,t){this.onEventGeneric(e,t)}},{key:"onEventGeneric",value:function(e,t){var r=function(t,r){var e="on"+t.replace("hls","");if("function"!=typeof this[e])throw new Error("Event "+t+" has no generic handler in this "+this.constructor.name+" class (tried "+e+")");return this[e].bind(this,r)};r.call(this,e,t).call()}}]),e}();e.default=a,t.exports=e.default},{}],20:[function(t,e,r){"use strict";e.exports={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",LEVEL_SWITCH:"hlsLevelSwitch",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_PROGRESS:"hlsFragLoadProgress",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSING_DATA:"hlsFragParsingData",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded"}},{}],21:[function(r,i,e){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),t=r("../utils/logger"),s=function(){function e(){a(this,e)}return n(e,null,[{key:"mergeDetails",value:function(n,i){var s,c=Math.max(n.startSN,i.startSN)-i.startSN,d=Math.min(n.endSN,i.endSN)-i.startSN,h=i.startSN-n.startSN,f=n.fragments,o=i.fragments,u=0;if(c>d)return void(i.PTSKnown=!1);for(var r=c;d>=r;r++){var l=f[h+r],a=o[r];u=l.cc-a.cc,isNaN(l.startPTS)||(a.start=a.startPTS=l.startPTS,a.endPTS=l.endPTS,a.duration=l.duration,s=a)}if(u)for(t.logger.log("discontinuity sliding from playlist, take drift into account"),r=0;r<o.length;r++)o[r].cc+=u;if(s)e.updateFragPTS(i,s.sn,s.startPTS,s.endPTS);else{var v=f[h].start;for(r=0;r<o.length;r++)o[r].start+=v}i.PTSKnown=n.PTSKnown}},{key:"updateFragPTS",value:function(i,l,a,s){var o,n,r,t;if(l<i.startSN||l>i.endSN)return 0;o=l-i.startSN,n=i.fragments,r=n[o],isNaN(r.startPTS)||(a=Math.min(a,r.startPTS),s=Math.max(s,r.endPTS));var u=a-r.start;for(r.start=r.startPTS=a,r.endPTS=s,r.duration=s-a,t=o;t>0;t--)e.updatePTS(n,t,t-1);for(t=o;t<n.length-1;t++)e.updatePTS(n,t,t+1);return i.PTSKnown=!0,u}},{key:"updatePTS",value:function(s,i,a){var e=s[i],r=s[a],n=r.startPTS;isNaN(n)?a>i?r.start=e.start+e.duration:r.start=e.start-r.duration:a>i?(e.duration=n-e.start,e.duration<0&&t.logger.error("negative duration computed for frag "+e.sn+",level "+e.level+", there should be some duration drift between playlist and fragment!")):(r.duration=e.start-n,r.duration<0&&t.logger.error("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!"))}}]),e}();e.default=s,i.exports=e.default},{"../utils/logger":31}],22:[function(t,v,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var n=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),_=t("./events"),i=r(_),s=t("./errors"),u=t("./loader/playlist-loader"),d=r(u),h=t("./loader/fragment-loader"),f=r(h),c=t("./controller/abr-controller"),w=r(c),g=t("./controller/mse-media-controller"),p=r(g),y=t("./controller/level-controller"),m=r(y),b=t("./controller/timeline-controller"),E=r(b),e=t("./utils/logger"),R=t("./utils/xhr-loader"),A=r(R),L=t("events"),k=r(L),T=t("./loader/key-loader"),S=r(T),l=function(){function t(){var i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];o(this,t);var n=t.DefaultConfig;for(var a in n)a in i||(i[a]=n[a]);if(void 0!==i.liveMaxLatencyDurationCount&&i.liveMaxLatencyDurationCount<=i.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');(0,e.enableLogs)(i.debug),this.config=i;var r=this.observer=new k.default;r.trigger=function(i){for(var t=arguments.length,a=Array(t>1?t-1:0),e=1;t>e;e++)a[e-1]=arguments[e];r.emit.apply(r,[i,i].concat(a))},r.off=function(a){for(var t=arguments.length,i=Array(t>1?t-1:0),e=1;t>e;e++)i[e-1]=arguments[e];r.removeListener.apply(r,[a].concat(i))},this.on=r.on.bind(r),this.off=r.off.bind(r),this.trigger=r.trigger.bind(r),this.playlistLoader=new d.default(this),this.fragmentLoader=new f.default(this),this.levelController=new m.default(this),this.abrController=new i.abrController(this),this.mediaController=new i.mediaController(this),this.timelineController=new i.timelineController(this),this.keyLoader=new S.default(this)}return n(t,null,[{key:"isSupported",value:function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}},{key:"Events",get:function(){return i.default}},{key:"ErrorTypes",get:function(){return s.ErrorTypes}},{key:"ErrorDetails",get:function(){return s.ErrorDetails}},{key:"DefaultConfig",get:function(){return t.defaultConfig||(t.defaultConfig={autoStartLoad:!0,debug:!1,maxBufferLength:30,maxBufferSize:6e7,maxBufferHole:.5,maxSeekHole:2,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingLoopThreshold:3,appendErrorMaxRetry:3,loader:A.default,fLoader:void 0,pLoader:void 0,abrController:w.default,mediaController:p.default,timelineController:E.default,enableCEA708Captions:!0}),t.defaultConfig},set:function(e){t.defaultConfig=e}}]),n(t,[{key:"destroy",value:function(){e.logger.log("destroy"),this.trigger(i.default.DESTROYING),this.detachMedia(),this.playlistLoader.destroy(),this.fragmentLoader.destroy(),this.levelController.destroy(),this.mediaController.destroy(),this.timelineController.destroy(),this.keyLoader.destroy(),this.url=null,this.observer.removeAllListeners()}},{key:"attachMedia",value:function(t){e.logger.log("attachMedia"),this.media=t,this.trigger(i.default.MEDIA_ATTACHING,{media:t})}},{key:"detachMedia",value:function(){e.logger.log("detachMedia"),this.trigger(i.default.MEDIA_DETACHING),this.media=null}},{key:"loadSource",value:function(t){e.logger.log("loadSource:"+t),this.url=t,this.trigger(i.default.MANIFEST_LOADING,{url:t})}},{key:"startLoad",value:function(){e.logger.log("startLoad"),this.mediaController.startLoad()}},{key:"swapAudioCodec",value:function(){e.logger.log("swapAudioCodec"),this.mediaController.swapAudioCodec()}},{key:"recoverMediaError",value:function(){e.logger.log("recoverMediaError");var t=this.media;this.detachMedia(),this.attachMedia(t)}},{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.mediaController.currentLevel},set:function(t){e.logger.log("set currentLevel:"+t),this.loadLevel=t,this.mediaController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.mediaController.nextLevel},set:function(t){e.logger.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.mediaController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(t){e.logger.log("set loadLevel:"+t),this.levelController.manualLevel=t}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel()},set:function(e){this.levelController.level=e}},{key:"firstLevel",get:function(){return this.levelController.firstLevel},set:function(t){e.logger.log("set firstLevel:"+t),this.levelController.firstLevel=t}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(t){e.logger.log("set startLevel:"+t),this.levelController.startLevel=t}},{key:"autoLevelCapping",get:function(){return this.abrController.autoLevelCapping},set:function(t){e.logger.log("set autoLevelCapping:"+t),this.abrController.autoLevelCapping=t}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}}]),t}();a.default=l,v.exports=a.default},{"./controller/abr-controller":3,"./controller/level-controller":4,"./controller/mse-media-controller":5,"./controller/timeline-controller":6,"./errors":18,"./events":20,"./loader/fragment-loader":23,"./loader/key-loader":24,"./loader/playlist-loader":25,"./utils/logger":31,"./utils/xhr-loader":33,events:1}],23:[function(r,o,i){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(i,"__esModule",{value:!0});var s=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),c=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=r("../events"),e=a(l),d=r("../event-handler"),n=a(d),t=r("../errors"),u=function(i){function r(t){h(this,r),c(Object.getPrototypeOf(r.prototype),"constructor",this).call(this,t,e.default.FRAG_LOADING)}return f(r,i),s(r,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null),n.default.prototype.destroy.call(this)}},{key:"onFragLoading",value:function(r){var t=r.frag;this.frag=t,this.frag.loaded=0;var e=this.hls.config;t.loader=this.loader="undefined"!=typeof e.fLoader?new e.fLoader(e):new e.loader(e),this.loader.load(t.url,"arraybuffer",this.loadsuccess.bind(this),this.loaderror.bind(this),this.loadtimeout.bind(this),e.fragLoadingTimeOut,1,0,this.loadprogress.bind(this),t)}},{key:"loadsuccess",value:function(i,t){var r=i.currentTarget.response;t.length=r.byteLength,this.frag.loader=void 0,this.hls.trigger(e.default.FRAG_LOADED,{payload:r,frag:this.frag,stats:t})}},{key:"loaderror",value:function(r){this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:this.frag,response:r})}},{key:"loadtimeout",value:function(){this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:this.frag})}},{key:"loadprogress",value:function(r,t){this.frag.loaded=t.loaded,this.hls.trigger(e.default.FRAG_LOAD_PROGRESS,{frag:this.frag,stats:t})}}]),r}(n.default);i.default=u,o.exports=i.default},{"../errors":18,"../event-handler":19,"../events":20}],24:[function(r,o,i){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(i,"__esModule",{value:!0});var s=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),c=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=r("../events"),e=a(l),d=r("../event-handler"),n=a(d),t=r("../errors"),u=function(i){function r(t){h(this,r),c(Object.getPrototypeOf(r.prototype),"constructor",this).call(this,t,e.default.KEY_LOADING),this.decryptkey=null,this.decrypturl=null}return f(r,i),s(r,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null),n.default.prototype.destroy.call(this)}},{key:"onKeyLoading",value:function(n){var t=this.frag=n.frag,a=t.decryptdata,i=a.uri;if(i!==this.decrypturl||null===this.decryptkey){var r=this.hls.config;t.loader=this.loader=new r.loader(r),this.decrypturl=i,this.decryptkey=null,t.loader.load(i,"arraybuffer",this.loadsuccess.bind(this),this.loaderror.bind(this),this.loadtimeout.bind(this),r.fragLoadingTimeOut,r.fragLoadingMaxRetry,r.fragLoadingRetryDelay,this.loadprogress.bind(this),t)}else this.decryptkey&&(a.key=this.decryptkey,this.hls.trigger(e.default.KEY_LOADED,{frag:t}))}},{key:"loadsuccess",value:function(r){var t=this.frag;this.decryptkey=t.decryptdata.key=new Uint8Array(r.currentTarget.response),t.loader=void 0,this.hls.trigger(e.default.KEY_LOADED,{frag:t})}},{key:"loaderror",value:function(r){this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.KEY_LOAD_ERROR,fatal:!1,frag:this.frag,response:r})}},{key:"loadtimeout",value:function(){this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.KEY_LOAD_TIMEOUT,fatal:!1,frag:this.frag})}},{key:"loadprogress",value:function(){}}]),r}(n.default);i.default=u,o.exports=i.default},{"../errors":18,"../event-handler":19,"../events":20}],25:[function(r,u,a){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(a,"__esModule",{value:!0});var p=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),o=function(a,n,s){for(var r=!0;r;){var t=a,o=n,l=s;r=!1,null===t&&(t=Function.prototype);var e=Object.getOwnPropertyDescriptor(t,o);if(void 0!==e){if("value"in e)return e.value;var u=e.get;if(void 0===u)return;return u.call(l)}var i=Object.getPrototypeOf(t);if(null===i)return;a=i,n=o,s=l,r=!0,e=i=void 0}},l=r("../events"),t=i(l),y=r("../event-handler"),n=i(y),e=r("../errors"),c=r("../utils/url"),v=i(c),g=r("../utils/attr-list"),s=i(g),h=function(i){function r(e){d(this,r),o(Object.getPrototypeOf(r.prototype),"constructor",this).call(this,e,t.default.MANIFEST_LOADING,t.default.LEVEL_LOADING)}return f(r,i),p(r,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null),this.url=this.id=null,n.default.prototype.destroy.call(this)}},{key:"onManifestLoading",value:function(e){this.load(e.url,null)}},{key:"onLevelLoading",value:function(e){this.load(e.url,e.level,e.id)}},{key:"load",value:function(a,n,s){var t,r,i,e=this.hls.config;this.url=a,this.id=n,this.id2=s,void 0===this.id?(t=e.manifestLoadingMaxRetry,r=e.manifestLoadingTimeOut,i=e.manifestLoadingRetryDelay):(t=e.levelLoadingMaxRetry,r=e.levelLoadingTimeOut,i=e.levelLoadingRetryDelay),this.loader="undefined"!=typeof e.pLoader?new e.pLoader(e):new e.loader(e),this.loader.load(a,"",this.loadsuccess.bind(this),this.loaderror.bind(this),this.loadtimeout.bind(this),r,t,i)}},{key:"resolve",value:function(e,t){return v.default.buildAbsoluteURL(t,e)}},{key:"parseMasterPlaylist",value:function(h,u){for(var l=[],i=void 0,d=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g;null!=(i=d.exec(h));){var e={},r=e.attrs=new s.default(i[1]);e.url=this.resolve(i[2],u);var n=r.decimalResolution("RESOLUTION");n&&(e.width=n.width,e.height=n.height),e.bitrate=r.decimalInteger("BANDWIDTH"),e.name=r.NAME;var t=r.CODECS;if(t){t=t.split(",");for(var o=0;o<t.length;o++){var a=t[o];-1!==a.indexOf("avc1")?e.videoCodec=this.avc1toavcoti(a):e.audioCodec=a}}l.push(e)}return l}},{key:"avc1toavcoti",value:function(r){var e,t=r.split(".");return t.length>2?(e=t.shift()+".",e+=parseInt(t.shift()).toString(16),e+=("000"+parseInt(t.shift()).toString(16)).substr(-4)):e=r,e}},{key:"cloneObj",value:function(e){return JSON.parse(JSON.stringify(e))}},{key:"parseLevelPlaylist",value:function(L,l,A){var e,E,n,a,g=0,o=0,i={url:l,fragments:[],live:!0,startSN:0},r={method:null,key:null,iv:null,uri:null},b=0,h=null,t=null;for(E=/(?:#EXT-X-(MEDIA-SEQUENCE):(\d+))|(?:#EXT-X-(TARGETDURATION):(\d+))|(?:#EXT-X-(KEY):(.*))|(?:#EXT(INF):([\d\.]+)[^\r\n]*([\r\n]+[^#|\r\n]+)?)|(?:#EXT-X-(BYTERANGE):([\d]+[@[\d]*)]*[\r\n]+([^#|\r\n]+)?|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(PROGRAM-DATE-TIME):(.*))/g;null!==(e=E.exec(L));)switch(e.shift(),e=e.filter(function(e){return void 0!==e}),e[0]){case"MEDIA-SEQUENCE":g=i.startSN=parseInt(e[1]);break;case"TARGETDURATION":i.targetduration=parseFloat(e[1]);break;case"ENDLIST":i.live=!1;break;case"DIS":b++;break;case"BYTERANGE":var c=e[1].split("@");a=1===c.length?n:parseInt(c[1]),n=parseInt(c[0])+a,t&&!t.url&&(t.byteRangeStartOffset=a,t.byteRangeEndOffset=n,t.url=this.resolve(e[2],l));break;case"INF":var v=parseFloat(e[1]);if(!isNaN(v)){var u,m=g++;if(r.method&&r.uri&&!r.iv){u=this.cloneObj(r);for(var y=new Uint8Array(16),d=12;16>d;d++)y[d]=m>>8*(15-d)&255;u.iv=y}else u=r;var k=e[2]?this.resolve(e[2],l):null;t={url:k,duration:v,start:o,sn:m,level:A,cc:b,byteRangeStartOffset:a,byteRangeEndOffset:n,decryptdata:u,programDateTime:h},i.fragments.push(t),o+=v,a=null,h=null}break;case"KEY":var R=e[1],p=new s.default(R),f=p.enumeratedString("METHOD"),_=p.URI,T=p.hexadecimalInteger("IV");f&&(r={method:null,key:null,iv:null,uri:null},_&&"AES-128"===f&&(r.method=f,r.uri=this.resolve(_,l),r.key=null,r.iv=T));break;case"PROGRAM-DATE-TIME":h=new Date(Date.parse(e[1]))}return t&&!t.url&&(i.fragments.pop(),o-=t.duration),i.totalduration=o,i.endSN=g-1,i}},{key:"loadsuccess",value:function(u,i){var s,o=u.currentTarget,n=o.responseText,r=o.responseURL,l=this.id,d=this.id2,a=this.hls;if(void 0===r&&(r=this.url),i.tload=performance.now(),i.mtime=new Date(o.getResponseHeader("Last-Modified")),0===n.indexOf("#EXTM3U"))if(n.indexOf("#EXTINF:")>0)if(null===this.id)a.trigger(t.default.MANIFEST_LOADED,{levels:[{url:r}],url:r,stats:i});else{var h=this.parseLevelPlaylist(n,r,l);i.tparsed=performance.now(),a.trigger(t.default.LEVEL_LOADED,{details:h,level:l,id:d,stats:i})}else s=this.parseMasterPlaylist(n,r),s.length?a.trigger(t.default.MANIFEST_LOADED,{levels:s,url:r,stats:i}):a.trigger(t.default.ERROR,{type:e.ErrorTypes.NETWORK_ERROR,details:e.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:r,reason:"no level found in manifest"});else a.trigger(t.default.ERROR,{type:e.ErrorTypes.NETWORK_ERROR,details:e.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:!0,url:r,reason:"no EXTM3U delimiter"})}},{key:"loaderror",value:function(a){var r,i;null===this.id?(r=e.ErrorDetails.MANIFEST_LOAD_ERROR,i=!0):(r=e.ErrorDetails.LEVEL_LOAD_ERROR,i=!1),this.loader.abort(),this.hls.trigger(t.default.ERROR,{type:e.ErrorTypes.NETWORK_ERROR,details:r,fatal:i,url:this.url,loader:this.loader,response:a.currentTarget,level:this.id,id:this.id2})}},{key:"loadtimeout",value:function(){var r,i;null===this.id?(r=e.ErrorDetails.MANIFEST_LOAD_TIMEOUT,i=!0):(r=e.ErrorDetails.LEVEL_LOAD_TIMEOUT,i=!1),this.loader.abort(),this.hls.trigger(t.default.ERROR,{type:e.ErrorTypes.NETWORK_ERROR,details:r,fatal:i,url:this.url,loader:this.loader,level:this.id,id:this.id2})}}]),r}(n.default);a.default=h,u.exports=a.default},{"../errors":18,"../event-handler":19,"../events":20,"../utils/attr-list":28,"../utils/url":32}],26:[function(n,t,e){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function e(i,r){for(var t=0;t<r.length;t++){var e=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),a=function(){function e(){r(this,e)}return i(e,null,[{key:"init",value:function(){e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};var t;for(t in e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var i=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),a=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);e.HDLR_TYPES={video:i,audio:a};var n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),s=new Uint8Array([0,0,0,0,0,0,0,0]);e.STTS=e.STSC=e.STCO=s,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var r=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);e.FTYP=e.box(e.types.ftyp,r,l,r,o),e.DINF=e.box(e.types.dinf,e.box(e.types.dref,n))}},{key:"box",value:function(a){for(var t,i=Array.prototype.slice.call(arguments,1),e=8,r=i.length,n=r;r--;)e+=i[r].byteLength;for(t=new Uint8Array(e),t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t.set(a,4),r=0,e=8;n>r;r++)t.set(i[r],e),e+=i[r].byteLength;return t}},{key:"hdlr",value:function(t){return e.box(e.types.hdlr,e.HDLR_TYPES[t])}},{key:"mdat",value:function(t){return e.box(e.types.mdat,t)}},{key:"mdhd",value:function(t,r){return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,2,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}},{key:"mdia",value:function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))}},{key:"mfhd",value:function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}},{key:"minf",value:function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))}},{key:"moof",value:function(t,r,i){return e.box(e.types.moof,e.mfhd(t),e.traf(i,r))}},{key:"moov",value:function(t){for(var r=t.length,i=[];r--;)i[r]=e.trak(t[r]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(e.mvex(t)))}},{key:"mvex",value:function(r){for(var t=r.length,i=[];t--;)i[t]=e.trex(r[t]);return e.box.apply(null,[e.types.mvex].concat(i))}},{key:"mvhd",value:function(t,r){var i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,2,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,i)}},{key:"sdtp",value:function(n){var r,t,i=n.samples||[],a=new Uint8Array(4+i.length);for(t=0;t<i.length;t++)r=i[t].flags,a[t+4]=r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy;return e.box(e.types.sdtp,a)}},{key:"stbl",value:function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.st