@sgrsoft/vpe-core-sdk 0.23.2 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/maManager.d.ts +13 -0
- package/dist/vpe-core-sdk.cjs.js +1 -1
- package/dist/vpe-core-sdk.es.js +810 -783
- package/package.json +1 -1
package/dist/vpe-core-sdk.es.js
CHANGED
|
@@ -1,114 +1,113 @@
|
|
|
1
|
-
function
|
|
2
|
-
var x = ["
|
|
3
|
-
return
|
|
1
|
+
function _e() {
|
|
2
|
+
var x = ["seconds until auto-play", "Blue", "Thin", "Player Execution Failed", "Depressed", "Next video", "347398ncaKqX", "Auto Skip Ending", "24WevMls", "Semi Bold", "Window Color", "Subtitles not available", "Raised", "Unmute", "Cannot play DASH video on iOS.", "You are muted.", "3nAhogb", "The network connection is unstable.", "Language", "Next video will play in {timeTxt} seconds.", "Fullscreen", "Change text, color, and background styles", "Quality", "min", "Skip Intro", "Font Weight", "Skip Opening", "Not used", "hour(s)", "Playback speed", "90ukqUIc", "Auto", "Play", "1886913LXekdZ", "Font Color", "2437780wLtgAn", "Background Opacity", "You do not have permission to play this video.", "Window Opacity", "The live stream is OFFLINE.", "Skip Ending", "Extra Bold", "Drop Shadow", "2256855gskANN", "Invalid DRM token.", "This video may be inappropriate for minors.", "FairPlay certificate validation failed.", "Replay", "Font Size", "18203064cScUbi", "This video may be inappropriate for children under 12 and requires parental guidance.", "Horror", "Authentication Failed", "Normal", "hour", "173750yPRveR", "Black", "Subtitles", "Previous video", "None", "Background Color", "This feature requires the Standard plan.", "Text Edge Style", "Autoplay", "Cannot play video", "Monthly basic API calls exceeded. Please switch to a paid version.", "1195068eqXkrE", "Invalid access. Please check your access_key.", "The license is not valid.", "Imitation risk", "Screen capture / screen recording has been detected.", "Failed to communicate with the DRM license server.", "Mini player", "Default", "Unsupported format.", "Auto Skip Opening", "LIVE", "Subtitle Style", "Turn off captions", "Player Startup Failed", "License", "20MptyOp", "This video may be inappropriate for children under 15 and requires parental guidance.", "Green", "Video will start in {timeTxt}.", "Drugs", "Text Opacity", "Cyan", "Scheduled", "This video is rated for all audiences.", "In a moment"];
|
|
3
|
+
return _e = function() {
|
|
4
4
|
return x;
|
|
5
|
-
},
|
|
5
|
+
}, _e();
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
var h = Mt;
|
|
8
|
+
function Mt(x, t) {
|
|
9
|
+
x = x - 351;
|
|
10
|
+
var e = _e(), i = e[x];
|
|
10
11
|
return i;
|
|
11
12
|
}
|
|
12
|
-
var b = At;
|
|
13
13
|
(function(x, t) {
|
|
14
|
-
for (var e =
|
|
14
|
+
for (var e = Mt, i = x(); ; )
|
|
15
15
|
try {
|
|
16
|
-
var n =
|
|
16
|
+
var n = parseInt(e(368)) / 1 * (parseInt(e(358)) / 2) + -parseInt(e(395)) / 3 + -parseInt(e(387)) / 4 + parseInt(e(407)) / 5 * (-parseInt(e(382)) / 6) + -parseInt(e(418)) / 7 * (-parseInt(e(360)) / 8) + parseInt(e(385)) / 9 * (-parseInt(e(433)) / 10) + parseInt(e(401)) / 11;
|
|
17
17
|
if (n === t) break;
|
|
18
18
|
i.push(i.shift());
|
|
19
19
|
} catch {
|
|
20
20
|
i.push(i.shift());
|
|
21
21
|
}
|
|
22
|
-
})(
|
|
23
|
-
const
|
|
24
|
-
var w =
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}, Te();
|
|
22
|
+
})(_e, 385799);
|
|
23
|
+
const Jt = { common: { cancel: "Cancel", auto: h(383), normal: "Normal", notUse: h(379), prev: h(410), next: h(357), delayText: h(352), license: h(432), play: h(384), pause: "Pause", replay: h(399), fullOn: h(372), fullOff: "Exit fullscreen", muteOn: "Mute", muteOff: h(365), captionOff: h(430), captionOn: "Turn on captions", setting: "Settings", live: h(428), miniPlayer: h(424), isMute: h(367), subtitle: "Subtitles", subtitleNot: h(363) }, settings: { autoplay: h(415), playbackRate: h(381), captions: h(409), quality: h(374) }, skip: { introSkip: h(376), openingSkip: h(378), endingSkip: h(392), autoSkipIntro: "Auto Skip Intro", autoSkipOpening: h(427), autoSkipEnding: h(359), autoSkipOpeningEnding: "Auto Skip Opening/Ending" }, ageRating: { noticeAll: h(441), notice12: h(402), notice15: h(434), notice19: h(397) }, contentWarning: { sexuality: "Sexuality", violence: "Violence", language: h(370), drugs: h(437), horror: h(403), imitation: h(421), provocative: "Provocative content" }, error: { "01": { title: h(416), desc: h(419) }, "02": { title: h(416), desc: h(389) }, "03": { title: h(404), desc: h(369) }, "04": { title: h(416), desc: "The video could not be played." }, "05": { title: h(416), desc: h(420) }, "06": { title: h(416), desc: h(417) }, "07": { title: h(416), desc: h(426) }, "08": { title: h(416), desc: "Invalid URL format." }, "09": { title: h(416), desc: h(391) }, 10: { title: h(416), desc: h(366) }, 11: { title: h(416), desc: h(396) }, 12: { title: h(416), desc: h(423) }, 13: { title: h(416), desc: h(398) }, 14: { title: h(416), desc: h(422) }, 15: { title: "Player Execution Failed", desc: "Required module was not loaded. (hls.js)" }, 16: { title: h(355), desc: "Required module was not loaded. (dash.js)" }, 17: { title: h(431), desc: h(413) } }, tv: { default: h(425), quality: h(374), subtitleStyle: h(429), subtitleStyleDesc: h(373), applyDefaultStyle: "Apply Default Style", fontColor: h(386), fontSize: h(400), textOpacity: h(438), edgeStyle: h(414), bgColor: h(412), bgOpacity: h(388), windowColor: h(362), windowOpacity: h(390), fontWeight: h(377), weight: { thin: h(354), normal: h(405), semiBold: h(361), bold: "Bold", extraBold: h(393) }, color: { white: "White", black: h(408), red: "Red", green: h(435), blue: h(353), yellow: "Yellow", magenta: "Magenta", cyan: h(439) }, edge: { none: h(411), dropShadow: h(394), raised: h(364), depressed: h(356), uniform: "Uniform" } }, alternative: { hour: h(380), minute: "minute(s)", second: "second(s)", after: h(351), afterMin: h(375), afterHour: h(406), afterDay: "day", startPlay: h(436), nextPlay: h(371), afterPlay: h(440) } };
|
|
24
|
+
var w = Rt;
|
|
25
|
+
function Rt(x, t) {
|
|
26
|
+
x = x - 495;
|
|
27
|
+
var e = Ee(), i = e[x];
|
|
28
|
+
return i;
|
|
30
29
|
}
|
|
31
30
|
(function(x, t) {
|
|
32
|
-
for (var e =
|
|
31
|
+
for (var e = Rt, i = x(); ; )
|
|
33
32
|
try {
|
|
34
|
-
var n = parseInt(e(
|
|
33
|
+
var n = -parseInt(e(558)) / 1 + -parseInt(e(544)) / 2 * (-parseInt(e(533)) / 3) + parseInt(e(559)) / 4 + -parseInt(e(497)) / 5 + parseInt(e(550)) / 6 + -parseInt(e(520)) / 7 + parseInt(e(518)) / 8;
|
|
35
34
|
if (n === t) break;
|
|
36
35
|
i.push(i.shift());
|
|
37
36
|
} catch {
|
|
38
37
|
i.push(i.shift());
|
|
39
38
|
}
|
|
40
|
-
})(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var
|
|
44
|
-
return
|
|
39
|
+
})(Ee, 262700);
|
|
40
|
+
const Xt = { common: { cancel: "취소", auto: "자동", normal: "보통", notUse: w(517), prev: w(510), next: "다음 동영상", delayText: "초 뒤 자동재생", license: w(532), play: "재생", pause: w(519), replay: "다시보기", fullOn: "전체화면", fullOff: w(513), muteOn: "음소거", muteOff: w(507), captionOff: w(525), captionOn: w(537), setting: "설정", live: w(526), miniPlayer: w(524), isMute: w(528), subtitle: "자막", subtitleNot: w(514) }, settings: { autoplay: w(551), playbackRate: w(505), captions: "자막", quality: "해상도" }, skip: { introSkip: w(512), openingSkip: w(502), endingSkip: w(545), autoSkipIntro: w(521), autoSkipOpening: w(555), autoSkipEnding: w(547), autoSkipOpeningEnding: "오프닝/엔딩 자동 스킵" }, ageRating: { noticeAll: "이 영상은 전체 관람가 영상입니다.", notice12: w(557), notice15: "이 영상은 15세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", notice19: w(506) }, contentWarning: { sexuality: w(503), violence: "폭력", language: "욕설", drugs: "약물", horror: "공포", imitation: "모방위험", provocative: "자극적 장면" }, error: { "01": { title: w(554), desc: "잘못된 접근입니다. access_key를 확인해주세요." }, "02": { title: "동영상을 재생할 수 없음", desc: "동영상을 재생할 권한이 없습니다." }, "03": { title: w(549), desc: "네트워크 연결이 원활하지 않습니다." }, "04": { title: w(554), desc: "동영상을 재생할 수 없습니다." }, "05": { title: w(554), desc: w(543) }, "06": { title: w(554), desc: w(560) }, "07": { title: "동영상을 재생할 수 없음", desc: w(522) }, "08": { title: w(554), desc: w(504) }, "09": { title: "동영상을 재생할 수 없음", desc: w(527) }, 10: { title: w(554), desc: w(540) }, 11: { title: w(554), desc: w(556) }, 12: { title: w(554), desc: w(515) }, 13: { title: w(554), desc: w(561) }, 14: { title: w(554), desc: "화면 캡쳐 / 화면 녹화가 감지되었습니다." }, 15: { title: w(553), desc: w(508) }, 16: { title: w(553), desc: w(548) }, 17: { title: w(499), desc: w(500) } }, tv: { default: "기본", quality: "화질", subtitleStyle: w(531), subtitleStyleDesc: w(523), applyDefaultStyle: w(496), fontColor: w(552), fontSize: w(541), textOpacity: w(495), edgeStyle: "글자 테두리 스타일", bgColor: "배경 색상", bgOpacity: w(498), windowColor: w(546), windowOpacity: w(536), fontWeight: "글자 굵기", weight: { thin: "얇게", normal: "보통", semiBold: w(511), bold: "굵게", extraBold: "매우 굵게" }, color: { white: "흰색", black: w(530), red: w(535), green: w(538), blue: w(534), yellow: w(542), magenta: "자홍색", cyan: "청록색" }, edge: { none: "없음", dropShadow: w(501), raised: "양각", depressed: "음각", uniform: "균일" } }, alternative: { hour: "시", minute: "분", second: "초", after: w(539), afterMin: "분 ", afterHour: w(529), afterDay: "일 ", startPlay: w(516), nextPlay: w(509), afterPlay: "예정" } };
|
|
41
|
+
function Ee() {
|
|
42
|
+
var x = ["{timeTxt} 후 영상이 시작됩니다.", "사용안함", "2032416FTymdS", "일시정지", "1446172OAxPAJ", "인트로 자동 스킵", "지원하지 않는 형식입니다.", "텍스트, 색상, 배경 스타일 변경", "미니플레이어", "자막끄기", "실시간", "라이브스트림이 OFFLINE 입니다.", "음소거 상태입니다.", "시간 ", "검정색", "자막 스타일", "라이선스", "17955ZnMGRO", "파란색", "빨간색", "창 불투명도", "자막켜기", "초록색", "잠시 ", "iOS에서 Dash 비디오를 재생할 수 없습니다.", "글꼴 크기", "노란색", "라이선스가 유효하지 않습니다.", "110sMwczw", "엔딩 건너뛰기", "창 색상", "엔딩 자동 스킵", "필수 모듈이 로드되지 않았습니다. (dash.js)", "인증 실패", "19452CztrJS", "자동재생", "글꼴 색상", "플레이어 실행 실패", "동영상을 재생할 수 없음", "오프닝 자동 스킵", "DRM 토큰이 잘못되었습니다.", "이 영상은 12세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", "124923dtBMmx", "267964mGhfuJ", "월 기본 제공 호출 건수를 초과하였습니다. 유료 버전으로 전환 후 사용 부탁 드립니다.", "FairPlay 인증서 검증에 실패하였습니다.", "텍스트 불투명도", "기본 스타일 적용", "296205QRXsOx", "배경 불투명도", "플레이어 구동 실패", "Standard 요금제가 필요한 기능입니다.", "그림자", "오프닝 건너뛰기", "성적 표현", "URL 형식이 잘못되었습니다.", "재생 속도", "이 영상은 청소년이 시청하기에 부적절한 영상입니다.", "음소거 해제", "필수 모듈이 로드되지 않았습니다. (hls.js)", "{timeTxt}초 후 다음 영상이 재생됩니다.", "이전 동영상", "약간 굵게", "인트로 건너뛰기", "전체화면 해제", "자막 사용 불가", "DRM 라이선스 서버와 통신에 실패하였습니다."];
|
|
43
|
+
return Ee = function() {
|
|
44
|
+
return x;
|
|
45
|
+
}, Ee();
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
x = x - 245;
|
|
50
|
-
var e = Ce(), i = e[x];
|
|
47
|
+
function Ot(x, t) {
|
|
48
|
+
x = x - 421;
|
|
49
|
+
var e = Te(), i = e[x];
|
|
51
50
|
return i;
|
|
52
51
|
}
|
|
52
|
+
var g = Ot;
|
|
53
53
|
(function(x, t) {
|
|
54
|
-
for (var e =
|
|
54
|
+
for (var e = Ot, i = x(); ; )
|
|
55
55
|
try {
|
|
56
|
-
var n = parseInt(e(
|
|
56
|
+
var n = -parseInt(e(484)) / 1 + parseInt(e(454)) / 2 * (parseInt(e(465)) / 3) + parseInt(e(477)) / 4 * (parseInt(e(431)) / 5) + parseInt(e(434)) / 6 * (-parseInt(e(425)) / 7) + -parseInt(e(459)) / 8 + -parseInt(e(460)) / 9 * (-parseInt(e(466)) / 10) + parseInt(e(453)) / 11;
|
|
57
57
|
if (n === t) break;
|
|
58
58
|
i.push(i.shift());
|
|
59
59
|
} catch {
|
|
60
60
|
i.push(i.shift());
|
|
61
61
|
}
|
|
62
|
-
})(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return Ce = function() {
|
|
62
|
+
})(Te, 921790);
|
|
63
|
+
function Te() {
|
|
64
|
+
var x = ["不正なアクセスです。access_keyを確認してください。", "ライセンスが無効です。", "全画面表示", "ドロップシャドウ", "刺激的な場面", "デフォルト", "2992099UjLHPS", "2OdImyN", "ミュート状態です。", "沈み込み", "字幕スタイル", "模倣危険", "7235008qzgGwa", "9sQstHb", "自動再生", "時間後", "エンディングをスキップ", "シアン", "5214099NsHfLZ", "15000890HPrUOQ", "動画を再生できませんでした。", "オープニング自動スキップ", "iOSではDASHビデオを再生できません。", "イントロ自動スキップ", "ライブストリームはオフラインです。", "テキスト不透明度", "リプレイ", "字幕は利用できません", "ミュート", "しばらくして", "60bQizeW", "ライセンス", "やや太い", "前の動画", "フォント色", "ライブ", "DRMライセンスサーバーとの通信に失敗しました。", "725357tBuvfC", "ウィンドウ不透明度", "字幕をオンにする", "月間の基本提供呼び出し回数を超過しました。有料版に切り替えてご利用ください。", "全画面表示を終了", "この機能にはStandardプランが必要です。", "フォントサイズ", "文字エッジスタイル", "212583iXUzXy", "デフォルトスタイルを適用", "一時停止", "背景色", "ミニプレーヤー", "プレーヤーの起動に失敗しました", "55015EWOtVt", "ネットワーク接続が不安定です。", "この映像は全年齢対象です。", "222dxPcSV", "次の動画", "文字の太さ", "この映像は未成年者の視聴には不適切な内容を含みます。", "動画を再生できません", "性的表現", "認証に失敗しました", "背景不透明度", "サポートされていない形式です。", "イントロをスキップ", "必須モジュールが読み込まれていません。(hls.js)", "{timeTxt}秒後に次の動画が再生されます。", "オープニングをスキップ"];
|
|
65
|
+
return Te = function() {
|
|
67
66
|
return x;
|
|
68
|
-
},
|
|
67
|
+
}, Te();
|
|
69
68
|
}
|
|
70
|
-
const
|
|
69
|
+
const Zt = { common: { cancel: "キャンセル", auto: "自動", normal: "標準", notUse: "使用しない", prev: g(480), next: g(435), delayText: "秒後に自動再生", license: g(478), play: "再生", pause: g(427), replay: g(473), fullOn: g(449), fullOff: g(421), muteOn: g(475), muteOff: "ミュート解除", captionOff: "字幕をオフにする", captionOn: g(486), setting: "設定", live: g(482), miniPlayer: g(429), isMute: g(455), subtitle: "字幕", subtitleNot: g(474) }, settings: { autoplay: g(461), playbackRate: "再生速度", captions: "字幕", quality: "画質" }, skip: { introSkip: g(443), openingSkip: g(446), endingSkip: g(463), autoSkipIntro: g(470), autoSkipOpening: g(468), autoSkipEnding: "エンディング自動スキップ", autoSkipOpeningEnding: "OP/ED自動スキップ" }, ageRating: { noticeAll: g(433), notice12: "この映像は12歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", notice15: "この映像は15歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", notice19: g(437) }, contentWarning: { sexuality: g(439), violence: "暴力", language: "暴言", drugs: "薬物", horror: "恐怖", imitation: g(458), provocative: g(451) }, error: { "01": { title: g(438), desc: g(447) }, "02": { title: g(438), desc: "この動画を再生する権限がありません。" }, "03": { title: g(440), desc: g(432) }, "04": { title: g(438), desc: g(467) }, "05": { title: g(438), desc: g(448) }, "06": { title: "動画を再生できません", desc: g(487) }, "07": { title: g(438), desc: g(442) }, "08": { title: g(438), desc: "URLの形式が正しくありません。" }, "09": { title: g(438), desc: g(471) }, 10: { title: g(438), desc: g(469) }, 11: { title: g(438), desc: "DRMトークンが無効です。" }, 12: { title: g(438), desc: g(483) }, 13: { title: g(438), desc: "FairPlay証明書の検証に失敗しました。" }, 14: { title: g(438), desc: "画面キャプチャ/画面録画が検出されました。" }, 15: { title: g(430), desc: g(444) }, 16: { title: "プレーヤーの起動に失敗しました", desc: "必須モジュールが読み込まれていません。(dash.js)" }, 17: { title: g(430), desc: g(422) } }, tv: { default: g(452), quality: "画質", subtitleStyle: g(457), subtitleStyleDesc: "テキスト、色、背景スタイルを変更", applyDefaultStyle: g(426), fontColor: g(481), fontSize: g(423), textOpacity: g(472), edgeStyle: g(424), bgColor: g(428), bgOpacity: g(441), windowColor: "ウィンドウ色", windowOpacity: g(485), fontWeight: g(436), weight: { thin: "細い", normal: "標準", semiBold: g(479), bold: "太い", extraBold: "極太" }, color: { white: "白", black: "黒", red: "赤", green: "緑", blue: "青", yellow: "黄", magenta: "マゼンタ", cyan: g(464) }, edge: { none: "なし", dropShadow: g(450), raised: "浮き出し", depressed: g(456), uniform: "均一" } }, alternative: { hour: "時間", minute: "分", second: "秒", after: g(476), afterMin: "分後", afterHour: g(462), afterDay: "日後", startPlay: "{timeTxt}後に動画が始まります。", nextPlay: g(445), afterPlay: "予定" } }, Xe = Nt;
|
|
71
70
|
(function(x, t) {
|
|
72
|
-
const e =
|
|
71
|
+
const e = Nt, i = x();
|
|
73
72
|
for (; ; )
|
|
74
73
|
try {
|
|
75
|
-
if (parseInt(e(
|
|
74
|
+
if (parseInt(e(500)) / 1 * (parseInt(e(504)) / 2) + -parseInt(e(496)) / 3 * (-parseInt(e(497)) / 4) + -parseInt(e(498)) / 5 * (parseInt(e(508)) / 6) + -parseInt(e(495)) / 7 * (parseInt(e(501)) / 8) + -parseInt(e(499)) / 9 * (parseInt(e(506)) / 10) + -parseInt(e(505)) / 11 + -parseInt(e(502)) / 12 * (-parseInt(e(509)) / 13) === t) break;
|
|
76
75
|
i.push(i.shift());
|
|
77
76
|
} catch {
|
|
78
77
|
i.push(i.shift());
|
|
79
78
|
}
|
|
80
|
-
})(
|
|
81
|
-
const
|
|
82
|
-
function
|
|
83
|
-
const x = ["
|
|
84
|
-
return
|
|
79
|
+
})(Ce, 191791);
|
|
80
|
+
const Pt = { en: Jt, ko: Xt, ja: Zt };
|
|
81
|
+
function Ce() {
|
|
82
|
+
const x = ["24TtxNGb", "1704hENzjY", "language", "2102RDSvVu", "3327885oPnhpC", "30MaowDw", "undefined", "18HlGjNi", "61321LvulmT", "217609AfJAEH", "3pMfQbV", "607188cRbecM", "621545YZjsAn", "131913JZgrYK", "174omoSle"];
|
|
83
|
+
return Ce = function() {
|
|
85
84
|
return x;
|
|
86
|
-
},
|
|
85
|
+
}, Ce();
|
|
87
86
|
}
|
|
88
|
-
const
|
|
89
|
-
function
|
|
87
|
+
const Qt = () => typeof navigator !== Xe(507) && typeof navigator.language !== Xe(507);
|
|
88
|
+
function $t(x) {
|
|
90
89
|
const t = x.split("-")[0];
|
|
91
|
-
return t in
|
|
90
|
+
return t in Pt ? t : "en";
|
|
92
91
|
}
|
|
93
|
-
function
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
function Xe(x) {
|
|
97
|
-
const t = Ie;
|
|
92
|
+
function Ze(x) {
|
|
93
|
+
const t = Xe;
|
|
98
94
|
let e = "en";
|
|
99
|
-
x ? e = x :
|
|
100
|
-
const i =
|
|
101
|
-
return
|
|
95
|
+
x ? e = x : Qt() && (e = navigator[t(503)]);
|
|
96
|
+
const i = $t(e);
|
|
97
|
+
return Pt[i];
|
|
98
|
+
}
|
|
99
|
+
function Nt(x, t) {
|
|
100
|
+
return x = x - 495, Ce()[x];
|
|
102
101
|
}
|
|
103
|
-
|
|
104
|
-
var
|
|
102
|
+
Ze();
|
|
103
|
+
var e0 = "2.0.9", t0 = 500, dt = "user-agent", re = "", lt = "?", E = {
|
|
105
104
|
FUNCTION: "function",
|
|
106
105
|
OBJECT: "object",
|
|
107
106
|
STRING: "string",
|
|
108
107
|
UNDEFINED: "undefined"
|
|
109
|
-
}, P = "browser",
|
|
108
|
+
}, P = "browser", Y = "cpu", H = "device", L = "engine", N = "os", oe = "result", d = "name", s = "type", u = "vendor", l = "version", M = "architecture", he = "major", c = "model", Ie = "console", S = "mobile", k = "tablet", C = "smarttv", F = "wearable", ge = "xr", pe = "embedded", i0 = "fetcher", te = "inapp", it = "brands", Q = "formFactors", xt = "fullVersionList", se = "platform", at = "platformVersion", Le = "bitness", J = "sec-ch-ua", x0 = J + "-full-version-list", a0 = J + "-arch", n0 = J + "-" + Le, r0 = J + "-form-factors", o0 = J + "-" + S, s0 = J + "-" + c, Ut = J + "-" + se, c0 = Ut + "-version", Lt = [it, xt, S, c, se, at, M, Q, Le], me = "Amazon", ie = "Apple", ut = "ASUS", ft = "BlackBerry", Z = "Google", pt = "Huawei", Ge = "Lenovo", ht = "Honor", ye = "LG", Ve = "Microsoft", ze = "Motorola", bt = "Nvidia", wt = "OnePlus", Ye = "OPPO", de = "Samsung", gt = "Sharp", le = "Sony", qe = "Xiaomi", Ke = "Zebra", mt = "Chrome", yt = "Chromium", K = "Chromecast", ke = "Edge", ue = "Firefox", xe = "Opera", We = "Facebook", vt = "Sogou", ae = "Mobile ", ne = " Browser", Qe = "Windows", d0 = typeof window !== E.UNDEFINED, O = d0 && window.navigator ? window.navigator : void 0, $ = O && O.userAgentData ? O.userAgentData : void 0, l0 = function(x, t) {
|
|
110
109
|
var e = {}, i = t;
|
|
111
|
-
if (!
|
|
110
|
+
if (!Ae(t)) {
|
|
112
111
|
i = {};
|
|
113
112
|
for (var n in t)
|
|
114
113
|
for (var r in t[n])
|
|
@@ -117,37 +116,37 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
117
116
|
for (var o in x)
|
|
118
117
|
e[o] = i[o] && i[o].length % 2 === 0 ? i[o].concat(x[o]) : x[o];
|
|
119
118
|
return e;
|
|
120
|
-
},
|
|
119
|
+
}, Be = function(x) {
|
|
121
120
|
for (var t = {}, e = 0; e < x.length; e++)
|
|
122
121
|
t[x[e].toUpperCase()] = x[e];
|
|
123
122
|
return t;
|
|
124
123
|
}, $e = function(x, t) {
|
|
125
124
|
if (typeof x === E.OBJECT && x.length > 0) {
|
|
126
125
|
for (var e in x)
|
|
127
|
-
if (
|
|
126
|
+
if (W(t) == W(x[e])) return !0;
|
|
128
127
|
return !1;
|
|
129
128
|
}
|
|
130
|
-
return
|
|
131
|
-
},
|
|
129
|
+
return be(x) ? W(t) == W(x) : !1;
|
|
130
|
+
}, Ae = function(x, t) {
|
|
132
131
|
for (var e in x)
|
|
133
|
-
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ?
|
|
134
|
-
},
|
|
132
|
+
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ? Ae(x[e]) : !1);
|
|
133
|
+
}, be = function(x) {
|
|
135
134
|
return typeof x === E.STRING;
|
|
136
|
-
},
|
|
135
|
+
}, je = function(x) {
|
|
137
136
|
if (x) {
|
|
138
137
|
for (var t = [], e = ce(/\\?\"/g, x).split(","), i = 0; i < e.length; i++)
|
|
139
138
|
if (e[i].indexOf(";") > -1) {
|
|
140
|
-
var n =
|
|
139
|
+
var n = De(e[i]).split(";v=");
|
|
141
140
|
t[i] = { brand: n[0], version: n[1] };
|
|
142
141
|
} else
|
|
143
|
-
t[i] =
|
|
142
|
+
t[i] = De(e[i]);
|
|
144
143
|
return t;
|
|
145
144
|
}
|
|
146
|
-
},
|
|
147
|
-
return
|
|
145
|
+
}, W = function(x) {
|
|
146
|
+
return be(x) ? x.toLowerCase() : x;
|
|
148
147
|
}, et = function(x) {
|
|
149
|
-
return
|
|
150
|
-
},
|
|
148
|
+
return be(x) ? ce(/[^\d\.]/g, x).split(".")[0] : void 0;
|
|
149
|
+
}, z = function(x) {
|
|
151
150
|
for (var t in x)
|
|
152
151
|
if (x.hasOwnProperty(t)) {
|
|
153
152
|
var e = x[t];
|
|
@@ -155,19 +154,19 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
155
154
|
}
|
|
156
155
|
return this;
|
|
157
156
|
}, ce = function(x, t) {
|
|
158
|
-
return
|
|
159
|
-
},
|
|
157
|
+
return be(t) ? t.replace(x, re) : t;
|
|
158
|
+
}, fe = function(x) {
|
|
160
159
|
return ce(/\\?\"/g, x);
|
|
161
|
-
},
|
|
160
|
+
}, De = function(x, t) {
|
|
162
161
|
return x = ce(/^\s\s*/, String(x)), typeof t === E.UNDEFINED ? x : x.substring(0, t);
|
|
163
162
|
}, tt = function(x, t) {
|
|
164
163
|
if (!(!x || !t))
|
|
165
|
-
for (var e = 0, i, n, r, o, p,
|
|
166
|
-
var
|
|
167
|
-
for (i = n = 0; i <
|
|
168
|
-
if (p =
|
|
169
|
-
for (r = 0; r <
|
|
170
|
-
|
|
164
|
+
for (var e = 0, i, n, r, o, p, f; e < t.length && !p; ) {
|
|
165
|
+
var v = t[e], I = t[e + 1];
|
|
166
|
+
for (i = n = 0; i < v.length && !p && v[i]; )
|
|
167
|
+
if (p = v[i++].exec(x), p)
|
|
168
|
+
for (r = 0; r < I.length; r++)
|
|
169
|
+
f = p[++n], o = I[r], typeof o === E.OBJECT && o.length > 0 ? o.length === 2 ? typeof o[1] == E.FUNCTION ? this[o[0]] = o[1].call(this, f) : this[o[0]] = o[1] : o.length >= 3 && (typeof o[1] === E.FUNCTION && !(o[1].exec && o[1].test) ? o.length > 3 ? this[o[0]] = f ? o[1].apply(this, o.slice(2)) : void 0 : this[o[0]] = f ? o[1].call(this, f, o[2]) : void 0 : o.length == 3 ? this[o[0]] = f ? f.replace(o[1], o[2]) : void 0 : o.length == 4 ? this[o[0]] = f ? o[3].call(this, f.replace(o[1], o[2])) : void 0 : o.length > 4 && (this[o[0]] = f ? o[3].apply(this, [f.replace(o[1], o[2])].concat(o.slice(4))) : void 0)) : this[o] = f || void 0;
|
|
171
170
|
e += 2;
|
|
172
171
|
}
|
|
173
172
|
}, U = function(x, t) {
|
|
@@ -175,11 +174,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
175
174
|
if (typeof t[e] === E.OBJECT && t[e].length > 0) {
|
|
176
175
|
for (var i = 0; i < t[e].length; i++)
|
|
177
176
|
if ($e(t[e][i], x))
|
|
178
|
-
return e ===
|
|
177
|
+
return e === lt ? void 0 : e;
|
|
179
178
|
} else if ($e(t[e], x))
|
|
180
|
-
return e ===
|
|
179
|
+
return e === lt ? void 0 : e;
|
|
181
180
|
return t.hasOwnProperty("*") ? t["*"] : x;
|
|
182
|
-
},
|
|
181
|
+
}, St = {
|
|
183
182
|
ME: "4.90",
|
|
184
183
|
"NT 3.51": "3.51",
|
|
185
184
|
"NT 4.0": "4.0",
|
|
@@ -191,7 +190,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
191
190
|
"8.1": "6.3",
|
|
192
191
|
10: ["6.4", "10.0"],
|
|
193
192
|
NT: ""
|
|
194
|
-
},
|
|
193
|
+
}, It = {
|
|
195
194
|
embedded: "Automotive",
|
|
196
195
|
mobile: "Mobile",
|
|
197
196
|
tablet: ["Tablet", "EInk"],
|
|
@@ -200,7 +199,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
200
199
|
xr: ["VR", "XR"],
|
|
201
200
|
"?": ["Desktop", "Unknown"],
|
|
202
201
|
"*": void 0
|
|
203
|
-
},
|
|
202
|
+
}, u0 = {
|
|
204
203
|
Chrome: "Google Chrome",
|
|
205
204
|
Edge: "Microsoft Edge",
|
|
206
205
|
"Edge WebView2": "Microsoft Edge WebView2",
|
|
@@ -210,23 +209,23 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
210
209
|
"MIUI Browser": "Miui Browser",
|
|
211
210
|
"Opera Mobi": "OperaMobile",
|
|
212
211
|
Yandex: "YaBrowser"
|
|
213
|
-
},
|
|
212
|
+
}, kt = {
|
|
214
213
|
browser: [
|
|
215
214
|
[
|
|
216
215
|
// Most common regardless engine
|
|
217
216
|
/\b(?:crmo|crios)\/([\w\.]+)/i
|
|
218
217
|
// Chrome for Android/iOS
|
|
219
218
|
],
|
|
220
|
-
[
|
|
219
|
+
[l, [d, ae + "Chrome"]],
|
|
221
220
|
[
|
|
222
221
|
/webview.+edge\/([\w\.]+)/i
|
|
223
222
|
// Microsoft Edge
|
|
224
223
|
],
|
|
225
|
-
[
|
|
224
|
+
[l, [d, ke + " WebView"]],
|
|
226
225
|
[
|
|
227
226
|
/edg(?:e|ios|a)?\/([\w\.]+)/i
|
|
228
227
|
],
|
|
229
|
-
[
|
|
228
|
+
[l, [d, "Edge"]],
|
|
230
229
|
[
|
|
231
230
|
// Presto based
|
|
232
231
|
/(opera mini)\/([-\w\.]+)/i,
|
|
@@ -236,33 +235,33 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
236
235
|
/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
|
|
237
236
|
// Opera
|
|
238
237
|
],
|
|
239
|
-
[
|
|
238
|
+
[d, l],
|
|
240
239
|
[
|
|
241
240
|
/opios[\/ ]+([\w\.]+)/i
|
|
242
241
|
// Opera mini on iphone >= 8.0
|
|
243
242
|
],
|
|
244
|
-
[
|
|
243
|
+
[l, [d, xe + " Mini"]],
|
|
245
244
|
[
|
|
246
245
|
/\bop(?:rg)?x\/([\w\.]+)/i
|
|
247
246
|
// Opera GX
|
|
248
247
|
],
|
|
249
|
-
[
|
|
248
|
+
[l, [d, xe + " GX"]],
|
|
250
249
|
[
|
|
251
250
|
/\bopr\/([\w\.]+)/i
|
|
252
251
|
// Opera Webkit
|
|
253
252
|
],
|
|
254
|
-
[
|
|
253
|
+
[l, [d, xe]],
|
|
255
254
|
[
|
|
256
255
|
// Mixed
|
|
257
256
|
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
|
|
258
257
|
// Baidu
|
|
259
258
|
],
|
|
260
|
-
[
|
|
259
|
+
[l, [d, "Baidu"]],
|
|
261
260
|
[
|
|
262
261
|
/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
|
|
263
262
|
// Maxthon
|
|
264
263
|
],
|
|
265
|
-
[
|
|
264
|
+
[l, [d, "Maxthon"]],
|
|
266
265
|
[
|
|
267
266
|
/(kindle)\/([\w\.]+)/i,
|
|
268
267
|
// Kindle
|
|
@@ -285,22 +284,22 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
285
284
|
/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
|
|
286
285
|
// Ecosia/Weibo
|
|
287
286
|
],
|
|
288
|
-
[
|
|
287
|
+
[d, l],
|
|
289
288
|
[
|
|
290
289
|
/quark(?:pc)?\/([-\w\.]+)/i
|
|
291
290
|
// Quark
|
|
292
291
|
],
|
|
293
|
-
[
|
|
292
|
+
[l, [d, "Quark"]],
|
|
294
293
|
[
|
|
295
294
|
/\bddg\/([\w\.]+)/i
|
|
296
295
|
// DuckDuckGo
|
|
297
296
|
],
|
|
298
|
-
[
|
|
297
|
+
[l, [d, "DuckDuckGo"]],
|
|
299
298
|
[
|
|
300
299
|
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
|
|
301
300
|
// UCBrowser
|
|
302
301
|
],
|
|
303
|
-
[
|
|
302
|
+
[l, [d, "UCBrowser"]],
|
|
304
303
|
[
|
|
305
304
|
/microm.+\bqbcore\/([\w\.]+)/i,
|
|
306
305
|
// WeChat Desktop for Windows Built-in Browser
|
|
@@ -308,107 +307,107 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
308
307
|
/micromessenger\/([\w\.]+)/i
|
|
309
308
|
// WeChat
|
|
310
309
|
],
|
|
311
|
-
[
|
|
310
|
+
[l, [d, "WeChat"]],
|
|
312
311
|
[
|
|
313
312
|
/konqueror\/([\w\.]+)/i
|
|
314
313
|
// Konqueror
|
|
315
314
|
],
|
|
316
|
-
[
|
|
315
|
+
[l, [d, "Konqueror"]],
|
|
317
316
|
[
|
|
318
317
|
/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
|
|
319
318
|
// IE11
|
|
320
319
|
],
|
|
321
|
-
[
|
|
320
|
+
[l, [d, "IE"]],
|
|
322
321
|
[
|
|
323
322
|
/ya(?:search)?browser\/([\w\.]+)/i
|
|
324
323
|
// Yandex
|
|
325
324
|
],
|
|
326
|
-
[
|
|
325
|
+
[l, [d, "Yandex"]],
|
|
327
326
|
[
|
|
328
327
|
/slbrowser\/([\w\.]+)/i
|
|
329
328
|
// Smart Lenovo Browser
|
|
330
329
|
],
|
|
331
|
-
[
|
|
330
|
+
[l, [d, "Smart " + Ge + ne]],
|
|
332
331
|
[
|
|
333
332
|
/(av(?:ast|g|ira))\/([\w\.]+)/i
|
|
334
333
|
// Avast/AVG/Avira Secure Browser
|
|
335
334
|
],
|
|
336
|
-
[[
|
|
335
|
+
[[d, /(.+)/, "$1 Secure" + ne], l],
|
|
337
336
|
[
|
|
338
337
|
/norton\/([\w\.]+)/i
|
|
339
338
|
// Norton Private Browser
|
|
340
339
|
],
|
|
341
|
-
[
|
|
340
|
+
[l, [d, "Norton Private" + ne]],
|
|
342
341
|
[
|
|
343
342
|
/\bfocus\/([\w\.]+)/i
|
|
344
343
|
// Firefox Focus
|
|
345
344
|
],
|
|
346
|
-
[
|
|
345
|
+
[l, [d, ue + " Focus"]],
|
|
347
346
|
[
|
|
348
347
|
/ mms\/([\w\.]+)$/i
|
|
349
348
|
// Opera Neon
|
|
350
349
|
],
|
|
351
|
-
[
|
|
350
|
+
[l, [d, xe + " Neon"]],
|
|
352
351
|
[
|
|
353
352
|
/ opt\/([\w\.]+)$/i
|
|
354
353
|
// Opera Touch
|
|
355
354
|
],
|
|
356
|
-
[
|
|
355
|
+
[l, [d, xe + " Touch"]],
|
|
357
356
|
[
|
|
358
357
|
/coc_coc\w+\/([\w\.]+)/i
|
|
359
358
|
// Coc Coc Browser
|
|
360
359
|
],
|
|
361
|
-
[
|
|
360
|
+
[l, [d, "Coc Coc"]],
|
|
362
361
|
[
|
|
363
362
|
/dolfin\/([\w\.]+)/i
|
|
364
363
|
// Dolphin
|
|
365
364
|
],
|
|
366
|
-
[
|
|
365
|
+
[l, [d, "Dolphin"]],
|
|
367
366
|
[
|
|
368
367
|
/coast\/([\w\.]+)/i
|
|
369
368
|
// Opera Coast
|
|
370
369
|
],
|
|
371
|
-
[
|
|
370
|
+
[l, [d, xe + " Coast"]],
|
|
372
371
|
[
|
|
373
372
|
/miuibrowser\/([\w\.]+)/i
|
|
374
373
|
// MIUI Browser
|
|
375
374
|
],
|
|
376
|
-
[
|
|
375
|
+
[l, [d, "MIUI" + ne]],
|
|
377
376
|
[
|
|
378
377
|
/fxios\/([\w\.-]+)/i
|
|
379
378
|
// Firefox for iOS
|
|
380
379
|
],
|
|
381
|
-
[
|
|
380
|
+
[l, [d, ae + ue]],
|
|
382
381
|
[
|
|
383
382
|
/\bqihoobrowser\/?([\w\.]*)/i
|
|
384
383
|
// 360
|
|
385
384
|
],
|
|
386
|
-
[
|
|
385
|
+
[l, [d, "360"]],
|
|
387
386
|
[
|
|
388
387
|
/\b(qq)\/([\w\.]+)/i
|
|
389
388
|
// QQ
|
|
390
389
|
],
|
|
391
|
-
[[
|
|
390
|
+
[[d, /(.+)/, "$1Browser"], l],
|
|
392
391
|
[
|
|
393
392
|
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
|
|
394
393
|
],
|
|
395
|
-
[[
|
|
394
|
+
[[d, /(.+)/, "$1" + ne], l],
|
|
396
395
|
[
|
|
397
396
|
// Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
|
|
398
397
|
/samsungbrowser\/([\w\.]+)/i
|
|
399
398
|
// Samsung Internet
|
|
400
399
|
],
|
|
401
|
-
[
|
|
400
|
+
[l, [d, de + " Internet"]],
|
|
402
401
|
[
|
|
403
402
|
/metasr[\/ ]?([\d\.]+)/i
|
|
404
403
|
// Sogou Explorer
|
|
405
404
|
],
|
|
406
|
-
[
|
|
405
|
+
[l, [d, vt + " Explorer"]],
|
|
407
406
|
[
|
|
408
407
|
/(sogou)mo\w+\/([\d\.]+)/i
|
|
409
408
|
// Sogou Mobile
|
|
410
409
|
],
|
|
411
|
-
[[
|
|
410
|
+
[[d, vt + " Mobile"], l],
|
|
412
411
|
[
|
|
413
412
|
/(electron)\/([\w\.]+) safari/i,
|
|
414
413
|
// Electron-based App
|
|
@@ -417,23 +416,23 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
417
416
|
/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
|
|
418
417
|
// QQ/2345
|
|
419
418
|
],
|
|
420
|
-
[
|
|
419
|
+
[d, l],
|
|
421
420
|
[
|
|
422
421
|
/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i
|
|
423
422
|
// LieBao Browser/Luakit/Rekonq/Steam
|
|
424
423
|
],
|
|
425
|
-
[
|
|
424
|
+
[d],
|
|
426
425
|
[
|
|
427
426
|
/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i
|
|
428
427
|
// Iron / 360
|
|
429
428
|
],
|
|
430
|
-
[
|
|
429
|
+
[l, d],
|
|
431
430
|
[
|
|
432
431
|
// WebView
|
|
433
432
|
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
|
|
434
433
|
// Facebook App for iOS & Android
|
|
435
434
|
],
|
|
436
|
-
[[
|
|
435
|
+
[[d, We], l, [s, te]],
|
|
437
436
|
[
|
|
438
437
|
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
|
|
439
438
|
// Kakao App
|
|
@@ -454,111 +453,111 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
454
453
|
/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
|
|
455
454
|
// Instagram/Snapchat/Klarna
|
|
456
455
|
],
|
|
457
|
-
[
|
|
456
|
+
[d, l, [s, te]],
|
|
458
457
|
[
|
|
459
458
|
/\bgsa\/([\w\.]+) .*safari\//i
|
|
460
459
|
// Google Search Appliance on iOS
|
|
461
460
|
],
|
|
462
|
-
[
|
|
461
|
+
[l, [d, "GSA"], [s, te]],
|
|
463
462
|
[
|
|
464
463
|
/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i
|
|
465
464
|
// TikTok
|
|
466
465
|
],
|
|
467
|
-
[
|
|
466
|
+
[l, [d, "TikTok"], [s, te]],
|
|
468
467
|
[
|
|
469
468
|
/\[(linkedin)app\]/i
|
|
470
469
|
// LinkedIn App for iOS & Android
|
|
471
470
|
],
|
|
472
|
-
[
|
|
471
|
+
[d, [s, te]],
|
|
473
472
|
[
|
|
474
473
|
/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
|
|
475
474
|
// Zalo
|
|
476
475
|
],
|
|
477
|
-
[[
|
|
476
|
+
[[d, /(.+)/, "Zalo"], l, [s, te]],
|
|
478
477
|
[
|
|
479
478
|
/(chromium)[\/ ]([-\w\.]+)/i
|
|
480
479
|
// Chromium
|
|
481
480
|
],
|
|
482
|
-
[
|
|
481
|
+
[d, l],
|
|
483
482
|
[
|
|
484
483
|
/ome-(lighthouse)$/i
|
|
485
484
|
// Chrome Lighthouse
|
|
486
485
|
],
|
|
487
|
-
[
|
|
486
|
+
[d, [s, i0]],
|
|
488
487
|
[
|
|
489
488
|
/headlesschrome(?:\/([\w\.]+)| )/i
|
|
490
489
|
// Chrome Headless
|
|
491
490
|
],
|
|
492
|
-
[
|
|
491
|
+
[l, [d, mt + " Headless"]],
|
|
493
492
|
[
|
|
494
493
|
/wv\).+chrome\/([\w\.]+).+edgw\//i
|
|
495
494
|
// Edge WebView2
|
|
496
495
|
],
|
|
497
|
-
[
|
|
496
|
+
[l, [d, ke + " WebView2"]],
|
|
498
497
|
[
|
|
499
498
|
/ wv\).+(chrome)\/([\w\.]+)/i
|
|
500
499
|
// Chrome WebView
|
|
501
500
|
],
|
|
502
|
-
[[
|
|
501
|
+
[[d, mt + " WebView"], l],
|
|
503
502
|
[
|
|
504
503
|
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
|
|
505
504
|
// Android Browser
|
|
506
505
|
],
|
|
507
|
-
[
|
|
506
|
+
[l, [d, "Android" + ne]],
|
|
508
507
|
[
|
|
509
508
|
/chrome\/([\w\.]+) mobile/i
|
|
510
509
|
// Chrome Mobile
|
|
511
510
|
],
|
|
512
|
-
[
|
|
511
|
+
[l, [d, ae + "Chrome"]],
|
|
513
512
|
[
|
|
514
513
|
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
|
|
515
514
|
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
|
516
515
|
],
|
|
517
|
-
[
|
|
516
|
+
[d, l],
|
|
518
517
|
[
|
|
519
518
|
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
|
|
520
519
|
// Safari Mobile
|
|
521
520
|
],
|
|
522
|
-
[
|
|
521
|
+
[l, [d, ae + "Safari"]],
|
|
523
522
|
[
|
|
524
523
|
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
|
525
524
|
],
|
|
526
|
-
[[
|
|
525
|
+
[[d, ae + "Safari"]],
|
|
527
526
|
[
|
|
528
527
|
/version\/([\w\.\,]+) .*(safari)/i
|
|
529
528
|
// Safari
|
|
530
529
|
],
|
|
531
|
-
[
|
|
530
|
+
[l, d],
|
|
532
531
|
[
|
|
533
532
|
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
|
|
534
533
|
// Safari < 3.0
|
|
535
534
|
],
|
|
536
|
-
[
|
|
535
|
+
[d, [l, "1"]],
|
|
537
536
|
[
|
|
538
537
|
/(webkit|khtml)\/([\w\.]+)/i
|
|
539
538
|
],
|
|
540
|
-
[
|
|
539
|
+
[d, l],
|
|
541
540
|
[
|
|
542
541
|
// Gecko based
|
|
543
542
|
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
|
|
544
543
|
// Firefox Mobile
|
|
545
544
|
],
|
|
546
|
-
[[
|
|
545
|
+
[[d, ae + ue], l],
|
|
547
546
|
[
|
|
548
547
|
/(navigator|netscape\d?)\/([-\w\.]+)/i
|
|
549
548
|
// Netscape
|
|
550
549
|
],
|
|
551
|
-
[[
|
|
550
|
+
[[d, "Netscape"], l],
|
|
552
551
|
[
|
|
553
552
|
/(wolvic|librewolf)\/([\w\.]+)/i
|
|
554
553
|
// Wolvic/LibreWolf
|
|
555
554
|
],
|
|
556
|
-
[
|
|
555
|
+
[d, l],
|
|
557
556
|
[
|
|
558
557
|
/mobile vr; rv:([\w\.]+)\).+firefox/i
|
|
559
558
|
// Firefox Reality
|
|
560
559
|
],
|
|
561
|
-
[
|
|
560
|
+
[l, [d, ue + " Reality"]],
|
|
562
561
|
[
|
|
563
562
|
/ekiohf.+(flow)\/([\w\.]+)/i,
|
|
564
563
|
// Flow
|
|
@@ -578,12 +577,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
578
577
|
/\b(links) \(([\w\.]+)/i
|
|
579
578
|
// Links
|
|
580
579
|
],
|
|
581
|
-
[
|
|
580
|
+
[d, [l, /_/g, "."]],
|
|
582
581
|
[
|
|
583
582
|
/(cobalt)\/([\w\.]+)/i
|
|
584
583
|
// Cobalt
|
|
585
584
|
],
|
|
586
|
-
[
|
|
585
|
+
[d, [l, /[^\d\.]+./, re]]
|
|
587
586
|
],
|
|
588
587
|
cpu: [
|
|
589
588
|
[
|
|
@@ -626,7 +625,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
626
625
|
/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
|
|
627
626
|
// Alpha
|
|
628
627
|
],
|
|
629
|
-
[[M, /ower/, re,
|
|
628
|
+
[[M, /ower/, re, W]],
|
|
630
629
|
[
|
|
631
630
|
/mc680.0/i
|
|
632
631
|
],
|
|
@@ -644,19 +643,19 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
644
643
|
// Samsung
|
|
645
644
|
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
|
|
646
645
|
],
|
|
647
|
-
[c, [u,
|
|
646
|
+
[c, [u, de], [s, k]],
|
|
648
647
|
[
|
|
649
648
|
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
|
650
649
|
/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
|
|
651
650
|
/sec-(sgh\w+)/i
|
|
652
651
|
],
|
|
653
|
-
[c, [u,
|
|
652
|
+
[c, [u, de], [s, S]],
|
|
654
653
|
[
|
|
655
654
|
// Apple
|
|
656
655
|
/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
|
|
657
656
|
// iPod/iPhone
|
|
658
657
|
],
|
|
659
|
-
[c, [u, ie], [s,
|
|
658
|
+
[c, [u, ie], [s, S]],
|
|
660
659
|
[
|
|
661
660
|
/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
|
|
662
661
|
// iPad
|
|
@@ -671,26 +670,26 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
671
670
|
// Sharp
|
|
672
671
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
|
673
672
|
],
|
|
674
|
-
[c, [u,
|
|
673
|
+
[c, [u, gt], [s, S]],
|
|
675
674
|
[
|
|
676
675
|
// Honor
|
|
677
676
|
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
|
|
678
677
|
],
|
|
679
|
-
[c, [u,
|
|
678
|
+
[c, [u, ht], [s, k]],
|
|
680
679
|
[
|
|
681
680
|
/honor([-\w ]+)[;\)]/i
|
|
682
681
|
],
|
|
683
|
-
[c, [u,
|
|
682
|
+
[c, [u, ht], [s, S]],
|
|
684
683
|
[
|
|
685
684
|
// Huawei
|
|
686
685
|
/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
|
|
687
686
|
],
|
|
688
|
-
[c, [u,
|
|
687
|
+
[c, [u, pt], [s, k]],
|
|
689
688
|
[
|
|
690
689
|
/(?:huawei) ?([-\w ]+)[;\)]/i,
|
|
691
690
|
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
|
|
692
691
|
],
|
|
693
|
-
[c, [u,
|
|
692
|
+
[c, [u, pt], [s, S]],
|
|
694
693
|
[
|
|
695
694
|
// Xiaomi
|
|
696
695
|
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
|
|
@@ -709,61 +708,61 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
709
708
|
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
|
|
710
709
|
/ ([\w ]+) miui\/v?\d/i
|
|
711
710
|
],
|
|
712
|
-
[[c, /_/g, " "], [u, qe], [s,
|
|
711
|
+
[[c, /_/g, " "], [u, qe], [s, S]],
|
|
713
712
|
[
|
|
714
713
|
// OnePlus
|
|
715
714
|
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,
|
|
716
715
|
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
|
717
716
|
],
|
|
718
|
-
[c, [u,
|
|
717
|
+
[c, [u, wt], [s, S]],
|
|
719
718
|
[
|
|
720
719
|
// OPPO
|
|
721
720
|
/; (\w+) bui.+ oppo/i,
|
|
722
721
|
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
|
723
722
|
],
|
|
724
|
-
[c, [u,
|
|
723
|
+
[c, [u, Ye], [s, S]],
|
|
725
724
|
[
|
|
726
725
|
/\b(opd2(\d{3}a?))(?: bui|\))/i
|
|
727
726
|
],
|
|
728
|
-
[c, [u, U, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*":
|
|
727
|
+
[c, [u, U, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*": Ye }], [s, k]],
|
|
729
728
|
[
|
|
730
729
|
// BLU
|
|
731
730
|
/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
|
|
732
731
|
// Vivo series
|
|
733
732
|
],
|
|
734
|
-
[c, [u, "BLU"], [s,
|
|
733
|
+
[c, [u, "BLU"], [s, S]],
|
|
735
734
|
[
|
|
736
735
|
// Vivo
|
|
737
736
|
/; vivo (\w+)(?: bui|\))/i,
|
|
738
737
|
/\b(v[12]\d{3}\w?[at])(?: bui|;)/i
|
|
739
738
|
],
|
|
740
|
-
[c, [u, "Vivo"], [s,
|
|
739
|
+
[c, [u, "Vivo"], [s, S]],
|
|
741
740
|
[
|
|
742
741
|
// Realme
|
|
743
742
|
/\b(rmx[1-3]\d{3})(?: bui|;|\))/i
|
|
744
743
|
],
|
|
745
|
-
[c, [u, "Realme"], [s,
|
|
744
|
+
[c, [u, "Realme"], [s, S]],
|
|
746
745
|
[
|
|
747
746
|
// Lenovo
|
|
748
747
|
/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
|
|
749
748
|
/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
|
|
750
749
|
],
|
|
751
|
-
[c, [u,
|
|
750
|
+
[c, [u, Ge], [s, k]],
|
|
752
751
|
[
|
|
753
752
|
/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
|
|
754
753
|
],
|
|
755
|
-
[c, [u,
|
|
754
|
+
[c, [u, Ge], [s, S]],
|
|
756
755
|
[
|
|
757
756
|
// Motorola
|
|
758
757
|
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
|
759
758
|
/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
|
|
760
759
|
/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
|
|
761
760
|
],
|
|
762
|
-
[c, [u,
|
|
761
|
+
[c, [u, ze], [s, S]],
|
|
763
762
|
[
|
|
764
763
|
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
|
765
764
|
],
|
|
766
|
-
[c, [u,
|
|
765
|
+
[c, [u, ze], [s, k]],
|
|
767
766
|
[
|
|
768
767
|
// LG
|
|
769
768
|
/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
|
@@ -774,7 +773,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
774
773
|
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
|
|
775
774
|
/\blg-?([\d\w]+) bui/i
|
|
776
775
|
],
|
|
777
|
-
[c, [u, ye], [s,
|
|
776
|
+
[c, [u, ye], [s, S]],
|
|
778
777
|
[
|
|
779
778
|
// Nokia
|
|
780
779
|
/(nokia) (t[12][01])/i
|
|
@@ -784,18 +783,18 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
784
783
|
/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
|
|
785
784
|
/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
|
|
786
785
|
],
|
|
787
|
-
[[c, /_/g, " "], [s,
|
|
786
|
+
[[c, /_/g, " "], [s, S], [u, "Nokia"]],
|
|
788
787
|
[
|
|
789
788
|
// Google
|
|
790
789
|
/(pixel (c|tablet))\b/i
|
|
791
790
|
// Google Pixel C/Tablet
|
|
792
791
|
],
|
|
793
|
-
[c, [u,
|
|
792
|
+
[c, [u, Z], [s, k]],
|
|
794
793
|
[
|
|
795
794
|
// Google Pixel
|
|
796
795
|
/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
|
|
797
796
|
],
|
|
798
|
-
[c, [u,
|
|
797
|
+
[c, [u, Z], [s, S]],
|
|
799
798
|
[
|
|
800
799
|
/(google) (pixelbook( go)?)/i
|
|
801
800
|
],
|
|
@@ -804,12 +803,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
804
803
|
// Sony
|
|
805
804
|
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
|
|
806
805
|
],
|
|
807
|
-
[c, [u,
|
|
806
|
+
[c, [u, le], [s, S]],
|
|
808
807
|
[
|
|
809
808
|
/sony tablet [ps]/i,
|
|
810
809
|
/\b(?:sony)?sgp\w+(?: bui|\))/i
|
|
811
810
|
],
|
|
812
|
-
[[c, "Xperia Tablet"], [u,
|
|
811
|
+
[[c, "Xperia Tablet"], [u, le], [s, k]],
|
|
813
812
|
[
|
|
814
813
|
// Amazon
|
|
815
814
|
/(alexa)webm/i,
|
|
@@ -823,7 +822,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
823
822
|
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
|
|
824
823
|
// Fire Phone
|
|
825
824
|
],
|
|
826
|
-
[[c, /(.+)/g, "Fire Phone $1"], [u, me], [s,
|
|
825
|
+
[[c, /(.+)/g, "Fire Phone $1"], [u, me], [s, S]],
|
|
827
826
|
[
|
|
828
827
|
// BlackBerry
|
|
829
828
|
/(playbook);[-\w\),; ]+(rim)/i
|
|
@@ -834,16 +833,16 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
834
833
|
/\b((?:bb[a-f]|st[hv])100-\d)/i,
|
|
835
834
|
/(?:blackberry|\(bb10;) (\w+)/i
|
|
836
835
|
],
|
|
837
|
-
[c, [u,
|
|
836
|
+
[c, [u, ft], [s, S]],
|
|
838
837
|
[
|
|
839
838
|
// Asus
|
|
840
839
|
/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
|
|
841
840
|
],
|
|
842
|
-
[c, [u,
|
|
841
|
+
[c, [u, ut], [s, k]],
|
|
843
842
|
[
|
|
844
843
|
/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
|
|
845
844
|
],
|
|
846
|
-
[c, [u,
|
|
845
|
+
[c, [u, ut], [s, S]],
|
|
847
846
|
[
|
|
848
847
|
// HTC
|
|
849
848
|
/(nexus 9)/i
|
|
@@ -858,7 +857,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
858
857
|
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
|
|
859
858
|
// Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
|
860
859
|
],
|
|
861
|
-
[u, [c, /_/g, " "], [s,
|
|
860
|
+
[u, [c, /_/g, " "], [s, S]],
|
|
862
861
|
[
|
|
863
862
|
// TCL
|
|
864
863
|
/tcl (xess p17aa)/i,
|
|
@@ -868,12 +867,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
868
867
|
[
|
|
869
868
|
/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
|
|
870
869
|
],
|
|
871
|
-
[c, [u, "TCL"], [s,
|
|
870
|
+
[c, [u, "TCL"], [s, S]],
|
|
872
871
|
[
|
|
873
872
|
// itel
|
|
874
873
|
/(itel) ((\w+))/i
|
|
875
874
|
],
|
|
876
|
-
[[u,
|
|
875
|
+
[[u, W], c, [s, U, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
|
|
877
876
|
[
|
|
878
877
|
// Acer
|
|
879
878
|
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
|
|
@@ -884,34 +883,34 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
884
883
|
/droid.+; (m[1-5] note) bui/i,
|
|
885
884
|
/\bmz-([-\w]{2,})/i
|
|
886
885
|
],
|
|
887
|
-
[c, [u, "Meizu"], [s,
|
|
886
|
+
[c, [u, "Meizu"], [s, S]],
|
|
888
887
|
[
|
|
889
888
|
// Ulefone
|
|
890
889
|
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
|
|
891
890
|
],
|
|
892
|
-
[c, [u, "Ulefone"], [s,
|
|
891
|
+
[c, [u, "Ulefone"], [s, S]],
|
|
893
892
|
[
|
|
894
893
|
// Energizer
|
|
895
894
|
/; (energy ?\w+)(?: bui|\))/i,
|
|
896
895
|
/; energizer ([\w ]+)(?: bui|\))/i
|
|
897
896
|
],
|
|
898
|
-
[c, [u, "Energizer"], [s,
|
|
897
|
+
[c, [u, "Energizer"], [s, S]],
|
|
899
898
|
[
|
|
900
899
|
// Cat
|
|
901
900
|
/; cat (b35);/i,
|
|
902
901
|
/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
|
|
903
902
|
],
|
|
904
|
-
[c, [u, "Cat"], [s,
|
|
903
|
+
[c, [u, "Cat"], [s, S]],
|
|
905
904
|
[
|
|
906
905
|
// Smartfren
|
|
907
906
|
/((?:new )?andromax[\w- ]+)(?: bui|\))/i
|
|
908
907
|
],
|
|
909
|
-
[c, [u, "Smartfren"], [s,
|
|
908
|
+
[c, [u, "Smartfren"], [s, S]],
|
|
910
909
|
[
|
|
911
910
|
// Nothing
|
|
912
911
|
/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
|
|
913
912
|
],
|
|
914
|
-
[c, [u, "Nothing"], [s,
|
|
913
|
+
[c, [u, "Nothing"], [s, S]],
|
|
915
914
|
[
|
|
916
915
|
// Archos
|
|
917
916
|
/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
|
|
@@ -922,12 +921,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
922
921
|
/archos ([\w ]+)( b|\))/i,
|
|
923
922
|
/; (ac[3-6]\d\w{2,8})( b|\))/i
|
|
924
923
|
],
|
|
925
|
-
[c, [u, "Archos"], [s,
|
|
924
|
+
[c, [u, "Archos"], [s, S]],
|
|
926
925
|
[
|
|
927
926
|
// HMD
|
|
928
927
|
/; (n159v)/i
|
|
929
928
|
],
|
|
930
|
-
[c, [u, "HMD"], [s,
|
|
929
|
+
[c, [u, "HMD"], [s, S]],
|
|
931
930
|
[
|
|
932
931
|
// MIXED
|
|
933
932
|
/(imo) (tab \w+)/i,
|
|
@@ -952,7 +951,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
952
951
|
/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
|
|
953
952
|
// Philips
|
|
954
953
|
],
|
|
955
|
-
[u, c, [s,
|
|
954
|
+
[u, c, [s, S]],
|
|
956
955
|
[
|
|
957
956
|
/(kobo)\s(ereader|touch)/i,
|
|
958
957
|
// Kobo
|
|
@@ -966,36 +965,36 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
966
965
|
/(surface duo)/i
|
|
967
966
|
// Surface Duo
|
|
968
967
|
],
|
|
969
|
-
[c, [u,
|
|
968
|
+
[c, [u, Ve], [s, k]],
|
|
970
969
|
[
|
|
971
970
|
/droid [\d\.]+; (fp\du?)(?: b|\))/i
|
|
972
971
|
// Fairphone
|
|
973
972
|
],
|
|
974
|
-
[c, [u, "Fairphone"], [s,
|
|
973
|
+
[c, [u, "Fairphone"], [s, S]],
|
|
975
974
|
[
|
|
976
975
|
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
|
|
977
976
|
// Nvidia Tablets
|
|
978
977
|
],
|
|
979
|
-
[c, [u,
|
|
978
|
+
[c, [u, bt], [s, k]],
|
|
980
979
|
[
|
|
981
980
|
/(sprint) (\w+)/i
|
|
982
981
|
// Sprint Phones
|
|
983
982
|
],
|
|
984
|
-
[u, c, [s,
|
|
983
|
+
[u, c, [s, S]],
|
|
985
984
|
[
|
|
986
985
|
/(kin\.[onetw]{3})/i
|
|
987
986
|
// Microsoft Kin
|
|
988
987
|
],
|
|
989
|
-
[[c, /\./g, " "], [u,
|
|
988
|
+
[[c, /\./g, " "], [u, Ve], [s, S]],
|
|
990
989
|
[
|
|
991
990
|
/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
|
|
992
991
|
// Zebra
|
|
993
992
|
],
|
|
994
|
-
[c, [u,
|
|
993
|
+
[c, [u, Ke], [s, k]],
|
|
995
994
|
[
|
|
996
995
|
/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
|
|
997
996
|
],
|
|
998
|
-
[c, [u,
|
|
997
|
+
[c, [u, Ke], [s, S]],
|
|
999
998
|
[
|
|
1000
999
|
///////////////////
|
|
1001
1000
|
// SMARTTVS
|
|
@@ -1005,90 +1004,90 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1005
1004
|
/smart-tv.+(samsung)/i
|
|
1006
1005
|
// Samsung
|
|
1007
1006
|
],
|
|
1008
|
-
[u, [s,
|
|
1007
|
+
[u, [s, C]],
|
|
1009
1008
|
[
|
|
1010
1009
|
/hbbtv.+maple;(\d+)/i
|
|
1011
1010
|
],
|
|
1012
|
-
[[c, /^/, "SmartTV"], [u,
|
|
1011
|
+
[[c, /^/, "SmartTV"], [u, de], [s, C]],
|
|
1013
1012
|
[
|
|
1014
1013
|
/(vizio)(?: |.+model\/)(\w+-\w+)/i,
|
|
1015
1014
|
// Vizio
|
|
1016
1015
|
/tcast.+(lg)e?. ([-\w]+)/i
|
|
1017
1016
|
// LG SmartTV
|
|
1018
1017
|
],
|
|
1019
|
-
[u, c, [s,
|
|
1018
|
+
[u, c, [s, C]],
|
|
1020
1019
|
[
|
|
1021
1020
|
/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
|
|
1022
1021
|
],
|
|
1023
|
-
[[u, ye], [s,
|
|
1022
|
+
[[u, ye], [s, C]],
|
|
1024
1023
|
[
|
|
1025
1024
|
/(apple) ?tv/i
|
|
1026
1025
|
// Apple TV
|
|
1027
1026
|
],
|
|
1028
|
-
[u, [c, ie + " TV"], [s,
|
|
1027
|
+
[u, [c, ie + " TV"], [s, C]],
|
|
1029
1028
|
[
|
|
1030
1029
|
/crkey.*devicetype\/chromecast/i
|
|
1031
1030
|
// Google Chromecast Third Generation
|
|
1032
1031
|
],
|
|
1033
|
-
[[c,
|
|
1032
|
+
[[c, K + " Third Generation"], [u, Z], [s, C]],
|
|
1034
1033
|
[
|
|
1035
1034
|
/crkey.*devicetype\/([^/]*)/i
|
|
1036
1035
|
// Google Chromecast with specific device type
|
|
1037
1036
|
],
|
|
1038
|
-
[[c, /^/, "Chromecast "], [u,
|
|
1037
|
+
[[c, /^/, "Chromecast "], [u, Z], [s, C]],
|
|
1039
1038
|
[
|
|
1040
1039
|
/fuchsia.*crkey/i
|
|
1041
1040
|
// Google Chromecast Nest Hub
|
|
1042
1041
|
],
|
|
1043
|
-
[[c,
|
|
1042
|
+
[[c, K + " Nest Hub"], [u, Z], [s, C]],
|
|
1044
1043
|
[
|
|
1045
1044
|
/crkey/i
|
|
1046
1045
|
// Google Chromecast, Linux-based or unknown
|
|
1047
1046
|
],
|
|
1048
|
-
[[c,
|
|
1047
|
+
[[c, K], [u, Z], [s, C]],
|
|
1049
1048
|
[
|
|
1050
1049
|
/(portaltv)/i
|
|
1051
1050
|
// Facebook Portal TV
|
|
1052
1051
|
],
|
|
1053
|
-
[c, [u,
|
|
1052
|
+
[c, [u, We], [s, C]],
|
|
1054
1053
|
[
|
|
1055
1054
|
/droid.+aft(\w+)( bui|\))/i
|
|
1056
1055
|
// Fire TV
|
|
1057
1056
|
],
|
|
1058
|
-
[c, [u, me], [s,
|
|
1057
|
+
[c, [u, me], [s, C]],
|
|
1059
1058
|
[
|
|
1060
1059
|
/(shield \w+ tv)/i
|
|
1061
1060
|
// Nvidia Shield TV
|
|
1062
1061
|
],
|
|
1063
|
-
[c, [u,
|
|
1062
|
+
[c, [u, bt], [s, C]],
|
|
1064
1063
|
[
|
|
1065
1064
|
/\(dtv[\);].+(aquos)/i,
|
|
1066
1065
|
/(aquos-tv[\w ]+)\)/i
|
|
1067
1066
|
// Sharp
|
|
1068
1067
|
],
|
|
1069
|
-
[c, [u,
|
|
1068
|
+
[c, [u, gt], [s, C]],
|
|
1070
1069
|
[
|
|
1071
1070
|
/(bravia[\w ]+)( bui|\))/i
|
|
1072
1071
|
// Sony
|
|
1073
1072
|
],
|
|
1074
|
-
[c, [u,
|
|
1073
|
+
[c, [u, le], [s, C]],
|
|
1075
1074
|
[
|
|
1076
1075
|
/(mi(tv|box)-?\w+) bui/i
|
|
1077
1076
|
// Xiaomi
|
|
1078
1077
|
],
|
|
1079
|
-
[c, [u, qe], [s,
|
|
1078
|
+
[c, [u, qe], [s, C]],
|
|
1080
1079
|
[
|
|
1081
1080
|
/Hbbtv.*(technisat) (.*);/i
|
|
1082
1081
|
// TechniSAT
|
|
1083
1082
|
],
|
|
1084
|
-
[u, c, [s,
|
|
1083
|
+
[u, c, [s, C]],
|
|
1085
1084
|
[
|
|
1086
1085
|
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
|
|
1087
1086
|
// Roku
|
|
1088
1087
|
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
|
|
1089
1088
|
// HbbTV devices
|
|
1090
1089
|
],
|
|
1091
|
-
[[u, /.+\/(\w+)/, "$1", U, { LG: "lge" }], [c,
|
|
1090
|
+
[[u, /.+\/(\w+)/, "$1", U, { LG: "lge" }], [c, De], [s, C]],
|
|
1092
1091
|
[
|
|
1093
1092
|
///////////////////
|
|
1094
1093
|
// CONSOLES
|
|
@@ -1096,12 +1095,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1096
1095
|
/(playstation \w+)/i
|
|
1097
1096
|
// Playstation
|
|
1098
1097
|
],
|
|
1099
|
-
[c, [u,
|
|
1098
|
+
[c, [u, le], [s, Ie]],
|
|
1100
1099
|
[
|
|
1101
1100
|
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
|
1102
1101
|
// Microsoft Xbox
|
|
1103
1102
|
],
|
|
1104
|
-
[c, [u,
|
|
1103
|
+
[c, [u, Ve], [s, Ie]],
|
|
1105
1104
|
[
|
|
1106
1105
|
/(ouya)/i,
|
|
1107
1106
|
// Ouya
|
|
@@ -1113,7 +1112,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1113
1112
|
/droid.+; ((shield|rgcube|gr0006))( bui|\))/i
|
|
1114
1113
|
// Nvidia Portable/Anbernic/Logitech
|
|
1115
1114
|
],
|
|
1116
|
-
[[u, U, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s,
|
|
1115
|
+
[[u, U, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s, Ie]],
|
|
1117
1116
|
[
|
|
1118
1117
|
///////////////////
|
|
1119
1118
|
// WEARABLES
|
|
@@ -1121,7 +1120,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1121
1120
|
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
|
|
1122
1121
|
// Samsung Galaxy Watch
|
|
1123
1122
|
],
|
|
1124
|
-
[c, [u,
|
|
1123
|
+
[c, [u, de], [s, F]],
|
|
1125
1124
|
[
|
|
1126
1125
|
/((pebble))app/i,
|
|
1127
1126
|
// Pebble
|
|
@@ -1133,7 +1132,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1133
1132
|
/(ow(?:19|20)?we?[1-3]{1,3})/i
|
|
1134
1133
|
// Oppo Watch
|
|
1135
1134
|
],
|
|
1136
|
-
[c, [u,
|
|
1135
|
+
[c, [u, Ye], [s, F]],
|
|
1137
1136
|
[
|
|
1138
1137
|
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
|
|
1139
1138
|
// Apple Watch
|
|
@@ -1143,17 +1142,17 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1143
1142
|
/(opwwe\d{3})/i
|
|
1144
1143
|
// OnePlus Watch
|
|
1145
1144
|
],
|
|
1146
|
-
[c, [u,
|
|
1145
|
+
[c, [u, wt], [s, F]],
|
|
1147
1146
|
[
|
|
1148
1147
|
/(moto 360)/i
|
|
1149
1148
|
// Motorola 360
|
|
1150
1149
|
],
|
|
1151
|
-
[c, [u,
|
|
1150
|
+
[c, [u, ze], [s, F]],
|
|
1152
1151
|
[
|
|
1153
1152
|
/(smartwatch 3)/i
|
|
1154
1153
|
// Sony SmartWatch
|
|
1155
1154
|
],
|
|
1156
|
-
[c, [u,
|
|
1155
|
+
[c, [u, le], [s, F]],
|
|
1157
1156
|
[
|
|
1158
1157
|
/(g watch r)/i
|
|
1159
1158
|
// LG G Watch R
|
|
@@ -1162,7 +1161,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1162
1161
|
[
|
|
1163
1162
|
/droid.+; (wt63?0{2,3})\)/i
|
|
1164
1163
|
],
|
|
1165
|
-
[c, [u,
|
|
1164
|
+
[c, [u, Ke], [s, F]],
|
|
1166
1165
|
[
|
|
1167
1166
|
///////////////////
|
|
1168
1167
|
// XR
|
|
@@ -1170,7 +1169,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1170
1169
|
/droid.+; (glass) \d/i
|
|
1171
1170
|
// Google Glass
|
|
1172
1171
|
],
|
|
1173
|
-
[c, [u,
|
|
1172
|
+
[c, [u, Z], [s, ge]],
|
|
1174
1173
|
[
|
|
1175
1174
|
/(pico) ([\w ]+) os\d/i
|
|
1176
1175
|
// Pico
|
|
@@ -1180,7 +1179,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1180
1179
|
/(quest( \d| pro)?s?).+vr/i
|
|
1181
1180
|
// Meta Quest
|
|
1182
1181
|
],
|
|
1183
|
-
[c, [u,
|
|
1182
|
+
[c, [u, We], [s, ge]],
|
|
1184
1183
|
[
|
|
1185
1184
|
/mobile vr; rv.+firefox/i
|
|
1186
1185
|
// Unidentifiable VR device using Firefox Reality / Wolvic
|
|
@@ -1193,22 +1192,22 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1193
1192
|
/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
|
|
1194
1193
|
// Tesla
|
|
1195
1194
|
],
|
|
1196
|
-
[u, [s,
|
|
1195
|
+
[u, [s, pe]],
|
|
1197
1196
|
[
|
|
1198
1197
|
/(aeobc)\b/i
|
|
1199
1198
|
// Echo Dot
|
|
1200
1199
|
],
|
|
1201
|
-
[c, [u, me], [s,
|
|
1200
|
+
[c, [u, me], [s, pe]],
|
|
1202
1201
|
[
|
|
1203
1202
|
/(homepod).+mac os/i
|
|
1204
1203
|
// Apple HomePod
|
|
1205
1204
|
],
|
|
1206
|
-
[c, [u, ie], [s,
|
|
1205
|
+
[c, [u, ie], [s, pe]],
|
|
1207
1206
|
[
|
|
1208
1207
|
/windows iot/i
|
|
1209
1208
|
// Unidentifiable embedded device using Windows IoT
|
|
1210
1209
|
],
|
|
1211
|
-
[[s,
|
|
1210
|
+
[[s, pe]],
|
|
1212
1211
|
[
|
|
1213
1212
|
////////////////////
|
|
1214
1213
|
// MIXED (GENERIC)
|
|
@@ -1216,11 +1215,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1216
1215
|
/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
|
|
1217
1216
|
// Unidentifiable SmartTV
|
|
1218
1217
|
],
|
|
1219
|
-
[c, [s,
|
|
1218
|
+
[c, [s, C]],
|
|
1220
1219
|
[
|
|
1221
1220
|
/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
|
|
1222
1221
|
],
|
|
1223
|
-
[[s,
|
|
1222
|
+
[[s, C]],
|
|
1224
1223
|
[
|
|
1225
1224
|
/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
|
|
1226
1225
|
],
|
|
@@ -1234,7 +1233,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1234
1233
|
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
|
|
1235
1234
|
// Unidentifiable Mobile
|
|
1236
1235
|
],
|
|
1237
|
-
[[s,
|
|
1236
|
+
[[s, S]],
|
|
1238
1237
|
[
|
|
1239
1238
|
/droid .+?; ([\w\. -]+)( bui|\))/i
|
|
1240
1239
|
// Generic Android Device
|
|
@@ -1246,17 +1245,17 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1246
1245
|
/windows.+ edge\/([\w\.]+)/i
|
|
1247
1246
|
// EdgeHTML
|
|
1248
1247
|
],
|
|
1249
|
-
[
|
|
1248
|
+
[l, [d, ke + "HTML"]],
|
|
1250
1249
|
[
|
|
1251
1250
|
/(arkweb)\/([\w\.]+)/i
|
|
1252
1251
|
// ArkWeb
|
|
1253
1252
|
],
|
|
1254
|
-
[
|
|
1253
|
+
[d, l],
|
|
1255
1254
|
[
|
|
1256
1255
|
/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
|
|
1257
1256
|
// Blink
|
|
1258
1257
|
],
|
|
1259
|
-
[
|
|
1258
|
+
[l, [d, "Blink"]],
|
|
1260
1259
|
[
|
|
1261
1260
|
/(presto)\/([\w\.]+)/i,
|
|
1262
1261
|
// Presto
|
|
@@ -1271,16 +1270,16 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1271
1270
|
/\b(libweb)/i
|
|
1272
1271
|
// LibWeb
|
|
1273
1272
|
],
|
|
1274
|
-
[
|
|
1273
|
+
[d, l],
|
|
1275
1274
|
[
|
|
1276
1275
|
/ladybird\//i
|
|
1277
1276
|
],
|
|
1278
|
-
[[
|
|
1277
|
+
[[d, "LibWeb"]],
|
|
1279
1278
|
[
|
|
1280
1279
|
/rv\:([\w\.]{1,9})\b.+(gecko)/i
|
|
1281
1280
|
// Gecko
|
|
1282
1281
|
],
|
|
1283
|
-
[
|
|
1282
|
+
[l, d]
|
|
1284
1283
|
],
|
|
1285
1284
|
os: [
|
|
1286
1285
|
[
|
|
@@ -1288,24 +1287,24 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1288
1287
|
/(windows nt) (6\.[23]); arm/i
|
|
1289
1288
|
// Windows RT
|
|
1290
1289
|
],
|
|
1291
|
-
[[
|
|
1290
|
+
[[d, /N/, "R"], [l, U, St]],
|
|
1292
1291
|
[
|
|
1293
1292
|
/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
|
|
1294
1293
|
// Windows IoT/Mobile/Phone
|
|
1295
1294
|
// Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
|
|
1296
1295
|
/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
|
|
1297
1296
|
],
|
|
1298
|
-
[
|
|
1297
|
+
[d, l],
|
|
1299
1298
|
[
|
|
1300
1299
|
/windows nt ?([\d\.\)]*)(?!.+xbox)/i,
|
|
1301
1300
|
/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
|
|
1302
1301
|
],
|
|
1303
|
-
[[
|
|
1302
|
+
[[l, /(;|\))/g, "", U, St], [d, Qe]],
|
|
1304
1303
|
[
|
|
1305
1304
|
/(windows ce)\/?([\d\.]*)/i
|
|
1306
1305
|
// Windows CE
|
|
1307
1306
|
],
|
|
1308
|
-
[
|
|
1307
|
+
[d, l],
|
|
1309
1308
|
[
|
|
1310
1309
|
// iOS/macOS
|
|
1311
1310
|
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
|
|
@@ -1314,100 +1313,100 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1314
1313
|
/\btvos ?([\w\.]+)/i,
|
|
1315
1314
|
/cfnetwork\/.+darwin/i
|
|
1316
1315
|
],
|
|
1317
|
-
[[
|
|
1316
|
+
[[l, /_/g, "."], [d, "iOS"]],
|
|
1318
1317
|
[
|
|
1319
1318
|
/(mac os x) ?([\w\. ]*)/i,
|
|
1320
1319
|
/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
|
|
1321
1320
|
// Mac OS
|
|
1322
1321
|
],
|
|
1323
|
-
[[
|
|
1322
|
+
[[d, "macOS"], [l, /_/g, "."]],
|
|
1324
1323
|
[
|
|
1325
1324
|
// Google Chromecast
|
|
1326
1325
|
/android ([\d\.]+).*crkey/i
|
|
1327
1326
|
// Google Chromecast, Android-based
|
|
1328
1327
|
],
|
|
1329
|
-
[
|
|
1328
|
+
[l, [d, K + " Android"]],
|
|
1330
1329
|
[
|
|
1331
1330
|
/fuchsia.*crkey\/([\d\.]+)/i
|
|
1332
1331
|
// Google Chromecast, Fuchsia-based
|
|
1333
1332
|
],
|
|
1334
|
-
[
|
|
1333
|
+
[l, [d, K + " Fuchsia"]],
|
|
1335
1334
|
[
|
|
1336
1335
|
/crkey\/([\d\.]+).*devicetype\/smartspeaker/i
|
|
1337
1336
|
// Google Chromecast, Linux-based Smart Speaker
|
|
1338
1337
|
],
|
|
1339
|
-
[
|
|
1338
|
+
[l, [d, K + " SmartSpeaker"]],
|
|
1340
1339
|
[
|
|
1341
1340
|
/linux.*crkey\/([\d\.]+)/i
|
|
1342
1341
|
// Google Chromecast, Legacy Linux-based
|
|
1343
1342
|
],
|
|
1344
|
-
[
|
|
1343
|
+
[l, [d, K + " Linux"]],
|
|
1345
1344
|
[
|
|
1346
1345
|
/crkey\/([\d\.]+)/i
|
|
1347
1346
|
// Google Chromecast, unknown
|
|
1348
1347
|
],
|
|
1349
|
-
[
|
|
1348
|
+
[l, [d, K]],
|
|
1350
1349
|
[
|
|
1351
1350
|
// Mobile OSes
|
|
1352
1351
|
/droid ([\w\.]+)\b.+(android[- ]x86)/i
|
|
1353
1352
|
// Android-x86
|
|
1354
1353
|
],
|
|
1355
|
-
[
|
|
1354
|
+
[l, d],
|
|
1356
1355
|
[
|
|
1357
1356
|
/(ubuntu) ([\w\.]+) like android/i
|
|
1358
1357
|
// Ubuntu Touch
|
|
1359
1358
|
],
|
|
1360
|
-
[[
|
|
1359
|
+
[[d, /(.+)/, "$1 Touch"], l],
|
|
1361
1360
|
[
|
|
1362
1361
|
/(harmonyos)[\/ ]?([\d\.]*)/i,
|
|
1363
1362
|
// HarmonyOS
|
|
1364
1363
|
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
|
|
1365
1364
|
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
|
|
1366
1365
|
],
|
|
1367
|
-
[
|
|
1366
|
+
[d, l],
|
|
1368
1367
|
[
|
|
1369
1368
|
/\(bb(10);/i
|
|
1370
1369
|
// BlackBerry 10
|
|
1371
1370
|
],
|
|
1372
|
-
[
|
|
1371
|
+
[l, [d, ft]],
|
|
1373
1372
|
[
|
|
1374
1373
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
|
|
1375
1374
|
// Symbian
|
|
1376
1375
|
],
|
|
1377
|
-
[
|
|
1376
|
+
[l, [d, "Symbian"]],
|
|
1378
1377
|
[
|
|
1379
1378
|
/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i
|
|
1380
1379
|
// Firefox OS
|
|
1381
1380
|
],
|
|
1382
|
-
[
|
|
1381
|
+
[l, [d, ue + " OS"]],
|
|
1383
1382
|
[
|
|
1384
1383
|
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
|
|
1385
1384
|
// WebOS
|
|
1386
1385
|
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
|
1387
1386
|
],
|
|
1388
|
-
[
|
|
1387
|
+
[l, [d, "webOS"]],
|
|
1389
1388
|
[
|
|
1390
1389
|
/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
|
|
1391
1390
|
// https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
|
|
1392
1391
|
],
|
|
1393
|
-
[[
|
|
1392
|
+
[[l, U, { 25: "120", 24: "108", 23: "94", 22: "87", 6: "79", 5: "68", 4: "53", 3: "38", 2: "538", 1: "537", "*": "TV" }], [d, "webOS"]],
|
|
1394
1393
|
[
|
|
1395
1394
|
/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i
|
|
1396
1395
|
// watchOS
|
|
1397
1396
|
],
|
|
1398
|
-
[
|
|
1397
|
+
[l, [d, "watchOS"]],
|
|
1399
1398
|
[
|
|
1400
1399
|
// Google ChromeOS
|
|
1401
1400
|
/cros [\w]+(?:\)| ([\w\.]+)\b)/i
|
|
1402
1401
|
// Chromium OS
|
|
1403
1402
|
],
|
|
1404
|
-
[
|
|
1403
|
+
[l, [d, "Chrome OS"]],
|
|
1405
1404
|
[
|
|
1406
1405
|
// Smart TVs
|
|
1407
1406
|
/kepler ([\w\.]+); (aft|aeo)/i
|
|
1408
1407
|
// Vega OS
|
|
1409
1408
|
],
|
|
1410
|
-
[
|
|
1409
|
+
[l, [d, "Vega OS"]],
|
|
1411
1410
|
[
|
|
1412
1411
|
/(netrange)mmh/i,
|
|
1413
1412
|
// Netrange
|
|
@@ -1442,109 +1441,109 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1442
1441
|
/(haiku) ?(r\d)?/i
|
|
1443
1442
|
// Haiku
|
|
1444
1443
|
],
|
|
1445
|
-
[
|
|
1444
|
+
[d, l],
|
|
1446
1445
|
[
|
|
1447
1446
|
/(sunos) ?([\d\.]*)/i
|
|
1448
1447
|
// Solaris
|
|
1449
1448
|
],
|
|
1450
|
-
[[
|
|
1449
|
+
[[d, "Solaris"], l],
|
|
1451
1450
|
[
|
|
1452
1451
|
/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
|
|
1453
1452
|
// BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
|
|
1454
1453
|
/(unix) ?([\w\.]*)/i
|
|
1455
1454
|
// UNIX
|
|
1456
1455
|
],
|
|
1457
|
-
[
|
|
1456
|
+
[d, l]
|
|
1458
1457
|
]
|
|
1459
1458
|
}, ve = (function() {
|
|
1460
1459
|
var x = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
|
|
1461
|
-
return
|
|
1462
|
-
[P, [
|
|
1463
|
-
[
|
|
1460
|
+
return z.call(x.init, [
|
|
1461
|
+
[P, [d, l, he, s]],
|
|
1462
|
+
[Y, [M]],
|
|
1464
1463
|
[H, [s, c, u]],
|
|
1465
|
-
[
|
|
1466
|
-
[N, [
|
|
1467
|
-
]),
|
|
1468
|
-
[P, [
|
|
1469
|
-
[
|
|
1470
|
-
[N, [
|
|
1471
|
-
]),
|
|
1464
|
+
[L, [d, l]],
|
|
1465
|
+
[N, [d, l]]
|
|
1466
|
+
]), z.call(x.isIgnore, [
|
|
1467
|
+
[P, [l, he]],
|
|
1468
|
+
[L, [l]],
|
|
1469
|
+
[N, [l]]
|
|
1470
|
+
]), z.call(x.isIgnoreRgx, [
|
|
1472
1471
|
[P, / ?browser$/i],
|
|
1473
1472
|
[N, / ?os$/i]
|
|
1474
|
-
]),
|
|
1475
|
-
[P, [
|
|
1476
|
-
[
|
|
1473
|
+
]), z.call(x.toString, [
|
|
1474
|
+
[P, [d, l]],
|
|
1475
|
+
[Y, [M]],
|
|
1477
1476
|
[H, [u, c]],
|
|
1478
|
-
[
|
|
1479
|
-
[N, [
|
|
1477
|
+
[L, [d, l]],
|
|
1478
|
+
[N, [d, l]]
|
|
1480
1479
|
]), x;
|
|
1481
|
-
})(),
|
|
1480
|
+
})(), f0 = function(x, t) {
|
|
1482
1481
|
var e = ve.init[t], i = ve.isIgnore[t] || 0, n = ve.isIgnoreRgx[t] || 0, r = ve.toString[t] || 0;
|
|
1483
1482
|
function o() {
|
|
1484
|
-
|
|
1483
|
+
z.call(this, e);
|
|
1485
1484
|
}
|
|
1486
1485
|
return o.prototype.getItem = function() {
|
|
1487
1486
|
return x;
|
|
1488
1487
|
}, o.prototype.withClientHints = function() {
|
|
1489
|
-
return $ ? $.getHighEntropyValues(
|
|
1490
|
-
return x.setCH(new
|
|
1488
|
+
return $ ? $.getHighEntropyValues(Lt).then(function(p) {
|
|
1489
|
+
return x.setCH(new Bt(p, !1)).parseCH().get();
|
|
1491
1490
|
}) : x.parseCH().get();
|
|
1492
1491
|
}, o.prototype.withFeatureCheck = function() {
|
|
1493
1492
|
return x.detectFeature().get();
|
|
1494
1493
|
}, t != oe && (o.prototype.is = function(p) {
|
|
1495
|
-
var
|
|
1496
|
-
for (var
|
|
1497
|
-
if (this.hasOwnProperty(
|
|
1498
|
-
if (
|
|
1499
|
-
} else if (p == E.UNDEFINED &&
|
|
1500
|
-
|
|
1494
|
+
var f = !1;
|
|
1495
|
+
for (var v in this)
|
|
1496
|
+
if (this.hasOwnProperty(v) && !$e(i, v) && W(n ? ce(n, this[v]) : this[v]) == W(n ? ce(n, p) : p)) {
|
|
1497
|
+
if (f = !0, p != E.UNDEFINED) break;
|
|
1498
|
+
} else if (p == E.UNDEFINED && f) {
|
|
1499
|
+
f = !f;
|
|
1501
1500
|
break;
|
|
1502
1501
|
}
|
|
1503
|
-
return
|
|
1502
|
+
return f;
|
|
1504
1503
|
}, o.prototype.toString = function() {
|
|
1505
1504
|
var p = re;
|
|
1506
|
-
for (var
|
|
1507
|
-
typeof this[r[
|
|
1505
|
+
for (var f in r)
|
|
1506
|
+
typeof this[r[f]] !== E.UNDEFINED && (p += (p ? " " : re) + this[r[f]]);
|
|
1508
1507
|
return p || E.UNDEFINED;
|
|
1509
1508
|
}), o.prototype.then = function(p) {
|
|
1510
|
-
var
|
|
1511
|
-
for (var
|
|
1512
|
-
|
|
1509
|
+
var f = this, v = function() {
|
|
1510
|
+
for (var T in f)
|
|
1511
|
+
f.hasOwnProperty(T) && (this[T] = f[T]);
|
|
1513
1512
|
};
|
|
1514
|
-
|
|
1513
|
+
v.prototype = {
|
|
1515
1514
|
is: o.prototype.is,
|
|
1516
1515
|
toString: o.prototype.toString,
|
|
1517
1516
|
withClientHints: o.prototype.withClientHints,
|
|
1518
1517
|
withFeatureCheck: o.prototype.withFeatureCheck
|
|
1519
1518
|
};
|
|
1520
|
-
var
|
|
1521
|
-
return p(
|
|
1519
|
+
var I = new v();
|
|
1520
|
+
return p(I), I;
|
|
1522
1521
|
}, new o();
|
|
1523
1522
|
};
|
|
1524
|
-
function
|
|
1525
|
-
if (x = x || {},
|
|
1526
|
-
|
|
1527
|
-
[it,
|
|
1528
|
-
[xt,
|
|
1529
|
-
[
|
|
1530
|
-
[c,
|
|
1531
|
-
[se,
|
|
1532
|
-
[at,
|
|
1533
|
-
[M,
|
|
1534
|
-
[Q,
|
|
1535
|
-
[Le,
|
|
1523
|
+
function Bt(x, t) {
|
|
1524
|
+
if (x = x || {}, z.call(this, Lt), t)
|
|
1525
|
+
z.call(this, [
|
|
1526
|
+
[it, je(x[J])],
|
|
1527
|
+
[xt, je(x[x0])],
|
|
1528
|
+
[S, /\?1/.test(x[o0])],
|
|
1529
|
+
[c, fe(x[s0])],
|
|
1530
|
+
[se, fe(x[Ut])],
|
|
1531
|
+
[at, fe(x[c0])],
|
|
1532
|
+
[M, fe(x[a0])],
|
|
1533
|
+
[Q, je(x[r0])],
|
|
1534
|
+
[Le, fe(x[n0])]
|
|
1536
1535
|
]);
|
|
1537
1536
|
else
|
|
1538
1537
|
for (var e in x)
|
|
1539
1538
|
this.hasOwnProperty(e) && typeof x[e] !== E.UNDEFINED && (this[e] = x[e]);
|
|
1540
1539
|
}
|
|
1541
1540
|
function j(x, t, e, i) {
|
|
1542
|
-
return
|
|
1541
|
+
return z.call(this, [
|
|
1543
1542
|
["itemType", x],
|
|
1544
1543
|
["ua", t],
|
|
1545
1544
|
["uaCH", i],
|
|
1546
1545
|
["rgxMap", e],
|
|
1547
|
-
["data",
|
|
1546
|
+
["data", f0(this, x)]
|
|
1548
1547
|
]), this;
|
|
1549
1548
|
}
|
|
1550
1549
|
j.prototype.get = function(x) {
|
|
@@ -1560,31 +1559,31 @@ j.prototype.detectFeature = function() {
|
|
|
1560
1559
|
if (O && O.userAgent == this.ua)
|
|
1561
1560
|
switch (this.itemType) {
|
|
1562
1561
|
case P:
|
|
1563
|
-
O.brave && typeof O.brave.isBrave == E.FUNCTION && this.set(
|
|
1562
|
+
O.brave && typeof O.brave.isBrave == E.FUNCTION && this.set(d, "Brave");
|
|
1564
1563
|
break;
|
|
1565
1564
|
case H:
|
|
1566
|
-
!this.get(s) && $ && $[
|
|
1565
|
+
!this.get(s) && $ && $[S] && this.set(s, S), this.get(c) == "Macintosh" && O && typeof O.standalone !== E.UNDEFINED && O.maxTouchPoints && O.maxTouchPoints > 2 && this.set(c, "iPad").set(s, k);
|
|
1567
1566
|
break;
|
|
1568
1567
|
case N:
|
|
1569
|
-
!this.get(
|
|
1568
|
+
!this.get(d) && $ && $[se] && this.set(d, $[se]);
|
|
1570
1569
|
break;
|
|
1571
1570
|
case oe:
|
|
1572
1571
|
var x = this.data, t = function(e) {
|
|
1573
1572
|
return x[e].getItem().detectFeature().get();
|
|
1574
1573
|
};
|
|
1575
|
-
this.set(P, t(P)).set(
|
|
1574
|
+
this.set(P, t(P)).set(Y, t(Y)).set(H, t(H)).set(L, t(L)).set(N, t(N));
|
|
1576
1575
|
}
|
|
1577
1576
|
return this;
|
|
1578
1577
|
};
|
|
1579
1578
|
j.prototype.parseUA = function() {
|
|
1580
1579
|
switch (this.itemType != oe && tt.call(this.data, this.ua, this.rgxMap), this.itemType) {
|
|
1581
1580
|
case P:
|
|
1582
|
-
this.set(
|
|
1581
|
+
this.set(he, et(this.get(l)));
|
|
1583
1582
|
break;
|
|
1584
1583
|
case N:
|
|
1585
|
-
if (this.get(
|
|
1584
|
+
if (this.get(d) == "iOS" && this.get(l) == "18.6") {
|
|
1586
1585
|
var x = /\) Version\/([\d\.]+)/.exec(this.ua);
|
|
1587
|
-
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(
|
|
1586
|
+
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(l, x[1]);
|
|
1588
1587
|
}
|
|
1589
1588
|
break;
|
|
1590
1589
|
}
|
|
@@ -1594,55 +1593,55 @@ j.prototype.parseCH = function() {
|
|
|
1594
1593
|
var x = this.uaCH, t = this.rgxMap;
|
|
1595
1594
|
switch (this.itemType) {
|
|
1596
1595
|
case P:
|
|
1597
|
-
case
|
|
1596
|
+
case L:
|
|
1598
1597
|
var e = x[xt] || x[it], i;
|
|
1599
1598
|
if (e)
|
|
1600
1599
|
for (var n = 0; n < e.length; n++) {
|
|
1601
1600
|
var r = e[n].brand || e[n], o = e[n].version;
|
|
1602
|
-
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r !=
|
|
1601
|
+
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r != yt || i == ke && /WebView2/.test(r)) && (r = U(r, u0), i = this.get(d), i && !/Chrom/.test(i) && /Chrom/.test(r) || this.set(d, r).set(l, o).set(he, et(o)), i = r), this.itemType == L && r == yt && this.set(l, o);
|
|
1603
1602
|
}
|
|
1604
1603
|
break;
|
|
1605
|
-
case
|
|
1604
|
+
case Y:
|
|
1606
1605
|
var p = x[M];
|
|
1607
1606
|
p && (p && x[Le] == "64" && (p += "64"), tt.call(this.data, p + ";", t));
|
|
1608
1607
|
break;
|
|
1609
1608
|
case H:
|
|
1610
|
-
if (x[
|
|
1611
|
-
var
|
|
1612
|
-
tt.call(
|
|
1609
|
+
if (x[S] && this.set(s, S), x[c] && (this.set(c, x[c]), !this.get(s) || !this.get(u))) {
|
|
1610
|
+
var f = {};
|
|
1611
|
+
tt.call(f, "droid 9; " + x[c] + ")", t), !this.get(s) && f.type && this.set(s, f.type), !this.get(u) && f.vendor && this.set(u, f.vendor);
|
|
1613
1612
|
}
|
|
1614
1613
|
if (x[Q]) {
|
|
1615
|
-
var
|
|
1614
|
+
var v;
|
|
1616
1615
|
if (typeof x[Q] != "string")
|
|
1617
|
-
for (var
|
|
1618
|
-
|
|
1616
|
+
for (var I = 0; !v && I < x[Q].length; )
|
|
1617
|
+
v = U(x[Q][I++], It);
|
|
1619
1618
|
else
|
|
1620
|
-
|
|
1621
|
-
this.set(s,
|
|
1619
|
+
v = U(x[Q], It);
|
|
1620
|
+
this.set(s, v);
|
|
1622
1621
|
}
|
|
1623
1622
|
break;
|
|
1624
1623
|
case N:
|
|
1625
|
-
var
|
|
1626
|
-
if (
|
|
1624
|
+
var T = x[se];
|
|
1625
|
+
if (T) {
|
|
1627
1626
|
var R = x[at];
|
|
1628
|
-
|
|
1627
|
+
T == Qe && (R = parseInt(et(R), 10) >= 13 ? "11" : "10"), this.set(d, T).set(l, R);
|
|
1629
1628
|
}
|
|
1630
|
-
this.get(
|
|
1629
|
+
this.get(d) == Qe && x[c] == "Xbox" && this.set(d, "Xbox").set(l, void 0);
|
|
1631
1630
|
break;
|
|
1632
1631
|
case oe:
|
|
1633
|
-
var
|
|
1634
|
-
return
|
|
1632
|
+
var X = this.data, G = function(V) {
|
|
1633
|
+
return X[V].getItem().setCH(x).parseCH().get();
|
|
1635
1634
|
};
|
|
1636
|
-
this.set(P, G(P)).set(
|
|
1635
|
+
this.set(P, G(P)).set(Y, G(Y)).set(H, G(H)).set(L, G(L)).set(N, G(N));
|
|
1637
1636
|
}
|
|
1638
1637
|
return this;
|
|
1639
1638
|
};
|
|
1640
|
-
function
|
|
1641
|
-
if (typeof x === E.OBJECT ? (
|
|
1639
|
+
function q(x, t, e) {
|
|
1640
|
+
if (typeof x === E.OBJECT ? (Ae(x, !0) ? (typeof t === E.OBJECT && (e = t), t = x) : (e = x, t = void 0), x = void 0) : typeof x === E.STRING && !Ae(t, !0) && (e = t, t = void 0), e)
|
|
1642
1641
|
if (typeof e.append === E.FUNCTION) {
|
|
1643
1642
|
var i = {};
|
|
1644
|
-
e.forEach(function(
|
|
1645
|
-
i[String(
|
|
1643
|
+
e.forEach(function(I, T) {
|
|
1644
|
+
i[String(T).toLowerCase()] = I;
|
|
1646
1645
|
}), e = i;
|
|
1647
1646
|
} else {
|
|
1648
1647
|
var n = {};
|
|
@@ -1650,711 +1649,739 @@ function W(x, t, e) {
|
|
|
1650
1649
|
e.hasOwnProperty(r) && (n[String(r).toLowerCase()] = e[r]);
|
|
1651
1650
|
e = n;
|
|
1652
1651
|
}
|
|
1653
|
-
if (!(this instanceof
|
|
1654
|
-
return new
|
|
1652
|
+
if (!(this instanceof q))
|
|
1653
|
+
return new q(x, t, e).getResult();
|
|
1655
1654
|
var o = typeof x === E.STRING ? x : (
|
|
1656
1655
|
// Passed user-agent string
|
|
1657
|
-
e && e[
|
|
1656
|
+
e && e[dt] ? e[dt] : (
|
|
1658
1657
|
// User-Agent from passed headers
|
|
1659
1658
|
O && O.userAgent ? O.userAgent : (
|
|
1660
1659
|
// navigator.userAgent
|
|
1661
1660
|
re
|
|
1662
1661
|
)
|
|
1663
1662
|
)
|
|
1664
|
-
), p = new
|
|
1665
|
-
return
|
|
1666
|
-
return new j(
|
|
1663
|
+
), p = new Bt(e, !0), f = t ? l0(kt, t) : kt, v = function(I) {
|
|
1664
|
+
return I == oe ? function() {
|
|
1665
|
+
return new j(I, o, f, p).set("ua", o).set(P, this.getBrowser()).set(Y, this.getCPU()).set(H, this.getDevice()).set(L, this.getEngine()).set(N, this.getOS()).get();
|
|
1667
1666
|
} : function() {
|
|
1668
|
-
return new j(
|
|
1667
|
+
return new j(I, o, f[I], p).parseUA().get();
|
|
1669
1668
|
};
|
|
1670
1669
|
};
|
|
1671
|
-
return
|
|
1672
|
-
["getBrowser",
|
|
1673
|
-
["getCPU",
|
|
1674
|
-
["getDevice",
|
|
1675
|
-
["getEngine",
|
|
1676
|
-
["getOS",
|
|
1677
|
-
["getResult",
|
|
1670
|
+
return z.call(this, [
|
|
1671
|
+
["getBrowser", v(P)],
|
|
1672
|
+
["getCPU", v(Y)],
|
|
1673
|
+
["getDevice", v(H)],
|
|
1674
|
+
["getEngine", v(L)],
|
|
1675
|
+
["getOS", v(N)],
|
|
1676
|
+
["getResult", v(oe)],
|
|
1678
1677
|
["getUA", function() {
|
|
1679
1678
|
return o;
|
|
1680
1679
|
}],
|
|
1681
|
-
["setUA", function(
|
|
1682
|
-
return
|
|
1680
|
+
["setUA", function(I) {
|
|
1681
|
+
return be(I) && (o = De(I, t0)), this;
|
|
1683
1682
|
}]
|
|
1684
1683
|
]).setUA(o), this;
|
|
1685
1684
|
}
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
const
|
|
1685
|
+
q.VERSION = e0;
|
|
1686
|
+
q.BROWSER = Be([d, l, he, s]);
|
|
1687
|
+
q.CPU = Be([M]);
|
|
1688
|
+
q.DEVICE = Be([c, u, s, Ie, S, C, k, F, pe]);
|
|
1689
|
+
q.ENGINE = q.OS = Be([d, l]);
|
|
1690
|
+
const _t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1692
1691
|
__proto__: null,
|
|
1693
|
-
UAParser:
|
|
1692
|
+
UAParser: q
|
|
1694
1693
|
}, Symbol.toStringTag, { value: "Module" })), D = [];
|
|
1695
1694
|
for (let x = 0; x < 256; ++x)
|
|
1696
1695
|
D.push((x + 256).toString(16).slice(1));
|
|
1697
1696
|
function p0(x, t = 0) {
|
|
1698
1697
|
return (D[x[t + 0]] + D[x[t + 1]] + D[x[t + 2]] + D[x[t + 3]] + "-" + D[x[t + 4]] + D[x[t + 5]] + "-" + D[x[t + 6]] + D[x[t + 7]] + "-" + D[x[t + 8]] + D[x[t + 9]] + "-" + D[x[t + 10]] + D[x[t + 11]] + D[x[t + 12]] + D[x[t + 13]] + D[x[t + 14]] + D[x[t + 15]]).toLowerCase();
|
|
1699
1698
|
}
|
|
1700
|
-
let
|
|
1699
|
+
let Je;
|
|
1701
1700
|
const h0 = new Uint8Array(16);
|
|
1702
1701
|
function b0() {
|
|
1703
|
-
if (!
|
|
1702
|
+
if (!Je) {
|
|
1704
1703
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
1705
1704
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
1706
|
-
|
|
1705
|
+
Je = crypto.getRandomValues.bind(crypto);
|
|
1707
1706
|
}
|
|
1708
|
-
return
|
|
1707
|
+
return Je(h0);
|
|
1709
1708
|
}
|
|
1710
|
-
const
|
|
1711
|
-
function
|
|
1709
|
+
const w0 = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Et = { randomUUID: w0 };
|
|
1710
|
+
function g0(x, t, e) {
|
|
1712
1711
|
x = x || {};
|
|
1713
1712
|
const i = x.random ?? x.rng?.() ?? b0();
|
|
1714
1713
|
if (i.length < 16)
|
|
1715
1714
|
throw new Error("Random bytes length must be >= 16");
|
|
1716
1715
|
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, p0(i);
|
|
1717
1716
|
}
|
|
1718
|
-
function
|
|
1719
|
-
return
|
|
1717
|
+
function Ft(x, t, e) {
|
|
1718
|
+
return Et.randomUUID && !x ? Et.randomUUID() : g0(x);
|
|
1719
|
+
}
|
|
1720
|
+
function Me() {
|
|
1721
|
+
const x = ["Iceland", "Monaco", "Montserrat", "Gibraltar", "Ukraine", "Singapore", "Poland", "1273934HuBKwz", "Tajikistan", "Antigua and Barbuda", "Cambodia", "Ecuador", "Sierra Leone", "Pitcairn", "Botswana", "Canada", "Gambia", "Tokelau", "Guadeloupe", "New Caledonia", "British Indian Ocean Territory", "Timor-Leste", "Suriname", "Switzerland", "Iraq", "271075MuXgne", "Korea (Democratic People's Republic of)", "Qatar", "Thailand", "Faroe Islands", "Venezuela (Bolivarian Republic of)", "Mozambique", "Jordan", "Liechtenstein", "Antarctica", "Heard Island and McDonald Islands", "Comoros", "Ethiopia", "Guatemala", "Solomon Islands", "Spain", "Nigeria", "Togo", "Greenland", "Tanzania, United Republic of", "Benin", "United States of America", "Cabo Verde", "Curaçao", "New Zealand", "Iran (Islamic Republic of)", "Aruba", "French Polynesia", "Falkland Islands (Malvinas)", "Serbia", "Bangladesh", "Belarus", "Morocco", "Barbados", "Sri Lanka", "Uzbekistan", "Svalbard and Jan Mayen", "Israel", "Kenya", "Belgium", "Macedonia (the former Yugoslav Republic of)", "Cyprus", "Mongolia", "United Arab Emirates", "South Africa", "France", "Bosnia and Herzegovina", "Dominican Republic", "Colombia", "Anguilla", "San Marino", "Czech Republic", "Egypt", "Fiji", "Lebanon", "Seychelles", "Trinidad and Tobago", "Chad", "784167zZgLDv", "Netherlands", "Niue", "French Southern Territories", "Northern Mariana Islands", "Bouvet Island", "Niger", "French Guiana", "Central African Republic", "Lao People's Democratic Republic", "Papua New Guinea", "Albania", "Somalia", "Nauru", "Austria", "Norway", "Bahrain", "Bolivia (Plurinational State of)", "Turks and Caicos Islands", "Germany", "Mayotte", "Estonia", "Latvia", "Liberia", "Korea, Republic of", "Guernsey", "Georgia", "China", "Finland", "Romania", "Haiti", "Brunei Darussalam", "Moldova (Republic of)", "Tonga", "Honduras", "522ctlmiS", "Samoa", "Palau", "Taiwan", "Azerbaijan", "Ireland", "Guinea", "Christmas Island", "Sweden", "Mauritania", "Turkey", "Marshall Islands", "South Sudan", "Saint Barthélemy", "Isle of Man", "Saint Martin (French part)", "2536536dIKRXq", "2673200tlMuAP", "Kyrgyzstan", "Luxembourg", "Western Sahara", "Jersey", "Chile", "Cameroon", "Greece", "Saint Helena, Ascension and Tristan da Cunha", "Uruguay", "Sao Tome and Principe", "Guinea-Bissau", "Sint Maarten (Dutch part)", "Micronesia (Federated States of)", "Yemen", "Tuvalu", "Macao", "Gabon", "Armenia", "Turkmenistan", "Namibia", "Kiribati", "Maldives", "Argentina", "136PSqect", "Guyana", "United States Minor Outlying Islands", "Russian Federation", "Brazil", "3NDfhyV", "Lithuania", "Myanmar", "Portugal", "Puerto Rico", "Libya", "Malta", "Madagascar", "Bonaire, Sint Eustatius and Saba", "South Georgia and the South Sandwich Islands", "Congo (Democratic Republic of the)", "Cayman Islands", "Indonesia", "1918686puGVqd", "Croatia", "India", "Denmark", "Palestine, State of", "Slovakia", "Mauritius", "Italy", "Bhutan", "United Kingdom", "Peru", "228060lmmafb", "Bermuda", "Saint Pierre and Miquelon", "Swaziland", "Hungary", "Syrian Arab Republic", "Norfolk Island", "Vanuatu", "Ghana", "Dominica", "Burkina Faso", "Cook Islands", "Saint Vincent and the Grenadines", "Montenegro", "Costa Rica", "Wallis and Futuna", "Hong Kong", "Panama"];
|
|
1722
|
+
return Me = function() {
|
|
1723
|
+
return x;
|
|
1724
|
+
}, Me();
|
|
1720
1725
|
}
|
|
1721
|
-
const a =
|
|
1726
|
+
const a = Ht;
|
|
1722
1727
|
(function(x, t) {
|
|
1723
|
-
const e =
|
|
1728
|
+
const e = Ht, i = x();
|
|
1724
1729
|
for (; ; )
|
|
1725
1730
|
try {
|
|
1726
|
-
if (
|
|
1731
|
+
if (parseInt(e(317)) / 1 + -parseInt(e(447)) / 2 * (parseInt(e(398)) / 3) + -parseInt(e(368)) / 4 + parseInt(e(369)) / 5 + -parseInt(e(411)) / 6 + parseInt(e(465)) / 7 * (-parseInt(e(393)) / 8) + parseInt(e(352)) / 9 * (parseInt(e(422)) / 10) === t) break;
|
|
1727
1732
|
i.push(i.shift());
|
|
1728
1733
|
} catch {
|
|
1729
1734
|
i.push(i.shift());
|
|
1730
1735
|
}
|
|
1731
|
-
})(
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
return x = x - 443, Re()[x];
|
|
1735
|
-
}
|
|
1736
|
-
function Re() {
|
|
1737
|
-
const x = ["3895608gDWJKl", "Côte d'Ivoire", "Turks and Caicos Islands", "Saint Pierre and Miquelon", "Guatemala", "Central African Republic", "Bangladesh", "Zambia", "South Sudan", "United Arab Emirates", "Ireland", "Nigeria", "Panama", "Slovakia", "Latvia", "Iceland", "Burundi", "South Georgia and the South Sandwich Islands", "Spain", "Bolivia (Plurinational State of)", "Guyana", "Oman", "Cameroon", "69LfMWUX", "Iraq", "Brunei Darussalam", "Bulgaria", "Albania", "Germany", "Timor-Leste", "Nicaragua", "Dominica", "Azerbaijan", "Netherlands", "Armenia", "Cook Islands", "Greece", "Costa Rica", "Australia", "China", "Myanmar", "Burkina Faso", "Sudan", "Lithuania", "Peru", "Solomon Islands", "Lesotho", "Honduras", "Palestine, State of", "289281oUmDYN", "Fiji", "Cabo Verde", "Macao", "Puerto Rico", "Hong Kong", "Lao People's Democratic Republic", "Namibia", "Russian Federation", "Indonesia", "Norway", "Heard Island and McDonald Islands", "Belize", "Cuba", "French Guiana", "Saint Martin (French part)", "Egypt", "Argentina", "Turkey", "Gabon", "Anguilla", "Canada", "Uzbekistan", "Jordan", "Maldives", "Croatia", "Comoros", "Uruguay", "Gibraltar", "Cyprus", "Finland", "Yemen", "Brazil", "Switzerland", "1617696mFvqAQ", "Taiwan", "Estonia", "Ghana", "Malawi", "American Samoa", "Sweden", "Bahamas", "Tunisia", "Slovenia", "Andorra", "Liechtenstein", "Samoa", "Turkmenistan", "Macedonia (the former Yugoslav Republic of)", "Saint Lucia", "Nauru", "Faroe Islands", "Belarus", "Benin", "Pitcairn", "Tokelau", "Saudi Arabia", "Lebanon", "Poland", "Guinea", "Sierra Leone", "Hungary", "Syrian Arab Republic", "Belgium", "Congo (Democratic Republic of the)", "Tonga", "Tajikistan", "Mongolia", "Kazakhstan", "Trinidad and Tobago", "Bonaire, Sint Eustatius and Saba", "Guadeloupe", "Angola", "Portugal", "Falkland Islands (Malvinas)", "Uganda", "Japan", "Kenya", "Zimbabwe", "Antigua and Barbuda", "Kyrgyzstan", "Georgia", "Chad", "Niue", "Barbados", "Austria", "Denmark", "2722573tYdJbr", "Gambia", "Réunion", "Northern Mariana Islands", "Korea (Democratic People's Republic of)", "Nepal", "Romania", "Congo", "Qatar", "Liberia", "India", "Papua New Guinea", "Monaco", "Cocos (Keeling) Islands", "Serbia", "Guam", "Iran (Islamic Republic of)", "Micronesia (Federated States of)", "Jamaica", "Somalia", "Virgin Islands (British)", "Kiribati", "Holy See", "Niger", "Bermuda", "30854IvHGyw", "Suriname", "Grenada", "Saint Helena, Ascension and Tristan da Cunha", "Virgin Islands (U.S.)", "Algeria", "France", "Svalbard and Jan Mayen", "Cayman Islands", "Martinique", "South Africa", "Malaysia", "Norfolk Island", "Moldova (Republic of)", "Libya", "Korea, Republic of", "Viet Nam", "Morocco", "Afghanistan", "Singapore", "New Zealand", "Luxembourg", "United Kingdom", "Isle of Man", "Bosnia and Herzegovina", "6639813leQyIv", "Saint Barthélemy", "Philippines", "30UOKmLN", "Åland Islands", "Aruba", "45905LXNxBw", "British Indian Ocean Territory", "Jersey", "Mozambique", "Mauritius", "Haiti", "Kuwait", "Seychelles", "Sao Tome and Principe", "Pakistan", "United States of America", "Dominican Republic", "Mexico", "Botswana", "Sri Lanka", "Bhutan", "French Southern Territories", "Antarctica"];
|
|
1738
|
-
return Re = function() {
|
|
1739
|
-
return x;
|
|
1740
|
-
}, Re();
|
|
1736
|
+
})(Me, 392348);
|
|
1737
|
+
function Ht(x, t) {
|
|
1738
|
+
return x = x - 311, Me()[x];
|
|
1741
1739
|
}
|
|
1742
|
-
const _ =
|
|
1740
|
+
const Gt = { AF: "Afghanistan", AX: "Åland Islands", AL: a(328), DZ: "Algeria", AS: "American Samoa", AD: "Andorra", AO: "Angola", AI: a(514), AQ: a(474), AG: a(449), AR: a(392), AM: a(387), AW: a(491), AU: "Australia", AT: a(331), AZ: a(356), BS: "Bahamas", BH: a(333), BD: a(495), BB: a(498), BY: a(496), BE: a(504), BZ: "Belize", BJ: a(485), BM: a(423), BT: a(419), BO: a(334), BQ: a(406), BA: a(511), BW: a(454), BV: a(322), BR: a(397), IO: a(460), BN: a(348), BG: "Bulgaria", BF: a(432), BI: "Burundi", CV: a(487), KH: a(450), CM: a(375), CA: a(455), KY: a(409), CF: a(325), TD: a(316), CL: a(374), CN: a(344), CX: a(359), CC: "Cocos (Keeling) Islands", CO: a(513), KM: a(476), CG: "Congo", CD: a(408), CK: a(433), CR: a(436), CI: "Côte d'Ivoire", HR: a(412), CU: "Cuba", CW: a(488), CY: a(506), CZ: a(516), DK: a(414), DJ: "Djibouti", DM: a(431), DO: a(512), EC: a(451), EG: a(311), SV: "El Salvador", GQ: "Equatorial Guinea", ER: "Eritrea", EE: a(338), ET: a(477), FK: a(493), FO: a(469), FJ: a(312), FI: a(345), FR: a(510), GF: a(324), PF: a(492), TF: a(320), GA: a(386), GM: a(456), GE: a(343), DE: a(336), GH: a(430), GI: a(443), GR: a(376), GL: a(483), GD: "Grenada", GP: a(458), GU: "Guam", GT: a(478), GG: a(342), GN: a(358), GW: a(380), GY: a(394), HT: a(347), HM: a(475), VA: "Holy See", HN: a(351), HK: a(438), HU: a(426), IS: a(440), IN: a(413), ID: a(410), IR: a(490), IQ: a(464), IE: a(357), IM: a(366), IL: a(502), IT: a(418), JM: "Jamaica", JP: "Japan", JE: a(373), JO: a(472), KZ: "Kazakhstan", KE: a(503), KI: a(390), KP: a(466), KR: a(341), KW: "Kuwait", KG: a(370), LA: a(326), LV: a(339), LB: a(313), LS: "Lesotho", LR: a(340), LY: a(403), LI: a(473), LT: a(399), LU: a(371), MO: a(385), MK: a(505), MG: a(405), MW: "Malawi", MY: "Malaysia", MV: a(391), ML: "Mali", MT: a(404), MH: a(363), MQ: "Martinique", MR: a(361), MU: a(417), YT: a(337), MX: "Mexico", FM: a(382), MD: a(349), MC: a(441), MN: a(507), ME: a(435), MS: a(442), MA: a(497), MZ: a(471), MM: a(400), NA: a(389), NR: a(330), NP: "Nepal", NL: a(318), NC: a(459), NZ: a(489), NI: "Nicaragua", NE: a(323), NG: a(481), NU: a(319), NF: a(428), MP: a(321), NO: a(332), OM: "Oman", PK: "Pakistan", PW: a(354), PS: a(415), PA: a(439), PG: a(327), PY: "Paraguay", PE: a(421), PH: "Philippines", PN: a(453), PL: a(446), PT: a(401), PR: a(402), QA: a(467), RE: "Réunion", RO: a(346), RU: a(396), RW: "Rwanda", BL: a(365), SH: a(377), KN: "Saint Kitts and Nevis", LC: "Saint Lucia", MF: a(367), PM: a(424), VC: a(434), WS: a(353), SM: a(515), ST: a(379), SA: "Saudi Arabia", SN: "Senegal", RS: a(494), SC: a(314), SL: a(452), SG: a(445), SX: a(381), SK: a(416), SI: "Slovenia", SB: a(479), SO: a(329), ZA: a(509), GS: a(407), SS: a(364), ES: a(480), LK: a(499), SD: "Sudan", SR: a(462), SJ: a(501), SZ: a(425), SE: a(360), CH: a(463), SY: a(427), TW: a(355), TJ: a(448), TZ: a(484), TH: a(468), TL: a(461), TG: a(482), TK: a(457), TO: a(350), TT: a(315), TN: "Tunisia", TR: a(362), TM: a(388), TC: a(335), TV: a(384), UG: "Uganda", UA: a(444), AE: a(508), GB: a(420), US: a(486), UM: a(395), UY: a(378), UZ: a(500), VU: a(429), VE: a(470), VN: "Viet Nam", VG: "Virgin Islands (British)", VI: "Virgin Islands (U.S.)", WF: a(437), EH: a(372), YE: a(383), ZM: "Zambia", ZW: "Zimbabwe" }, _ = ot;
|
|
1743
1741
|
(function(x, t) {
|
|
1744
|
-
const e =
|
|
1742
|
+
const e = ot, i = x();
|
|
1745
1743
|
for (; ; )
|
|
1746
1744
|
try {
|
|
1747
|
-
if (
|
|
1745
|
+
if (parseInt(e(219)) / 1 * (parseInt(e(238)) / 2) + -parseInt(e(234)) / 3 * (parseInt(e(255)) / 4) + parseInt(e(225)) / 5 + -parseInt(e(214)) / 6 + -parseInt(e(229)) / 7 * (parseInt(e(230)) / 8) + parseInt(e(281)) / 9 + parseInt(e(250)) / 10 * (parseInt(e(266)) / 11) === t) break;
|
|
1748
1746
|
i.push(i.shift());
|
|
1749
1747
|
} catch {
|
|
1750
1748
|
i.push(i.shift());
|
|
1751
1749
|
}
|
|
1752
|
-
})(
|
|
1753
|
-
const
|
|
1754
|
-
let
|
|
1755
|
-
const
|
|
1750
|
+
})(Re, 271727);
|
|
1751
|
+
const Fe = { gov: { prod: { log: "https://papi.vpe.gov-ntruss.com/player/maSync", report: _(261) }, beta: { log: _(198), report: _(254) } }, pub: { prod: { log: _(211), report: _(273) }, beta: { log: _(231), report: _(200) } } };
|
|
1752
|
+
let A = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: _(279), extra: { sessionId: null, playerType: _(248) }, log_type: _(218), privacy: { cookie_enabled: !0 } }, B = { platform: _(260), stage: _(286), sync: !1, syncResult: {} };
|
|
1753
|
+
const m0 = (/* @__PURE__ */ new Date()).getTime(), Vt = (x) => x;
|
|
1756
1754
|
function Se() {
|
|
1757
|
-
return
|
|
1755
|
+
return Ft();
|
|
1758
1756
|
}
|
|
1759
|
-
function
|
|
1760
|
-
return
|
|
1757
|
+
function Tt() {
|
|
1758
|
+
return Ft();
|
|
1761
1759
|
}
|
|
1762
|
-
const
|
|
1763
|
-
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(
|
|
1760
|
+
const zt = () => {
|
|
1761
|
+
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(228)](2, "0"), i = t.getFullYear() + "-" + e(t[x(213)]() + 1) + "-" + e(t[x(284)]()) + " " + e(t[x(271)]()) + ":" + e(t.getMinutes()) + ":" + e(t[x(267)]()), n = Math.floor(t[x(235)]() / 1e3), r = (/* @__PURE__ */ new Date())[x(235)]() - m0;
|
|
1764
1762
|
return { logDate: i, logDateUnix: n, thisSec: r };
|
|
1765
1763
|
};
|
|
1766
|
-
function
|
|
1767
|
-
|
|
1764
|
+
function y0(x) {
|
|
1765
|
+
const t = _;
|
|
1766
|
+
return typeof x === t(203) && x !== null && !Array[t(227)](x);
|
|
1768
1767
|
}
|
|
1769
1768
|
function nt(x, t) {
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
})) : n != null && (x[i] = n);
|
|
1769
|
+
Object.entries(t).forEach(([e, i]) => {
|
|
1770
|
+
const n = ot;
|
|
1771
|
+
y0(i) ? (!x[e] && (x[e] = {}), Object[n(239)](i)[n(263)](([r, o]) => {
|
|
1772
|
+
o != null && (x[e][r] = o);
|
|
1773
|
+
})) : i != null && (x[e] = i);
|
|
1776
1774
|
});
|
|
1777
1775
|
}
|
|
1778
|
-
function
|
|
1776
|
+
function v0(x) {
|
|
1779
1777
|
const t = _;
|
|
1780
|
-
return x[t(
|
|
1778
|
+
return x[t(201)](t(275)) > -1 ? t(265) : x[t(201)](t(285)) > -1 ? t(206) : t(195);
|
|
1781
1779
|
}
|
|
1782
|
-
function
|
|
1783
|
-
const x = ["getTime", "7TYiymZ", "Korea, Republic of", "json", "application/json", "dash", "getFullYear", "floor", "forEach", "vpeKey", "MA init report failed:", "pub", "https://papi.vpe.gov-ntruss.com/player/maSync", "https://log.beta-vpe.gov-ntruss.com/stats", "5933688HymQWP", "MA vpe init", "host", "parse", "219400JNlZJP", "https://log.vpe.naverncp.com/stats", "seekedTime", "created_at", "941380lDzxfN", "mpd", "log", "sessionId", "report", "------------------------------------------------", "stringify", "isp", "actionDuration", "actionType", "error", "country", "log_type", "entries", "nation", "vpe", "70zGoNgo", "26380cvvJGg", "hls", "MA config initialization failed:", "3532440pTPHCQ", "VPE React Native", "padStart", "address", "getDate", "m3u8", "url", "logDateUnix", "extra", "object", "videoFormat", "1964376dVxCkL", "result", "browser", "https://papi.beta-vpe.gov-ntruss.com/player/maSync", "getMonth", "assign", "geoLocation", "video", "syncResult", "POST", "prod", "https://log.vpe.gov-ntruss.com/stats", "59GRlqEn", "stage", "sync", "TID", "indexOf", "join", "sendBeacon", "type", "getHours", "https://papi.beta-vpe.naverncp.com/player/maSync", "1084959AVbhiu", "playerStartTime", "UUID", "logDate", "push", "timeupdate", "totalStartTime"];
|
|
1784
|
-
return Oe = function() {
|
|
1785
|
-
return x;
|
|
1786
|
-
}, Oe();
|
|
1787
|
-
}
|
|
1788
|
-
function v0(x) {
|
|
1780
|
+
function S0(x) {
|
|
1789
1781
|
const t = _, e = [];
|
|
1790
|
-
return x?.r1 && e[t(
|
|
1782
|
+
return x?.r1 && e[t(246)](x.r1), x?.r2 && e[t(246)](x.r2), x?.r3 && e[t(246)](x.r3), e[t(197)](" ");
|
|
1791
1783
|
}
|
|
1792
|
-
function
|
|
1784
|
+
function rt(x) {
|
|
1793
1785
|
const t = _;
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1786
|
+
if (!x || typeof x !== t(203)) return;
|
|
1787
|
+
const e = String(x[t(212)] ?? "");
|
|
1788
|
+
if (!(e === "v2" || /^2(?:\.|$)/[t(280)](e))) return;
|
|
1789
|
+
(!x[t(202)] || typeof x[t(202)] !== t(203)) && (x[t(202)] = {});
|
|
1790
|
+
const n = x[t(208)] && typeof x[t(208)] === t(203) ? x[t(208)] : {}, r = (f) => f == null || f === "" || f === "0p";
|
|
1791
|
+
r(x[t(202)].quality) && (x[t(202)].quality = r(n[t(252)]) ? t(216) : n[t(252)]);
|
|
1792
|
+
const o = r(x[t(202)].type) ? r(n[t(278)]) ? r(n[t(242)]) ? t(276) : n.video_type : n[t(278)] : x[t(202)][t(278)], p = String(o)[t(207)]();
|
|
1793
|
+
x[t(202)][t(278)] = p === t(196) ? t(196) : t(276), r(x[t(202)][t(257)]) && !r(n[t(257)]) && (x[t(202)][t(257)] = n[t(257)]);
|
|
1797
1794
|
}
|
|
1798
1795
|
function Yt(x) {
|
|
1799
1796
|
const t = _;
|
|
1800
|
-
|
|
1797
|
+
x.actionDuration === t(240) && (x[t(249)] = 0), x.actionDuration === void 0 && (x[t(249)] = 0), [t(277), t(215), t(251), "seekedTime"][t(263)]((i) => {
|
|
1798
|
+
x[i] === void 0 && (x[i] = 0);
|
|
1799
|
+
}), x.type === void 0 && A.video?.[t(278)] && (x[t(278)] = A.video.type), x[t(257)] === void 0 && A.video?.[t(257)] && (x[t(257)] = A[t(202)].url, x[t(243)] = v0(x[t(257)]));
|
|
1801
1800
|
}
|
|
1802
|
-
function
|
|
1801
|
+
function qt(x) {
|
|
1802
|
+
const t = _;
|
|
1803
|
+
return !!(x[t(262)] && x[t(223)] && x.host);
|
|
1804
|
+
}
|
|
1805
|
+
function He(x) {
|
|
1803
1806
|
const t = _;
|
|
1804
1807
|
try {
|
|
1805
|
-
const e =
|
|
1806
|
-
e && (x
|
|
1808
|
+
const e = B[t(221)]?.geoLocation;
|
|
1809
|
+
e && (x.address = S0(e), x[t(270)] = e.net || "", x.ip = B[t(221)]?.ip || "", x.nation = e.country || "");
|
|
1807
1810
|
} catch {
|
|
1808
1811
|
}
|
|
1809
1812
|
}
|
|
1810
|
-
const
|
|
1813
|
+
const I0 = async (x) => {
|
|
1811
1814
|
const t = _;
|
|
1812
1815
|
if (!x) return;
|
|
1813
|
-
const { platform: e, stage: i } =
|
|
1816
|
+
const { platform: e, stage: i } = B, n = Fe[e][i].log;
|
|
1814
1817
|
try {
|
|
1815
|
-
const r = await fetch(n, { method: t(
|
|
1816
|
-
|
|
1817
|
-
const { logDate: p, logDateUnix:
|
|
1818
|
-
return
|
|
1818
|
+
const r = await fetch(n, { method: t(217), headers: { "Content-Type": t(222) }, body: JSON[t(232)]({ access_key: x }) }), o = await r.json();
|
|
1819
|
+
B.sync = o[t(220)]?.[t(247)] || !1, B.syncResult = o[t(220)] || {};
|
|
1820
|
+
const { logDate: p, logDateUnix: f } = zt();
|
|
1821
|
+
return A.extra.logDate = p, A.extra[t(209)] = f, B[t(221)]?.[t(204)] && He(A[t(208)]), o;
|
|
1819
1822
|
} catch (r) {
|
|
1820
|
-
return console
|
|
1823
|
+
return console.error("MA config initialization failed:", r), null;
|
|
1821
1824
|
}
|
|
1822
|
-
},
|
|
1823
|
-
const t = _, { platform: e, stage: i } =
|
|
1824
|
-
r[t(
|
|
1825
|
+
}, k0 = async (x) => {
|
|
1826
|
+
const t = _, { platform: e, stage: i } = B, n = Vt(Fe[e][i][t(226)]), r = { ...x };
|
|
1827
|
+
r[t(224)] = t(218), He(r[t(208)]), rt(r);
|
|
1825
1828
|
try {
|
|
1826
|
-
await fetch(n, { method:
|
|
1829
|
+
await fetch(n, { method: t(217), headers: { "Content-Type": "application/json" }, body: JSON[t(232)](r) });
|
|
1827
1830
|
} catch (o) {
|
|
1828
|
-
console
|
|
1831
|
+
console[t(269)]("MA init report failed:", o);
|
|
1829
1832
|
}
|
|
1830
|
-
}
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
+
};
|
|
1834
|
+
function ot(x, t) {
|
|
1835
|
+
return x = x - 195, Re()[x];
|
|
1836
|
+
}
|
|
1837
|
+
function Re() {
|
|
1838
|
+
const x = ["hls", "11sMXeZC", "getSeconds", "browser", "error", "isp", "getHours", "host", "https://log.vpe.naverncp.com/stats", "MA vpe init", "m3u8", "vod", "playerStartTime", "type", "latest", "test", "675783wamEHA", "nation", "timeupdate", "getDate", "mpd", "prod", "mp4", "live", "join", "https://papi.beta-vpe.gov-ntruss.com/player/maSync", "parse", "https://log.beta-vpe.naverncp.com/stats", "indexOf", "video", "object", "geoLocation", "MA report failed:", "dash", "toLowerCase", "extra", "logDateUnix", "Korea, Republic of", "https://papi.vpe.naverncp.com/player/maSync", "player_version", "getMonth", "2764494TZSYbv", "videoStartTime", "unknown", "POST", "vpe", "70853czAefr", "result", "syncResult", "application/json", "TID", "log_type", "2219735dCBgGY", "report", "isArray", "padStart", "38717uZXuoT", "328AJkDMk", "https://papi.beta-vpe.naverncp.com/player/maSync", "stringify", "log", "3UvMisE", "getTime", "logDate", "floor", "12Iehaaz", "entries", "1.0", "sessionId", "video_type", "videoFormat", "created_at", "vpePackageId", "push", "sync", "VPE React Native", "actionDuration", "2461330hXDWnw", "totalStartTime", "quality", "actionType", "https://log.beta-vpe.gov-ntruss.com/stats", "924152BQMyGn", "platform", "url", "country", "MA report actionType ->", "pub", "https://log.vpe.gov-ntruss.com/stats", "UUID", "forEach", "------------------------------------------------"];
|
|
1839
|
+
return Re = function() {
|
|
1840
|
+
return x;
|
|
1841
|
+
}, Re();
|
|
1842
|
+
}
|
|
1843
|
+
const _0 = async (x) => {
|
|
1844
|
+
const t = _, { platform: e, stage: i } = B, n = Vt(Fe[e][i][t(226)]), r = JSON.parse(JSON[t(232)](A));
|
|
1845
|
+
if (nt(r, x), r[t(224)] = "MA", He(r.extra), Yt(r[t(208)]), rt(r), !!qt(r[t(208)]))
|
|
1833
1846
|
try {
|
|
1834
|
-
r[t(
|
|
1847
|
+
r[t(278)] != t(283), await fetch(n, { method: "POST", headers: { "Content-Type": t(222) }, body: JSON[t(232)](r) });
|
|
1835
1848
|
} catch (o) {
|
|
1836
|
-
console[t(
|
|
1849
|
+
console[t(233)](t(205), o);
|
|
1837
1850
|
}
|
|
1838
1851
|
};
|
|
1839
|
-
function
|
|
1840
|
-
return x = x - 261, Oe()[x];
|
|
1841
|
-
}
|
|
1842
|
-
async function _0(x, t, e, i, n) {
|
|
1852
|
+
async function E0(x, t, e, i, n) {
|
|
1843
1853
|
const r = _;
|
|
1844
|
-
|
|
1845
|
-
const { logDate: o, logDateUnix: p } =
|
|
1846
|
-
|
|
1847
|
-
}
|
|
1848
|
-
async function E0(x) {
|
|
1849
|
-
const t = _, e = JSON[t(271)](JSON[t(282)](C));
|
|
1850
|
-
x[t(304)] && Object[t(312)](e.extra, x[t(304)]), e[t(314)] = x[t(314)], await I0(e), console[t(278)](t(269));
|
|
1854
|
+
B[r(256)] = x, B.stage = t, nt(A, e), i && (A[r(208)][r(245)] = i), n && (A[r(208)].vpeKey = n), A[r(208)].nation ? A.browser.country = Gt[A[r(208)][r(282)]] || r(210) : A[r(268)][r(258)] = r(210);
|
|
1855
|
+
const { logDate: o, logDateUnix: p } = zt();
|
|
1856
|
+
A[r(208)][r(236)] = o, A[r(208)][r(209)] = p, A[r(208)][r(244)] = p;
|
|
1851
1857
|
}
|
|
1852
1858
|
function T0(x) {
|
|
1853
|
-
const t = _, { platform: e, stage: i } =
|
|
1859
|
+
const t = _, { platform: e, stage: i } = B, n = Fe[e]?.[i]?.[t(226)];
|
|
1854
1860
|
if (!n) return !1;
|
|
1855
|
-
const r = JSON
|
|
1856
|
-
if (nt(r, x), r[t(
|
|
1861
|
+
const r = JSON[t(199)](JSON[t(232)](A));
|
|
1862
|
+
if (nt(r, x), r[t(224)] = "MA", He(r[t(208)]), Yt(r[t(208)]), rt(r), !qt(r[t(208)])) return !1;
|
|
1857
1863
|
try {
|
|
1858
|
-
const o = new Blob([JSON[t(
|
|
1859
|
-
return navigator
|
|
1864
|
+
const o = new Blob([JSON[t(232)](r)], { type: t(222) });
|
|
1865
|
+
return navigator.sendBeacon(n, o);
|
|
1860
1866
|
} catch {
|
|
1861
1867
|
return !1;
|
|
1862
1868
|
}
|
|
1863
1869
|
}
|
|
1864
|
-
const
|
|
1870
|
+
const Ct = st;
|
|
1865
1871
|
(function(x, t) {
|
|
1866
|
-
const e =
|
|
1872
|
+
const e = st, i = x();
|
|
1867
1873
|
for (; ; )
|
|
1868
1874
|
try {
|
|
1869
|
-
if (-parseInt(e(
|
|
1875
|
+
if (-parseInt(e(178)) / 1 + parseInt(e(173)) / 2 + parseInt(e(159)) / 3 + parseInt(e(163)) / 4 * (-parseInt(e(171)) / 5) + parseInt(e(164)) / 6 + parseInt(e(158)) / 7 * (parseInt(e(177)) / 8) + parseInt(e(162)) / 9 === t) break;
|
|
1870
1876
|
i.push(i.shift());
|
|
1871
1877
|
} catch {
|
|
1872
1878
|
i.push(i.shift());
|
|
1873
1879
|
}
|
|
1874
|
-
})(
|
|
1875
|
-
function
|
|
1876
|
-
|
|
1880
|
+
})(Oe, 521746);
|
|
1881
|
+
function Oe() {
|
|
1882
|
+
const x = ["1555690IbShhL", "all", "1602460DhJzTp", "pay", "controlBtn", "rgba(0, 0, 0, 0.4)", "156392VieQLL", "716227jlsByA", "#ffffff", "35WnYeuV", "1615500lZPmBJ", "#4299f5", "16/9", "961713SOyOpw", "4AZfBRr", "28674sANghc", "dropshadow", "captionStyle", "contain", "watermarkConfig", "#009dff", "progressBar"];
|
|
1883
|
+
return Oe = function() {
|
|
1884
|
+
return x;
|
|
1885
|
+
}, Oe();
|
|
1877
1886
|
}
|
|
1887
|
+
const C0 = (x = {}, t) => {
|
|
1888
|
+
const e = st, i = { autostart: !0, muted: !1, aspectRatio: e(161), objectFit: e(167), controls: !0, keyboardShortcut: !0, startMutedInfoNotVisible: !1, allowsPictureInPicture: !1, staysActiveInBackground: !1, screenRecordingPrevention: !1, modalFullscreen: !1, seekingPreview: !0, lang: "ko", ui: e(172), controlBtn: { play: !0, fullscreen: !0, progressBar: !0, volume: !1, times: !0, pictureInPicture: !0, setting: !0, subtitle: !0 }, progressBarColor: e(160), controlActiveTime: 3e3, playRateSetting: [0.5, 0.75, 1, 1.5, 2], autoPause: !1, repeat: !1, setStartTime: void 0, playIndex: 0, lowLatencyMode: !0, touchGestures: !0, descriptionNotVisible: !1, devTestAppId: void 0, token: "", visibleWatermark: !1, iosFullscreenNativeMode: !0, watermarkText: "NAVER CLOUD PLATFORM", watermarkConfig: { randPosition: !0, randPositionInterVal: 3e3, x: 10, y: 10, opacity: 0.5 }, captionStyle: { fontSize: 12, color: e(179), backgroundColor: e(176), edgeStyle: e(165) }, override: null };
|
|
1889
|
+
if (t !== e(174)) return { ...i, ...A0 };
|
|
1890
|
+
const n = { ...i, ...x };
|
|
1891
|
+
return x[e(175)] && (n[e(175)] = { ...i[e(175)], ...x.controlBtn }), x.watermarkConfig && (n[e(168)] = { ...i[e(168)], ...x[e(168)] }), x[e(166)] && (n[e(166)] = { ...i[e(166)], ...x.captionStyle }), n[e(175)]?.[e(170)] === void 0 && (n.controlBtn[e(170)] = !0), n;
|
|
1892
|
+
};
|
|
1893
|
+
function st(x, t) {
|
|
1894
|
+
return x = x - 158, Oe()[x];
|
|
1895
|
+
}
|
|
1896
|
+
const A0 = { free: !0, startMutedInfoNotVisible: !1, lowLatencyMode: !1, progressBarColor: Ct(169), playRateSetting: [0.5, 0.75, 1, 1.5, 2], descriptionNotVisible: !0, seekingPreview: !1, controlActiveTime: 1500, ui: Ct(172), token: "", setStartTime: null, controlBtn: { play: !0, fullscreen: !0, volume: !0, times: !0, setting: !1, pictureInPicture: !1, progressBar: !0 } };
|
|
1878
1897
|
function Pe() {
|
|
1879
|
-
const x = ["
|
|
1898
|
+
const x = ["prevTrack", "playbackRate", "handleFullscreenChange", "data", "reportData", "boundBeforeUnload", "playing", "nation", "ratechange", "sendSessionBeacon", "RATE_CHANGE", "CANPLAY", "getSeconds", "vpeReportScheduled", "getFullYear", "PLAYER_START", "contentId", "NEXT_TRACK", "VPE", "prevTime", "ERROR", "next", "hidden", "seekedTime", "errorMessage", "introSkip", "isSeeking", "handlePause", "handleSeeking", "WAITING_END", "watch_percent", "report", "catch", "url", "22305fGTqpv", "startup", "logDate", "object", "round", "forEach", "handleSeeked", "extra", "FULLSCREEN_CHANGE", "visibilitychange", "QUALITY_CHANGE", "handleStartup", "handleEnded", "handleTimeUpdateFocus", "getMonth", "percent", "handleWaiting", "UUID", "removeEventListener", "toFixed", "actionType", "Korea, Republic of", "isBuffering", "getHours", "handleCanplay", "isPlaying", "errorCode", "ENDED", "now", "opening_skip", "handlePlayerStart", "handleTimeUpdate", "getMinutes", "stageData", "maInit", "contentDuration", "seekCnt", "ended", "nextTrack", "then", "seeked", "isEnded", "timeupdateFocus", "fullscreenDuration", "scheduleVpeReport", "isCompleted", "VPE_REPORT_DELAY_MS", "vpe", "ENDING_SKIP", "633420QCchQT", "39426PKKfpB", "entries", "firstPlaying", "prevAction", "handleAutoSkip", "TIMEUPDATE", "handleError", "PLAY", "player_start", "bufferingEnd", "beaconSent", "fullscreenEnterTime", "floor", "handleTrackChange", "assign", "WAITING", "PAUSED", "quality", "initializeReportData", "7502sMrFfR", "OPENING_SKIP", "TIMEUPDATE_FOCUS", "getTime", "code", "browser", "handlePlay", "PLAYING", "initTimeupdate", "buildSessionMetrics", "prevQuality", "seekStartTime", "fullscreenYn", "pause", "video", "destroy", "INTRO_SKIP", "PREV_TRACK", "firstError", "sessionId", "132xuezhH", "isBounce", "openingSkip", "REBUFFERING", "message", "suppressNextSeek", "21rFmEgo", "parse", "rebuffering", "speedChangeCnt", "handleVisibilityChange", "isPlainObject", "logDateUnix", "Unknown Error", "state", "E0000", "8230FdLvkG", "country", "110392HveFQV", "maSync", "lastPlaybackSpeed", "playAttempt", "handleQualityChange", "STARTUP", "104624RPCbeL", "watchPercent", "loadingEnd", "playedTime", "addEventListener", "timeupdate", "prevUrl", "pauseCnt", "seeking", "handleBeforeUnload", "SEEKING", "quality_change", "startTime", "resetStateForNewTrack", "intro_skip", "handleRateChange", "isArray", "boundVisibilityChange", "endingSkip", "99dWdXbJ", "currentTime", "beforeunload", "273777gWENpm", "vpeReportTimerId", "firstPlay", "duration", "bufferingStart", "getDate", "TID", "isFullscreen"];
|
|
1880
1899
|
return Pe = function() {
|
|
1881
1900
|
return x;
|
|
1882
1901
|
}, Pe();
|
|
1883
1902
|
}
|
|
1884
|
-
const
|
|
1885
|
-
const e = rt, i = { autostart: !0, muted: !1, aspectRatio: e(305), objectFit: e(298), controls: !0, keyboardShortcut: !0, startMutedInfoNotVisible: !1, allowsPictureInPicture: !1, staysActiveInBackground: !1, screenRecordingPrevention: !1, modalFullscreen: !1, seekingPreview: !0, lang: "ko", ui: e(306), controlBtn: { play: !0, fullscreen: !0, progressBar: !0, volume: !1, times: !0, pictureInPicture: !0, setting: !0, subtitle: !0 }, progressBarColor: e(288), controlActiveTime: 3e3, playRateSetting: [0.5, 0.75, 1, 1.5, 2], autoPause: !1, repeat: !1, setStartTime: void 0, playIndex: 0, lowLatencyMode: !0, touchGestures: !0, descriptionNotVisible: !1, devTestAppId: void 0, token: "", visibleWatermark: !1, iosFullscreenNativeMode: !0, watermarkText: "NAVER CLOUD PLATFORM", watermarkConfig: { randPosition: !0, randPositionInterVal: 3e3, x: 10, y: 10, opacity: 0.5 }, captionStyle: { fontSize: 12, color: e(308), backgroundColor: e(292), edgeStyle: e(302) }, override: null };
|
|
1886
|
-
if (t !== e(285)) return { ...i, ...A0 };
|
|
1887
|
-
const n = { ...i, ...x };
|
|
1888
|
-
return x[e(304)] && (n[e(304)] = { ...i[e(304)], ...x[e(304)] }), x[e(290)] && (n[e(290)] = { ...i[e(290)], ...x[e(290)] }), x[e(309)] && (n.captionStyle = { ...i[e(309)], ...x[e(309)] }), n[e(304)]?.[e(286)] === void 0 && (n.controlBtn[e(286)] = !0), n;
|
|
1889
|
-
}, A0 = { free: !0, startMutedInfoNotVisible: !1, lowLatencyMode: !1, progressBarColor: Et(299), playRateSetting: [0.5, 0.75, 1, 1.5, 2], descriptionNotVisible: !0, seekingPreview: !1, controlActiveTime: 1500, ui: Et(306), token: "", setStartTime: null, controlBtn: { play: !0, fullscreen: !0, volume: !0, times: !0, setting: !1, pictureInPicture: !1, progressBar: !0 } }, f = Wt;
|
|
1903
|
+
const b = Kt;
|
|
1890
1904
|
(function(x, t) {
|
|
1891
|
-
const e =
|
|
1905
|
+
const e = Kt, i = x();
|
|
1892
1906
|
for (; ; )
|
|
1893
1907
|
try {
|
|
1894
|
-
if (-parseInt(e(
|
|
1908
|
+
if (-parseInt(e(351)) / 1 + parseInt(e(329)) / 2 + -parseInt(e(393)) / 3 * (-parseInt(e(305)) / 4) + -parseInt(e(442)) / 5 + -parseInt(e(443)) / 6 * (parseInt(e(311)) / 7) + parseInt(e(323)) / 8 * (-parseInt(e(348)) / 9) + parseInt(e(321)) / 10 * (parseInt(e(462)) / 11) === t) break;
|
|
1895
1909
|
i.push(i.shift());
|
|
1896
1910
|
} catch {
|
|
1897
1911
|
i.push(i.shift());
|
|
1898
1912
|
}
|
|
1899
|
-
})(
|
|
1900
|
-
function
|
|
1901
|
-
|
|
1902
|
-
return Ne = function() {
|
|
1903
|
-
return x;
|
|
1904
|
-
}, Ne();
|
|
1913
|
+
})(Pe, 286990);
|
|
1914
|
+
function Kt(x, t) {
|
|
1915
|
+
return x = x - 300, Pe()[x];
|
|
1905
1916
|
}
|
|
1906
|
-
const
|
|
1917
|
+
const At = "0p", D0 = 6e4, M0 = 1, y = { PLAYER_START: b(451), STARTUP: b(394), PLAY: "play", PAUSE: b(475), PLAYING: b(365), PAUSED: b(475), SEEKING: b(337), SEEKED: b(433), WAITING: "waiting", WAITING_END: "waitingEnd", CANPLAY: "canplay", ENDED: b(430), NEXT_TRACK: "next_track", PREV_TRACK: "prev_track", ERROR: "error", QUALITY_CHANGE: b(340), REBUFFERING: b(313), TIMEUPDATE: b(334), TIMEUPDATE_FOCUS: b(435), RATE_CHANGE: b(367), FULLSCREEN_CHANGE: "fullscreenchange", INTRO_SKIP: b(343), OPENING_SKIP: b(422), ENDING_SKIP: "ending_skip" };
|
|
1907
1918
|
class R0 {
|
|
1908
|
-
[
|
|
1909
|
-
[
|
|
1910
|
-
[
|
|
1911
|
-
|
|
1912
|
-
[
|
|
1913
|
-
|
|
1919
|
+
[b(363)];
|
|
1920
|
+
[b(426)];
|
|
1921
|
+
[b(319)];
|
|
1922
|
+
beaconSent = !1;
|
|
1923
|
+
[b(364)];
|
|
1924
|
+
[b(346)];
|
|
1925
|
+
vpeReportScheduled = !1;
|
|
1926
|
+
[b(352)] = null;
|
|
1927
|
+
[b(439)] = 3e3;
|
|
1914
1928
|
constructor(t, e, i) {
|
|
1915
|
-
const n =
|
|
1916
|
-
this[n(
|
|
1929
|
+
const n = b;
|
|
1930
|
+
this[n(426)] = { platform: t, stage: e, sync: !1, syncResult: {} }, this[n(363)] = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: "latest", extra: { UUID: null, TID: null, sessionId: null, playerType: n(377), playAttempt: !1 }, log_type: "vpe", privacy: { cookie_enabled: !0 } }, this[n(319)] = { prevAction: null, isPlaying: !1, isSeeking: !1, initTimeupdate: !1, isBuffering: !1, firstError: !1, isEnded: !1, firstPlay: !0, firstPlaying: !0, startTime: 0, prevTime: 0, startUpDuration: 0, prevUrl: "", prevQuality: At, pauseCnt: 0, seekCnt: 0, speedChangeCnt: 0, lastPlaybackSpeed: 1, fullscreenYn: !1, fullscreenEnterTime: 0, fullscreenDuration: 0, contentId: null, contentDuration: 0, seekStartTime: 0, suppressNextSeek: !1 }, this[n(461)](i), this[n(426)], this[n(364)] = this[n(338)].bind(this), this[n(346)] = this[n(315)].bind(this), window.addEventListener("beforeunload", this[n(364)]), document[n(333)]("visibilitychange", this[n(346)]);
|
|
1917
1931
|
}
|
|
1918
|
-
|
|
1919
|
-
const e =
|
|
1920
|
-
this[e(
|
|
1932
|
+
initializeReportData(t) {
|
|
1933
|
+
const e = b;
|
|
1934
|
+
this[e(363)] = { ...this.reportData, ...t }, this[e(363)][e(400)][e(366)] ? this[e(363)][e(467)][e(322)] = Gt[this[e(363)][e(400)][e(366)]] || e(414) : this.reportData.browser[e(322)] = "Korea, Republic of";
|
|
1921
1935
|
}
|
|
1922
|
-
|
|
1923
|
-
const t =
|
|
1936
|
+
getTime() {
|
|
1937
|
+
const t = b, e = /* @__PURE__ */ new Date(), i = (o) => String(o).padStart(2, "0"), n = e[t(373)]() + "-" + i(e[t(407)]() + 1) + "-" + i(e[t(356)]()) + " " + i(e[t(416)]()) + ":" + i(e[t(425)]()) + ":" + i(e[t(371)]()), r = Math[t(455)](e[t(465)]() / 1e3);
|
|
1924
1938
|
return { logDate: n, logDateUnix: r };
|
|
1925
1939
|
}
|
|
1926
|
-
[
|
|
1927
|
-
const e =
|
|
1928
|
-
return typeof t === e(
|
|
1940
|
+
[b(316)](t) {
|
|
1941
|
+
const e = b;
|
|
1942
|
+
return typeof t === e(396) && t !== null && !Array[e(345)](t);
|
|
1943
|
+
}
|
|
1944
|
+
async [b(390)](t, e) {
|
|
1945
|
+
const i = b;
|
|
1946
|
+
if (this.state.firstError) return;
|
|
1947
|
+
const { logDate: n, logDateUnix: r } = this.getTime(), o = Date[i(421)](), p = this.state[i(378)] > 0 ? o - this.state[i(378)] : 0, f = p, v = e && typeof e === i(396) && e[i(362)] ? e.data : {}, I = [i(375), i(428), i(408), i(389), i(330), i(438), i(306), i(336), i(429), i(314), i(325), i(474), "fullscreenDuration", "dropOffPosition", i(382), "errorCode", i(383), i(466), i(309)], T = {};
|
|
1948
|
+
for (const ee of I)
|
|
1949
|
+
v[ee] !== void 0 && (T[ee] = v[ee]);
|
|
1950
|
+
const R = this[i(319)][i(428)], X = R > 0 ? Math[i(455)](R / 1e3) : this.reportData[i(400)].duration || 0, G = this.reportData[i(400)][i(349)] || 0, V = X > 0 ? Math[i(397)](G / X * 1e4) / 100 : 0, we = { ...this[i(363)], video: this[i(363)].video, percent: V, extra: { ...this[i(363)].extra, actionType: t, actionDuration: f ? f.toFixed(2) : 0, duration: X, contentDuration: R, percent: V, watch_percent: V, logDate: n, logDateUnix: r, ...T } };
|
|
1951
|
+
this[i(319)].prevTime = o, await _0(we);
|
|
1929
1952
|
}
|
|
1930
|
-
async [
|
|
1931
|
-
const
|
|
1932
|
-
|
|
1933
|
-
const { logDate: n, logDateUnix: r } = this[i(509)](), o = Date.now(), p = this[i(412)][i(428)] > 0 ? o - this.state.prevTime : 0, h = p, y = e && typeof e === i(502) && e[i(473)] ? e[i(473)] : {}, S = [i(535), i(413), i(471), i(519), i(483), i(525), "isBounce", i(410), i(543), i(458), i(456), i(492), i(467), i(461), i(453), "errorCode", i(523), i(454), i(472)], A = {};
|
|
1934
|
-
for (const ee of S)
|
|
1935
|
-
y[ee] !== void 0 && (A[ee] = y[ee]);
|
|
1936
|
-
const R = this[i(412)][i(413)], Z = R > 0 ? Math[i(488)](R / 1e3) : this.reportData[i(532)][i(528)] || 0, G = this.reportData[i(532)][i(451)] || 0, V = Z > 0 ? Math[i(407)](G / Z * 1e4) / 100 : 0, we = { ...this[i(424)], video: this[i(424)][i(460)], percent: V, extra: { ...this[i(424)][i(532)], actionType: t, actionDuration: h ? h[i(549)](2) : 0, duration: Z, contentDuration: R, percent: V, watch_percent: V, logDate: n, logDateUnix: r, ...A } };
|
|
1937
|
-
this[i(412)][i(428)] = o, await k0(we);
|
|
1953
|
+
async [b(427)](t) {
|
|
1954
|
+
const e = b;
|
|
1955
|
+
!this.reportData[e(400)][e(304)] && (this.reportData.extra[e(304)] = Tt(), this[e(363)][e(400)][e(357)] = Se(), this.reportData.extra[e(410)] = Se()), t?.[e(400)] && typeof t[e(400)] === e(396) && (t[e(400)][e(304)] = this.reportData[e(400)].sessionId, Object[e(457)](this[e(363)][e(400)], t[e(400)])), t?.[e(476)] && typeof t.video === e(396) && (this.reportData[e(476)] = { ...this[e(363)].video, ...t.video });
|
|
1938
1956
|
}
|
|
1939
|
-
|
|
1940
|
-
const
|
|
1941
|
-
|
|
1957
|
+
[b(437)]() {
|
|
1958
|
+
const t = b;
|
|
1959
|
+
this.vpeReportScheduled || (this[t(372)] = !0, this[t(352)] = setTimeout(() => {
|
|
1960
|
+
const e = t;
|
|
1961
|
+
this[e(352)] = null;
|
|
1962
|
+
const i = JSON[e(312)](JSON.stringify(this[e(363)]));
|
|
1963
|
+
i.log_type = e(440);
|
|
1964
|
+
const { logDate: n, logDateUnix: r } = this[e(465)]();
|
|
1965
|
+
i[e(400)] = i.extra || {}, i[e(400)][e(395)] = n, i[e(400)][e(317)] = r, i[e(400)][e(413)] = i[e(400)][e(413)] || "vpe_init", k0(i)[e(391)](() => {
|
|
1966
|
+
});
|
|
1967
|
+
}, this[t(439)]));
|
|
1942
1968
|
}
|
|
1943
|
-
async [
|
|
1944
|
-
const e =
|
|
1945
|
-
!t || typeof t
|
|
1969
|
+
async [b(324)](t) {
|
|
1970
|
+
const e = b;
|
|
1971
|
+
!t || typeof t != "object" || Object[e(444)](t)[e(398)](([i, n]) => {
|
|
1946
1972
|
const r = e;
|
|
1947
|
-
this[r(
|
|
1948
|
-
const
|
|
1949
|
-
p != null && (this[
|
|
1950
|
-
}) : n != null && (this
|
|
1973
|
+
this[r(316)](n) ? Object[r(444)](n).forEach(([o, p]) => {
|
|
1974
|
+
const f = r;
|
|
1975
|
+
p != null && (this[f(363)][i][o] = p);
|
|
1976
|
+
}) : n != null && (this[r(363)][i] = n);
|
|
1951
1977
|
});
|
|
1952
1978
|
}
|
|
1953
|
-
|
|
1954
|
-
const e =
|
|
1955
|
-
switch (o && o > 0 && (this
|
|
1956
|
-
case
|
|
1957
|
-
this[e(
|
|
1979
|
+
dispatchEvent(t) {
|
|
1980
|
+
const e = b, { type: i, data: n } = t, r = { url: n?.[e(392)] || this[e(319)][e(335)], type: n?.type, quality: n?.[e(460)] || this[e(319)][e(472)], data: n }, o = n?.extra?.[e(354)];
|
|
1981
|
+
switch (o && o > 0 && (this.state.contentDuration = Math.round(o * 1e3)), i) {
|
|
1982
|
+
case y[e(374)]:
|
|
1983
|
+
this[e(423)](r, n);
|
|
1958
1984
|
break;
|
|
1959
|
-
case
|
|
1960
|
-
this[e(
|
|
1985
|
+
case y[e(328)]:
|
|
1986
|
+
this[e(404)](r, n);
|
|
1961
1987
|
break;
|
|
1962
|
-
case
|
|
1988
|
+
case y[e(450)]:
|
|
1963
1989
|
this.handlePlay(r, n);
|
|
1964
1990
|
break;
|
|
1965
|
-
case
|
|
1966
|
-
this
|
|
1991
|
+
case y.PAUSE:
|
|
1992
|
+
this[e(386)](r, n);
|
|
1967
1993
|
break;
|
|
1968
|
-
case
|
|
1969
|
-
this[e(
|
|
1994
|
+
case y[e(448)]:
|
|
1995
|
+
this[e(424)](r, n);
|
|
1970
1996
|
break;
|
|
1971
|
-
case
|
|
1972
|
-
this
|
|
1997
|
+
case y[e(464)]:
|
|
1998
|
+
this[e(406)](r, n);
|
|
1973
1999
|
break;
|
|
1974
|
-
case
|
|
1975
|
-
this[e(
|
|
2000
|
+
case y[e(339)]:
|
|
2001
|
+
this[e(387)](r, n);
|
|
1976
2002
|
break;
|
|
1977
|
-
case
|
|
1978
|
-
this[e(
|
|
2003
|
+
case y.SEEKED:
|
|
2004
|
+
this[e(399)](r, n);
|
|
1979
2005
|
break;
|
|
1980
|
-
case
|
|
1981
|
-
case e(
|
|
1982
|
-
this[e(
|
|
2006
|
+
case y[e(458)]:
|
|
2007
|
+
case e(355):
|
|
2008
|
+
this[e(409)](r, n);
|
|
1983
2009
|
break;
|
|
1984
|
-
case
|
|
1985
|
-
case
|
|
1986
|
-
case
|
|
1987
|
-
this[e(
|
|
2010
|
+
case y[e(388)]:
|
|
2011
|
+
case e(452):
|
|
2012
|
+
case e(331):
|
|
2013
|
+
this[e(417)](r, n);
|
|
1988
2014
|
break;
|
|
1989
|
-
case
|
|
1990
|
-
this
|
|
2015
|
+
case y[e(370)]:
|
|
2016
|
+
this[e(417)](r, n);
|
|
1991
2017
|
break;
|
|
1992
|
-
case
|
|
2018
|
+
case y.ENDED:
|
|
1993
2019
|
this.handleEnded(r, n);
|
|
1994
2020
|
break;
|
|
1995
|
-
case
|
|
1996
|
-
case e(
|
|
1997
|
-
this[e(
|
|
2021
|
+
case e(431):
|
|
2022
|
+
case e(380):
|
|
2023
|
+
this[e(456)](y[e(376)], r, n);
|
|
1998
2024
|
break;
|
|
1999
|
-
case e(
|
|
2000
|
-
case
|
|
2001
|
-
this[e(
|
|
2025
|
+
case e(359):
|
|
2026
|
+
case "prev":
|
|
2027
|
+
this[e(456)](y[e(302)], r, n);
|
|
2002
2028
|
break;
|
|
2003
|
-
case
|
|
2004
|
-
this[e(
|
|
2029
|
+
case y[e(379)]:
|
|
2030
|
+
this[e(449)](r, n);
|
|
2005
2031
|
break;
|
|
2006
|
-
case
|
|
2007
|
-
this
|
|
2032
|
+
case y[e(403)]:
|
|
2033
|
+
this.handleQualityChange(r, n);
|
|
2008
2034
|
break;
|
|
2009
|
-
case
|
|
2010
|
-
this[e(
|
|
2035
|
+
case y[e(369)]:
|
|
2036
|
+
this[e(344)](r, n);
|
|
2011
2037
|
break;
|
|
2012
|
-
case
|
|
2013
|
-
this[e(
|
|
2038
|
+
case y[e(401)]:
|
|
2039
|
+
this[e(361)](r, n);
|
|
2014
2040
|
break;
|
|
2015
|
-
case e(
|
|
2016
|
-
this[e(447)](
|
|
2041
|
+
case e(384):
|
|
2042
|
+
this[e(447)](y[e(301)], r, n);
|
|
2017
2043
|
break;
|
|
2018
|
-
case e(
|
|
2019
|
-
this.handleAutoSkip(
|
|
2044
|
+
case e(307):
|
|
2045
|
+
this.handleAutoSkip(y[e(463)], r, n);
|
|
2020
2046
|
break;
|
|
2021
|
-
case e(
|
|
2022
|
-
this
|
|
2047
|
+
case e(347):
|
|
2048
|
+
this.handleAutoSkip(y[e(441)], r, n);
|
|
2023
2049
|
break;
|
|
2024
2050
|
}
|
|
2025
2051
|
}
|
|
2026
|
-
[
|
|
2027
|
-
const n =
|
|
2028
|
-
this[n(
|
|
2052
|
+
[b(447)](t, e, i) {
|
|
2053
|
+
const n = b;
|
|
2054
|
+
this[n(319)][n(310)] = !0, this.report(t, { ...e, data: i });
|
|
2029
2055
|
}
|
|
2030
|
-
|
|
2031
|
-
const i =
|
|
2032
|
-
!this
|
|
2056
|
+
handlePlayerStart(t, e) {
|
|
2057
|
+
const i = b;
|
|
2058
|
+
!this[i(363)][i(400)][i(304)] && (this[i(363)].extra.sessionId = Tt(), this[i(363)].extra.TID = Se(), this[i(363)].extra[i(410)] = Se()), this[i(319)][i(341)] = Date.now(), this[i(319)][i(378)] = this[i(319)].startTime, this[i(390)](y[i(374)], { ...t, data: e });
|
|
2033
2059
|
}
|
|
2034
|
-
[
|
|
2035
|
-
const i =
|
|
2036
|
-
if (this[i(
|
|
2037
|
-
const n = e?.
|
|
2038
|
-
n?.[i(
|
|
2060
|
+
[b(404)](t, e) {
|
|
2061
|
+
const i = b;
|
|
2062
|
+
if (this[i(319)].firstPlaying) {
|
|
2063
|
+
const n = e?.extra || e || {};
|
|
2064
|
+
n?.contentId && (this[i(319)][i(375)] = n[i(375)]), this.state.isPlaying = !0, this[i(390)](y[i(328)], { ...t, data: { ...e, contentId: this[i(319)][i(375)], contentDuration: this[i(319)][i(428)] } }), this[i(319)][i(445)] = !1, this.scheduleVpeReport();
|
|
2039
2065
|
}
|
|
2040
2066
|
}
|
|
2041
|
-
[
|
|
2042
|
-
const i =
|
|
2043
|
-
this[i(
|
|
2067
|
+
[b(468)](t, e) {
|
|
2068
|
+
const i = b;
|
|
2069
|
+
this[i(319)][i(418)] || (this.reportData[i(400)][i(332)] = e?.[i(332)], this[i(363)].extra[i(408)] = e?.percent, this[i(319)][i(418)] = !0, this[i(363)][i(400)][i(326)] = !0, this[i(319)].firstPlay && (this[i(319)][i(353)] = !1), this.scheduleVpeReport(), this[i(319)][i(446)] === y.PAUSED && this[i(390)](y[i(469)], { ...t, data: e }), this[i(319)][i(446)] = y.PLAYING);
|
|
2044
2070
|
}
|
|
2045
|
-
[
|
|
2046
|
-
const i =
|
|
2047
|
-
this
|
|
2071
|
+
[b(386)](t, e) {
|
|
2072
|
+
const i = b;
|
|
2073
|
+
this[i(319)][i(385)] || this[i(319)].isBuffering || !this.state[i(418)] || (this[i(319)][i(336)]++, this[i(319)][i(418)] = !1, this.report(y[i(459)], { ...t, data: { ...e, pauseCnt: this[i(319)][i(336)] } }), this.state[i(446)] = y[i(459)]);
|
|
2048
2074
|
}
|
|
2049
|
-
|
|
2050
|
-
const i =
|
|
2051
|
-
this[i(
|
|
2075
|
+
handleTimeUpdate(t, e) {
|
|
2076
|
+
const i = b;
|
|
2077
|
+
this[i(319)][i(418)] = !0, this[i(363)].extra[i(326)] = !0, !(this[i(363)][i(400)].currentTime < M0) && (this[i(319)][i(418)] && Date[i(421)]() - this[i(319)][i(378)] > D0 && this[i(390)](y[i(469)], { ...t, data: e }), this[i(319)].prevUrl = t[i(392)] || "", this[i(319)].prevQuality = t.quality || At);
|
|
2052
2078
|
}
|
|
2053
|
-
[
|
|
2054
|
-
const i =
|
|
2055
|
-
this[i(
|
|
2079
|
+
[b(406)](t, e) {
|
|
2080
|
+
const i = b;
|
|
2081
|
+
this[i(363)][i(400)][i(349)] > 0 && (this.report(y.PLAYING, { ...t, data: e }), this.state[i(470)] = !0);
|
|
2056
2082
|
}
|
|
2057
|
-
[
|
|
2058
|
-
const i =
|
|
2059
|
-
this[i(
|
|
2083
|
+
[b(387)](t, e) {
|
|
2084
|
+
const i = b;
|
|
2085
|
+
this[i(319)][i(310)] || this[i(319)][i(385)] || (this[i(319)][i(429)]++, this.state.isSeeking = !0, this[i(319)][i(473)] = Date.now(), this[i(319)].isPlaying ? this.report(y[i(469)], { ...t, data: e }) : this[i(319)][i(446)] === y[i(459)] && this[i(390)](y[i(459)], { ...t, data: e }), this[i(319)][i(446)] = y[i(339)]);
|
|
2060
2086
|
}
|
|
2061
|
-
[
|
|
2062
|
-
const i =
|
|
2063
|
-
if (this
|
|
2064
|
-
this
|
|
2087
|
+
[b(399)](t, e) {
|
|
2088
|
+
const i = b;
|
|
2089
|
+
if (this.state.suppressNextSeek) {
|
|
2090
|
+
this[i(319)][i(310)] = !1;
|
|
2065
2091
|
return;
|
|
2066
2092
|
}
|
|
2067
|
-
if (!this[i(
|
|
2068
|
-
const n = this[i(
|
|
2069
|
-
this[i(
|
|
2093
|
+
if (!this[i(319)][i(385)]) return;
|
|
2094
|
+
const n = this.state[i(473)] > 0 ? Date[i(421)]() - this[i(319)][i(473)] : 0;
|
|
2095
|
+
this[i(319)][i(473)] = 0, this[i(319)][i(385)] = !1, this[i(390)](y[i(339)], { ...t, data: { ...e || {}, seekedTime: n } }), this[i(319)].prevAction = this[i(319)][i(418)] ? y[i(469)] : y.PAUSED;
|
|
2070
2096
|
}
|
|
2071
|
-
[
|
|
2072
|
-
const i =
|
|
2073
|
-
this[i(
|
|
2097
|
+
[b(409)](t, e) {
|
|
2098
|
+
const i = b;
|
|
2099
|
+
this[i(319)][i(385)] || this.state[i(415)] || (this.state[i(415)] = !0, this[i(319)][i(418)] && this[i(390)](y[i(469)], { ...t, data: e }), this[i(319)][i(446)] = y[i(308)]);
|
|
2074
2100
|
}
|
|
2075
|
-
[
|
|
2076
|
-
const i =
|
|
2077
|
-
this[i(
|
|
2101
|
+
[b(417)](t, e) {
|
|
2102
|
+
const i = b;
|
|
2103
|
+
this.state[i(415)] && (this.state[i(415)] = !1, this.report(y[i(308)], { ...t, data: e }), this.state[i(446)] = this[i(319)][i(418)] ? y[i(469)] : y[i(459)]);
|
|
2078
2104
|
}
|
|
2079
|
-
|
|
2080
|
-
const t =
|
|
2081
|
-
if (this
|
|
2082
|
-
this[t(
|
|
2083
|
-
const { logDate: e, logDateUnix: i } = this
|
|
2084
|
-
T0(
|
|
2105
|
+
sendSessionBeacon() {
|
|
2106
|
+
const t = b;
|
|
2107
|
+
if (this[t(453)] || this[t(319)].isEnded || this[t(319)][t(303)] || !this[t(363)][t(400)].UUID || !this[t(363)][t(400)][t(357)]) return;
|
|
2108
|
+
this[t(453)] = !0;
|
|
2109
|
+
const { logDate: e, logDateUnix: i } = this.getTime(), n = Date[t(421)](), r = this[t(319)].prevTime > 0 ? n - this[t(319)][t(378)] : 0, o = (this[t(363)][t(400)][t(349)] || 0) * 1e3, p = this[t(319)][t(428)], f = p > 0 ? Math[t(397)](o / p * 1e4) / 100 : 0, v = this[t(363)][t(400)].playedTime || 0, I = { ...this.reportData, video: this[t(363)][t(476)], percent: f, extra: { ...this[t(363)].extra, actionType: t(430), actionDuration: r ? r[t(412)](2) : 0, duration: p > 0 ? Math[t(455)](p / 1e3) : this[t(363)][t(400)][t(354)] || 0, logDate: e, logDateUnix: i, contentId: this[t(319)][t(375)], contentDuration: p, percent: f, watch_percent: f, watchPercent: f, isCompleted: f >= 95, isBounce: v < 1e4, pauseCnt: this.state[t(336)], seekCnt: this[t(319)][t(429)], speedChangeCnt: this[t(319)][t(314)], lastPlaybackSpeed: this[t(319)][t(325)], fullscreenYn: this[t(319)].fullscreenYn, fullscreenDuration: this[t(319)][t(436)] + (this[t(319)][t(454)] > 0 ? Date[t(421)]() - this[t(319)][t(454)] : 0), dropOffPosition: Math[t(397)](o) } };
|
|
2110
|
+
T0(I);
|
|
2085
2111
|
}
|
|
2086
|
-
[
|
|
2087
|
-
this
|
|
2112
|
+
[b(338)]() {
|
|
2113
|
+
this.sendSessionBeacon();
|
|
2088
2114
|
}
|
|
2089
|
-
|
|
2090
|
-
const t =
|
|
2091
|
-
document
|
|
2115
|
+
handleVisibilityChange() {
|
|
2116
|
+
const t = b;
|
|
2117
|
+
document.visibilityState === t(381) && this[t(368)]();
|
|
2092
2118
|
}
|
|
2093
|
-
|
|
2094
|
-
const t =
|
|
2095
|
-
window.removeEventListener(t(
|
|
2119
|
+
[b(300)]() {
|
|
2120
|
+
const t = b;
|
|
2121
|
+
window.removeEventListener(t(350), this[t(364)]), document[t(411)](t(402), this[t(346)]), this.vpeReportTimerId !== null && (clearTimeout(this[t(352)]), this[t(352)] = null);
|
|
2096
2122
|
}
|
|
2097
|
-
[
|
|
2098
|
-
const i =
|
|
2099
|
-
let
|
|
2100
|
-
return this
|
|
2123
|
+
[b(471)](t, e) {
|
|
2124
|
+
const i = b, n = e?.[i(400)] || e || {}, r = (n?.[i(349)] || 0) * 1e3, o = this[i(319)].contentDuration, p = o > 0 ? Math[i(397)](r / o * 1e4) / 100 : 0, f = this[i(363)].extra[i(332)] || 0;
|
|
2125
|
+
let v = this[i(319)][i(436)];
|
|
2126
|
+
return this[i(319)][i(454)] > 0 && (v += Date.now() - this.state.fullscreenEnterTime), { ...t, data: { ...e, contentId: this[i(319)][i(375)], duration: o > 0 ? Math.floor(o / 1e3) : n?.[i(354)] || 0, contentDuration: o, percent: p, watch_percent: p, watchPercent: p, isCompleted: p >= 95, isBounce: f < 1e4, pauseCnt: this[i(319)][i(336)], seekCnt: this[i(319)][i(429)], speedChangeCnt: this[i(319)][i(314)], lastPlaybackSpeed: this[i(319)].lastPlaybackSpeed, fullscreenYn: this[i(319)].fullscreenYn, fullscreenDuration: v, dropOffPosition: Math.round(r) } };
|
|
2101
2127
|
}
|
|
2102
|
-
[
|
|
2103
|
-
const i =
|
|
2104
|
-
this[i(
|
|
2128
|
+
[b(405)](t, e) {
|
|
2129
|
+
const i = b;
|
|
2130
|
+
this[i(319)][i(434)] || (this[i(319)][i(434)] = !0, this[i(319)].isPlaying = !1, this[i(453)] = !0, this[i(319)][i(446)] !== y[i(459)] && this[i(390)](this.state[i(446)] || y[i(469)], { ...t, data: e }), this[i(390)](y[i(420)], this[i(471)](t, e)));
|
|
2105
2131
|
}
|
|
2106
|
-
|
|
2107
|
-
const n =
|
|
2108
|
-
this[n(
|
|
2132
|
+
handleTrackChange(t, e, i) {
|
|
2133
|
+
const n = b;
|
|
2134
|
+
this[n(390)](this[n(319)][n(446)] || y[n(469)], this[n(471)](e, i))[n(432)](() => {
|
|
2109
2135
|
const r = n;
|
|
2110
|
-
this[r(
|
|
2111
|
-
this[r(
|
|
2136
|
+
this[r(390)](t, { ...e, data: i }).then(() => {
|
|
2137
|
+
this[r(342)]();
|
|
2112
2138
|
});
|
|
2113
2139
|
});
|
|
2114
2140
|
}
|
|
2115
|
-
|
|
2116
|
-
const i =
|
|
2117
|
-
this[i(
|
|
2118
|
-
const n = { errorCode: e?.[i(
|
|
2119
|
-
this[i(
|
|
2141
|
+
handleError(t, e) {
|
|
2142
|
+
const i = b;
|
|
2143
|
+
this[i(319)][i(446)] && !this[i(319)][i(445)] && this.report(this[i(319)][i(446)], this[i(471)](t, e));
|
|
2144
|
+
const n = { errorCode: e?.[i(419)] || e?.extra?.[i(419)] || e?.[i(466)] || i(320), errorMessage: e?.[i(383)] || e?.[i(400)]?.[i(383)] || e?.[i(309)] || i(318) };
|
|
2145
|
+
this[i(390)](y[i(379)], { ...t, data: { ...e, ...n } }), this[i(319)][i(303)] = !0;
|
|
2120
2146
|
}
|
|
2121
|
-
[
|
|
2122
|
-
const i =
|
|
2123
|
-
this[i(
|
|
2147
|
+
[b(327)](t, e) {
|
|
2148
|
+
const i = b;
|
|
2149
|
+
this[i(319)][i(446)] && !this.state.isSeeking && !this[i(319)].isBuffering && !this.state[i(445)] && (this[i(319)].isSeeking = !0, this[i(390)](this.state[i(446)], { ...t, data: e }), this.state[i(446)] = y[i(339)]);
|
|
2124
2150
|
}
|
|
2125
2151
|
handleRateChange(t, e) {
|
|
2126
|
-
const i =
|
|
2127
|
-
n !== this[i(
|
|
2152
|
+
const i = b, n = e?.[i(360)] || e?.extra?.[i(360)] || 1;
|
|
2153
|
+
n !== this.state[i(325)] && (this[i(319)].speedChangeCnt++, this[i(319)][i(325)] = n, this.report(y[i(369)], { ...t, data: { ...e, speedChangeCnt: this[i(319)][i(314)], lastPlaybackSpeed: n } }));
|
|
2128
2154
|
}
|
|
2129
|
-
[
|
|
2130
|
-
const i =
|
|
2131
|
-
e?.
|
|
2155
|
+
[b(361)](t, e) {
|
|
2156
|
+
const i = b;
|
|
2157
|
+
e?.isFullscreen || e?.[i(400)]?.[i(358)] ? (this[i(319)][i(474)] = !0, this[i(319)][i(454)] = Date.now()) : this[i(319)][i(454)] > 0 && (this[i(319)][i(436)] += Date.now() - this[i(319)][i(454)], this[i(319)][i(454)] = 0), this[i(390)](y[i(401)], { ...t, data: { ...e, fullscreenYn: this[i(319)][i(474)], fullscreenDuration: this[i(319)][i(436)] } });
|
|
2132
2158
|
}
|
|
2133
|
-
[
|
|
2134
|
-
const t =
|
|
2135
|
-
this
|
|
2159
|
+
[b(342)]() {
|
|
2160
|
+
const t = b;
|
|
2161
|
+
this[t(319)][t(446)] = null, this[t(319)].isPlaying = !1, this.state[t(378)] = 0, this[t(319)][t(445)] = !0, this[t(319)][t(470)] = !1, this[t(319)][t(336)] = 0, this[t(319)].seekCnt = 0, this[t(319)][t(314)] = 0, this[t(319)][t(325)] = 1, this[t(319)][t(474)] = !1, this[t(319)][t(454)] = 0, this[t(319)].fullscreenDuration = 0, this[t(319)][t(375)] = null, this[t(319)].contentDuration = 0;
|
|
2136
2162
|
}
|
|
2137
2163
|
}
|
|
2138
|
-
|
|
2139
|
-
return x = x - 406, Ne()[x];
|
|
2140
|
-
}
|
|
2141
|
-
const v = qt;
|
|
2164
|
+
const m = Wt;
|
|
2142
2165
|
(function(x, t) {
|
|
2143
|
-
const e =
|
|
2166
|
+
const e = Wt, i = x();
|
|
2144
2167
|
for (; ; )
|
|
2145
2168
|
try {
|
|
2146
|
-
if (
|
|
2169
|
+
if (parseInt(e(176)) / 1 + parseInt(e(267)) / 2 * (parseInt(e(265)) / 3) + parseInt(e(222)) / 4 + parseInt(e(253)) / 5 + -parseInt(e(195)) / 6 * (parseInt(e(251)) / 7) + -parseInt(e(268)) / 8 * (-parseInt(e(285)) / 9) + -parseInt(e(288)) / 10 === t) break;
|
|
2147
2170
|
i.push(i.shift());
|
|
2148
2171
|
} catch {
|
|
2149
2172
|
i.push(i.shift());
|
|
2150
2173
|
}
|
|
2151
|
-
})(
|
|
2152
|
-
const O0 = { gov: { prod: { config:
|
|
2153
|
-
function
|
|
2154
|
-
const x = ["
|
|
2155
|
-
return
|
|
2174
|
+
})(Ne, 231873);
|
|
2175
|
+
const O0 = { gov: { prod: { config: m(259), report: "aHR0cHM6Ly9sb2cudnBlLmdvdi1udHJ1c3MuY29tL3N0YXRz" }, beta: { config: m(112), report: m(158) } }, pub: { prod: { config: m(256), report: m(243) }, beta: { config: m(203), report: m(215) } } };
|
|
2176
|
+
function Ne() {
|
|
2177
|
+
const x = ["getPlaylist", "errorCode", "Base64 decoding failed:", "E0001", "type", "isInitialized", "round", "516KJzlmn", ".mpd", "startTimeAt", "prev", "serverConfig", "errorMessage", "hasFirstPlayReported", "ratechange", "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLm5hdmVybmNwLmNvbS9wbGF5ZXIvY29uZmln", "VPE", "accessKey", "HLS 파싱 실패:", "test", "maManager", "host", "videoHeight", "platform", "translator", "join", "video", "aHR0cHM6Ly9sb2cuYmV0YS12cGUubmF2ZXJuY3AuY29tL3N0YXRz", ".m3u8", "Auto", "volumechange", "floor", "title", "Unknown", "956036MCJMSz", "watermarkConfig", "connection", "ncplayer : ", "report", "options", "startup", "E0003", "Chrome", "appId", "quality", "Edge", "extra", "duration", "stateChange", "name", "playerName", "Other", "contentId", "sync", "width", "aHR0cHM6Ly9sb2cudnBlLm5hdmVybmNwLmNvbS9zdGF0cw==", "browser", "setErrorRun", "#EXT-X-STREAM-INF", "origin", "kbps", "?preview=true", "performKeyCheck", "13783RMiNZR", "prevTrack", "2126845SLopeX", "player_name", "Edg", "aHR0cHM6Ly9wYXBpLnZwZS5uYXZlcm5jcC5jb20vcGxheWVyL2NvbmZpZw==", "trim", "playerStateReport", "aHR0cHM6Ly9wYXBpLnZwZS5nb3YtbnRydXNzLmNvbS9wbGF5ZXIvY29uZmln", "rtt", "text", "getElapsedMilliseconds", "userAgent", "url", "3WqypdS", "hls", "454456RJceRQ", "2889096agKGXN", "error", "device", "E0002", "player_start", "getVideoProtocol", "navigator", "data", "controlBtn", "updateTranslator", "play", "map", "playlist", "slice", "isDev", "isArray", "stage", "9deEvaG", "toLowerCase", "kakao", "11183260rrPNZL", "lang", "Whale", "version", "playerVersion", "downlink", "match", "errorState", "protocol", "result", "getErrorState", "location", "nextTrack", "application/json", "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLmdvdi1udHJ1c3MuY29tL3BsYXllci9jb25maWc=", "unknown", "indexOf", "domain", "effectiveType", "auto", "vendor", "model", "next", "playerInfo", "length", "pricing", "mpd", "code", "dash", "playerStartTimeMs", " / ", "port", "config", "saveData", "live", "string", "vpe", "getResult", "Error:", "initialize", "deviceMemory", "undefined", "Kakao webview", "naverncp.com/live/video/ls-", "LIVE", "whale", "getValidatedOptions", "getTime", "split", "maUse", "errorInfo", "currentTime", "includes", "hlsPaser", "API", "maInit", "pay", "screen", "meta", "playbackRate", "aHR0cHM6Ly9sb2cuYmV0YS12cGUuZ292LW50cnVzcy5jb20vc3RhdHM=", "Safari", "statusText", "status", "incomingType", "reduce", "webkitConnection", "naver", "createPlayerInfo", "language", "ready", "poster", "filter", "href", "isPaidTier", "UAParser", "some", "Content-Type", "266790FeXIzb", "mozConnection", "Firefox", "push", "warn", "getBrowserInfo", "mobile", "Naver webview", "startsWith", "json", "VPE Player: accessKey 또는 appId가 없어 키 인증을 건너뜁니다.", "fullscreenchange"];
|
|
2178
|
+
return Ne = function() {
|
|
2156
2179
|
return x;
|
|
2157
|
-
},
|
|
2180
|
+
}, Ne();
|
|
2181
|
+
}
|
|
2182
|
+
function Wt(x, t) {
|
|
2183
|
+
return x = x - 106, Ne()[x];
|
|
2158
2184
|
}
|
|
2159
|
-
let
|
|
2185
|
+
let Dt = [];
|
|
2160
2186
|
const P0 = (x) => {
|
|
2161
|
-
const t =
|
|
2187
|
+
const t = m;
|
|
2162
2188
|
try {
|
|
2163
2189
|
return atob(x);
|
|
2164
2190
|
} catch (e) {
|
|
2165
|
-
return console[t(
|
|
2191
|
+
return console[t(269)](t(190), e), "";
|
|
2166
2192
|
}
|
|
2167
2193
|
};
|
|
2168
|
-
function qt(x, t) {
|
|
2169
|
-
return x = x - 273, Ue()[x];
|
|
2170
|
-
}
|
|
2171
2194
|
class U0 {
|
|
2172
|
-
[
|
|
2173
|
-
[
|
|
2174
|
-
|
|
2175
|
-
[
|
|
2176
|
-
|
|
2177
|
-
[
|
|
2178
|
-
[
|
|
2179
|
-
[
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
[
|
|
2183
|
-
[
|
|
2184
|
-
[
|
|
2185
|
-
[
|
|
2195
|
+
[m(199)] = {};
|
|
2196
|
+
[m(121)] = null;
|
|
2197
|
+
[m(205)];
|
|
2198
|
+
[m(231)];
|
|
2199
|
+
platform;
|
|
2200
|
+
[m(284)];
|
|
2201
|
+
[m(282)];
|
|
2202
|
+
[m(212)] = Ze();
|
|
2203
|
+
[m(295)];
|
|
2204
|
+
[m(208)] = null;
|
|
2205
|
+
[m(197)] = null;
|
|
2206
|
+
[m(162)] = null;
|
|
2207
|
+
[m(201)] = !1;
|
|
2208
|
+
[m(127)] = 0;
|
|
2186
2209
|
constructor({ accessKey: t, appId: e, platform: i, stage: n, isDev: r = !1, language: o }) {
|
|
2187
|
-
const p =
|
|
2188
|
-
this[p(
|
|
2210
|
+
const p = m;
|
|
2211
|
+
this[p(205)] = t, this[p(231)] = e || location[p(247)], this.platform = i, this[p(284)] = n, this[p(282)] = r, this[p(277)](o), this[p(295)] = { errorCode: null, errorMessage: null };
|
|
2189
2212
|
}
|
|
2190
|
-
async [
|
|
2191
|
-
const t =
|
|
2192
|
-
if ([this[e[0]], this[e[1]]][t(
|
|
2213
|
+
async [m(137)]() {
|
|
2214
|
+
const t = m, e = [t(205), t(231), t(271), t(191), t(229)], i = t(186);
|
|
2215
|
+
if ([this[e[0]], this[e[1]]][t(174)]((o) => !o)) return console[t(180)](i), { error: this[t(245)](e[2]) };
|
|
2193
2216
|
const r = (o) => {
|
|
2194
2217
|
const p = t;
|
|
2195
|
-
return this
|
|
2218
|
+
return this.serverConfig = o, this[p(121)] = this.createPlayerInfo(o), this[p(121)];
|
|
2196
2219
|
};
|
|
2197
2220
|
try {
|
|
2198
|
-
const o = await this
|
|
2199
|
-
if (o[t(
|
|
2221
|
+
const o = await this.performKeyCheck();
|
|
2222
|
+
if (o[t(125)] !== 200) return { error: this[t(245)](e[3]) };
|
|
2200
2223
|
const p = r(o);
|
|
2201
|
-
if (window
|
|
2202
|
-
await
|
|
2203
|
-
const
|
|
2204
|
-
this[t(
|
|
2224
|
+
if (window[t(134)] && (window[t(134)][t(238)] = p?.[t(254)], window[t(134)][t(292)] = window[t(134)][t(292)] || p?.player_version, window[t(134)][t(254)] = p.player_name + "|" + window[t(134)].playerVersion, window.vpe.state = this[t(284)]), p?.[t(147)] === "Y") {
|
|
2225
|
+
await E0(this[t(211)], this[t(284)], p, this[t(231)], this[t(205)]);
|
|
2226
|
+
const f = await I0(this.accessKey);
|
|
2227
|
+
this[t(208)] = new R0(this[t(211)], this.stage, p), this[t(197)] = Date.now(), f?.[t(107)]?.[t(241)] && await this.maManager[t(153)]({ video: p.video || {}, extra: { ...p[t(234)] } });
|
|
2205
2228
|
}
|
|
2206
|
-
return { options: this[t(
|
|
2229
|
+
return { options: this[t(199)].result?.[t(227)], playerInfo: p };
|
|
2207
2230
|
} catch (o) {
|
|
2208
|
-
return console[t(
|
|
2231
|
+
return console[t(269)]("VPE SDK Initialization failed:", o), { error: this[t(245)](e[4]) };
|
|
2209
2232
|
}
|
|
2210
2233
|
}
|
|
2211
|
-
async [
|
|
2212
|
-
const t =
|
|
2213
|
-
|
|
2214
|
-
|
|
2234
|
+
async [m(250)]() {
|
|
2235
|
+
const t = m, e = [t(249), t(130), t(175), t(111), "access_key", t(115), "POST"], i = this[t(282)] ? e[0] : "", n = P0(O0[this[t(211)]][this[t(284)]][e[1]]) + i, r = this.appId, o = JSON.stringify([e[4], e[5]][t(163)]((f, v, I) => {
|
|
2236
|
+
const T = t;
|
|
2237
|
+
return f[v] = [this[T(205)], r][I], f;
|
|
2238
|
+
}, {})), p = await fetch(n, { method: e[6], headers: { [e[2]]: e[3] }, body: o });
|
|
2239
|
+
if (!p.ok) throw new Error([t(152), t(136), p[t(161)], p[t(160)]][t(213)](" "));
|
|
2240
|
+
return p[t(185)]();
|
|
2215
2241
|
}
|
|
2216
|
-
[
|
|
2217
|
-
const t =
|
|
2218
|
-
return /Edg\/(\d+\.\d+)
|
|
2242
|
+
[m(181)]() {
|
|
2243
|
+
const t = m, e = navigator[t(263)];
|
|
2244
|
+
return /Edg\/(\d+\.\d+)/.test(e) ? { origin: t(233), version: RegExp.$1 } : /Chrome\/(\d+\.\d+)/[t(207)](e) && !e[t(150)](t(255)) ? { origin: t(230), version: RegExp.$1 } : /Firefox\/(\d+\.\d+)/[t(207)](e) ? { origin: t(178), version: RegExp.$1 } : /Version\/(\d+\.\d+)/[t(207)](e) && e[t(150)](t(159)) ? { origin: t(159), version: RegExp.$1 } : { origin: t(221), version: "Unknown" };
|
|
2219
2245
|
}
|
|
2220
|
-
[
|
|
2221
|
-
const e =
|
|
2222
|
-
|
|
2246
|
+
[m(166)](t) {
|
|
2247
|
+
const e = m, [i, n] = t.result[e(237)][e(146)]("|"), r = navigator[e(224)] || navigator[e(177)] || navigator[e(164)], o = this[e(181)](), p = navigator.userAgentData, f = new _t[e(173)](window[e(274)][e(263)]).getResult();
|
|
2248
|
+
window[e(274)].userAgent.toLowerCase()[e(150)](e(143)) ? f[e(244)].name = e(290) : window[e(274)][e(263)][e(286)]()[e(150)]("kakaotalk") ? f[e(244)][e(237)] = e(140) : window.navigator.userAgent[e(286)]().includes(e(165)) ? f.browser[e(237)] = e(183) : window[e(274)].userAgent[e(286)]().includes(e(287)) ? f[e(244)].name = e(140) : window.navigator.userAgent[e(286)]().includes("naver") && (f[e(244)][e(237)] = e(183));
|
|
2249
|
+
const v = typeof window !== e(139) && window[e(134)]?.playerVersion || n;
|
|
2250
|
+
return { cid: t[e(107)].cid, player_name: i, player_version: v, pricing: t.result.pricing, maUse: t[e(107)].options?.[e(147)] === "Y" ? "Y" : "N", browser: { lang: navigator[e(167)], ua: navigator[e(263)] }, screen: { width: window[e(155)][e(242)], height: window[e(155)].height }, connection: { network: r?.[e(116)] ?? e(113), downlink: r?.[e(293)] ?? null, rtt: r?.rtt ?? null, save_data: r?.[e(131)] ?? !1 }, device: { platform: p?.platform ?? "Unknown", mobile: p?.[e(182)] ?? !1, memory: navigator[e(138)] ?? null, processor: navigator.hardwareConcurrency ?? null }, video: { url: "" }, extra: { vpeKey: this[e(205)], playerType: e(204), playerVersion: v, os: (f.os.name || e(221)) + e(128) + (f.os[e(291)] || ""), osOrigin: f.os[e(237)] || e(221), osVersion: f.os[e(291)], vpePackageId: null, actionDuration: this[e(262)](), actionType: e(168), browser: o[e(247)], browserOrigin: o.origin, browserVersion: o[e(291)], quality: e(239), qualityOrigin: e(217), device: f[e(270)][e(118)] + " " + f[e(270)][e(119)], location: window[e(109)][e(171)], host: window[e(109)][e(209)], port: window[e(109)][e(129)], protocol: window.location[e(106)], title: "" } };
|
|
2223
2251
|
}
|
|
2224
|
-
[
|
|
2225
|
-
const e =
|
|
2226
|
-
return this
|
|
2252
|
+
[m(245)](t) {
|
|
2253
|
+
const e = m, i = t[e(281)](-2), n = this.translator[e(269)][i] || this[e(212)][e(269)]["01"], r = { errorCode: t, errorMessage: n };
|
|
2254
|
+
return this.errorState = r, console[e(269)](e(225), r), r;
|
|
2227
2255
|
}
|
|
2228
|
-
[
|
|
2229
|
-
this.translator =
|
|
2256
|
+
[m(277)](t) {
|
|
2257
|
+
this.translator = Ze(t);
|
|
2230
2258
|
}
|
|
2231
|
-
[
|
|
2232
|
-
return this
|
|
2259
|
+
[m(108)]() {
|
|
2260
|
+
return this.errorState;
|
|
2233
2261
|
}
|
|
2234
|
-
|
|
2235
|
-
const t =
|
|
2236
|
-
return this[t(
|
|
2262
|
+
[m(172)]() {
|
|
2263
|
+
const t = m;
|
|
2264
|
+
return this.serverConfig[t(107)]?.pricing === "pay";
|
|
2237
2265
|
}
|
|
2238
|
-
|
|
2239
|
-
const t =
|
|
2240
|
-
return !!this[t(
|
|
2266
|
+
[m(193)]() {
|
|
2267
|
+
const t = m;
|
|
2268
|
+
return !!this[t(199)][t(107)];
|
|
2241
2269
|
}
|
|
2242
|
-
|
|
2243
|
-
const e =
|
|
2244
|
-
this[e(
|
|
2270
|
+
[m(144)](t) {
|
|
2271
|
+
const e = m, i = C0(this[e(199)].result?.[e(227)], this.serverConfig[e(107)]?.[e(123)]);
|
|
2272
|
+
this[e(199)].result?.pricing !== e(154) && (t = { ...t, ...i });
|
|
2245
2273
|
const n = { ...i, ...t ?? {} };
|
|
2246
|
-
return n?.[e(
|
|
2274
|
+
return n?.[e(289)] && (n?.[e(289)] == e(117) || this.updateTranslator(n[e(289)])), t?.[e(276)] && (n[e(276)] = { ...i[e(276)], ...t[e(276)] }), t?.[e(223)] && (n.watermarkConfig = { ...i[e(223)], ...t[e(223)] }), n.playlist && !Array[e(283)](n.playlist) && (n[e(280)] = [{ file: n[e(280)] }]), Dt = n.playlist || [], n;
|
|
2247
2275
|
}
|
|
2248
|
-
[
|
|
2249
|
-
return
|
|
2276
|
+
[m(188)]() {
|
|
2277
|
+
return Dt || [];
|
|
2250
2278
|
}
|
|
2251
2279
|
$t(t) {
|
|
2252
|
-
const e =
|
|
2253
|
-
let n = this
|
|
2280
|
+
const e = m, i = t.split(".");
|
|
2281
|
+
let n = this.translator;
|
|
2254
2282
|
for (const r of i)
|
|
2255
|
-
if (n && typeof n
|
|
2283
|
+
if (n && typeof n == "object" && r in n) n = n[r];
|
|
2256
2284
|
else return t;
|
|
2257
|
-
return typeof n
|
|
2285
|
+
return typeof n === e(133) ? n : t;
|
|
2258
2286
|
}
|
|
2259
|
-
async [
|
|
2260
|
-
const e =
|
|
2261
|
-
if (!t || t[e(
|
|
2262
|
-
const n = (p,
|
|
2263
|
-
const y = e;
|
|
2287
|
+
async [m(151)](t) {
|
|
2288
|
+
const e = m, i = [];
|
|
2289
|
+
if (!t || t[e(114)](".m3u8") === -1) return i;
|
|
2290
|
+
const n = (p, f) => {
|
|
2264
2291
|
try {
|
|
2265
|
-
return new URL(
|
|
2292
|
+
return new URL(f, p).toString();
|
|
2266
2293
|
} catch {
|
|
2267
|
-
return
|
|
2294
|
+
return f;
|
|
2268
2295
|
}
|
|
2269
2296
|
}, r = (p) => {
|
|
2270
|
-
const
|
|
2271
|
-
if (
|
|
2272
|
-
const
|
|
2273
|
-
return
|
|
2297
|
+
const f = e, v = p[f(294)](/RESOLUTION=(\d+)x(\d+)/);
|
|
2298
|
+
if (v) return v[2] + "p";
|
|
2299
|
+
const I = p.match(/BANDWIDTH=(\d+)/);
|
|
2300
|
+
return I ? Math[f(194)](Number(I[1]) / 1e3) + f(248) : f(117);
|
|
2274
2301
|
}, o = (p) => {
|
|
2275
|
-
const
|
|
2276
|
-
for (let
|
|
2277
|
-
const
|
|
2278
|
-
if (
|
|
2279
|
-
const R =
|
|
2280
|
-
R && !R
|
|
2302
|
+
const f = e, v = p[f(146)](/\r?\n/)[f(279)]((I) => I[f(257)]())[f(170)]((I) => I.length > 0);
|
|
2303
|
+
for (let I = 0; I < v[f(122)]; I += 1) {
|
|
2304
|
+
const T = v[I];
|
|
2305
|
+
if (T[f(184)](f(246))) {
|
|
2306
|
+
const R = v[I + 1];
|
|
2307
|
+
R && !R[f(184)]("#") && (i[f(179)]({ quality: r(T), url: n(t, R), levelIndex: i[f(122)] }), I += 1);
|
|
2281
2308
|
}
|
|
2282
2309
|
}
|
|
2283
2310
|
};
|
|
2284
2311
|
try {
|
|
2285
2312
|
const p = await fetch(t);
|
|
2286
2313
|
if (!p.ok) return i;
|
|
2287
|
-
const
|
|
2288
|
-
return
|
|
2314
|
+
const f = await p[e(261)]();
|
|
2315
|
+
return f && o(f), i;
|
|
2289
2316
|
} catch (p) {
|
|
2290
|
-
return console.error(e(
|
|
2317
|
+
return console.error(e(206), p), i;
|
|
2291
2318
|
}
|
|
2292
2319
|
}
|
|
2293
|
-
async [
|
|
2294
|
-
const e =
|
|
2295
|
-
if (!t?.[e(
|
|
2296
|
-
const i = new
|
|
2297
|
-
if (t[e(
|
|
2298
|
-
if (t[e(
|
|
2299
|
-
await this[e(
|
|
2320
|
+
async [m(258)](t) {
|
|
2321
|
+
const e = m;
|
|
2322
|
+
if (!t?.[e(192)] || !this.maManager || this[e(121)]?.[e(147)] !== "Y") return;
|
|
2323
|
+
const i = new _t[e(173)](window[e(274)].userAgent)[e(135)]();
|
|
2324
|
+
if (t[e(192)] == e(218) || t[e(192)] == e(236)) return;
|
|
2325
|
+
if (t[e(192)] == e(202)) {
|
|
2326
|
+
await this[e(226)](e(202), { extra: { playbackRate: t?.data?.playbackRate || t?.[e(214)]?.[e(275)]?.[e(157)] || 1 } }, t[e(192)]);
|
|
2300
2327
|
return;
|
|
2301
2328
|
}
|
|
2302
|
-
if (t
|
|
2303
|
-
await this
|
|
2329
|
+
if (t[e(192)] == e(187)) {
|
|
2330
|
+
await this[e(226)](e(187), { extra: { isFullscreen: t?.data?.isFullscreen || !1 } }, t.type);
|
|
2304
2331
|
return;
|
|
2305
2332
|
}
|
|
2306
|
-
const n = t
|
|
2307
|
-
t[e(
|
|
2308
|
-
const r = t?.
|
|
2309
|
-
this
|
|
2310
|
-
const
|
|
2311
|
-
|
|
2312
|
-
const
|
|
2333
|
+
const n = t.type;
|
|
2334
|
+
t[e(192)] == e(168) && (t[e(192)] = e(272)), (t[e(192)] === e(120) || t.type === e(198) || t.type === e(110) || t[e(192)] === e(252)) && (this[e(201)] = !1);
|
|
2335
|
+
const r = t?.[e(214)]?.url ?? "", o = /\.mp4(?:[?#]|$)/i[e(207)](r) && !r[e(150)](e(216)) && !r[e(150)](e(196)), p = !o && (t?.[e(214)]?.[e(192)] == e(132) || r[e(150)](e(141))), f = navigator.connection || navigator[e(177)] || navigator[e(164)] || null;
|
|
2336
|
+
this[e(162)] = t?.[e(192)] || null;
|
|
2337
|
+
const v = this[e(162)] === e(278) && !this[e(201)], I = v ? "startup" : this[e(162)];
|
|
2338
|
+
v && (this[e(201)] = !0);
|
|
2339
|
+
const T = t?.video?.[e(275)]?.[e(235)] || 0, R = t?.video?.data?.[e(149)] || 0, X = t?.[e(214)]?.videoWidth || 0, G = t?.[e(214)]?.[e(210)] || 0;
|
|
2313
2340
|
let V = 0, we = 0, ee = 0;
|
|
2314
|
-
if (
|
|
2315
|
-
const
|
|
2316
|
-
we =
|
|
2341
|
+
if (I == e(272) && (V = this.getElapsedMilliseconds(), this[e(127)] = V), I == e(228)) {
|
|
2342
|
+
const ct = this[e(262)]();
|
|
2343
|
+
we = ct - this[e(127)], ee = ct;
|
|
2317
2344
|
}
|
|
2318
|
-
const
|
|
2319
|
-
await this.report(
|
|
2345
|
+
const jt = { type: I, video: { type: p ? e(142) : "VOD", quality: t?.[e(214)]?.quality ? t?.video?.quality : "auto", url: t?.[e(214)]?.[e(264)] }, connection: f ? { network: f[e(116)], downlink: f[e(293)], rtt: f[e(260)], save_data: f[e(131)] } : void 0, extra: { actionType: I, url: t?.video?.url, type: p ? e(142) : "VOD", videoFormat: this[e(273)](t?.[e(214)]?.[e(264)]), ...t?.[e(214)]?.[e(169)] ? { poster: t[e(214)][e(169)] } : {}, video_type: p ? e(142) : "VOD", title: t?.meta?.[e(220)], contentId: t?.[e(214)]?.[e(240)] || t?.meta?.[e(240)] || null, metaData: t?.[e(156)], videoWidth: Math[e(194)](X), videoHeight: Math[e(194)](G), video_protocols: this.getVideoProtocol(t?.[e(214)]?.[e(264)]), duration: Math[e(219)](T), currentTime: Math.floor(R), playedTime: this[e(262)](), viewingTime: Math[e(194)](this.getElapsedMilliseconds() / 1e3), playerStartTime: V, videoStartTime: we, totalStartTime: ee, percent: Math.round(R / T * 100), quality: t?.[e(214)]?.quality ? t?.[e(214)]?.[e(232)] : e(117), errorCode: t?.data?.[e(189)] ?? t?.[e(148)]?.[e(189)], errorMessage: t?.[e(275)]?.[e(200)] ?? t?.[e(148)]?.[e(200)], actionDuration: this[e(262)]() / 1e3, device: i[e(270)][e(118)] + " " + i.device.model, location: window[e(109)][e(171)], host: window[e(109)][e(209)], port: window[e(109)][e(129)], protocol: window[e(109)][e(106)] }, browser: { lang: navigator[e(167)], ua: navigator[e(263)] }, screen: { width: window[e(155)][e(242)], height: window[e(155)].height } };
|
|
2346
|
+
await this.report(I, jt, n);
|
|
2320
2347
|
}
|
|
2321
2348
|
async report(t, e, i) {
|
|
2322
|
-
const n =
|
|
2323
|
-
if (!this[n(
|
|
2324
|
-
const r = e && typeof e
|
|
2325
|
-
await this[n(
|
|
2349
|
+
const n = m;
|
|
2350
|
+
if (!this[n(208)]) return;
|
|
2351
|
+
const r = e && typeof e == "object" ? e : { extra: { actionDuration: this[n(262)]() } };
|
|
2352
|
+
await this[n(208)].maSync(r), await this[n(208)].dispatchEvent({ type: t, data: r });
|
|
2326
2353
|
}
|
|
2327
|
-
[
|
|
2328
|
-
const e =
|
|
2329
|
-
return t[e(
|
|
2354
|
+
[m(273)](t) {
|
|
2355
|
+
const e = m;
|
|
2356
|
+
return t[e(114)]("m3u8") > -1 ? e(266) : t[e(114)](e(124)) > -1 ? e(126) : "mp4";
|
|
2330
2357
|
}
|
|
2331
|
-
|
|
2332
|
-
const t =
|
|
2333
|
-
return this[t(
|
|
2358
|
+
[m(262)]() {
|
|
2359
|
+
const t = m;
|
|
2360
|
+
return this[t(197)] ? (/* @__PURE__ */ new Date())[t(145)]() - this.startTimeAt : 0;
|
|
2334
2361
|
}
|
|
2335
2362
|
}
|
|
2336
2363
|
(function(x, t) {
|
|
2337
2364
|
for (var e = N0, i = x(); ; )
|
|
2338
2365
|
try {
|
|
2339
|
-
var n = -parseInt(e(
|
|
2366
|
+
var n = -parseInt(e(247)) / 1 + -parseInt(e(253)) / 2 * (parseInt(e(251)) / 3) + parseInt(e(248)) / 4 * (-parseInt(e(258)) / 5) + -parseInt(e(252)) / 6 * (-parseInt(e(255)) / 7) + -parseInt(e(249)) / 8 * (-parseInt(e(250)) / 9) + -parseInt(e(256)) / 10 + parseInt(e(254)) / 11 * (parseInt(e(257)) / 12);
|
|
2340
2367
|
if (n === t) break;
|
|
2341
2368
|
i.push(i.shift());
|
|
2342
2369
|
} catch {
|
|
2343
2370
|
i.push(i.shift());
|
|
2344
2371
|
}
|
|
2345
|
-
})(
|
|
2372
|
+
})(Ue, 360288);
|
|
2346
2373
|
function N0(x, t) {
|
|
2347
|
-
x = x -
|
|
2348
|
-
var e =
|
|
2374
|
+
x = x - 247;
|
|
2375
|
+
var e = Ue(), i = e[x];
|
|
2349
2376
|
return i;
|
|
2350
2377
|
}
|
|
2351
|
-
function
|
|
2352
|
-
var x = ["
|
|
2353
|
-
return
|
|
2378
|
+
function Ue() {
|
|
2379
|
+
var x = ["62223aUDMfB", "39268gZyoxh", "16VHToId", "1342287gkiLsp", "1018503AlargQ", "123978HsEudH", "4HBXsZR", "3471061OKMwzq", "133mrUuFO", "648070eIiwXe", "36RhEUnB", "240HotBYx"];
|
|
2380
|
+
return Ue = function() {
|
|
2354
2381
|
return x;
|
|
2355
|
-
},
|
|
2382
|
+
}, Ue();
|
|
2356
2383
|
}
|
|
2357
2384
|
export {
|
|
2358
2385
|
U0 as default,
|
|
2359
|
-
|
|
2386
|
+
Ze as getTranslator
|
|
2360
2387
|
};
|