From 7611c41c67dfa3b5d04e0a8ec7ff62b354835499 Mon Sep 17 00:00:00 2001 From: silas Date: Sun, 12 Dec 2021 18:06:33 +0100 Subject: [PATCH] update --- src/client/index.html | 2 +- src/client/ts/PrayerCircle/PartnerTable.tsx | 127 +- src/client/ts/PrayerCircle/PrayerCircle.tsx | 17 +- .../ts/PrayerCircle/PrayerCircleCalculator.ts | 52 +- .../PrayerCircleCalculator_old.ts | 9249 ----------------- .../ts/PrayerCircle/PrayercircleSettings.tsx | 19 + src/client/ts/Settings/Settings.tsx | 49 - src/client/ts/Tasks/TaskList.tsx | 46 - src/client/ts/Tasks/tasksSlice.ts | 22 - 9 files changed, 171 insertions(+), 9412 deletions(-) delete mode 100644 src/client/ts/PrayerCircle/PrayerCircleCalculator_old.ts delete mode 100644 src/client/ts/Settings/Settings.tsx delete mode 100644 src/client/ts/Tasks/TaskList.tsx delete mode 100644 src/client/ts/Tasks/tasksSlice.ts diff --git a/src/client/index.html b/src/client/index.html index 1ee79ff..2819d8c 100644 --- a/src/client/index.html +++ b/src/client/index.html @@ -9,7 +9,7 @@ - Hello World + PrayerCircle diff --git a/src/client/ts/PrayerCircle/PartnerTable.tsx b/src/client/ts/PrayerCircle/PartnerTable.tsx index 01bad6d..bd55895 100644 --- a/src/client/ts/PrayerCircle/PartnerTable.tsx +++ b/src/client/ts/PrayerCircle/PartnerTable.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { useCallback, useMemo } from 'react'; import { useAppDispatch, useAppSelector } from '../Store/reduxHooks'; import { selectMemberIds, setWeek } from './prayerCircleSlice'; -import { Button, Flex, Grow, Table } from 'react-bootstrap-mobile'; +import { Body, Button, Column, ColumnCellData, Flex, Grow, Table } from 'react-bootstrap-mobile'; import { PrayerCircleCalculator } from './PrayerCircleCalculator'; export type PartnerTableProps = {}; @@ -16,8 +16,8 @@ function PartnerTable({}: PartnerTableProps) { const usePartners = useAppSelector((state) => state.prayerCircle.usePartners); const dispatch = useAppDispatch(); - const columnsWeek = useMemo( - () => [ + const columnsWeek = useMemo(() => { + const columns: Column = [ { Header: 'Partner 1', accessor: 'partner1', // accessor is the "key" in the data @@ -25,13 +25,55 @@ function PartnerTable({}: PartnerTableProps) { { Header: 'Partner 2', accessor: 'partner2', + width: '50%', }, - ], - [] - ); + ]; + if (!usePartners) { + columns.splice(1, 0, { + Header: '', + id: 'prayingTitles', + Cell: () => ( + <> + Ich bete für + + Für mich betet + + + ), + }); + // columns[0].Cell = (cellData: ColumnCellData) => { + // const partner = cellData.value; + // console.log('cellData', cellData); + // return ( + //
+ // {partner} + // + // {/* Ich bete für */} + // + // Für mich betet + // + // + //
+ // ); + // }; - const columnsWeekdays = useMemo( - () => [ + columns[2].Cell = ({ cell: { column, row }, value: partner }: ColumnCellData) => { + const other = row.original[`${column.id}Other`]; + return ( + <> + {partner} + + {other} + + + ); + }; + } + return columns; + }, [usePartners]); + + const columnsWeekdays = useMemo(() => { + const columns: Column = [ { Header: 'Person', accessor: 'person', // accessor is the "key" in the data @@ -64,9 +106,44 @@ function PartnerTable({}: PartnerTableProps) { Header: 'So', accessor: 'day6', }, - ], - [] - ); + ]; + if (!usePartners) { + columns[0].Cell = ({ value: partner }: ColumnCellData) => { + return ( + + {partner} + + Ich bete für + + Für mich betet + + + + ); + }; + + const renderFunction = (cellData: ColumnCellData) => { + const partner = cellData.value; + const other = cellData.cell.row.original[`${cellData.cell.column.id}Other`]; + return ( + <> + {partner} + + {other} + + + ); + }; + columns[1].Cell = renderFunction; + columns[2].Cell = renderFunction; + columns[3].Cell = renderFunction; + columns[4].Cell = renderFunction; + columns[5].Cell = renderFunction; + columns[6].Cell = renderFunction; + columns[7].Cell = renderFunction; + } + return columns; + }, [usePartners]); // States @@ -79,45 +156,53 @@ function PartnerTable({}: PartnerTableProps) { // Effects // Other - const partnerTable = useMemo( + const [partnerTable, invertedPartnerTable] = useMemo( () => PrayerCircleCalculator.generateTableFor(membersIds, usePartners), [membersIds, usePartners] ); - if (!partnerTable || membersIds.length === 0) { + if (!partnerTable || !invertedPartnerTable || membersIds.length === 0) { return null; } - const partnerTableNames = partnerTable.map((partnerColumn) => { + // console.log(partnerTable, invertedPartnerTable); + + const partnerTableNames = partnerTable.map((partnerColumn, index) => { return Object.keys(partnerColumn).map((id) => { const name = members[id]?.name ?? id; const partnerName = members[partnerColumn[id]]?.name ?? partnerColumn[id]; - return [name, partnerName]; - }) as [string, string][]; + const otherPartnerName = members[invertedPartnerTable[index][id]]?.name ?? invertedPartnerTable[index][id]; + return [name, partnerName, otherPartnerName]; + }) as [string, string, string][]; }); let data: Record[] = []; if (!useWeekdays) { const column = partnerTableNames[week % partnerTableNames.length]; - data = column.map(([name1, name2]) => ({ + data = column.map(([name1, name2, name3]) => ({ partner1: name1, partner2: name2, + partner2Other: name3, })); } else { data = []; for (let i = 0; i < 7; i++) { - const column = partnerTableNames[(week * 7 + i) % partnerTableNames.length]; - column.forEach(([name1, name2], index) => { + const colIndex = (week * 7 + i) % partnerTableNames.length; + const column = partnerTableNames[colIndex]; + column.forEach(([person, partner1, partner2], index) => { if (!data[index]) { - data[index] = { person: name1 }; + data[index] = { person }; } - data[index][`day${i}`] = name2; + data[index][`day${i}`] = partner1; + data[index][`day${i}Other`] = partner2; }); } } const columns = useWeekdays ? columnsWeekdays : columnsWeek; + // Render Functions + return ( <> diff --git a/src/client/ts/PrayerCircle/PrayerCircle.tsx b/src/client/ts/PrayerCircle/PrayerCircle.tsx index e215dc9..534d18b 100644 --- a/src/client/ts/PrayerCircle/PrayerCircle.tsx +++ b/src/client/ts/PrayerCircle/PrayerCircle.tsx @@ -1,8 +1,6 @@ import * as React from 'react'; -import { Sites, useSites, useTopBar } from 'cordova-sites'; -import { useState } from 'react'; +import { Sites, useTopBar } from 'cordova-sites'; import { MemberList } from './MemberList'; -import { Settings } from '../Settings/Settings'; import { Card } from 'react-bootstrap-mobile'; import { PartnerTable } from './PartnerTable'; import { Col, Row } from 'react-bootstrap'; @@ -12,7 +10,6 @@ export type PrayerCircleProps = {}; function PrayerCircle({}: PrayerCircleProps) { // Variables - const sites = useSites(); // States @@ -23,14 +20,6 @@ function PrayerCircle({}: PrayerCircleProps) { // Effects useTopBar({ title: 'Prayercircle', - rightButtons: [ - { - title: 'Settings', - action: () => { - sites?.startSite(Settings); - }, - }, - ], }); // Other @@ -39,13 +28,13 @@ function PrayerCircle({}: PrayerCircleProps) { return ( <> - + - + diff --git a/src/client/ts/PrayerCircle/PrayerCircleCalculator.ts b/src/client/ts/PrayerCircle/PrayerCircleCalculator.ts index c82bcd2..19d7cad 100644 --- a/src/client/ts/PrayerCircle/PrayerCircleCalculator.ts +++ b/src/client/ts/PrayerCircle/PrayerCircleCalculator.ts @@ -4251,9 +4251,12 @@ export class PrayerCircleCalculator { console.log('TABLES', JSON.stringify(tables)); } - static generateTableFor(memberIds: string[], usePartners = true) { + static generateTableFor( + memberIds: string[], + usePartners = true + ): [false, false] | [Record[], Record[]] { if (memberIds.length === 0) { - return []; + return [[], []]; } memberIds = memberIds.slice(); @@ -4269,15 +4272,11 @@ export class PrayerCircleCalculator { } if (numberTable === false) { - return false; + return [false, false]; } - return numberTable.map((column) => { - const idColumn: Record = {}; - Object.keys(column).forEach((index) => { - idColumn[memberIds[Number(index)]] = memberIds[column[Number(index)]]; - }); - return idColumn; - }); + const table = PrayerCircleCalculator.inflateTable(memberIds, numberTable); + const invertedTable = PrayerCircleCalculator.getInvertedChainTableFor(table); + return [table, invertedTable]; } static generateTable(numPrayers: number): Record[] | false { @@ -4387,6 +4386,10 @@ export class PrayerCircleCalculator { } private static generateChainTableFor(numPrayers: number) { + if (numPrayers < 2) { + return false; + } + const possiblePartnersBaseArray: number[] = []; for (let i = 0; i < numPrayers; i++) { possiblePartnersBaseArray.push(i); @@ -4401,6 +4404,35 @@ export class PrayerCircleCalculator { for (let i = 0; i < numPrayers - 1; i++) { table.push({}); } + + possiblePartnersBaseArray.forEach((member, index) => { + const otherMembers = possiblePartners[member]; + + for (let i = 0; i < numPrayers - 1; i++) { + table[i][member] = otherMembers[(index + i) % otherMembers.length]; + } + }); + return table; } + + static getInvertedChainTableFor(table: Record[]) { + return table.map((column) => { + const invertedColumn: Record = {}; + Object.keys(column).forEach((id1) => { + invertedColumn[column[id1]] = id1; + }); + return invertedColumn; + }); + } + + private static inflateTable(memberIds: string[], table: Column[]) { + return table.map((column) => { + const idColumn: Record = {}; + Object.keys(column).forEach((index) => { + idColumn[memberIds[Number(index)]] = memberIds[column[Number(index)]]; + }); + return idColumn; + }); + } } diff --git a/src/client/ts/PrayerCircle/PrayerCircleCalculator_old.ts b/src/client/ts/PrayerCircle/PrayerCircleCalculator_old.ts deleted file mode 100644 index 4d6da42..0000000 --- a/src/client/ts/PrayerCircle/PrayerCircleCalculator_old.ts +++ /dev/null @@ -1,9249 +0,0 @@ -import { JsonHelper } from 'js-helper'; - -type Column = Record; -type PossiblePartners = Record; - -export class PrayerCircleCalculator { - static tables: Record[] | false> = { - 2: [{ 0: 1, 1: 0 }], - 4: [ - { 0: 1, 1: 0, 2: 3, 3: 2 }, - { 0: 2, 1: 3, 2: 0, 3: 1 }, - { 0: 3, 1: 2, 2: 1, 3: 0 }, - ], - 6: [ - { 0: 1, 1: 0, 2: 3, 3: 2, 4: 5, 5: 4 }, - { - 0: 2, - 1: 4, - 2: 0, - 3: 5, - 4: 1, - 5: 3, - }, - { 0: 3, 1: 5, 2: 4, 3: 0, 4: 2, 5: 1 }, - { 0: 4, 1: 3, 2: 5, 3: 1, 4: 0, 5: 2 }, - { - 0: 5, - 1: 2, - 2: 1, - 3: 4, - 4: 3, - 5: 0, - }, - ], - 8: [ - { 0: 1, 1: 0, 2: 3, 3: 2, 4: 5, 5: 4, 6: 7, 7: 6 }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - }, - { 0: 3, 1: 2, 2: 1, 3: 0, 4: 7, 5: 6, 6: 5, 7: 4 }, - { - 0: 4, - 1: 5, - 2: 6, - 3: 7, - 4: 0, - 5: 1, - 6: 2, - 7: 3, - }, - { 0: 5, 1: 4, 2: 7, 3: 6, 4: 1, 5: 0, 6: 3, 7: 2 }, - { - 0: 6, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 0, - 7: 1, - }, - { 0: 7, 1: 6, 2: 5, 3: 4, 4: 3, 5: 2, 6: 1, 7: 0 }, - ], - 10: [ - { 0: 1, 1: 0, 2: 3, 3: 2, 4: 5, 5: 4, 6: 7, 7: 6, 8: 9, 9: 8 }, - { - 0: 2, - 1: 8, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 1, - 9: 7, - }, - { 0: 3, 1: 5, 2: 8, 3: 0, 4: 7, 5: 1, 6: 9, 7: 4, 8: 2, 9: 6 }, - { - 0: 4, - 1: 6, - 2: 7, - 3: 8, - 4: 0, - 5: 9, - 6: 1, - 7: 2, - 8: 3, - 9: 5, - }, - { 0: 5, 1: 2, 2: 1, 3: 7, 4: 9, 5: 0, 6: 8, 7: 3, 8: 6, 9: 4 }, - { - 0: 6, - 1: 4, - 2: 5, - 3: 9, - 4: 1, - 5: 2, - 6: 0, - 7: 8, - 8: 7, - 9: 3, - }, - { 0: 7, 1: 9, 2: 4, 3: 6, 4: 2, 5: 8, 6: 3, 7: 0, 8: 5, 9: 1 }, - { - 0: 8, - 1: 7, - 2: 9, - 3: 4, - 4: 3, - 5: 6, - 6: 5, - 7: 1, - 8: 0, - 9: 2, - }, - { 0: 9, 1: 3, 2: 6, 3: 1, 4: 8, 5: 7, 6: 2, 7: 5, 8: 4, 9: 0 }, - ], - 12: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - }, - { - 0: 4, - 1: 8, - 2: 6, - 3: 10, - 4: 0, - 5: 9, - 6: 2, - 7: 11, - 8: 1, - 9: 5, - 10: 3, - 11: 7, - }, - { - 0: 5, - 1: 4, - 2: 8, - 3: 9, - 4: 1, - 5: 0, - 6: 11, - 7: 10, - 8: 2, - 9: 3, - 10: 7, - 11: 6, - }, - { - 0: 6, - 1: 5, - 2: 10, - 3: 8, - 4: 11, - 5: 1, - 6: 0, - 7: 9, - 8: 3, - 9: 7, - 10: 2, - 11: 4, - }, - { - 0: 7, - 1: 6, - 2: 9, - 3: 11, - 4: 8, - 5: 10, - 6: 1, - 7: 0, - 8: 4, - 9: 2, - 10: 5, - 11: 3, - }, - { - 0: 8, - 1: 9, - 2: 7, - 3: 4, - 4: 3, - 5: 11, - 6: 10, - 7: 2, - 8: 0, - 9: 1, - 10: 6, - 11: 5, - }, - { - 0: 9, - 1: 11, - 2: 5, - 3: 6, - 4: 10, - 5: 2, - 6: 3, - 7: 8, - 8: 7, - 9: 0, - 10: 4, - 11: 1, - }, - { - 0: 10, - 1: 7, - 2: 11, - 3: 5, - 4: 9, - 5: 3, - 6: 8, - 7: 1, - 8: 6, - 9: 4, - 10: 0, - 11: 2, - }, - { 0: 11, 1: 10, 2: 4, 3: 7, 4: 2, 5: 8, 6: 9, 7: 3, 8: 5, 9: 6, 10: 1, 11: 0 }, - ], - 14: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - }, - { - 0: 2, - 1: 12, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 10, - 9: 7, - 10: 8, - 11: 13, - 12: 1, - 13: 11, - }, - { - 0: 3, - 1: 5, - 2: 12, - 3: 0, - 4: 7, - 5: 1, - 6: 9, - 7: 4, - 8: 11, - 9: 6, - 10: 13, - 11: 8, - 12: 2, - 13: 10, - }, - { - 0: 4, - 1: 10, - 2: 5, - 3: 6, - 4: 0, - 5: 2, - 6: 3, - 7: 11, - 8: 12, - 9: 13, - 10: 1, - 11: 7, - 12: 8, - 13: 9, - }, - { - 0: 5, - 1: 2, - 2: 1, - 3: 10, - 4: 9, - 5: 0, - 6: 8, - 7: 13, - 8: 6, - 9: 4, - 10: 3, - 11: 12, - 12: 11, - 13: 7, - }, - { - 0: 6, - 1: 11, - 2: 9, - 3: 4, - 4: 3, - 5: 7, - 6: 0, - 7: 5, - 8: 13, - 9: 2, - 10: 12, - 11: 1, - 12: 10, - 13: 8, - }, - { - 0: 7, - 1: 8, - 2: 10, - 3: 9, - 4: 12, - 5: 11, - 6: 13, - 7: 0, - 8: 1, - 9: 3, - 10: 2, - 11: 5, - 12: 4, - 13: 6, - }, - { - 0: 8, - 1: 13, - 2: 4, - 3: 11, - 4: 2, - 5: 6, - 6: 5, - 7: 10, - 8: 0, - 9: 12, - 10: 7, - 11: 3, - 12: 9, - 13: 1, - }, - { - 0: 9, - 1: 6, - 2: 13, - 3: 8, - 4: 11, - 5: 10, - 6: 1, - 7: 12, - 8: 3, - 9: 0, - 10: 5, - 11: 4, - 12: 7, - 13: 2, - }, - { - 0: 10, - 1: 3, - 2: 6, - 3: 1, - 4: 13, - 5: 12, - 6: 2, - 7: 8, - 8: 7, - 9: 11, - 10: 0, - 11: 9, - 12: 5, - 13: 4, - }, - { - 0: 11, - 1: 4, - 2: 7, - 3: 13, - 4: 1, - 5: 8, - 6: 12, - 7: 2, - 8: 5, - 9: 10, - 10: 9, - 11: 0, - 12: 6, - 13: 3, - }, - { - 0: 12, - 1: 9, - 2: 8, - 3: 7, - 4: 10, - 5: 13, - 6: 11, - 7: 3, - 8: 2, - 9: 1, - 10: 4, - 11: 6, - 12: 0, - 13: 5, - }, - { - 0: 13, - 1: 7, - 2: 11, - 3: 12, - 4: 8, - 5: 9, - 6: 10, - 7: 1, - 8: 4, - 9: 5, - 10: 6, - 11: 2, - 12: 3, - 13: 0, - }, - ], - 16: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - }, - { - 0: 4, - 1: 5, - 2: 6, - 3: 7, - 4: 0, - 5: 1, - 6: 2, - 7: 3, - 8: 12, - 9: 13, - 10: 14, - 11: 15, - 12: 8, - 13: 9, - 14: 10, - 15: 11, - }, - { - 0: 5, - 1: 4, - 2: 7, - 3: 6, - 4: 1, - 5: 0, - 6: 3, - 7: 2, - 8: 13, - 9: 12, - 10: 15, - 11: 14, - 12: 9, - 13: 8, - 14: 11, - 15: 10, - }, - { - 0: 6, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 0, - 7: 1, - 8: 14, - 9: 15, - 10: 12, - 11: 13, - 12: 10, - 13: 11, - 14: 8, - 15: 9, - }, - { - 0: 7, - 1: 6, - 2: 5, - 3: 4, - 4: 3, - 5: 2, - 6: 1, - 7: 0, - 8: 15, - 9: 14, - 10: 13, - 11: 12, - 12: 11, - 13: 10, - 14: 9, - 15: 8, - }, - { - 0: 8, - 1: 9, - 2: 10, - 3: 11, - 4: 12, - 5: 13, - 6: 14, - 7: 15, - 8: 0, - 9: 1, - 10: 2, - 11: 3, - 12: 4, - 13: 5, - 14: 6, - 15: 7, - }, - { - 0: 9, - 1: 8, - 2: 11, - 3: 10, - 4: 13, - 5: 12, - 6: 15, - 7: 14, - 8: 1, - 9: 0, - 10: 3, - 11: 2, - 12: 5, - 13: 4, - 14: 7, - 15: 6, - }, - { - 0: 10, - 1: 11, - 2: 8, - 3: 9, - 4: 14, - 5: 15, - 6: 12, - 7: 13, - 8: 2, - 9: 3, - 10: 0, - 11: 1, - 12: 6, - 13: 7, - 14: 4, - 15: 5, - }, - { - 0: 11, - 1: 10, - 2: 9, - 3: 8, - 4: 15, - 5: 14, - 6: 13, - 7: 12, - 8: 3, - 9: 2, - 10: 1, - 11: 0, - 12: 7, - 13: 6, - 14: 5, - 15: 4, - }, - { - 0: 12, - 1: 13, - 2: 14, - 3: 15, - 4: 8, - 5: 9, - 6: 10, - 7: 11, - 8: 4, - 9: 5, - 10: 6, - 11: 7, - 12: 0, - 13: 1, - 14: 2, - 15: 3, - }, - { - 0: 13, - 1: 12, - 2: 15, - 3: 14, - 4: 9, - 5: 8, - 6: 11, - 7: 10, - 8: 5, - 9: 4, - 10: 7, - 11: 6, - 12: 1, - 13: 0, - 14: 3, - 15: 2, - }, - { - 0: 14, - 1: 15, - 2: 12, - 3: 13, - 4: 10, - 5: 11, - 6: 8, - 7: 9, - 8: 6, - 9: 7, - 10: 4, - 11: 5, - 12: 2, - 13: 3, - 14: 0, - 15: 1, - }, - { - 0: 15, - 1: 14, - 2: 13, - 3: 12, - 4: 11, - 5: 10, - 6: 9, - 7: 8, - 8: 7, - 9: 6, - 10: 5, - 11: 4, - 12: 3, - 13: 2, - 14: 1, - 15: 0, - }, - ], - 18: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - }, - { - 0: 2, - 1: 16, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 10, - 9: 7, - 10: 8, - 11: 13, - 12: 14, - 13: 11, - 14: 12, - 15: 17, - 16: 1, - 17: 15, - }, - { - 0: 3, - 1: 5, - 2: 16, - 3: 0, - 4: 7, - 5: 1, - 6: 9, - 7: 4, - 8: 11, - 9: 6, - 10: 13, - 11: 8, - 12: 15, - 13: 10, - 14: 17, - 15: 12, - 16: 2, - 17: 14, - }, - { - 0: 4, - 1: 14, - 2: 15, - 3: 16, - 4: 0, - 5: 9, - 6: 10, - 7: 11, - 8: 12, - 9: 5, - 10: 6, - 11: 7, - 12: 8, - 13: 17, - 14: 1, - 15: 2, - 16: 3, - 17: 13, - }, - { - 0: 5, - 1: 10, - 2: 4, - 3: 15, - 4: 2, - 5: 0, - 6: 8, - 7: 16, - 8: 6, - 9: 11, - 10: 1, - 11: 9, - 12: 17, - 13: 14, - 14: 13, - 15: 3, - 16: 7, - 17: 12, - }, - { - 0: 6, - 1: 13, - 2: 14, - 3: 4, - 4: 3, - 5: 16, - 6: 0, - 7: 10, - 8: 15, - 9: 17, - 10: 7, - 11: 12, - 12: 11, - 13: 1, - 14: 2, - 15: 8, - 16: 5, - 17: 9, - }, - { - 0: 7, - 1: 17, - 2: 5, - 3: 6, - 4: 12, - 5: 2, - 6: 3, - 7: 0, - 8: 13, - 9: 10, - 10: 9, - 11: 14, - 12: 4, - 13: 8, - 14: 11, - 15: 16, - 16: 15, - 17: 1, - }, - { - 0: 8, - 1: 12, - 2: 7, - 3: 10, - 4: 9, - 5: 6, - 6: 5, - 7: 2, - 8: 0, - 9: 4, - 10: 3, - 11: 17, - 12: 1, - 13: 15, - 14: 16, - 15: 13, - 16: 14, - 17: 11, - }, - { - 0: 9, - 1: 4, - 2: 10, - 3: 14, - 4: 1, - 5: 7, - 6: 13, - 7: 5, - 8: 17, - 9: 0, - 10: 2, - 11: 15, - 12: 16, - 13: 6, - 14: 3, - 15: 11, - 16: 12, - 17: 8, - }, - { - 0: 10, - 1: 11, - 2: 9, - 3: 13, - 4: 14, - 5: 12, - 6: 15, - 7: 17, - 8: 16, - 9: 2, - 10: 0, - 11: 1, - 12: 5, - 13: 3, - 14: 4, - 15: 6, - 16: 8, - 17: 7, - }, - { - 0: 11, - 1: 7, - 2: 13, - 3: 12, - 4: 16, - 5: 10, - 6: 17, - 7: 1, - 8: 14, - 9: 15, - 10: 5, - 11: 0, - 12: 3, - 13: 2, - 14: 8, - 15: 9, - 16: 4, - 17: 6, - }, - { - 0: 12, - 1: 8, - 2: 6, - 3: 7, - 4: 15, - 5: 13, - 6: 2, - 7: 3, - 8: 1, - 9: 14, - 10: 17, - 11: 16, - 12: 0, - 13: 5, - 14: 9, - 15: 4, - 16: 11, - 17: 10, - }, - { - 0: 13, - 1: 3, - 2: 12, - 3: 1, - 4: 17, - 5: 8, - 6: 11, - 7: 14, - 8: 5, - 9: 16, - 10: 15, - 11: 6, - 12: 2, - 13: 0, - 14: 7, - 15: 10, - 16: 9, - 17: 4, - }, - { - 0: 14, - 1: 6, - 2: 17, - 3: 11, - 4: 8, - 5: 15, - 6: 1, - 7: 12, - 8: 4, - 9: 13, - 10: 16, - 11: 3, - 12: 7, - 13: 9, - 14: 0, - 15: 5, - 16: 10, - 17: 2, - }, - { - 0: 15, - 1: 2, - 2: 1, - 3: 9, - 4: 11, - 5: 17, - 6: 12, - 7: 8, - 8: 7, - 9: 3, - 10: 14, - 11: 4, - 12: 6, - 13: 16, - 14: 10, - 15: 0, - 16: 13, - 17: 5, - }, - { - 0: 16, - 1: 9, - 2: 8, - 3: 17, - 4: 13, - 5: 11, - 6: 14, - 7: 15, - 8: 2, - 9: 1, - 10: 12, - 11: 5, - 12: 10, - 13: 4, - 14: 6, - 15: 7, - 16: 0, - 17: 3, - }, - { - 0: 17, - 1: 15, - 2: 11, - 3: 8, - 4: 10, - 5: 14, - 6: 16, - 7: 13, - 8: 3, - 9: 12, - 10: 4, - 11: 2, - 12: 9, - 13: 7, - 14: 5, - 15: 1, - 16: 6, - 17: 0, - }, - ], - 20: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - 16: 18, - 17: 19, - 18: 16, - 19: 17, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - 16: 19, - 17: 18, - 18: 17, - 19: 16, - }, - { - 0: 4, - 1: 16, - 2: 6, - 3: 18, - 4: 0, - 5: 9, - 6: 2, - 7: 11, - 8: 12, - 9: 5, - 10: 14, - 11: 7, - 12: 8, - 13: 17, - 14: 10, - 15: 19, - 16: 1, - 17: 13, - 18: 3, - 19: 15, - }, - { - 0: 5, - 1: 4, - 2: 16, - 3: 17, - 4: 1, - 5: 0, - 6: 11, - 7: 10, - 8: 13, - 9: 12, - 10: 7, - 11: 6, - 12: 9, - 13: 8, - 14: 19, - 15: 18, - 16: 2, - 17: 3, - 18: 15, - 19: 14, - }, - { - 0: 6, - 1: 5, - 2: 18, - 3: 16, - 4: 11, - 5: 1, - 6: 0, - 7: 9, - 8: 14, - 9: 7, - 10: 12, - 11: 4, - 12: 10, - 13: 19, - 14: 8, - 15: 17, - 16: 3, - 17: 15, - 18: 2, - 19: 13, - }, - { - 0: 7, - 1: 6, - 2: 9, - 3: 13, - 4: 16, - 5: 11, - 6: 1, - 7: 0, - 8: 15, - 9: 2, - 10: 19, - 11: 5, - 12: 17, - 13: 3, - 14: 18, - 15: 8, - 16: 4, - 17: 12, - 18: 14, - 19: 10, - }, - { - 0: 8, - 1: 17, - 2: 7, - 3: 11, - 4: 14, - 5: 16, - 6: 18, - 7: 2, - 8: 0, - 9: 15, - 10: 13, - 11: 3, - 12: 19, - 13: 10, - 14: 4, - 15: 9, - 16: 5, - 17: 1, - 18: 6, - 19: 12, - }, - { - 0: 9, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 14, - 7: 1, - 8: 19, - 9: 0, - 10: 15, - 11: 17, - 12: 18, - 13: 16, - 14: 6, - 15: 10, - 16: 13, - 17: 11, - 18: 12, - 19: 8, - }, - { - 0: 10, - 1: 11, - 2: 17, - 3: 12, - 4: 15, - 5: 14, - 6: 16, - 7: 8, - 8: 7, - 9: 19, - 10: 0, - 11: 1, - 12: 3, - 13: 18, - 14: 5, - 15: 4, - 16: 6, - 17: 2, - 18: 13, - 19: 9, - }, - { - 0: 11, - 1: 13, - 2: 14, - 3: 4, - 4: 3, - 5: 19, - 6: 9, - 7: 15, - 8: 18, - 9: 6, - 10: 17, - 11: 0, - 12: 16, - 13: 1, - 14: 2, - 15: 7, - 16: 12, - 17: 10, - 18: 8, - 19: 5, - }, - { - 0: 12, - 1: 14, - 2: 15, - 3: 8, - 4: 18, - 5: 10, - 6: 13, - 7: 16, - 8: 3, - 9: 17, - 10: 5, - 11: 19, - 12: 0, - 13: 6, - 14: 1, - 15: 2, - 16: 7, - 17: 9, - 18: 4, - 19: 11, - }, - { - 0: 13, - 1: 10, - 2: 5, - 3: 7, - 4: 12, - 5: 2, - 6: 19, - 7: 3, - 8: 17, - 9: 18, - 10: 1, - 11: 15, - 12: 4, - 13: 0, - 14: 16, - 15: 11, - 16: 14, - 17: 8, - 18: 9, - 19: 6, - }, - { - 0: 14, - 1: 19, - 2: 13, - 3: 10, - 4: 8, - 5: 18, - 6: 15, - 7: 17, - 8: 4, - 9: 16, - 10: 3, - 11: 12, - 12: 11, - 13: 2, - 14: 0, - 15: 6, - 16: 9, - 17: 7, - 18: 5, - 19: 1, - }, - { - 0: 15, - 1: 18, - 2: 10, - 3: 14, - 4: 9, - 5: 12, - 6: 17, - 7: 19, - 8: 16, - 9: 4, - 10: 2, - 11: 13, - 12: 5, - 13: 11, - 14: 3, - 15: 0, - 16: 8, - 17: 6, - 18: 1, - 19: 7, - }, - { - 0: 16, - 1: 8, - 2: 11, - 3: 6, - 4: 19, - 5: 15, - 6: 3, - 7: 12, - 8: 1, - 9: 13, - 10: 18, - 11: 2, - 12: 7, - 13: 9, - 14: 17, - 15: 5, - 16: 0, - 17: 14, - 18: 10, - 19: 4, - }, - { - 0: 17, - 1: 9, - 2: 12, - 3: 19, - 4: 10, - 5: 13, - 6: 8, - 7: 14, - 8: 6, - 9: 1, - 10: 4, - 11: 18, - 12: 2, - 13: 5, - 14: 7, - 15: 16, - 16: 15, - 17: 0, - 18: 11, - 19: 3, - }, - { - 0: 18, - 1: 12, - 2: 19, - 3: 15, - 4: 17, - 5: 8, - 6: 10, - 7: 13, - 8: 5, - 9: 14, - 10: 6, - 11: 16, - 12: 1, - 13: 7, - 14: 9, - 15: 3, - 16: 11, - 17: 4, - 18: 0, - 19: 2, - }, - { - 0: 19, - 1: 15, - 2: 8, - 3: 9, - 4: 13, - 5: 17, - 6: 12, - 7: 18, - 8: 2, - 9: 3, - 10: 16, - 11: 14, - 12: 6, - 13: 4, - 14: 11, - 15: 1, - 16: 10, - 17: 5, - 18: 7, - 19: 0, - }, - ], - 22: false, - 24: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - 16: 18, - 17: 19, - 18: 16, - 19: 17, - 20: 22, - 21: 23, - 22: 20, - 23: 21, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - 16: 19, - 17: 18, - 18: 17, - 19: 16, - 20: 23, - 21: 22, - 22: 21, - 23: 20, - }, - { - 0: 4, - 1: 5, - 2: 6, - 3: 7, - 4: 0, - 5: 1, - 6: 2, - 7: 3, - 8: 12, - 9: 13, - 10: 14, - 11: 15, - 12: 8, - 13: 9, - 14: 10, - 15: 11, - 16: 20, - 17: 21, - 18: 22, - 19: 23, - 20: 16, - 21: 17, - 22: 18, - 23: 19, - }, - { - 0: 5, - 1: 4, - 2: 7, - 3: 6, - 4: 1, - 5: 0, - 6: 3, - 7: 2, - 8: 13, - 9: 12, - 10: 15, - 11: 14, - 12: 9, - 13: 8, - 14: 11, - 15: 10, - 16: 21, - 17: 20, - 18: 23, - 19: 22, - 20: 17, - 21: 16, - 22: 19, - 23: 18, - }, - { - 0: 6, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 0, - 7: 1, - 8: 14, - 9: 15, - 10: 12, - 11: 13, - 12: 10, - 13: 11, - 14: 8, - 15: 9, - 16: 22, - 17: 23, - 18: 20, - 19: 21, - 20: 18, - 21: 19, - 22: 16, - 23: 17, - }, - { - 0: 7, - 1: 6, - 2: 5, - 3: 4, - 4: 3, - 5: 2, - 6: 1, - 7: 0, - 8: 15, - 9: 14, - 10: 13, - 11: 12, - 12: 11, - 13: 10, - 14: 9, - 15: 8, - 16: 23, - 17: 22, - 18: 21, - 19: 20, - 20: 19, - 21: 18, - 22: 17, - 23: 16, - }, - { - 0: 8, - 1: 16, - 2: 10, - 3: 18, - 4: 12, - 5: 20, - 6: 14, - 7: 22, - 8: 0, - 9: 17, - 10: 2, - 11: 19, - 12: 4, - 13: 21, - 14: 6, - 15: 23, - 16: 1, - 17: 9, - 18: 3, - 19: 11, - 20: 5, - 21: 13, - 22: 7, - 23: 15, - }, - { - 0: 9, - 1: 8, - 2: 16, - 3: 17, - 4: 13, - 5: 12, - 6: 20, - 7: 21, - 8: 1, - 9: 0, - 10: 19, - 11: 18, - 12: 5, - 13: 4, - 14: 23, - 15: 22, - 16: 2, - 17: 3, - 18: 11, - 19: 10, - 20: 6, - 21: 7, - 22: 15, - 23: 14, - }, - { - 0: 10, - 1: 17, - 2: 8, - 3: 16, - 4: 14, - 5: 22, - 6: 12, - 7: 19, - 8: 2, - 9: 18, - 10: 0, - 11: 20, - 12: 6, - 13: 23, - 14: 4, - 15: 21, - 16: 3, - 17: 1, - 18: 9, - 19: 7, - 20: 11, - 21: 15, - 22: 5, - 23: 13, - }, - { - 0: 11, - 1: 21, - 2: 13, - 3: 20, - 4: 16, - 5: 8, - 6: 18, - 7: 10, - 8: 5, - 9: 23, - 10: 7, - 11: 0, - 12: 19, - 13: 2, - 14: 22, - 15: 17, - 16: 4, - 17: 15, - 18: 6, - 19: 12, - 20: 3, - 21: 1, - 22: 14, - 23: 9, - }, - { - 0: 12, - 1: 20, - 2: 19, - 3: 9, - 4: 10, - 5: 15, - 6: 22, - 7: 16, - 8: 21, - 9: 3, - 10: 4, - 11: 23, - 12: 0, - 13: 17, - 14: 18, - 15: 5, - 16: 7, - 17: 13, - 18: 14, - 19: 2, - 20: 1, - 21: 8, - 22: 6, - 23: 11, - }, - { - 0: 13, - 1: 9, - 2: 11, - 3: 21, - 4: 17, - 5: 16, - 6: 15, - 7: 18, - 8: 20, - 9: 1, - 10: 23, - 11: 2, - 12: 22, - 13: 0, - 14: 19, - 15: 6, - 16: 5, - 17: 4, - 18: 7, - 19: 14, - 20: 8, - 21: 3, - 22: 12, - 23: 10, - }, - { - 0: 14, - 1: 22, - 2: 20, - 3: 13, - 4: 21, - 5: 11, - 6: 19, - 7: 9, - 8: 23, - 9: 7, - 10: 18, - 11: 5, - 12: 17, - 13: 3, - 14: 0, - 15: 16, - 16: 15, - 17: 12, - 18: 10, - 19: 6, - 20: 2, - 21: 4, - 22: 1, - 23: 8, - }, - { - 0: 15, - 1: 18, - 2: 23, - 3: 8, - 4: 19, - 5: 17, - 6: 10, - 7: 13, - 8: 3, - 9: 16, - 10: 6, - 11: 22, - 12: 20, - 13: 7, - 14: 21, - 15: 0, - 16: 9, - 17: 5, - 18: 1, - 19: 4, - 20: 12, - 21: 14, - 22: 11, - 23: 2, - }, - { - 0: 16, - 1: 23, - 2: 15, - 3: 10, - 4: 20, - 5: 18, - 6: 8, - 7: 14, - 8: 6, - 9: 19, - 10: 3, - 11: 17, - 12: 21, - 13: 22, - 14: 7, - 15: 2, - 16: 0, - 17: 11, - 18: 5, - 19: 9, - 20: 4, - 21: 12, - 22: 13, - 23: 1, - }, - { - 0: 17, - 1: 19, - 2: 14, - 3: 12, - 4: 22, - 5: 23, - 6: 11, - 7: 15, - 8: 18, - 9: 20, - 10: 21, - 11: 6, - 12: 3, - 13: 16, - 14: 2, - 15: 7, - 16: 13, - 17: 0, - 18: 8, - 19: 1, - 20: 9, - 21: 10, - 22: 4, - 23: 5, - }, - { - 0: 18, - 1: 15, - 2: 12, - 3: 22, - 4: 23, - 5: 19, - 6: 13, - 7: 11, - 8: 16, - 9: 21, - 10: 17, - 11: 7, - 12: 2, - 13: 6, - 14: 20, - 15: 1, - 16: 8, - 17: 10, - 18: 0, - 19: 5, - 20: 14, - 21: 9, - 22: 3, - 23: 4, - }, - { - 0: 19, - 1: 11, - 2: 21, - 3: 15, - 4: 18, - 5: 14, - 6: 17, - 7: 8, - 8: 7, - 9: 22, - 10: 16, - 11: 1, - 12: 23, - 13: 20, - 14: 5, - 15: 3, - 16: 10, - 17: 6, - 18: 4, - 19: 0, - 20: 13, - 21: 2, - 22: 9, - 23: 12, - }, - { - 0: 20, - 1: 14, - 2: 17, - 3: 11, - 4: 9, - 5: 10, - 6: 21, - 7: 23, - 8: 22, - 9: 4, - 10: 5, - 11: 3, - 12: 16, - 13: 18, - 14: 1, - 15: 19, - 16: 12, - 17: 2, - 18: 13, - 19: 15, - 20: 0, - 21: 6, - 22: 8, - 23: 7, - }, - { - 0: 21, - 1: 10, - 2: 22, - 3: 14, - 4: 8, - 5: 9, - 6: 23, - 7: 17, - 8: 4, - 9: 5, - 10: 1, - 11: 16, - 12: 18, - 13: 19, - 14: 3, - 15: 20, - 16: 11, - 17: 7, - 18: 12, - 19: 13, - 20: 15, - 21: 0, - 22: 2, - 23: 6, - }, - { - 0: 22, - 1: 13, - 2: 9, - 3: 23, - 4: 11, - 5: 21, - 6: 16, - 7: 12, - 8: 19, - 9: 2, - 10: 20, - 11: 4, - 12: 7, - 13: 1, - 14: 17, - 15: 18, - 16: 6, - 17: 14, - 18: 15, - 19: 8, - 20: 10, - 21: 5, - 22: 0, - 23: 3, - }, - { - 0: 23, - 1: 12, - 2: 18, - 3: 19, - 4: 15, - 5: 13, - 6: 9, - 7: 20, - 8: 17, - 9: 6, - 10: 22, - 11: 21, - 12: 1, - 13: 5, - 14: 16, - 15: 4, - 16: 14, - 17: 8, - 18: 2, - 19: 3, - 20: 7, - 21: 11, - 22: 10, - 23: 0, - }, - ], - 26: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - }, - { - 0: 2, - 1: 24, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 10, - 9: 7, - 10: 8, - 11: 13, - 12: 14, - 13: 11, - 14: 12, - 15: 17, - 16: 18, - 17: 15, - 18: 16, - 19: 21, - 20: 22, - 21: 19, - 22: 20, - 23: 25, - 24: 1, - 25: 23, - }, - { - 0: 3, - 1: 5, - 2: 24, - 3: 0, - 4: 7, - 5: 1, - 6: 9, - 7: 4, - 8: 11, - 9: 6, - 10: 13, - 11: 8, - 12: 15, - 13: 10, - 14: 17, - 15: 12, - 16: 19, - 17: 14, - 18: 21, - 19: 16, - 20: 23, - 21: 18, - 22: 25, - 23: 20, - 24: 2, - 25: 22, - }, - { - 0: 4, - 1: 22, - 2: 23, - 3: 24, - 4: 0, - 5: 9, - 6: 10, - 7: 11, - 8: 12, - 9: 5, - 10: 6, - 11: 7, - 12: 8, - 13: 17, - 14: 18, - 15: 19, - 16: 20, - 17: 13, - 18: 14, - 19: 15, - 20: 16, - 21: 25, - 22: 1, - 23: 2, - 24: 3, - 25: 21, - }, - { - 0: 5, - 1: 2, - 2: 1, - 3: 23, - 4: 9, - 5: 0, - 6: 8, - 7: 15, - 8: 6, - 9: 4, - 10: 18, - 11: 12, - 12: 11, - 13: 14, - 14: 13, - 15: 7, - 16: 21, - 17: 19, - 18: 10, - 19: 17, - 20: 25, - 21: 16, - 22: 24, - 23: 3, - 24: 22, - 25: 20, - }, - { - 0: 6, - 1: 20, - 2: 5, - 3: 9, - 4: 18, - 5: 2, - 6: 0, - 7: 17, - 8: 13, - 9: 3, - 10: 12, - 11: 14, - 12: 10, - 13: 8, - 14: 11, - 15: 21, - 16: 22, - 17: 7, - 18: 4, - 19: 25, - 20: 1, - 21: 15, - 22: 16, - 23: 24, - 24: 23, - 25: 19, - }, - { - 0: 7, - 1: 10, - 2: 9, - 3: 19, - 4: 21, - 5: 15, - 6: 11, - 7: 0, - 8: 14, - 9: 2, - 10: 1, - 11: 6, - 12: 22, - 13: 25, - 14: 8, - 15: 5, - 16: 23, - 17: 18, - 18: 17, - 19: 3, - 20: 24, - 21: 4, - 22: 12, - 23: 16, - 24: 20, - 25: 13, - }, - { - 0: 8, - 1: 6, - 2: 11, - 3: 17, - 4: 24, - 5: 22, - 6: 1, - 7: 14, - 8: 0, - 9: 20, - 10: 25, - 11: 2, - 12: 18, - 13: 19, - 14: 7, - 15: 16, - 16: 15, - 17: 3, - 18: 12, - 19: 13, - 20: 9, - 21: 23, - 22: 5, - 23: 21, - 24: 4, - 25: 10, - }, - { - 0: 9, - 1: 23, - 2: 6, - 3: 20, - 4: 25, - 5: 19, - 6: 2, - 7: 8, - 8: 7, - 9: 0, - 10: 14, - 11: 21, - 12: 17, - 13: 15, - 14: 10, - 15: 13, - 16: 24, - 17: 12, - 18: 22, - 19: 5, - 20: 3, - 21: 11, - 22: 18, - 23: 1, - 24: 16, - 25: 4, - }, - { - 0: 10, - 1: 13, - 2: 4, - 3: 21, - 4: 2, - 5: 6, - 6: 5, - 7: 12, - 8: 19, - 9: 14, - 10: 0, - 11: 23, - 12: 7, - 13: 1, - 14: 9, - 15: 20, - 16: 25, - 17: 22, - 18: 24, - 19: 8, - 20: 15, - 21: 3, - 22: 17, - 23: 11, - 24: 18, - 25: 16, - }, - { - 0: 11, - 1: 25, - 2: 20, - 3: 8, - 4: 16, - 5: 10, - 6: 14, - 7: 13, - 8: 3, - 9: 12, - 10: 5, - 11: 0, - 12: 9, - 13: 7, - 14: 6, - 15: 18, - 16: 4, - 17: 23, - 18: 15, - 19: 22, - 20: 2, - 21: 24, - 22: 19, - 23: 17, - 24: 21, - 25: 1, - }, - { - 0: 12, - 1: 16, - 2: 17, - 3: 14, - 4: 19, - 5: 7, - 6: 13, - 7: 5, - 8: 24, - 9: 10, - 10: 9, - 11: 20, - 12: 0, - 13: 6, - 14: 3, - 15: 25, - 16: 1, - 17: 2, - 18: 23, - 19: 4, - 20: 11, - 21: 22, - 22: 21, - 23: 18, - 24: 8, - 25: 15, - }, - { - 0: 13, - 1: 17, - 2: 16, - 3: 10, - 4: 11, - 5: 8, - 6: 19, - 7: 25, - 8: 5, - 9: 24, - 10: 3, - 11: 4, - 12: 23, - 13: 0, - 14: 21, - 15: 22, - 16: 2, - 17: 1, - 18: 20, - 19: 6, - 20: 18, - 21: 14, - 22: 15, - 23: 12, - 24: 9, - 25: 7, - }, - { - 0: 14, - 1: 7, - 2: 13, - 3: 18, - 4: 10, - 5: 16, - 6: 17, - 7: 1, - 8: 22, - 9: 21, - 10: 4, - 11: 25, - 12: 20, - 13: 2, - 14: 0, - 15: 23, - 16: 5, - 17: 6, - 18: 3, - 19: 24, - 20: 12, - 21: 9, - 22: 8, - 23: 15, - 24: 19, - 25: 11, - }, - { - 0: 15, - 1: 4, - 2: 7, - 3: 11, - 4: 1, - 5: 25, - 6: 24, - 7: 2, - 8: 17, - 9: 22, - 10: 21, - 11: 3, - 12: 16, - 13: 18, - 14: 23, - 15: 0, - 16: 12, - 17: 8, - 18: 13, - 19: 20, - 20: 19, - 21: 10, - 22: 9, - 23: 14, - 24: 6, - 25: 5, - }, - { - 0: 16, - 1: 21, - 2: 14, - 3: 6, - 4: 8, - 5: 11, - 6: 3, - 7: 22, - 8: 4, - 9: 17, - 10: 20, - 11: 5, - 12: 19, - 13: 23, - 14: 2, - 15: 24, - 16: 0, - 17: 9, - 18: 25, - 19: 12, - 20: 10, - 21: 1, - 22: 7, - 23: 13, - 24: 15, - 25: 18, - }, - { - 0: 17, - 1: 15, - 2: 8, - 3: 22, - 4: 20, - 5: 13, - 6: 25, - 7: 10, - 8: 2, - 9: 16, - 10: 7, - 11: 18, - 12: 21, - 13: 5, - 14: 24, - 15: 1, - 16: 9, - 17: 0, - 18: 11, - 19: 23, - 20: 4, - 21: 12, - 22: 3, - 23: 19, - 24: 14, - 25: 6, - }, - { - 0: 18, - 1: 8, - 2: 25, - 3: 12, - 4: 14, - 5: 21, - 6: 22, - 7: 23, - 8: 1, - 9: 19, - 10: 16, - 11: 15, - 12: 3, - 13: 20, - 14: 4, - 15: 11, - 16: 10, - 17: 24, - 18: 0, - 19: 9, - 20: 13, - 21: 5, - 22: 6, - 23: 7, - 24: 17, - 25: 2, - }, - { - 0: 19, - 1: 11, - 2: 22, - 3: 4, - 4: 3, - 5: 17, - 6: 23, - 7: 21, - 8: 20, - 9: 18, - 10: 15, - 11: 1, - 12: 24, - 13: 16, - 14: 25, - 15: 10, - 16: 13, - 17: 5, - 18: 9, - 19: 0, - 20: 8, - 21: 7, - 22: 2, - 23: 6, - 24: 12, - 25: 14, - }, - { - 0: 20, - 1: 12, - 2: 19, - 3: 15, - 4: 22, - 5: 14, - 6: 21, - 7: 16, - 8: 18, - 9: 25, - 10: 23, - 11: 17, - 12: 1, - 13: 24, - 14: 5, - 15: 3, - 16: 7, - 17: 11, - 18: 8, - 19: 2, - 20: 0, - 21: 6, - 22: 4, - 23: 10, - 24: 13, - 25: 9, - }, - { - 0: 21, - 1: 19, - 2: 10, - 3: 16, - 4: 12, - 5: 23, - 6: 18, - 7: 24, - 8: 15, - 9: 11, - 10: 2, - 11: 9, - 12: 4, - 13: 22, - 14: 20, - 15: 8, - 16: 3, - 17: 25, - 18: 6, - 19: 1, - 20: 14, - 21: 0, - 22: 13, - 23: 5, - 24: 7, - 25: 17, - }, - { - 0: 22, - 1: 3, - 2: 15, - 3: 1, - 4: 13, - 5: 20, - 6: 12, - 7: 18, - 8: 25, - 9: 23, - 10: 24, - 11: 19, - 12: 6, - 13: 4, - 14: 16, - 15: 2, - 16: 14, - 17: 21, - 18: 7, - 19: 11, - 20: 5, - 21: 17, - 22: 0, - 23: 9, - 24: 10, - 25: 8, - }, - { - 0: 23, - 1: 18, - 2: 12, - 3: 25, - 4: 15, - 5: 24, - 6: 16, - 7: 20, - 8: 21, - 9: 13, - 10: 17, - 11: 22, - 12: 2, - 13: 9, - 14: 19, - 15: 4, - 16: 6, - 17: 10, - 18: 1, - 19: 14, - 20: 7, - 21: 8, - 22: 11, - 23: 0, - 24: 5, - 25: 3, - }, - { - 0: 24, - 1: 14, - 2: 21, - 3: 13, - 4: 17, - 5: 18, - 6: 20, - 7: 19, - 8: 23, - 9: 15, - 10: 22, - 11: 16, - 12: 25, - 13: 3, - 14: 1, - 15: 9, - 16: 11, - 17: 4, - 18: 5, - 19: 7, - 20: 6, - 21: 2, - 22: 10, - 23: 8, - 24: 0, - 25: 12, - }, - { - 0: 25, - 1: 9, - 2: 18, - 3: 7, - 4: 23, - 5: 12, - 6: 15, - 7: 3, - 8: 16, - 9: 1, - 10: 19, - 11: 24, - 12: 5, - 13: 21, - 14: 22, - 15: 6, - 16: 8, - 17: 20, - 18: 2, - 19: 10, - 20: 17, - 21: 13, - 22: 14, - 23: 4, - 24: 11, - 25: 0, - }, - ], - 28: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - 26: 27, - 27: 26, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - 16: 18, - 17: 19, - 18: 16, - 19: 17, - 20: 22, - 21: 23, - 22: 20, - 23: 21, - 24: 26, - 25: 27, - 26: 24, - 27: 25, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - 16: 19, - 17: 18, - 18: 17, - 19: 16, - 20: 23, - 21: 22, - 22: 21, - 23: 20, - 24: 27, - 25: 26, - 26: 25, - 27: 24, - }, - { - 0: 4, - 1: 24, - 2: 6, - 3: 26, - 4: 0, - 5: 9, - 6: 2, - 7: 11, - 8: 12, - 9: 5, - 10: 14, - 11: 7, - 12: 8, - 13: 17, - 14: 10, - 15: 19, - 16: 20, - 17: 13, - 18: 22, - 19: 15, - 20: 16, - 21: 25, - 22: 18, - 23: 27, - 24: 1, - 25: 21, - 26: 3, - 27: 23, - }, - { - 0: 5, - 1: 4, - 2: 24, - 3: 25, - 4: 1, - 5: 0, - 6: 11, - 7: 10, - 8: 13, - 9: 12, - 10: 7, - 11: 6, - 12: 9, - 13: 8, - 14: 19, - 15: 18, - 16: 21, - 17: 20, - 18: 15, - 19: 14, - 20: 17, - 21: 16, - 22: 27, - 23: 26, - 24: 2, - 25: 3, - 26: 23, - 27: 22, - }, - { - 0: 6, - 1: 5, - 2: 26, - 3: 24, - 4: 11, - 5: 1, - 6: 0, - 7: 9, - 8: 14, - 9: 7, - 10: 12, - 11: 4, - 12: 10, - 13: 19, - 14: 8, - 15: 17, - 16: 22, - 17: 15, - 18: 20, - 19: 13, - 20: 18, - 21: 27, - 22: 16, - 23: 25, - 24: 3, - 25: 23, - 26: 2, - 27: 21, - }, - { - 0: 7, - 1: 11, - 2: 9, - 3: 21, - 4: 24, - 5: 14, - 6: 17, - 7: 0, - 8: 15, - 9: 2, - 10: 27, - 11: 1, - 12: 19, - 13: 18, - 14: 5, - 15: 8, - 16: 23, - 17: 6, - 18: 13, - 19: 12, - 20: 25, - 21: 3, - 22: 26, - 23: 16, - 24: 4, - 25: 20, - 26: 22, - 27: 10, - }, - { - 0: 8, - 1: 9, - 2: 7, - 3: 23, - 4: 25, - 5: 10, - 6: 26, - 7: 2, - 8: 0, - 9: 1, - 10: 5, - 11: 14, - 12: 17, - 13: 20, - 14: 11, - 15: 21, - 16: 24, - 17: 12, - 18: 27, - 19: 22, - 20: 13, - 21: 15, - 22: 19, - 23: 3, - 24: 16, - 25: 4, - 26: 6, - 27: 18, - }, - { - 0: 9, - 1: 22, - 2: 17, - 3: 14, - 4: 27, - 5: 11, - 6: 25, - 7: 20, - 8: 19, - 9: 0, - 10: 15, - 11: 5, - 12: 18, - 13: 16, - 14: 3, - 15: 10, - 16: 13, - 17: 2, - 18: 12, - 19: 8, - 20: 7, - 21: 26, - 22: 1, - 23: 24, - 24: 23, - 25: 6, - 26: 21, - 27: 4, - }, - { - 0: 10, - 1: 18, - 2: 12, - 3: 16, - 4: 19, - 5: 26, - 6: 24, - 7: 17, - 8: 22, - 9: 25, - 10: 0, - 11: 15, - 12: 2, - 13: 21, - 14: 23, - 15: 11, - 16: 3, - 17: 7, - 18: 1, - 19: 4, - 20: 27, - 21: 13, - 22: 8, - 23: 14, - 24: 6, - 25: 9, - 26: 5, - 27: 20, - }, - { - 0: 11, - 1: 23, - 2: 5, - 3: 15, - 4: 21, - 5: 2, - 6: 8, - 7: 19, - 8: 6, - 9: 14, - 10: 20, - 11: 0, - 12: 16, - 13: 27, - 14: 9, - 15: 3, - 16: 12, - 17: 24, - 18: 26, - 19: 7, - 20: 10, - 21: 4, - 22: 25, - 23: 1, - 24: 17, - 25: 22, - 26: 18, - 27: 13, - }, - { - 0: 12, - 1: 14, - 2: 21, - 3: 22, - 4: 9, - 5: 15, - 6: 13, - 7: 8, - 8: 7, - 9: 4, - 10: 19, - 11: 25, - 12: 0, - 13: 6, - 14: 1, - 15: 5, - 16: 26, - 17: 27, - 18: 23, - 19: 10, - 20: 24, - 21: 2, - 22: 3, - 23: 18, - 24: 20, - 25: 11, - 26: 16, - 27: 17, - }, - { - 0: 13, - 1: 25, - 2: 19, - 3: 9, - 4: 10, - 5: 12, - 6: 15, - 7: 21, - 8: 26, - 9: 3, - 10: 4, - 11: 18, - 12: 5, - 13: 0, - 14: 20, - 15: 6, - 16: 27, - 17: 23, - 18: 11, - 19: 2, - 20: 14, - 21: 7, - 22: 24, - 23: 17, - 24: 22, - 25: 1, - 26: 8, - 27: 16, - }, - { - 0: 14, - 1: 21, - 2: 15, - 3: 6, - 4: 18, - 5: 23, - 6: 3, - 7: 22, - 8: 17, - 9: 24, - 10: 13, - 11: 26, - 12: 20, - 13: 10, - 14: 0, - 15: 2, - 16: 25, - 17: 8, - 18: 4, - 19: 27, - 20: 12, - 21: 1, - 22: 7, - 23: 5, - 24: 9, - 25: 16, - 26: 11, - 27: 19, - }, - { - 0: 15, - 1: 16, - 2: 13, - 3: 11, - 4: 20, - 5: 17, - 6: 19, - 7: 26, - 8: 23, - 9: 27, - 10: 25, - 11: 3, - 12: 22, - 13: 2, - 14: 18, - 15: 0, - 16: 1, - 17: 5, - 18: 14, - 19: 6, - 20: 4, - 21: 24, - 22: 12, - 23: 8, - 24: 21, - 25: 10, - 26: 7, - 27: 9, - }, - { - 0: 16, - 1: 26, - 2: 4, - 3: 20, - 4: 2, - 5: 25, - 6: 14, - 7: 24, - 8: 18, - 9: 17, - 10: 22, - 11: 13, - 12: 23, - 13: 11, - 14: 6, - 15: 27, - 16: 0, - 17: 9, - 18: 8, - 19: 21, - 20: 3, - 21: 19, - 22: 10, - 23: 12, - 24: 7, - 25: 5, - 26: 1, - 27: 15, - }, - { - 0: 17, - 1: 19, - 2: 11, - 3: 18, - 4: 16, - 5: 24, - 6: 20, - 7: 14, - 8: 25, - 9: 23, - 10: 21, - 11: 2, - 12: 27, - 13: 22, - 14: 7, - 15: 26, - 16: 4, - 17: 0, - 18: 3, - 19: 1, - 20: 6, - 21: 10, - 22: 13, - 23: 9, - 24: 5, - 25: 8, - 26: 15, - 27: 12, - }, - { - 0: 18, - 1: 15, - 2: 22, - 3: 12, - 4: 13, - 5: 21, - 6: 9, - 7: 25, - 8: 16, - 9: 6, - 10: 23, - 11: 20, - 12: 3, - 13: 4, - 14: 27, - 15: 1, - 16: 8, - 17: 26, - 18: 0, - 19: 24, - 20: 11, - 21: 5, - 22: 2, - 23: 10, - 24: 19, - 25: 7, - 26: 17, - 27: 14, - }, - { - 0: 19, - 1: 7, - 2: 23, - 3: 5, - 4: 15, - 5: 3, - 6: 18, - 7: 1, - 8: 27, - 9: 13, - 10: 16, - 11: 22, - 12: 24, - 13: 9, - 14: 21, - 15: 4, - 16: 10, - 17: 25, - 18: 6, - 19: 0, - 20: 26, - 21: 14, - 22: 11, - 23: 2, - 24: 12, - 25: 17, - 26: 20, - 27: 8, - }, - { - 0: 20, - 1: 8, - 2: 27, - 3: 7, - 4: 14, - 5: 13, - 6: 23, - 7: 3, - 8: 1, - 9: 16, - 10: 18, - 11: 21, - 12: 26, - 13: 5, - 14: 4, - 15: 24, - 16: 9, - 17: 22, - 18: 10, - 19: 25, - 20: 0, - 21: 11, - 22: 17, - 23: 6, - 24: 15, - 25: 19, - 26: 12, - 27: 2, - }, - { - 0: 21, - 1: 27, - 2: 14, - 3: 17, - 4: 8, - 5: 22, - 6: 12, - 7: 13, - 8: 4, - 9: 20, - 10: 24, - 11: 23, - 12: 6, - 13: 7, - 14: 2, - 15: 16, - 16: 15, - 17: 3, - 18: 25, - 19: 26, - 20: 9, - 21: 0, - 22: 5, - 23: 11, - 24: 10, - 25: 18, - 26: 19, - 27: 1, - }, - { - 0: 22, - 1: 13, - 2: 16, - 3: 10, - 4: 23, - 5: 8, - 6: 21, - 7: 15, - 8: 5, - 9: 26, - 10: 3, - 11: 27, - 12: 25, - 13: 1, - 14: 17, - 15: 7, - 16: 2, - 17: 14, - 18: 24, - 19: 20, - 20: 19, - 21: 6, - 22: 0, - 23: 4, - 24: 18, - 25: 12, - 26: 9, - 27: 11, - }, - { - 0: 23, - 1: 12, - 2: 10, - 3: 13, - 4: 17, - 5: 19, - 6: 16, - 7: 27, - 8: 20, - 9: 22, - 10: 2, - 11: 24, - 12: 1, - 13: 3, - 14: 26, - 15: 25, - 16: 6, - 17: 4, - 18: 21, - 19: 5, - 20: 8, - 21: 18, - 22: 9, - 23: 0, - 24: 11, - 25: 15, - 26: 14, - 27: 7, - }, - { - 0: 24, - 1: 20, - 2: 8, - 3: 27, - 4: 26, - 5: 18, - 6: 22, - 7: 12, - 8: 2, - 9: 21, - 10: 17, - 11: 19, - 12: 7, - 13: 25, - 14: 16, - 15: 23, - 16: 14, - 17: 10, - 18: 5, - 19: 11, - 20: 1, - 21: 9, - 22: 6, - 23: 15, - 24: 0, - 25: 13, - 26: 4, - 27: 3, - }, - { - 0: 25, - 1: 10, - 2: 18, - 3: 4, - 4: 3, - 5: 20, - 6: 27, - 7: 16, - 8: 24, - 9: 15, - 10: 1, - 11: 12, - 12: 11, - 13: 26, - 14: 22, - 15: 9, - 16: 7, - 17: 21, - 18: 2, - 19: 23, - 20: 5, - 21: 17, - 22: 14, - 23: 19, - 24: 8, - 25: 0, - 26: 13, - 27: 6, - }, - { - 0: 26, - 1: 17, - 2: 20, - 3: 19, - 4: 12, - 5: 27, - 6: 10, - 7: 23, - 8: 21, - 9: 18, - 10: 6, - 11: 16, - 12: 4, - 13: 24, - 14: 25, - 15: 22, - 16: 11, - 17: 1, - 18: 9, - 19: 3, - 20: 2, - 21: 8, - 22: 15, - 23: 7, - 24: 13, - 25: 14, - 26: 0, - 27: 5, - }, - { - 0: 27, - 1: 6, - 2: 25, - 3: 8, - 4: 22, - 5: 16, - 6: 1, - 7: 18, - 8: 3, - 9: 19, - 10: 26, - 11: 17, - 12: 21, - 13: 23, - 14: 24, - 15: 20, - 16: 5, - 17: 11, - 18: 7, - 19: 9, - 20: 15, - 21: 12, - 22: 4, - 23: 13, - 24: 14, - 25: 2, - 26: 10, - 27: 0, - }, - ], - 30: false, - 32: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - 26: 27, - 27: 26, - 28: 29, - 29: 28, - 30: 31, - 31: 30, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - 16: 18, - 17: 19, - 18: 16, - 19: 17, - 20: 22, - 21: 23, - 22: 20, - 23: 21, - 24: 26, - 25: 27, - 26: 24, - 27: 25, - 28: 30, - 29: 31, - 30: 28, - 31: 29, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - 16: 19, - 17: 18, - 18: 17, - 19: 16, - 20: 23, - 21: 22, - 22: 21, - 23: 20, - 24: 27, - 25: 26, - 26: 25, - 27: 24, - 28: 31, - 29: 30, - 30: 29, - 31: 28, - }, - { - 0: 4, - 1: 5, - 2: 6, - 3: 7, - 4: 0, - 5: 1, - 6: 2, - 7: 3, - 8: 12, - 9: 13, - 10: 14, - 11: 15, - 12: 8, - 13: 9, - 14: 10, - 15: 11, - 16: 20, - 17: 21, - 18: 22, - 19: 23, - 20: 16, - 21: 17, - 22: 18, - 23: 19, - 24: 28, - 25: 29, - 26: 30, - 27: 31, - 28: 24, - 29: 25, - 30: 26, - 31: 27, - }, - { - 0: 5, - 1: 4, - 2: 7, - 3: 6, - 4: 1, - 5: 0, - 6: 3, - 7: 2, - 8: 13, - 9: 12, - 10: 15, - 11: 14, - 12: 9, - 13: 8, - 14: 11, - 15: 10, - 16: 21, - 17: 20, - 18: 23, - 19: 22, - 20: 17, - 21: 16, - 22: 19, - 23: 18, - 24: 29, - 25: 28, - 26: 31, - 27: 30, - 28: 25, - 29: 24, - 30: 27, - 31: 26, - }, - { - 0: 6, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 0, - 7: 1, - 8: 14, - 9: 15, - 10: 12, - 11: 13, - 12: 10, - 13: 11, - 14: 8, - 15: 9, - 16: 22, - 17: 23, - 18: 20, - 19: 21, - 20: 18, - 21: 19, - 22: 16, - 23: 17, - 24: 30, - 25: 31, - 26: 28, - 27: 29, - 28: 26, - 29: 27, - 30: 24, - 31: 25, - }, - { - 0: 7, - 1: 6, - 2: 5, - 3: 4, - 4: 3, - 5: 2, - 6: 1, - 7: 0, - 8: 15, - 9: 14, - 10: 13, - 11: 12, - 12: 11, - 13: 10, - 14: 9, - 15: 8, - 16: 23, - 17: 22, - 18: 21, - 19: 20, - 20: 19, - 21: 18, - 22: 17, - 23: 16, - 24: 31, - 25: 30, - 26: 29, - 27: 28, - 28: 27, - 29: 26, - 30: 25, - 31: 24, - }, - { - 0: 8, - 1: 9, - 2: 10, - 3: 11, - 4: 12, - 5: 13, - 6: 14, - 7: 15, - 8: 0, - 9: 1, - 10: 2, - 11: 3, - 12: 4, - 13: 5, - 14: 6, - 15: 7, - 16: 24, - 17: 25, - 18: 26, - 19: 27, - 20: 28, - 21: 29, - 22: 30, - 23: 31, - 24: 16, - 25: 17, - 26: 18, - 27: 19, - 28: 20, - 29: 21, - 30: 22, - 31: 23, - }, - { - 0: 9, - 1: 8, - 2: 11, - 3: 10, - 4: 13, - 5: 12, - 6: 15, - 7: 14, - 8: 1, - 9: 0, - 10: 3, - 11: 2, - 12: 5, - 13: 4, - 14: 7, - 15: 6, - 16: 25, - 17: 24, - 18: 27, - 19: 26, - 20: 29, - 21: 28, - 22: 31, - 23: 30, - 24: 17, - 25: 16, - 26: 19, - 27: 18, - 28: 21, - 29: 20, - 30: 23, - 31: 22, - }, - { - 0: 10, - 1: 11, - 2: 8, - 3: 9, - 4: 14, - 5: 15, - 6: 12, - 7: 13, - 8: 2, - 9: 3, - 10: 0, - 11: 1, - 12: 6, - 13: 7, - 14: 4, - 15: 5, - 16: 26, - 17: 27, - 18: 24, - 19: 25, - 20: 30, - 21: 31, - 22: 28, - 23: 29, - 24: 18, - 25: 19, - 26: 16, - 27: 17, - 28: 22, - 29: 23, - 30: 20, - 31: 21, - }, - { - 0: 11, - 1: 10, - 2: 9, - 3: 8, - 4: 15, - 5: 14, - 6: 13, - 7: 12, - 8: 3, - 9: 2, - 10: 1, - 11: 0, - 12: 7, - 13: 6, - 14: 5, - 15: 4, - 16: 27, - 17: 26, - 18: 25, - 19: 24, - 20: 31, - 21: 30, - 22: 29, - 23: 28, - 24: 19, - 25: 18, - 26: 17, - 27: 16, - 28: 23, - 29: 22, - 30: 21, - 31: 20, - }, - { - 0: 12, - 1: 13, - 2: 14, - 3: 15, - 4: 8, - 5: 9, - 6: 10, - 7: 11, - 8: 4, - 9: 5, - 10: 6, - 11: 7, - 12: 0, - 13: 1, - 14: 2, - 15: 3, - 16: 28, - 17: 29, - 18: 30, - 19: 31, - 20: 24, - 21: 25, - 22: 26, - 23: 27, - 24: 20, - 25: 21, - 26: 22, - 27: 23, - 28: 16, - 29: 17, - 30: 18, - 31: 19, - }, - { - 0: 13, - 1: 12, - 2: 15, - 3: 14, - 4: 9, - 5: 8, - 6: 11, - 7: 10, - 8: 5, - 9: 4, - 10: 7, - 11: 6, - 12: 1, - 13: 0, - 14: 3, - 15: 2, - 16: 29, - 17: 28, - 18: 31, - 19: 30, - 20: 25, - 21: 24, - 22: 27, - 23: 26, - 24: 21, - 25: 20, - 26: 23, - 27: 22, - 28: 17, - 29: 16, - 30: 19, - 31: 18, - }, - { - 0: 14, - 1: 15, - 2: 12, - 3: 13, - 4: 10, - 5: 11, - 6: 8, - 7: 9, - 8: 6, - 9: 7, - 10: 4, - 11: 5, - 12: 2, - 13: 3, - 14: 0, - 15: 1, - 16: 30, - 17: 31, - 18: 28, - 19: 29, - 20: 26, - 21: 27, - 22: 24, - 23: 25, - 24: 22, - 25: 23, - 26: 20, - 27: 21, - 28: 18, - 29: 19, - 30: 16, - 31: 17, - }, - { - 0: 15, - 1: 14, - 2: 13, - 3: 12, - 4: 11, - 5: 10, - 6: 9, - 7: 8, - 8: 7, - 9: 6, - 10: 5, - 11: 4, - 12: 3, - 13: 2, - 14: 1, - 15: 0, - 16: 31, - 17: 30, - 18: 29, - 19: 28, - 20: 27, - 21: 26, - 22: 25, - 23: 24, - 24: 23, - 25: 22, - 26: 21, - 27: 20, - 28: 19, - 29: 18, - 30: 17, - 31: 16, - }, - { - 0: 16, - 1: 17, - 2: 18, - 3: 19, - 4: 20, - 5: 21, - 6: 22, - 7: 23, - 8: 24, - 9: 25, - 10: 26, - 11: 27, - 12: 28, - 13: 29, - 14: 30, - 15: 31, - 16: 0, - 17: 1, - 18: 2, - 19: 3, - 20: 4, - 21: 5, - 22: 6, - 23: 7, - 24: 8, - 25: 9, - 26: 10, - 27: 11, - 28: 12, - 29: 13, - 30: 14, - 31: 15, - }, - { - 0: 17, - 1: 16, - 2: 19, - 3: 18, - 4: 21, - 5: 20, - 6: 23, - 7: 22, - 8: 25, - 9: 24, - 10: 27, - 11: 26, - 12: 29, - 13: 28, - 14: 31, - 15: 30, - 16: 1, - 17: 0, - 18: 3, - 19: 2, - 20: 5, - 21: 4, - 22: 7, - 23: 6, - 24: 9, - 25: 8, - 26: 11, - 27: 10, - 28: 13, - 29: 12, - 30: 15, - 31: 14, - }, - { - 0: 18, - 1: 19, - 2: 16, - 3: 17, - 4: 22, - 5: 23, - 6: 20, - 7: 21, - 8: 26, - 9: 27, - 10: 24, - 11: 25, - 12: 30, - 13: 31, - 14: 28, - 15: 29, - 16: 2, - 17: 3, - 18: 0, - 19: 1, - 20: 6, - 21: 7, - 22: 4, - 23: 5, - 24: 10, - 25: 11, - 26: 8, - 27: 9, - 28: 14, - 29: 15, - 30: 12, - 31: 13, - }, - { - 0: 19, - 1: 18, - 2: 17, - 3: 16, - 4: 23, - 5: 22, - 6: 21, - 7: 20, - 8: 27, - 9: 26, - 10: 25, - 11: 24, - 12: 31, - 13: 30, - 14: 29, - 15: 28, - 16: 3, - 17: 2, - 18: 1, - 19: 0, - 20: 7, - 21: 6, - 22: 5, - 23: 4, - 24: 11, - 25: 10, - 26: 9, - 27: 8, - 28: 15, - 29: 14, - 30: 13, - 31: 12, - }, - { - 0: 20, - 1: 21, - 2: 22, - 3: 23, - 4: 16, - 5: 17, - 6: 18, - 7: 19, - 8: 28, - 9: 29, - 10: 30, - 11: 31, - 12: 24, - 13: 25, - 14: 26, - 15: 27, - 16: 4, - 17: 5, - 18: 6, - 19: 7, - 20: 0, - 21: 1, - 22: 2, - 23: 3, - 24: 12, - 25: 13, - 26: 14, - 27: 15, - 28: 8, - 29: 9, - 30: 10, - 31: 11, - }, - { - 0: 21, - 1: 20, - 2: 23, - 3: 22, - 4: 17, - 5: 16, - 6: 19, - 7: 18, - 8: 29, - 9: 28, - 10: 31, - 11: 30, - 12: 25, - 13: 24, - 14: 27, - 15: 26, - 16: 5, - 17: 4, - 18: 7, - 19: 6, - 20: 1, - 21: 0, - 22: 3, - 23: 2, - 24: 13, - 25: 12, - 26: 15, - 27: 14, - 28: 9, - 29: 8, - 30: 11, - 31: 10, - }, - { - 0: 22, - 1: 23, - 2: 20, - 3: 21, - 4: 18, - 5: 19, - 6: 16, - 7: 17, - 8: 30, - 9: 31, - 10: 28, - 11: 29, - 12: 26, - 13: 27, - 14: 24, - 15: 25, - 16: 6, - 17: 7, - 18: 4, - 19: 5, - 20: 2, - 21: 3, - 22: 0, - 23: 1, - 24: 14, - 25: 15, - 26: 12, - 27: 13, - 28: 10, - 29: 11, - 30: 8, - 31: 9, - }, - { - 0: 23, - 1: 22, - 2: 21, - 3: 20, - 4: 19, - 5: 18, - 6: 17, - 7: 16, - 8: 31, - 9: 30, - 10: 29, - 11: 28, - 12: 27, - 13: 26, - 14: 25, - 15: 24, - 16: 7, - 17: 6, - 18: 5, - 19: 4, - 20: 3, - 21: 2, - 22: 1, - 23: 0, - 24: 15, - 25: 14, - 26: 13, - 27: 12, - 28: 11, - 29: 10, - 30: 9, - 31: 8, - }, - { - 0: 24, - 1: 25, - 2: 26, - 3: 27, - 4: 28, - 5: 29, - 6: 30, - 7: 31, - 8: 16, - 9: 17, - 10: 18, - 11: 19, - 12: 20, - 13: 21, - 14: 22, - 15: 23, - 16: 8, - 17: 9, - 18: 10, - 19: 11, - 20: 12, - 21: 13, - 22: 14, - 23: 15, - 24: 0, - 25: 1, - 26: 2, - 27: 3, - 28: 4, - 29: 5, - 30: 6, - 31: 7, - }, - { - 0: 25, - 1: 24, - 2: 27, - 3: 26, - 4: 29, - 5: 28, - 6: 31, - 7: 30, - 8: 17, - 9: 16, - 10: 19, - 11: 18, - 12: 21, - 13: 20, - 14: 23, - 15: 22, - 16: 9, - 17: 8, - 18: 11, - 19: 10, - 20: 13, - 21: 12, - 22: 15, - 23: 14, - 24: 1, - 25: 0, - 26: 3, - 27: 2, - 28: 5, - 29: 4, - 30: 7, - 31: 6, - }, - { - 0: 26, - 1: 27, - 2: 24, - 3: 25, - 4: 30, - 5: 31, - 6: 28, - 7: 29, - 8: 18, - 9: 19, - 10: 16, - 11: 17, - 12: 22, - 13: 23, - 14: 20, - 15: 21, - 16: 10, - 17: 11, - 18: 8, - 19: 9, - 20: 14, - 21: 15, - 22: 12, - 23: 13, - 24: 2, - 25: 3, - 26: 0, - 27: 1, - 28: 6, - 29: 7, - 30: 4, - 31: 5, - }, - { - 0: 27, - 1: 26, - 2: 25, - 3: 24, - 4: 31, - 5: 30, - 6: 29, - 7: 28, - 8: 19, - 9: 18, - 10: 17, - 11: 16, - 12: 23, - 13: 22, - 14: 21, - 15: 20, - 16: 11, - 17: 10, - 18: 9, - 19: 8, - 20: 15, - 21: 14, - 22: 13, - 23: 12, - 24: 3, - 25: 2, - 26: 1, - 27: 0, - 28: 7, - 29: 6, - 30: 5, - 31: 4, - }, - { - 0: 28, - 1: 29, - 2: 30, - 3: 31, - 4: 24, - 5: 25, - 6: 26, - 7: 27, - 8: 20, - 9: 21, - 10: 22, - 11: 23, - 12: 16, - 13: 17, - 14: 18, - 15: 19, - 16: 12, - 17: 13, - 18: 14, - 19: 15, - 20: 8, - 21: 9, - 22: 10, - 23: 11, - 24: 4, - 25: 5, - 26: 6, - 27: 7, - 28: 0, - 29: 1, - 30: 2, - 31: 3, - }, - { - 0: 29, - 1: 28, - 2: 31, - 3: 30, - 4: 25, - 5: 24, - 6: 27, - 7: 26, - 8: 21, - 9: 20, - 10: 23, - 11: 22, - 12: 17, - 13: 16, - 14: 19, - 15: 18, - 16: 13, - 17: 12, - 18: 15, - 19: 14, - 20: 9, - 21: 8, - 22: 11, - 23: 10, - 24: 5, - 25: 4, - 26: 7, - 27: 6, - 28: 1, - 29: 0, - 30: 3, - 31: 2, - }, - { - 0: 30, - 1: 31, - 2: 28, - 3: 29, - 4: 26, - 5: 27, - 6: 24, - 7: 25, - 8: 22, - 9: 23, - 10: 20, - 11: 21, - 12: 18, - 13: 19, - 14: 16, - 15: 17, - 16: 14, - 17: 15, - 18: 12, - 19: 13, - 20: 10, - 21: 11, - 22: 8, - 23: 9, - 24: 6, - 25: 7, - 26: 4, - 27: 5, - 28: 2, - 29: 3, - 30: 0, - 31: 1, - }, - { - 0: 31, - 1: 30, - 2: 29, - 3: 28, - 4: 27, - 5: 26, - 6: 25, - 7: 24, - 8: 23, - 9: 22, - 10: 21, - 11: 20, - 12: 19, - 13: 18, - 14: 17, - 15: 16, - 16: 15, - 17: 14, - 18: 13, - 19: 12, - 20: 11, - 21: 10, - 22: 9, - 23: 8, - 24: 7, - 25: 6, - 26: 5, - 27: 4, - 28: 3, - 29: 2, - 30: 1, - 31: 0, - }, - ], - 34: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - 26: 27, - 27: 26, - 28: 29, - 29: 28, - 30: 31, - 31: 30, - 32: 33, - 33: 32, - }, - { - 0: 2, - 1: 32, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 10, - 9: 7, - 10: 8, - 11: 13, - 12: 14, - 13: 11, - 14: 12, - 15: 17, - 16: 18, - 17: 15, - 18: 16, - 19: 21, - 20: 22, - 21: 19, - 22: 20, - 23: 25, - 24: 26, - 25: 23, - 26: 24, - 27: 29, - 28: 30, - 29: 27, - 30: 28, - 31: 33, - 32: 1, - 33: 31, - }, - { - 0: 3, - 1: 5, - 2: 32, - 3: 0, - 4: 7, - 5: 1, - 6: 9, - 7: 4, - 8: 11, - 9: 6, - 10: 13, - 11: 8, - 12: 15, - 13: 10, - 14: 17, - 15: 12, - 16: 19, - 17: 14, - 18: 21, - 19: 16, - 20: 23, - 21: 18, - 22: 25, - 23: 20, - 24: 27, - 25: 22, - 26: 29, - 27: 24, - 28: 31, - 29: 26, - 30: 33, - 31: 28, - 32: 2, - 33: 30, - }, - { - 0: 4, - 1: 30, - 2: 31, - 3: 32, - 4: 0, - 5: 9, - 6: 10, - 7: 11, - 8: 12, - 9: 5, - 10: 6, - 11: 7, - 12: 8, - 13: 17, - 14: 18, - 15: 19, - 16: 20, - 17: 13, - 18: 14, - 19: 15, - 20: 16, - 21: 25, - 22: 26, - 23: 27, - 24: 28, - 25: 21, - 26: 22, - 27: 23, - 28: 24, - 29: 33, - 30: 1, - 31: 2, - 32: 3, - 33: 29, - }, - { - 0: 5, - 1: 26, - 2: 4, - 3: 31, - 4: 2, - 5: 0, - 6: 8, - 7: 32, - 8: 6, - 9: 11, - 10: 18, - 11: 9, - 12: 17, - 13: 14, - 14: 13, - 15: 23, - 16: 21, - 17: 12, - 18: 10, - 19: 20, - 20: 19, - 21: 16, - 22: 24, - 23: 15, - 24: 22, - 25: 27, - 26: 1, - 27: 25, - 28: 33, - 29: 30, - 30: 29, - 31: 3, - 32: 7, - 33: 28, - }, - { - 0: 6, - 1: 3, - 2: 30, - 3: 1, - 4: 9, - 5: 32, - 6: 0, - 7: 17, - 8: 31, - 9: 4, - 10: 21, - 11: 12, - 12: 11, - 13: 15, - 14: 19, - 15: 13, - 16: 22, - 17: 7, - 18: 20, - 19: 14, - 20: 18, - 21: 10, - 22: 16, - 23: 26, - 24: 29, - 25: 33, - 26: 23, - 27: 28, - 28: 27, - 29: 24, - 30: 2, - 31: 8, - 32: 5, - 33: 25, - }, - { - 0: 7, - 1: 28, - 2: 27, - 3: 14, - 4: 26, - 5: 10, - 6: 11, - 7: 0, - 8: 13, - 9: 20, - 10: 5, - 11: 6, - 12: 19, - 13: 8, - 14: 3, - 15: 22, - 16: 23, - 17: 18, - 18: 17, - 19: 12, - 20: 9, - 21: 33, - 22: 15, - 23: 16, - 24: 30, - 25: 29, - 26: 4, - 27: 2, - 28: 1, - 29: 25, - 30: 24, - 31: 32, - 32: 31, - 33: 21, - }, - { - 0: 8, - 1: 33, - 2: 6, - 3: 30, - 4: 10, - 5: 22, - 6: 2, - 7: 13, - 8: 0, - 9: 17, - 10: 4, - 11: 26, - 12: 18, - 13: 7, - 14: 16, - 15: 20, - 16: 14, - 17: 9, - 18: 12, - 19: 27, - 20: 15, - 21: 23, - 22: 5, - 23: 21, - 24: 32, - 25: 28, - 26: 11, - 27: 19, - 28: 25, - 29: 31, - 30: 3, - 31: 29, - 32: 24, - 33: 1, - }, - { - 0: 9, - 1: 31, - 2: 7, - 3: 21, - 4: 28, - 5: 27, - 6: 13, - 7: 2, - 8: 22, - 9: 0, - 10: 12, - 11: 17, - 12: 10, - 13: 6, - 14: 26, - 15: 25, - 16: 24, - 17: 11, - 18: 30, - 19: 23, - 20: 33, - 21: 3, - 22: 8, - 23: 19, - 24: 16, - 25: 15, - 26: 14, - 27: 5, - 28: 4, - 29: 32, - 30: 18, - 31: 1, - 32: 29, - 33: 20, - }, - { - 0: 10, - 1: 11, - 2: 25, - 3: 33, - 4: 8, - 5: 12, - 6: 27, - 7: 23, - 8: 4, - 9: 13, - 10: 0, - 11: 1, - 12: 5, - 13: 9, - 14: 20, - 15: 18, - 16: 29, - 17: 19, - 18: 15, - 19: 17, - 20: 14, - 21: 26, - 22: 28, - 23: 7, - 24: 31, - 25: 2, - 26: 21, - 27: 6, - 28: 22, - 29: 16, - 30: 32, - 31: 24, - 32: 30, - 33: 3, - }, - { - 0: 11, - 1: 25, - 2: 5, - 3: 29, - 4: 30, - 5: 2, - 6: 17, - 7: 19, - 8: 24, - 9: 32, - 10: 20, - 11: 0, - 12: 31, - 13: 18, - 14: 21, - 15: 16, - 16: 15, - 17: 6, - 18: 13, - 19: 7, - 20: 10, - 21: 14, - 22: 27, - 23: 28, - 24: 8, - 25: 1, - 26: 33, - 27: 22, - 28: 23, - 29: 3, - 30: 4, - 31: 12, - 32: 9, - 33: 26, - }, - { - 0: 12, - 1: 2, - 2: 1, - 3: 28, - 4: 11, - 5: 19, - 6: 20, - 7: 8, - 8: 7, - 9: 10, - 10: 9, - 11: 4, - 12: 0, - 13: 32, - 14: 23, - 15: 21, - 16: 25, - 17: 22, - 18: 29, - 19: 5, - 20: 6, - 21: 15, - 22: 17, - 23: 14, - 24: 33, - 25: 16, - 26: 30, - 27: 31, - 28: 3, - 29: 18, - 30: 26, - 31: 27, - 32: 13, - 33: 24, - }, - { - 0: 13, - 1: 24, - 2: 28, - 3: 10, - 4: 22, - 5: 31, - 6: 21, - 7: 14, - 8: 19, - 9: 12, - 10: 3, - 11: 15, - 12: 9, - 13: 0, - 14: 7, - 15: 11, - 16: 26, - 17: 25, - 18: 33, - 19: 8, - 20: 32, - 21: 6, - 22: 4, - 23: 29, - 24: 1, - 25: 17, - 26: 16, - 27: 30, - 28: 2, - 29: 23, - 30: 27, - 31: 5, - 32: 20, - 33: 18, - }, - { - 0: 14, - 1: 6, - 2: 21, - 3: 24, - 4: 17, - 5: 8, - 6: 1, - 7: 25, - 8: 5, - 9: 19, - 10: 30, - 11: 16, - 12: 33, - 13: 23, - 14: 0, - 15: 31, - 16: 11, - 17: 4, - 18: 26, - 19: 9, - 20: 27, - 21: 2, - 22: 29, - 23: 13, - 24: 3, - 25: 7, - 26: 18, - 27: 20, - 28: 32, - 29: 22, - 30: 10, - 31: 15, - 32: 28, - 33: 12, - }, - { - 0: 15, - 1: 8, - 2: 24, - 3: 22, - 4: 27, - 5: 21, - 6: 19, - 7: 28, - 8: 1, - 9: 18, - 10: 14, - 11: 20, - 12: 30, - 13: 25, - 14: 10, - 15: 0, - 16: 32, - 17: 29, - 18: 9, - 19: 6, - 20: 11, - 21: 5, - 22: 3, - 23: 33, - 24: 2, - 25: 13, - 26: 31, - 27: 4, - 28: 7, - 29: 17, - 30: 12, - 31: 26, - 32: 16, - 33: 23, - }, - { - 0: 16, - 1: 15, - 2: 29, - 3: 8, - 4: 13, - 5: 20, - 6: 23, - 7: 10, - 8: 3, - 9: 22, - 10: 7, - 11: 28, - 12: 21, - 13: 4, - 14: 31, - 15: 1, - 16: 0, - 17: 26, - 18: 32, - 19: 24, - 20: 5, - 21: 12, - 22: 9, - 23: 6, - 24: 19, - 25: 30, - 26: 17, - 27: 33, - 28: 11, - 29: 2, - 30: 25, - 31: 14, - 32: 18, - 33: 27, - }, - { - 0: 17, - 1: 16, - 2: 14, - 3: 4, - 4: 3, - 5: 13, - 6: 15, - 7: 31, - 8: 30, - 9: 27, - 10: 32, - 11: 19, - 12: 29, - 13: 5, - 14: 2, - 15: 6, - 16: 1, - 17: 0, - 18: 23, - 19: 11, - 20: 24, - 21: 28, - 22: 33, - 23: 18, - 24: 20, - 25: 26, - 26: 25, - 27: 9, - 28: 21, - 29: 12, - 30: 8, - 31: 7, - 32: 10, - 33: 22, - }, - { - 0: 18, - 1: 21, - 2: 17, - 3: 13, - 4: 14, - 5: 24, - 6: 25, - 7: 12, - 8: 20, - 9: 33, - 10: 15, - 11: 32, - 12: 7, - 13: 3, - 14: 4, - 15: 10, - 16: 27, - 17: 2, - 18: 0, - 19: 29, - 20: 8, - 21: 1, - 22: 31, - 23: 30, - 24: 5, - 25: 6, - 26: 28, - 27: 16, - 28: 26, - 29: 19, - 30: 23, - 31: 22, - 32: 11, - 33: 9, - }, - { - 0: 19, - 1: 18, - 2: 20, - 3: 12, - 4: 25, - 5: 26, - 6: 16, - 7: 29, - 8: 17, - 9: 24, - 10: 23, - 11: 31, - 12: 3, - 13: 21, - 14: 28, - 15: 33, - 16: 6, - 17: 8, - 18: 1, - 19: 0, - 20: 2, - 21: 13, - 22: 30, - 23: 10, - 24: 9, - 25: 4, - 26: 5, - 27: 32, - 28: 14, - 29: 7, - 30: 22, - 31: 11, - 32: 27, - 33: 15, - }, - { - 0: 20, - 1: 4, - 2: 16, - 3: 9, - 4: 1, - 5: 11, - 6: 33, - 7: 24, - 8: 18, - 9: 3, - 10: 28, - 11: 5, - 12: 32, - 13: 22, - 14: 30, - 15: 27, - 16: 2, - 17: 23, - 18: 8, - 19: 26, - 20: 0, - 21: 29, - 22: 13, - 23: 17, - 24: 7, - 25: 31, - 26: 19, - 27: 15, - 28: 10, - 29: 21, - 30: 14, - 31: 25, - 32: 12, - 33: 6, - }, - { - 0: 21, - 1: 12, - 2: 33, - 3: 25, - 4: 19, - 5: 15, - 6: 24, - 7: 20, - 8: 26, - 9: 28, - 10: 17, - 11: 18, - 12: 1, - 13: 29, - 14: 27, - 15: 5, - 16: 30, - 17: 10, - 18: 11, - 19: 4, - 20: 7, - 21: 0, - 22: 32, - 23: 31, - 24: 6, - 25: 3, - 26: 8, - 27: 14, - 28: 9, - 29: 13, - 30: 16, - 31: 23, - 32: 22, - 33: 2, - }, - { - 0: 22, - 1: 7, - 2: 18, - 3: 19, - 4: 21, - 5: 33, - 6: 31, - 7: 1, - 8: 29, - 9: 25, - 10: 27, - 11: 14, - 12: 16, - 13: 26, - 14: 11, - 15: 24, - 16: 12, - 17: 30, - 18: 2, - 19: 3, - 20: 28, - 21: 4, - 22: 0, - 23: 32, - 24: 15, - 25: 9, - 26: 13, - 27: 10, - 28: 20, - 29: 8, - 30: 17, - 31: 6, - 32: 23, - 33: 5, - }, - { - 0: 23, - 1: 19, - 2: 12, - 3: 7, - 4: 24, - 5: 30, - 6: 32, - 7: 3, - 8: 16, - 9: 21, - 10: 25, - 11: 22, - 12: 2, - 13: 31, - 14: 33, - 15: 26, - 16: 8, - 17: 28, - 18: 27, - 19: 1, - 20: 29, - 21: 9, - 22: 11, - 23: 0, - 24: 4, - 25: 10, - 26: 15, - 27: 18, - 28: 17, - 29: 20, - 30: 5, - 31: 13, - 32: 6, - 33: 14, - }, - { - 0: 24, - 1: 23, - 2: 9, - 3: 27, - 4: 16, - 5: 17, - 6: 12, - 7: 21, - 8: 28, - 9: 2, - 10: 26, - 11: 29, - 12: 6, - 13: 30, - 14: 22, - 15: 32, - 16: 4, - 17: 5, - 18: 25, - 19: 33, - 20: 31, - 21: 7, - 22: 14, - 23: 1, - 24: 0, - 25: 18, - 26: 10, - 27: 3, - 28: 8, - 29: 11, - 30: 13, - 31: 20, - 32: 15, - 33: 19, - }, - { - 0: 25, - 1: 20, - 2: 10, - 3: 17, - 4: 23, - 5: 14, - 6: 29, - 7: 18, - 8: 32, - 9: 26, - 10: 2, - 11: 24, - 12: 27, - 13: 33, - 14: 5, - 15: 30, - 16: 28, - 17: 3, - 18: 7, - 19: 22, - 20: 1, - 21: 31, - 22: 19, - 23: 4, - 24: 11, - 25: 0, - 26: 9, - 27: 12, - 28: 16, - 29: 6, - 30: 15, - 31: 21, - 32: 8, - 33: 13, - }, - { - 0: 26, - 1: 29, - 2: 13, - 3: 6, - 4: 32, - 5: 28, - 6: 3, - 7: 30, - 8: 33, - 9: 15, - 10: 19, - 11: 21, - 12: 20, - 13: 2, - 14: 25, - 15: 9, - 16: 31, - 17: 27, - 18: 22, - 19: 10, - 20: 12, - 21: 11, - 22: 18, - 23: 24, - 24: 23, - 25: 14, - 26: 0, - 27: 17, - 28: 5, - 29: 1, - 30: 7, - 31: 16, - 32: 4, - 33: 8, - }, - { - 0: 27, - 1: 13, - 2: 15, - 3: 11, - 4: 33, - 5: 29, - 6: 30, - 7: 16, - 8: 23, - 9: 14, - 10: 22, - 11: 3, - 12: 25, - 13: 1, - 14: 9, - 15: 2, - 16: 7, - 17: 32, - 18: 31, - 19: 28, - 20: 26, - 21: 24, - 22: 10, - 23: 8, - 24: 21, - 25: 12, - 26: 20, - 27: 0, - 28: 19, - 29: 5, - 30: 6, - 31: 18, - 32: 17, - 33: 4, - }, - { - 0: 28, - 1: 14, - 2: 22, - 3: 15, - 4: 29, - 5: 7, - 6: 18, - 7: 5, - 8: 21, - 9: 23, - 10: 31, - 11: 27, - 12: 26, - 13: 20, - 14: 1, - 15: 3, - 16: 33, - 17: 24, - 18: 6, - 19: 30, - 20: 13, - 21: 8, - 22: 2, - 23: 9, - 24: 17, - 25: 32, - 26: 12, - 27: 11, - 28: 0, - 29: 4, - 30: 19, - 31: 10, - 32: 25, - 33: 16, - }, - { - 0: 29, - 1: 22, - 2: 26, - 3: 16, - 4: 31, - 5: 6, - 6: 5, - 7: 15, - 8: 14, - 9: 30, - 10: 33, - 11: 25, - 12: 23, - 13: 24, - 14: 8, - 15: 7, - 16: 3, - 17: 20, - 18: 28, - 19: 32, - 20: 17, - 21: 27, - 22: 1, - 23: 12, - 24: 13, - 25: 11, - 26: 2, - 27: 21, - 28: 18, - 29: 0, - 30: 9, - 31: 4, - 32: 19, - 33: 10, - }, - { - 0: 30, - 1: 27, - 2: 23, - 3: 20, - 4: 18, - 5: 25, - 6: 14, - 7: 22, - 8: 15, - 9: 16, - 10: 29, - 11: 33, - 12: 24, - 13: 28, - 14: 6, - 15: 8, - 16: 9, - 17: 21, - 18: 4, - 19: 31, - 20: 3, - 21: 17, - 22: 7, - 23: 2, - 24: 12, - 25: 5, - 26: 32, - 27: 1, - 28: 13, - 29: 10, - 30: 0, - 31: 19, - 32: 26, - 33: 11, - }, - { - 0: 31, - 1: 9, - 2: 8, - 3: 18, - 4: 20, - 5: 23, - 6: 22, - 7: 26, - 8: 2, - 9: 1, - 10: 16, - 11: 30, - 12: 28, - 13: 27, - 14: 24, - 15: 29, - 16: 10, - 17: 33, - 18: 3, - 19: 25, - 20: 4, - 21: 32, - 22: 6, - 23: 5, - 24: 14, - 25: 19, - 26: 7, - 27: 13, - 28: 12, - 29: 15, - 30: 11, - 31: 0, - 32: 21, - 33: 17, - }, - { - 0: 32, - 1: 17, - 2: 19, - 3: 26, - 4: 15, - 5: 18, - 6: 28, - 7: 33, - 8: 27, - 9: 31, - 10: 24, - 11: 23, - 12: 22, - 13: 16, - 14: 29, - 15: 4, - 16: 13, - 17: 1, - 18: 5, - 19: 2, - 20: 25, - 21: 30, - 22: 12, - 23: 11, - 24: 10, - 25: 20, - 26: 3, - 27: 8, - 28: 6, - 29: 14, - 30: 21, - 31: 9, - 32: 0, - 33: 7, - }, - { - 0: 33, - 1: 10, - 2: 11, - 3: 23, - 4: 12, - 5: 16, - 6: 26, - 7: 27, - 8: 25, - 9: 29, - 10: 1, - 11: 2, - 12: 4, - 13: 19, - 14: 32, - 15: 28, - 16: 5, - 17: 31, - 18: 24, - 19: 13, - 20: 30, - 21: 22, - 22: 21, - 23: 3, - 24: 18, - 25: 8, - 26: 6, - 27: 7, - 28: 15, - 29: 9, - 30: 20, - 31: 17, - 32: 14, - 33: 0, - }, - ], - 36: false, - 38: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - 26: 27, - 27: 26, - 28: 29, - 29: 28, - 30: 31, - 31: 30, - 32: 33, - 33: 32, - 34: 35, - 35: 34, - 36: 37, - 37: 36, - }, - { - 0: 2, - 1: 36, - 2: 0, - 3: 5, - 4: 6, - 5: 3, - 6: 4, - 7: 9, - 8: 10, - 9: 7, - 10: 8, - 11: 13, - 12: 14, - 13: 11, - 14: 12, - 15: 17, - 16: 18, - 17: 15, - 18: 16, - 19: 21, - 20: 22, - 21: 19, - 22: 20, - 23: 25, - 24: 26, - 25: 23, - 26: 24, - 27: 29, - 28: 30, - 29: 27, - 30: 28, - 31: 33, - 32: 34, - 33: 31, - 34: 32, - 35: 37, - 36: 1, - 37: 35, - }, - { - 0: 3, - 1: 5, - 2: 36, - 3: 0, - 4: 7, - 5: 1, - 6: 9, - 7: 4, - 8: 11, - 9: 6, - 10: 13, - 11: 8, - 12: 15, - 13: 10, - 14: 17, - 15: 12, - 16: 19, - 17: 14, - 18: 21, - 19: 16, - 20: 23, - 21: 18, - 22: 25, - 23: 20, - 24: 27, - 25: 22, - 26: 29, - 27: 24, - 28: 31, - 29: 26, - 30: 33, - 31: 28, - 32: 35, - 33: 30, - 34: 37, - 35: 32, - 36: 2, - 37: 34, - }, - { - 0: 4, - 1: 34, - 2: 5, - 3: 6, - 4: 0, - 5: 2, - 6: 3, - 7: 11, - 8: 12, - 9: 13, - 10: 14, - 11: 7, - 12: 8, - 13: 9, - 14: 10, - 15: 19, - 16: 20, - 17: 21, - 18: 22, - 19: 15, - 20: 16, - 21: 17, - 22: 18, - 23: 27, - 24: 28, - 25: 29, - 26: 30, - 27: 23, - 28: 24, - 29: 25, - 30: 26, - 31: 35, - 32: 36, - 33: 37, - 34: 1, - 35: 31, - 36: 32, - 37: 33, - }, - { - 0: 5, - 1: 2, - 2: 1, - 3: 4, - 4: 3, - 5: 0, - 6: 8, - 7: 15, - 8: 6, - 9: 11, - 10: 18, - 11: 9, - 12: 17, - 13: 14, - 14: 13, - 15: 7, - 16: 21, - 17: 12, - 18: 10, - 19: 20, - 20: 19, - 21: 16, - 22: 24, - 23: 31, - 24: 22, - 25: 27, - 26: 34, - 27: 25, - 28: 33, - 29: 30, - 30: 29, - 31: 23, - 32: 37, - 33: 28, - 34: 26, - 35: 36, - 36: 35, - 37: 32, - }, - { - 0: 6, - 1: 32, - 2: 9, - 3: 37, - 4: 15, - 5: 31, - 6: 0, - 7: 19, - 8: 13, - 9: 2, - 10: 12, - 11: 27, - 12: 10, - 13: 8, - 14: 21, - 15: 4, - 16: 22, - 17: 18, - 18: 17, - 19: 7, - 20: 24, - 21: 14, - 22: 16, - 23: 35, - 24: 20, - 25: 30, - 26: 28, - 27: 11, - 28: 26, - 29: 33, - 30: 25, - 31: 5, - 32: 1, - 33: 29, - 34: 36, - 35: 23, - 36: 34, - 37: 3, - }, - { - 0: 7, - 1: 10, - 2: 32, - 3: 34, - 4: 31, - 5: 35, - 6: 13, - 7: 0, - 8: 14, - 9: 17, - 10: 1, - 11: 12, - 12: 11, - 13: 6, - 14: 8, - 15: 21, - 16: 23, - 17: 9, - 18: 30, - 19: 36, - 20: 25, - 21: 15, - 22: 27, - 23: 16, - 24: 29, - 25: 20, - 26: 33, - 27: 22, - 28: 37, - 29: 24, - 30: 18, - 31: 4, - 32: 2, - 33: 26, - 34: 3, - 35: 5, - 36: 19, - 37: 28, - }, - { - 0: 8, - 1: 33, - 2: 6, - 3: 32, - 4: 35, - 5: 21, - 6: 2, - 7: 26, - 8: 0, - 9: 10, - 10: 9, - 11: 14, - 12: 22, - 13: 28, - 14: 11, - 15: 16, - 16: 15, - 17: 34, - 18: 20, - 19: 27, - 20: 18, - 21: 5, - 22: 12, - 23: 36, - 24: 30, - 25: 31, - 26: 7, - 27: 19, - 28: 13, - 29: 37, - 30: 24, - 31: 25, - 32: 3, - 33: 1, - 34: 17, - 35: 4, - 36: 23, - 37: 29, - }, - { - 0: 9, - 1: 25, - 2: 7, - 3: 36, - 4: 11, - 5: 34, - 6: 21, - 7: 2, - 8: 15, - 9: 0, - 10: 35, - 11: 4, - 12: 16, - 13: 17, - 14: 32, - 15: 8, - 16: 12, - 17: 13, - 18: 26, - 19: 28, - 20: 27, - 21: 6, - 22: 33, - 23: 29, - 24: 31, - 25: 1, - 26: 18, - 27: 20, - 28: 19, - 29: 23, - 30: 37, - 31: 24, - 32: 14, - 33: 22, - 34: 5, - 35: 10, - 36: 3, - 37: 30, - }, - { - 0: 10, - 1: 16, - 2: 4, - 3: 28, - 4: 2, - 5: 36, - 6: 32, - 7: 34, - 8: 23, - 9: 12, - 10: 0, - 11: 17, - 12: 9, - 13: 37, - 14: 24, - 15: 20, - 16: 1, - 17: 11, - 18: 25, - 19: 30, - 20: 15, - 21: 27, - 22: 29, - 23: 8, - 24: 14, - 25: 18, - 26: 31, - 27: 21, - 28: 3, - 29: 22, - 30: 19, - 31: 26, - 32: 6, - 33: 35, - 34: 7, - 35: 33, - 36: 5, - 37: 13, - }, - { - 0: 11, - 1: 3, - 2: 12, - 3: 1, - 4: 21, - 5: 32, - 6: 25, - 7: 8, - 8: 7, - 9: 28, - 10: 16, - 11: 0, - 12: 2, - 13: 33, - 14: 27, - 15: 18, - 16: 10, - 17: 20, - 18: 15, - 19: 34, - 20: 17, - 21: 4, - 22: 36, - 23: 24, - 24: 23, - 25: 6, - 26: 37, - 27: 14, - 28: 9, - 29: 31, - 30: 35, - 31: 29, - 32: 5, - 33: 13, - 34: 19, - 35: 30, - 36: 22, - 37: 26, - }, - { - 0: 12, - 1: 30, - 2: 21, - 3: 22, - 4: 27, - 5: 9, - 6: 36, - 7: 20, - 8: 17, - 9: 5, - 10: 24, - 11: 37, - 12: 0, - 13: 34, - 14: 29, - 15: 33, - 16: 31, - 17: 8, - 18: 23, - 19: 25, - 20: 7, - 21: 2, - 22: 3, - 23: 18, - 24: 10, - 25: 19, - 26: 35, - 27: 4, - 28: 32, - 29: 14, - 30: 1, - 31: 16, - 32: 28, - 33: 15, - 34: 13, - 35: 26, - 36: 6, - 37: 11, - }, - { - 0: 13, - 1: 4, - 2: 10, - 3: 18, - 4: 1, - 5: 27, - 6: 20, - 7: 12, - 8: 16, - 9: 14, - 10: 2, - 11: 25, - 12: 7, - 13: 0, - 14: 9, - 15: 22, - 16: 8, - 17: 30, - 18: 3, - 19: 23, - 20: 6, - 21: 24, - 22: 15, - 23: 19, - 24: 21, - 25: 11, - 26: 32, - 27: 5, - 28: 34, - 29: 35, - 30: 17, - 31: 37, - 32: 26, - 33: 36, - 34: 28, - 35: 29, - 36: 33, - 37: 31, - }, - { - 0: 14, - 1: 7, - 2: 17, - 3: 24, - 4: 28, - 5: 8, - 6: 23, - 7: 1, - 8: 5, - 9: 29, - 10: 37, - 11: 15, - 12: 21, - 13: 18, - 14: 0, - 15: 11, - 16: 25, - 17: 2, - 18: 13, - 19: 22, - 20: 33, - 21: 12, - 22: 19, - 23: 6, - 24: 3, - 25: 16, - 26: 36, - 27: 35, - 28: 4, - 29: 9, - 30: 34, - 31: 32, - 32: 31, - 33: 20, - 34: 30, - 35: 27, - 36: 26, - 37: 10, - }, - { - 0: 15, - 1: 9, - 2: 16, - 3: 29, - 4: 17, - 5: 7, - 6: 11, - 7: 5, - 8: 31, - 9: 1, - 10: 19, - 11: 6, - 12: 36, - 13: 22, - 14: 35, - 15: 0, - 16: 2, - 17: 4, - 18: 24, - 19: 10, - 20: 30, - 21: 37, - 22: 13, - 23: 26, - 24: 18, - 25: 32, - 26: 23, - 27: 28, - 28: 27, - 29: 3, - 30: 20, - 31: 8, - 32: 25, - 33: 34, - 34: 33, - 35: 14, - 36: 12, - 37: 21, - }, - { - 0: 16, - 1: 17, - 2: 11, - 3: 10, - 4: 9, - 5: 14, - 6: 29, - 7: 30, - 8: 37, - 9: 4, - 10: 3, - 11: 2, - 12: 34, - 13: 21, - 14: 5, - 15: 25, - 16: 0, - 17: 1, - 18: 27, - 19: 33, - 20: 35, - 21: 13, - 22: 26, - 23: 28, - 24: 32, - 25: 15, - 26: 22, - 27: 18, - 28: 23, - 29: 6, - 30: 7, - 31: 36, - 32: 24, - 33: 19, - 34: 12, - 35: 20, - 36: 31, - 37: 8, - }, - { - 0: 17, - 1: 37, - 2: 31, - 3: 7, - 4: 10, - 5: 12, - 6: 35, - 7: 3, - 8: 26, - 9: 21, - 10: 4, - 11: 22, - 12: 5, - 13: 32, - 14: 20, - 15: 29, - 16: 27, - 17: 0, - 18: 28, - 19: 24, - 20: 14, - 21: 9, - 22: 11, - 23: 34, - 24: 19, - 25: 33, - 26: 8, - 27: 16, - 28: 18, - 29: 15, - 30: 36, - 31: 2, - 32: 13, - 33: 25, - 34: 23, - 35: 6, - 36: 30, - 37: 1, - }, - { - 0: 18, - 1: 20, - 2: 35, - 3: 25, - 4: 8, - 5: 33, - 6: 17, - 7: 36, - 8: 4, - 9: 30, - 10: 23, - 11: 26, - 12: 19, - 13: 16, - 14: 28, - 15: 27, - 16: 13, - 17: 6, - 18: 0, - 19: 12, - 20: 1, - 21: 31, - 22: 34, - 23: 10, - 24: 37, - 25: 3, - 26: 11, - 27: 15, - 28: 14, - 29: 32, - 30: 9, - 31: 21, - 32: 29, - 33: 5, - 34: 22, - 35: 2, - 36: 7, - 37: 24, - }, - { - 0: 19, - 1: 26, - 2: 37, - 3: 30, - 4: 32, - 5: 15, - 6: 14, - 7: 35, - 8: 24, - 9: 27, - 10: 17, - 11: 34, - 12: 20, - 13: 23, - 14: 6, - 15: 5, - 16: 29, - 17: 10, - 18: 33, - 19: 0, - 20: 12, - 21: 25, - 22: 31, - 23: 13, - 24: 8, - 25: 21, - 26: 1, - 27: 9, - 28: 36, - 29: 16, - 30: 3, - 31: 22, - 32: 4, - 33: 18, - 34: 11, - 35: 7, - 36: 28, - 37: 2, - }, - { - 0: 20, - 1: 35, - 2: 26, - 3: 31, - 4: 29, - 5: 22, - 6: 24, - 7: 16, - 8: 34, - 9: 15, - 10: 36, - 11: 19, - 12: 23, - 13: 25, - 14: 30, - 15: 9, - 16: 7, - 17: 33, - 18: 32, - 19: 11, - 20: 0, - 21: 28, - 22: 5, - 23: 12, - 24: 6, - 25: 13, - 26: 2, - 27: 37, - 28: 21, - 29: 4, - 30: 14, - 31: 3, - 32: 18, - 33: 17, - 34: 8, - 35: 1, - 36: 10, - 37: 27, - }, - { - 0: 21, - 1: 28, - 2: 23, - 3: 14, - 4: 24, - 5: 17, - 6: 15, - 7: 33, - 8: 32, - 9: 36, - 10: 27, - 11: 29, - 12: 31, - 13: 20, - 14: 3, - 15: 6, - 16: 26, - 17: 5, - 18: 34, - 19: 35, - 20: 13, - 21: 0, - 22: 30, - 23: 2, - 24: 4, - 25: 37, - 26: 16, - 27: 10, - 28: 1, - 29: 11, - 30: 22, - 31: 12, - 32: 8, - 33: 7, - 34: 18, - 35: 19, - 36: 9, - 37: 25, - }, - { - 0: 22, - 1: 24, - 2: 14, - 3: 27, - 4: 13, - 5: 6, - 6: 5, - 7: 17, - 8: 25, - 9: 34, - 10: 31, - 11: 23, - 12: 33, - 13: 4, - 14: 2, - 15: 30, - 16: 32, - 17: 7, - 18: 29, - 19: 37, - 20: 26, - 21: 36, - 22: 0, - 23: 11, - 24: 1, - 25: 8, - 26: 20, - 27: 3, - 28: 35, - 29: 18, - 30: 15, - 31: 10, - 32: 16, - 33: 12, - 34: 9, - 35: 28, - 36: 21, - 37: 19, - }, - { - 0: 23, - 1: 6, - 2: 29, - 3: 17, - 4: 34, - 5: 11, - 6: 1, - 7: 21, - 8: 28, - 9: 24, - 10: 22, - 11: 5, - 12: 18, - 13: 35, - 14: 16, - 15: 31, - 16: 14, - 17: 3, - 18: 12, - 19: 26, - 20: 37, - 21: 7, - 22: 10, - 23: 0, - 24: 9, - 25: 36, - 26: 19, - 27: 33, - 28: 8, - 29: 2, - 30: 32, - 31: 15, - 32: 30, - 33: 27, - 34: 4, - 35: 13, - 36: 25, - 37: 20, - }, - { - 0: 24, - 1: 31, - 2: 33, - 3: 20, - 4: 30, - 5: 28, - 6: 16, - 7: 23, - 8: 18, - 9: 22, - 10: 25, - 11: 32, - 12: 26, - 13: 27, - 14: 37, - 15: 34, - 16: 6, - 17: 36, - 18: 8, - 19: 29, - 20: 3, - 21: 35, - 22: 9, - 23: 7, - 24: 0, - 25: 10, - 26: 12, - 27: 13, - 28: 5, - 29: 19, - 30: 4, - 31: 1, - 32: 11, - 33: 2, - 34: 15, - 35: 21, - 36: 17, - 37: 14, - }, - { - 0: 25, - 1: 12, - 2: 30, - 3: 16, - 4: 26, - 5: 37, - 6: 28, - 7: 22, - 8: 20, - 9: 23, - 10: 21, - 11: 35, - 12: 1, - 13: 19, - 14: 33, - 15: 24, - 16: 3, - 17: 31, - 18: 36, - 19: 13, - 20: 8, - 21: 10, - 22: 7, - 23: 9, - 24: 15, - 25: 0, - 26: 4, - 27: 32, - 28: 6, - 29: 34, - 30: 2, - 31: 17, - 32: 27, - 33: 14, - 34: 29, - 35: 11, - 36: 18, - 37: 5, - }, - { - 0: 26, - 1: 15, - 2: 22, - 3: 9, - 4: 25, - 5: 24, - 6: 37, - 7: 18, - 8: 35, - 9: 3, - 10: 29, - 11: 16, - 12: 28, - 13: 36, - 14: 31, - 15: 1, - 16: 11, - 17: 19, - 18: 7, - 19: 17, - 20: 32, - 21: 33, - 22: 2, - 23: 30, - 24: 5, - 25: 4, - 26: 0, - 27: 34, - 28: 12, - 29: 10, - 30: 23, - 31: 14, - 32: 20, - 33: 21, - 34: 27, - 35: 8, - 36: 13, - 37: 6, - }, - { - 0: 27, - 1: 21, - 2: 28, - 3: 11, - 4: 19, - 5: 13, - 6: 30, - 7: 31, - 8: 36, - 9: 35, - 10: 20, - 11: 3, - 12: 29, - 13: 5, - 14: 22, - 15: 26, - 16: 24, - 17: 32, - 18: 37, - 19: 4, - 20: 10, - 21: 1, - 22: 14, - 23: 33, - 24: 16, - 25: 34, - 26: 15, - 27: 0, - 28: 2, - 29: 12, - 30: 6, - 31: 7, - 32: 17, - 33: 23, - 34: 25, - 35: 9, - 36: 8, - 37: 18, - }, - { - 0: 28, - 1: 8, - 2: 20, - 3: 12, - 4: 14, - 5: 16, - 6: 27, - 7: 10, - 8: 1, - 9: 19, - 10: 7, - 11: 18, - 12: 3, - 13: 30, - 14: 4, - 15: 32, - 16: 5, - 17: 23, - 18: 11, - 19: 9, - 20: 2, - 21: 26, - 22: 37, - 23: 17, - 24: 33, - 25: 35, - 26: 21, - 27: 6, - 28: 0, - 29: 36, - 30: 13, - 31: 34, - 32: 15, - 33: 24, - 34: 31, - 35: 25, - 36: 29, - 37: 22, - }, - { - 0: 29, - 1: 13, - 2: 19, - 3: 15, - 4: 36, - 5: 23, - 6: 26, - 7: 14, - 8: 27, - 9: 25, - 10: 32, - 11: 33, - 12: 35, - 13: 1, - 14: 7, - 15: 3, - 16: 37, - 17: 24, - 18: 31, - 19: 2, - 20: 34, - 21: 30, - 22: 28, - 23: 5, - 24: 17, - 25: 9, - 26: 6, - 27: 8, - 28: 22, - 29: 0, - 30: 21, - 31: 18, - 32: 10, - 33: 11, - 34: 20, - 35: 12, - 36: 4, - 37: 16, - }, - { - 0: 30, - 1: 27, - 2: 18, - 3: 33, - 4: 23, - 5: 10, - 6: 12, - 7: 29, - 8: 19, - 9: 31, - 10: 5, - 11: 20, - 12: 6, - 13: 24, - 14: 34, - 15: 28, - 16: 36, - 17: 37, - 18: 2, - 19: 8, - 20: 11, - 21: 32, - 22: 35, - 23: 4, - 24: 13, - 25: 26, - 26: 25, - 27: 1, - 28: 15, - 29: 7, - 30: 0, - 31: 9, - 32: 21, - 33: 3, - 34: 14, - 35: 22, - 36: 16, - 37: 17, - }, - { - 0: 31, - 1: 11, - 2: 34, - 3: 8, - 4: 33, - 5: 29, - 6: 19, - 7: 37, - 8: 3, - 9: 20, - 10: 28, - 11: 1, - 12: 25, - 13: 26, - 14: 18, - 15: 36, - 16: 30, - 17: 27, - 18: 14, - 19: 6, - 20: 9, - 21: 23, - 22: 32, - 23: 21, - 24: 35, - 25: 12, - 26: 13, - 27: 17, - 28: 10, - 29: 5, - 30: 16, - 31: 0, - 32: 22, - 33: 4, - 34: 2, - 35: 24, - 36: 15, - 37: 7, - }, - { - 0: 32, - 1: 18, - 2: 15, - 3: 35, - 4: 12, - 5: 25, - 6: 22, - 7: 13, - 8: 33, - 9: 16, - 10: 26, - 11: 31, - 12: 4, - 13: 7, - 14: 19, - 15: 2, - 16: 9, - 17: 28, - 18: 1, - 19: 14, - 20: 29, - 21: 34, - 22: 6, - 23: 37, - 24: 36, - 25: 5, - 26: 10, - 27: 30, - 28: 17, - 29: 20, - 30: 27, - 31: 11, - 32: 0, - 33: 8, - 34: 21, - 35: 3, - 36: 24, - 37: 23, - }, - { - 0: 33, - 1: 22, - 2: 24, - 3: 13, - 4: 18, - 5: 20, - 6: 10, - 7: 27, - 8: 30, - 9: 37, - 10: 6, - 11: 36, - 12: 32, - 13: 3, - 14: 23, - 15: 35, - 16: 34, - 17: 26, - 18: 4, - 19: 31, - 20: 5, - 21: 29, - 22: 1, - 23: 14, - 24: 2, - 25: 28, - 26: 17, - 27: 7, - 28: 25, - 29: 21, - 30: 8, - 31: 19, - 32: 12, - 33: 0, - 34: 16, - 35: 15, - 36: 11, - 37: 9, - }, - { - 0: 34, - 1: 29, - 2: 13, - 3: 19, - 4: 37, - 5: 26, - 6: 18, - 7: 28, - 8: 21, - 9: 33, - 10: 15, - 11: 24, - 12: 30, - 13: 2, - 14: 25, - 15: 10, - 16: 35, - 17: 22, - 18: 6, - 19: 3, - 20: 31, - 21: 8, - 22: 17, - 23: 32, - 24: 11, - 25: 14, - 26: 5, - 27: 36, - 28: 7, - 29: 1, - 30: 12, - 31: 20, - 32: 23, - 33: 9, - 34: 0, - 35: 16, - 36: 27, - 37: 4, - }, - { - 0: 35, - 1: 23, - 2: 8, - 3: 21, - 4: 22, - 5: 18, - 6: 31, - 7: 24, - 8: 2, - 9: 26, - 10: 34, - 11: 30, - 12: 27, - 13: 29, - 14: 36, - 15: 37, - 16: 33, - 17: 25, - 18: 5, - 19: 32, - 20: 28, - 21: 3, - 22: 4, - 23: 1, - 24: 7, - 25: 17, - 26: 9, - 27: 12, - 28: 20, - 29: 13, - 30: 11, - 31: 6, - 32: 19, - 33: 16, - 34: 10, - 35: 0, - 36: 14, - 37: 15, - }, - { - 0: 36, - 1: 14, - 2: 27, - 3: 26, - 4: 20, - 5: 19, - 6: 33, - 7: 25, - 8: 22, - 9: 32, - 10: 30, - 11: 21, - 12: 37, - 13: 31, - 14: 1, - 15: 23, - 16: 28, - 17: 29, - 18: 35, - 19: 5, - 20: 4, - 21: 11, - 22: 8, - 23: 15, - 24: 34, - 25: 7, - 26: 3, - 27: 2, - 28: 16, - 29: 17, - 30: 10, - 31: 13, - 32: 9, - 33: 6, - 34: 24, - 35: 18, - 36: 0, - 37: 12, - }, - { - 0: 37, - 1: 19, - 2: 25, - 3: 23, - 4: 16, - 5: 30, - 6: 34, - 7: 32, - 8: 29, - 9: 18, - 10: 33, - 11: 28, - 12: 24, - 13: 15, - 14: 26, - 15: 13, - 16: 4, - 17: 35, - 18: 9, - 19: 1, - 20: 36, - 21: 22, - 22: 21, - 23: 3, - 24: 12, - 25: 2, - 26: 14, - 27: 31, - 28: 11, - 29: 8, - 30: 5, - 31: 27, - 32: 7, - 33: 10, - 34: 6, - 35: 17, - 36: 20, - 37: 0, - }, - ], - 40: [ - { - 0: 1, - 1: 0, - 2: 3, - 3: 2, - 4: 5, - 5: 4, - 6: 7, - 7: 6, - 8: 9, - 9: 8, - 10: 11, - 11: 10, - 12: 13, - 13: 12, - 14: 15, - 15: 14, - 16: 17, - 17: 16, - 18: 19, - 19: 18, - 20: 21, - 21: 20, - 22: 23, - 23: 22, - 24: 25, - 25: 24, - 26: 27, - 27: 26, - 28: 29, - 29: 28, - 30: 31, - 31: 30, - 32: 33, - 33: 32, - 34: 35, - 35: 34, - 36: 37, - 37: 36, - 38: 39, - 39: 38, - }, - { - 0: 2, - 1: 3, - 2: 0, - 3: 1, - 4: 6, - 5: 7, - 6: 4, - 7: 5, - 8: 10, - 9: 11, - 10: 8, - 11: 9, - 12: 14, - 13: 15, - 14: 12, - 15: 13, - 16: 18, - 17: 19, - 18: 16, - 19: 17, - 20: 22, - 21: 23, - 22: 20, - 23: 21, - 24: 26, - 25: 27, - 26: 24, - 27: 25, - 28: 30, - 29: 31, - 30: 28, - 31: 29, - 32: 34, - 33: 35, - 34: 32, - 35: 33, - 36: 38, - 37: 39, - 38: 36, - 39: 37, - }, - { - 0: 3, - 1: 2, - 2: 1, - 3: 0, - 4: 7, - 5: 6, - 6: 5, - 7: 4, - 8: 11, - 9: 10, - 10: 9, - 11: 8, - 12: 15, - 13: 14, - 14: 13, - 15: 12, - 16: 19, - 17: 18, - 18: 17, - 19: 16, - 20: 23, - 21: 22, - 22: 21, - 23: 20, - 24: 27, - 25: 26, - 26: 25, - 27: 24, - 28: 31, - 29: 30, - 30: 29, - 31: 28, - 32: 35, - 33: 34, - 34: 33, - 35: 32, - 36: 39, - 37: 38, - 38: 37, - 39: 36, - }, - { - 0: 4, - 1: 5, - 2: 6, - 3: 7, - 4: 0, - 5: 1, - 6: 2, - 7: 3, - 8: 12, - 9: 13, - 10: 14, - 11: 15, - 12: 8, - 13: 9, - 14: 10, - 15: 11, - 16: 20, - 17: 21, - 18: 22, - 19: 23, - 20: 16, - 21: 17, - 22: 18, - 23: 19, - 24: 28, - 25: 29, - 26: 30, - 27: 31, - 28: 24, - 29: 25, - 30: 26, - 31: 27, - 32: 36, - 33: 37, - 34: 38, - 35: 39, - 36: 32, - 37: 33, - 38: 34, - 39: 35, - }, - { - 0: 5, - 1: 4, - 2: 7, - 3: 6, - 4: 1, - 5: 0, - 6: 3, - 7: 2, - 8: 13, - 9: 12, - 10: 15, - 11: 14, - 12: 9, - 13: 8, - 14: 11, - 15: 10, - 16: 21, - 17: 20, - 18: 23, - 19: 22, - 20: 17, - 21: 16, - 22: 19, - 23: 18, - 24: 29, - 25: 28, - 26: 31, - 27: 30, - 28: 25, - 29: 24, - 30: 27, - 31: 26, - 32: 37, - 33: 36, - 34: 39, - 35: 38, - 36: 33, - 37: 32, - 38: 35, - 39: 34, - }, - { - 0: 6, - 1: 7, - 2: 4, - 3: 5, - 4: 2, - 5: 3, - 6: 0, - 7: 1, - 8: 14, - 9: 15, - 10: 12, - 11: 13, - 12: 10, - 13: 11, - 14: 8, - 15: 9, - 16: 22, - 17: 23, - 18: 20, - 19: 21, - 20: 18, - 21: 19, - 22: 16, - 23: 17, - 24: 30, - 25: 31, - 26: 28, - 27: 29, - 28: 26, - 29: 27, - 30: 24, - 31: 25, - 32: 38, - 33: 39, - 34: 36, - 35: 37, - 36: 34, - 37: 35, - 38: 32, - 39: 33, - }, - { - 0: 7, - 1: 6, - 2: 5, - 3: 4, - 4: 3, - 5: 2, - 6: 1, - 7: 0, - 8: 15, - 9: 14, - 10: 13, - 11: 12, - 12: 11, - 13: 10, - 14: 9, - 15: 8, - 16: 23, - 17: 22, - 18: 21, - 19: 20, - 20: 19, - 21: 18, - 22: 17, - 23: 16, - 24: 31, - 25: 30, - 26: 29, - 27: 28, - 28: 27, - 29: 26, - 30: 25, - 31: 24, - 32: 39, - 33: 38, - 34: 37, - 35: 36, - 36: 35, - 37: 34, - 38: 33, - 39: 32, - }, - { - 0: 8, - 1: 32, - 2: 10, - 3: 34, - 4: 12, - 5: 36, - 6: 14, - 7: 38, - 8: 0, - 9: 17, - 10: 2, - 11: 19, - 12: 4, - 13: 21, - 14: 6, - 15: 23, - 16: 24, - 17: 9, - 18: 26, - 19: 11, - 20: 28, - 21: 13, - 22: 30, - 23: 15, - 24: 16, - 25: 33, - 26: 18, - 27: 35, - 28: 20, - 29: 37, - 30: 22, - 31: 39, - 32: 1, - 33: 25, - 34: 3, - 35: 27, - 36: 5, - 37: 29, - 38: 7, - 39: 31, - }, - { - 0: 9, - 1: 8, - 2: 32, - 3: 33, - 4: 13, - 5: 12, - 6: 36, - 7: 37, - 8: 1, - 9: 0, - 10: 19, - 11: 18, - 12: 5, - 13: 4, - 14: 23, - 15: 22, - 16: 25, - 17: 24, - 18: 11, - 19: 10, - 20: 29, - 21: 28, - 22: 15, - 23: 14, - 24: 17, - 25: 16, - 26: 35, - 27: 34, - 28: 21, - 29: 20, - 30: 39, - 31: 38, - 32: 2, - 33: 3, - 34: 27, - 35: 26, - 36: 6, - 37: 7, - 38: 31, - 39: 30, - }, - { - 0: 10, - 1: 33, - 2: 24, - 3: 32, - 4: 14, - 5: 38, - 6: 12, - 7: 35, - 8: 18, - 9: 19, - 10: 0, - 11: 17, - 12: 6, - 13: 23, - 14: 4, - 15: 37, - 16: 26, - 17: 11, - 18: 8, - 19: 9, - 20: 30, - 21: 31, - 22: 28, - 23: 13, - 24: 2, - 25: 34, - 26: 16, - 27: 36, - 28: 22, - 29: 39, - 30: 20, - 31: 21, - 32: 3, - 33: 1, - 34: 25, - 35: 7, - 36: 27, - 37: 15, - 38: 5, - 39: 29, - }, - { - 0: 11, - 1: 12, - 2: 13, - 3: 37, - 4: 32, - 5: 8, - 6: 17, - 7: 10, - 8: 5, - 9: 23, - 10: 7, - 11: 0, - 12: 1, - 13: 2, - 14: 19, - 15: 20, - 16: 27, - 17: 6, - 18: 28, - 19: 14, - 20: 15, - 21: 29, - 22: 39, - 23: 9, - 24: 35, - 25: 36, - 26: 34, - 27: 16, - 28: 18, - 29: 21, - 30: 38, - 31: 33, - 32: 4, - 33: 31, - 34: 26, - 35: 24, - 36: 25, - 37: 3, - 38: 30, - 39: 22, - }, - { - 0: 12, - 1: 36, - 2: 35, - 3: 24, - 4: 10, - 5: 34, - 6: 38, - 7: 32, - 8: 20, - 9: 22, - 10: 4, - 11: 23, - 12: 0, - 13: 17, - 14: 30, - 15: 18, - 16: 28, - 17: 13, - 18: 15, - 19: 31, - 20: 8, - 21: 26, - 22: 9, - 23: 11, - 24: 3, - 25: 37, - 26: 21, - 27: 39, - 28: 16, - 29: 33, - 30: 14, - 31: 19, - 32: 7, - 33: 29, - 34: 5, - 35: 2, - 36: 1, - 37: 25, - 38: 6, - 39: 27, - }, - { - 0: 13, - 1: 22, - 2: 21, - 3: 17, - 4: 24, - 5: 32, - 6: 9, - 7: 34, - 8: 33, - 9: 6, - 10: 25, - 11: 39, - 12: 23, - 13: 0, - 14: 18, - 15: 38, - 16: 29, - 17: 3, - 18: 14, - 19: 28, - 20: 27, - 21: 2, - 22: 1, - 23: 12, - 24: 4, - 25: 10, - 26: 37, - 27: 20, - 28: 19, - 29: 16, - 30: 36, - 31: 35, - 32: 5, - 33: 8, - 34: 7, - 35: 31, - 36: 30, - 37: 26, - 38: 15, - 39: 11, - }, - { - 0: 14, - 1: 28, - 2: 29, - 3: 10, - 4: 23, - 5: 21, - 6: 22, - 7: 27, - 8: 36, - 9: 39, - 10: 3, - 11: 35, - 12: 18, - 13: 19, - 14: 0, - 15: 32, - 16: 31, - 17: 34, - 18: 12, - 19: 13, - 20: 25, - 21: 5, - 22: 6, - 23: 4, - 24: 37, - 25: 20, - 26: 38, - 27: 7, - 28: 1, - 29: 2, - 30: 33, - 31: 16, - 32: 15, - 33: 30, - 34: 17, - 35: 11, - 36: 8, - 37: 24, - 38: 26, - 39: 9, - }, - { - 0: 15, - 1: 34, - 2: 36, - 3: 18, - 4: 21, - 5: 28, - 6: 8, - 7: 24, - 8: 6, - 9: 29, - 10: 32, - 11: 33, - 12: 20, - 13: 38, - 14: 22, - 15: 0, - 16: 30, - 17: 26, - 18: 3, - 19: 35, - 20: 12, - 21: 4, - 22: 14, - 23: 27, - 24: 7, - 25: 39, - 26: 17, - 27: 23, - 28: 5, - 29: 9, - 30: 16, - 31: 37, - 32: 10, - 33: 11, - 34: 1, - 35: 19, - 36: 2, - 37: 31, - 38: 13, - 39: 25, - }, - { - 0: 16, - 1: 9, - 2: 12, - 3: 14, - 4: 8, - 5: 23, - 6: 32, - 7: 33, - 8: 4, - 9: 1, - 10: 21, - 11: 20, - 12: 2, - 13: 31, - 14: 3, - 15: 19, - 16: 0, - 17: 28, - 18: 36, - 19: 15, - 20: 11, - 21: 10, - 22: 25, - 23: 5, - 24: 34, - 25: 22, - 26: 39, - 27: 38, - 28: 17, - 29: 35, - 30: 37, - 31: 13, - 32: 6, - 33: 7, - 34: 24, - 35: 29, - 36: 18, - 37: 30, - 38: 27, - 39: 26, - }, - { - 0: 17, - 1: 38, - 2: 27, - 3: 11, - 4: 9, - 5: 35, - 6: 33, - 7: 23, - 8: 19, - 9: 4, - 10: 18, - 11: 3, - 12: 30, - 13: 20, - 14: 26, - 15: 16, - 16: 15, - 17: 0, - 18: 10, - 19: 8, - 20: 13, - 21: 37, - 22: 29, - 23: 7, - 24: 39, - 25: 32, - 26: 14, - 27: 2, - 28: 34, - 29: 22, - 30: 12, - 31: 36, - 32: 25, - 33: 6, - 34: 28, - 35: 5, - 36: 31, - 37: 21, - 38: 1, - 39: 24, - }, - { - 0: 18, - 1: 37, - 2: 16, - 3: 29, - 4: 30, - 5: 31, - 6: 19, - 7: 15, - 8: 25, - 9: 20, - 10: 17, - 11: 34, - 12: 38, - 13: 36, - 14: 33, - 15: 7, - 16: 2, - 17: 10, - 18: 0, - 19: 6, - 20: 9, - 21: 27, - 22: 35, - 23: 26, - 24: 32, - 25: 8, - 26: 23, - 27: 21, - 28: 39, - 29: 3, - 30: 4, - 31: 5, - 32: 24, - 33: 14, - 34: 11, - 35: 22, - 36: 13, - 37: 1, - 38: 12, - 39: 28, - }, - { - 0: 19, - 1: 23, - 2: 34, - 3: 13, - 4: 27, - 5: 20, - 6: 25, - 7: 29, - 8: 17, - 9: 32, - 10: 26, - 11: 37, - 12: 16, - 13: 3, - 14: 31, - 15: 21, - 16: 12, - 17: 8, - 18: 39, - 19: 0, - 20: 5, - 21: 15, - 22: 36, - 23: 1, - 24: 33, - 25: 6, - 26: 10, - 27: 4, - 28: 38, - 29: 7, - 30: 35, - 31: 14, - 32: 9, - 33: 24, - 34: 2, - 35: 30, - 36: 22, - 37: 11, - 38: 28, - 39: 18, - }, - { - 0: 20, - 1: 35, - 2: 9, - 3: 8, - 4: 31, - 5: 33, - 6: 34, - 7: 30, - 8: 3, - 9: 2, - 10: 23, - 11: 25, - 12: 17, - 13: 22, - 14: 21, - 15: 28, - 16: 39, - 17: 12, - 18: 32, - 19: 26, - 20: 0, - 21: 14, - 22: 13, - 23: 10, - 24: 36, - 25: 11, - 26: 19, - 27: 37, - 28: 15, - 29: 38, - 30: 7, - 31: 4, - 32: 18, - 33: 5, - 34: 6, - 35: 1, - 36: 24, - 37: 27, - 38: 29, - 39: 16, - }, - { - 0: 21, - 1: 29, - 2: 31, - 3: 26, - 4: 15, - 5: 14, - 6: 10, - 7: 36, - 8: 22, - 9: 34, - 10: 6, - 11: 32, - 12: 28, - 13: 27, - 14: 5, - 15: 4, - 16: 35, - 17: 39, - 18: 37, - 19: 25, - 20: 33, - 21: 0, - 22: 8, - 23: 30, - 24: 38, - 25: 19, - 26: 3, - 27: 13, - 28: 12, - 29: 1, - 30: 23, - 31: 2, - 32: 11, - 33: 20, - 34: 9, - 35: 16, - 36: 7, - 37: 18, - 38: 24, - 39: 17, - }, - { - 0: 22, - 1: 11, - 2: 37, - 3: 39, - 4: 28, - 5: 24, - 6: 30, - 7: 21, - 8: 32, - 9: 33, - 10: 27, - 11: 1, - 12: 19, - 13: 16, - 14: 17, - 15: 26, - 16: 13, - 17: 14, - 18: 31, - 19: 12, - 20: 36, - 21: 7, - 22: 0, - 23: 35, - 24: 5, - 25: 38, - 26: 15, - 27: 10, - 28: 4, - 29: 34, - 30: 6, - 31: 18, - 32: 8, - 33: 9, - 34: 29, - 35: 23, - 36: 20, - 37: 2, - 38: 25, - 39: 3, - }, - { - 0: 23, - 1: 21, - 2: 26, - 3: 25, - 4: 11, - 5: 17, - 6: 24, - 7: 16, - 8: 29, - 9: 36, - 10: 31, - 11: 4, - 12: 34, - 13: 32, - 14: 35, - 15: 30, - 16: 7, - 17: 5, - 18: 27, - 19: 33, - 20: 39, - 21: 1, - 22: 38, - 23: 0, - 24: 6, - 25: 3, - 26: 2, - 27: 18, - 28: 37, - 29: 8, - 30: 15, - 31: 10, - 32: 13, - 33: 19, - 34: 12, - 35: 14, - 36: 9, - 37: 28, - 38: 22, - 39: 20, - }, - { - 0: 24, - 1: 10, - 2: 39, - 3: 15, - 4: 37, - 5: 26, - 6: 28, - 7: 9, - 8: 21, - 9: 7, - 10: 1, - 11: 30, - 12: 33, - 13: 18, - 14: 20, - 15: 3, - 16: 34, - 17: 32, - 18: 13, - 19: 38, - 20: 14, - 21: 8, - 22: 27, - 23: 31, - 24: 0, - 25: 35, - 26: 5, - 27: 22, - 28: 6, - 29: 36, - 30: 11, - 31: 23, - 32: 17, - 33: 12, - 34: 16, - 35: 25, - 36: 29, - 37: 4, - 38: 19, - 39: 2, - }, - { - 0: 25, - 1: 13, - 2: 22, - 3: 9, - 4: 35, - 5: 29, - 6: 11, - 7: 26, - 8: 27, - 9: 3, - 10: 30, - 11: 6, - 12: 39, - 13: 1, - 14: 24, - 15: 31, - 16: 36, - 17: 37, - 18: 33, - 19: 32, - 20: 34, - 21: 38, - 22: 2, - 23: 28, - 24: 14, - 25: 0, - 26: 7, - 27: 8, - 28: 23, - 29: 5, - 30: 10, - 31: 15, - 32: 19, - 33: 18, - 34: 20, - 35: 4, - 36: 16, - 37: 17, - 38: 21, - 39: 12, - }, - { - 0: 26, - 1: 27, - 2: 33, - 3: 20, - 4: 18, - 5: 30, - 6: 16, - 7: 11, - 8: 35, - 9: 28, - 10: 37, - 11: 7, - 12: 32, - 13: 39, - 14: 34, - 15: 29, - 16: 6, - 17: 25, - 18: 4, - 19: 24, - 20: 3, - 21: 36, - 22: 31, - 23: 38, - 24: 19, - 25: 17, - 26: 0, - 27: 1, - 28: 9, - 29: 15, - 30: 5, - 31: 22, - 32: 12, - 33: 2, - 34: 14, - 35: 8, - 36: 21, - 37: 10, - 38: 23, - 39: 13, - }, - { - 0: 27, - 1: 19, - 2: 8, - 3: 16, - 4: 22, - 5: 18, - 6: 23, - 7: 31, - 8: 2, - 9: 24, - 10: 36, - 11: 38, - 12: 26, - 13: 37, - 14: 32, - 15: 39, - 16: 3, - 17: 29, - 18: 5, - 19: 1, - 20: 35, - 21: 25, - 22: 4, - 23: 6, - 24: 9, - 25: 21, - 26: 12, - 27: 0, - 28: 33, - 29: 17, - 30: 34, - 31: 7, - 32: 14, - 33: 28, - 34: 30, - 35: 20, - 36: 10, - 37: 13, - 38: 11, - 39: 15, - }, - { - 0: 28, - 1: 39, - 2: 23, - 3: 31, - 4: 25, - 5: 37, - 6: 13, - 7: 14, - 8: 16, - 9: 38, - 10: 35, - 11: 24, - 12: 22, - 13: 6, - 14: 7, - 15: 33, - 16: 8, - 17: 36, - 18: 30, - 19: 27, - 20: 26, - 21: 34, - 22: 12, - 23: 2, - 24: 11, - 25: 4, - 26: 20, - 27: 19, - 28: 0, - 29: 32, - 30: 18, - 31: 3, - 32: 29, - 33: 15, - 34: 21, - 35: 10, - 36: 17, - 37: 5, - 38: 9, - 39: 1, - }, - { - 0: 29, - 1: 30, - 2: 15, - 3: 28, - 4: 19, - 5: 39, - 6: 27, - 7: 12, - 8: 26, - 9: 31, - 10: 34, - 11: 22, - 12: 7, - 13: 33, - 14: 36, - 15: 2, - 16: 38, - 17: 35, - 18: 25, - 19: 4, - 20: 24, - 21: 32, - 22: 11, - 23: 37, - 24: 20, - 25: 18, - 26: 8, - 27: 6, - 28: 3, - 29: 0, - 30: 1, - 31: 9, - 32: 21, - 33: 13, - 34: 10, - 35: 17, - 36: 14, - 37: 23, - 38: 16, - 39: 5, - }, - { - 0: 30, - 1: 18, - 2: 20, - 3: 19, - 4: 36, - 5: 25, - 6: 29, - 7: 28, - 8: 34, - 9: 35, - 10: 22, - 11: 16, - 12: 21, - 13: 24, - 14: 37, - 15: 27, - 16: 11, - 17: 38, - 18: 1, - 19: 3, - 20: 2, - 21: 12, - 22: 10, - 23: 39, - 24: 13, - 25: 5, - 26: 33, - 27: 15, - 28: 7, - 29: 6, - 30: 0, - 31: 32, - 32: 31, - 33: 26, - 34: 8, - 35: 9, - 36: 4, - 37: 14, - 38: 17, - 39: 23, - }, - { - 0: 31, - 1: 15, - 2: 30, - 3: 23, - 4: 34, - 5: 16, - 6: 18, - 7: 39, - 8: 37, - 9: 21, - 10: 20, - 11: 28, - 12: 25, - 13: 35, - 14: 38, - 15: 1, - 16: 5, - 17: 33, - 18: 6, - 19: 29, - 20: 10, - 21: 9, - 22: 24, - 23: 3, - 24: 22, - 25: 12, - 26: 36, - 27: 32, - 28: 11, - 29: 19, - 30: 2, - 31: 0, - 32: 27, - 33: 17, - 34: 4, - 35: 13, - 36: 26, - 37: 8, - 38: 14, - 39: 7, - }, - { - 0: 32, - 1: 26, - 2: 18, - 3: 27, - 4: 20, - 5: 9, - 6: 31, - 7: 17, - 8: 39, - 9: 5, - 10: 38, - 11: 29, - 12: 36, - 13: 34, - 14: 28, - 15: 25, - 16: 33, - 17: 7, - 18: 2, - 19: 30, - 20: 4, - 21: 35, - 22: 37, - 23: 24, - 24: 23, - 25: 15, - 26: 1, - 27: 3, - 28: 14, - 29: 11, - 30: 19, - 31: 6, - 32: 0, - 33: 16, - 34: 13, - 35: 21, - 36: 12, - 37: 22, - 38: 10, - 39: 8, - }, - { - 0: 33, - 1: 24, - 2: 19, - 3: 21, - 4: 38, - 5: 27, - 6: 37, - 7: 8, - 8: 7, - 9: 25, - 10: 39, - 11: 36, - 12: 35, - 13: 28, - 14: 16, - 15: 17, - 16: 14, - 17: 15, - 18: 29, - 19: 2, - 20: 31, - 21: 3, - 22: 26, - 23: 34, - 24: 1, - 25: 9, - 26: 22, - 27: 5, - 28: 13, - 29: 18, - 30: 32, - 31: 20, - 32: 30, - 33: 0, - 34: 23, - 35: 12, - 36: 11, - 37: 6, - 38: 4, - 39: 10, - }, - { - 0: 34, - 1: 16, - 2: 28, - 3: 36, - 4: 26, - 5: 19, - 6: 39, - 7: 22, - 8: 31, - 9: 27, - 10: 33, - 11: 21, - 12: 37, - 13: 29, - 14: 25, - 15: 35, - 16: 1, - 17: 30, - 18: 24, - 19: 5, - 20: 38, - 21: 11, - 22: 7, - 23: 32, - 24: 18, - 25: 14, - 26: 4, - 27: 9, - 28: 2, - 29: 13, - 30: 17, - 31: 8, - 32: 23, - 33: 10, - 34: 0, - 35: 15, - 36: 3, - 37: 12, - 38: 20, - 39: 6, - }, - { - 0: 35, - 1: 14, - 2: 25, - 3: 38, - 4: 17, - 5: 15, - 6: 20, - 7: 18, - 8: 23, - 9: 26, - 10: 29, - 11: 27, - 12: 24, - 13: 30, - 14: 1, - 15: 5, - 16: 37, - 17: 4, - 18: 7, - 19: 36, - 20: 6, - 21: 39, - 22: 33, - 23: 8, - 24: 12, - 25: 2, - 26: 9, - 27: 11, - 28: 32, - 29: 10, - 30: 13, - 31: 34, - 32: 28, - 33: 22, - 34: 31, - 35: 0, - 36: 19, - 37: 16, - 38: 3, - 39: 21, - }, - { - 0: 36, - 1: 25, - 2: 38, - 3: 30, - 4: 29, - 5: 10, - 6: 15, - 7: 13, - 8: 28, - 9: 16, - 10: 5, - 11: 26, - 12: 27, - 13: 7, - 14: 39, - 15: 6, - 16: 9, - 17: 31, - 18: 35, - 19: 34, - 20: 37, - 21: 24, - 22: 32, - 23: 33, - 24: 21, - 25: 1, - 26: 11, - 27: 12, - 28: 8, - 29: 4, - 30: 3, - 31: 17, - 32: 22, - 33: 23, - 34: 19, - 35: 18, - 36: 0, - 37: 20, - 38: 2, - 39: 14, - }, - { - 0: 37, - 1: 17, - 2: 11, - 3: 35, - 4: 33, - 5: 13, - 6: 26, - 7: 25, - 8: 38, - 9: 18, - 10: 16, - 11: 2, - 12: 31, - 13: 5, - 14: 27, - 15: 24, - 16: 10, - 17: 1, - 18: 9, - 19: 39, - 20: 32, - 21: 30, - 22: 34, - 23: 29, - 24: 15, - 25: 7, - 26: 6, - 27: 14, - 28: 36, - 29: 23, - 30: 21, - 31: 12, - 32: 20, - 33: 4, - 34: 22, - 35: 3, - 36: 28, - 37: 0, - 38: 8, - 39: 19, - }, - { - 0: 38, - 1: 20, - 2: 17, - 3: 12, - 4: 39, - 5: 22, - 6: 21, - 7: 19, - 8: 30, - 9: 37, - 10: 24, - 11: 31, - 12: 3, - 13: 26, - 14: 29, - 15: 36, - 16: 32, - 17: 2, - 18: 34, - 19: 7, - 20: 1, - 21: 6, - 22: 5, - 23: 25, - 24: 10, - 25: 23, - 26: 13, - 27: 33, - 28: 35, - 29: 14, - 30: 8, - 31: 11, - 32: 16, - 33: 27, - 34: 18, - 35: 28, - 36: 15, - 37: 9, - 38: 0, - 39: 4, - }, - { - 0: 39, - 1: 31, - 2: 14, - 3: 22, - 4: 16, - 5: 11, - 6: 35, - 7: 20, - 8: 24, - 9: 30, - 10: 28, - 11: 5, - 12: 29, - 13: 25, - 14: 2, - 15: 34, - 16: 4, - 17: 27, - 18: 38, - 19: 37, - 20: 7, - 21: 33, - 22: 3, - 23: 36, - 24: 8, - 25: 13, - 26: 32, - 27: 17, - 28: 10, - 29: 12, - 30: 9, - 31: 1, - 32: 26, - 33: 21, - 34: 15, - 35: 6, - 36: 23, - 37: 19, - 38: 18, - 39: 0, - }, - ], - }; - - calculatePartnerTableFor(numberIds: number) { - const ids: string[] = []; - for (let i = 0; i < numberIds; i++) { - ids.push(String(i)); - } - return this.calculatePartnerTable(ids); - } - - calculatePartnerTable(memberIds: string[]) { - if (memberIds.length === 0) { - return []; - } - - memberIds = memberIds.slice(); - if (memberIds.length % 2 === 1) { - memberIds.push('JOKER'); - } - - const table: Record[] = []; - - // prepareTable - for (let i = 0; i < memberIds.length - 1; i++) { - const column: Record = {}; - memberIds.forEach((memberId) => (column[memberId] = '')); - table.push(column); - } - - // initialize possible partners - const possiblePartners: Record = {}; - memberIds.forEach((memberId) => (possiblePartners[memberId] = memberIds.filter((id) => id !== memberId))); - - return this.solveTable(table, memberIds, 0, possiblePartners); - } - - solveTable( - table: Record[], - memberIds: string[], - columnIndex: number, - possiblePartners: Record - ): Record[] | false { - const column = table[columnIndex]; - const newPossiblePartners = JsonHelper.deepCopy(possiblePartners); - const res = this.solveColumn(column, newPossiblePartners); - if (res === false) { - return false; - } - - table[columnIndex] = res.column; - // check solved - if (columnIndex === table.length - 1) { - return table; - } - possiblePartners = res.possiblePartners; - return this.solveTable(table, memberIds, columnIndex + 1, possiblePartners); - } - - static generateTables() { - const tables: Record = {}; - for (let i = 2; i <= 40; i += 2) { - tables[i] = PrayerCircleCalculator.generateTable(i); - } - console.log('TABLES', JSON.stringify(tables)); - } - - static generateTableFor(memberIds: string[]) { - if (memberIds.length === 0) { - return []; - } - - memberIds = memberIds.slice(); - if (memberIds.length % 2 === 1) { - memberIds.push('JOKER'); - } - - const numberTable = PrayerCircleCalculator.generateTable(memberIds.length); - - if (numberTable === false) { - return false; - } - return numberTable.map((column) => { - const idColumn: Record = {}; - Object.keys(column).forEach((index) => { - idColumn[memberIds[Number(index)]] = memberIds[column[Number(index)]]; - }); - return idColumn; - }); - } - - static generateTable(numPrayers: number): Record[] | false { - if (numPrayers % 2 !== 0) { - return false; - } - - // if (PrayerCircleCalculator.tables[numPrayers]) { - // return PrayerCircleCalculator.tables[numPrayers]; - // } - - // prepare possible partners - const possiblePartnersBaseArray: number[] = []; - for (let i = 0; i < numPrayers; i++) { - possiblePartnersBaseArray.push(i); - } - const possiblePartners: Record = {}; - for (let i = 0; i < numPrayers; i++) { - possiblePartners[i] = possiblePartnersBaseArray.filter((id) => id !== i); - } - - const table: Record[] = []; - - for (let i = 0; i < numPrayers - 1; i++) { - table.push({}); - } - - return PrayerCircleCalculator.generatePair( - table, - 0, - possiblePartners, - Object.keys(possiblePartners).map((id) => Number(id)) - ); - } - - // static generateColumn(possiblePartners: Record) { - // const column: Record = {}; - // const partnerBase: number[] = Object.keys(possiblePartners).map((id) => Number(id)); - // - // return PrayerCircleCalculator.generatePair(column, possiblePartners, partnerBase); - // } - - static generatePair( - table: Column[], - columnIndex: number, - possiblePartners: Record, - openPrayers: number[] - ): false | Column[] { - const newTable = JsonHelper.deepCopy(table); - const newPossiblePartners = JsonHelper.deepCopy(possiblePartners); - const column = newTable[columnIndex]; - // openPrayers = Object.keys(possiblePartners) - // .map((id) => Number(id)) - // .filter((id) => (column[id] ?? -1) === -1); - - // if (columnIndex === 19 && openPrayers.length === Object.keys(possiblePartners).length) { - // debugger; - // } - - if (openPrayers.length === 2) { - const [firstPartner, secondPartner] = openPrayers; - PrayerCircleCalculator.setPartners(column, newPossiblePartners, firstPartner, secondPartner); - if (Object.keys(newPossiblePartners).length === columnIndex + 2) { - return newTable; - } - return PrayerCircleCalculator.generatePair( - newTable, - columnIndex + 1, - newPossiblePartners, - Object.keys(newPossiblePartners).map((id) => Number(id)) - ); - } - - const realPossiblePartnersMap: Record = {}; - const [firstPartner] = openPrayers.reduce( - ([prevId, prevVal]: [number, number], id) => { - const realPossiblePartners = newPossiblePartners[id].filter( - (otherId) => (column[otherId] ?? -1) === -1 - ); - realPossiblePartnersMap[id] = realPossiblePartners; - - return prevVal > realPossiblePartners.length ? [id, realPossiblePartners.length] : [prevId, prevVal]; - }, - [-1, Infinity] - ); - - let res; - do { - const [secondPartner] = realPossiblePartnersMap[firstPartner].reduce( - ([prevId, prevVal], id) => - prevVal > realPossiblePartnersMap[id].length - ? [id, realPossiblePartnersMap[id].length] - : [prevId, prevVal], - [-1, Infinity] - ); - - if (secondPartner === -1) { - return false; - } - - PrayerCircleCalculator.setPartners(column, newPossiblePartners, firstPartner, secondPartner); - const newOpenPrayers = openPrayers.filter((id) => id !== firstPartner && id !== secondPartner); - res = PrayerCircleCalculator.generatePair(newTable, columnIndex, newPossiblePartners, newOpenPrayers); - if (res === false) { - realPossiblePartnersMap[firstPartner].splice( - realPossiblePartnersMap[firstPartner].indexOf(secondPartner), - 1 - ); - } else { - return res; - } - } while (!res); - return false; - } - - solveColumn( - column: Record, - possiblePartners: Record - ): { column: Record; possiblePartners: Record } | false { - const memberWithoutPartner = Object.keys(column).find((id) => column[id] === ''); - if (!memberWithoutPartner) { - return { column, possiblePartners }; - } - - let newColumn: Record = {}; - let newPossiblePartners: Record = {}; - const foundSolution = possiblePartners[memberWithoutPartner].some((partnerId, partnerIndex) => { - if (column[partnerId] !== '') { - return false; - } - const tmpColumn = JsonHelper.deepCopy(column); - tmpColumn[memberWithoutPartner] = partnerId; - tmpColumn[partnerId] = memberWithoutPartner; - - const tmpPossiblePartners = JsonHelper.deepCopy(possiblePartners); - tmpPossiblePartners[memberWithoutPartner].splice(partnerIndex, 1); - const otherIndex = tmpPossiblePartners[partnerId].findIndex((id) => id === memberWithoutPartner); - tmpPossiblePartners[partnerId].splice(otherIndex, 1); - - const res = this.solveColumn(tmpColumn, tmpPossiblePartners); - if (res === false) { - return res; - } - - newColumn = res.column; - newPossiblePartners = res.possiblePartners; - return true; - }); - - if (foundSolution) { - return { column: newColumn, possiblePartners: newPossiblePartners }; - } - return false; - } - - static setPartners(column: Column, possiblePartners: PossiblePartners, partner1: number, partner2: number) { - column[partner1] = partner2; - column[partner2] = partner1; - possiblePartners[partner1].splice(possiblePartners[partner1].indexOf(partner2), 1); - possiblePartners[partner2].splice(possiblePartners[partner2].indexOf(partner1), 1); - - return [column, possiblePartners] as [Column, PossiblePartners]; - } -} diff --git a/src/client/ts/PrayerCircle/PrayercircleSettings.tsx b/src/client/ts/PrayerCircle/PrayercircleSettings.tsx index 7a32879..622952f 100644 --- a/src/client/ts/PrayerCircle/PrayercircleSettings.tsx +++ b/src/client/ts/PrayerCircle/PrayercircleSettings.tsx @@ -3,6 +3,7 @@ import { Checkbox, Switch } from 'react-bootstrap-mobile'; import { useCallback } from 'react'; import { useAppDispatch, useAppSelector } from '../Store/reduxHooks'; import { setUsePartners, setUseWeekdays } from './prayerCircleSlice'; +import { setDesign } from '../Settings/settingsSlice'; export type PrayerCircleSettingsProps = {}; @@ -11,6 +12,7 @@ function PrayerCircleSettings({}: PrayerCircleSettingsProps) { const dispatch = useAppDispatch(); const useWeekdays = useAppSelector((store) => store.prayerCircle.useWeekdays ?? false); const usePartners = useAppSelector((store) => store.prayerCircle.usePartners ?? true); + const design = useAppSelector((state) => state.settings.design); // States @@ -19,6 +21,13 @@ function PrayerCircleSettings({}: PrayerCircleSettingsProps) { // Callbacks const onChangeUseWeekdays = useCallback(({ target: { checked } }) => dispatch(setUseWeekdays(checked)), [dispatch]); const onChangeUsePartners = useCallback(({ target: { checked } }) => dispatch(setUsePartners(checked)), [dispatch]); + const toggleThemeCallback = useCallback(() => { + if (design === 'material') { + dispatch(setDesign('flat')); + } else { + dispatch(setDesign('material')); + } + }, [dispatch, design]); // Effects @@ -33,6 +42,16 @@ function PrayerCircleSettings({}: PrayerCircleSettingsProps) {
+
+ + ios + ); } diff --git a/src/client/ts/Settings/Settings.tsx b/src/client/ts/Settings/Settings.tsx deleted file mode 100644 index 86520c9..0000000 --- a/src/client/ts/Settings/Settings.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import * as React from 'react'; -import { Sites, useTopBar } from 'cordova-sites'; -import { FunctionComponent, useCallback } from 'react'; -import { Button, Switch } from 'react-bootstrap-mobile'; -import { useAppDispatch, useAppSelector } from '../Store/reduxHooks'; -import { setDesign } from './settingsSlice'; - -type Props = {}; - -export const Settings: FunctionComponent = React.memo(({}) => { - // Variables - const design = useAppSelector((state) => state.settings.design); - const isActive = design === 'flat'; - const dispatch = useAppDispatch(); - - // States - - // Refs - - // Callbacks - const toggleThemeCallback = useCallback(() => { - if (design === 'material') { - dispatch(setDesign('flat')); - } else { - dispatch(setDesign('material')); - } - }, [dispatch, design]); - - // Effects - useTopBar({ - title: 'Settings', - }); - - // Other - - // Render Functions - - return ( - <> -
-
- - ios - - - - ); -}); -Sites.addInitialization((app) => app.addDeepLink('/Settings', Settings)); diff --git a/src/client/ts/Tasks/TaskList.tsx b/src/client/ts/Tasks/TaskList.tsx deleted file mode 100644 index f02876c..0000000 --- a/src/client/ts/Tasks/TaskList.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import * as React from 'react'; -import { Sites, useSites, useTopBar } from 'cordova-sites'; -import { FunctionComponent } from 'react'; -import { Settings } from '../Settings/Settings'; -import { Input, Switch } from 'react-bootstrap-mobile'; - -type Props = {}; - -export const TaskList: FunctionComponent = React.memo(({}) => { - // Variables - const sites = useSites(); - - // States - - // Refs - - // Callbacks - - // Effects - useTopBar({ - title: 'TaskList', - rightButtons: [ - { - title: 'Settings', - action: () => { - sites?.startSite(Settings); - }, - }, - ], - }); - - // Other - - // Render Functions - return ( - <> -
-
- - console.log(e.target.checked)}> - ios - - - ); -}); -Sites.addInitialization((app) => app.addDeepLink('/TaskList', TaskList)); diff --git a/src/client/ts/Tasks/tasksSlice.ts b/src/client/ts/Tasks/tasksSlice.ts deleted file mode 100644 index 9dda8ea..0000000 --- a/src/client/ts/Tasks/tasksSlice.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit'; - -export const tasksSlice = createSlice({ - name: 'tasks', - initialState: { - value: 0, - }, - reducers: { - increment: (state) => { - state.value += 1; - }, - decrement: (state) => { - state.value -= 1; - }, - incrementByAmount: (state, action) => { - state.value += action.payload; - }, - }, -}); - -export const { increment, decrement, incrementByAmount } = tasksSlice.actions; -export default tasksSlice.reducer;