Greasy Fork is available in English.

acwing-helper

AcWing 助手,学算法就上 AcWing!| 题目复制 | 生成题解模板 | 切换页面风格 (AcWing <-> LeetCode) | 复制代码 | 题目直接跳转 | 一键填写样例 | LeetCode 题目一键跳转 AcWing LeetCode 究极班题目资源页面(支持中文版和国际版)| 添加功能开关(是否记住页面风格、题目页面隐藏桌面文件夹)| 生成页面内容导航 TOC | 首页题目搜索和随机一题

// ==UserScript==
// @name         acwing-helper
// @namespace    https://github.com/tonngw
// @version      1.1.10
// @description  AcWing 助手,学算法就上 AcWing!| 题目复制 | 生成题解模板 | 切换页面风格 (AcWing <-> LeetCode) | 复制代码 | 题目直接跳转 | 一键填写样例 | LeetCode 题目一键跳转 AcWing LeetCode 究极班题目资源页面(支持中文版和国际版)| 添加功能开关(是否记住页面风格、题目页面隐藏桌面文件夹)| 生成页面内容导航 TOC | 首页题目搜索和随机一题
// @author       tonngw
// @run-at       document-end
// @match        https://www.acwing.com/problem/content/*/
// @match        https://www.acwing.com/activity/content/*/
// @match        https://www.acwing.com/activity/content/punch_the_clock/*/
// @match        https://www.acwing.com/activity/content/code/content/*/
// @match        https://www.acwing.com/solution/*/
// @match        https://www.acwing.com/blog/*/
// @match		 https://www.acwing.com/community/*/
// @match		 https://www.acwing.com/*
// @match		 https://leetcode.cn/*
// @match		 https://leetcode.com/*
// @exclude		   https://www.acwing.com/problem/content/submission/*/
// @exclude		   https://www.acwing.com/problem/content/discussion/*/
// @exclude		   https://www.acwing.com/problem/content/solution/*/
// @exclude		   https://www.acwing.com/problem/content/video/*/
// @icon         data:image/x-icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb79jDHO9Ykh3vGF+fLpgpIC4X76Ftl7MibRdzI6yXL6SsFuml65afputWUqfq1gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZsNlHmrBZIBuv2PGc75izne8Yc58umDOgLhfzoW2Xs6JtF3OjrJczpKwW86XrlrOm6xZzqCrWMikqVeAqKdWIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXsdoCGHFZ3Jlw2XKasFkzm7AY85zvmLOfr9p0KDNjNq21qTgwtqu5MPZreS90p/grcSD2JqxX9CbrFnOoKtYzqSpV86pp1bKraVVcrCkUwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFnJaR5cx2iqYMVnzmXDZc5rwmbOotab3Nvu1/D7/fv8//////39/P/2+vT69/r0+v7+/f//////+/v4/OHmzu68w4napKlXzqmnVs6tpVTOsqNTrLWhUx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUymooV8lpvlzHaM5gxWfOjdOO2Of15vT+/v7/4fHe8rXaqeKUx37WgrlizoW2Xs6JtF3OkbRh0KrBf9bK1qzk7vHj9P/////r7Nryubd21q2lVM6yo1POtqFSvrqgUigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUMxrHlPLar5XyWnOXMdozrTkt+b9/v3/4fLf8pHPidhzvmLOd7xhzny6YM6AuF/OhbZezom0Xc6OslzOkrBbzpeuWs6brFnOvcWM2vHy5vb8/Pr80Muc4LKjU863oVLOu59Rvr6eUR4AAAAAAAAAAAAAAAAAAAAAAAAAAEzObAhPzWuqU8tqzljJac7D6sfq/f79/7bituRrwmbObsBjznO+Ys53vGHOfLpgzoC4X86Ftl7OibRdzo6yXM6SsFvOl65azpusWc6gq1jOp6tc0N7ev+r+/v7/2dGq5LehUs67n1HOv51QrMKcUAgAAAAAAAAAAAAAAAAAAAAAS85scE7Na85Ty2rOsua65v3+/f+h3KTgZcNlzmrBZM5uwGPOc75izne8Yc58umDOgLhfzoW2Xs6JtF3OjrJczpKwW86XrlrOm6xZzqCrWM6kqVfOqadWztjUruT+/v7/1MeZ4LufUc7AnVDOw5xPcgAAAAAAAAAAAAAAAEfQbB5Kz2zKTs1rzoPalNr9/v3/sOO15GDFZ85lw2XOasFkzm7AY85zvmLOd7xhzny6YM6AuF/OhbZezom0Xc6OslzOkrBbzpeuWs6brFnOoKtYzqSpV86pp1bOraVUzsW6ftjIt3vYu59RzsCdUM7Em0/Kx5pOIAAAAAAAAAAARtBtfkrPbM5Rzm3O5vfq9trz3fJgyWvOZcdr0GfEZ85qwWTObsBjznO+Ys53vGHOfLpgzoC4X86Ftl7OibRdzo6yXM6SsFvOl65azpusWc6gq1jOpKlXzqqoV86wqFrQs6VXzrehUs67n1HOwJ1QzsSbT87Imk6AAAAAAEPSbgxF0W3GSs9szpPhpd7+/v7/e9SI1pTbnNz+/v7/0ezQ7mrBZM5uwGPOc75izne8Yc58umDOgLhfzoW2Xs6JtF3OjrJczpKwW86XrlrOm6xZzqCrWM6kqVfO5OPK7P7+/v/OxJHct6FSzrufUc7AnVDOxJtPzsmZTsjLmE4MQtJtSEXRbc5Kz2zO2PTe8tXy2vBXyWnOXMdoztbw2PD+/v7/k9KP2m7AY85zvmLOd7xhzny6YM6AuF/OhbZezom0Xc6OslzOkrBbzpeuWs6brFnOoKtYzrzAg9j+/v7/6+nV8LKjU863oVLOu59RzsCdUM7Em0/OyZlOzsyYTkpB0m58RdFtzlnTeNL9/v3/muCn4FfJac5cx2jOe8+A1Pv9+/zm9OX0cMBlznO+Ys54vGPOuNmp4srhveifxYDWibRdzo6yXM6SsFvOl65azpusWc6hq1nO7/Di9P39+/y8tXLWsqNTzrehUs67n1HOwJ1QzsSbT87JmU7OzJhNfkHSbqRF0W3OhN+c3P////9q0n3UV8lpzlzHaM5gxWfOvOW95v////+v26ngl8+L2Nvt1vDd7dbwz+TD6ubw3vLo8N/01eLC6r/Rn+CgtWjSm6xZzsnPoOD/////29m36K2lVM6yo1POt6FSzrufUc7AnVDOxJtPzsmZTs7NmE2mQdNuvkXRbc6h5rPi9vz3/FPLas5XyWnOXMdozmDFZ85txm3Q8Pnv+PT69PrP6crs/v7+//X68/ru9en24+7b8uPt2PDt8uX27vPm9ubs2PDL1Kji9/jy+vb27/iurF/QraVUzrKjU863oVLOu59RzsCdUM7Em0/OyZlOzs2XTb5B027KRdFtzq7qvubq+e34U8tqzlfJac5cx2jOYMVnzmXDZc6h2Z7e/////9LqzOzw+O748vjv+Onz5PTl793y4+3Z8N/p0e7V4cDqxtOl4unt2/L/////zc+h4KmnVs6tpVTOsqNTzrehUs67n1HOwJ1QzsSbT87JmU7OzZdNzEHTbspF0W3Oruq+5ur57fhTy2rOV8lpzlzHaM5gxWfOZcNlzmrCZc7d8Nvy/P38/6DQkdrT6Mrs7PTn9uDs1/DL3rfmu9Gd3sLTo+Dl69fw//////X27viytnHUqadWzq2lVM6yo1POt6FSzrufUc7AnVDOxJtPzsmZTs7Nl03MQdNuvEXRbc6h5rPi9vz4/FPLas5XyWnOXMdozmDFZ85lw2XOasFkzonMgdb8/fz83u7Y8Hy6YM6IvGnQstGa3tXkxury9uz49fjw+vL16/j+/v7/0dau5Ofo0/C+vYDYraVUzrKjU863oVLOu59RzsCdUM7Em0/OyZlOzs2XTb5B0m6kRdFtzoTenNz/////atJ91FfJac5cx2jOYMVnzmXDZc5qwWTObsBjzsXkv+j/////qdGX3IC4X86Ftl7OibRdzo6yXM7C1KTi//////j58/r09ez4ycua4M7NnuC9tXTWsqNTzrehUs67n1HOwJ1QzsSbT87JmU7OzZhNpkLSbnxF0W3OWNN40v3+/f+b4KjgV8lpzlzHaM5gxWfOZcNlzmrBZM5uwGPOe8Js0PP58frv9uv4hLpk0IW2Xs6JtF3OkbRg0PD16vb2+PH6orJk0MDHkdzy8+j25uXO7rKqXtCyo1POt6FSzrufUc7AnVDOxJtPzsmZTs7MmE1+QtJuRkXRbc5Kz2zO1/Te8tby2/BXyWnOXMdozmDFZ85lw2XOasFkzm7AY85zvmLOrdeh3v/////B3LHkhbZezom0Xc7G2a3k/////8LPnuCbrFnOoKtYzqerXNDb2rjo7+3e9LaoXdC3oVLOu59RzsCdUM7Em0/OyZlOzsyYTkhD0m0MRdFtxkrPbM6S4KTe/v7+/3vUidZcx2jOYMVnzmXDZc5qwWTObsBjznO+Ys54vGLO4/De8vn79/yTvnDSlbxu0vn79/zp797yl69bzpusWc6gq1jOpKlXzqmnVs7NyJfe5d/E7LehUs67n1HOwJ1QzsSbT87JmU7Gy5hODAAAAABG0G1+Ss9szlHObc7m9+n22/Pe8l3Iac5gxWfOZcNlzmrBZM5uwGPOc75izne8Yc6XyILW/f79/9fmyezW5cfs/f79/6rBf9aXrlrOm6xZzqCrWM6kqVfOqadWzq2lVM7PxpXexbN01rufUc7AnVDOxJtPzsiaToAAAAAAAAAAAEfQbR5Kz2zKTs1rzoLZk9r9/v3/seS25GDFZ85lw2XOasFkzm7AY85zvmLOd7xhzny6YM7O5MLq/v7+//7+/f/V4sLqkrBbzpeuWs6brFnOoKtYzqSpV86pp1bOraVUzsa6f9jKuoHau59RzsCdUM7Em0/Kx5pPHgAAAAAAAAAAAAAAAEvObHBOzWvOU8tqzrHmueb9/v3/ot2l4GXDZc5qwWTObsBjznO+Ys53vGHOfLpgzoq9a9DN4b3oz+C96Je4adKSsFvOl65azpusWc6gq1jOpKlXzqmnVs7Z1bDm/v7+/9THmOC7n1HOwJ1QzsOcT3IAAAAAAAAAAAAAAAAAAAAATM5rCE/Na6pTy2rOWMlpzsHqxur+/v7/t+O35mvCZs5uwGPOc75izne8Yc58umDOgLhfzoW2Xs6JtF3OjrJczpKwW86XrlrOm6xZzqCrWM6nq1zQ397B6v7+/v/Z0arkt6FSzrufUc6/nVCqwpxQCAAAAAAAAAAAAAAAAAAAAAAAAAAAUMxrHFPLarxXyWnOXMdozrPjtuT9/v3/4fLg8pLPithzvmLOd7xhzny6YM6AuF/OhbZezom0Xc6OslzOkrBbzpeuWs6brVnOvsaN3PLy5/b8/Pn80Mqc4LKjU863oVLOu59Rvr6eUR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVMpqJlfJabxcx2jOYMVnzozTjdjm9eX0/v7+/+Lx3/K226vilcd/1oO5Y86Ftl7OibRdzpK1YdCrwoDYy9et5O/y5Pb+/v7/6+vZ8rm3ddatpVTOsqNTzrahUr66oFIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWclpHFzHaKpgxWfOZcNlzmvCZc6g1prc2u7W8Pv9+/z//////f79//f69fr4+vb6/v7+///////6+/j84ebN7rvDiNqkqVfOqadWzq2lVM6yo1OqtaFTHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXsdoCGHFZ3Blw2XKasFkzm7AY85zvmLOfb9o0J7Miti11qLgwdqt5MLYrOK80Z7grMOC2JmwXs6brFnOoKtYzqSpV86pp1bKraVVcLCkVAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbDZR5qwWR+br9jxnO+Ys53vGHOfLpgzoC4X86Ftl7OibRdzo6yXM6SsFvOl65azpusWc6gq1jGpKlXfqinVh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvv2MMc71iRne8YXx8umCkgLhfvoW2XsqJtF3KjrJcvpKwW6SXrlp8m61ZSJ+rWAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gf//+AAf//AAD//AAAP/gAAB/wAAAP4AAAB+AAAAfAAAADwAAAAYAAAAGAAAABgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAABgAAAAcAAAAHAAAAD4AAAB+AAAAfwAAAP+AAAH/wAAD//AAD//8AD///4H/8=
// @require      https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js
// @require      https://unpkg.com/sweetalert/dist/sweetalert.min.js
// @require      https://unpkg.com/turndown/dist/turndown.js
// @require      https://unpkg.com/turndown-plugin-gfm/dist/turndown-plugin-gfm.js
// @require      https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/4.0.0-alpha.1/js/bootstrap-switch.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_openInTab
// @grant        GM_notification
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_setClipboard
// @license 	 MIT
// ==/UserScript==

(function () {
	"use strict";

	let version = "1.1.9";

	$("head").append($(`<link href="https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/4.0.0-alpha.1/css/bootstrap-switch.min.css" rel="stylesheet">`));
	$("head").append($(`<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">`));

	// 使用 turndown-plugin-gfm 修复 <table> 标签解析错误,https://github.com/mixmark-io/turndown-plugin-gfm
	var gfm = turndownPluginGfm.gfm;
	// 初始化 html to markdown 转换工具
	var turndownService = new TurndownService({preformattedCode: 'true'});
	turndownService.use(gfm);

	// 设置菜单并加载
	Script_setting();
    function Script_setting() {
        let menu_ALL = [
            ['switchPageStyle', 'pageStyle function', '是否记住当前页面风格', false, true],
			['switchShowFolder', 'showFolder function', '是否在题目页面隐藏桌面文件夹', false, true],
        ], menu_ID = [], menu_ID_Content = [];
        for (const element of menu_ALL){ // 如果读取到的值为 null 就写入默认值
            if (GM_getValue(element[0]) == null){GM_setValue(element[0], element[3])};
        }
        registerMenuCommand();
 
        // 注册脚本菜单
        function registerMenuCommand() {
            if (menu_ID.length > menu_ALL.length){ // 如果菜单ID数组多于菜单数组,说明不是首次添加菜单,需要卸载所有脚本菜单
                for (const element of menu_ID){
                    GM_unregisterMenuCommand(element);
                }
            }
            for (let i=0;i < menu_ALL.length;i++){ // 循环注册脚本菜单
                menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]);
                let content = `${menu_ALL[i][3]?'✅':'❎'} ${ menu_ALL[i][2]}`
                menu_ID[i] = GM_registerMenuCommand(content, function(){ menu_switch(`${menu_ALL[i][0]}`,`${menu_ALL[i][1]}`,`${menu_ALL[i][2]}`,`${menu_ALL[i][3]}`)});
                menu_ID_Content[i] = content
            }
            menu_ID[menu_ID.length] = GM_registerMenuCommand(`🏁 当前版本 ${version}`, function () {window.open('https://greasyfork.org/zh-CN/scripts/444381-acwing-helper', {active: true,insert: true,setParent: true});});
            menu_ID_Content[menu_ID_Content.length] = `🏁 当前版本 ${version}`
        }
 
        // 切换选项
        function menu_switch(name, ename, cname, value){
            if(value == 'false'){
                GM_setValue(`${name}`, true);
                registerMenuCommand(); // 重新注册脚本菜单
                location.reload(); // 刷新网页
                GM_notification({text: `「${cname}」已开启\n`, timeout: 3000}); // 提示消息
            } else {
                GM_setValue(`${name}`, false);
                registerMenuCommand(); // 重新注册脚本菜单
                location.reload(); // 刷新网页
                GM_notification({text: `「${cname}」已关闭\n`, timeout: 3000}); // 提示消息
            }
            registerMenuCommand(); // 重新注册脚本菜单
        }
    }
	
	let isPageStyle = GM_getValue("switchPageStyle"); // 是否开启切换页面风格
	let isShowFolder = GM_getValue("switchShowFolder"); // 是否开启在题目页面隐藏桌面文件夹
	
	const window = unsafeWindow;
	var content = "";

	// 判断路径中是否包含 code, solution, blog, community,代码复制功能只在指定路径下下生效
	var url = window.location.href;

	if (!url.includes("leetcode")) {
		// 右下角快速打开 AC Terminal,仅在 acwing.com 下生效
		var newDiv = document.createElement('div');
		newDiv.classList.add('fs-gui-taskbar-widgets-apps-item', 'fs-gui-taskbar-widgets-apps-item-123456');
		newDiv.title = 'AC Terminal';
		var newImg = document.createElement('img');
		newImg.src = 'https://cdn.acwing.com/media/article/image/2023/03/27/52520_2c062992cc-terminal.png';
		newImg.alt = 'AC Terminal';
		newDiv.appendChild(newImg);

		var parentDiv = document.querySelector('.fs-gui-taskbar-widgets-apps');
		parentDiv.appendChild(newDiv);
		$(".fs-gui-taskbar-widgets-apps-item-123456").click(function(){
			desktop_state.window.open(2543025);
		});
	}

	// acwing 首页添加题目搜索框和随机一题
	if (url === "https://www.acwing.com/" || url.includes("https://www.acwing.com/about/")) {
		$(".nav.nav-tabs").append('<div class="input-group" style="width: 250px; float: right; text-align: right; margin: auto;"><span class="input-group-btn"><button class="btn btn-link" id="random-btn-id" type="submit" title="随机一题" style="border-radius: 5px;"> &nbsp;&nbsp;<span class="glyphicon glyphicon-random" style="font-size: 17px;"></span></button></span><input type="text" id="search-input-id" name="search_content" class="form-control" placeholder="题号跳转 & 搜索题目" style="border-radius: 5px;"><span class="input-group-btn"> <button class="btn btn-link" id="search-btn-id" type="submit" title="搜索" style="border-radius: 5px;"> &nbsp;&nbsp;<span class="glyphicon glyphicon-search" style="font-size: 17px;"></span></button></span></div>');
		
		// 监听搜索按钮点击事件
		$('#search-btn-id').on('click', function() {
			search();
		});

		// 监听随机一题按钮点击事件
		$('#random-btn-id').on('click', function() {
			random();
		});
		
		// 监听 Enter 键按下事件
		$('#search-input-id').on('keydown', function(event) {
			if (event.keyCode === 13) {
				search();
			}
		});

		function search() {
			const realNoToUrlNo = new Map([["1", 1], ["2", 2], ["3", 3], ["4", 4], ["5", 5], ["6", 6], ["7", 7], ["8", 8], ["9", 9], ["10", 10], ["11", 11], ["12", 12], ["13", 14], ["14", 15], ["15", 16], ["16", 17], ["17", 18], ["18", 23], ["19", 31], ["20", 36], ["21", 19], ["22", 20], ["23", 21], ["24", 22], ["25", 24], ["26", 25], ["27", 26], ["28", 85], ["29", 27], ["30", 28], ["31", 29], ["32", 30], ["33", 32], ["34", 86], ["35", 33], ["36", 34], ["37", 35], ["38", 37], ["39", 38], ["40", 39], ["41", 90], ["42", 40], ["43", 41], ["44", 42], ["45", 43], ["46", 44], ["47", 45], ["48", 89], ["49", 87], ["50", 46], ["51", 47], ["52", 48], ["53", 49], ["54", 88], ["55", 50], ["56", 51], ["57", 52], ["58", 54], ["59", 55], ["60", 56], ["61", 57], ["62", 58], ["63", 59], ["64", 60], ["65", 61], ["66", 62], ["67", 63], ["68", 64], ["69", 65], ["70", 66], ["71", 67], ["72", 68], ["73", 69], ["74", 70], ["75", 71], ["76", 72], ["77", 73], ["78", 74], ["79", 75], ["80", 76], ["81", 77], ["82", 78], ["83", 79], ["84", 80], ["85", 81], ["86", 82], ["87", 83], ["88", 84], ["89", 91], ["90", 92], ["91", 93], ["92", 94], ["93", 95], ["94", 96], ["95", 97], ["96", 98], ["97", 99], ["98", 100], ["99", 101], ["100", 102], ["101", 103], ["102", 104], ["103", 105], ["104", 106], ["105", 107], ["106", 108], ["107", 109], ["108", 110], ["109", 111], ["110", 112], ["111", 113], ["112", 114], ["113", 115], ["114", 116], ["115", 117], ["116", 118], ["117", 119], ["118", 120], ["119", 121], ["120", 122], ["121", 123], ["122", 124], ["123", 125], ["124", 126], ["125", 127], ["126", 128], ["127", 129], ["128", 130], ["129", 131], ["130", 132], ["131", 133], ["132", 134], ["133", 135], ["134", 136], ["135", 137], ["136", 138], ["137", 139], ["138", 140], ["139", 141], ["140", 142], ["141", 143], ["142", 144], ["143", 145], ["144", 146], ["145", 147], ["146", 148], ["147", 149], ["148", 150], ["149", 151], ["150", 152], ["151", 153], ["152", 154], ["153", 155], ["154", 156], ["155", 157], ["156", 158], ["157", 159], ["158", 160], ["159", 161], ["160", 162], ["161", 163], ["162", 164], ["163", 165], ["164", 166], ["165", 167], ["166", 168], ["167", 169], ["168", 170], ["169", 171], ["170", 172], ["171", 173], ["172", 174], ["173", 175], ["174", 176], ["175", 177], ["176", 178], ["177", 179], ["178", 180], ["179", 181], ["180", 182], ["181", 183], ["182", 184], ["183", 185], ["184", 186], ["185", 187], ["186", 188], ["187", 189], ["188", 190], ["189", 191], ["190", 192], ["191", 193], ["192", 194], ["193", 195], ["194", 196], ["195", 197], ["196", 198], ["197", 199], ["198", 200], ["199", 201], ["200", 202], ["201", 203], ["202", 204], ["203", 205], ["204", 206], ["205", 207], ["206", 208], ["207", 209], ["208", 210], ["209", 211], ["210", 212], ["211", 213], ["212", 214], ["213", 215], ["214", 216], ["215", 217], ["216", 218], ["217", 219], ["218", 220], ["219", 221], ["220", 222], ["221", 223], ["222", 224], ["223", 225], ["224", 226], ["225", 227], ["226", 228], ["227", 229], ["228", 230], ["229", 231], ["230", 232], ["231", 233], ["232", 234], ["233", 235], ["234", 236], ["235", 237], ["236", 238], ["237", 239], ["238", 240], ["239", 241], ["240", 242], ["241", 243], ["242", 248], ["243", 244], ["244", 245], ["245", 246], ["246", 247], ["247", 249], ["248", 250], ["249", 251], ["250", 252], ["251", 253], ["252", 254], ["253", 255], ["254", 256], ["255", 257], ["256", 258], ["257", 259], ["258", 260], ["259", 261], ["260", 262], ["261", 263], ["262", 264], ["263", 265], ["264", 266], ["265", 267], ["266", 268], ["267", 269], ["268", 270], ["269", 271], ["270", 272], ["271", 273], ["272", 274], ["273", 275], ["274", 276], ["275", 277], ["276", 278], ["277", 279], ["278", 280], ["279", 281], ["280", 282], ["281", 283], ["282", 284], ["283", 285], ["284", 286], ["285", 287], ["286", 288], ["287", 289], ["288", 290], ["289", 291], ["290", 292], ["291", 293], ["292", 294], ["293", 295], ["294", 296], ["295", 297], ["296", 298], ["297", 299], ["298", 300], ["299", 301], ["300", 302], ["301", 303], ["302", 304], ["303", 305], ["304", 306], ["305", 307], ["306", 308], ["307", 309], ["308", 310], ["309", 311], ["310", 312], ["311", 313], ["312", 314], ["313", 315], ["314", 316], ["315", 317], ["316", 318], ["317", 319], ["318", 320], ["319", 321], ["320", 322], ["321", 323], ["322", 324], ["323", 325], ["324", 326], ["325", 327], ["326", 328], ["327", 329], ["328", 330], ["329", 331], ["330", 332], ["331", 333], ["332", 334], ["333", 335], ["334", 336], ["335", 337], ["336", 338], ["337", 339], ["338", 340], ["339", 341], ["340", 342], ["341", 343], ["342", 344], ["343", 345], ["344", 346], ["345", 347], ["346", 348], ["347", 349], ["348", 350], ["349", 351], ["350", 352], ["351", 353], ["352", 354], ["353", 355], ["354", 356], ["355", 357], ["356", 358], ["357", 359], ["358", 360], ["359", 361], ["360", 362], ["361", 363], ["362", 364], ["363", 365], ["364", 366], ["365", 367], ["366", 368], ["367", 369], ["368", 370], ["369", 371], ["370", 372], ["371", 373], ["372", 374], ["373", 375], ["374", 376], ["375", 377], ["376", 378], ["377", 379], ["378", 380], ["379", 381], ["380", 382], ["381", 383], ["382", 384], ["383", 385], ["384", 386], ["385", 387], ["386", 388], ["387", 389], ["388", 390], ["389", 391], ["390", 392], ["391", 393], ["392", 394], ["393", 395], ["394", 396], ["395", 397], ["396", 398], ["397", 399], ["398", 400], ["399", 401], ["400", 402], ["401", 403], ["402", 404], ["403", 405], ["404", 406], ["405", 407], ["406", 408], ["407", 409], ["408", 410], ["409", 411], ["410", 412], ["411", 413], ["412", 414], ["413", 415], ["414", 416], ["415", 417], ["416", 418], ["417", 419], ["418", 420], ["419", 421], ["420", 422], ["421", 423], ["422", 424], ["423", 425], ["424", 426], ["425", 427], ["426", 428], ["427", 429], ["428", 430], ["429", 431], ["430", 432], ["431", 433], ["432", 434], ["433", 435], ["434", 436], ["435", 437], ["436", 438], ["437", 439], ["438", 440], ["439", 441], ["440", 442], ["441", 443], ["442", 444], ["443", 445], ["444", 446], ["445", 447], ["446", 448], ["447", 449], ["448", 450], ["449", 451], ["450", 452], ["451", 453], ["452", 454], ["453", 455], ["454", 456], ["455", 457], ["456", 458], ["457", 459], ["458", 460], ["459", 461], ["460", 462], ["461", 463], ["462", 464], ["463", 465], ["464", 466], ["465", 467], ["466", 468], ["467", 469], ["468", 470], ["469", 471], ["470", 472], ["471", 473], ["472", 474], ["473", 475], ["474", 476], ["475", 477], ["476", 478], ["477", 479], ["478", 480], ["479", 481], ["480", 482], ["481", 483], ["482", 484], ["483", 485], ["484", 486], ["485", 487], ["486", 488], ["487", 489], ["488", 490], ["489", 491], ["490", 492], ["491", 493], ["492", 494], ["493", 495], ["494", 496], ["495", 497], ["496", 498], ["497", 499], ["498", 500], ["499", 501], ["500", 502], ["501", 503], ["502", 504], ["503", 505], ["504", 506], ["505", 507], ["506", 508], ["507", 509], ["508", 510], ["509", 511], ["510", 512], ["511", 513], ["512", 514], ["513", 515], ["514", 516], ["515", 517], ["516", 518], ["517", 519], ["518", 520], ["519", 521], ["520", 522], ["521", 523], ["522", 524], ["523", 525], ["524", 526], ["525", 527], ["526", 528], ["527", 529], ["528", 530], ["529", 531], ["530", 532], ["531", 533], ["532", 534], ["533", 535], ["534", 536], ["535", 537], ["536", 538], ["537", 539], ["538", 540], ["539", 541], ["540", 542], ["541", 543], ["542", 544], ["543", 545], ["544", 546], ["545", 547], ["546", 548], ["547", 549], ["548", 550], ["549", 551], ["550", 552], ["551", 553], ["552", 554], ["553", 555], ["554", 556], ["555", 557], ["556", 558], ["557", 559], ["558", 560], ["559", 561], ["560", 562], ["561", 563], ["562", 564], ["563", 565], ["564", 566], ["565", 567], ["566", 568], ["567", 569], ["568", 570], ["569", 571], ["570", 572], ["571", 573], ["572", 574], ["573", 575], ["574", 576], ["575", 577], ["576", 578], ["577", 579], ["578", 580], ["579", 581], ["580", 582], ["581", 583], ["582", 584], ["583", 585], ["584", 586], ["585", 587], ["586", 588], ["587", 589], ["588", 590], ["589", 591], ["590", 592], ["591", 593], ["592", 594], ["593", 595], ["594", 596], ["595", 597], ["596", 598], ["597", 599], ["598", 600], ["599", 601], ["600", 602], ["601", 603], ["602", 604], ["603", 605], ["604", 606], ["605", 607], ["606", 608], ["607", 609], ["608", 610], ["609", 611], ["610", 612], ["611", 613], ["612", 614], ["613", 615], ["614", 616], ["615", 617], ["616", 618], ["617", 619], ["618", 620], ["619", 621], ["620", 622], ["621", 623], ["622", 624], ["623", 625], ["624", 626], ["625", 627], ["626", 628], ["627", 629], ["628", 630], ["629", 631], ["630", 632], ["631", 633], ["632", 634], ["633", 635], ["634", 636], ["635", 637], ["636", 638], ["637", 639], ["638", 640], ["639", 641], ["640", 642], ["641", 643], ["642", 644], ["643", 645], ["644", 646], ["645", 647], ["646", 648], ["647", 649], ["648", 650], ["649", 651], ["650", 652], ["651", 653], ["652", 654], ["653", 655], ["654", 656], ["655", 657], ["656", 658], ["657", 659], ["658", 660], ["659", 661], ["660", 662], ["661", 663], ["662", 664], ["663", 665], ["664", 666], ["665", 667], ["666", 668], ["667", 669], ["668", 670], ["669", 671], ["670", 672], ["671", 673], ["672", 674], ["673", 675], ["674", 676], ["675", 677], ["676", 678], ["677", 679], ["678", 680], ["679", 681], ["680", 682], ["681", 683], ["682", 684], ["683", 685], ["684", 686], ["685", 687], ["686", 688], ["687", 689], ["688", 690], ["689", 691], ["690", 692], ["691", 693], ["692", 694], ["693", 695], ["694", 696], ["695", 697], ["696", 698], ["697", 699], ["698", 700], ["699", 701], ["700", 702], ["701", 703], ["702", 704], ["703", 705], ["704", 706], ["705", 707], ["706", 708], ["707", 709], ["708", 710], ["709", 711], ["710", 712], ["711", 713], ["712", 714], ["713", 715], ["714", 716], ["715", 717], ["716", 718], ["717", 719], ["718", 720], ["719", 721], ["720", 722], ["721", 723], ["722", 724], ["723", 725], ["724", 726], ["725", 727], ["726", 728], ["727", 729], ["728", 730], ["729", 731], ["730", 732], ["731", 733], ["732", 734], ["733", 735], ["734", 736], ["735", 737], ["736", 738], ["737", 739], ["738", 740], ["739", 741], ["740", 742], ["741", 743], ["742", 744], ["743", 745], ["744", 746], ["745", 747], ["746", 748], ["747", 749], ["748", 750], ["749", 751], ["750", 752], ["751", 753], ["752", 754], ["753", 755], ["754", 756], ["755", 757], ["756", 758], ["757", 759], ["758", 760], ["759", 761], ["760", 762], ["761", 763], ["762", 764], ["763", 765], ["764", 766], ["765", 767], ["766", 768], ["767", 769], ["768", 770], ["769", 771], ["770", 772], ["771", 773], ["772", 774], ["773", 775], ["774", 776], ["775", 777], ["776", 778], ["777", 779], ["778", 780], ["779", 781], ["780", 782], ["781", 783], ["782", 784], ["783", 785], ["784", 786], ["785", 787], ["786", 788], ["787", 789], ["788", 790], ["789", 791], ["790", 792], ["791", 793], ["792", 794], ["793", 795], ["794", 796], ["795", 797], ["796", 798], ["797", 799], ["798", 800], ["799", 801], ["800", 802], ["801", 803], ["802", 804], ["803", 805], ["804", 806], ["805", 807], ["806", 808], ["807", 809], ["808", 810], ["809", 811], ["810", 812], ["811", 813], ["812", 814], ["813", 815], ["814", 816], ["815", 817], ["816", 818], ["817", 819], ["818", 820], ["819", 821], ["820", 822], ["821", 823], ["822", 824], ["823", 825], ["824", 826], ["825", 827], ["826", 828], ["827", 829], ["828", 830], ["829", 831], ["830", 832], ["831", 833], ["832", 834], ["833", 835], ["834", 836], ["835", 837], ["836", 838], ["837", 839], ["838", 840], ["839", 841], ["840", 842], ["841", 843], ["842", 844], ["843", 845], ["844", 846], ["845", 847], ["846", 848], ["847", 849], ["848", 850], ["849", 851], ["850", 852], ["851", 853], ["852", 854], ["853", 855], ["854", 856], ["855", 857], ["856", 858], ["857", 859], ["858", 860], ["859", 861], ["860", 862], ["861", 863], ["862", 864], ["863", 865], ["864", 866], ["865", 867], ["866", 868], ["867", 869], ["868", 870], ["869", 871], ["870", 872], ["871", 873], ["872", 874], ["873", 875], ["874", 876], ["875", 877], ["876", 878], ["877", 879], ["878", 880], ["879", 881], ["880", 882], ["881", 883], ["882", 884], ["883", 885], ["884", 886], ["885", 887], ["886", 888], ["887", 889], ["888", 890], ["889", 891], ["890", 892], ["891", 893], ["892", 894], ["893", 895], ["894", 896], ["895", 897], ["896", 898], ["897", 899], ["898", 900], ["899", 901], ["900", 902], ["901", 903], ["902", 904], ["903", 905], ["904", 906], ["905", 907], ["906", 908], ["907", 909], ["908", 910], ["909", 911], ["910", 912], ["911", 913], ["912", 914], ["913", 915], ["914", 916], ["915", 917], ["916", 918], ["917", 919], ["918", 920], ["919", 921], ["920", 922], ["921", 923], ["922", 924], ["923", 925], ["924", 926], ["925", 927], ["926", 928], ["928", 930], ["929", 931], ["931", 933], ["932", 934], ["933", 935], ["934", 936], ["935", 937], ["936", 938], ["937", 939], ["938", 940], ["939", 941], ["940", 942], ["941", 943], ["942", 944], ["943", 945], ["944", 946], ["945", 947], ["946", 948], ["947", 949], ["948", 950], ["949", 951], ["950", 952], ["951", 953], ["952", 954], ["953", 955], ["954", 956], ["955", 957], ["956", 958], ["957", 959], ["958", 960], ["959", 961], ["960", 962], ["961", 963], ["962", 964], ["963", 965], ["964", 966], ["965", 967], ["967", 969], ["968", 970], ["969", 971], ["970", 972], ["971", 973], ["972", 974], ["973", 975], ["974", 976], ["975", 977], ["976", 978], ["977", 979], ["978", 980], ["979", 981], ["980", 982], ["981", 983], ["982", 984], ["983", 985], ["984", 986], ["985", 987], ["986", 988], ["987", 989], ["988", 990], ["989", 991], ["990", 992], ["991", 993], ["992", 994], ["993", 995], ["994", 996], ["995", 997], ["996", 998], ["997", 999], ["998", 1000], ["999", 1001], ["1000", 1002], ["1001", 1003], ["1002", 1004], ["1003", 1005], ["1004", 1006], ["1005", 1007], ["1006", 1008], ["1007", 1009], ["1008", 1010], ["1009", 1011], ["1010", 1012], ["1011", 1013], ["1012", 1014], ["1013", 1015], ["1014", 1016], ["1015", 1017], ["1016", 1018], ["1017", 1019], ["1018", 1020], ["1019", 1021], ["1020", 1022], ["1021", 1023], ["1022", 1024], ["1023", 1025], ["1024", 1026], ["1025", 1027], ["1026", 1028], ["1027", 1029], ["1028", 1030], ["1029", 1031], ["1031", 1033], ["1032", 1034], ["1033", 1035], ["1034", 1036], ["1035", 1037], ["1036", 1038], ["1037", 1039], ["1038", 1040], ["1039", 1041], ["1041", 1043], ["1042", 1044], ["1043", 1045], ["1044", 1046], ["1045", 1047], ["1046", 1048], ["1047", 1049], ["1048", 1050], ["1049", 1051], ["1050", 1052], ["1051", 1053], ["1052", 1054], ["1053", 1055], ["1054", 1056], ["1055", 1057], ["1056", 1058], ["1057", 1059], ["1058", 1060], ["1059", 1061], ["1060", 1062], ["1061", 1063], ["1062", 1064], ["1063", 1065], ["1064", 1066], ["1065", 1067], ["1066", 1068], ["1067", 1069], ["1068", 1070], ["1069", 1071], ["1070", 1072], ["1071", 1073], ["1072", 1074], ["1073", 1075], ["1074", 1076], ["1075", 1077], ["1076", 1078], ["1077", 1079], ["1078", 1080], ["1079", 1081], ["1080", 1082], ["1081", 1083], ["1082", 1084], ["1083", 1085], ["1084", 1086], ["1085", 1087], ["1086", 1088], ["1087", 1089], ["1088", 1090], ["1089", 1091], ["1090", 1092], ["1091", 1093], ["1092", 1094], ["1093", 1095], ["1094", 1096], ["1095", 1097], ["1096", 1098], ["1097", 1099], ["1098", 1100], ["1099", 1101], ["1100", 1102], ["1101", 1103], ["1102", 1104], ["1103", 1105], ["1104", 1106], ["1105", 1107], ["1106", 1108], ["1107", 1109], ["1108", 1110], ["1109", 1111], ["1110", 1112], ["1111", 1113], ["1112", 1114], ["1113", 1115], ["1114", 1116], ["1115", 1117], ["1116", 1118], ["1117", 1119], ["1118", 1120], ["1119", 1121], ["1120", 1122], ["1121", 1123], ["1122", 1124], ["1123", 1125], ["1124", 1126], ["1125", 1127], ["1126", 1128], ["1127", 1129], ["1128", 1130], ["1129", 1131], ["1130", 1132], ["1131", 1133], ["1132", 1134], ["1133", 1135], ["1134", 1136], ["1135", 1137], ["1136", 1138], ["1137", 1139], ["1138", 1140], ["1139", 1141], ["1140", 1142], ["1141", 1143], ["1142", 1144], ["1143", 1145], ["1144", 1146], ["1145", 1147], ["1146", 1148], ["1147", 1149], ["1148", 1150], ["1149", 1151], ["1150", 1152], ["1151", 1153], ["1152", 1154], ["1153", 1155], ["1154", 1156], ["1155", 1157], ["1156", 1158], ["1157", 1159], ["1158", 1160], ["1159", 1161], ["1160", 1162], ["1161", 1163], ["1162", 1164], ["1163", 1165], ["1164", 1166], ["1165", 1167], ["1166", 1168], ["1167", 1169], ["1168", 1170], ["1169", 1171], ["1170", 1172], ["1171", 1173], ["1172", 1174], ["1173", 1175], ["1174", 1176], ["1175", 1177], ["1176", 1178], ["1177", 1179], ["1178", 1180], ["1179", 1181], ["1180", 1182], ["1181", 1183], ["1182", 1184], ["1183", 1185], ["1184", 1186], ["1185", 1187], ["1186", 1188], ["1187", 1189], ["1188", 1190], ["1189", 1191], ["1190", 1192], ["1191", 1193], ["1192", 1194], ["1194", 1196], ["1204", 1206], ["1205", 1207], ["1206", 1208], ["1207", 1209], ["1208", 1210], ["1209", 1211], ["1210", 1212], ["1211", 1213], ["1212", 1214], ["1213", 1215], ["1214", 1216], ["1215", 1217], ["1216", 1218], ["1217", 1219], ["1218", 1220], ["1219", 1221], ["1220", 1222], ["1221", 1223], ["1222", 1224], ["1223", 1225], ["1224", 1226], ["1225", 1227], ["1226", 1228], ["1227", 1229], ["1228", 1230], ["1229", 1231], ["1230", 1232], ["1231", 1233], ["1232", 1234], ["1233", 1235], ["1234", 1236], ["1235", 1237], ["1236", 1238], ["1237", 1239], ["1238", 1240], ["1239", 1241], ["1240", 1242], ["1241", 1243], ["1242", 1244], ["1243", 1245], ["1244", 1246], ["1245", 1247], ["1246", 1248], ["1247", 1249], ["1248", 1250], ["1249", 1251], ["1250", 1252], ["1251", 1253], ["1252", 1254], ["1253", 1255], ["1254", 1256], ["1255", 1257], ["1256", 1258], ["1257", 1259], ["1258", 1260], ["1259", 1261], ["1260", 1262], ["1261", 1263], ["1262", 1264], ["1263", 1265], ["1264", 1266], ["1265", 1267], ["1266", 1268], ["1267", 1269], ["1268", 1270], ["1269", 1271], ["1270", 1272], ["1271", 1273], ["1272", 1274], ["1273", 1275], ["1274", 1276], ["1275", 1277], ["1276", 1278], ["1277", 1279], ["1278", 1280], ["1279", 1281], ["1280", 1282], ["1281", 1283], ["1282", 1284], ["1283", 1285], ["1284", 1286], ["1285", 1287], ["1286", 1288], ["1287", 1289], ["1288", 1290], ["1289", 1291], ["1290", 1292], ["1291", 1293], ["1292", 1294], ["1293", 1295], ["1294", 1296], ["1295", 1297], ["1296", 1298], ["1297", 1299], ["1298", 1300], ["1299", 1301], ["1300", 1302], ["1301", 1303], ["1302", 1304], ["1303", 1305], ["1304", 1306], ["1305", 1307], ["1306", 1308], ["1307", 1309], ["1308", 1310], ["1309", 1311], ["1310", 1312], ["1311", 1313], ["1312", 1314], ["1313", 1315], ["1314", 1316], ["1315", 1317], ["1316", 1318], ["1317", 1319], ["1318", 1320], ["1319", 1321], ["1320", 1322], ["1321", 1323], ["1322", 1324], ["1323", 1325], ["1324", 1326], ["1325", 1327], ["1326", 1328], ["1327", 1329], ["1328", 1330], ["1329", 1331], ["1330", 1332], ["1331", 1333], ["1332", 1334], ["1333", 1335], ["1334", 1336], ["1335", 1337], ["1336", 1338], ["1337", 1339], ["1338", 1340], ["1339", 1341], ["1340", 1342], ["1341", 1343], ["1342", 1344], ["1343", 1345], ["1344", 1346], ["1345", 1347], ["1346", 1348], ["1347", 1349], ["1348", 1350], ["1349", 1351], ["1350", 1352], ["1351", 1353], ["1352", 1354], ["1353", 1355], ["1354", 1356], ["1355", 1357], ["1356", 1358], ["1357", 1359], ["1358", 1360], ["1359", 1361], ["1360", 1362], ["1361", 1363], ["1362", 1364], ["1363", 1365], ["1364", 1366], ["1365", 1367], ["1366", 1368], ["1367", 1369], ["1368", 1370], ["1369", 1371], ["1370", 1372], ["1371", 1373], ["1372", 1374], ["1373", 1375], ["1374", 1376], ["1375", 1377], ["1376", 1378], ["1377", 1379], ["1378", 1380], ["1379", 1381], ["1380", 1382], ["1381", 1383], ["1382", 1384], ["1383", 1385], ["1384", 1386], ["1385", 1387], ["1386", 1388], ["1387", 1389], ["1388", 1390], ["1389", 1391], ["1390", 1392], ["1391", 1393], ["1392", 1394], ["1393", 1395], ["1394", 1396], ["1395", 1397], ["1396", 1398], ["1397", 1399], ["1398", 1400], ["1399", 1401], ["1400", 1402], ["1401", 1403], ["1402", 1404], ["1403", 1405], ["1404", 1406], ["1405", 1407], ["1406", 1408], ["1407", 1409], ["1408", 1410], ["1409", 1411], ["1410", 1412], ["1411", 1413], ["1412", 1414], ["1413", 1415], ["1414", 1416], ["1415", 1417], ["1416", 1418], ["1417", 1419], ["1418", 1420], ["1419", 1421], ["1420", 1422], ["1421", 1423], ["1422", 1424], ["1423", 1425], ["1424", 1426], ["1425", 1427], ["1426", 1428], ["1427", 1429], ["1428", 1430], ["1429", 1431], ["1430", 1432], ["1431", 1433], ["1432", 1434], ["1433", 1435], ["1434", 1436], ["1435", 1437], ["1436", 1438], ["1437", 1439], ["1438", 1440], ["1439", 1441], ["1440", 1442], ["1441", 1443], ["1442", 1444], ["1443", 1445], ["1444", 1446], ["1445", 1447], ["1446", 1448], ["1447", 1449], ["1448", 1450], ["1449", 1451], ["1450", 1452], ["1451", 1453], ["1452", 1454], ["1453", 1455], ["1454", 1456], ["1455", 1457], ["1456", 1458], ["1457", 1459], ["1458", 1460], ["1459", 1461], ["1460", 1462], ["1461", 1463], ["1462", 1464], ["1463", 1465], ["1464", 1466], ["1465", 1467], ["1466", 1468], ["1467", 1469], ["1468", 1470], ["1469", 1471], ["1470", 1472], ["1471", 1473], ["1472", 1474], ["1473", 1475], ["1474", 1476], ["1475", 1477], ["1476", 1478], ["1477", 1479], ["1478", 1480], ["1479", 1481], ["1480", 1482], ["1481", 1483], ["1482", 1484], ["1483", 1485], ["1484", 1486], ["1485", 1487], ["1486", 1488], ["1487", 1489], ["1488", 1490], ["1489", 1491], ["1490", 1492], ["1491", 1493], ["1492", 1494], ["1493", 1495], ["1494", 1496], ["1495", 1497], ["1496", 1498], ["1497", 1499], ["1498", 1500], ["1499", 1501], ["1500", 1502], ["1501", 1503], ["1502", 1504], ["1503", 1505], ["1504", 1506], ["1505", 1507], ["1506", 1508], ["1507", 1509], ["1508", 1510], ["1509", 1511], ["1510", 1512], ["1511", 1513], ["1512", 1514], ["1513", 1515], ["1514", 1516], ["1515", 1517], ["1516", 1518], ["1517", 1519], ["1518", 1520], ["1519", 1521], ["1520", 1522], ["1521", 1523], ["1522", 1524], ["1523", 1525], ["1524", 1526], ["1525", 1527], ["1526", 1528], ["1527", 1529], ["1528", 1530], ["1529", 1531], ["1530", 1532], ["1531", 1533], ["1532", 1534], ["1533", 1535], ["1534", 1536], ["1535", 1537], ["1536", 1538], ["1537", 1539], ["1538", 1540], ["1539", 1541], ["1540", 1542], ["1541", 1543], ["1542", 1544], ["1543", 1545], ["1544", 1546], ["1545", 1547], ["1546", 1548], ["1547", 1549], ["1548", 1550], ["1549", 1551], ["1550", 1552], ["1551", 1553], ["1552", 1554], ["1553", 1555], ["1554", 1556], ["1555", 1557], ["1556", 1558], ["1557", 1559], ["1558", 1560], ["1559", 1561], ["1560", 1562], ["1561", 1563], ["1562", 1564], ["1563", 1565], ["1564", 1566], ["1565", 1567], ["1566", 1568], ["1567", 1569], ["1568", 1570], ["1569", 1571], ["1570", 1572], ["1571", 1573], ["1572", 1574], ["1573", 1575], ["1574", 1576], ["1575", 1577], ["1576", 1578], ["1577", 1579], ["1578", 1580], ["1579", 1581], ["1580", 1582], ["1581", 1583], ["1582", 1584], ["1583", 1585], ["1584", 1586], ["1585", 1587], ["1586", 1588], ["1587", 1589], ["1588", 1590], ["1589", 1591], ["1590", 1592], ["1591", 1593], ["1592", 1594], ["1593", 1595], ["1594", 1596], ["1595", 1597], ["1596", 1598], ["1597", 1599], ["1598", 1600], ["1599", 1601], ["1600", 1602], ["1601", 1603], ["1602", 1604], ["1603", 1605], ["1604", 1606], ["1605", 1607], ["1606", 1608], ["1607", 1609], ["1608", 1610], ["1609", 1611], ["1610", 1612], ["1611", 1613], ["1612", 1614], ["1613", 1615], ["1614", 1616], ["1615", 1617], ["1616", 1618], ["1617", 1619], ["1618", 1620], ["1619", 1621], ["1620", 1622], ["1621", 1623], ["1622", 1624], ["1623", 1625], ["1624", 1626], ["1625", 1627], ["1626", 1628], ["1627", 1629], ["1628", 1630], ["1629", 1631], ["1630", 1632], ["1631", 1633], ["1632", 1634], ["1633", 1635], ["1634", 1636], ["1635", 1637], ["1636", 1638], ["1637", 1639], ["1638", 1640], ["1639", 1641], ["1640", 1642], ["1641", 1643], ["1642", 1644], ["1643", 1645], ["1644", 1646], ["1645", 1647], ["1646", 1648], ["1647", 1649], ["1648", 1650], ["1649", 1651], ["1650", 1652], ["1651", 1653], ["1652", 1654], ["1653", 1655], ["1654", 1656], ["1655", 1657], ["1656", 1658], ["1657", 1659], ["1658", 1660], ["1659", 1661], ["1660", 1662], ["1661", 1663], ["1662", 1664], ["1663", 1665], ["1664", 1666], ["1665", 1667], ["1666", 1668], ["1667", 1669], ["1668", 1670], ["1669", 1671], ["1670", 1672], ["1671", 1673], ["1672", 1674], ["1673", 1675], ["1674", 1676], ["1675", 1677], ["1676", 1678], ["1677", 1679], ["1678", 1680], ["1679", 1681], ["1680", 1682], ["1681", 1683], ["1682", 1684], ["1683", 1685], ["1684", 1686], ["1685", 1687], ["1686", 1688], ["1687", 1689], ["1688", 1690], ["1689", 1691], ["1690", 1692], ["1691", 1693], ["1692", 1694], ["1693", 1695], ["1694", 1696], ["1695", 1697], ["1696", 1698], ["1697", 1699], ["1698", 1700], ["1699", 1701], ["1700", 1702], ["1701", 1703], ["1702", 1704], ["1703", 1705], ["1704", 1706], ["1705", 1707], ["1706", 1708], ["1707", 1709], ["1708", 1710], ["1709", 1711], ["1710", 1712], ["1711", 1713], ["1712", 1714], ["1713", 1715], ["1714", 1716], ["1715", 1717], ["1716", 1718], ["1717", 1719], ["1718", 1720], ["1719", 1721], ["1720", 1722], ["1721", 1723], ["1722", 1724], ["1723", 1725], ["1724", 1726], ["1725", 1727], ["1726", 1728], ["1727", 1729], ["1728", 1730], ["1729", 1731], ["1730", 1732], ["1731", 1733], ["1732", 1734], ["1733", 1735], ["1734", 1736], ["1735", 1737], ["1736", 1738], ["1737", 1739], ["1738", 1740], ["1739", 1741], ["1740", 1742], ["1741", 1743], ["1742", 1744], ["1743", 1745], ["1744", 1746], ["1745", 1747], ["1746", 1748], ["1747", 1749], ["1748", 1750], ["1749", 1751], ["1750", 1752], ["1751", 1753], ["1752", 1754], ["1753", 1755], ["1754", 1756], ["1755", 1757], ["1756", 1758], ["1757", 1759], ["1758", 1760], ["1759", 1761], ["1760", 1762], ["1761", 1763], ["1762", 1764], ["1763", 1765], ["1764", 1766], ["1765", 1767], ["1766", 1768], ["1767", 1769], ["1768", 1770], ["1769", 1771], ["1770", 1772], ["1771", 1773], ["1772", 1774], ["1773", 1775], ["1774", 1776], ["1775", 1777], ["1776", 1778], ["1777", 1779], ["1778", 1780], ["1779", 1781], ["1780", 1782], ["1781", 1783], ["1782", 1784], ["1783", 1785], ["1784", 1786], ["1785", 1787], ["1786", 1788], ["1787", 1789], ["1788", 1790], ["1789", 1791], ["1790", 1792], ["1791", 1793], ["1792", 1794], ["1793", 1795], ["1794", 1796], ["1795", 1797], ["1796", 1798], ["1797", 1799], ["1798", 1800], ["1799", 1801], ["1800", 1802], ["1801", 1803], ["1802", 1804], ["1803", 1805], ["1804", 1806], ["1805", 1807], ["1806", 1808], ["1807", 1809], ["1808", 1810], ["1809", 1811], ["1810", 1812], ["1811", 1813], ["1812", 1814], ["1813", 1815], ["1814", 1816], ["1815", 1817], ["1816", 1818], ["1817", 1819], ["1818", 1820], ["1819", 1821], ["1820", 1822], ["1821", 1823], ["1822", 1824], ["1823", 1825], ["1824", 1826], ["1825", 1827], ["1826", 1828], ["1827", 1829], ["1828", 1830], ["1829", 1831], ["1830", 1832], ["1831", 1833], ["1832", 1834], ["1833", 1835], ["1834", 1836], ["1835", 1837], ["1836", 1838], ["1837", 1839], ["1838", 1840], ["1839", 1841], ["1840", 1842], ["1841", 1843], ["1842", 1844], ["1843", 1845], ["1844", 1846], ["1845", 1847], ["1846", 1848], ["1847", 1849], ["1848", 1850], ["1849", 1851], ["1850", 1852], ["1851", 1853], ["1852", 1854], ["1853", 1855], ["1854", 1856], ["1855", 1857], ["1856", 1858], ["1857", 1859], ["1858", 1860], ["1859", 1861], ["1860", 1862], ["1861", 1863], ["1862", 1864], ["1863", 1865], ["1864", 1866], ["1865", 1867], ["1866", 1868], ["1867", 1869], ["1868", 1870], ["1869", 1871], ["1870", 1872], ["1871", 1873], ["1872", 1874], ["1873", 1875], ["1874", 1876], ["1875", 1877], ["1876", 1878], ["1877", 1879], ["1878", 1880], ["1879", 1881], ["1880", 1882], ["1881", 1883], ["1882", 1884], ["1883", 1885], ["1884", 1886], ["1885", 1887], ["1886", 1888], ["1887", 1889], ["1888", 1890], ["1889", 1891], ["1890", 1892], ["1891", 1893], ["1892", 1894], ["1893", 1895], ["1894", 1896], ["1895", 1897], ["1896", 1898], ["1897", 1899], ["1898", 1900], ["1899", 1901], ["1900", 1902], ["1901", 1903], ["1902", 1904], ["1903", 1905], ["1904", 1906], ["1905", 1907], ["1906", 1908], ["1907", 1909], ["1908", 1910], ["1909", 1911], ["1910", 1912], ["1911", 1913], ["1912", 1914], ["1913", 1915], ["1914", 1916], ["1915", 1917], ["1916", 1918], ["1917", 1919], ["1918", 1920], ["1919", 1921], ["1920", 1922], ["1921", 1923], ["1922", 1924], ["1923", 1925], ["1924", 1926], ["1925", 1927], ["1926", 1928], ["1927", 1929], ["1928", 1930], ["1929", 1931], ["1930", 1932], ["1931", 1933], ["1932", 1934], ["1933", 1935], ["1934", 1936], ["1935", 1937], ["1936", 1938], ["1937", 1939], ["1938", 1940], ["1939", 1941], ["1940", 1942], ["1941", 1943], ["1942", 1944], ["1943", 1945], ["1944", 1946], ["1945", 1947], ["1946", 1948], ["1947", 1949], ["1948", 1950], ["1949", 1951], ["1950", 1952], ["1951", 1953], ["1952", 1954], ["1953", 1955], ["1954", 1956], ["1955", 1957], ["1956", 1958], ["1957", 1959], ["1958", 1960], ["1959", 1961], ["1960", 1962], ["1961", 1963], ["1962", 1964], ["1963", 1965], ["1964", 1966], ["1965", 1967], ["1966", 1968], ["1967", 1969], ["1968", 1970], ["1969", 1971], ["1970", 1972], ["1971", 1973], ["1972", 1974], ["1973", 1975], ["1974", 1976], ["1975", 1977], ["1976", 1978], ["1977", 1979], ["1978", 1980], ["1979", 1981], ["1980", 1982], ["1981", 1983], ["1982", 1984], ["1983", 1985], ["1984", 1986], ["1985", 1987], ["1986", 1988], ["1987", 1989], ["1988", 1990], ["1989", 1991], ["1990", 1992], ["1991", 1993], ["1992", 1994], ["1993", 1995], ["1994", 1996], ["1995", 1997], ["1996", 1998], ["1997", 1999], ["1998", 2000], ["1999", 2001], ["2000", 2002], ["2001", 2003], ["2002", 2004], ["2003", 2005], ["2004", 2006], ["2005", 2007], ["2006", 2008], ["2007", 2009], ["2008", 2010], ["2009", 2011], ["2010", 2012], ["2011", 2013], ["2012", 2014], ["2013", 2015], ["2014", 2016], ["2015", 2017], ["2016", 2018], ["2017", 2019], ["2018", 2020], ["2019", 2021], ["2020", 2022], ["2021", 2023], ["2022", 2024], ["2023", 2025], ["2024", 2026], ["2025", 2027], ["2026", 2028], ["2027", 2029], ["2028", 2030], ["2029", 2031], ["2030", 2032], ["2031", 2033], ["2032", 2034], ["2033", 2035], ["2034", 2036], ["2035", 2037], ["2036", 2038], ["2037", 2039], ["2038", 2040], ["2039", 2041], ["2040", 2042], ["2041", 2043], ["2042", 2044], ["2043", 2045], ["2044", 2046], ["2045", 2047], ["2046", 2048], ["2047", 2049], ["2048", 2050], ["2049", 2051], ["2050", 2052], ["2051", 2053], ["2052", 2054], ["2053", 2055], ["2054", 2056], ["2055", 2057], ["2056", 2058], ["2057", 2059], ["2058", 2060], ["2059", 2061], ["2060", 2062], ["2061", 2063], ["2062", 2064], ["2063", 2065], ["2064", 2066], ["2065", 2067], ["2066", 2068], ["2067", 2069], ["2068", 2070], ["2069", 2071], ["2070", 2072], ["2071", 2073], ["2072", 2074], ["2073", 2075], ["2074", 2076], ["2075", 2077], ["2076", 2078], ["2077", 2079], ["2078", 2080], ["2079", 2081], ["2080", 2082], ["2081", 2083], ["2082", 2084], ["2083", 2085], ["2084", 2086], ["2085", 2087], ["2086", 2088], ["2087", 2089], ["2088", 2090], ["2089", 2091], ["2090", 2092], ["2091", 2093], ["2092", 2094], ["2093", 2095], ["2094", 2096], ["2095", 2097], ["2096", 2098], ["2097", 2099], ["2098", 2100], ["2100", 2102], ["2101", 2103], ["2102", 2104], ["2103", 2105], ["2104", 2106], ["2105", 2107], ["2106", 2108], ["2107", 2109], ["2108", 2110], ["2109", 2111], ["2110", 2112], ["2111", 2113], ["2112", 2114], ["2113", 2115], ["2114", 2116], ["2115", 2117], ["2116", 2118], ["2117", 2119], ["2118", 2120], ["2119", 2121], ["2120", 2122], ["2122", 2124], ["2123", 2125], ["2124", 2126], ["2125", 2127], ["2126", 2128], ["2127", 2129], ["2128", 2130], ["2129", 2131], ["2130", 2132], ["2131", 2133], ["2132", 2134], ["2133", 2135], ["2134", 2136], ["2135", 2137], ["2136", 2138], ["2137", 2139], ["2138", 2140], ["2139", 2141], ["2140", 2142], ["2141", 2143], ["2142", 2144], ["2143", 2145], ["2144", 2146], ["2145", 2147], ["2146", 2148], ["2147", 2149], ["2148", 2150], ["2149", 2151], ["2150", 2152], ["2151", 2153], ["2152", 2154], ["2153", 2155], ["2154", 2156], ["2155", 2157], ["2156", 2158], ["2157", 2159], ["2158", 2160], ["2159", 2161], ["2160", 2162], ["2161", 2163], ["2162", 2164], ["2163", 2165], ["2164", 2166], ["2165", 2167], ["2166", 2168], ["2167", 2169], ["2168", 2170], ["2169", 2171], ["2170", 2172], ["2171", 2173], ["2172", 2174], ["2173", 2175], ["2174", 2176], ["2175", 2177], ["2176", 2178], ["2177", 2179], ["2178", 2180], ["2179", 2181], ["2180", 2182], ["2181", 2183], ["2182", 2184], ["2183", 2185], ["2184", 2186], ["2185", 2187], ["2186", 2188], ["2187", 2189], ["2188", 2190], ["2189", 2191], ["2190", 2192], ["2191", 2193], ["2192", 2194], ["2193", 2195], ["2194", 2196], ["2195", 2197], ["2196", 2198], ["2197", 2199], ["2198", 2201], ["2199", 2200], ["2200", 2202], ["2201", 2203], ["2202", 2204], ["2203", 2205], ["2204", 2206], ["2205", 2207], ["2206", 2208], ["2207", 2209], ["2208", 2210], ["2209", 2211], ["2210", 2212], ["2211", 2213], ["2212", 2214], ["2213", 2215], ["2214", 2216], ["2215", 2217], ["2216", 2218], ["2217", 2219], ["2218", 2220], ["2219", 2221], ["2220", 2222], ["2221", 2223], ["2222", 2224], ["2223", 2225], ["2224", 2226], ["2225", 2227], ["2226", 2228], ["2227", 2229], ["2228", 2230], ["2229", 2231], ["2230", 2232], ["2231", 2233], ["2232", 2234], ["2233", 2235], ["2234", 2236], ["2236", 2238], ["2237", 2239], ["2238", 2240], ["2239", 2241], ["2240", 2242], ["2241", 2243], ["2242", 2244], ["2243", 2245], ["2244", 2246], ["2245", 2247], ["2246", 2248], ["2247", 2249], ["2248", 2250], ["2249", 2251], ["2250", 2252], ["2251", 2253], ["2252", 2254], ["2253", 2255], ["2254", 2256], ["2255", 2257], ["2256", 2258], ["2257", 2259], ["2258", 2260], ["2259", 2261], ["2260", 2262], ["2261", 2263], ["2262", 2264], ["2263", 2265], ["2264", 2266], ["2265", 2267], ["2266", 2268], ["2267", 2269], ["2268", 2270], ["2269", 2271], ["2270", 2272], ["2271", 2273], ["2272", 2274], ["2273", 2275], ["2274", 2276], ["2275", 2277], ["2276", 2278], ["2277", 2279], ["2278", 2280], ["2279", 2281], ["2280", 2282], ["2281", 2283], ["2282", 2284], ["2283", 2285], ["2284", 2286], ["2285", 2287], ["2286", 2288], ["2287", 2289], ["2288", 2290], ["2289", 2291], ["2290", 2292], ["2291", 2293], ["2292", 2294], ["2293", 2295], ["2294", 2296], ["2295", 2297], ["2296", 2298], ["2297", 2299], ["2298", 2300], ["2299", 2301], ["2300", 2302], ["2301", 2303], ["2302", 2304], ["2303", 2305], ["2304", 2306], ["2305", 2307], ["2306", 2308], ["2307", 2309], ["2308", 2310], ["2309", 2311], ["2310", 2312], ["2311", 2313], ["2312", 2314], ["2313", 2315], ["2314", 2316], ["2315", 2317], ["2316", 2318], ["2317", 2319], ["2318", 2320], ["2319", 2321], ["2320", 2322], ["2321", 2323], ["2322", 2324], ["2323", 2325], ["2324", 2326], ["2325", 2327], ["2326", 2328], ["2327", 2329], ["2328", 2330], ["2329", 2331], ["2330", 2332], ["2331", 2333], ["2332", 2334], ["2333", 2335], ["2334", 2336], ["2335", 2337], ["2336", 2338], ["2337", 2339], ["2338", 2340], ["2339", 2341], ["2340", 2342], ["2341", 2343], ["2342", 2344], ["2343", 2345], ["2344", 2346], ["2345", 2347], ["2346", 2348], ["2347", 2349], ["2348", 2350], ["2349", 2351], ["2350", 2352], ["2351", 2353], ["2352", 2354], ["2353", 2355], ["2354", 2356], ["2355", 2357], ["2356", 2358], ["2357", 2359], ["2358", 2360], ["2359", 2361], ["2360", 2362], ["2361", 2363], ["2362", 2364], ["2363", 2365], ["2364", 2366], ["2365", 2367], ["2366", 2368], ["2367", 2369], ["2368", 2370], ["2369", 2371], ["2370", 2372], ["2371", 2373], ["2372", 2374], ["2373", 2375], ["2374", 2376], ["2375", 2377], ["2376", 2378], ["2377", 2379], ["2378", 2380], ["2379", 2381], ["2380", 2382], ["2381", 2383], ["2382", 2384], ["2383", 2385], ["2384", 2386], ["2385", 2387], ["2386", 2388], ["2387", 2389], ["2388", 2390], ["2389", 2391], ["2390", 2392], ["2391", 2393], ["2392", 2394], ["2393", 2395], ["2394", 2396], ["2395", 2397], ["2396", 2398], ["2397", 2399], ["2398", 2400], ["2399", 2401], ["2400", 2402], ["2401", 2403], ["2402", 2404], ["2403", 2405], ["2404", 2406], ["2405", 2407], ["2406", 2408], ["2407", 2409], ["2408", 2410], ["2409", 2411], ["2410", 2412], ["2411", 2413], ["2412", 2414], ["2413", 2415], ["2414", 2416], ["2415", 2417], ["2416", 2418], ["2417", 2419], ["2418", 2420], ["2419", 2421], ["2420", 2422], ["2421", 2423], ["2422", 2424], ["2423", 2425], ["2424", 2426], ["2425", 2427], ["2426", 2428], ["2427", 2429], ["2428", 2430], ["2429", 2431], ["2430", 2432], ["2431", 2433], ["2432", 2434], ["2433", 2435], ["2434", 2436], ["2435", 2437], ["2436", 2438], ["2437", 2439], ["2438", 2440], ["2439", 2441], ["2440", 2442], ["2441", 2443], ["2442", 2444], ["2443", 2445], ["2444", 2446], ["2445", 2447], ["2446", 2448], ["2447", 2449], ["2448", 2450], ["2449", 2451], ["2450", 2452], ["2451", 2453], ["2452", 2454], ["2453", 2455], ["2454", 2456], ["2455", 2457], ["2456", 2458], ["2457", 2459], ["2458", 2460], ["2459", 2461], ["2460", 2462], ["2461", 2463], ["2462", 2464], ["2463", 2465], ["2464", 2466], ["2465", 2467], ["2466", 2468], ["2467", 2469], ["2468", 2470], ["2469", 2471], ["2470", 2472], ["2471", 2473], ["2472", 2474], ["2473", 2475], ["2474", 2476], ["2475", 2477], ["2476", 2478], ["2477", 2479], ["2478", 2480], ["2479", 2481], ["2480", 2482], ["2481", 2483], ["2482", 2484], ["2483", 2485], ["2484", 2486], ["2485", 2487], ["2486", 2488], ["2487", 2489], ["2488", 2490], ["2489", 2491], ["2490", 2492], ["2491", 2493], ["2492", 2494], ["2493", 2495], ["2494", 2496], ["2495", 2497], ["2496", 2498], ["2497", 2499], ["2498", 2500], ["2499", 2501], ["2500", 2502], ["2501", 2503], ["2502", 2504], ["2503", 2505], ["2504", 2506], ["2505", 2507], ["2506", 2508], ["2507", 2509], ["2508", 2510], ["2509", 2511], ["2510", 2512], ["2511", 2513], ["2512", 2514], ["2513", 2515], ["2514", 2516], ["2515", 2517], ["2516", 2518], ["2517", 2519], ["2518", 2520], ["2519", 2521], ["2520", 2522], ["2521", 2523], ["2522", 2524], ["2523", 2525], ["2524", 2526], ["2525", 2527], ["2526", 2528], ["2527", 2529], ["2528", 2530], ["2529", 2531], ["2530", 2532], ["2531", 2533], ["2532", 2534], ["2533", 2535], ["2534", 2536], ["2535", 2537], ["2536", 2538], ["2537", 2539], ["2538", 2540], ["2539", 2541], ["2540", 2542], ["2541", 2543], ["2542", 2544], ["2543", 2545], ["2544", 2546], ["2545", 2547], ["2546", 2548], ["2547", 2549], ["2548", 2550], ["2549", 2551], ["2550", 2552], ["2551", 2553], ["2552", 2554], ["2553", 2555], ["2554", 2556], ["2555", 2557], ["2556", 2558], ["2557", 2559], ["2558", 2560], ["2559", 2561], ["2560", 2562], ["2561", 2563], ["2562", 2564], ["2563", 2565], ["2564", 2566], ["2565", 2567], ["2566", 2568], ["2567", 2569], ["2568", 2570], ["2569", 2571], ["2570", 2572], ["2571", 2573], ["2572", 2574], ["2573", 2575], ["2574", 2576], ["2575", 2577], ["2576", 2578], ["2577", 2579], ["2578", 2580], ["2579", 2581], ["2580", 2582], ["2581", 2583], ["2582", 2584], ["2583", 2585], ["2584", 2586], ["2585", 2587], ["2586", 2588], ["2587", 2589], ["2588", 2590], ["2589", 2591], ["2590", 2592], ["2591", 2593], ["2592", 2594], ["2593", 2595], ["2594", 2596], ["2595", 2597], ["2596", 2598], ["2597", 2599], ["2598", 2600], ["2599", 2601], ["2600", 2602], ["2601", 2603], ["2602", 2604], ["2603", 2605], ["2604", 2606], ["2605", 2607], ["2606", 2608], ["2607", 2609], ["2608", 2610], ["2609", 2611], ["2610", 2612], ["2611", 2613], ["2612", 2614], ["2613", 2615], ["2614", 2616], ["2615", 2617], ["2616", 2618], ["2617", 2619], ["2618", 2620], ["2619", 2621], ["2620", 2622], ["2621", 2623], ["2622", 2624], ["2623", 2625], ["2624", 2626], ["2625", 2627], ["2626", 2628], ["2627", 2629], ["2628", 2630], ["2629", 2631], ["2630", 2632], ["2631", 2633], ["2632", 2634], ["2633", 2635], ["2634", 2636], ["2635", 2637], ["2636", 2638], ["2637", 2639], ["2638", 2640], ["2639", 2641], ["2640", 2642], ["2641", 2643], ["2642", 2644], ["2643", 2645], ["2644", 2646], ["2645", 2647], ["2646", 2648], ["2647", 2649], ["2648", 2650], ["2649", 2651], ["2650", 2652], ["2651", 2653], ["2652", 2654], ["2653", 2655], ["2654", 2656], ["2655", 2657], ["2656", 2658], ["2657", 2659], ["2658", 2660], ["2659", 2661], ["2660", 2662], ["2661", 2663], ["2662", 2664], ["2663", 2665], ["2664", 2666], ["2665", 2667], ["2666", 2668], ["2667", 2669], ["2668", 2670], ["2669", 2671], ["2670", 2672], ["2671", 2673], ["2672", 2674], ["2673", 2675], ["2674", 2676], ["2675", 2677], ["2676", 2678], ["2677", 2679], ["2678", 2680], ["2679", 2681], ["2680", 2682], ["2681", 2683], ["2682", 2684], ["2683", 2685], ["2684", 2686], ["2685", 2687], ["2686", 2688], ["2687", 2689], ["2688", 2690], ["2689", 2691], ["2690", 2692], ["2691", 2693], ["2692", 2694], ["2693", 2695], ["2694", 2696], ["2695", 2697], ["2696", 2698], ["2697", 2699], ["2698", 2700], ["2699", 2701], ["2700", 2702], ["2701", 2703], ["2702", 2704], ["2703", 2705], ["2704", 2706], ["2705", 2707], ["2706", 2708], ["2707", 2709], ["2708", 2710], ["2709", 2711], ["2710", 2712], ["2711", 2713], ["2712", 2714], ["2713", 2715], ["2714", 2716], ["2715", 2717], ["2716", 2718], ["2717", 2719], ["2718", 2720], ["2719", 2721], ["2720", 2722], ["2721", 2723], ["2722", 2724], ["2723", 2725], ["2724", 2726], ["2725", 2727], ["2726", 2728], ["2727", 2729], ["2728", 2730], ["2729", 2731], ["2730", 2732], ["2731", 2733], ["2732", 2734], ["2733", 2735], ["2734", 2736], ["2735", 2737], ["2736", 2738], ["2737", 2739], ["2738", 2740], ["2739", 2741], ["2740", 2742], ["2741", 2743], ["2742", 2744], ["2743", 2745], ["2744", 2746], ["2745", 2747], ["2746", 2748], ["2747", 2749], ["2748", 2750], ["2749", 2751], ["2750", 2752], ["2751", 2753], ["2752", 2754], ["2753", 2755], ["2754", 2756], ["2755", 2757], ["2756", 2758], ["2757", 2759], ["2758", 2760], ["2759", 2761], ["2760", 2762], ["2761", 2763], ["2762", 2764], ["2763", 2765], ["2764", 2766], ["2765", 2767], ["2766", 2768], ["2767", 2769], ["2768", 2770], ["2769", 2771], ["2770", 2772], ["2771", 2773], ["2772", 2774], ["2773", 2775], ["2774", 2776], ["2775", 2777], ["2776", 2778], ["2777", 2779], ["2778", 2780], ["2779", 2781], ["2780", 2782], ["2781", 2783], ["2782", 2784], ["2783", 2785], ["2784", 2786], ["2785", 2787], ["2786", 2788], ["2787", 2789], ["2788", 2790], ["2789", 2791], ["2790", 2792], ["2791", 2793], ["2792", 2794], ["2793", 2795], ["2794", 2796], ["2795", 2797], ["2796", 2798], ["2797", 2799], ["2798", 2800], ["2799", 2801], ["2800", 2802], ["2801", 2803], ["2802", 2804], ["2803", 2805], ["2804", 2806], ["2805", 2807], ["2806", 2808], ["2807", 2809], ["2808", 2810], ["2809", 2811], ["2810", 2812], ["2811", 2813], ["2812", 2814], ["2813", 2815], ["2814", 2816], ["2815", 2817], ["2816", 2818], ["2817", 2819], ["2818", 2820], ["2819", 2821], ["2820", 2822], ["2821", 2823], ["2822", 2824], ["2823", 2825], ["2824", 2826], ["2825", 2827], ["2826", 2828], ["2827", 2829], ["2828", 2830], ["2829", 2831], ["2830", 2832], ["2831", 2833], ["2832", 2834], ["2833", 2835], ["2834", 2836], ["2835", 2837], ["2836", 2838], ["2837", 2839], ["2838", 2840], ["2839", 2841], ["2840", 2842], ["2841", 2843], ["2842", 2844], ["2843", 2845], ["2844", 2846], ["2845", 2847], ["2846", 2848], ["2847", 2849], ["2848", 2850], ["2849", 2851], ["2850", 2852], ["2851", 2853], ["2852", 2854], ["2853", 2855], ["2854", 2856], ["2855", 2857], ["2856", 2858], ["2857", 2860], ["2858", 2861], ["2859", 2862], ["2860", 2863], ["2861", 2864], ["2862", 2865], ["2863", 2866], ["2864", 2867], ["2865", 2868], ["2866", 2869], ["2867", 2870], ["2868", 2871], ["2869", 2872], ["2870", 2873], ["2871", 2874], ["2872", 2875], ["2873", 2876], ["2874", 2877], ["2875", 2878], ["2876", 2879], ["2877", 2880], ["2878", 2881], ["2879", 2882], ["2880", 2883], ["2881", 2884], ["2882", 2885], ["2883", 2886], ["2884", 2887], ["2885", 2888], ["2886", 2889], ["2887", 2890], ["2888", 2891], ["2889", 2892], ["2890", 2893], ["2891", 2894], ["2892", 2895], ["2893", 2896], ["2894", 2897], ["2895", 2898], ["2896", 2899], ["2897", 2900], ["2898", 2901], ["2899", 2902], ["2900", 2903], ["2901", 2904], ["2902", 2905], ["2903", 2906], ["2904", 2907], ["2905", 2908], ["2906", 2909], ["2907", 2910], ["2908", 2911], ["2909", 2912], ["2910", 2913], ["2911", 2914], ["2912", 2915], ["2913", 2916], ["2914", 2917], ["2915", 2918], ["2916", 2919], ["2917", 2920], ["2918", 2921], ["2919", 2922], ["2920", 2923], ["2921", 2924], ["2922", 2925], ["2923", 2926], ["2924", 2927], ["2925", 2928], ["2926", 2929], ["2927", 2930], ["2928", 2931], ["2929", 2932], ["2930", 2933], ["2931", 2934], ["2932", 2935], ["2933", 2936], ["2934", 2937], ["2935", 2938], ["2936", 2939], ["2937", 2940], ["2938", 2941], ["2939", 2942], ["2940", 2943], ["2941", 2944], ["2942", 2945], ["2943", 2946], ["2944", 2947], ["2945", 2948], ["2946", 2949], ["2947", 2950], ["2948", 2951], ["2949", 2952], ["2950", 2953], ["2951", 2954], ["2952", 2955], ["2953", 2956], ["2954", 2957], ["2955", 2958], ["2956", 2959], ["2957", 2960], ["2958", 2961], ["2959", 2962], ["2960", 2963], ["2961", 2964], ["2962", 2965], ["2963", 2966], ["2964", 2967], ["2965", 2968], ["2966", 2969], ["2967", 2970], ["2968", 2971], ["2969", 2972], ["2970", 2973], ["2971", 2974], ["2972", 2975], ["2973", 2976], ["2974", 2977], ["2975", 2978], ["2976", 2979], ["2977", 2980], ["2978", 2981], ["2979", 2982], ["2980", 2983], ["2981", 2984], ["2982", 2985], ["2983", 2986], ["2984", 2987], ["2985", 2988], ["2986", 2989], ["2987", 2990], ["2988", 2991], ["2989", 2992], ["2990", 2993], ["2991", 2994], ["2992", 2995], ["2993", 2996], ["2994", 2997], ["2995", 2998], ["2996", 2999], ["2997", 3000], ["2998", 3001], ["2999", 3002], ["3000", 3003], ["3001", 3004], ["3002", 3005], ["3003", 3006], ["3004", 3007], ["3005", 3008], ["3006", 3009], ["3007", 3010], ["3008", 3011], ["3009", 3012], ["3010", 3013], ["3011", 3014], ["3012", 3015], ["3013", 3016], ["3014", 3017], ["3015", 3018], ["3016", 3019], ["3017", 3020], ["3018", 3021], ["3019", 3022], ["3020", 3023], ["3021", 3024], ["3022", 3025], ["3023", 3026], ["3024", 3027], ["3025", 3028], ["3026", 3029], ["3027", 3030], ["3028", 3031], ["3029", 3032], ["3030", 3033], ["3031", 3034], ["3032", 3035], ["3033", 3036], ["3034", 3037], ["3035", 3038], ["3036", 3039], ["3037", 3040], ["3038", 3041], ["3039", 3042], ["3040", 3043], ["3041", 3044], ["3042", 3045], ["3043", 3046], ["3044", 3047], ["3045", 3048], ["3046", 3049], ["3047", 3050], ["3048", 3051], ["3049", 3052], ["3050", 3053], ["3051", 3054], ["3052", 3055], ["3053", 3056], ["3054", 3057], ["3055", 3058], ["3056", 3059], ["3057", 3060], ["3058", 3061], ["3059", 3062], ["3060", 3063], ["3061", 3064], ["3062", 3065], ["3063", 3066], ["3064", 3067], ["3065", 3068], ["3066", 3069], ["3067", 3070], ["3068", 3071], ["3069", 3072], ["3070", 3073], ["3071", 3074], ["3072", 3075], ["3073", 3076], ["3074", 3077], ["3075", 3078], ["3076", 3079], ["3077", 3080], ["3078", 3081], ["3079", 3082], ["3080", 3083], ["3081", 3084], ["3082", 3085], ["3083", 3086], ["3084", 3087], ["3085", 3088], ["3086", 3089], ["3087", 3090], ["3088", 3091], ["3089", 3092], ["3090", 3093], ["3091", 3094], ["3092", 3095], ["3093", 3096], ["3094", 3097], ["3095", 3098], ["3096", 3099], ["3097", 3100], ["3098", 3101], ["3099", 3102], ["3100", 3103], ["3101", 3104], ["3102", 3105], ["3103", 3106], ["3104", 3107], ["3105", 3108], ["3106", 3109], ["3107", 3110], ["3108", 3111], ["3109", 3112], ["3110", 3113], ["3111", 3114], ["3112", 3115], ["3113", 3116], ["3114", 3117], ["3115", 3118], ["3116", 3119], ["3117", 3120], ["3118", 3121], ["3119", 3122], ["3120", 3123], ["3121", 3124], ["3122", 3125], ["3123", 3126], ["3124", 3127], ["3125", 3128], ["3126", 3129], ["3127", 3130], ["3128", 3131], ["3129", 3132], ["3130", 3133], ["3131", 3134], ["3132", 3135], ["3133", 3136], ["3134", 3137], ["3135", 3138], ["3136", 3139], ["3137", 3140], ["3138", 3141], ["3139", 3142], ["3140", 3143], ["3141", 3144], ["3142", 3145], ["3143", 3146], ["3144", 3147], ["3145", 3148], ["3146", 3149], ["3147", 3150], ["3148", 3151], ["3149", 3152], ["3150", 3153], ["3151", 3154], ["3152", 3155], ["3153", 3156], ["3154", 3157], ["3155", 3158], ["3156", 3159], ["3157", 3160], ["3158", 3161], ["3159", 3162], ["3160", 3163], ["3161", 3164], ["3162", 3165], ["3163", 3166], ["3164", 3167], ["3165", 3168], ["3166", 3169], ["3167", 3170], ["3168", 3171], ["3169", 3172], ["3170", 3173], ["3171", 3174], ["3172", 3175], ["3173", 3176], ["3174", 3177], ["3175", 3178], ["3176", 3179], ["3177", 3180], ["3178", 3181], ["3179", 3182], ["3181", 3184], ["3182", 3185], ["3185", 3188], ["3186", 3189], ["3187", 3192], ["3188", 3190], ["3189", 3191], ["3190", 3193], ["3192", 3195], ["3193", 3196], ["3194", 3197], ["3195", 3198], ["3196", 3199], ["3197", 3200], ["3198", 3201], ["3199", 3202], ["3200", 3203], ["3201", 3204], ["3202", 3205], ["3203", 3206], ["3204", 3207], ["3205", 3208], ["3206", 3209], ["3207", 3210], ["3208", 3211], ["3209", 3212], ["3210", 3213], ["3211", 3214], ["3212", 3215], ["3213", 3216], ["3214", 3217], ["3215", 3218], ["3216", 3219], ["3217", 3220], ["3218", 3221], ["3219", 3222], ["3220", 3223], ["3221", 3224], ["3222", 3225], ["3223", 3226], ["3224", 3227], ["3225", 3228], ["3226", 3229], ["3227", 3230], ["3228", 3231], ["3229", 3232], ["3230", 3233], ["3231", 3234], ["3232", 3235], ["3233", 3236], ["3234", 3237], ["3235", 3238], ["3236", 3239], ["3237", 3240], ["3238", 3241], ["3239", 3242], ["3240", 3243], ["3241", 3244], ["3242", 3245], ["3243", 3246], ["3244", 3247], ["3245", 3248], ["3246", 3249], ["3247", 3250], ["3248", 3251], ["3249", 3252], ["3250", 3253], ["3251", 3254], ["3252", 3255], ["3253", 3256], ["3254", 3257], ["3255", 3258], ["3256", 3259], ["3257", 3260], ["3258", 3261], ["3259", 3262], ["3260", 3263], ["3261", 3264], ["3262", 3265], ["3263", 3266], ["3264", 3267], ["3265", 3268], ["3267", 3270], ["3268", 3271], ["3269", 3272], ["3270", 3273], ["3271", 3274], ["3272", 3275], ["3273", 3276], ["3274", 3277], ["3275", 3278], ["3276", 3279], ["3277", 3280], ["3278", 3281], ["3279", 3282], ["3280", 3283], ["3281", 3284], ["3282", 3285], ["3283", 3286], ["3284", 3287], ["3285", 3288], ["3286", 3289], ["3287", 3290], ["3288", 3291], ["3289", 3292], ["3290", 3293], ["3291", 3294], ["3292", 3295], ["3293", 3296], ["3294", 3297], ["3295", 3298], ["3296", 3299], ["3297", 3300], ["3298", 3301], ["3299", 3302], ["3300", 3303], ["3301", 3304], ["3302", 3305], ["3303", 3306], ["3304", 3307], ["3305", 3308], ["3306", 3309], ["3307", 3310], ["3308", 3311], ["3309", 3312], ["3310", 3313], ["3311", 3314], ["3312", 3315], ["3313", 3316], ["3314", 3317], ["3315", 3318], ["3316", 3319], ["3317", 3320], ["3318", 3321], ["3319", 3322], ["3320", 3323], ["3321", 3324], ["3322", 3325], ["3323", 3326], ["3324", 3327], ["3325", 3328], ["3326", 3329], ["3327", 3330], ["3328", 3331], ["3329", 3332], ["3330", 3333], ["3331", 3334], ["3332", 3335], ["3333", 3336], ["3334", 3337], ["3335", 3338], ["3336", 3339], ["3337", 3340], ["3338", 3341], ["3339", 3342], ["3340", 3343], ["3341", 3344], ["3342", 3345], ["3343", 3346], ["3344", 3347], ["3345", 3348], ["3346", 3349], ["3347", 3350], ["3348", 3351], ["3349", 3352], ["3350", 3353], ["3351", 3354], ["3352", 3355], ["3353", 3356], ["3354", 3357], ["3355", 3358], ["3356", 3359], ["3357", 3360], ["3358", 3361], ["3359", 3362], ["3360", 3363], ["3361", 3364], ["3362", 3365], ["3363", 3366], ["3364", 3367], ["3365", 3368], ["3366", 3369], ["3367", 3370], ["3368", 3371], ["3369", 3372], ["3370", 3373], ["3371", 3374], ["3372", 3375], ["3373", 3376], ["3374", 3377], ["3375", 3378], ["3376", 3379], ["3377", 3380], ["3378", 3381], ["3379", 3382], ["3380", 3383], ["3381", 3384], ["3382", 3385], ["3383", 3386], ["3384", 3387], ["3385", 3388], ["3386", 3389], ["3387", 3390], ["3388", 3391], ["3389", 3392], ["3390", 3393], ["3391", 3394], ["3392", 3395], ["3393", 3396], ["3394", 3397], ["3395", 3398], ["3396", 3399], ["3397", 3400], ["3398", 3401], ["3399", 3402], ["3400", 3403], ["3401", 3404], ["3402", 3405], ["3403", 3406], ["3404", 3407], ["3405", 3408], ["3406", 3409], ["3407", 3410], ["3408", 3411], ["3409", 3412], ["3410", 3413], ["3411", 3414], ["3412", 3415], ["3413", 3416], ["3414", 3417], ["3415", 3418], ["3416", 3419], ["3417", 3420], ["3418", 3421], ["3419", 3422], ["3420", 3423], ["3421", 3424], ["3422", 3425], ["3423", 3426], ["3424", 3427], ["3425", 3428], ["3426", 3429], ["3427", 3430], ["3428", 3431], ["3429", 3432], ["3430", 3433], ["3431", 3434], ["3432", 3435], ["3433", 3436], ["3434", 3437], ["3435", 3438], ["3436", 3439], ["3437", 3440], ["3438", 3441], ["3439", 3442], ["3440", 3443], ["3441", 3444], ["3442", 3445], ["3443", 3446], ["3444", 3447], ["3445", 3448], ["3446", 3449], ["3447", 3450], ["3448", 3451], ["3449", 3452], ["3450", 3453], ["3451", 3454], ["3452", 3455], ["3453", 3456], ["3454", 3457], ["3455", 3458], ["3456", 3459], ["3457", 3460], ["3458", 3461], ["3459", 3462], ["3460", 3463], ["3461", 3464], ["3462", 3465], ["3463", 3466], ["3464", 3467], ["3465", 3468], ["3466", 3469], ["3467", 3470], ["3468", 3471], ["3469", 3472], ["3470", 3473], ["3471", 3474], ["3472", 3475], ["3473", 3476], ["3474", 3477], ["3475", 3478], ["3476", 3479], ["3477", 3480], ["3478", 3481], ["3479", 3482], ["3480", 3483], ["3481", 3484], ["3482", 3485], ["3483", 3486], ["3484", 3487], ["3485", 3488], ["3486", 3489], ["3487", 3490], ["3488", 3491], ["3489", 3492], ["3490", 3493], ["3491", 3494], ["3492", 3495], ["3493", 3496], ["3494", 3497], ["3496", 3499], ["3497", 3500], ["3498", 3501], ["3499", 3502], ["3500", 3503], ["3501", 3504], ["3502", 3505], ["3503", 3506], ["3504", 3507], ["3505", 3508], ["3506", 3509], ["3507", 3510], ["3508", 3511], ["3509", 3512], ["3510", 3513], ["3511", 3514], ["3512", 3515], ["3513", 3516], ["3514", 3517], ["3515", 3518], ["3516", 3519], ["3517", 3520], ["3518", 3521], ["3519", 3522], ["3520", 3523], ["3521", 3524], ["3522", 3525], ["3523", 3526], ["3524", 3527], ["3525", 3528], ["3526", 3529], ["3527", 3530], ["3528", 3531], ["3529", 3532], ["3530", 3533], ["3531", 3534], ["3532", 3535], ["3533", 3536], ["3534", 3537], ["3535", 3538], ["3536", 3539], ["3537", 3540], ["3538", 3541], ["3539", 3542], ["3540", 3543], ["3541", 3544], ["3542", 3545], ["3543", 3546], ["3544", 3547], ["3545", 3548], ["3546", 3549], ["3547", 3550], ["3548", 3551], ["3549", 3552], ["3550", 3553], ["3551", 3554], ["3552", 3555], ["3553", 3556], ["3554", 3557], ["3555", 3558], ["3556", 3559], ["3557", 3560], ["3558", 3561], ["3559", 3562], ["3560", 3563], ["3561", 3564], ["3562", 3565], ["3563", 3566], ["3564", 3567], ["3565", 3568], ["3566", 3569], ["3567", 3570], ["3568", 3571], ["3569", 3572], ["3570", 3573], ["3571", 3574], ["3572", 3575], ["3573", 3576], ["3574", 3577], ["3575", 3578], ["3576", 3579], ["3577", 3580], ["3578", 3581], ["3579", 3582], ["3580", 3583], ["3581", 3584], ["3582", 3585], ["3583", 3586], ["3584", 3587], ["3585", 3588], ["3586", 3589], ["3587", 3590], ["3588", 3591], ["3589", 3592], ["3590", 3593], ["3591", 3594], ["3592", 3595], ["3593", 3596], ["3594", 3597], ["3595", 3598], ["3596", 3599], ["3597", 3600], ["3598", 3601], ["3599", 3602], ["3600", 3603], ["3601", 3604], ["3602", 3605], ["3603", 3606], ["3604", 3607], ["3605", 3608], ["3606", 3609], ["3607", 3610], ["3608", 3611], ["3609", 3612], ["3610", 3613], ["3611", 3614], ["3612", 3615], ["3613", 3616], ["3614", 3617], ["3615", 3618], ["3616", 3619], ["3617", 3620], ["3619", 3622], ["3620", 3623], ["3621", 3624], ["3622", 3625], ["3623", 3626], ["3624", 3627], ["3625", 3628], ["3626", 3629], ["3627", 3630], ["3628", 3631], ["3629", 3632], ["3630", 3633], ["3631", 3634], ["3632", 3635], ["3633", 3636], ["3634", 3637], ["3635", 3638], ["3636", 3639], ["3637", 3640], ["3638", 3641], ["3639", 3642], ["3640", 3643], ["3641", 3644], ["3642", 3645], ["3643", 3646], ["3644", 3647], ["3645", 3648], ["3646", 3649], ["3647", 3650], ["3648", 3651], ["3649", 3652], ["3650", 3653], ["3651", 3654], ["3652", 3655], ["3653", 3656], ["3654", 3657], ["3655", 3658], ["3656", 3659], ["3657", 3660], ["3658", 3661], ["3659", 3662], ["3660", 3663], ["3661", 3664], ["3662", 3665], ["3663", 3666], ["3664", 3667], ["3665", 3668], ["3666", 3669], ["3667", 3670], ["3668", 3671], ["3669", 3672], ["3670", 3673], ["3671", 3674], ["3672", 3675], ["3673", 3676], ["3674", 3677], ["3675", 3678], ["3676", 3679], ["3677", 3680], ["3678", 3681], ["3679", 3682], ["3680", 3683], ["3681", 3684], ["3682", 3685], ["3683", 3686], ["3684", 3687], ["3685", 3688], ["3686", 3689], ["3687", 3690], ["3688", 3691], ["3689", 3692], ["3690", 3693], ["3691", 3694], ["3692", 3695], ["3693", 3696], ["3694", 3697], ["3695", 3698], ["3696", 3699], ["3697", 3700], ["3698", 3701], ["3699", 3702], ["3700", 3703], ["3701", 3704], ["3702", 3705], ["3703", 3706], ["3704", 3707], ["3705", 3708], ["3706", 3709], ["3707", 3710], ["3708", 3711], ["3709", 3712], ["3710", 3713], ["3711", 3714], ["3712", 3715], ["3713", 3716], ["3714", 3717], ["3715", 3718], ["3716", 3719], ["3717", 3720], ["3718", 3721], ["3719", 3722], ["3720", 3723], ["3721", 3724], ["3722", 3725], ["3723", 3726], ["3724", 3727], ["3725", 3728], ["3726", 3729], ["3727", 3730], ["3728", 3731], ["3729", 3732], ["3730", 3733], ["3731", 3734], ["3732", 3735], ["3733", 3736], ["3734", 3737], ["3735", 3738], ["3736", 3739], ["3737", 3740], ["3738", 3741], ["3739", 3742], ["3740", 3743], ["3741", 3744], ["3742", 3745], ["3743", 3746], ["3744", 3747], ["3745", 3748], ["3746", 3749], ["3747", 3750], ["3748", 3751], ["3749", 3752], ["3750", 3753], ["3751", 3754], ["3752", 3755], ["3753", 3756], ["3754", 3757], ["3755", 3758], ["3756", 3759], ["3757", 3760], ["3758", 3761], ["3759", 3762], ["3760", 3763], ["3761", 3764], ["3762", 3765], ["3763", 3766], ["3764", 3767], ["3765", 3768], ["3766", 3769], ["3767", 3770], ["3768", 3771], ["3769", 3772], ["3770", 3773], ["3771", 3774], ["3772", 3775], ["3773", 3776], ["3774", 3777], ["3775", 3778], ["3776", 3779], ["3777", 3780], ["3778", 3781], ["3779", 3782], ["3780", 3783], ["3781", 3784], ["3782", 3785], ["3783", 3786], ["3784", 3787], ["3785", 3788], ["3786", 3789], ["3787", 3790], ["3788", 3791], ["3789", 3792], ["3790", 3793], ["3791", 3794], ["3792", 3795], ["3793", 3796], ["3794", 3797], ["3795", 3798], ["3796", 3799], ["3797", 3800], ["3798", 3801], ["3799", 3802], ["3800", 3803], ["3801", 3804], ["3802", 3805], ["3803", 3806], ["3804", 3807], ["3805", 3808], ["3806", 3809], ["3807", 3810], ["3808", 3811], ["3809", 3812], ["3810", 3813], ["3811", 3814], ["3812", 3815], ["3813", 3816], ["3814", 3817], ["3815", 3818], ["3816", 3819], ["3817", 3820], ["3818", 3821], ["3819", 3822], ["3820", 3823], ["3821", 3824], ["3822", 3825], ["3823", 3826], ["3824", 3827], ["3825", 3828], ["3826", 3829], ["3827", 3830], ["3828", 3831], ["3829", 3832], ["3830", 3833], ["3831", 3834], ["3832", 3835], ["3833", 3836], ["3834", 3837], ["3835", 3838], ["3836", 3839], ["3837", 3840], ["3838", 3841], ["3839", 3842], ["3840", 3843], ["3841", 3844], ["3842", 3845], ["3843", 3846], ["3844", 3847], ["3845", 3848], ["3846", 3849], ["3847", 3850], ["3848", 3851], ["3849", 3852], ["3850", 3853], ["3851", 3854], ["3852", 3855], ["3853", 3856], ["3854", 3857], ["3855", 3858], ["3856", 3859], ["3857", 3860], ["3858", 3861], ["3859", 3862], ["3860", 3863], ["3861", 3864], ["3862", 3865], ["3863", 3866], ["3864", 3867], ["3865", 3868], ["3866", 3869], ["3867", 3870], ["3868", 3871], ["3869", 3872], ["3870", 3873], ["3871", 3874], ["3872", 3875], ["3873", 3876], ["3874", 3877], ["3875", 3878], ["3876", 3879], ["3877", 3880], ["3878", 3881], ["3879", 3882], ["3880", 3883], ["3881", 3884], ["3882", 3885], ["3883", 3886], ["3884", 3887], ["3885", 3888], ["3886", 3889], ["3887", 3890], ["3888", 3891], ["3889", 3892], ["3890", 3893], ["3891", 3894], ["3892", 3895], ["3893", 3896], ["3894", 3897], ["3895", 3898], ["3896", 3899], ["3897", 3900], ["3898", 3901], ["3899", 3902], ["3900", 3903], ["3901", 3904], ["3902", 3905], ["3904", 3907], ["3905", 3908], ["3906", 3909], ["3907", 3910], ["3908", 3911], ["3909", 3912], ["3910", 3913], ["3911", 3914], ["3912", 3915], ["3913", 3916], ["3914", 3917], ["3915", 3918], ["3916", 3919], ["3917", 3920], ["3918", 3921], ["3919", 3922], ["3920", 3923], ["3921", 3924], ["3922", 3925], ["3923", 3926], ["3924", 3927], ["3925", 3928], ["3926", 3929], ["3927", 3930], ["3928", 3931], ["3929", 3932], ["3930", 3933], ["3931", 3934], ["3932", 3935], ["3933", 3936], ["3934", 3937], ["3935", 3938], ["3936", 3939], ["3937", 3940], ["3938", 3941], ["3939", 3942], ["3940", 3943], ["3941", 3944], ["3942", 3945], ["3943", 3946], ["3944", 3947], ["3945", 3948], ["3946", 3949], ["3948", 3951], ["3949", 3952], ["3950", 3953], ["3951", 3954], ["3952", 3955], ["3953", 3956], ["3955", 3958], ["3956", 3959], ["3957", 3960], ["3958", 3961], ["3959", 3962], ["3960", 3963], ["3961", 3964], ["3962", 3965], ["3963", 3966], ["3964", 3967], ["3965", 3968], ["3966", 3969], ["3967", 3970], ["3968", 3971], ["3969", 3972], ["3970", 3973], ["3971", 3974], ["3972", 3975], ["3973", 3976], ["3974", 3977], ["3975", 3978], ["3976", 3979], ["3977", 3980], ["3978", 3981], ["3979", 3982], ["3980", 3983], ["3981", 3984], ["3982", 3985], ["3983", 3986], ["3984", 3987], ["3985", 3988], ["3986", 3989], ["3987", 3990], ["3988", 3991], ["3989", 3992], ["3990", 3993], ["3991", 3994], ["3992", 3995], ["3993", 3996], ["3994", 3997], ["3995", 3998], ["3996", 3999], ["3997", 4000], ["3998", 4001], ["3999", 4002], ["4000", 4003], ["4001", 4004], ["4002", 4005], ["4003", 4006], ["4004", 4007], ["4005", 4008], ["4006", 4009], ["4007", 4010], ["4008", 4011], ["4009", 4012], ["4010", 4013], ["4011", 4014], ["4012", 4015], ["4013", 4016], ["4014", 4017], ["4015", 4018], ["4016", 4019], ["4017", 4020], ["4018", 4021], ["4019", 4022], ["4020", 4023], ["4021", 4024], ["4022", 4025], ["4023", 4026], ["4024", 4027], ["4025", 4028], ["4026", 4029], ["4027", 4030], ["4028", 4031], ["4029", 4032], ["4030", 4033], ["4031", 4034], ["4032", 4035], ["4033", 4036], ["4034", 4037], ["4035", 4038], ["4036", 4039], ["4037", 4040], ["4038", 4041], ["4039", 4042], ["4040", 4043], ["4041", 4044], ["4042", 4045], ["4043", 4046], ["4044", 4047], ["4045", 4048], ["4046", 4049], ["4047", 4050], ["4048", 4051], ["4049", 4052], ["4050", 4053], ["4051", 4054], ["4052", 4055], ["4053", 4056], ["4054", 4057], ["4055", 4058], ["4056", 4059], ["4057", 4060], ["4058", 4061], ["4059", 4062], ["4060", 4063], ["4061", 4064], ["4062", 4065], ["4063", 4066], ["4064", 4067], ["4065", 4068], ["4066", 4069], ["4067", 4070], ["4068", 4071], ["4069", 4072], ["4070", 4073], ["4071", 4074], ["4072", 4075], ["4073", 4076], ["4074", 4077], ["4075", 4078], ["4076", 4079], ["4077", 4080], ["4078", 4081], ["4079", 4082], ["4080", 4083], ["4081", 4084], ["4082", 4085], ["4083", 4086], ["4084", 4087], ["4085", 4088], ["4086", 4089], ["4087", 4090], ["4088", 4091], ["4089", 4092], ["4090", 4093], ["4091", 4094], ["4092", 4095], ["4093", 4096], ["4094", 4097], ["4095", 4098], ["4096", 4099], ["4097", 4100], ["4098", 4101], ["4099", 4102], ["4100", 4103], ["4101", 4104], ["4102", 4105], ["4103", 4106], ["4104", 4107], ["4105", 4108], ["4106", 4109], ["4107", 4110], ["4108", 4111], ["4109", 4112], ["4110", 4113], ["4111", 4114], ["4112", 4115], ["4113", 4116], ["4114", 4117], ["4115", 4118], ["4116", 4119], ["4117", 4120], ["4118", 4121], ["4119", 4122], ["4120", 4123], ["4121", 4124], ["4122", 4125], ["4123", 4126], ["4124", 4127], ["4125", 4128], ["4126", 4129], ["4127", 4130], ["4128", 4131], ["4129", 4132], ["4130", 4133], ["4131", 4134], ["4132", 4135], ["4133", 4136], ["4134", 4137], ["4135", 4138], ["4136", 4139], ["4137", 4140], ["4138", 4141], ["4139", 4142], ["4140", 4143], ["4141", 4144], ["4142", 4145], ["4143", 4146], ["4144", 4147], ["4145", 4148], ["4146", 4149], ["4147", 4150], ["4148", 4151], ["4149", 4152], ["4150", 4153], ["4151", 4154], ["4152", 4155], ["4153", 4156], ["4154", 4157], ["4155", 4158], ["4156", 4159], ["4157", 4160], ["4158", 4161], ["4159", 4162], ["4160", 4163], ["4161", 4164], ["4162", 4165], ["4163", 4166], ["4164", 4167], ["4165", 4168], ["4166", 4169], ["4167", 4170], ["4168", 4171], ["4169", 4172], ["4170", 4173], ["4171", 4174], ["4172", 4175], ["4173", 4176], ["4174", 4177], ["4175", 4178], ["4176", 4179], ["4177", 4180], ["4178", 4181], ["4179", 4182], ["4180", 4183], ["4181", 4184], ["4182", 4185], ["4183", 4186], ["4184", 4187], ["4185", 4188], ["4186", 4189], ["4187", 4190], ["4188", 4191], ["4189", 4192], ["4190", 4193], ["4191", 4194], ["4192", 4195], ["4193", 4196], ["4194", 4197], ["4195", 4198], ["4196", 4199], ["4197", 4200], ["4198", 4201], ["4199", 4202], ["4200", 4203], ["4201", 4204], ["4202", 4205], ["4203", 4206], ["4204", 4207], ["4205", 4208], ["4206", 4209], ["4207", 4210], ["4208", 4211], ["4209", 4212], ["4210", 4213], ["4211", 4214], ["4212", 4215], ["4213", 4216], ["4214", 4217], ["4215", 4218], ["4216", 4219], ["4217", 4220], ["4218", 4221], ["4219", 4222], ["4220", 4223], ["4221", 4224], ["4222", 4225], ["4223", 4226], ["4224", 4227], ["4225", 4228], ["4226", 4229], ["4227", 4230], ["4228", 4231], ["4229", 4232], ["4230", 4233], ["4231", 4234], ["4233", 4236], ["4234", 4237], ["4235", 4238], ["4236", 4239], ["4237", 4240], ["4238", 4241], ["4239", 4242], ["4240", 4243], ["4241", 4244], ["4242", 4245], ["4243", 4246], ["4244", 4247], ["4246", 4249], ["4247", 4250], ["4248", 4251], ["4249", 4252], ["4251", 4254], ["4252", 4255], ["4253", 4256], ["4254", 4257], ["4255", 4258], ["4256", 4259], ["4257", 4260], ["4258", 4261], ["4259", 4262], ["4260", 4263], ["4261", 4264], ["4262", 4265], ["4263", 4266], ["4264", 4267], ["4265", 4268], ["4266", 4269], ["4267", 4270], ["4268", 4271], ["4269", 4272], ["4270", 4273], ["4271", 4274], ["4272", 4275], ["4273", 4276], ["4274", 4277], ["4275", 4278], ["4276", 4279], ["4277", 4280], ["4278", 4281], ["4279", 4282], ["4280", 4283], ["4281", 4284], ["4282", 4285], ["4283", 4286], ["4284", 4287], ["4285", 4288], ["4286", 4289], ["4287", 4290], ["4288", 4291], ["4289", 4292], ["4290", 4293], ["4291", 4294], ["4292", 4295], ["4293", 4296], ["4294", 4297], ["4295", 4298], ["4296", 4299], ["4297", 4300], ["4298", 4301], ["4299", 4302], ["4300", 4303], ["4301", 4304], ["4302", 4305], ["4303", 4306], ["4304", 4307], ["4305", 4308], ["4306", 4309], ["4307", 4310], ["4308", 4311], ["4309", 4312], ["4310", 4313], ["4311", 4314], ["4312", 4315], ["4313", 4316], ["4314", 4317], ["4315", 4318], ["4316", 4319], ["4317", 4320], ["4318", 4321], ["4319", 4322], ["4320", 4323], ["4321", 4324], ["4322", 4325], ["4323", 4326], ["4324", 4327], ["4325", 4328], ["4326", 4329], ["4327", 4330], ["4328", 4331], ["4329", 4332], ["4330", 4333], ["4331", 4334], ["4332", 4335], ["4333", 4336], ["4334", 4337], ["4335", 4338], ["4336", 4339], ["4337", 4340], ["4338", 4341], ["4339", 4342], ["4340", 4343], ["4341", 4344], ["4342", 4345], ["4343", 4346], ["4344", 4347], ["4345", 4348], ["4346", 4349], ["4347", 4350], ["4348", 4351], ["4349", 4352], ["4350", 4353], ["4351", 4354], ["4352", 4355], ["4353", 4356], ["4354", 4357], ["4355", 4358], ["4356", 4359], ["4357", 4360], ["4358", 4361], ["4359", 4362], ["4360", 4363], ["4361", 4364], ["4362", 4365], ["4363", 4366], ["4364", 4367], ["4365", 4368], ["4366", 4369], ["4367", 4370], ["4368", 4371], ["4369", 4372], ["4370", 4373], ["4371", 4374], ["4372", 4375], ["4373", 4376], ["4374", 4377], ["4375", 4378], ["4376", 4379], ["4377", 4380], ["4378", 4381], ["4379", 4382], ["4380", 4383], ["4381", 4384], ["4382", 4385], ["4383", 4386], ["4384", 4387], ["4385", 4388], ["4386", 4389], ["4387", 4390], ["4388", 4391], ["4389", 4392], ["4390", 4393], ["4391", 4394], ["4392", 4395], ["4393", 4396], ["4394", 4397], ["4395", 4398], ["4396", 4399], ["4397", 4400], ["4398", 4401], ["4399", 4402], ["4400", 4403], ["4401", 4404], ["4402", 4405], ["4403", 4406], ["4404", 4407], ["4405", 4408], ["4406", 4409], ["4407", 4410], ["4408", 4411], ["4409", 4412], ["4410", 4413], ["4411", 4414], ["4412", 4415], ["4413", 4416], ["4414", 4417], ["4415", 4418], ["4416", 4419], ["4417", 4420], ["4418", 4421], ["4419", 4422], ["4420", 4423], ["4421", 4424], ["4422", 4425], ["4423", 4426], ["4424", 4427], ["4425", 4428], ["4426", 4429], ["4427", 4430], ["4428", 4431], ["4429", 4432], ["4430", 4433], ["4431", 4434], ["4432", 4435], ["4433", 4436], ["4434", 4437], ["4435", 4438], ["4436", 4439], ["4437", 4440], ["4438", 4441], ["4439", 4442], ["4440", 4443], ["4441", 4444], ["4442", 4445], ["4443", 4446], ["4444", 4447], ["4445", 4448], ["4446", 4449], ["4447", 4450], ["4448", 4451], ["4449", 4452], ["4450", 4453], ["4451", 4454], ["4452", 4455], ["4453", 4456], ["4454", 4457], ["4455", 4458], ["4456", 4459], ["4457", 4460], ["4458", 4461], ["4459", 4462], ["4460", 4463], ["4461", 4464], ["4462", 4465], ["4463", 4466], ["4464", 4467], ["4465", 4468], ["4466", 4469], ["4467", 4470], ["4468", 4471], ["4469", 4472], ["4470", 4473], ["4471", 4474], ["4472", 4475], ["4473", 4476], ["4474", 4477], ["4475", 4478], ["4476", 4479], ["4477", 4480], ["4478", 4481], ["4479", 4482], ["4480", 4483], ["4481", 4484], ["4482", 4485], ["4483", 4486], ["4484", 4487], ["4485", 4488], ["4486", 4489], ["4487", 4490], ["4488", 4491], ["4489", 4492], ["4490", 4493], ["4491", 4494], ["4492", 4495], ["4493", 4496], ["4494", 4497], ["4495", 4498], ["4496", 4499], ["4497", 4500], ["4498", 4501], ["4499", 4502], ["4500", 4503], ["4501", 4504], ["4502", 4505], ["4503", 4506], ["4504", 4507], ["4505", 4508], ["4506", 4509], ["4507", 4510], ["4508", 4511], ["4509", 4512], ["4510", 4513], ["4511", 4514], ["4512", 4515], ["4514", 4517], ["4515", 4518], ["4516", 4519], ["4517", 4520], ["4518", 4521], ["4519", 4522], ["4520", 4523], ["4521", 4524], ["4522", 4525], ["4523", 4526], ["4524", 4527], ["4525", 4528], ["4526", 4529], ["4527", 4530], ["4528", 4531], ["4529", 4532], ["4530", 4533], ["4531", 4534], ["4532", 4535], ["4533", 4536], ["4534", 4537], ["4535", 4538], ["4536", 4539], ["4537", 4540], ["4538", 4541], ["4539", 4542], ["4540", 4543], ["4541", 4544], ["4542", 4545], ["4543", 4546], ["4544", 4547], ["4545", 4548], ["4546", 4549], ["4547", 4550], ["4548", 4551], ["4549", 4552], ["4550", 4553], ["4551", 4554], ["4552", 4555], ["4553", 4556], ["4554", 4557], ["4555", 4558], ["4556", 4559], ["4557", 4560], ["4558", 4561], ["4559", 4562], ["4560", 4563], ["4561", 4564], ["4562", 4565], ["4563", 4566], ["4564", 4567], ["4565", 4568], ["4566", 4569], ["4567", 4570], ["4568", 4571], ["4569", 4572], ["4570", 4573], ["4571", 4574], ["4572", 4575], ["4573", 4576], ["4574", 4577], ["4575", 4578], ["4576", 4579], ["4577", 4580], ["4578", 4581], ["4579", 4582], ["4580", 4583], ["4581", 4584], ["4582", 4585], ["4583", 4586], ["4584", 4587], ["4585", 4588], ["4586", 4589], ["4587", 4590], ["4588", 4591], ["4589", 4592], ["4590", 4593], ["4591", 4594], ["4592", 4595], ["4593", 4596], ["4594", 4597], ["4595", 4598], ["4596", 4599], ["4597", 4600], ["4598", 4601], ["4599", 4602], ["4600", 4603], ["4601", 4604], ["4602", 4605], ["4603", 4606], ["4604", 4607], ["4605", 4608], ["4606", 4609], ["4607", 4610], ["4608", 4611], ["4609", 4612], ["4610", 4613], ["4611", 4614], ["4612", 4615], ["4613", 4616], ["4614", 4617], ["4615", 4618], ["4616", 4619], ["4617", 4620], ["4618", 4621], ["4619", 4622], ["4620", 4623], ["4621", 4624], ["4622", 4625], ["4623", 4626], ["4624", 4627], ["4625", 4628], ["4626", 4629], ["4627", 4630], ["4628", 4631], ["4629", 4632], ["4630", 4633], ["4631", 4634], ["4632", 4635], ["4633", 4636], ["4634", 4637], ["4635", 4638], ["4636", 4639], ["4637", 4640], ["4638", 4641], ["4639", 4642], ["4640", 4643], ["4641", 4644], ["4642", 4645], ["4643", 4646], ["4644", 4647], ["4645", 4648], ["4646", 4649], ["4647", 4650], ["4648", 4651], ["4649", 4652], ["4650", 4653], ["4651", 4654], ["4652", 4655], ["4653", 4656], ["4654", 4657], ["4655", 4658], ["4656", 4659], ["4657", 4660], ["4658", 4661], ["4659", 4662], ["4660", 4663], ["4661", 4664], ["4662", 4665], ["4663", 4666], ["4664", 4667], ["4665", 4668], ["4666", 4669], ["4667", 4670], ["4668", 4671], ["4669", 4672], ["4670", 4673], ["4671", 4674], ["4672", 4675], ["4673", 4676], ["4674", 4677], ["4675", 4678], ["4676", 4679], ["4677", 4680], ["4678", 4681], ["4679", 4682], ["4680", 4683], ["4681", 4684], ["4682", 4685], ["4683", 4686], ["4684", 4687], ["4685", 4688], ["4686", 4689], ["4687", 4690], ["4688", 4691], ["4689", 4692], ["4690", 4693], ["4691", 4694], ["4692", 4695], ["4693", 4696], ["4694", 4697], ["4695", 4698], ["4696", 4699], ["4697", 4700], ["4699", 4702], ["4700", 4703], ["4701", 4704], ["4702", 4705], ["4703", 4706], ["4704", 4707], ["4705", 4708], ["4706", 4709], ["4707", 4710], ["4708", 4711], ["4709", 4712], ["4710", 4713], ["4711", 4714], ["4712", 4715], ["4713", 4716], ["4714", 4717], ["4715", 4718], ["4716", 4719], ["4717", 4720], ["4718", 4721], ["4719", 4722], ["4720", 4723], ["4721", 4724], ["4722", 4725], ["4723", 4726], ["4724", 4727], ["4725", 4728], ["4726", 4729], ["4727", 4730], ["4728", 4731], ["4729", 4732], ["4730", 4733], ["4731", 4734], ["4732", 4735], ["4733", 4736], ["4734", 4737], ["4735", 4738], ["4736", 4739], ["4737", 4740], ["4738", 4741], ["4739", 4742], ["4740", 4743], ["4741", 4744], ["4742", 4745], ["4743", 4746], ["4744", 4747], ["4745", 4748], ["4746", 4749], ["4747", 4750], ["4748", 4751], ["4749", 4752], ["4750", 4753], ["4751", 4754], ["4752", 4755], ["4753", 4756], ["4755", 4758], ["4756", 4759], ["4757", 4760], ["4758", 4761], ["4759", 4762], ["4760", 4763], ["4761", 4764], ["4762", 4765], ["4763", 4766], ["4764", 4767], ["4765", 4768], ["4766", 4769], ["4767", 4770], ["4768", 4771], ["4769", 4772], ["4770", 4773], ["4771", 4774], ["4772", 4775], ["4773", 4776], ["4774", 4777], ["4775", 4778], ["4776", 4779], ["4778", 4781], ["4779", 4782], ["4780", 4783], ["4781", 4784], ["4782", 4785], ["4783", 4786], ["4784", 4787], ["4785", 4788], ["4786", 4789], ["4787", 4790], ["4788", 4791], ["4789", 4792], ["4790", 4793], ["4791", 4794], ["4792", 4795], ["4793", 4796], ["4794", 4797], ["4795", 4798], ["4796", 4799], ["4797", 4800], ["4798", 4801], ["4799", 4802], ["4800", 4803], ["4801", 4804], ["4802", 4805], ["4803", 4806], ["4804", 4807], ["4805", 4808], ["4806", 4809], ["4807", 4810], ["4808", 4811], ["4809", 4812], ["4810", 4813], ["4811", 4814], ["4812", 4815], ["4813", 4816], ["4814", 4817], ["4815", 4818], ["4816", 4819], ["4817", 4820], ["4818", 4821], ["4819", 4822], ["4820", 4823], ["4821", 4824], ["4822", 4825], ["4823", 4826], ["4824", 4827], ["4825", 4828], ["4826", 4829], ["4827", 4830], ["4828", 4831], ["4829", 4832], ["4830", 4833], ["4831", 4834], ["4832", 4835], ["4833", 4836], ["4834", 4837], ["4835", 4838], ["4836", 4839], ["4837", 4840], ["4838", 4841], ["4839", 4842], ["4841", 4844], ["4842", 4845], ["4843", 4846], ["4844", 4847], ["4845", 4848], ["4846", 4849], ["4848", 4851], ["4849", 4852], ["4850", 4853], ["4851", 4854], ["4853", 4856], ["4854", 4857], ["4855", 4858], ["4856", 4859], ["4857", 4860], ["4858", 4861], ["4859", 4862], ["4860", 4863], ["4861", 4864], ["4862", 4865], ["4863", 4866], ["4864", 4867], ["4865", 4868], ["4866", 4869], ["4867", 4870], ["4868", 4871], ["4869", 4872], ["4870", 4873], ["4871", 4874], ["4872", 4875], ["4873", 4876], ["4874", 4877], ["4875", 4878], ["4876", 4879], ["4877", 4880], ["4878", 4881], ["4879", 4882], ["4880", 4883], ["4881", 4884], ["4882", 4885], ["4883", 4886], ["4884", 4887], ["4885", 4888], ["4886", 4889], ["4887", 4890], ["4888", 4891], ["4889", 4892], ["4890", 4893], ["4891", 4894], ["4892", 4895], ["4893", 4896], ["4894", 4897], ["4896", 4899], ["4897", 4900], ["4898", 4901], ["4899", 4902], ["4900", 4903], ["4901", 4904], ["4902", 4905], ["4903", 4906], ["4904", 4907], ["4905", 4908], ["4906", 4909], ["4907", 4910], ["4908", 4911], ["4909", 4912], ["4910", 4913], ["4911", 4914], ["4912", 4915], ["4913", 4916], ["4914", 4917], ["4915", 4918], ["4916", 4919], ["4917", 4920], ["4918", 4921], ["4919", 4922], ["4920", 4923], ["4921", 4924], ["4922", 4925], ["4923", 4926], ["4924", 4927], ["4925", 4928], ["4926", 4929], ["4927", 4930], ["4928", 4931], ["4929", 4932], ["4930", 4933], ["4931", 4934], ["4932", 4935], ["4933", 4936], ["4934", 4937], ["4935", 4938], ["4936", 4939], ["4937", 4940], ["4938", 4941], ["4939", 4942], ["4940", 4943], ["4941", 4944], ["4942", 4945], ["4943", 4946], ["4944", 4947], ["4945", 4948], ["4946", 4949], ["4947", 4950], ["4948", 4951], ["4949", 4952], ["4950", 4953], ["4951", 4954], ["4952", 4955], ["4953", 4956], ["4954", 4957], ["4955", 4958], ["4956", 4959], ["4957", 4960], ["4958", 4961], ["4959", 4962], ["4960", 4963], ["4961", 4964], ["4962", 4965], ["4963", 4966], ["4964", 4967], ["4965", 4968], ["4966", 4969], ["4967", 4970], ["4968", 4971], ["4969", 4972], ["4970", 4973], ["4971", 4974], ["4972", 4975], ["4973", 4976], ["4974", 4977], ["4975", 4978], ["4976", 4979], ["4977", 4980], ["4978", 4981], ["4979", 4982], ["4980", 4983], ["4981", 4984], ["4982", 4985], ["4983", 4986], ["4984", 4987], ["4985", 4988], ["4986", 4989], ["4987", 4990], ["4988", 4991], ["4989", 4992], ["4990", 4993], ["4991", 4994], ["4992", 4995], ["4993", 4996], ["4994", 4997], ["4995", 4998], ["4996", 4999], ["4997", 5000], ["4998", 5001], ["4999", 5002], ["5000", 5003], ["5001", 5004], ["5002", 5005], ["5003", 5006], ["5004", 5007], ["5005", 5008], ["5006", 5009], ["5007", 5010], ["5008", 5011], ["5009", 5012], ["5010", 5013], ["5011", 5014], ["5012", 5015], ["5013", 5016], ["5014", 5017], ["5015", 5018], ["5016", 5019], ["5017", 5020], ["5018", 5021], ["5019", 5022], ["5020", 5023], ["5021", 5024], ["5022", 5025], ["5023", 5026], ["5024", 5027], ["5025", 5028], ["5026", 5029], ["5027", 5030], ["5028", 5031], ["5029", 5032], ["5030", 5033], ["5031", 5034], ["5032", 5035], ["5033", 5036], ["5034", 5037], ["5035", 5038], ["5036", 5039], ["5037", 5040], ["5059", 5062], ["5060", 5063]]);
			// 获取用户输入的关键字
			var keyword = $('#search-input-id').val().trim();
			if (keyword === '') {
			  alert('请输入内容');
			  return;
			}
			// 如果是题号则直接跳转对应题目
			if (/^-?\d+(\.\d+)?$/.test(keyword)) {
				const base_problem_url = "https://www.acwing.com/problem/content/";
				const realNo = realNoToUrlNo.get(keyword);
				if (realNo != null && realNo != "undefined") {
					const url = base_problem_url + realNo;
					window.open(url);
					return;
				}
			}
		
			// 拼接搜索链接并在新窗口打开
			var url = 'https://www.acwing.com/problem/search/1/?search_content=' + keyword;
			window.open(url);
		}

		function random() {
			var random_number = Math.floor(Math.random() * 5031) + 1;
			var url = 'https://www.acwing.com/problem/content/' + random_number;
			window.open(url);
		}

		return;
	}

	if (url.includes("leetcode")) {
		console.log("leetcode...");
		if (!url.includes("problems")) return; // 不是 LeetCode 题目页面直接返回
		const urlPrefix = "https://www.acwing.com/activity/content/problem/content/";
		const title2URL = new Map([['two-sum', '2326/'], ['add-two-numbers', '2327/'], ['longest-substring-without-repeating-characters', '2328/'], ['median-of-two-sorted-arrays', '2329/'], ['longest-palindromic-substring', '2330/'], ['zigzag-conversion', '2331/'], ['reverse-integer', '2332/'], ['string-to-integer-atoi', '2333/'], ['palindrome-number', '2334/'], ['regular-expression-matching', '2335/'], ['container-with-most-water', '2344/'], ['integer-to-roman', '2345/'], ['roman-to-integer', '2346/'], ['longest-common-prefix', '2347/'], ['3sum', '2348/'], ['3sum-closest', '2349/'], ['letter-combinations-of-a-phone-number', '2350/'], ['4sum', '2351/'], ['remove-nth-node-from-end-of-list', '2352/'], ['valid-parentheses', '2353/'], ['merge-two-sorted-lists', '2354/'], ['generate-parentheses', '2355/'], ['merge-k-sorted-lists', '2356/'], ['swap-nodes-in-pairs', '2357/'], ['reverse-nodes-in-k-group', '2358/'], ['remove-duplicates-from-sorted-array', '2359/'], ['remove-element', '2360/'], ['implement-strstr', '2361/'], ['divide-two-integers', '2362/'], ['substring-with-concatenation-of-all-words', '2363/'], ['next-permutation', '2368/'], ['longest-valid-parentheses', '2369/'], ['search-in-rotated-sorted-array', '2370/'], ['find-first-and-last-position-of-element-in-sorted-array', '2371/'], ['search-insert-position', '2372/'], ['valid-sudoku', '2373/'], ['sudoku-solver', '2374/'], ['count-and-say', '2375/'], ['combination-sum', '2376/'], ['combination-sum-ii', '2377/'], ['first-missing-positive', '2378/'], ['trapping-rain-water', '2379/'], ['multiply-strings', '2380/'], ['wildcard-matching', '2381/'], ['jump-game-ii', '2382/'], ['permutations', '2383/'], ['permutations-ii', '2384/'], ['rotate-image', '2385/'], ['group-anagrams', '2386/'], ['powx-n', '2387/'], ['n-queens', '2396/'], ['n-queens-ii', '2397/'], ['maximum-subarray', '2398/'], ['spiral-matrix', '2399/'], ['jump-game', '2400/'], ['merge-intervals', '2401/'], ['insert-interval', '2402/'], ['length-of-last-word', '2403/'], ['spiral-matrix-ii', '2404/'], ['permutation-sequence', '2405/'], ['rotate-list', '2406/'], ['unique-paths', '2407/'], ['unique-paths-ii', '2408/'], ['minimum-path-sum', '2409/'], ['valid-number', '2410/'], ['plus-one', '2411/'], ['add-binary', '2412/'], ['text-justification', '2413/'], ['sqrtx', '2414/'], ['climbing-stairs', '2415/'], ['simplify-path', '2420/'], ['edit-distance', '2421/'], ['set-matrix-zeroes', '2422/'], ['search-a-2d-matrix', '2423/'], ['sort-colors', '2424/'], ['minimum-window-substring', '2425/'], ['combinations', '2426/'], ['subsets', '2427/'], ['word-search', '2428/'], ['remove-duplicates-from-sorted-array-ii', '2429/'], ['search-in-rotated-sorted-array-ii', '2430/'], ['remove-duplicates-from-sorted-list-ii', '2431/'], ['remove-duplicates-from-sorted-list', '2432/'], ['largest-rectangle-in-histogram', '2433/'], ['maximal-rectangle', '2434/'], ['partition-list', '2435/'], ['scramble-string', '2436/'], ['merge-sorted-array', '2437/'], ['gray-code', '2438/'], ['subsets-ii', '2439/'], ['decode-ways', '2444/'], ['reverse-linked-list-ii', '2445/'], ['restore-ip-addresses', '2446/'], ['binary-tree-inorder-traversal', '2447/'], ['unique-binary-search-trees-ii', '2448/'], ['unique-binary-search-trees', '2449/'], ['interleaving-string', '2450/'], ['validate-binary-search-tree', '2451/'], ['recover-binary-search-tree', '2452/'], ['same-tree', '2453/'], ['symmetric-tree', '2454/'], ['binary-tree-level-order-traversal', '2455/'], ['binary-tree-zigzag-level-order-traversal', '2456/'], ['maximum-depth-of-binary-tree', '2457/'], ['construct-binary-tree-from-preorder-and-inorder-traversal', '2458/'], ['construct-binary-tree-from-inorder-and-postorder-traversal', '2459/'], ['binary-tree-level-order-traversal-ii', '2460/'], ['convert-sorted-array-to-binary-search-tree', '2461/'], ['convert-sorted-list-to-binary-search-tree', '2462/'], ['balanced-binary-tree', '2463/'], ['minimum-depth-of-binary-tree', '2473/'], ['path-sum', '2474/'], ['path-sum-ii', '2475/'], ['flatten-binary-tree-to-linked-list', '2476/'], ['distinct-subsequences', '2477/'], ['populating-next-right-pointers-in-each-node', '2478/'], ['populating-next-right-pointers-in-each-node-ii', '2479/'], ['pascals-triangle', '2480/'], ['pascals-triangle-ii', '2481/'], ['triangle', '2482/'], ['best-time-to-buy-and-sell-stock', '2483/'], ['best-time-to-buy-and-sell-stock-ii', '2484/'], ['best-time-to-buy-and-sell-stock-iii', '2485/'], ['binary-tree-maximum-path-sum', '2486/'], ['valid-palindrome', '2487/'], ['word-ladder-ii', '2488/'], ['word-ladder', '2489/'], ['longest-consecutive-sequence', '2490/'], ['sum-root-to-leaf-numbers', '2491/'], ['surrounded-regions', '2492/'], ['palindrome-partitioning', '2501/'], ['palindrome-partitioning-ii', '2502/'], ['clone-graph', '2503/'], ['gas-station', '2504/'], ['candy', '2505/'], ['single-number', '2506/'], ['single-number-ii', '2507/'], ['copy-list-with-random-pointer', '2508/'], ['word-break', '2509/'], ['word-break-ii', '2510/'], ['linked-list-cycle', '2511/'], ['linked-list-cycle-ii', '2512/'], ['reorder-list', '2513/'], ['binary-tree-preorder-traversal', '2514/'], ['binary-tree-postorder-traversal', '2515/'], ['lru-cache', '2516/'], ['insertion-sort-list', '2517/'], ['sort-list', '2518/'], ['max-points-on-a-line', '2519/'], ['evaluate-reverse-polish-notation', '2520/'], ['reverse-words-in-a-string', '2532/'], ['maximum-product-subarray', '2533/'], ['find-minimum-in-rotated-sorted-array', '2534/'], ['find-minimum-in-rotated-sorted-array-ii', '2535/'], ['min-stack', '2536/'], ['intersection-of-two-linked-lists', '2537/'], ['find-peak-element', '2538/'], ['maximum-gap', '2539/'], ['compare-version-numbers', '2540/'], ['fraction-to-recurring-decimal', '2541/'], ['two-sum-ii-input-array-is-sorted', '2542/'], ['excel-sheet-column-title', '2543/'], ['majority-element', '2544/'], ['excel-sheet-column-number', '2545/'], ['factorial-trailing-zeroes', '2546/'], ['binary-search-tree-iterator', '2547/'], ['dungeon-game', '2548/'], ['largest-number', '2549/'], ['repeated-dna-sequences', '2550/'], ['best-time-to-buy-and-sell-stock-iv', '2551/'], ['rotate-array', '2563/'], ['reverse-bits', '2564/'], ['number-of-1-bits', '2565/'], ['house-robber', '2566/'], ['binary-tree-right-side-view', '2567/'], ['number-of-islands', '2568/'], ['bitwise-and-of-numbers-range', '2569/'], ['happy-number', '2570/'], ['remove-linked-list-elements', '2571/'], ['count-primes', '2572/'], ['isomorphic-strings', '2573/'], ['reverse-linked-list', '2574/'], ['course-schedule', '2575/'], ['implement-trie-prefix-tree', '2576/'], ['minimum-size-subarray-sum', '2577/'], ['course-schedule-ii', '2578/'], ['design-add-and-search-words-data-structure', '2579/'], ['word-search-ii', '2580/'], ['house-robber-ii', '2581/'], ['shortest-palindrome', '2582/'], ['kth-largest-element-in-an-array', '2596/'], ['combination-sum-iii', '2597/'], ['contains-duplicate', '2598/'], ['the-skyline-problem', '2599/'], ['contains-duplicate-ii', '2600/'], ['contains-duplicate-iii', '2601/'], ['maximal-square', '2602/'], ['count-complete-tree-nodes', '2603/'], ['rectangle-area', '2604/'], ['basic-calculator', '2605/'], ['implement-stack-using-queues', '2606/'], ['invert-binary-tree', '2607/'], ['basic-calculator-ii', '2608/'], ['summary-ranges', '2609/'], ['majority-element-ii', '2610/'], ['kth-smallest-element-in-a-bst', '2611/'], ['power-of-two', '2612/'], ['implement-queue-using-stacks', '2613/'], ['number-of-digit-one', '2614/'], ['palindrome-linked-list', '2615/'], ['lowest-common-ancestor-of-a-binary-search-tree', '2629/'], ['lowest-common-ancestor-of-a-binary-tree', '2630/'], ['delete-node-in-a-linked-list', '2631/'], ['product-of-array-except-self', '2632/'], ['sliding-window-maximum', '2633/'], ['search-a-2d-matrix-ii', '2634/'], ['different-ways-to-add-parentheses', '2635/'], ['valid-anagram', '2636/'], ['binary-tree-paths', '2637/'], ['add-digits', '2638/'], ['single-number-iii', '2639/'], ['ugly-number', '2640/'], ['ugly-number-ii', '2641/'], ['missing-number', '2642/'], ['integer-to-english-words', '2643/'], ['h-index', '2644/'], ['h-index-ii', '2645/'], ['first-bad-version', '2646/'], ['perfect-squares', '2647/'], ['expression-add-operators', '2648/'], ['move-zeroes', '2663/'], ['peeking-iterator', '2664/'], ['find-the-duplicate-number', '2665/'], ['game-of-life', '2666/'], ['word-pattern', '2667/'], ['nim-game', '2668/'], ['find-median-from-data-stream', '2669/'], ['serialize-and-deserialize-binary-tree', '2670/'], ['bulls-and-cows', '2671/'], ['longest-increasing-subsequence', '2672/'], ['remove-invalid-parentheses', '2673/'], ['range-sum-query-immutable', '2674/'], ['range-sum-query-2d-immutable', '2675/'], ['additive-number', '2676/'], ['range-sum-query-mutable', '2677/'], ['best-time-to-buy-and-sell-stock-with-cooldown', '2678/'], ['minimum-height-trees', '2679/'], ['burst-balloons', '2680/'], ['super-ugly-number', '2681/'], ['count-of-smaller-numbers-after-self', '2682/'], ['remove-duplicate-letters', '2709/'], ['maximum-product-of-word-lengths', '2710/'], ['bulb-switcher', '2711/'], ['create-maximum-number', '2712/'], ['coin-change', '2713/'], ['wiggle-sort-ii', '2714/'], ['power-of-three', '2715/'], ['count-of-range-sum', '2716/'], ['odd-even-linked-list', '2717/'], ['longest-increasing-path-in-a-matrix', '2718/'], ['patching-array', '2719/'], ['verify-preorder-serialization-of-a-binary-tree', '2720/'], ['reconstruct-itinerary', '2721/'], ['increasing-triplet-subsequence', '2722/'], ['self-crossing', '2723/'], ['palindrome-pairs', '2724/'], ['house-robber-iii', '2725/'], ['counting-bits', '2726/'], ['flatten-nested-list-iterator', '2727/'], ['power-of-four', '2728/'], ['integer-break', '2733/'], ['reverse-string', '2734/'], ['reverse-vowels-of-a-string', '2735/'], ['top-k-frequent-elements', '2736/'], ['intersection-of-two-arrays', '2737/'], ['intersection-of-two-arrays-ii', '2738/'], ['data-stream-as-disjoint-intervals', '2739/'], ['russian-doll-envelopes', '2740/'], ['design-twitter', '2741/'], ['count-numbers-with-unique-digits', '2742/'], ['max-sum-of-rectangle-no-larger-than-k', '2743/'], ['water-and-jug-problem', '2744/'], ['valid-perfect-square', '2745/'], ['largest-divisible-subset', '2746/'], ['sum-of-two-integers', '2747/'], ['super-pow', '2748/'], ['find-k-pairs-with-smallest-sums', '2749/'], ['guess-number-higher-or-lower', '2750/'], ['guess-number-higher-or-lower-ii', '2751/'], ['wiggle-subsequence', '2752/'], ['combination-sum-iv', '2763/'], ['kth-smallest-element-in-a-sorted-matrix', '2764/'], ['insert-delete-getrandom-o1', '2765/'], ['insert-delete-getrandom-o1-duplicates-allowed', '2766/'], ['linked-list-random-node', '2767/'], ['ransom-note', '2768/'], ['shuffle-an-array', '2769/'], ['mini-parser', '2770/'], ['lexicographical-numbers', '2771/'], ['first-unique-character-in-a-string', '2772/'], ['longest-absolute-file-path', '2773/'], ['find-the-difference', '2774/'], ['elimination-game', '2775/'], ['perfect-rectangle', '2776/'], ['is-subsequence', '2777/'], ['utf-8-validation', '2778/'], ['decode-string', '2779/'], ['longest-substring-with-at-least-k-repeating-characters', '2780/'], ['rotate-function', '2781/'], ['integer-replacement', '2782/'], ['random-pick-index', '2797/'], ['evaluate-division', '2798/'], ['nth-digit', '2799/'], ['binary-watch', '2800/'], ['remove-k-digits', '2801/'], ['frog-jump', '2802/'], ['sum-of-left-leaves', '2803/'], ['convert-a-number-to-hexadecimal', '2804/'], ['queue-reconstruction-by-height', '2805/'], ['trapping-rain-water-ii', '2806/'], ['longest-palindrome', '2807/'], ['split-array-largest-sum', '2808/'], ['fizz-buzz', '2809/'], ['arithmetic-slices', '2810/'], ['third-maximum-number', '2811/'], ['add-strings', '2812/'], ['partition-equal-subset-sum', '2813/'], ['pacific-atlantic-water-flow', '2814/'], ['battleships-in-a-board', '2815/'], ['strong-password-checker', '2816/'], ['maximum-xor-of-two-numbers-in-an-array', '2819/'], ['reconstruct-original-digits-from-english', '2820/'], ['longest-repeating-character-replacement', '2821/'], ['construct-quad-tree', '2822/'], ['n-ary-tree-level-order-traversal', '2823/'], ['flatten-a-multilevel-doubly-linked-list', '2824/'], ['all-oone-data-structure', '2825/'], ['minimum-genetic-mutation', '2826/'], ['number-of-segments-in-a-string', '2827/'], ['non-overlapping-intervals', '2828/'], ['find-right-interval', '2858/'], ['path-sum-iii', '2859/'], ['find-all-anagrams-in-a-string', '2860/'], ['k-th-smallest-in-lexicographical-order', '2861/'], ['arranging-coins', '2862/'], ['find-all-duplicates-in-an-array', '2863/'], ['string-compression', '2864/'], ['add-two-numbers-ii', '2865/'], ['arithmetic-slices-ii-subsequence', '2866/'], ['number-of-boomerangs', '2867/'], ['find-all-numbers-disappeared-in-an-array', '2868/'], ['serialize-and-deserialize-bst', '2869/'], ['delete-node-in-a-bst', '2870/'], ['sort-characters-by-frequency', '2871/'], ['minimum-number-of-arrows-to-burst-balloons', '2872/'], ['minimum-moves-to-equal-array-elements', '2873/'], ['4sum-ii', '2874/'], ['assign-cookies', '2875/'], ['132-pattern', '2876/'], ['circular-array-loop', '2877/'], ['poor-pigs', '2878/'], ['repeated-substring-pattern', '2879/'], ['lfu-cache', '2880/'], ['hamming-distance', '2881/'], ['minimum-moves-to-equal-array-elements-ii', '2882/'], ['island-perimeter', '2883/'], ['can-i-win', '2884/'], ['count-the-repetitions', '2885/'], ['unique-substrings-in-wraparound-string', '2886/'], ['validate-ip-address', '2887/'], ['implement-rand10-using-rand7', '2888/'], ['concatenated-words', '2889/'], ['matchsticks-to-square', '2890/'], ['ones-and-zeroes', '2891/'], ['heaters', '2892/'], ['number-complement', '2893/'], ['total-hamming-distance', '2894/'], ['generate-random-point-in-a-circle', '2895/'], ['largest-palindrome-product', '2896/'], ['sliding-window-median', '2897/'], ['magical-string', '2908/'], ['license-key-formatting', '2909/'], ['smallest-good-base', '2910/'], ['max-consecutive-ones', '2911/'], ['predict-the-winner', '2912/'], ['zuma-game', '2913/'], ['increasing-subsequences', '2914/'], ['construct-the-rectangle', '2915/'], ['reverse-pairs', '2916/'], ['target-sum', '2917/'], ['teemo-attacking', '2918/'], ['next-greater-element-i', '2919/'], ['random-point-in-non-overlapping-rectangles', '2920/'], ['diagonal-traverse', '2921/'], ['keyboard-row', '2922/'], ['find-mode-in-binary-search-tree', '2923/'], ['ipo', '2924/'], ['next-greater-element-ii', '2925/'], ['base-7', '2926/'], ['relative-ranks', '2927/'], ['perfect-number', '2943/'], ['most-frequent-subtree-sum', '2944/'], ['fibonacci-number', '2945/'], ['find-bottom-left-tree-value', '2946/'], ['freedom-trail', '2947/'], ['find-largest-value-in-each-tree-row', '2948/'], ['longest-palindromic-subsequence', '2949/'], ['super-washing-machines', '2950/'], ['coin-change-2', '2951/'], ['random-flip-matrix', '2952/'], ['detect-capital', '2953/'], ['longest-uncommon-subsequence-i', '2954/'], ['longest-uncommon-subsequence-ii', '2955/'], ['continuous-subarray-sum', '2956/'], ['longest-word-in-dictionary-through-deleting', '2957/'], ['contiguous-array', '2958/'], ['beautiful-arrangement', '2959/'], ['random-pick-with-weight', '2960/'], ['minesweeper', '2961/'], ['minimum-absolute-difference-in-bst', '2962/'], ['k-diff-pairs-in-an-array', '3032/'], ['encode-and-decode-tinyurl', '3033/'], ['complex-number-multiplication', '3034/'], ['convert-bst-to-greater-tree', '3035/'], ['minimum-time-difference', '3036/'], ['single-element-in-a-sorted-array', '3037/'], ['reverse-string-ii', '3038/'], ['01-matrix', '3039/'], ['diameter-of-binary-tree', '3040/'], ['remove-boxes', '3041/'], ['number-of-provinces', '3042/'], ['student-attendance-record-i', '3043/'], ['student-attendance-record-ii', '3044/'], ['optimal-division', '3045/'], ['brick-wall', '3046/'], ['next-greater-element-iii', '3047/'], ['reverse-words-in-a-string-iii', '3048/'], ['logical-or-of-two-binary-grids-represented-as-quad-trees', '3049/'], ['maximum-depth-of-n-ary-tree', '3050/'], ['subarray-sum-equals-k', '3051/'], ['array-partition', '3161/'], ['binary-tree-tilt', '3162/'], ['find-the-closest-palindrome', '3163/'], ['array-nesting', '3164/'], ['reshape-the-matrix', '3165/'], ['permutation-in-string', '3166/'], ['subtree-of-another-tree', '3167/'], ['distribute-candies', '3168/'], ['out-of-boundary-paths', '3169/'], ['shortest-unsorted-continuous-subarray', '3170/'], ['delete-operation-for-two-strings', '3171/'], ['erect-the-fence', '3172/'], ['n-ary-tree-preorder-traversal', '3173/'], ['n-ary-tree-postorder-traversal', '3174/'], ['tag-validator', '3175/'], ['fraction-addition-and-subtraction', '3176/'], ['valid-square', '3177/'], ['longest-harmonious-subsequence', '3178/'], ['range-addition-ii', '3179/'], ['minimum-index-sum-of-two-lists', '3180/'], ['non-negative-integers-without-consecutive-ones', '3193/'], ['can-place-flowers', '3194/'], ['construct-string-from-binary-tree', '3195/'], ['find-duplicate-file-in-system', '3196/'], ['valid-triangle-number', '3197/'], ['merge-two-binary-trees', '3198/'], ['task-scheduler', '3199/'], ['design-circular-queue', '3200/'], ['add-one-row-to-tree', '3201/'], ['maximum-product-of-three-numbers', '3202/'], ['k-inverse-pairs-array', '3216/'], ['course-schedule-iii', '3217/'], ['smallest-range-covering-elements-from-k-lists', '3218/'], ['sum-of-square-numbers', '3219/'], ['exclusive-time-of-functions', '3220/'], ['average-of-levels-in-binary-tree', '3221/'], ['shopping-offers', '3222/'], ['decode-ways-ii', '3223/'], ['solve-the-equation', '3224/'], ['design-circular-deque', '3225/'], ['maximum-average-subarray-i', '3226/'], ['set-mismatch', '3227/'], ['maximum-length-of-pair-chain', '3228/'], ['palindromic-substrings', '3229/'], ['replace-words', '3230/'], ['dota2-senate', '3231/'], ['2-keys-keyboard', '3232/'], ['find-duplicate-subtrees', '3233/'], ['two-sum-iv-input-is-a-bst', '3234/'], ['maximum-binary-tree', '3235/'], ['print-binary-tree', '3260/'], ['robot-return-to-origin', '3261/'], ['find-k-closest-elements', '3262/'], ['split-array-into-consecutive-subsequences', '3263/'], ['image-smoother', '3264/'], ['maximum-width-of-binary-tree', '3265/'], ['strange-printer', '3266/'], ['non-decreasing-array', '3267/'], ['beautiful-arrangement-ii', '3268/'], ['kth-smallest-number-in-multiplication-table', '3269/'], ['trim-a-binary-search-tree', '3270/'], ['maximum-swap', '3271/'], ['second-minimum-node-in-a-binary-tree', '3272/'], ['bulb-switcher-ii', '3273/'], ['number-of-longest-increasing-subsequence', '3274/'], ['longest-continuous-increasing-subsequence', '3275/'], ['cut-off-trees-for-golf-event', '3276/'], ['implement-magic-dictionary', '3277/'], ['map-sum-pairs', '3278/'], ['valid-parenthesis-string', '3279/'], ['24-game', '3280/'], ['valid-palindrome-ii', '3281/'], ['baseball-game', '3282/'], ['redundant-connection', '3283/'], ['redundant-connection-ii', '3284/'], ['repeated-string-match', '3285/'], ['longest-univalue-path', '3286/'], ['knight-probability-in-chessboard', '3287/'], ['maximum-sum-of-3-non-overlapping-subarrays', '3288/'], ['employee-importance', '3289/'], ['stickers-to-spell-word', '3290/'], ['top-k-frequent-words', '3291/'], ['binary-number-with-alternating-bits', '3292/'], ['max-area-of-island', '3293/'], ['count-binary-substrings', '3294/'], ['degree-of-an-array', '3295/'], ['partition-to-k-equal-sum-subsets', '3296/'], ['falling-squares', '3297/'], ['search-in-a-binary-search-tree', '3298/'], ['insert-into-a-binary-search-tree', '3299/'], ['kth-largest-element-in-a-stream', '3300/'], ['binary-search', '3301/'], ['design-hashset', '3302/'], ['design-hashmap', '3303/'], ['design-linked-list', '3304/'], ['to-lower-case', '3305/'], ['random-pick-with-blacklist', '3306/'], ['minimum-ascii-delete-sum-for-two-strings', '3307/'], ['subarray-product-less-than-k', '3308/'], ['best-time-to-buy-and-sell-stock-with-transaction-fee', '3309/'], ['range-module', '3310/'], ['1-bit-and-2-bit-characters', '3311/'], ['maximum-length-of-repeated-subarray', '3312/'], ['find-k-th-smallest-pair-distance', '3313/'], ['longest-word-in-dictionary', '3314/'], ['accounts-merge', '3315/'], ['remove-comments', '3316/'], ['find-pivot-index', '3317/'], ['split-linked-list-in-parts', '3318/'], ['number-of-atoms', '3319/'], ['self-dividing-numbers', '3320/'], ['my-calendar-i', '3321/'], ['count-different-palindromic-subsequences', '3322/'], ['my-calendar-ii', '3323/'], ['my-calendar-iii', '3324/'], ['flood-fill', '3325/'], ['asteroid-collision', '3326/'], ['parse-lisp-expression', '3327/'], ['monotone-increasing-digits', '3328/'], ['daily-temperatures', '3329/'], ['delete-and-earn', '3330/'], ['cherry-pickup', '3331/'], ['network-delay-time', '3332/'], ['find-smallest-letter-greater-than-target', '3333/'], ['prefix-and-suffix-search', '3334/'], ['min-cost-climbing-stairs', '3339/'], ['largest-number-at-least-twice-of-others', '3335/'], ['shortest-completing-word', '3336/'], ['contain-virus', '3337/'], ['open-the-lock', '3338/'], ['cracking-the-safe', '3667/'], ['reach-a-number', '3668/'], ['pyramid-transition-matrix', '3669/'], ['set-intersection-size-at-least-two', '3670/'], ['special-binary-string', '3671/'], ['prime-number-of-set-bits-in-binary-representation', '3672/'], ['partition-labels', '3673/'], ['largest-plus-sign', '3674/'], ['couples-holding-hands', '3675/'], ['toeplitz-matrix', '3676/'], ['reorganize-string', '3677/'], ['max-chunks-to-make-sorted-ii', '3678/'], ['max-chunks-to-make-sorted', '3679/'], ['basic-calculator-iv', '3680/'], ['jewels-and-stones', '3681/'], ['sliding-puzzle', '3682/'], ['global-and-local-inversions', '3683/'], ['swap-adjacent-in-lr-string', '3684/'], ['swim-in-rising-water', '3685/'], ['k-th-symbol-in-grammar', '3686/'], ['reaching-points', '3755/'], ['rabbits-in-forest', '3756/'], ['transform-to-chessboard', '3757/'], ['minimum-distance-between-bst-nodes', '3758/'], ['letter-case-permutation', '3759/'], ['is-graph-bipartite', '3760/'], ['k-th-smallest-prime-fraction', '3761/'], ['cheapest-flights-within-k-stops', '3762/'], ['rotated-digits', '3763/'], ['escape-the-ghosts', '3764/'], ['domino-and-tromino-tiling', '3765/'], ['custom-sort-string', '3766/'], ['number-of-matching-subsequences', '3767/'], ['preimage-size-of-factorial-zeroes-function', '3768/'], ['valid-tic-tac-toe-state', '3769/'], ['number-of-subarrays-with-bounded-maximum', '3770/'], ['rotate-string', '3771/'], ['all-paths-from-source-to-target', '3772/'], ['smallest-rotation-with-highest-score', '3773/'], ['champagne-tower', '3774/'], ['minimum-swaps-to-make-sequences-increasing', '3819/'], ['find-eventual-safe-states', '3820/'], ['bricks-falling-when-hit', '3821/'], ['unique-morse-code-words', '3822/'], ['split-array-with-same-average', '3823/'], ['number-of-lines-to-write-string', '3824/'], ['max-increase-to-keep-city-skyline', '3825/'], ['soup-servings', '3826/'], ['expressive-words', '3827/'], ['chalkboard-xor-game', '3828/'], ['subdomain-visit-count', '3829/'], ['largest-triangle-area', '3830/'], ['largest-sum-of-averages', '3831/'], ['binary-tree-pruning', '3832/'], ['bus-routes', '3833/'], ['ambiguous-coordinates', '3834/'], ['linked-list-components', '3835/'], ['race-car', '3836/'], ['most-common-word', '3837/'], ['short-encoding-of-words', '3838/'], ['shortest-distance-to-a-character', '3878/'], ['card-flipping-game', '3879/'], ['binary-trees-with-factors', '3880/'], ['goat-latin', '3881/'], ['friends-of-appropriate-ages', '3882/'], ['most-profit-assigning-work', '3883/'], ['making-a-large-island', '3884/'], ['count-unique-characters-of-all-substrings-of-a-given-string', '3885/'], ['consecutive-numbers-sum', '3886/'], ['positions-of-large-groups', '3887/'], ['masking-personal-information', '3935/'], ['flipping-an-image', '3936/'], ['find-and-replace-in-string', '3937/'], ['sum-of-distances-in-tree', '3938/'], ['image-overlap', '3939/'], ['rectangle-overlap', '3940/'], ['new-21-game', '3941/'], ['push-dominoes', '3942/'], ['similar-string-groups', '3943/'], ['magic-squares-in-grid', '3944/'], ['keys-and-rooms', '3945/'], ['split-array-into-fibonacci-sequence', '3946/'], ['guess-the-word', '3947/'], ['backspace-string-compare', '3948/'], ['longest-mountain-in-array', '3949/'], ['hand-of-straights', '3950/'], ['shortest-path-visiting-all-nodes', '3951/'], ['shifting-letters', '3952/'], ['maximize-distance-to-closest-person', '3953/'], ['rectangle-area-ii', '3954/'], ['loud-and-rich', '3963/'], ['peak-index-in-a-mountain-array', '3964/'], ['car-fleet', '3965/'], ['k-similar-strings', '3966/'], ['exam-room', '3967/'], ['score-of-parentheses', '3968/'], ['minimum-cost-to-hire-k-workers', '3969/'], ['mirror-reflection', '3970/'], ['buddy-strings', '3971/'], ['lemonade-change', '3972/'], ['score-after-flipping-matrix', '3973/'], ['shortest-subarray-with-sum-at-least-k', '3974/'], ['all-nodes-distance-k-in-binary-tree', '3975/'], ['shortest-path-to-get-all-keys', '3976/'], ['smallest-subtree-with-all-the-deepest-nodes', '3977/'], ['prime-palindrome', '3978/'], ['transpose-matrix', '3979/'], ['binary-gap', '3980/'], ['reordered-power-of-2', '3981/'], ['advantage-shuffle', '3982/'], ['minimum-number-of-refueling-stops', '4008/'], ['leaf-similar-trees', '4009/'], ['length-of-longest-fibonacci-subsequence', '4010/'], ['walking-robot-simulation', '4011/'], ['koko-eating-bananas', '4012/'], ['middle-of-the-linked-list', '4013/'], ['stone-game', '4014/'], ['nth-magical-number', '4015/'], ['profitable-schemes', '4016/'], ['decoded-string-at-index', '4017/'], ['boats-to-save-people', '4018/'], ['reachable-nodes-in-subdivided-graph', '4019/'], ['projection-area-of-3d-shapes', '4020/'], ['uncommon-words-from-two-sentences', '4021/'], ['spiral-matrix-iii', '4022/'], ['possible-bipartition', '4023/'], ['super-egg-drop', '4024/'], ['fair-candy-swap', '4025/'], ['construct-binary-tree-from-preorder-and-postorder-traversal', '4026/'], ['find-and-replace-pattern', '4027/'], ['sum-of-subsequence-widths', '4126/'], ['surface-area-of-3d-shapes', '4127/'], ['groups-of-special-equivalent-strings', '4128/'], ['all-possible-full-binary-trees', '4129/'], ['maximum-frequency-stack', '4130/'], ['monotonic-array', '4131/'], ['increasing-order-search-tree', '4132/'], ['bitwise-ors-of-subarrays', '4133/'], ['orderly-queue', '4134/'], ['rle-iterator', '4135/'], ['online-stock-span', '4152/'], ['numbers-at-most-n-given-digit-set', '4153/'], ['valid-permutations-for-di-sequence', '4154/'], ['fruit-into-baskets', '4155/'], ['sort-array-by-parity', '4156/'], ['super-palindromes', '4157/'], ['sum-of-subarray-minimums', '4158/'], ['smallest-range-i', '4159/'], ['snakes-and-ladders', '4160/'], ['smallest-range-ii', '4161/'], ['online-election', '4162/'], ['sort-an-array', '4163/'], ['cat-and-mouse', '4164/'], ['x-of-a-kind-in-a-deck-of-cards', '4165/'], ['partition-array-into-disjoint-intervals', '4166/'], ['word-subsets', '4167/'], ['reverse-only-letters', '4168/'], ['maximum-sum-circular-subarray', '4169/'], ['complete-binary-tree-inserter', '4170/'], ['number-of-music-playlists', '4171/'], ['minimum-add-to-make-parentheses-valid', '4182/'], ['sort-array-by-parity-ii', '4183/'], ['3sum-with-multiplicity', '4184/'], ['minimize-malware-spread', '4185/'], ['long-pressed-name', '4186/'], ['flip-string-to-monotone-increasing', '4187/'], ['three-equal-parts', '4188/'], ['minimize-malware-spread-ii', '4189/'], ['unique-email-addresses', '4190/'], ['binary-subarrays-with-sum', '4191/'], ['minimum-falling-path-sum', '4208/'], ['beautiful-array', '4209/'], ['number-of-recent-calls', '4210/'], ['shortest-bridge', '4211/'], ['knight-dialer', '4212/'], ['stamping-the-sequence', '4213/'], ['reorder-data-in-log-files', '4214/'], ['range-sum-of-bst', '4215/'], ['minimum-area-rectangle', '4216/'], ['distinct-subsequences-ii', '4217/'], ['valid-mountain-array', '4218/'], ['di-string-match', '4219/'], ['find-the-shortest-superstring', '4220/'], ['delete-columns-to-make-sorted', '4221/'], ['minimum-increment-to-make-array-unique', '4222/'], ['validate-stack-sequences', '4223/'], ['most-stones-removed-with-same-row-or-column', '4224/'], ['bag-of-tokens', '4225/'], ['largest-time-for-given-digits', '4226/'], ['reveal-cards-in-increasing-order', '4227/'], ['flip-equivalent-binary-trees', '4239/'], ['largest-component-size-by-common-factor', '4240/'], ['verifying-an-alien-dictionary', '4241/'], ['array-of-doubled-pairs', '4242/'], ['delete-columns-to-make-sorted-ii', '4243/'], ['tallest-billboard', '4244/'], ['prison-cells-after-n-days', '4245/'], ['check-completeness-of-a-binary-tree', '4246/'], ['regions-cut-by-slashes', '4247/'], ['delete-columns-to-make-sorted-iii', '4248/'], ['n-repeated-element-in-size-2n-array', '4265/'], ['maximum-width-ramp', '4266/'], ['minimum-area-rectangle-ii', '4267/'], ['least-operators-to-express-number', '4268/'], ['univalued-binary-tree', '4269/'], ['vowel-spellchecker', '4270/'], ['numbers-with-same-consecutive-differences', '4271/'], ['binary-tree-cameras', '4272/'], ['pancake-sorting', '4273/'], ['powerful-integers', '4274/'], ['flip-binary-tree-to-match-preorder-traversal', '4275/'], ['equal-rational-numbers', '4276/'], ['k-closest-points-to-origin', '4277/'], ['subarray-sums-divisible-by-k', '4278/'], ['odd-even-jump', '4279/'], ['largest-perimeter-triangle', '4280/'], ['squares-of-a-sorted-array', '4281/'], ['longest-turbulent-subarray', '4282/'], ['distribute-coins-in-binary-tree', '4283/'], ['unique-paths-iii', '4284/'], ['time-based-key-value-store', '4306/'], ['triples-with-bitwise-and-equal-to-zero', '4307/'], ['minimum-cost-for-tickets', '4308/'], ['string-without-aaa-or-bbb', '4309/'], ['sum-of-even-numbers-after-queries', '4310/'], ['interval-list-intersections', '4311/'], ['vertical-order-traversal-of-a-binary-tree', '4312/'], ['smallest-string-starting-from-leaf', '4313/'], ['add-to-array-form-of-integer', '4314/'], ['satisfiability-of-equality-equations', '4315/'], ['broken-calculator', '5730/'], ['subarrays-with-k-different-integers', '5731/'], ['cousins-in-binary-tree', '5732/'], ['rotting-oranges', '5733/'], ['minimum-number-of-k-consecutive-bit-flips', '5734/'], ['number-of-squareful-arrays', '5735/'], ['find-the-town-judge', '5736/'], ['maximum-binary-tree-ii', '5737/'], ['available-captures-for-rook', '5738/'], ['minimum-cost-to-merge-stones', '5739/'], ['grid-illumination', '5748/'], ['find-common-characters', '5749/'], ['check-if-word-is-valid-after-substitutions', '5750/'], ['max-consecutive-ones-iii', '5751/'], ['maximize-sum-of-array-after-k-negations', '5752/'], ['clumsy-factorial', '5753/'], ['minimum-domino-rotations-for-equal-row', '5754/'], ['construct-binary-search-tree-from-preorder-traversal', '5755/'], ['complement-of-base-10-integer', '5756/'], ['pairs-of-songs-with-total-durations-divisible-by-60', '5757/'], ['capacity-to-ship-packages-within-d-days', '5778/'], ['numbers-with-repeated-digits', '5779/'], ['partition-array-into-three-parts-with-equal-sum', '5788/'], ['best-sightseeing-pair', '5789/'], ['smallest-integer-divisible-by-k', '5790/'], ['binary-string-with-substrings-representing-1-to-n', '5791/'], ['convert-to-base-2', '5792/'], ['binary-prefix-divisible-by-5', '5793/'], ['next-greater-node-in-linked-list', '5794/'], ['number-of-enclaves', '5795/'], ['remove-outermost-parentheses', '5796/'], ['sum-of-root-to-leaf-binary-numbers', '5797/'], ['camelcase-matching', '5807/'], ['video-stitching', '5808/'], ['divisor-game', '5809/'], ['maximum-difference-between-node-and-ancestor', '5810/'], ['longest-arithmetic-subsequence', '5811/'], ['recover-a-tree-from-preorder-traversal', '5812/'], ['two-city-scheduling', '5813/'], ['matrix-cells-in-distance-order', '5814/'], ['maximum-sum-of-two-non-overlapping-subarrays', '5815/'], ['stream-of-characters', '5816/'], ['moving-stones-until-consecutive', '5834/'], ['coloring-a-border', '5835/'], ['uncrossed-lines', '5836/'], ['escape-a-large-maze', '5837/'], ['valid-boomerang', '5838/'], ['binary-search-tree-to-greater-sum-tree', '5839/'], ['minimum-score-triangulation-of-polygon', '5840/'], ['moving-stones-until-consecutive-ii', '5841/'], ['robot-bounded-in-circle', '5842/'], ['flower-planting-with-no-adjacent', '5843/'], ['partition-array-for-maximum-sum', '5865/'], ['longest-duplicate-substring', '5866/'], ['last-stone-weight', '5867/'], ['remove-all-adjacent-duplicates-in-string', '5868/'], ['longest-string-chain', '5869/'], ['last-stone-weight-ii', '5870/'], ['height-checker', '5871/'], ['grumpy-bookstore-owner', '5872/'], ['previous-permutation-with-one-swap', '5873/'], ['distant-barcodes', '5874/'], ['greatest-common-divisor-of-strings', '5883/'], ['flip-columns-for-maximum-number-of-equal-rows', '5884/'], ['adding-two-negabinary-numbers', '5885/'], ['number-of-submatrices-that-sum-to-target', '5886/'], ['occurrences-after-bigram', '5887/'], ['letter-tile-possibilities', '5888/'], ['insufficient-nodes-in-root-to-leaf-paths', '5889/'], ['smallest-subsequence-of-distinct-characters', '5890/'], ['duplicate-zeros', '5891/'], ['largest-values-from-labels', '5892/'], ['shortest-path-in-binary-matrix', '5906/'], ['shortest-common-supersequence', '5907/'], ['statistics-from-a-large-sample', '5908/'], ['car-pooling', '5909/'], ['find-in-mountain-array', '5910/'], ['brace-expansion-ii', '5911/'], ['distribute-candies-to-people', '5912/'], ['path-in-zigzag-labelled-binary-tree', '5913/'], ['filling-bookcase-shelves', '5914/'], ['parsing-a-boolean-expression', '5915/'], ['defanging-an-ip-address', '5928/'], ['corporate-flight-bookings', '5929/'], ['delete-nodes-and-return-forest', '5930/'], ['maximum-nesting-depth-of-two-valid-parentheses-strings', '5931/'], ['relative-sort-array', '5932/'], ['lowest-common-ancestor-of-deepest-leaves', '5933/'], ['longest-well-performing-interval', '5934/'], ['smallest-sufficient-team', '5935/'], ['number-of-equivalent-domino-pairs', '5936/'], ['shortest-path-with-alternating-colors', '5937/'], ['minimum-cost-tree-from-leaf-values', '6960/'], ['maximum-of-absolute-value-expression', '6961/'], ['n-th-tribonacci-number', '6962/'], ['alphabet-board-path', '6963/'], ['largest-1-bordered-square', '6964/'], ['stone-game-ii', '6965/'], ['longest-common-subsequence', '6966/'], ['decrease-elements-to-make-array-zigzag', '6967/'], ['binary-tree-coloring-game', '6968/'], ['snapshot-array', '6969/'], ['longest-chunked-palindrome-decomposition', '6970/'], ['day-of-the-year', '6984/'], ['number-of-dice-rolls-with-target-sum', '6985/'], ['swap-for-longest-repeated-character-substring', '6986/'], ['online-majority-element-in-subarray', '6987/'], ['find-words-that-can-be-formed-by-characters', '6988/'], ['maximum-level-sum-of-a-binary-tree', '6989/'], ['as-far-from-land-as-possible', '6990/'], ['last-substring-in-lexicographical-order', '6991/'], ['invalid-transactions', '6992/'], ['compare-strings-by-frequency-of-the-smallest-character', '6993/'], ['remove-zero-sum-consecutive-nodes-from-linked-list', '6994/'], ['dinner-plate-stacks', '6995/'], ['prime-arrangements', '6996/'], ['can-make-palindrome-from-substring', '6997/'], ['number-of-valid-words-for-each-puzzle', '6998/'], ['distance-between-bus-stops', '6999/'], ['day-of-the-week', '7000/'], ['maximum-subarray-sum-with-one-deletion', '7001/'], ['make-array-strictly-increasing', '7002/'], ['maximum-number-of-balloons', '7003/'], ['reverse-substrings-between-each-pair-of-parentheses', '7019/'], ['k-concatenation-maximum-sum', '7020/'], ['critical-connections-in-a-network', '7021/'], ['minimum-absolute-difference', '7022/'], ['ugly-number-iii', '7023/'], ['smallest-string-with-swaps', '7024/'], ['sort-items-by-groups-respecting-dependencies', '7025/'], ['design-skiplist', '7026/'], ['unique-number-of-occurrences', '7027/'], ['get-equal-substrings-within-budget', '7028/'], ['remove-all-adjacent-duplicates-in-string-ii', '7053/'], ['minimum-moves-to-reach-target-with-rotations', '7054/'], ['minimum-cost-to-move-chips-to-the-same-position', '7055/'], ['longest-arithmetic-subsequence-of-given-difference', '7056/'], ['path-with-maximum-gold', '7057/'], ['count-vowels-permutation', '7058/'], ['split-a-string-in-balanced-strings', '7059/'], ['queens-that-can-attack-the-king', '7060/'], ['dice-roll-simulation', '7061/'], ['maximum-equal-frequency', '7062/'], ['airplane-seat-assignment-probability', '7074/'], ['check-if-it-is-a-straight-line', '7075/'], ['remove-sub-folders-from-the-filesystem', '7076/'], ['replace-the-substring-for-balanced-string', '7077/'], ['maximum-profit-in-job-scheduling', '7078/'], ['find-positive-integer-solution-for-a-given-equation', '7079/'], ['circular-permutation-in-binary-representation', '7080/'], ['maximum-length-of-a-concatenated-string-with-unique-characters', '7081/'], ['tiling-a-rectangle-with-the-fewest-squares', '7082/'], ['minimum-swaps-to-make-strings-equal', '7083/'], ['count-number-of-nice-subarrays', '7100/'], ['minimum-remove-to-make-valid-parentheses', '7101/'], ['check-if-it-is-a-good-array', '7102/'], ['cells-with-odd-values-in-a-matrix', '7103/'], ['reconstruct-a-2-row-binary-matrix', '7104/'], ['number-of-closed-islands', '7105/'], ['maximum-score-words-formed-by-letters', '7106/'], ['shift-2d-grid', '7107/'], ['find-elements-in-a-contaminated-binary-tree', '7108/'], ['greatest-sum-divisible-by-three', '7109/'], ['minimum-moves-to-move-a-box-to-their-target-location', '7163/'], ['minimum-time-visiting-all-points', '7164/'], ['count-servers-that-communicate', '7165/'], ['search-suggestions-system', '7166/'], ['number-of-ways-to-stay-in-the-same-place-after-some-steps', '7167/'], ['find-winner-on-a-tic-tac-toe-game', '7168/'], ['number-of-burgers-with-no-waste-of-ingredients', '7169/'], ['count-square-submatrices-with-all-ones', '7170/'], ['palindrome-partitioning-iii', '7171/'], ['subtract-the-product-and-sum-of-digits-of-an-integer', '7172/'], ['group-the-people-given-the-group-size-they-belong-to', '7191/'], ['find-the-smallest-divisor-given-a-threshold', '7192/'], ['minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix', '7193/'], ['iterator-for-combination', '7194/'], ['element-appearing-more-than-25-in-sorted-array', '7195/'], ['remove-covered-intervals', '7196/'], ['minimum-falling-path-sum-ii', '7197/'], ['convert-binary-number-in-a-linked-list-to-integer', '7198/'], ['sequential-digits', '7199/'], ['maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold', '7200/'], ['shortest-path-in-a-grid-with-obstacles-elimination','7268/'],['find-numbers-with-even-number-of-digits','7269/'],['divide-array-in-sets-of-k-consecutive-numbers','7270/'],['maximum-number-of-occurrences-of-a-substring','7271/'],['maximum-candies-you-can-get-from-boxes','7272/'],['replace-elements-with-greatest-element-on-right-side','7273/'],['sum-of-mutated-array-closest-to-target','7274/'],['number-of-paths-with-max-score','7275/'],['deepest-leaves-sum','7276/'],['find-n-unique-integers-sum-up-to-zero','7277/'],['all-elements-in-two-binary-search-trees','7314/'],['jump-game-iii','7315/'],['verbal-arithmetic-puzzle','7316/'],['decrypt-string-from-alphabet-to-integer-mapping','7317/'],['xor-queries-of-a-subarray','7318/'],['get-watched-videos-by-your-friends','7319/'],['minimum-insertion-steps-to-make-a-string-palindrome','7320/'],['decompress-run-length-encoded-list','7321/'],['matrix-block-sum','7322/'],['sum-of-nodes-with-even-valued-grandparent','7323/'],['distinct-echo-substrings','7377/'],['convert-integer-to-the-sum-of-two-no-zero-integers','7378/'],['minimum-flips-to-make-a-or-b-equal-to-c','7379/'],['number-of-operations-to-make-network-connected','7380/'],['minimum-distance-to-type-a-word-using-two-fingers','7381/'],['maximum-69-number','7382/'],['print-words-vertically','7383/'],['delete-leaves-with-a-given-value','7384/'],['minimum-number-of-taps-to-open-to-water-a-garden','7385/'],['break-a-palindrome','7386/'],['sort-the-matrix-diagonally','7432/'],['reverse-subarray-to-maximize-array-value','7433/'],['rank-transform-of-an-array','7434/'],['remove-palindromic-subsequences','7435/'],['filter-restaurants-by-vegan-friendly-price-and-distance','7436/'],['find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance','7437/'],['minimum-difficulty-of-a-job-schedule','7438/'],['the-k-weakest-rows-in-a-matrix','7439/'],['reduce-array-size-to-the-half','7440/'],['maximum-product-of-splitted-binary-tree','7441/'],['jump-game-v','7442/'],['number-of-steps-to-reduce-a-number-to-zero','7458/'],['number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold','7459/'],['angle-between-hands-of-a-clock','7460/'],['jump-game-iv','7461/'],['check-if-n-and-its-double-exist','7462/'],['minimum-number-of-steps-to-make-two-strings-anagram','7463/'],['tweet-counts-per-frequency','7464/'],['maximum-students-taking-exam','7465/'],['count-negative-numbers-in-a-sorted-matrix','7466/'],['product-of-the-last-k-numbers','7467/'],['maximum-number-of-events-that-can-be-attended','7468/'],['construct-target-array-with-multiple-sums','7469/'],['sort-integers-by-the-number-of-1-bits','7470/'],['apply-discount-every-n-orders','7471/'],['number-of-substrings-containing-all-three-characters','7472/']]);		
		
		function addLink(url) {
			let title = "";
			let parts = url.split('/');
			let problemsIndex = parts.indexOf('problems');
			if (problemsIndex !== -1 && problemsIndex + 1 < parts.length) { // get title from url
				title = parts[problemsIndex + 1];
			}
			
			let newHref = title2URL.get(title);
			if (newHref == null || newHref == "undefined") newHref = "#";
			else newHref = urlPrefix + newHref;
			console.log(newHref);

			if (newHref !== "#") {
				// 创建新的 Tab 按钮
				var newTabButtonHtml = '<div class="acwing-btn flexlayout__tab_button flexlayout__tab_button--unselected" style=""><img class="relative" src="https://www.acwing.com/static/web/img/favicon.ico" alt="AcWing Icon" style="width: 20px; height: 20px;"><a id="acwing-leetcode-link" target="_blank" href="'+ newHref +'">AcWing</a></div>';

				// 查询现有的AcWing按钮元素
				var acwingBtnDiv = document.querySelector('.acwing-btn');

				if (acwingBtnDiv) {
					// 如果存在则替换现有元素
					acwingBtnDiv.outerHTML = newTabButtonHtml; // 替换现有元素的HTML
				} else {
					// 如果不存在则添加新元素
					var newTabButton = document.createElement('div');
					newTabButton.innerHTML = newTabButtonHtml;
					document.querySelector('.flex .items-start .gap-2').appendChild(newTabButton);
				}
			}

		}

		$(document).ready(function() {
			setTimeout(function() {
				addLink(url);

				// 下一题设置点击监听事件
				var svgRightElement = $('svg.fa-chevron-right');
				if (svgRightElement.length > 0) {
					svgRightElement.on('click', function() {
						setTimeout(function() {
							addLink(window.location.href);
						}, 2000);
					});
				} else {
					console.error("SVG element with class 'fa-chevron-right' not found");
				}

				// 上一题设置点击监听事件
				var svgLeftElement = $('svg.fa-chevron-left');
				if (svgLeftElement.length > 0) {
					svgLeftElement.on('click', function() {
						setTimeout(function() {
							addLink(window.location.href);
						}, 2000);
					});
				} else {
					console.error("SVG element with class 'fa-chevron-left' not found");
				}
			}, 1500);
		});
		return;
	}

	if (url.includes("code") || url.includes("solution/content") || url.includes("blog/content") || url.includes("community/content") || url.includes("file_system/file")) {
		if (url.includes("file_system/file") && url.includes("application")) return; // 应用页面不展示 TOC
		// 插入复制代码按钮,并设置位置
        $(".hljs").each(function() {
			$(this).before(
			  "<button class='copyCodeBtn' class='btn default'><span class='glyphicon glyphicon-file'></span></button>"
			);
		});

		// $(".copyCodeBtn").css("position", "absolute");
		// $(".copyCodeBtn").css("top", "10px");
		// $(".copyCodeBtn").css("right", "10px");
		// 去除按钮默认样式
		$(".copyCodeBtn").css("border", "none");
		$(".copyCodeBtn").css("background-color", "transparent");
		$(".copyCodeBtn").css("outline", "none");

        turndownService.addRule('strikethrough', {
                filter: ['pre'],
                replacement: function (content) {
                    return '' + content.trim() + ""
                }
            });
		// 为按钮绑定点击事件
		$(".copyCodeBtn").click(function() {
            let target = $(this).next();
            // console.log($(target).html());
            target.markdown = turndownService.turndown($(target)[0].outerHTML);
            GM_setClipboard(target.markdown);
            $(this).text("已复制到剪贴板");
          });
		
		  const containerStyle = 'position: fixed;width: 260px;max-height:calc(100vh - 100px);top: 80px;right: 15px;font-size: 14px;border-radius: 5px;background: #fff;overflow-y:auto;padding-left:10px;';
		  const containerSwitchStyle = 'position: fixed;width: 260px;max-height:calc(100vh - 100px);top: 60px;right: 15px;font-size: 14px;border-radius: 5px;overflow-y:auto;padding-left:10px;';
		  document.body.insertAdjacentHTML('beforeend', `<span style="${containerSwitchStyle}" id="switch-toc-span" data-value="on"><span class="glyphicon glyphicon-eject"></span>&nbsp;&nbsp;<b>TOC</b></span><div style="${containerStyle}" id="toc"></div>`);
		  const tocContainer = document.getElementById('toc');

		  // Retrieve all heading elements from the HTML page
		  const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
		  
		  // Create a tree-like structure with each heading as a node
		  // let toc = '<ul>';
		  let toc = '';
		  let currentLevel = 1;
		  
		  let last_id = 0;
		  headings.forEach((heading, index) => {
			if (index === 0) return false; // 跳过页面的第一个二级大标题(题解名称)
			const title = heading.textContent;
			const id = `heading_${index}`;

			// 遍历到「评论」二级标题,后面的跳过遍历
			if (title.includes("评论")) {
				last_id = id;
				return false;
			}
			if (id > last_id) return false;

			// Ensure all headings have an ID
			if (!heading.id) {
			  heading.id = id;
			}
		  
			const level = parseInt(heading.tagName[1]);
		  
			if (level === currentLevel) {
			  toc += `</li><li data-id="${id}"><a href="#${id}">${title}</a>`;
			} else if (level > currentLevel) {
			  toc += `<ul><li data-id="${id}"><a href="#${id}">${title}</a>`;
			} else {
			  toc += '</li>'.repeat(currentLevel - level) + `</ul></li><li data-id="${id}"><a href="#${id}">${title}</a>`;
			}
		  
			currentLevel = level;
		  });
		  
		  // Close any open tags
		  if (currentLevel > 1) {
			toc += '</li>'.repeat(currentLevel - 1) + '</ul>';
		  } else {
			// toc += '</li></ul>';
			toc += '</li>';
		  }
		  
		  // Attach the generated TOC to the HTML page
		  tocContainer.innerHTML = toc;
		  
		  // Add click event listener to each TOC node
		  const tocNodes = tocContainer.querySelectorAll('li[data-id]');
		  // prevent the behavior for recusive scrolling until first tilte
		  var isAnimating = false;
		  tocNodes.forEach((node) => {
			node.addEventListener('click', (event) => {
			  if (isAnimating) {
				return;
			  }
			  event.preventDefault();
			  const id = event.currentTarget.dataset.id;
			  console.log(id);
			  const targetHeading = document.getElementById(id);
			  isAnimating = true;
			  		
			  if (targetHeading) {
				$('html, body').animate({
					scrollTop: $(targetHeading).offset().top - 75
				}, 500, function() {
					isAnimating = false;
				});
			  }
			});
		  });

		  // 点击 TOC 按钮显示和隐藏导航
		  $("#switch-toc-span").click(function() {
			// 获取 TOC 的状态
			var toc_status = $("#switch-toc-span").data("value");
			if (toc_status === "on") { // 隐藏 TOC
				$("#toc").hide();
				$("#switch-toc-span").data('value', 'off');
				$("#switch-toc-span").html('<span class="glyphicon glyphicon-chevron-right"></span>&nbsp;&nbsp;<b>TOC</b></span>');
			} else { // 显示 TOC
				$("#toc").show();
				$("#switch-toc-span").data('value', 'on');
				$("#switch-toc-span").html('<span class="glyphicon glyphicon-eject"></span>&nbsp;&nbsp;<b>TOC</b></span>');
			}
		  })

		return;
	}

	// 拦截以 ? 结尾的路径直接打开题目
	if (url.endsWith("?")) {
		// alert(url);
		// alert($(".label-info").get(0).href);
		location.href = $(".label-info").get(0).href;
		return;
	}

	// 在题目内容页面添加在当前页面打开题目按钮
	if (url.includes("activity/content/problem/content")) {
		var gotoHref = $(".label-info").get(0).href;
		// console.log(gotoHref);
		var gotoA = '&nbsp;&nbsp;&nbsp;&nbsp;<a href=' + gotoHref + ' title="跳转" one-link-mark="yes"><span class="glyphicon glyphicon-share-alt"></span></a></a>';
		$(".label-info").after(gotoA);
		return;
	}

	// 获取所有的打卡题目,并添加直达题目按钮
	if (url.includes("punch_the_clock") || url.includes("activity")) {
		$(".punch-line").each(function () {
			var gotoHref = $(this).children("a").get(0).href + '?';
			// console.log(gotoHref);
			var gotoA = '<a href=' + gotoHref + ' title="跳转" target="_blank" one-link-mark="yes"><span class="glyphicon glyphicon-share-alt"></span></a></a>';
			$(this).append(gotoA);
		});
		return;
	}

	// 题目页面的相关功能
	if (url.includes("problem/content")) {
		/* 隐藏桌面文件夹 */
		if (isShowFolder) {
			$("div.file-explorer-main-field-item-desktop").hide();
		} else {
			$("div.file-explorer-main-field-item-desktop").show();
		}

		/* 一键填写样例功能 start */
		GM_addStyle(`
			.fillSmapleBtn {
				background-color: #5cb85c; /* 设置按钮背景颜色 */
				border: none; /* 去除边框 */
				color: white; /* 设置文字颜色 */
				text-align: center; /* 文字居中 */
				text-decoration: none; /* 去除下划线 */
				display: inline-block; /* 将按钮显示为行内元素 */
				font-size: 13px; /* 设置字体大小 */
				cursor: pointer; /* 鼠标悬停样式 */
				border-radius: 4px; /* 圆角设置 */
				transition-duration: 0.4s; /* 过渡动画时间 */
			}
			.fillSmapleBtn:hover {
				background-color: #3e8e41; /* 设置鼠标悬停时的背景颜色 */
				text: 填入样例;
			}
			.fillSmapleBtn:hover::after {
				content: " 填入样例"; /* 悬停时显示的文本 */
			}
		`)

		// 获取包含样例两个字的 <h4>
		var sz = $(".hljs").length;
		// 插入填入样例按钮,并设置位置
		$('h4:contains("输入样例")').filter(function() {
			return $(this).text().includes("输入样例");
		}).each(function() {
			$(this).after(
				"<button class='fillSmapleBtn'><span class='glyphicon glyphicon-arrow-down'></span></button>"
			);
		});
		$('h4:contains("样例输入")').filter(function() {
			return $(this).text().includes("样例输入");
		}).each(function() {
			$(this).after(
				"<button class='fillSmapleBtn'><span class='glyphicon glyphicon-arrow-down'></span></button>"
			);
		});

		turndownService.addRule('strikethrough', {
				filter: ['pre'],
				replacement: function (content) {
					return '' + content.trim() + ""
				}
			});

		// Auto resize input textarea height when user clicks fill smaple button.
		function autoResizeTextarea(textarea) {
			$(textarea).css('height', 'auto'); // Reset the height
			$(textarea).css('height', textarea.scrollHeight + 'px'); // Set the new height based on the content
		}

		// 为填入样例按钮绑定点击事件
		$(".fillSmapleBtn").click(function() {
			let target = $(this).next();
			target.markdown = turndownService.turndown($(target)[0].outerHTML);
			GM_setClipboard(target.markdown);
			// $(this).text("已复制到剪贴板");
			$("#run-code-stdin").val(target.markdown);
			autoResizeTextarea($('#run-code-stdin')[0]); // Call the autoResizeTextarea function with the DOM element
			// 当页面风格为 vertical 时才生效
			if (page_style == "vertical") {
				// 页面滑动到调试按钮位置
				$('html, body').animate({
					scrollTop: $("#submit_code_btn").offset().top
				}, 500);
			}
		});
		/* 一键填写样例功能 end */

		// 添加复制按钮
		console.log("acwing helper...");
		var copyBtn = document.createElement("button"); //创建一个 input 对象(提示框按钮)
		copyBtn.id = "copyBtn";
		copyBtn.textContent = "复制";
		copyBtn.style.width = "50px";
		copyBtn.style.height = "30px";
		copyBtn.style.align = "center";

		var x = document.getElementsByClassName("problem-content-sub-btn")[0];
		// 在浏览器控制台可以查看所有函数,ctrl+shift+I 调出控制台,在 Console 窗口进行实验测试
		x.appendChild(copyBtn);

		var page_style = "vertical";
		// 添加切换按钮
		$("#open_ac_saber_btn").after('<input name="switchBtn" type="checkbox" checked>');
		// name 值和 input 标签的 name 值一样
		$("[name='switchBtn']").bootstrapSwitch({
			onText : "Right",      // 设置ON文本
			offText : "Bottom&nbsp;&nbsp;",    // 设置OFF文本
			onColor : "success",// 设置ON文本颜色(info/success/warning/danger/primary)
			offColor : "info",  // 设置OFF文本颜色 (info/success/warning/danger/primary)
			size : "normal",    // 设置控件大小,从小到大  (mini/small/normal/large)
			// 当开关状态改变时触发
			onSwitchChange : function(event, state) {
				if (state == true){
					page_style = "vertical";
					if (isPageStyle) localStorage.setItem("page_style", page_style);
					setTimeout(() => window.location.reload(), 100);
				} else {
					page_style = "horizontal";
					switchPageStyle();
					if (isPageStyle) localStorage.setItem("page_style", page_style);
				}
			}
		});
		$(".bootstrap-switch-on").css("top", "10px");
		$(".bootstrap-switch-on").css("left", "10px");

		// 如果开启了记住页面风格功能,每次先从 localStorage 中读取 page_style
		if (isPageStyle) {
			if (localStorage.getItem("page_style") != null) {
				page_style = localStorage.getItem("page_style");
				if (page_style == "horizontal") {
					$("[name='switchBtn']").click();
				}
			} else {
				localStorage.setItem("page_style", page_style);
			}
		} else {
			page_style = localStorage.getItem("page_style");
			if (page_style == null) page_style = "vertical";
			localStorage.removeItem("page_style"); // 拿到当前的页面风格值后先删除再判断
			if (page_style == "horizontal") {
				$("[name='switchBtn']").click();
			}
		}
		// console.log(page_style);

		// 添加生成题解按钮
		var generateSolutionBtn = document.createElement("button"); // 创建一个input对象(提示框按钮)
		generateSolutionBtn.id = "generateSolutionBtn";
		generateSolutionBtn.textContent = "生成";
		generateSolutionBtn.style.width = "50px";
		generateSolutionBtn.style.height = "30px";
		generateSolutionBtn.style.align = "center";

		var y = document.getElementsByClassName("problem-content-sub-btn")[3];
		y.appendChild(generateSolutionBtn);

		// 监听键盘按键,为功能绑定快捷键
		unsafeWindow.addEventListener("keydown", (evt) => {
			// console.log('evt', evt);
			if (evt.altKey) {
				// Alt + T 复制题目
				if (evt.keyCode == 84) {
					copy();
				}
				// Alt + S 切换页面风格
				if (evt.keyCode == 83) {
					$("[name='switchBtn']").click();
				}
				// Alt + C 生成当前题目题解模板
				if (evt.keyCode == 67) {
					generateSolution();
				}
			}
			// F9 调试代码
			if (evt.keyCode == 120) {
				debugCode();
			}
			// F10 提交代码
			if (evt.keyCode == 121) {
				submitCode();
			}

			if (evt.keyCode == 119) {
				win = window.open();  //打开新的空白窗口
	win.document.write ("<h1>这是新打开的窗口</h1>");  //在新窗口中输出提示信息
	win.focus ();  //让原窗口获取焦点
	win.opener.document.write ("<h1>这是原来窗口</h1>");  //在原窗口中输出提示信息
	console.log(win.opener == window);  //检测window.opener属性值
			}
		});

		// 注入右键菜单
		// GM_registerMenuCommand("复制 AcWing 题目为 Markdown,并存入剪切板", copy);
		// GM_registerMenuCommand("切换页面风格", function(){$("[name='switchBtn']").click()});
		// GM_registerMenuCommand("生成当前题目的题解模板,并存入剪切板", generateSolution);

		// 为复制按钮绑定点击功能
		copyBtn.onclick = function (e) {
			e.preventDefault();
			copy();
		};

		// 为复制题解按钮绑定按键点击功能
		generateSolutionBtn.onclick = function (e) {
			e.preventDefault();
			generateSolution();
		};
	}

	// 题目复制功能实现
	function copy() {
		copyImpl();
		swal({
			icon: "success",
			title: "复制成功",
		});
	}

	function copyImpl() {
		// 内容 Dom
		var contentDom = $(".section-martor")[0].outerHTML;
		// 将题目描述 html 转换为 markdown
		content = handleHtml(contentDom);
		var str =
			content/* +
			"\n" +
			"来源:AcWing\n" +
			"链接:" +
			window.location.href +
			"\n" +
			"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"*/;
		GM_setClipboard(str);
	}

	// 切换页面风格功能实现
	function switchPageStyle() {
		$(".col-sm-3").attr("id", "right");
		$(".col-sm-9").append($(".table-responsive"));
		$(".col-sm-9").attr("class", "col-sm-5 col-xs-12");
		$(".col-sm-3").attr("class", "col-sm-7");
		// $(".container").css("width", "1430px");
		$(".container").css("width", "100%");
		$("#right").html("");
		$("#right").append($("#code_tool_bar"));
		$("#right").append($("#code_editor"));
		$("#right").append($("#data-augmentation-div"));
		$("#right").append($("#submit_code_btn"));
		$("#right").append($("#run_code_btn"));
		$("#right").append($("#submit-code-status-block"));
		$("#right").append($("#run-code-status-block"));

		// 在 LeetCode 页面风格下不显示桌面文件夹
		$("div.file-explorer-main-field-item-desktop").hide();
	}

	// @Deprecated 复制代码功能实现
	function copyCode() {
		turndownService.addRule('pre', {
			filter: 'pre',
			replacement: function (content) {
			  return "\n" + content.trim() + "\n";
			}
		  });

		let target = $("div[data-tab='preview-tab-content']");
		console.log(target.html());
		target.markdown = turndownService.turndown($(target).html());
		GM_setClipboard(target.markdown);
		swal({
			icon: "success",
			title: "复制成功",
		});
	}

	// 生成题解功能实现
	function generateSolution() {
		generateSolutionImpl();
		swal({
			icon: "success",
			title: "生成成功",
		});
	}

	function generateSolutionImpl() {
		var solutionTemplate = "";
		var problemDescConst = "### 题目描述\n";
		copyImpl();
		var problemDesc = content;
		var splitLine = "\n\n---\n";
		var algorithmConst = "### 算法\n"
		var specificAlgorithmConst = "#### (暴力枚举)  $O(n^2)$";
		var solution = "\n\nwrite here...\n\n"
		var timeComplexityConst = "#### 时间复杂度";
		var timeComplexity = "\n\nwrite here...\n\n"
		var spaceComplexityConst = "#### 空间复杂度";
		var spaceComplexity = "\n\nwrite here...\n\n";
		var codeConst = "#### C++ 代码\n";
		var code = "```\n" + "my code...\n" + "```";
		solutionTemplate = problemDescConst + problemDesc + splitLine + algorithmConst + specificAlgorithmConst +
			solution + timeComplexityConst + timeComplexity + spaceComplexityConst + spaceComplexity + codeConst + code;
		GM_setClipboard(solutionTemplate);
	}

	// 调试代码
	function debugCode() {
		$("#run_code_btn").click();
	}

	// 提交代码
	function submitCode() {
		$("#submit_code_btn").click();
	}

	/**
	 * html 转 markdown
	 * @param html
	 * @returns {void|*}
	 */
	function handleHtml(html) {
		// 处理数学公式
		turndownService.addRule("strikethrough", {
			filter: ["script"],
			replacement: function (content) {
				content = content.replace(/\\\\/g, "\\"); 
				content = content.replace(/\\_/g, "_");
				content = content.replace(/\\\[/g, "[");
				content = content.replace(/\\\]/g, "]");
				content = content.replace(/\\-/g, "-");
				return "$" + content + "$";
			},
		});
		// 添加自定义规则删除 class 为 MathJax 的 span 标签
		turndownService.addRule('delete-MathJax-span', {
			filter: function (node) {
			return node.nodeName === 'SPAN' && node.classList.contains('MathJax');
			},
			replacement: function (content, node, options) {
				return '';
			}
		});

		turndownService.addRule("pre", {
			filter: ["pre"],
			replacement: function (content) {
				return "\n```\n" + content + "```\n";
			},
		});

		var markdown = turndownService.turndown(html);
		return markdown;
	}
})();