koishi-plugin-warframe 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +71 -34
  2. package/lib/index.d.ts +54 -54
  3. package/lib/index.js +1597 -1640
  4. package/package.json +3 -2
package/lib/index.js CHANGED
@@ -1204,10 +1204,14 @@ __export(index_exports, {
1204
1204
  name: () => name
1205
1205
  });
1206
1206
  module.exports = __toCommonJS(index_exports);
1207
- var import_koishi = require("koishi");
1207
+ var import_koishi2 = require("koishi");
1208
1208
 
1209
1209
  // src/services/wfm-service.ts
1210
- var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
1210
+ var import_warframe_public_export_plus = require("warframe-public-export-plus");
1211
+
1212
+ // src/utils/logger.ts
1213
+ var import_koishi = require("koishi");
1214
+ var logger = new import_koishi.Logger("koishi-plugin-warframe");
1211
1215
 
1212
1216
  // src/utils/time.ts
1213
1217
  var toTimeStamp = /* @__PURE__ */ __name((timeStr) => {
@@ -1372,75 +1376,36 @@ function tokenSimilarity(a, b) {
1372
1376
  __name(tokenSimilarity, "tokenSimilarity");
1373
1377
 
1374
1378
  // src/utils/http.ts
1375
- var fetchAsyncText = /* @__PURE__ */ __name(async (url, method = "GET") => {
1376
- const response = await fetch(url, {
1377
- method,
1378
- headers: {
1379
- "Content-Type": "application/json",
1380
- Language: "zh-hans"
1381
- }
1382
- });
1383
- if (!response.ok) {
1384
- throw new Error("Network response was not ok.");
1385
- }
1386
- try {
1387
- return await response.text();
1388
- } catch (error) {
1389
- if (error instanceof Error) {
1390
- console.log(error.message);
1391
- console.log(error.stack);
1392
- } else {
1393
- console.log("未知错误", error);
1394
- }
1395
- return void 0;
1396
- }
1397
- }, "fetchAsyncText");
1398
- var fetchAsyncData = /* @__PURE__ */ __name(async (url, method = "GET") => {
1399
- const response = await fetch(url, {
1400
- method,
1401
- headers: {
1402
- "Content-Type": "application/json",
1403
- Language: "zh-hans"
1404
- }
1405
- });
1406
- if (!response.ok) {
1407
- throw new Error("Network response was not ok.");
1408
- }
1409
- try {
1410
- return await response.json();
1411
- } catch (error) {
1412
- if (error instanceof Error) {
1413
- console.log(error.message);
1414
- console.log(error.stack);
1415
- } else {
1416
- console.log("未知错误", error);
1417
- }
1418
- return void 0;
1419
- }
1420
- }, "fetchAsyncData");
1421
- var fetchAsyncImage = /* @__PURE__ */ __name(async (url, method = "GET") => {
1422
- const response = await fetch(url, {
1423
- method,
1424
- headers: {
1425
- "Content-Type": "image/png",
1426
- "response-type": "blob"
1427
- }
1428
- });
1429
- if (!response.ok) {
1430
- throw new Error("Network response was not ok.");
1431
- }
1379
+ var import_ofetch = require("ofetch");
1380
+ var defaultHeaders = {
1381
+ Accept: "text/html,application/json;q=0.9,image/*;q=0.8,*/*;q=0.8",
1382
+ "Accept-Language": "zh-CN,zh-Hans;q=0.9",
1383
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
1384
+ Language: "zh-hans"
1385
+ };
1386
+ async function request(url, method, responseType) {
1432
1387
  try {
1433
- return await response.blob();
1434
- } catch (error) {
1435
- if (error instanceof Error) {
1436
- console.log(error.message);
1437
- console.log(error.stack);
1438
- } else {
1439
- console.log("未知错误", error);
1440
- }
1388
+ return await (0, import_ofetch.ofetch)(url, {
1389
+ method,
1390
+ headers: defaultHeaders,
1391
+ responseType,
1392
+ timeout: 1e4,
1393
+ retry: 3,
1394
+ retryDelay: 500,
1395
+ retryStatusCodes: [408, 429, 500, 502, 503, 504]
1396
+ });
1397
+ } catch (err) {
1398
+ const e = err;
1399
+ const status = e.statusCode ?? "Network";
1400
+ const detail = e.data && typeof e.data === "object" ? JSON.stringify(e.data) : e.data ?? e.message ?? "";
1401
+ logger.error(`[HTTP] ${method} ${url} -> ${status} ${detail}`.trimEnd());
1441
1402
  return void 0;
1442
1403
  }
1443
- }, "fetchAsyncImage");
1404
+ }
1405
+ __name(request, "request");
1406
+ var fetchAsyncText = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "text"), "fetchAsyncText");
1407
+ var fetchAsyncData = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "json"), "fetchAsyncData");
1408
+ var fetchAsyncImage = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "blob"), "fetchAsyncImage");
1444
1409
 
1445
1410
  // src/utils/collection.ts
1446
1411
  var listToDict = /* @__PURE__ */ __name((dict, predict) => {
@@ -1478,986 +1443,147 @@ var hexToRgb = /* @__PURE__ */ __name((hex) => {
1478
1443
  }, "hexToRgb");
1479
1444
  var rgbToHex = /* @__PURE__ */ __name((r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`, "rgbToHex");
1480
1445
 
1481
- // src/utils/translation.ts
1482
- var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
1483
-
1484
- // src/utils/wf-export-adapter.ts
1485
- var import_warframe_public_export_plus = require("warframe-public-export-plus");
1486
- var regionToShort = /* @__PURE__ */ __name((region, dict) => {
1487
- let faction;
1488
- if (region.faction) {
1489
- const name2 = import_warframe_public_export_plus.ExportFactions[region.faction].name;
1490
- if (name2) {
1491
- faction = dict[name2];
1492
- }
1493
- }
1494
- if (!faction) {
1495
- faction = region.faction;
1446
+ // src/infrastructure/wfm/wfm-api.ts
1447
+ var wfmApiV1Base = "https://api.warframe.market/v1/";
1448
+ var wfmApiV2Base = "https://api.warframe.market/v2/";
1449
+ var getWFMItemList = /* @__PURE__ */ __name(async () => {
1450
+ const response = await fetchAsyncData(
1451
+ `${wfmApiV2Base}items`
1452
+ );
1453
+ return response?.data;
1454
+ }, "getWFMItemList");
1455
+ var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
1456
+ const response = await fetchAsyncData(
1457
+ `${wfmApiV1Base}items/${itemId}/statistics`
1458
+ );
1459
+ return response?.payload;
1460
+ }, "getWFMItemStatistics");
1461
+ var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
1462
+ const response = await fetchAsyncData(
1463
+ `${wfmApiV2Base}orders/item/${itemId}`
1464
+ );
1465
+ return response?.data;
1466
+ }, "getWFMOrderList");
1467
+ var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
1468
+ const response = await fetchAsyncData(
1469
+ `${wfmApiV2Base}riven/weapons`
1470
+ );
1471
+ return response?.data;
1472
+ }, "getWFMRivenItemList");
1473
+ var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
1474
+ const response = await fetchAsyncData(
1475
+ `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
1476
+ );
1477
+ return response?.payload.auctions;
1478
+ }, "getWFMRivenOrderList");
1479
+ var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
1480
+ const response = await fetchAsyncData(
1481
+ `${wfmApiV2Base}riven/attributes`
1482
+ );
1483
+ return response?.data;
1484
+ }, "getWFMRivenAttributeList");
1485
+ var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
1486
+ const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
1487
+ if (!response || !response.payload) {
1488
+ return void 0;
1496
1489
  }
1490
+ const day = response.payload.previous_day.map((e) => {
1491
+ return e;
1492
+ });
1493
+ const hour = response.payload.previous_hour.map((e) => {
1494
+ return e;
1495
+ });
1497
1496
  return {
1498
- name: dict[region.name],
1499
- system: dict[region.systemName],
1500
- type: dict[region.missionName],
1501
- faction,
1502
- maxLevel: region.maxEnemyLevel,
1503
- minLevel: region.minEnemyLevel
1497
+ day,
1498
+ hour
1504
1499
  };
1505
- }, "regionToShort");
1506
- var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
1507
- const prefix = "/Lotus/Language/Relics/Era_";
1508
- return prefix + era.toUpperCase();
1509
- }, "relicEraToTransKey");
1510
- var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
1511
- return item.replace("StoreItems/", "");
1512
- }, "fixRelicRewardKey");
1513
-
1514
- // src/utils/translation.ts
1515
- var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
1516
- return `${import_warframe_public_export_plus2.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
1517
- }, "relicToFullNameZH");
1500
+ }, "getWFMDucatnator");
1518
1501
 
1519
- // src/utils/ocr.ts
1520
- var import_node_crypto = __toESM(require("node:crypto"));
1521
- var ocrCache = new CacheStorage(100);
1522
- var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
1523
- const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
1524
- return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
1525
- }, "getImageBase64Hash");
1526
- var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
1527
- const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
1528
- const ocrClient = tencentcloud.ocr.v20181119.Client;
1529
- const clientConfig = {
1530
- credential: {
1531
- secretId: secret.id,
1532
- secretKey: secret.key
1533
- },
1534
- region: "",
1535
- profile: {
1536
- httpProfile: {
1537
- endpoint: "ocr.tencentcloudapi.com"
1502
+ // src/data/wfm/globalItem.ts
1503
+ var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
1504
+ response ??= await getWFMItemList();
1505
+ if (!response) {
1506
+ return {
1507
+ globalItemList: [],
1508
+ globalItemDict: {},
1509
+ globalItemNameToSlugDict: {},
1510
+ globalItemGameRefDict: {}
1511
+ };
1512
+ }
1513
+ const data = response;
1514
+ const globalItemList = response;
1515
+ const globalItemDict = listToDict(
1516
+ data,
1517
+ (i) => [i.slug]
1518
+ );
1519
+ const globalItemNameToSlugDict = ((list) => {
1520
+ const result = {};
1521
+ for (const item of list) {
1522
+ if (item.i18n["zh-hans"]?.name) {
1523
+ result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
1524
+ }
1525
+ if (item.i18n["en"]?.name) {
1526
+ result[normalizeName(item.i18n["en"].name)] = item.slug;
1538
1527
  }
1539
1528
  }
1529
+ return result;
1530
+ })(globalItemList);
1531
+ const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
1532
+ return {
1533
+ globalItemList,
1534
+ globalItemDict,
1535
+ globalItemNameToSlugDict,
1536
+ globalItemGameRefDict
1540
1537
  };
1541
- const client = new ocrClient(clientConfig);
1542
- const { TextDetections } = await client.GeneralAccurateOCR({
1543
- ImageBase64: image
1544
- });
1545
- const result = TextDetections?.map((t) => t.DetectedText).filter(
1546
- Boolean
1547
- );
1548
- return result;
1549
- }, "getTextFromTencentOCR");
1550
- var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
1551
- if (image instanceof Blob) {
1552
- const buffer = await image.arrayBuffer();
1553
- image = Buffer.from(buffer).toString("base64");
1538
+ }, "globalItemDataFactory");
1539
+ var globalItemData = createAsyncCache(globalItemDataFactory, -1);
1540
+
1541
+ // src/data/wfm/globalRivenItem.ts
1542
+ var globalRivenItemData = createAsyncCache(async () => {
1543
+ const rivenData = await getWFMRivenItemList();
1544
+ if (!rivenData) {
1545
+ throw new Error("Failed to fetch riven items from Warframe Market API.");
1554
1546
  }
1555
- const imageHash = getImageBase64Hash(image);
1556
- try {
1557
- return await ocrCache.get(
1558
- imageHash,
1559
- () => getTextFromTencentOCR(image, secret)
1547
+ const data = rivenData;
1548
+ const globalRivenItemList = data;
1549
+ const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
1550
+ return {
1551
+ globalRivenItemList,
1552
+ globalRivenItemDict
1553
+ };
1554
+ }, -1);
1555
+
1556
+ // src/data/wfm/globalRivenAttribute.ts
1557
+ var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
1558
+ rivenAttributeData ??= await getWFMRivenAttributeList();
1559
+ if (!rivenAttributeData) {
1560
+ throw new Error(
1561
+ "Failed to fetch riven attributes from Warframe Market API."
1560
1562
  );
1561
- } catch (err) {
1562
- console.error("Ocr request error!", err);
1563
- return void 0;
1564
1563
  }
1565
- }, "extractTextFromImage");
1566
-
1567
- // src/utils/output.tsx
1568
- var style = `
1569
- :root {
1570
- --color_success_text: #4d8200;
1571
- --color_success_border: #4d8200;
1572
- --color_rgb_success_text: 77 130 0;
1573
- --color_rgb_success_border: 77 130 0;
1574
- --color_auction_participant: #1c8a62;
1575
- --color_auction_sell: #909090;
1576
- --color_auction_own: mediumpurple;
1577
- --color_auction_archiving: gray;
1578
- --color_rgb_auction_archiving: 128 128 128;
1579
- --color_dark_background--light: #11262b;
1580
- --color_dark_border--ligth: #283235;
1581
- --color_dark_background: #171e21;
1582
- --color_dark_border: #283235;
1583
- --color_dark_background--darker: #071013;
1584
- --color_dark_border--darker: #171e21;
1585
- --color_rgb_dark_background--light: 17 38 43;
1586
- --color_rgb_dark_border--ligth: 40 50 53;
1587
- --color_rgb_dark_background: 23 30 33;
1588
- --color_rgb_dark_border: 40 50 53;
1589
- --color_rgb_dark_background--darker: 7 16 19;
1590
- --color_rgb_dark_border--darker: 23 30 33;
1591
- --color_place_order: #b53600;
1592
- --color_place_order--hover: #e64400;
1593
- --color_place_order--active: #ff8f00;
1594
- --color_place_order_text: #f5f5f5;
1595
- --color_create_auction: #8960db;
1596
- --color_create_auction_text: #f5f5f5;
1597
- --color_create_auction--hover: #b08cff;
1598
- --color_create_auction--active: #9d92ff;
1599
- --color_input_inner_shadow: 0 0 0;
1600
- --color_input_text--highlight: #19a187;
1601
- --color_attribute_text: white;
1602
- --color_attribute_background_first: #19a187;
1603
- --color_attribute_background_second: #358576;
1604
- --color_attribute_background_third: #516965;
1605
- --color_attribute_background_negative: #98392d;
1606
- --color_rgb_attribute_background_first: 25 161 135;
1607
- --color_rgb_attribute_background_second: 53 133 118;
1608
- --color_rgb_attribute_background_third: 81 105 101;
1609
- --color_rgb_attribute_background_negative: 152 57 45;
1610
- --color_link_dimmed: #408698;
1611
- --color_link_dimmed--hover: #a3dddb;
1612
- --color_link_dimmed--active: #acb8dd;
1613
- --color_rgb_link_dimmed: 64 134 152;
1614
- --color_rgb_link_dimmed--hover: 163 221 219;
1615
- --color_rgb_link_dimmed--active: 172 184 221;
1616
- --color_dark_md_code_background: black;
1617
- --color_dark_md_code_text: #39a57e;
1618
- --color_rgb_dark_md_code_background: 0 0 0;
1619
- --color_status-offline: darkred;
1620
- --color_highlight: #b53600;
1621
- --color_highlight_text: #f5f5f5;
1622
- --color_tooltip_background: #1b2432;
1623
- --color_tooltip_border: black;
1624
- --color_tooltip_text: #aab3b6;
1625
- --color_rgb_tooltip_background: 27 36 50;
1626
- --color_text_svg: red;
1627
- --color_dark_text: #aab3b6;
1628
- --color_dark_h1: #fcfdfd;
1629
- --color_dark_h2: #e1e4e5;
1630
- --color_dark_h3: #c5ccce;
1631
- --color_dark_disclaimer: #333d40;
1632
- }
1633
-
1634
- body {
1635
- font-family: Arial, sans-serif;
1636
- padding: 20px;
1637
- }
1564
+ const data = rivenAttributeData;
1565
+ const globalRivenAttributeList = data;
1566
+ const globalRivenAttributeDict = listToDict(data, (a) => [
1567
+ a.slug
1568
+ ]);
1569
+ return {
1570
+ globalRivenAttributeList,
1571
+ globalRivenAttributeDict
1572
+ };
1573
+ }, "globalRivenAttributeFactory");
1574
+ var globalRivenAttribute = createAsyncCache(
1575
+ globalRivenAttributeFactory,
1576
+ -1
1577
+ );
1638
1578
 
1639
- * {
1640
- margin: 0;
1641
- padding: 0;
1642
- }
1643
-
1644
- ul {
1645
- list-style: none;
1646
- }
1647
- `;
1648
- var svg = `<svg
1649
- style="display: none"
1650
- xmlns="http://www.w3.org/2000/svg"
1651
- xmlns:xlink="http://www.w3.org/1999/xlink"
1652
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
1653
- >
1654
- <defs>
1655
- <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
1656
- <path
1657
- d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
1658
- />
1659
- </symbol>
1660
- <symbol viewBox="0 0 320 512" id="icon-angle-up">
1661
- <path
1662
- d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
1663
- />
1664
- </symbol>
1665
- <symbol viewBox="0 0 512 512" id="icon-archive">
1666
- <path
1667
- d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
1668
- />
1669
- </symbol>
1670
- <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
1671
- <path
1672
- fill="currentColor"
1673
- d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
1674
- />
1675
- </symbol>
1676
- <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
1677
- <path
1678
- d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
1679
- />
1680
- </symbol>
1681
- <symbol viewBox="0 0 1000 1000" id="icon-auction">
1682
- <path
1683
- d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
1684
- />
1685
- </symbol>
1686
- <symbol viewBox="0 0 400 423" id="icon-averagePrice">
1687
- <path
1688
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
1689
- fill="#ff5a69"
1690
- />
1691
- </symbol>
1692
- <symbol viewBox="0 0 384 512" id="icon-award">
1693
- <path
1694
- d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
1695
- />
1696
- </symbol>
1697
- <symbol viewBox="0 0 640 512" id="icon-backspace">
1698
- <path
1699
- d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
1700
- />
1701
- </symbol>
1702
- <symbol viewBox="0 0 512 512" id="icon-ban">
1703
- <path
1704
- d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
1705
- />
1706
- </symbol>
1707
- <symbol viewBox="0 0 448 512" id="icon-bars">
1708
- <path
1709
- d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
1710
- />
1711
- </symbol>
1712
- <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
1713
- <g fill="green">
1714
- <path
1715
- d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
1716
- />
1717
- <path
1718
- d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
1719
- />
1720
- </g>
1721
- </symbol>
1722
- <symbol viewBox="0 0 320 512" id="icon-caret-down">
1723
- <path
1724
- d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
1725
- />
1726
- </symbol>
1727
- <symbol viewBox="0 0 192 512" id="icon-caret-left">
1728
- <path
1729
- d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
1730
- />
1731
- </symbol>
1732
- <symbol viewBox="0 0 512 512" id="icon-chart-area">
1733
- <path
1734
- d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
1735
- />
1736
- </symbol>
1737
- <symbol viewBox="0 0 512 512" id="icon-check">
1738
- <path
1739
- d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
1740
- />
1741
- </symbol>
1742
- <symbol viewBox="0 0 512 512" id="icon-check-circle">
1743
- <path
1744
- d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
1745
- />
1746
- </symbol>
1747
- <symbol viewBox="0 0 448 512" id="icon-chevron-down">
1748
- <path
1749
- d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
1750
- />
1751
- </symbol>
1752
- <symbol viewBox="0 0 320 512" id="icon-chevron-left">
1753
- <path
1754
- d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
1755
- />
1756
- </symbol>
1757
- <symbol viewBox="0 0 448 512" id="icon-chevron-up">
1758
- <path
1759
- d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
1760
- />
1761
- </symbol>
1762
- <symbol viewBox="0 0 512 512" id="icon-circle">
1763
- <path
1764
- d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
1765
- />
1766
- </symbol>
1767
- <symbol viewBox="0 0 512 512" id="icon-circle-check">
1768
- <path
1769
- d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
1770
- />
1771
- </symbol>
1772
- <symbol viewBox="0 0 512 512" id="icon-circle-notch">
1773
- <path
1774
- d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
1775
- />
1776
- </symbol>
1777
- <symbol viewBox="0 0 640 512" id="icon-cogs">
1778
- <path
1779
- d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
1780
- />
1781
- </symbol>
1782
- <symbol viewBox="0 0 576 512" id="icon-comments">
1783
- <path
1784
- d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
1785
- />
1786
- </symbol>
1787
- <symbol viewBox="0 0 640 512" id="icon-contract">
1788
- <path
1789
- d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
1790
- />
1791
- </symbol>
1792
- <symbol viewBox="0 0 24 24" id="icon-crossplay">
1793
- <path
1794
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
1795
- />
1796
- <path
1797
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
1798
- />
1799
- </symbol>
1800
- <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
1801
- <g clip-path="url(#icon-crossplay-warn_a)">
1802
- <path
1803
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
1804
- />
1805
- <path
1806
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
1807
- />
1808
- <path
1809
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
1810
- fill="#fff"
1811
- />
1812
- <path
1813
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
1814
- fill="#a52f31"
1815
- />
1816
- </g>
1817
- <defs />
1818
- </symbol>
1819
- <clipPath id="icon-crossplay-warn_a">
1820
- <path fill="#fff" d="M0 0h24v24H0z" />
1821
- </clipPath>
1822
- <symbol viewBox="0 0 512 512" id="icon-cubes">
1823
- <path
1824
- d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
1825
- />
1826
- </symbol>
1827
- <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
1828
- <path
1829
- d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
1830
- />
1831
- </symbol>
1832
- <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
1833
- <path
1834
- d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
1835
- />
1836
- </symbol>
1837
- <symbol viewBox="-10 0 522 512" id="icon-dice">
1838
- <path
1839
- d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
1840
- fill="currentColor"
1841
- />
1842
- <path
1843
- d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
1844
- fill="currentColor"
1845
- fill-opacity=".75"
1846
- />
1847
- </symbol>
1848
- <symbol viewBox="0 0 71 71" id="icon-discord">
1849
- <path
1850
- d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
1851
- />
1852
- </symbol>
1853
- <symbol viewBox="0 0 503 523" id="icon-dochPrice">
1854
- <defs />
1855
- <path
1856
- d="m62.572 63.274 2.965-.822-.41 1.084z"
1857
- opacity=".85"
1858
- fill="#171e21"
1859
- fill-opacity=".01"
1860
- stroke="#171ed9"
1861
- stroke-width=".008"
1862
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1863
- />
1864
- <path
1865
- d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
1866
- opacity=".15"
1867
- fill="#265663"
1868
- stroke="url(#icon-dochPrice_b)"
1869
- stroke-width=".014"
1870
- stroke-opacity=".01"
1871
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1872
- />
1873
- <path
1874
- d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
1875
- opacity=".259"
1876
- fill="#4d4d4d"
1877
- fill-opacity=".988"
1878
- stroke="#171e21"
1879
- stroke-width=".345"
1880
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1881
- />
1882
- </symbol>
1883
- <linearGradient osb:paint="solid" id="icon-dochPrice_a">
1884
- <stop offset="0" stop-color="#171e21" />
1885
- </linearGradient>
1886
- <linearGradient
1887
- gradientTransform="translate(1.708 2.148)"
1888
- y2="71.258"
1889
- x2="77.916"
1890
- y1="71.258"
1891
- x1="64.794"
1892
- gradientUnits="userSpaceOnUse"
1893
- id="icon-dochPrice_b"
1894
- xlink:href="#icon-dochPrice_a"
1895
- />
1896
- <symbol viewBox="0 0 512 512" id="icon-dot-circle">
1897
- <path
1898
- d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
1899
- />
1900
- </symbol>
1901
- <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
1902
- <path
1903
- d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
1904
- paint-order="markers stroke fill"
1905
- />
1906
- </symbol>
1907
- <symbol viewBox="0 0 576 512" id="icon-edit">
1908
- <path
1909
- d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
1910
- />
1911
- </symbol>
1912
- <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
1913
- <path
1914
- d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
1915
- />
1916
- </symbol>
1917
- <symbol viewBox="0 0 256 251.342" id="icon-endo">
1918
- <path
1919
- style="
1920
- display: inline;
1921
- opacity: 1;
1922
- fill-opacity: 1;
1923
- stroke: none;
1924
- stroke-width: 0.785732;
1925
- stroke-dasharray: none;
1926
- stroke-opacity: 1;
1927
- "
1928
- d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
1929
- />
1930
- <path
1931
- style="display: inline; opacity: 0.75; stroke-width: 0.799524"
1932
- d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
1933
- />
1934
- </symbol>
1935
- <symbol viewBox="0 0 512 512" id="icon-envelope">
1936
- <path
1937
- d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
1938
- />
1939
- </symbol>
1940
- <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
1941
- <path
1942
- d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
1943
- />
1944
- </symbol>
1945
- <symbol viewBox="0 0 576 512" id="icon-eye">
1946
- <path
1947
- d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
1948
- />
1949
- </symbol>
1950
- <symbol viewBox="0 0 576 512" id="icon-eye-slash">
1951
- <path
1952
- d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
1953
- />
1954
- </symbol>
1955
- <symbol viewBox="0 0 512 512" id="icon-filter2">
1956
- <path
1957
- d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
1958
- />
1959
- </symbol>
1960
- <symbol viewBox="0 0 448 512" id="icon-fire-alt">
1961
- <path
1962
- fill="currentColor"
1963
- d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
1964
- />
1965
- </symbol>
1966
- <symbol viewBox="0 0 496 512" id="icon-frown">
1967
- <path
1968
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
1969
- />
1970
- </symbol>
1971
- <symbol viewBox="0 0 1024 1024" id="icon-github">
1972
- <path
1973
- d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
1974
- />
1975
- </symbol>
1976
- <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
1977
- <path
1978
- d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
1979
- />
1980
- </symbol>
1981
- <symbol viewBox="0 0 640 512" id="icon-infinity">
1982
- <path
1983
- d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
1984
- />
1985
- </symbol>
1986
- <symbol viewBox="0 0 512 512" id="icon-info">
1987
- <path
1988
- d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
1989
- />
1990
- </symbol>
1991
- <symbol viewBox="0 0 512 512" id="icon-link">
1992
- <path
1993
- d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
1994
- />
1995
- </symbol>
1996
- <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
1997
- <path
1998
- d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
1999
- />
2000
- </symbol>
2001
- <symbol viewBox="0 0 400 423" id="icon-medianPrice">
2002
- <path
2003
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
2004
- fill="#5a95ff"
2005
- />
2006
- </symbol>
2007
- <symbol viewBox="0 0 496 512" id="icon-meh">
2008
- <path
2009
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
2010
- />
2011
- </symbol>
2012
- <symbol viewBox="0 0 18 18" id="icon-naramon">
2013
- <path
2014
- d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
2015
- />
2016
- </symbol>
2017
- <symbol viewBox="0 0 448 512" id="icon-paste">
2018
- <path
2019
- d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
2020
- />
2021
- </symbol>
2022
- <symbol viewBox="0 0 1024 1024" id="icon-patreon">
2023
- <path
2024
- d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
2025
- />
2026
- </symbol>
2027
- <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
2028
- <path
2029
- d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
2030
- />
2031
- </symbol>
2032
- <symbol viewBox="0 0 24 24" id="icon-platform-pc">
2033
- <path
2034
- d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
2035
- />
2036
- </symbol>
2037
- <symbol viewBox="0 0 24 24" id="icon-platform-ps">
2038
- <path
2039
- d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
2040
- />
2041
- </symbol>
2042
- <symbol viewBox="0 0 24 24" id="icon-platform-switch">
2043
- <path
2044
- d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
2045
- />
2046
- <path
2047
- d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
2048
- />
2049
- </symbol>
2050
- <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
2051
- <path
2052
- d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
2053
- />
2054
- </symbol>
2055
- <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
2056
- <path
2057
- d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
2058
- fill-rule="evenodd"
2059
- />
2060
- </symbol>
2061
- <symbol viewBox="0 0 448 512" id="icon-plus-square">
2062
- <path
2063
- d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
2064
- />
2065
- </symbol>
2066
- <symbol
2067
- viewBox="0 0 978 388"
2068
- fill-rule="evenodd"
2069
- stroke-linejoin="round"
2070
- stroke-miterlimit="2"
2071
- id="icon-pwa_logo"
2072
- >
2073
- <path
2074
- d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
2075
- fill-opacity=".91"
2076
- fill-rule="nonzero"
2077
- />
2078
- </symbol>
2079
- <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
2080
- <path
2081
- d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
2082
- fill="#FFF"
2083
- />
2084
- <path
2085
- d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
2086
- fill="#a52f31"
2087
- />
2088
- <path
2089
- d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
2090
- fill="#FFF"
2091
- />
2092
- </symbol>
2093
- <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
2094
- <path
2095
- d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
2096
- />
2097
- <path
2098
- d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
2099
- />
2100
- <path
2101
- d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
2102
- />
2103
- <path
2104
- d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
2105
- />
2106
- </symbol>
2107
- <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
2108
- <path
2109
- d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
2110
- />
2111
- </symbol>
2112
- <symbol viewBox="0 0 512 512" id="icon-search">
2113
- <path
2114
- d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
2115
- />
2116
- </symbol>
2117
- <symbol viewBox="0 0 512 512" id="icon-search-plus">
2118
- <path
2119
- d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
2120
- />
2121
- </symbol>
2122
- <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
2123
- <path
2124
- d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
2125
- />
2126
- </symbol>
2127
- <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
2128
- <path
2129
- d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
2130
- />
2131
- </symbol>
2132
- <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
2133
- <path
2134
- d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
2135
- />
2136
- </symbol>
2137
- <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
2138
- <path
2139
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
2140
- fill="#464646"
2141
- />
2142
- </symbol>
2143
- <symbol viewBox="0 0 496 512" id="icon-smile">
2144
- <path
2145
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
2146
- />
2147
- </symbol>
2148
- <symbol viewBox="0 0 32 32" id="icon-stack">
2149
- <path
2150
- d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
2151
- />
2152
- </symbol>
2153
- <symbol viewBox="0 0 448 512" id="icon-steam-square">
2154
- <path
2155
- d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
2156
- />
2157
- </symbol>
2158
- <symbol viewBox="0 0 352 512" id="icon-times">
2159
- <path
2160
- d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
2161
- />
2162
- </symbol>
2163
- <symbol viewBox="0 0 448 512" id="icon-trash-alt">
2164
- <path
2165
- d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
2166
- />
2167
- </symbol>
2168
- <symbol viewBox="0 0 512 512" id="icon-upload">
2169
- <path
2170
- d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
2171
- />
2172
- </symbol>
2173
- <symbol viewBox="0 0 448 512" id="icon-user">
2174
- <path
2175
- d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
2176
- />
2177
- </symbol>
2178
- <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
2179
- <path
2180
- d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
2181
- />
2182
- </symbol>
2183
- <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
2184
- <path
2185
- d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
2186
- />
2187
- <path
2188
- d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
2189
- />
2190
- <circle cx="307.078" cy="429.197" r="78.5" />
2191
- </symbol>
2192
- <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
2193
- <path
2194
- d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
2195
- style="stroke: none"
2196
- />
2197
- </symbol>
2198
- </defs>
2199
- </svg>
2200
- `;
2201
- var htmlString = /* @__PURE__ */ (() => {
2202
- const template = `
2203
- <!DOCTYPE html>
2204
- <html>
2205
- <head>
2206
- <meta charset="UTF-8" />
2207
- <title>{{title}}</title>
2208
- <style>{{style}}</style>
2209
- </head>
2210
- <body>
2211
- <div style="display: none;">{{svg}}</div>
2212
- <div id="root">{{htmlString}}</div>
2213
- </body>
2214
- </html>`;
2215
- return (htmlString2, title = "title") => {
2216
- return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
2217
- };
2218
- })();
2219
- var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
2220
- if (!puppe) {
2221
- return "本功能需要启用 koishi-plugin-puppeteer 插件";
2222
- }
2223
- return await puppe.render(
2224
- htmlString(element.toString()),
2225
- async (page, next) => {
2226
- const handle = await page.$("#root>*");
2227
- return await next(handle ?? void 0);
2228
- }
2229
- );
2230
- }, "generateImageOutput");
2231
-
2232
- // src/utils/wfcd-adapter.ts
2233
- var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
2234
- var solNodesEnDict;
2235
- var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
2236
- const worldstateData = await import("warframe-worldstate-data");
2237
- if (!solNodesEnDict) {
2238
- solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
2239
- n.value
2240
- ]);
2241
- }
2242
- return solNodesEnDict[name2];
2243
- }, "getSolNodeKey");
2244
- var missionTypeEnDict;
2245
- var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
2246
- const worldstateData = await import("warframe-worldstate-data");
2247
- if (!missionTypeEnDict) {
2248
- missionTypeEnDict = dictToKeyDict(
2249
- worldstateData.default.missionTypes,
2250
- (n) => [n.value]
2251
- );
2252
- }
2253
- if (name2 === "Disruption") return "MT_ARTIFACT";
2254
- return missionTypeEnDict[name2];
2255
- }, "getMissionTypeKey");
2256
- var fissureTierName = {
2257
- 1: "/Lotus/Language/Relics/Era_LITH",
2258
- 2: "/Lotus/Language/Relics/Era_MESO",
2259
- 3: "/Lotus/Language/Relics/Era_NEO",
2260
- 4: "/Lotus/Language/Relics/Era_AXI",
2261
- 5: "/Lotus/Language/Relics/Era_REQUIEM",
2262
- 6: "/Lotus/Language/Relics/Era_OMNI",
2263
- 7: "/Lotus/Language/Relics/Era_VANGUARD"
2264
- };
2265
- var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
2266
- return typeof a === "string" ? a.charCodeAt(5) : a;
2267
- }, "fissureTierNumToNumber");
2268
- var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
2269
- const itemNameKey = getVoidTraderItemName(i.uniqueName);
2270
- const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
2271
- return { name: itemName, ducats: i.ducats, credits: i.credits };
2272
- }, "getVoidTraderItem");
2273
- var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
2274
- const fixedKey = sourceKey.replace("/StoreItems", "");
2275
- const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
2276
- if (flavour) {
2277
- return flavour.name;
2278
- }
2279
- const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
2280
- if (weapon) {
2281
- return weapon.name;
2282
- }
2283
- const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
2284
- if (mod) {
2285
- return mod.name;
2286
- }
2287
- const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
2288
- if (relic) {
2289
- return { era: relic.era, category: relic.category };
2290
- }
2291
- const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
2292
- if (skin) {
2293
- return skin.name;
2294
- }
2295
- const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
2296
- if (recipe) {
2297
- const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
2298
- if (recipeResult) {
2299
- return recipeResult.name;
2300
- }
2301
- }
2302
- const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
2303
- if (virtual) {
2304
- return virtual.name;
2305
- }
2306
- const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
2307
- if (resource) {
2308
- return resource.name;
2309
- }
2310
- const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
2311
- if (booster) {
2312
- return booster.name;
2313
- }
2314
- const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
2315
- if (boosterPack) {
2316
- return boosterPack.name;
2317
- }
2318
- }, "getVoidTraderItemName");
2319
-
2320
- // src/infrastructure/wfm/wfm-api.ts
2321
- var wfmApiV1Base = "https://api.warframe.market/v1/";
2322
- var wfmApiV2Base = "https://api.warframe.market/v2/";
2323
- var getWFMItemList = /* @__PURE__ */ __name(async () => {
2324
- const response = await fetchAsyncData(
2325
- `${wfmApiV2Base}items`
2326
- );
2327
- return response?.data;
2328
- }, "getWFMItemList");
2329
- var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
2330
- const response = await fetchAsyncData(
2331
- `${wfmApiV1Base}items/${itemId}/statistics`
2332
- );
2333
- return response?.payload;
2334
- }, "getWFMItemStatistics");
2335
- var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
2336
- const response = await fetchAsyncData(
2337
- `${wfmApiV2Base}orders/item/${itemId}`
2338
- );
2339
- return response?.data;
2340
- }, "getWFMOrderList");
2341
- var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
2342
- const response = await fetchAsyncData(
2343
- `${wfmApiV2Base}riven/weapons`
2344
- );
2345
- return response?.data;
2346
- }, "getWFMRivenItemList");
2347
- var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
2348
- const response = await fetchAsyncData(
2349
- `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
2350
- );
2351
- return response?.payload.auctions;
2352
- }, "getWFMRivenOrderList");
2353
- var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
2354
- const response = await fetchAsyncData(
2355
- `${wfmApiV2Base}riven/attributes`
2356
- );
2357
- return response?.data;
2358
- }, "getWFMRivenAttributeList");
2359
- var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
2360
- const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
2361
- if (!response || !response.payload) {
2362
- return void 0;
2363
- }
2364
- const day = response.payload.previous_day.map((e) => {
2365
- return e;
2366
- });
2367
- const hour = response.payload.previous_hour.map((e) => {
2368
- return e;
2369
- });
2370
- return {
2371
- day,
2372
- hour
2373
- };
2374
- }, "getWFMDucatnator");
2375
-
2376
- // src/data/wfm/globalItem.ts
2377
- var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
2378
- response ??= await getWFMItemList();
2379
- if (!response) {
2380
- return {
2381
- globalItemList: [],
2382
- globalItemDict: {},
2383
- globalItemNameToSlugDict: {},
2384
- globalItemGameRefDict: {}
2385
- };
2386
- }
2387
- const data = response;
2388
- const globalItemList = response;
2389
- const globalItemDict = listToDict(
2390
- data,
2391
- (i) => [i.slug]
2392
- );
2393
- const globalItemNameToSlugDict = ((list) => {
2394
- const result = {};
2395
- for (const item of list) {
2396
- if (item.i18n["zh-hans"]?.name) {
2397
- result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
2398
- }
2399
- if (item.i18n["en"]?.name) {
2400
- result[normalizeName(item.i18n["en"].name)] = item.slug;
2401
- }
2402
- }
2403
- return result;
2404
- })(globalItemList);
2405
- const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
2406
- return {
2407
- globalItemList,
2408
- globalItemDict,
2409
- globalItemNameToSlugDict,
2410
- globalItemGameRefDict
2411
- };
2412
- }, "globalItemDataFactory");
2413
- var globalItemData = createAsyncCache(globalItemDataFactory, -1);
2414
-
2415
- // src/data/wfm/globalRivenItem.ts
2416
- var globalRivenItemData = createAsyncCache(async () => {
2417
- const rivenData = await getWFMRivenItemList();
2418
- if (!rivenData) {
2419
- throw new Error("Failed to fetch riven items from Warframe Market API.");
2420
- }
2421
- const data = rivenData;
2422
- const globalRivenItemList = data;
2423
- const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
2424
- return {
2425
- globalRivenItemList,
2426
- globalRivenItemDict
2427
- };
2428
- }, -1);
2429
-
2430
- // src/data/wfm/globalRivenAttribute.ts
2431
- var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
2432
- rivenAttributeData ??= await getWFMRivenAttributeList();
2433
- if (!rivenAttributeData) {
2434
- throw new Error(
2435
- "Failed to fetch riven attributes from Warframe Market API."
2436
- );
2437
- }
2438
- const data = rivenAttributeData;
2439
- const globalRivenAttributeList = data;
2440
- const globalRivenAttributeDict = listToDict(data, (a) => [
2441
- a.slug
2442
- ]);
2443
- return {
2444
- globalRivenAttributeList,
2445
- globalRivenAttributeDict
2446
- };
2447
- }, "globalRivenAttributeFactory");
2448
- var globalRivenAttribute = createAsyncCache(
2449
- globalRivenAttributeFactory,
2450
- -1
2451
- );
2452
-
2453
- // src/data/wfm/globalDucatnator.ts
2454
- var globalDucatnatorIDDict = createAsyncCache(async () => {
2455
- const data = await getWFMDucatnator();
2456
- if (!data) {
2457
- return void 0;
2458
- }
2459
- return listToDict(data.hour, (d) => [d.item]);
2460
- }, 36e5);
1579
+ // src/data/wfm/globalDucatnator.ts
1580
+ var globalDucatnatorIDDict = createAsyncCache(async () => {
1581
+ const data = await getWFMDucatnator();
1582
+ if (!data) {
1583
+ return void 0;
1584
+ }
1585
+ return listToDict(data.hour, (d) => [d.item]);
1586
+ }, 36e5);
2461
1587
 
2462
1588
  // src/assets/baro.ts
2463
1589
  var Baro = `
@@ -18478,12 +17604,9 @@ var getVoidTraderHistory = /* @__PURE__ */ __name(async (data) => {
18478
17604
  }
18479
17605
  __name(assignItemFields, "assignItemFields");
18480
17606
  if (!data) {
18481
- try {
18482
- data = await fetchAsyncText(
18483
- "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
18484
- );
18485
- } catch {
18486
- }
17607
+ data = await fetchAsyncText(
17608
+ "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
17609
+ );
18487
17610
  if (!data) {
18488
17611
  return parseBaroLuaTable(Baro);
18489
17612
  }
@@ -18669,7 +17792,7 @@ var getRivenOrders = /* @__PURE__ */ __name(async (input) => {
18669
17792
  return { item: targetItem, orders };
18670
17793
  }, "getRivenOrders");
18671
17794
  var applyRelicData = /* @__PURE__ */ __name(async (relic) => {
18672
- const tier = import_warframe_public_export_plus4.dict_zh[relic.tierKey] ?? relic.tier;
17795
+ const tier = import_warframe_public_export_plus.dict_zh[relic.tierKey] ?? relic.tier;
18673
17796
  const { globalItemGameRefDict } = await globalItemData.get();
18674
17797
  const wfmDict = await globalDucatnatorIDDict.get();
18675
17798
  const loadedItems = relic.items.map((element) => {
@@ -18897,7 +18020,7 @@ var compareRivenItemName = /* @__PURE__ */ __name((input, standard) => {
18897
18020
  }, "compareRivenItemName");
18898
18021
 
18899
18022
  // src/services/wf-service.ts
18900
- var import_warframe_public_export_plus8 = require("warframe-public-export-plus");
18023
+ var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
18901
18024
 
18902
18025
  // src/assets/zh.json
18903
18026
  var zh_default = {
@@ -19503,13 +18626,182 @@ var warframes = [
19503
18626
  ]
19504
18627
  ];
19505
18628
 
18629
+ // src/infrastructure/ocr-api.ts
18630
+ var import_node_crypto = __toESM(require("node:crypto"));
18631
+ var ocrCache = new CacheStorage(100);
18632
+ var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
18633
+ const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
18634
+ return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
18635
+ }, "getImageBase64Hash");
18636
+ var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
18637
+ const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
18638
+ const ocrClient = tencentcloud.ocr.v20181119.Client;
18639
+ const clientConfig = {
18640
+ credential: {
18641
+ secretId: secret.id,
18642
+ secretKey: secret.key
18643
+ },
18644
+ region: "",
18645
+ profile: {
18646
+ httpProfile: {
18647
+ endpoint: "ocr.tencentcloudapi.com"
18648
+ }
18649
+ }
18650
+ };
18651
+ const client = new ocrClient(clientConfig);
18652
+ const { TextDetections } = await client.GeneralAccurateOCR({
18653
+ ImageBase64: image
18654
+ });
18655
+ const result = TextDetections?.map((t) => t.DetectedText).filter(
18656
+ Boolean
18657
+ );
18658
+ return result;
18659
+ }, "getTextFromTencentOCR");
18660
+ var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
18661
+ if (image instanceof Blob) {
18662
+ const buffer = await image.arrayBuffer();
18663
+ image = Buffer.from(buffer).toString("base64");
18664
+ }
18665
+ const imageHash = getImageBase64Hash(image);
18666
+ try {
18667
+ return await ocrCache.get(
18668
+ imageHash,
18669
+ () => getTextFromTencentOCR(image, secret)
18670
+ );
18671
+ } catch (err) {
18672
+ logger.error("OCR request error:", err);
18673
+ return void 0;
18674
+ }
18675
+ }, "extractTextFromImage");
18676
+
18677
+ // src/infrastructure/wf/wf-export-adapter.ts
18678
+ var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
18679
+ var regionToShort = /* @__PURE__ */ __name((region, dict) => {
18680
+ let faction;
18681
+ if (region.faction) {
18682
+ const name2 = import_warframe_public_export_plus2.ExportFactions[region.faction].name;
18683
+ if (name2) {
18684
+ faction = dict[name2];
18685
+ }
18686
+ }
18687
+ if (!faction) {
18688
+ faction = region.faction;
18689
+ }
18690
+ return {
18691
+ name: dict[region.name],
18692
+ system: dict[region.systemName],
18693
+ type: dict[region.missionName],
18694
+ faction,
18695
+ maxLevel: region.maxEnemyLevel,
18696
+ minLevel: region.minEnemyLevel
18697
+ };
18698
+ }, "regionToShort");
18699
+ var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
18700
+ const prefix = "/Lotus/Language/Relics/Era_";
18701
+ return prefix + era.toUpperCase();
18702
+ }, "relicEraToTransKey");
18703
+ var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
18704
+ return item.replace("StoreItems/", "");
18705
+ }, "fixRelicRewardKey");
18706
+
18707
+ // src/infrastructure/wf/wfcd-adapter.ts
18708
+ var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
18709
+ var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
18710
+ return `${import_warframe_public_export_plus3.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
18711
+ }, "relicToFullNameZH");
18712
+ var solNodesEnDict;
18713
+ var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
18714
+ const worldstateData = await import("warframe-worldstate-data");
18715
+ if (!solNodesEnDict) {
18716
+ solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
18717
+ n.value
18718
+ ]);
18719
+ }
18720
+ return solNodesEnDict[name2];
18721
+ }, "getSolNodeKey");
18722
+ var missionTypeEnDict;
18723
+ var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
18724
+ const worldstateData = await import("warframe-worldstate-data");
18725
+ if (!missionTypeEnDict) {
18726
+ missionTypeEnDict = dictToKeyDict(
18727
+ worldstateData.default.missionTypes,
18728
+ (n) => [n.value]
18729
+ );
18730
+ }
18731
+ if (name2 === "Disruption") return "MT_ARTIFACT";
18732
+ return missionTypeEnDict[name2];
18733
+ }, "getMissionTypeKey");
18734
+ var fissureTierName = {
18735
+ 1: "/Lotus/Language/Relics/Era_LITH",
18736
+ 2: "/Lotus/Language/Relics/Era_MESO",
18737
+ 3: "/Lotus/Language/Relics/Era_NEO",
18738
+ 4: "/Lotus/Language/Relics/Era_AXI",
18739
+ 5: "/Lotus/Language/Relics/Era_REQUIEM",
18740
+ 6: "/Lotus/Language/Relics/Era_OMNI",
18741
+ 7: "/Lotus/Language/Relics/Era_VANGUARD"
18742
+ };
18743
+ var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
18744
+ return typeof a === "string" ? Number(a.charAt(5)) : a;
18745
+ }, "fissureTierNumToNumber");
18746
+ var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
18747
+ const itemNameKey = getVoidTraderItemName(i.uniqueName);
18748
+ const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
18749
+ return { name: itemName, ducats: i.ducats, credits: i.credits };
18750
+ }, "getVoidTraderItem");
18751
+ var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
18752
+ const fixedKey = sourceKey.replace("/StoreItems", "");
18753
+ const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
18754
+ if (flavour) {
18755
+ return flavour.name;
18756
+ }
18757
+ const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
18758
+ if (weapon) {
18759
+ return weapon.name;
18760
+ }
18761
+ const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
18762
+ if (mod) {
18763
+ return mod.name;
18764
+ }
18765
+ const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
18766
+ if (relic) {
18767
+ return { era: relic.era, category: relic.category };
18768
+ }
18769
+ const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
18770
+ if (skin) {
18771
+ return skin.name;
18772
+ }
18773
+ const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
18774
+ if (recipe) {
18775
+ const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
18776
+ if (recipeResult) {
18777
+ return recipeResult.name;
18778
+ }
18779
+ }
18780
+ const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
18781
+ if (virtual) {
18782
+ return virtual.name;
18783
+ }
18784
+ const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
18785
+ if (resource) {
18786
+ return resource.name;
18787
+ }
18788
+ const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
18789
+ if (booster) {
18790
+ return booster.name;
18791
+ }
18792
+ const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
18793
+ if (boosterPack) {
18794
+ return boosterPack.name;
18795
+ }
18796
+ }, "getVoidTraderItemName");
18797
+
19506
18798
  // src/data/wf/relics.ts
19507
- var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
18799
+ var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
19508
18800
  var relics = (() => {
19509
18801
  const result = {};
19510
- for (const key in import_warframe_public_export_plus5.ExportRelics) {
19511
- const exportRelic = import_warframe_public_export_plus5.ExportRelics[key];
19512
- const exportRewards = import_warframe_public_export_plus5.ExportRewards[exportRelic.rewardManifest];
18802
+ for (const key in import_warframe_public_export_plus4.ExportRelics) {
18803
+ const exportRelic = import_warframe_public_export_plus4.ExportRelics[key];
18804
+ const exportRewards = import_warframe_public_export_plus4.ExportRewards[exportRelic.rewardManifest];
19513
18805
  const era = "/Lotus/Language/Relics/Era_" + exportRelic.era.toUpperCase();
19514
18806
  const relicKey = normalizeName(exportRelic.era + exportRelic.category);
19515
18807
  const rewards = (exportRewards[0] ?? []).map((r) => {
@@ -19532,7 +18824,7 @@ var relics = (() => {
19532
18824
  })();
19533
18825
 
19534
18826
  // src/data/wf/globalWorldState.ts
19535
- var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
18827
+ var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
19536
18828
  var globalWorldState = createAsyncCache(async () => {
19537
18829
  const worldState = await getWorldState();
19538
18830
  const fissures = [];
@@ -19540,13 +18832,13 @@ var globalWorldState = createAsyncCache(async () => {
19540
18832
  const spFissures = [];
19541
18833
  for (const fissure of worldState.fissures) {
19542
18834
  const nodeKey = await getSolNodeKey(fissure.nodeKey);
19543
- const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus6.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
18835
+ const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus5.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
19544
18836
  const obj = {
19545
18837
  category: fissure.isStorm ? "rj-fissures" : fissure.isHard ? "sp-fissures" : "fissures",
19546
18838
  hard: fissure.isHard,
19547
18839
  activation: fissure.activation?.getTime(),
19548
18840
  expiry: fissure.expiry?.getTime(),
19549
- node: regionToShort(import_warframe_public_export_plus6.ExportRegions[nodeKey], import_warframe_public_export_plus6.dict_zh),
18841
+ node: regionToShort(import_warframe_public_export_plus5.ExportRegions[nodeKey], import_warframe_public_export_plus5.dict_zh),
19550
18842
  tier: tierName,
19551
18843
  tierNum: fissureTierNumToNumber(fissure.tierNum)
19552
18844
  };
@@ -63779,7 +63071,7 @@ var rivenAttrValueDict = (() => {
63779
63071
  })();
63780
63072
 
63781
63073
  // src/data/wf/rivenDisposition.ts
63782
- var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
63074
+ var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
63783
63075
 
63784
63076
  // src/assets/rivencalc.json
63785
63077
  var rivencalc_default = {
@@ -67475,597 +66767,1262 @@ var rivencalc_default = {
67475
66767
  curse: false,
67476
66768
  buff: true
67477
66769
  }
67478
- ]
67479
- };
67480
-
67481
- // src/data/wf/rivenDisposition.ts
67482
- var weaponRivenDispositionDict = (() => {
67483
- const mapped = rivencalc_default.weapons.reduce(
67484
- (prev, element) => {
67485
- let mapped2 = void 0;
67486
- for (const weaponKey in import_warframe_public_export_plus7.ExportWeapons) {
67487
- const weapon = import_warframe_public_export_plus7.ExportWeapons[weaponKey];
67488
- const splited = weapon.name.split("/");
67489
- if (splited.length <= 0) {
67490
- continue;
67491
- }
67492
- const keyName = splited[splited.length - 1];
67493
- const normalizedCalcName = normalizeName(element.name);
67494
- if (normalizeName(keyName) === normalizedCalcName) {
67495
- mapped2 = weapon;
67496
- break;
67497
- }
67498
- const weaponEN2 = import_warframe_public_export_plus7.dict_en[weapon.name];
67499
- if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
67500
- mapped2 = weapon;
67501
- break;
67502
- }
66770
+ ]
66771
+ };
66772
+
66773
+ // src/data/wf/rivenDisposition.ts
66774
+ var weaponRivenDispositionDict = (() => {
66775
+ const mapped = rivencalc_default.weapons.reduce(
66776
+ (prev, element) => {
66777
+ let mapped2 = void 0;
66778
+ for (const weaponKey in import_warframe_public_export_plus6.ExportWeapons) {
66779
+ const weapon = import_warframe_public_export_plus6.ExportWeapons[weaponKey];
66780
+ const splited = weapon.name.split("/");
66781
+ if (splited.length <= 0) {
66782
+ continue;
66783
+ }
66784
+ const keyName = splited[splited.length - 1];
66785
+ const normalizedCalcName = normalizeName(element.name);
66786
+ if (normalizeName(keyName) === normalizedCalcName) {
66787
+ mapped2 = weapon;
66788
+ break;
66789
+ }
66790
+ const weaponEN2 = import_warframe_public_export_plus6.dict_en[weapon.name];
66791
+ if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
66792
+ mapped2 = weapon;
66793
+ break;
66794
+ }
66795
+ }
66796
+ if (!mapped2) {
66797
+ return prev;
66798
+ }
66799
+ const weaponEN = import_warframe_public_export_plus6.dict_en[mapped2.name];
66800
+ const weaponZH = import_warframe_public_export_plus6.dict_zh[mapped2.name];
66801
+ const result = {
66802
+ name: {
66803
+ en: weaponEN,
66804
+ zh: weaponZH
66805
+ },
66806
+ calc: element,
66807
+ weapon: mapped2
66808
+ };
66809
+ prev.push(result);
66810
+ return prev;
66811
+ },
66812
+ []
66813
+ );
66814
+ return listToDict(mapped, (e) => [
66815
+ normalizeName(e.name.zh),
66816
+ normalizeName(e.name.en)
66817
+ ]);
66818
+ })();
66819
+
66820
+ // src/data/wf/rivenStatData.ts
66821
+ var rivenStatFixFactor = {
66822
+ "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
66823
+ "21": {
66824
+ buffFactor: 1.2375,
66825
+ buffCount: 2,
66826
+ curseFactor: -0.495,
66827
+ curseCount: 1
66828
+ },
66829
+ "3": {
66830
+ buffFactor: 0.75,
66831
+ buffCount: 3,
66832
+ curseFactor: 0,
66833
+ curseCount: 0
66834
+ },
66835
+ "31": {
66836
+ buffFactor: 0.9375,
66837
+ buffCount: 3,
66838
+ curseFactor: -0.75,
66839
+ curseCount: 1
66840
+ }
66841
+ };
66842
+
66843
+ // src/services/wf-service.ts
66844
+ var getRelic = /* @__PURE__ */ __name(async (input) => {
66845
+ if (!input) {
66846
+ return "请提供正确的遗物名称";
66847
+ }
66848
+ input = normalizeName(input);
66849
+ if (!input) {
66850
+ return "请提供正确的遗物名称";
66851
+ }
66852
+ if (!relics) {
66853
+ return "遗物数据未加载完成,请稍后再试";
66854
+ }
66855
+ const tierListForMatch = [
66856
+ "古纪",
66857
+ "前纪",
66858
+ "中纪",
66859
+ "后纪",
66860
+ "安魂",
66861
+ "先锋",
66862
+ "Lith",
66863
+ "Meso",
66864
+ "Neo",
66865
+ "Axi",
66866
+ "Requiem",
66867
+ "Vanguard"
66868
+ ].map((t) => normalizeName(t));
66869
+ const tier = tierListForMatch.find((t) => input.startsWith(t));
66870
+ if (!tier) {
66871
+ return "请提供正确的遗物名称";
66872
+ }
66873
+ const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
66874
+ const zhTierMap = {
66875
+ 古纪: "Lith",
66876
+ 前纪: "Meso",
66877
+ 中纪: "Neo",
66878
+ 后纪: "Axi",
66879
+ 安魂: "Requiem",
66880
+ 先锋: "Vanguard"
66881
+ };
66882
+ const enTier = zhTierMap[tier] ?? tier;
66883
+ const key = normalizeName(enTier + category);
66884
+ return relics[key] ?? "未找到对应遗物信息";
66885
+ }, "getRelic");
66886
+ var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
66887
+ if (day > 14 || day <= 0) {
66888
+ return "天数需小于等于14且大于0";
66889
+ }
66890
+ const currentHourTimeStamp = Math.floor(
66891
+ (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
66892
+ );
66893
+ const currentHourIndex = arbitrationSchedule.findIndex(
66894
+ (a) => a.time === currentHourTimeStamp
66895
+ );
66896
+ const weekArbys = arbitrationSchedule.slice(
66897
+ currentHourIndex,
66898
+ currentHourIndex + 24 * day
66899
+ );
66900
+ return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
66901
+ const obj = regionToShort(import_warframe_public_export_plus7.ExportRegions[a.node], import_warframe_public_export_plus7.dict_zh);
66902
+ return {
66903
+ ...obj,
66904
+ time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
66905
+ year: "numeric",
66906
+ month: "numeric",
66907
+ day: "numeric",
66908
+ hour: "numeric",
66909
+ // minute: 'numeric', // 保持注释或删除,以去除分钟
66910
+ // second: 'numeric', // 保持注释或删除,以去除秒
66911
+ hour12: false,
66912
+ // 统一使用 24 小时制
66913
+ // hourCycle: 'h23' // 另一种设置 24 小时制的方法
66914
+ timeZone: "Asia/Shanghai"
66915
+ }),
66916
+ rewards: arbyRewards_default[a.node]
66917
+ };
66918
+ });
66919
+ }, "getArbitrations");
66920
+ var getWeekly = /* @__PURE__ */ __name(async () => {
66921
+ const { raw: worldState } = await globalWorldState.get();
66922
+ if (!worldState) {
66923
+ return "内部错误,获取最新信息失败";
66924
+ }
66925
+ const archon = {
66926
+ name: import_warframe_public_export_plus7.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
66927
+ };
66928
+ const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
66929
+ const keyToName = zh_default[`${prefix}${key}`];
66930
+ if (!keyToName) {
66931
+ for (const transKey in en_default) {
66932
+ if (en_default[transKey] === name2) {
66933
+ return {
66934
+ name: zh_default[transKey],
66935
+ desc: zh_default[transKey + "_Desc"]
66936
+ };
66937
+ }
66938
+ }
66939
+ }
66940
+ const riskDesc = zh_default[`${prefix}${key}_Desc`];
66941
+ return {
66942
+ name: keyToName,
66943
+ desc: riskDesc
66944
+ };
66945
+ }, "stringToDebuff");
66946
+ const deepArchim = worldState.archimedeas[0];
66947
+ const deepArchimMissions = await Promise.all(
66948
+ deepArchim.missions.map(async (m) => {
66949
+ const receivedType = await getMissionTypeKey(m.missionType);
66950
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
66951
+ const deviation = stringToDebuff(
66952
+ m.deviation.key,
66953
+ m.deviation.name,
66954
+ "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
66955
+ );
66956
+ const risks = m.risks.map(
66957
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66958
+ );
66959
+ return {
66960
+ type,
66961
+ deviation,
66962
+ risks
66963
+ };
66964
+ })
66965
+ );
66966
+ const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
66967
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66968
+ );
66969
+ const deepArchimRes = {
66970
+ name: "深层科研",
66971
+ missions: deepArchimMissions,
66972
+ peronal: deepArchimPersonalModifier
66973
+ };
66974
+ const temporalArchim = worldState.archimedeas[1];
66975
+ const temporalArchimMissions = await Promise.all(
66976
+ temporalArchim.missions.map(async (m) => {
66977
+ const receivedType = await getMissionTypeKey(m.missionType);
66978
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
66979
+ const deviation = stringToDebuff(
66980
+ m.deviation.key,
66981
+ m.deviation.name,
66982
+ "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
66983
+ );
66984
+ const risks = m.risks.map(
66985
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66986
+ );
66987
+ return {
66988
+ type,
66989
+ deviation,
66990
+ risks
66991
+ };
66992
+ })
66993
+ );
66994
+ const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
66995
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66996
+ );
66997
+ const temporalArchimRes = {
66998
+ name: "时光科研",
66999
+ missions: temporalArchimMissions,
67000
+ peronal: temporalArchimPersonalModifier
67001
+ };
67002
+ return {
67003
+ archonHunt: archon,
67004
+ deepArchimedea: deepArchimRes,
67005
+ temporalArchimedea: temporalArchimRes
67006
+ };
67007
+ }, "getWeekly");
67008
+ var getEnvironment = /* @__PURE__ */ __name(async () => {
67009
+ const { raw: worldState } = await globalWorldState.get();
67010
+ if (!worldState) {
67011
+ return "内部错误,获取最新信息失败";
67012
+ }
67013
+ const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
67014
+ const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
67015
+ const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
67016
+ const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
67017
+ const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
67018
+ const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
67019
+ const duviriStateTransDict = {
67020
+ sorrow: "悲伤",
67021
+ fear: "恐惧",
67022
+ joy: "喜悦",
67023
+ anger: "愤怒",
67024
+ envy: "嫉妒"
67025
+ };
67026
+ const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
67027
+ const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
67028
+ const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
67029
+ const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
67030
+ return `当前环境:
67031
+ ${cetus}
67032
+ ${vallis}
67033
+ ${cambion}
67034
+ ${duviri}
67035
+ ${zariman}`;
67036
+ }, "getEnvironment");
67037
+ var getCircuitWeek = /* @__PURE__ */ __name(() => {
67038
+ const EPOCH = 1734307200 * 1e3;
67039
+ const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
67040
+ const index1 = (week + 1) % incarnons.length;
67041
+ const index2 = (week + 8) % warframes.length;
67042
+ const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67043
+ const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67044
+ return {
67045
+ currentIncarnons: index1,
67046
+ currentWarframes: index2,
67047
+ allIncarnons: incarnons2,
67048
+ allWarframes: warframes2
67049
+ };
67050
+ }, "getCircuitWeek");
67051
+ var getFissures = /* @__PURE__ */ __name(async () => {
67052
+ const { fissures } = await globalWorldState.get();
67053
+ return fissures ?? "内部错误,获取最新信息失败";
67054
+ }, "getFissures");
67055
+ var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
67056
+ const { spFissures } = await globalWorldState.get();
67057
+ return spFissures ?? "内部错误,获取最新信息失败";
67058
+ }, "getSteelPathFissures");
67059
+ var getRailjackFissures = /* @__PURE__ */ __name(async () => {
67060
+ const { rjFissures } = await globalWorldState.get();
67061
+ return rjFissures ?? "内部错误,获取最新信息失败";
67062
+ }, "getRailjackFissures");
67063
+ var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
67064
+ const img = await fetchAsyncImage(url);
67065
+ if (!img) {
67066
+ return "获取图片失败";
67067
+ }
67068
+ const extractResult = await extractTextFromImage(img, secret);
67069
+ if (!extractResult) {
67070
+ return "解析图片失败";
67071
+ }
67072
+ const parseResult = await parseOCRResult(extractResult);
67073
+ if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
67074
+ return "解析图片失败";
67075
+ }
67076
+ return analyzeRivenStat(parseResult);
67077
+ }, "getAnalyzedRiven");
67078
+ var getVoidTrader = /* @__PURE__ */ __name(async () => {
67079
+ const { raw: worldState } = await globalWorldState.get();
67080
+ if (worldState.voidTraders.length === 0) {
67081
+ return "虚空商人仍在未知地带漂流...";
67082
+ }
67083
+ const trader = worldState.voidTraders[0];
67084
+ if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
67085
+ const diff2 = trader.activation.getTime() - Date.now();
67086
+ return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
67087
+ }
67088
+ const diff = trader.expiry.getTime() - Date.now();
67089
+ const items = trader.inventory.map(getVoidTraderItem);
67090
+ return { expiry: msToHumanReadable(diff), items };
67091
+ }, "getVoidTrader");
67092
+ var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
67093
+ if (disposition > 1.55 || disposition < 0.5) {
67094
+ return "裂罅倾向错误";
67095
+ }
67096
+ const weaponTypes = [
67097
+ "步枪",
67098
+ "手枪",
67099
+ "霰弹枪",
67100
+ "Archwing枪械",
67101
+ "近战",
67102
+ "Rifle",
67103
+ "Shotgun",
67104
+ "Pistol",
67105
+ "Archgun",
67106
+ "Melee"
67107
+ ];
67108
+ const matchedWeaponType = weaponTypes.find(
67109
+ (v) => normalizeName(v).startsWith(normalizeName(weaponType))
67110
+ );
67111
+ if (!matchedWeaponType) {
67112
+ return "武器类型错误";
67113
+ }
67114
+ const weaponTypeKeys = {
67115
+ 步枪: "Rifle",
67116
+ 手枪: "Pistol",
67117
+ 霰弹枪: "Shotgun",
67118
+ 近战: "Melee",
67119
+ Archwing枪械: "Archgun"
67120
+ };
67121
+ const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
67122
+ const statTypes = ["2", "3", "21", "31"];
67123
+ if (!statTypes.includes(statType)) {
67124
+ return "词条类型错误";
67125
+ }
67126
+ const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
67127
+ const factor = rivenStatFixFactor[statType];
67128
+ const result = {
67129
+ positive: {},
67130
+ negative: factor.curseCount > 0 ? {} : void 0
67131
+ };
67132
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67133
+ for (const key in rivenAttrValues) {
67134
+ const data = globalRivenAttributeList.find(
67135
+ (v) => normalizeName(v.i18n["en"].name) == key
67136
+ );
67137
+ const baseValue = rivenAttrValues[key];
67138
+ const buffValue = baseValue * disposition * factor.buffFactor;
67139
+ result.positive[key] = {
67140
+ name: data?.i18n["zh-hans"].name ?? key,
67141
+ max: buffValue * 1.1,
67142
+ min: buffValue * 0.9,
67143
+ unit: data?.unit ?? ""
67144
+ };
67145
+ if (result.negative) {
67146
+ const curseValue = baseValue * disposition * factor.curseFactor;
67147
+ result.negative[key] = {
67148
+ name: data?.i18n["zh-hans"].name ?? key,
67149
+ max: curseValue * 0.9,
67150
+ min: curseValue * 1.1,
67151
+ unit: data?.unit ?? ""
67152
+ };
67153
+ }
67154
+ }
67155
+ return result;
67156
+ }, "getStaticRivenStats");
67157
+ var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
67158
+ const normalizedName = normalizeName(name2);
67159
+ const normalRes = weaponRivenDispositionDict[normalizedName];
67160
+ if (normalRes) {
67161
+ return normalRes;
67162
+ }
67163
+ const withPrimeSuffix = normalizedName + "prime";
67164
+ const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
67165
+ if (withPrimeRes) {
67166
+ return withPrimeRes;
67167
+ }
67168
+ return void 0;
67169
+ }, "getWeaponRivenDisposition");
67170
+ var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
67171
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67172
+ const list = ocrResult;
67173
+ if (!list.length) {
67174
+ return;
67175
+ }
67176
+ function similarity(standard, input) {
67177
+ if (!standard || !input) {
67178
+ return 0;
67179
+ }
67180
+ standard = normalizeName(standard);
67181
+ input = normalizeName(input);
67182
+ if (input === "伤害") {
67183
+ return standard === "基础伤害" ? 1 : 0;
67184
+ }
67185
+ if (input === "弹药最大值") {
67186
+ return standard === "弹药上限" ? 1 : 0;
67187
+ }
67188
+ if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
67189
+ return 1;
67190
+ }
67191
+ if (standard === "暴击率") {
67192
+ standard = "暴击几率";
67193
+ }
67194
+ if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
67195
+ return 1;
67196
+ }
67197
+ const t = tokenSimilarity(standard, input);
67198
+ const s = normalSimilarity(standard, input);
67199
+ return Math.max(t, s);
67200
+ }
67201
+ __name(similarity, "similarity");
67202
+ const texts = list;
67203
+ const attributes = [];
67204
+ const statLines = [];
67205
+ for (const t of texts) {
67206
+ if (!t || !t.match(/^[x+-]|^[0-9]/)) {
67207
+ continue;
67208
+ }
67209
+ const prefix = t.match(/^[x+-]/) ? t[0] : "";
67210
+ const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
67211
+ const attr = globalRivenAttributeList.find((a) => {
67212
+ if (!a) return false;
67213
+ let zhName = a.i18n["zh-hans"]?.name;
67214
+ if (!zhName) return false;
67215
+ const sim = similarity(zhName, attrNamePart);
67216
+ if (sim < 0.8) return false;
67217
+ return true;
67218
+ });
67219
+ if (!attr) {
67220
+ continue;
67221
+ }
67222
+ statLines.push(t);
67223
+ const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
67224
+ const t2 = text.replace(/\s+/g, "");
67225
+ const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
67226
+ if (multMatch) {
67227
+ return {
67228
+ value: parseFloat(multMatch[1]),
67229
+ type: "multiply"
67230
+ };
67503
67231
  }
67504
- if (!mapped2) {
67505
- return prev;
67232
+ const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
67233
+ if (percentMatch) {
67234
+ return {
67235
+ value: parseFloat(percentMatch[1]),
67236
+ type: "percent"
67237
+ };
67506
67238
  }
67507
- const weaponEN = import_warframe_public_export_plus7.dict_en[mapped2.name];
67508
- const weaponZH = import_warframe_public_export_plus7.dict_zh[mapped2.name];
67509
- const result = {
67510
- name: {
67511
- en: weaponEN,
67512
- zh: weaponZH
67513
- },
67514
- calc: element,
67515
- weapon: mapped2
67516
- };
67517
- prev.push(result);
67518
- return prev;
67519
- },
67520
- []
67521
- );
67522
- return listToDict(mapped, (e) => [
67523
- normalizeName(e.name.zh),
67524
- normalizeName(e.name.en)
67525
- ]);
67526
- })();
67527
-
67528
- // src/data/wf/rivenStatData.ts
67529
- var rivenStatFixFactor = {
67530
- "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
67531
- "21": {
67532
- buffFactor: 1.2375,
67533
- buffCount: 2,
67534
- curseFactor: -0.495,
67535
- curseCount: 1
67536
- },
67537
- "3": {
67538
- buffFactor: 0.75,
67539
- buffCount: 3,
67540
- curseFactor: 0,
67541
- curseCount: 0
67542
- },
67543
- "31": {
67544
- buffFactor: 0.9375,
67545
- buffCount: 3,
67546
- curseFactor: -0.75,
67547
- curseCount: 1
67239
+ const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
67240
+ if (numMatch) {
67241
+ return {
67242
+ value: parseFloat(numMatch[1]),
67243
+ type: "number"
67244
+ };
67245
+ }
67246
+ return void 0;
67247
+ }), "extractStatValue"))(t);
67248
+ if (!value) {
67249
+ return void 0;
67250
+ }
67251
+ attributes.push({ attr, value: value.value, prefix });
67548
67252
  }
67549
- };
67550
-
67551
- // src/services/wf-service.ts
67552
- var getRelic = /* @__PURE__ */ __name(async (input) => {
67553
- if (!input) {
67554
- return "请提供正确的遗物名称";
67253
+ const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
67254
+ const rejectPatterns = [
67255
+ /%/,
67256
+ /x\d/i,
67257
+ /\d/,
67258
+ // numbers, %, multipliers
67259
+ /伤害/,
67260
+ /暴击/,
67261
+ /射速/,
67262
+ /攻击/,
67263
+ /后坐力/,
67264
+ /段位/,
67265
+ /加倍/,
67266
+ /效/,
67267
+ /武器/,
67268
+ /果/,
67269
+ /\)/,
67270
+ /\(/
67271
+ // junk OCR fragments
67272
+ ];
67273
+ const candidates = ocrData.filter((str) => {
67274
+ const s = str.trim();
67275
+ if (/^\d+$/.test(s)) return false;
67276
+ if (/[+%]/.test(s)) return false;
67277
+ if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
67278
+ if (rejectPatterns.some((p) => p.test(s))) return false;
67279
+ return true;
67280
+ });
67281
+ const merged = candidates.join("");
67282
+ function removeRivenSuffix(name2) {
67283
+ let s = name2.replace(/\s+/g, "");
67284
+ const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
67285
+ return s.replace(rivenPattern, "");
67286
+ }
67287
+ __name(removeRivenSuffix, "removeRivenSuffix");
67288
+ return merged ? removeRivenSuffix(merged) : null;
67289
+ }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
67290
+ if (!weaponName || !attributes.length) {
67291
+ return void 0;
67555
67292
  }
67556
- input = normalizeName(input);
67557
- if (!input) {
67558
- return "请提供正确的遗物名称";
67293
+ return {
67294
+ name: weaponName,
67295
+ attributes
67296
+ };
67297
+ }, "parseOCRResult");
67298
+ var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
67299
+ const weaponRiven = getWeaponRivenDisposition(parseResult.name);
67300
+ if (!weaponRiven) {
67301
+ return "未找到武器: " + parseResult.name;
67559
67302
  }
67560
- if (!relics) {
67561
- return "遗物数据未加载完成,请稍后再试";
67303
+ const disposition = weaponRiven.calc.disposition;
67304
+ const weaponType = weaponRiven.calc.riventype;
67305
+ const rivenStatCountType = (function() {
67306
+ if (parseResult.attributes.length === 4) {
67307
+ return "31";
67308
+ } else if (parseResult.attributes.length === 2) {
67309
+ return "2";
67310
+ }
67311
+ const firstStat = parseResult.attributes[0];
67312
+ const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
67313
+ if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
67314
+ return "21";
67315
+ } else {
67316
+ return "3";
67317
+ }
67318
+ })();
67319
+ const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
67320
+ const buffs = [];
67321
+ for (let i = 0; i < buffCount; i++) {
67322
+ const attr = parseResult.attributes[i];
67323
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67324
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67325
+ const standardValue = baseValue * buffFactor * disposition;
67326
+ const percent = (value - standardValue) / standardValue;
67327
+ buffs.push({
67328
+ name: attr.attr.i18n["zh-hans"].name,
67329
+ unit: attr.attr.unit,
67330
+ value: attr.value,
67331
+ percent,
67332
+ max: standardValue * 1.1,
67333
+ min: standardValue * 0.9
67334
+ });
67562
67335
  }
67563
- const tierListForMatch = [
67564
- "古纪",
67565
- "前纪",
67566
- "中纪",
67567
- "后纪",
67568
- "安魂",
67569
- "先锋",
67570
- "Lith",
67571
- "Meso",
67572
- "Neo",
67573
- "Axi",
67574
- "Requiem",
67575
- "Vanguard"
67576
- ].map((t) => normalizeName(t));
67577
- const tier = tierListForMatch.find((t) => input.startsWith(t));
67578
- if (!tier) {
67579
- return "请提供正确的遗物名称";
67336
+ const curses = [];
67337
+ if (curseCount > 0) {
67338
+ for (let i = buffCount; i < buffCount + curseCount; i++) {
67339
+ const attr = parseResult.attributes[i];
67340
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67341
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67342
+ const standardValue = baseValue * curseFactor * disposition;
67343
+ const percent = (value - standardValue) / standardValue * -1;
67344
+ curses.push({
67345
+ name: attr.attr.i18n["zh-hans"].name,
67346
+ unit: attr.attr.unit,
67347
+ value: attr.value,
67348
+ percent,
67349
+ max: standardValue * 0.9,
67350
+ min: standardValue * 1.1
67351
+ });
67352
+ }
67580
67353
  }
67581
- const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
67582
- const zhTierMap = {
67583
- 古纪: "Lith",
67584
- 前纪: "Meso",
67585
- 中纪: "Neo",
67586
- 后纪: "Axi",
67587
- 安魂: "Requiem",
67588
- 先锋: "Vanguard"
67354
+ return {
67355
+ name: weaponRiven.name.zh,
67356
+ disposition,
67357
+ buffs,
67358
+ curses
67359
+ };
67360
+ }, "analyzeRivenStat");
67361
+
67362
+ // src/components/render.tsx
67363
+ var style = `
67364
+ :root {
67365
+ --color_success_text: #4d8200;
67366
+ --color_success_border: #4d8200;
67367
+ --color_rgb_success_text: 77 130 0;
67368
+ --color_rgb_success_border: 77 130 0;
67369
+ --color_auction_participant: #1c8a62;
67370
+ --color_auction_sell: #909090;
67371
+ --color_auction_own: mediumpurple;
67372
+ --color_auction_archiving: gray;
67373
+ --color_rgb_auction_archiving: 128 128 128;
67374
+ --color_dark_background--light: #11262b;
67375
+ --color_dark_border--ligth: #283235;
67376
+ --color_dark_background: #171e21;
67377
+ --color_dark_border: #283235;
67378
+ --color_dark_background--darker: #071013;
67379
+ --color_dark_border--darker: #171e21;
67380
+ --color_rgb_dark_background--light: 17 38 43;
67381
+ --color_rgb_dark_border--ligth: 40 50 53;
67382
+ --color_rgb_dark_background: 23 30 33;
67383
+ --color_rgb_dark_border: 40 50 53;
67384
+ --color_rgb_dark_background--darker: 7 16 19;
67385
+ --color_rgb_dark_border--darker: 23 30 33;
67386
+ --color_place_order: #b53600;
67387
+ --color_place_order--hover: #e64400;
67388
+ --color_place_order--active: #ff8f00;
67389
+ --color_place_order_text: #f5f5f5;
67390
+ --color_create_auction: #8960db;
67391
+ --color_create_auction_text: #f5f5f5;
67392
+ --color_create_auction--hover: #b08cff;
67393
+ --color_create_auction--active: #9d92ff;
67394
+ --color_input_inner_shadow: 0 0 0;
67395
+ --color_input_text--highlight: #19a187;
67396
+ --color_attribute_text: white;
67397
+ --color_attribute_background_first: #19a187;
67398
+ --color_attribute_background_second: #358576;
67399
+ --color_attribute_background_third: #516965;
67400
+ --color_attribute_background_negative: #98392d;
67401
+ --color_rgb_attribute_background_first: 25 161 135;
67402
+ --color_rgb_attribute_background_second: 53 133 118;
67403
+ --color_rgb_attribute_background_third: 81 105 101;
67404
+ --color_rgb_attribute_background_negative: 152 57 45;
67405
+ --color_link_dimmed: #408698;
67406
+ --color_link_dimmed--hover: #a3dddb;
67407
+ --color_link_dimmed--active: #acb8dd;
67408
+ --color_rgb_link_dimmed: 64 134 152;
67409
+ --color_rgb_link_dimmed--hover: 163 221 219;
67410
+ --color_rgb_link_dimmed--active: 172 184 221;
67411
+ --color_dark_md_code_background: black;
67412
+ --color_dark_md_code_text: #39a57e;
67413
+ --color_rgb_dark_md_code_background: 0 0 0;
67414
+ --color_status-offline: darkred;
67415
+ --color_highlight: #b53600;
67416
+ --color_highlight_text: #f5f5f5;
67417
+ --color_tooltip_background: #1b2432;
67418
+ --color_tooltip_border: black;
67419
+ --color_tooltip_text: #aab3b6;
67420
+ --color_rgb_tooltip_background: 27 36 50;
67421
+ --color_text_svg: red;
67422
+ --color_dark_text: #aab3b6;
67423
+ --color_dark_h1: #fcfdfd;
67424
+ --color_dark_h2: #e1e4e5;
67425
+ --color_dark_h3: #c5ccce;
67426
+ --color_dark_disclaimer: #333d40;
67427
+ }
67428
+
67429
+ body {
67430
+ font-family: Arial, sans-serif;
67431
+ padding: 20px;
67432
+ }
67433
+
67434
+ * {
67435
+ margin: 0;
67436
+ padding: 0;
67437
+ }
67438
+
67439
+ ul {
67440
+ list-style: none;
67441
+ }
67442
+ `;
67443
+ var svg = `<svg
67444
+ style="display: none"
67445
+ xmlns="http://www.w3.org/2000/svg"
67446
+ xmlns:xlink="http://www.w3.org/1999/xlink"
67447
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
67448
+ >
67449
+ <defs>
67450
+ <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
67451
+ <path
67452
+ d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
67453
+ />
67454
+ </symbol>
67455
+ <symbol viewBox="0 0 320 512" id="icon-angle-up">
67456
+ <path
67457
+ d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
67458
+ />
67459
+ </symbol>
67460
+ <symbol viewBox="0 0 512 512" id="icon-archive">
67461
+ <path
67462
+ d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
67463
+ />
67464
+ </symbol>
67465
+ <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
67466
+ <path
67467
+ fill="currentColor"
67468
+ d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
67469
+ />
67470
+ </symbol>
67471
+ <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
67472
+ <path
67473
+ d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
67474
+ />
67475
+ </symbol>
67476
+ <symbol viewBox="0 0 1000 1000" id="icon-auction">
67477
+ <path
67478
+ d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
67479
+ />
67480
+ </symbol>
67481
+ <symbol viewBox="0 0 400 423" id="icon-averagePrice">
67482
+ <path
67483
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67484
+ fill="#ff5a69"
67485
+ />
67486
+ </symbol>
67487
+ <symbol viewBox="0 0 384 512" id="icon-award">
67488
+ <path
67489
+ d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
67490
+ />
67491
+ </symbol>
67492
+ <symbol viewBox="0 0 640 512" id="icon-backspace">
67493
+ <path
67494
+ d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
67495
+ />
67496
+ </symbol>
67497
+ <symbol viewBox="0 0 512 512" id="icon-ban">
67498
+ <path
67499
+ d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
67500
+ />
67501
+ </symbol>
67502
+ <symbol viewBox="0 0 448 512" id="icon-bars">
67503
+ <path
67504
+ d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
67505
+ />
67506
+ </symbol>
67507
+ <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
67508
+ <g fill="green">
67509
+ <path
67510
+ d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
67511
+ />
67512
+ <path
67513
+ d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
67514
+ />
67515
+ </g>
67516
+ </symbol>
67517
+ <symbol viewBox="0 0 320 512" id="icon-caret-down">
67518
+ <path
67519
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
67520
+ />
67521
+ </symbol>
67522
+ <symbol viewBox="0 0 192 512" id="icon-caret-left">
67523
+ <path
67524
+ d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
67525
+ />
67526
+ </symbol>
67527
+ <symbol viewBox="0 0 512 512" id="icon-chart-area">
67528
+ <path
67529
+ d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
67530
+ />
67531
+ </symbol>
67532
+ <symbol viewBox="0 0 512 512" id="icon-check">
67533
+ <path
67534
+ d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
67535
+ />
67536
+ </symbol>
67537
+ <symbol viewBox="0 0 512 512" id="icon-check-circle">
67538
+ <path
67539
+ d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
67540
+ />
67541
+ </symbol>
67542
+ <symbol viewBox="0 0 448 512" id="icon-chevron-down">
67543
+ <path
67544
+ d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
67545
+ />
67546
+ </symbol>
67547
+ <symbol viewBox="0 0 320 512" id="icon-chevron-left">
67548
+ <path
67549
+ d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
67550
+ />
67551
+ </symbol>
67552
+ <symbol viewBox="0 0 448 512" id="icon-chevron-up">
67553
+ <path
67554
+ d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
67555
+ />
67556
+ </symbol>
67557
+ <symbol viewBox="0 0 512 512" id="icon-circle">
67558
+ <path
67559
+ d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
67560
+ />
67561
+ </symbol>
67562
+ <symbol viewBox="0 0 512 512" id="icon-circle-check">
67563
+ <path
67564
+ d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
67565
+ />
67566
+ </symbol>
67567
+ <symbol viewBox="0 0 512 512" id="icon-circle-notch">
67568
+ <path
67569
+ d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
67570
+ />
67571
+ </symbol>
67572
+ <symbol viewBox="0 0 640 512" id="icon-cogs">
67573
+ <path
67574
+ d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
67575
+ />
67576
+ </symbol>
67577
+ <symbol viewBox="0 0 576 512" id="icon-comments">
67578
+ <path
67579
+ d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
67580
+ />
67581
+ </symbol>
67582
+ <symbol viewBox="0 0 640 512" id="icon-contract">
67583
+ <path
67584
+ d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
67585
+ />
67586
+ </symbol>
67587
+ <symbol viewBox="0 0 24 24" id="icon-crossplay">
67588
+ <path
67589
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67590
+ />
67591
+ <path
67592
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67593
+ />
67594
+ </symbol>
67595
+ <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
67596
+ <g clip-path="url(#icon-crossplay-warn_a)">
67597
+ <path
67598
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67599
+ />
67600
+ <path
67601
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67602
+ />
67603
+ <path
67604
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
67605
+ fill="#fff"
67606
+ />
67607
+ <path
67608
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
67609
+ fill="#a52f31"
67610
+ />
67611
+ </g>
67612
+ <defs />
67613
+ </symbol>
67614
+ <clipPath id="icon-crossplay-warn_a">
67615
+ <path fill="#fff" d="M0 0h24v24H0z" />
67616
+ </clipPath>
67617
+ <symbol viewBox="0 0 512 512" id="icon-cubes">
67618
+ <path
67619
+ d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
67620
+ />
67621
+ </symbol>
67622
+ <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
67623
+ <path
67624
+ d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
67625
+ />
67626
+ </symbol>
67627
+ <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
67628
+ <path
67629
+ d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
67630
+ />
67631
+ </symbol>
67632
+ <symbol viewBox="-10 0 522 512" id="icon-dice">
67633
+ <path
67634
+ d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
67635
+ fill="currentColor"
67636
+ />
67637
+ <path
67638
+ d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
67639
+ fill="currentColor"
67640
+ fill-opacity=".75"
67641
+ />
67642
+ </symbol>
67643
+ <symbol viewBox="0 0 71 71" id="icon-discord">
67644
+ <path
67645
+ d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
67646
+ />
67647
+ </symbol>
67648
+ <symbol viewBox="0 0 503 523" id="icon-dochPrice">
67649
+ <defs />
67650
+ <path
67651
+ d="m62.572 63.274 2.965-.822-.41 1.084z"
67652
+ opacity=".85"
67653
+ fill="#171e21"
67654
+ fill-opacity=".01"
67655
+ stroke="#171ed9"
67656
+ stroke-width=".008"
67657
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67658
+ />
67659
+ <path
67660
+ d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
67661
+ opacity=".15"
67662
+ fill="#265663"
67663
+ stroke="url(#icon-dochPrice_b)"
67664
+ stroke-width=".014"
67665
+ stroke-opacity=".01"
67666
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67667
+ />
67668
+ <path
67669
+ d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
67670
+ opacity=".259"
67671
+ fill="#4d4d4d"
67672
+ fill-opacity=".988"
67673
+ stroke="#171e21"
67674
+ stroke-width=".345"
67675
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67676
+ />
67677
+ </symbol>
67678
+ <linearGradient osb:paint="solid" id="icon-dochPrice_a">
67679
+ <stop offset="0" stop-color="#171e21" />
67680
+ </linearGradient>
67681
+ <linearGradient
67682
+ gradientTransform="translate(1.708 2.148)"
67683
+ y2="71.258"
67684
+ x2="77.916"
67685
+ y1="71.258"
67686
+ x1="64.794"
67687
+ gradientUnits="userSpaceOnUse"
67688
+ id="icon-dochPrice_b"
67689
+ xlink:href="#icon-dochPrice_a"
67690
+ />
67691
+ <symbol viewBox="0 0 512 512" id="icon-dot-circle">
67692
+ <path
67693
+ d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
67694
+ />
67695
+ </symbol>
67696
+ <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
67697
+ <path
67698
+ d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
67699
+ paint-order="markers stroke fill"
67700
+ />
67701
+ </symbol>
67702
+ <symbol viewBox="0 0 576 512" id="icon-edit">
67703
+ <path
67704
+ d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
67705
+ />
67706
+ </symbol>
67707
+ <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
67708
+ <path
67709
+ d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
67710
+ />
67711
+ </symbol>
67712
+ <symbol viewBox="0 0 256 251.342" id="icon-endo">
67713
+ <path
67714
+ style="
67715
+ display: inline;
67716
+ opacity: 1;
67717
+ fill-opacity: 1;
67718
+ stroke: none;
67719
+ stroke-width: 0.785732;
67720
+ stroke-dasharray: none;
67721
+ stroke-opacity: 1;
67722
+ "
67723
+ d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
67724
+ />
67725
+ <path
67726
+ style="display: inline; opacity: 0.75; stroke-width: 0.799524"
67727
+ d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
67728
+ />
67729
+ </symbol>
67730
+ <symbol viewBox="0 0 512 512" id="icon-envelope">
67731
+ <path
67732
+ d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
67733
+ />
67734
+ </symbol>
67735
+ <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
67736
+ <path
67737
+ d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
67738
+ />
67739
+ </symbol>
67740
+ <symbol viewBox="0 0 576 512" id="icon-eye">
67741
+ <path
67742
+ d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
67743
+ />
67744
+ </symbol>
67745
+ <symbol viewBox="0 0 576 512" id="icon-eye-slash">
67746
+ <path
67747
+ d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
67748
+ />
67749
+ </symbol>
67750
+ <symbol viewBox="0 0 512 512" id="icon-filter2">
67751
+ <path
67752
+ d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
67753
+ />
67754
+ </symbol>
67755
+ <symbol viewBox="0 0 448 512" id="icon-fire-alt">
67756
+ <path
67757
+ fill="currentColor"
67758
+ d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
67759
+ />
67760
+ </symbol>
67761
+ <symbol viewBox="0 0 496 512" id="icon-frown">
67762
+ <path
67763
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
67764
+ />
67765
+ </symbol>
67766
+ <symbol viewBox="0 0 1024 1024" id="icon-github">
67767
+ <path
67768
+ d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
67769
+ />
67770
+ </symbol>
67771
+ <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
67772
+ <path
67773
+ d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
67774
+ />
67775
+ </symbol>
67776
+ <symbol viewBox="0 0 640 512" id="icon-infinity">
67777
+ <path
67778
+ d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
67779
+ />
67780
+ </symbol>
67781
+ <symbol viewBox="0 0 512 512" id="icon-info">
67782
+ <path
67783
+ d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
67784
+ />
67785
+ </symbol>
67786
+ <symbol viewBox="0 0 512 512" id="icon-link">
67787
+ <path
67788
+ d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
67789
+ />
67790
+ </symbol>
67791
+ <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
67792
+ <path
67793
+ d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
67794
+ />
67795
+ </symbol>
67796
+ <symbol viewBox="0 0 400 423" id="icon-medianPrice">
67797
+ <path
67798
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67799
+ fill="#5a95ff"
67800
+ />
67801
+ </symbol>
67802
+ <symbol viewBox="0 0 496 512" id="icon-meh">
67803
+ <path
67804
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
67805
+ />
67806
+ </symbol>
67807
+ <symbol viewBox="0 0 18 18" id="icon-naramon">
67808
+ <path
67809
+ d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
67810
+ />
67811
+ </symbol>
67812
+ <symbol viewBox="0 0 448 512" id="icon-paste">
67813
+ <path
67814
+ d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
67815
+ />
67816
+ </symbol>
67817
+ <symbol viewBox="0 0 1024 1024" id="icon-patreon">
67818
+ <path
67819
+ d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
67820
+ />
67821
+ </symbol>
67822
+ <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
67823
+ <path
67824
+ d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
67825
+ />
67826
+ </symbol>
67827
+ <symbol viewBox="0 0 24 24" id="icon-platform-pc">
67828
+ <path
67829
+ d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
67830
+ />
67831
+ </symbol>
67832
+ <symbol viewBox="0 0 24 24" id="icon-platform-ps">
67833
+ <path
67834
+ d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
67835
+ />
67836
+ </symbol>
67837
+ <symbol viewBox="0 0 24 24" id="icon-platform-switch">
67838
+ <path
67839
+ d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
67840
+ />
67841
+ <path
67842
+ d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
67843
+ />
67844
+ </symbol>
67845
+ <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
67846
+ <path
67847
+ d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
67848
+ />
67849
+ </symbol>
67850
+ <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
67851
+ <path
67852
+ d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
67853
+ fill-rule="evenodd"
67854
+ />
67855
+ </symbol>
67856
+ <symbol viewBox="0 0 448 512" id="icon-plus-square">
67857
+ <path
67858
+ d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
67859
+ />
67860
+ </symbol>
67861
+ <symbol
67862
+ viewBox="0 0 978 388"
67863
+ fill-rule="evenodd"
67864
+ stroke-linejoin="round"
67865
+ stroke-miterlimit="2"
67866
+ id="icon-pwa_logo"
67867
+ >
67868
+ <path
67869
+ d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
67870
+ fill-opacity=".91"
67871
+ fill-rule="nonzero"
67872
+ />
67873
+ </symbol>
67874
+ <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
67875
+ <path
67876
+ d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
67877
+ fill="#FFF"
67878
+ />
67879
+ <path
67880
+ d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
67881
+ fill="#a52f31"
67882
+ />
67883
+ <path
67884
+ d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
67885
+ fill="#FFF"
67886
+ />
67887
+ </symbol>
67888
+ <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
67889
+ <path
67890
+ d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
67891
+ />
67892
+ <path
67893
+ d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
67894
+ />
67895
+ <path
67896
+ d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
67897
+ />
67898
+ <path
67899
+ d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
67900
+ />
67901
+ </symbol>
67902
+ <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
67903
+ <path
67904
+ d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
67905
+ />
67906
+ </symbol>
67907
+ <symbol viewBox="0 0 512 512" id="icon-search">
67908
+ <path
67909
+ d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
67910
+ />
67911
+ </symbol>
67912
+ <symbol viewBox="0 0 512 512" id="icon-search-plus">
67913
+ <path
67914
+ d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
67915
+ />
67916
+ </symbol>
67917
+ <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
67918
+ <path
67919
+ d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
67920
+ />
67921
+ </symbol>
67922
+ <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
67923
+ <path
67924
+ d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
67925
+ />
67926
+ </symbol>
67927
+ <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
67928
+ <path
67929
+ d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
67930
+ />
67931
+ </symbol>
67932
+ <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
67933
+ <path
67934
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67935
+ fill="#464646"
67936
+ />
67937
+ </symbol>
67938
+ <symbol viewBox="0 0 496 512" id="icon-smile">
67939
+ <path
67940
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
67941
+ />
67942
+ </symbol>
67943
+ <symbol viewBox="0 0 32 32" id="icon-stack">
67944
+ <path
67945
+ d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
67946
+ />
67947
+ </symbol>
67948
+ <symbol viewBox="0 0 448 512" id="icon-steam-square">
67949
+ <path
67950
+ d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
67951
+ />
67952
+ </symbol>
67953
+ <symbol viewBox="0 0 352 512" id="icon-times">
67954
+ <path
67955
+ d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
67956
+ />
67957
+ </symbol>
67958
+ <symbol viewBox="0 0 448 512" id="icon-trash-alt">
67959
+ <path
67960
+ d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
67961
+ />
67962
+ </symbol>
67963
+ <symbol viewBox="0 0 512 512" id="icon-upload">
67964
+ <path
67965
+ d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
67966
+ />
67967
+ </symbol>
67968
+ <symbol viewBox="0 0 448 512" id="icon-user">
67969
+ <path
67970
+ d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
67971
+ />
67972
+ </symbol>
67973
+ <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
67974
+ <path
67975
+ d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
67976
+ />
67977
+ </symbol>
67978
+ <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
67979
+ <path
67980
+ d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
67981
+ />
67982
+ <path
67983
+ d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
67984
+ />
67985
+ <circle cx="307.078" cy="429.197" r="78.5" />
67986
+ </symbol>
67987
+ <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
67988
+ <path
67989
+ d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
67990
+ style="stroke: none"
67991
+ />
67992
+ </symbol>
67993
+ </defs>
67994
+ </svg>
67995
+ `;
67996
+ var htmlString = /* @__PURE__ */ (() => {
67997
+ const template = `
67998
+ <!DOCTYPE html>
67999
+ <html>
68000
+ <head>
68001
+ <meta charset="UTF-8" />
68002
+ <title>{{title}}</title>
68003
+ <style>{{style}}</style>
68004
+ </head>
68005
+ <body>
68006
+ <div style="display: none;">{{svg}}</div>
68007
+ <div id="root">{{htmlString}}</div>
68008
+ </body>
68009
+ </html>`;
68010
+ return (htmlString2, title = "title") => {
68011
+ return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
67589
68012
  };
67590
- const enTier = zhTierMap[tier] ?? tier;
67591
- const key = normalizeName(enTier + category);
67592
- return relics[key] ?? "未找到对应遗物信息";
67593
- }, "getRelic");
67594
- var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
67595
- if (day > 14 || day <= 0) {
67596
- return "天数需小于等于14且大于0";
67597
- }
67598
- const currentHourTimeStamp = Math.floor(
67599
- (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
67600
- );
67601
- const currentHourIndex = arbitrationSchedule.findIndex(
67602
- (a) => a.time === currentHourTimeStamp
67603
- );
67604
- const weekArbys = arbitrationSchedule.slice(
67605
- currentHourIndex,
67606
- currentHourIndex + 24 * day
67607
- );
67608
- return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
67609
- const obj = regionToShort(import_warframe_public_export_plus8.ExportRegions[a.node], import_warframe_public_export_plus8.dict_zh);
67610
- return {
67611
- ...obj,
67612
- time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
67613
- year: "numeric",
67614
- month: "numeric",
67615
- day: "numeric",
67616
- hour: "numeric",
67617
- // minute: 'numeric', // 保持注释或删除,以去除分钟
67618
- // second: 'numeric', // 保持注释或删除,以去除秒
67619
- hour12: false,
67620
- // 统一使用 24 小时制
67621
- // hourCycle: 'h23' // 另一种设置 24 小时制的方法
67622
- timeZone: "Asia/Shanghai"
67623
- }),
67624
- rewards: arbyRewards_default[a.node]
67625
- };
67626
- });
67627
- }, "getArbitrations");
67628
- var getWeekly = /* @__PURE__ */ __name(async () => {
67629
- const { raw: worldState } = await globalWorldState.get();
67630
- if (!worldState) {
67631
- return "内部错误,获取最新信息失败";
68013
+ })();
68014
+ var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
68015
+ if (!puppe) {
68016
+ return "本功能需要启用 koishi-plugin-puppeteer 插件";
67632
68017
  }
67633
- const archon = {
67634
- name: import_warframe_public_export_plus8.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
67635
- };
67636
- const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
67637
- const keyToName = zh_default[`${prefix}${key}`];
67638
- if (!keyToName) {
67639
- for (const transKey in en_default) {
67640
- if (en_default[transKey] === name2) {
67641
- return {
67642
- name: zh_default[transKey],
67643
- desc: zh_default[transKey + "_Desc"]
67644
- };
67645
- }
67646
- }
68018
+ return await puppe.render(
68019
+ htmlString(element.toString()),
68020
+ async (page, next) => {
68021
+ const handle = await page.$("#root>*");
68022
+ return await next(handle ?? void 0);
67647
68023
  }
67648
- const riskDesc = zh_default[`${prefix}${key}_Desc`];
67649
- return {
67650
- name: keyToName,
67651
- desc: riskDesc
67652
- };
67653
- }, "stringToDebuff");
67654
- const deepArchim = worldState.archimedeas[0];
67655
- const deepArchimMissions = await Promise.all(
67656
- deepArchim.missions.map(async (m) => {
67657
- const receivedType = await getMissionTypeKey(m.missionType);
67658
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
67659
- const deviation = stringToDebuff(
67660
- m.deviation.key,
67661
- m.deviation.name,
67662
- "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
67663
- );
67664
- const risks = m.risks.map(
67665
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
67666
- );
67667
- return {
67668
- type,
67669
- deviation,
67670
- risks
67671
- };
67672
- })
67673
- );
67674
- const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
67675
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
67676
- );
67677
- const deepArchimRes = {
67678
- name: "深层科研",
67679
- missions: deepArchimMissions,
67680
- peronal: deepArchimPersonalModifier
67681
- };
67682
- const temporalArchim = worldState.archimedeas[1];
67683
- const temporalArchimMissions = await Promise.all(
67684
- temporalArchim.missions.map(async (m) => {
67685
- const receivedType = await getMissionTypeKey(m.missionType);
67686
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
67687
- const deviation = stringToDebuff(
67688
- m.deviation.key,
67689
- m.deviation.name,
67690
- "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
67691
- );
67692
- const risks = m.risks.map(
67693
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
67694
- );
67695
- return {
67696
- type,
67697
- deviation,
67698
- risks
67699
- };
67700
- })
67701
- );
67702
- const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
67703
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
67704
- );
67705
- const temporalArchimRes = {
67706
- name: "时光科研",
67707
- missions: temporalArchimMissions,
67708
- peronal: temporalArchimPersonalModifier
67709
- };
67710
- return {
67711
- archonHunt: archon,
67712
- deepArchimedea: deepArchimRes,
67713
- temporalArchimedea: temporalArchimRes
67714
- };
67715
- }, "getWeekly");
67716
- var getEnvironment = /* @__PURE__ */ __name(async () => {
67717
- const { raw: worldState } = await globalWorldState.get();
67718
- if (!worldState) {
67719
- return "内部错误,获取最新信息失败";
67720
- }
67721
- const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
67722
- const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
67723
- const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
67724
- const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
67725
- const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
67726
- const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
67727
- const duviriStateTransDict = {
67728
- sorrow: "悲伤",
67729
- fear: "恐惧",
67730
- joy: "喜悦",
67731
- anger: "愤怒",
67732
- envy: "嫉妒"
67733
- };
67734
- const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
67735
- const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
67736
- const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
67737
- const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
67738
- return `当前环境:
67739
- ${cetus}
67740
- ${vallis}
67741
- ${cambion}
67742
- ${duviri}
67743
- ${zariman}`;
67744
- }, "getEnvironment");
67745
- var getCircuitWeek = /* @__PURE__ */ __name(() => {
67746
- const EPOCH = 1734307200 * 1e3;
67747
- const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
67748
- const index1 = (week + 1) % incarnons.length;
67749
- const index2 = (week + 8) % warframes.length;
67750
- const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
67751
- const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
67752
- return {
67753
- currentIncarnons: index1,
67754
- currentWarframes: index2,
67755
- allIncarnons: incarnons2,
67756
- allWarframes: warframes2
67757
- };
67758
- }, "getCircuitWeek");
67759
- var getFissures = /* @__PURE__ */ __name(async () => {
67760
- const { fissures } = await globalWorldState.get();
67761
- return fissures ?? "内部错误,获取最新信息失败";
67762
- }, "getFissures");
67763
- var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
67764
- const { spFissures } = await globalWorldState.get();
67765
- return spFissures ?? "内部错误,获取最新信息失败";
67766
- }, "getSteelPathFissures");
67767
- var getRailjackFissures = /* @__PURE__ */ __name(async () => {
67768
- const { rjFissures } = await globalWorldState.get();
67769
- return rjFissures ?? "内部错误,获取最新信息失败";
67770
- }, "getRailjackFissures");
67771
- var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
67772
- const img = await fetchAsyncImage(url);
67773
- if (!img) {
67774
- return "获取图片失败";
67775
- }
67776
- const extractResult = await extractTextFromImage(img, secret);
67777
- if (!extractResult) {
67778
- return "解析图片失败";
67779
- }
67780
- const parseResult = await parseOCRResult(extractResult);
67781
- if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
67782
- return "解析图片失败";
67783
- }
67784
- return analyzeRivenStat(parseResult);
67785
- }, "getAnalyzedRiven");
67786
- var getVoidTrader = /* @__PURE__ */ __name(async () => {
67787
- const { raw: worldState } = await globalWorldState.get();
67788
- if (worldState.voidTraders.length === 0) {
67789
- return "虚空商人仍在未知地带漂流...";
67790
- }
67791
- const trader = worldState.voidTraders[0];
67792
- if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
67793
- const diff2 = trader.activation.getTime() - Date.now();
67794
- return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
67795
- }
67796
- const diff = trader.expiry.getTime() - Date.now();
67797
- const items = trader.inventory.map(getVoidTraderItem);
67798
- return { expiry: msToHumanReadable(diff), items };
67799
- }, "getVoidTrader");
67800
- var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
67801
- if (disposition > 1.55 || disposition < 0.5) {
67802
- return "裂罅倾向错误";
67803
- }
67804
- const weaponTypes = [
67805
- "步枪",
67806
- "手枪",
67807
- "霰弹枪",
67808
- "Archwing枪械",
67809
- "近战",
67810
- "Rifle",
67811
- "Shotgun",
67812
- "Pistol",
67813
- "Archgun",
67814
- "Melee"
67815
- ];
67816
- const matchedWeaponType = weaponTypes.find(
67817
- (v) => normalizeName(v).startsWith(normalizeName(weaponType))
67818
68024
  );
67819
- if (!matchedWeaponType) {
67820
- return "武器类型错误";
67821
- }
67822
- const weaponTypeKeys = {
67823
- 步枪: "Rifle",
67824
- 手枪: "Pistol",
67825
- 霰弹枪: "Shotgun",
67826
- 近战: "Melee",
67827
- Archwing枪械: "Archgun"
67828
- };
67829
- const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
67830
- const statTypes = ["2", "3", "21", "31"];
67831
- if (!statTypes.includes(statType)) {
67832
- return "词条类型错误";
67833
- }
67834
- const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
67835
- const factor = rivenStatFixFactor[statType];
67836
- const result = {
67837
- positive: {},
67838
- negative: factor.curseCount > 0 ? {} : void 0
67839
- };
67840
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
67841
- for (const key in rivenAttrValues) {
67842
- const data = globalRivenAttributeList.find(
67843
- (v) => normalizeName(v.i18n["en"].name) == key
67844
- );
67845
- const baseValue = rivenAttrValues[key];
67846
- const buffValue = baseValue * disposition * factor.buffFactor;
67847
- result.positive[key] = {
67848
- name: data?.i18n["zh-hans"].name ?? key,
67849
- max: buffValue * 1.1,
67850
- min: buffValue * 0.9,
67851
- unit: data?.unit ?? ""
67852
- };
67853
- if (result.negative) {
67854
- const curseValue = baseValue * disposition * factor.curseFactor;
67855
- result.negative[key] = {
67856
- name: data?.i18n["zh-hans"].name ?? key,
67857
- max: curseValue * 0.9,
67858
- min: curseValue * 1.1,
67859
- unit: data?.unit ?? ""
67860
- };
67861
- }
67862
- }
67863
- return result;
67864
- }, "getStaticRivenStats");
67865
- var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
67866
- const normalizedName = normalizeName(name2);
67867
- const normalRes = weaponRivenDispositionDict[normalizedName];
67868
- if (normalRes) {
67869
- return normalRes;
67870
- }
67871
- const withPrimeSuffix = normalizedName + "prime";
67872
- const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
67873
- if (withPrimeRes) {
67874
- return withPrimeRes;
67875
- }
67876
- return void 0;
67877
- }, "getWeaponRivenDisposition");
67878
- var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
67879
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
67880
- const list = ocrResult;
67881
- if (!list.length) {
67882
- return;
67883
- }
67884
- function similarity(standard, input) {
67885
- if (!standard || !input) {
67886
- return 0;
67887
- }
67888
- standard = normalizeName(standard);
67889
- input = normalizeName(input);
67890
- if (input === "伤害") {
67891
- return standard === "基础伤害" ? 1 : 0;
67892
- }
67893
- if (input === "弹药最大值") {
67894
- return standard === "弹药上限" ? 1 : 0;
67895
- }
67896
- if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
67897
- return 1;
67898
- }
67899
- if (standard === "暴击率") {
67900
- standard = "暴击几率";
67901
- }
67902
- if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
67903
- return 1;
67904
- }
67905
- const t = tokenSimilarity(standard, input);
67906
- const s = normalSimilarity(standard, input);
67907
- return Math.max(t, s);
67908
- }
67909
- __name(similarity, "similarity");
67910
- const texts = list;
67911
- const attributes = [];
67912
- const statLines = [];
67913
- for (const t of texts) {
67914
- if (!t || !t.match(/^[x+-]|^[0-9]/)) {
67915
- continue;
67916
- }
67917
- const prefix = t.match(/^[x+-]/) ? t[0] : "";
67918
- const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
67919
- const attr = globalRivenAttributeList.find((a) => {
67920
- if (!a) return false;
67921
- let zhName = a.i18n["zh-hans"]?.name;
67922
- if (!zhName) return false;
67923
- const sim = similarity(zhName, attrNamePart);
67924
- if (sim < 0.8) return false;
67925
- return true;
67926
- });
67927
- if (!attr) {
67928
- continue;
67929
- }
67930
- statLines.push(t);
67931
- const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
67932
- const t2 = text.replace(/\s+/g, "");
67933
- const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
67934
- if (multMatch) {
67935
- return {
67936
- value: parseFloat(multMatch[1]),
67937
- type: "multiply"
67938
- };
67939
- }
67940
- const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
67941
- if (percentMatch) {
67942
- return {
67943
- value: parseFloat(percentMatch[1]),
67944
- type: "percent"
67945
- };
67946
- }
67947
- const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
67948
- if (numMatch) {
67949
- return {
67950
- value: parseFloat(numMatch[1]),
67951
- type: "number"
67952
- };
67953
- }
67954
- return void 0;
67955
- }), "extractStatValue"))(t);
67956
- if (!value) {
67957
- return void 0;
67958
- }
67959
- attributes.push({ attr, value: value.value, prefix });
67960
- }
67961
- const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
67962
- const rejectPatterns = [
67963
- /%/,
67964
- /x\d/i,
67965
- /\d/,
67966
- // numbers, %, multipliers
67967
- /伤害/,
67968
- /暴击/,
67969
- /射速/,
67970
- /攻击/,
67971
- /后坐力/,
67972
- /段位/,
67973
- /加倍/,
67974
- /效/,
67975
- /武器/,
67976
- /果/,
67977
- /\)/,
67978
- /\(/
67979
- // junk OCR fragments
67980
- ];
67981
- const candidates = ocrData.filter((str) => {
67982
- const s = str.trim();
67983
- if (/^\d+$/.test(s)) return false;
67984
- if (/[+%]/.test(s)) return false;
67985
- if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
67986
- if (rejectPatterns.some((p) => p.test(s))) return false;
67987
- return true;
67988
- });
67989
- const merged = candidates.join("");
67990
- function removeRivenSuffix(name2) {
67991
- let s = name2.replace(/\s+/g, "");
67992
- const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
67993
- return s.replace(rivenPattern, "");
67994
- }
67995
- __name(removeRivenSuffix, "removeRivenSuffix");
67996
- return merged ? removeRivenSuffix(merged) : null;
67997
- }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
67998
- if (!weaponName || !attributes.length) {
67999
- return void 0;
68000
- }
68001
- return {
68002
- name: weaponName,
68003
- attributes
68004
- };
68005
- }, "parseOCRResult");
68006
- var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
68007
- const weaponRiven = getWeaponRivenDisposition(parseResult.name);
68008
- if (!weaponRiven) {
68009
- return "未找到武器: " + parseResult.name;
68010
- }
68011
- const disposition = weaponRiven.calc.disposition;
68012
- const weaponType = weaponRiven.calc.riventype;
68013
- const rivenStatCountType = (function() {
68014
- if (parseResult.attributes.length === 4) {
68015
- return "31";
68016
- } else if (parseResult.attributes.length === 2) {
68017
- return "2";
68018
- }
68019
- const firstStat = parseResult.attributes[0];
68020
- const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
68021
- if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
68022
- return "21";
68023
- } else {
68024
- return "3";
68025
- }
68026
- })();
68027
- const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
68028
- const buffs = [];
68029
- for (let i = 0; i < buffCount; i++) {
68030
- const attr = parseResult.attributes[i];
68031
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
68032
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
68033
- const standardValue = baseValue * buffFactor * disposition;
68034
- const percent = (value - standardValue) / standardValue;
68035
- buffs.push({
68036
- name: attr.attr.i18n["zh-hans"].name,
68037
- unit: attr.attr.unit,
68038
- value: attr.value,
68039
- percent,
68040
- max: standardValue * 1.1,
68041
- min: standardValue * 0.9
68042
- });
68043
- }
68044
- const curses = [];
68045
- if (curseCount > 0) {
68046
- for (let i = buffCount; i < buffCount + curseCount; i++) {
68047
- const attr = parseResult.attributes[i];
68048
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
68049
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
68050
- const standardValue = baseValue * curseFactor * disposition;
68051
- const percent = (value - standardValue) / standardValue * -1;
68052
- curses.push({
68053
- name: attr.attr.i18n["zh-hans"].name,
68054
- unit: attr.attr.unit,
68055
- value: attr.value,
68056
- percent,
68057
- max: standardValue * 0.9,
68058
- min: standardValue * 1.1
68059
- });
68060
- }
68061
- }
68062
- return {
68063
- name: weaponRiven.name.zh,
68064
- disposition,
68065
- buffs,
68066
- curses
68067
- };
68068
- }, "analyzeRivenStat");
68025
+ }, "generateImageOutput");
68069
68026
 
68070
68027
  // src/components/wf.tsx
68071
68028
  var import_jsx_runtime = require("@satorijs/element/jsx-runtime");
@@ -70194,11 +70151,11 @@ var onReadyHandler = /* @__PURE__ */ __name(async () => {
70194
70151
  // src/index.ts
70195
70152
  var import_reflect_metadata = __toESM(require_Reflect());
70196
70153
  var name = "warframe";
70197
- var Config = import_koishi.Schema.object({
70198
- developerMode: import_koishi.Schema.boolean().default(false),
70199
- ocrAPISecret: import_koishi.Schema.object({
70200
- id: import_koishi.Schema.string().required(),
70201
- key: import_koishi.Schema.string().required()
70154
+ var Config = import_koishi2.Schema.object({
70155
+ developerMode: import_koishi2.Schema.boolean().default(false),
70156
+ ocrAPISecret: import_koishi2.Schema.object({
70157
+ id: import_koishi2.Schema.string().required(),
70158
+ key: import_koishi2.Schema.string().required()
70202
70159
  }).description("OCR API 密钥")
70203
70160
  });
70204
70161
  function apply(ctx) {
@@ -70209,7 +70166,7 @@ __name(apply, "apply");
70209
70166
  var setupHooks = /* @__PURE__ */ __name((ctx) => {
70210
70167
  ctx.on("message", (session) => {
70211
70168
  if (ctx.config.developerMode) {
70212
- ctx.logger.info(
70169
+ logger.info(
70213
70170
  `Koishi recieved message: ${session.content}
70214
70171
  Platform: ${session.platform}
70215
70172
  User: ${session.author.name}`
@@ -70218,7 +70175,7 @@ var setupHooks = /* @__PURE__ */ __name((ctx) => {
70218
70175
  });
70219
70176
  ctx.on("command/before-execute", (action) => {
70220
70177
  if (ctx.config.developerMode) {
70221
- ctx.logger.info(
70178
+ logger.info(
70222
70179
  `WFM Plugin received command ${action.command?.name}
70223
70180
  arguments: ${JSON.stringify(action.args)}`
70224
70181
  );