2024 day 12

This commit is contained in:
2024-12-12 23:05:57 +01:00
parent f497ad035b
commit 545b8c9259
5 changed files with 355 additions and 1 deletions

41
2024/day-12/day12.test.ts Normal file
View File

@@ -0,0 +1,41 @@
import { expect, test } from "bun:test";
import * as path from "node:path";
import { part1, part2 } from "./day12.ts";
test("day 12, part 1", async () => {
const testInput = await Bun.file(
path.resolve(__dirname, "test-input.txt"),
).text();
const input = await Bun.file(path.resolve(__dirname, "input.txt")).text();
console.log("\n\n");
const testResult = part1(testInput);
console.log("Test data:", testResult);
expect(testResult).toEqual(1930);
// const finalResult = part1(input);
// console.log("Full data:", finalResult);
// expect(finalResult).toEqual(1424472);
console.log("\n\n");
});
test("day 12, part 2", async () => {
const testInput = await Bun.file(
path.resolve(__dirname, "test-input.txt"),
).text();
const input = await Bun.file(path.resolve(__dirname, "input.txt")).text();
// const testResult = part2(testInput);
// console.log("\n\n");
// console.log("Test data:", testResult);
// expect(testResult).toEqual(1206);
const finalResult = part2(input);
console.log("Full data:", finalResult);
expect(finalResult).toEqual(0);
expect(finalResult).not.toEqual(866276);
console.log("\n\n");
});

162
2024/day-12/day12.ts Normal file
View File

@@ -0,0 +1,162 @@
import { sum } from "remeda";
export function part1(input: string) {
let final = 0;
const startPoints: [number, number][] = [];
const lines = input.split("\n");
const grid = lines.map((l) => l.split(""));
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
const letters = line.split("");
for (let j = 0; j < letters.length; j++) {
const letter = letters[j];
if (grid[i - 1]?.[j] !== letter && grid[i]?.[j - 1] !== letter) {
startPoints.push([i, j]);
}
}
}
while (startPoints.length > 0) {
const th = startPoints.pop();
const queue = [th];
const seen = new Set<string>();
while (queue.length > 0) {
const current = queue.shift();
if (!current) continue;
if (seen.has(current.join(","))) continue;
queue.push(
...getNeighbors(grid, current).map(
(x) => [x[0], x[1]] as [number, number],
),
);
seen.add(current.join(","));
}
const area = seen.size;
let perimiter = 0;
seen.values().forEach((x) => {
const [a, b] = x.split(",").map(Number);
const neighbors = getNeighbors(grid, [a, b]);
perimiter += 4 - neighbors.length;
});
final += perimiter * area;
seen.values().forEach((x) => {
const index = startPoints.findIndex((y) => y.join(",") === x);
if (index !== -1) {
startPoints.splice(index, 1);
}
});
}
return final;
}
export function part2(input: string) {
let final = 0;
const startPoints: [number, number][] = [];
const lines = input.split("\n");
const grid = lines.map((l) => l.split(""));
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
const letters = line.split("");
for (let j = 0; j < letters.length; j++) {
const letter = letters[j];
if (grid[i - 1]?.[j] !== letter && grid[i]?.[j - 1] !== letter) {
startPoints.push([i, j]);
}
}
}
while (startPoints.length > 0) {
const th = startPoints.pop();
const queue = [th];
const seen = new Set<string>();
while (queue.length > 0) {
const current = queue.shift();
if (!current) continue;
if (seen.has(current.join(","))) continue;
queue.push(
...getNeighbors(grid, current).map(
(x) => [x[0], x[1]] as [number, number],
),
);
seen.add(current.join(","));
}
const area = seen.size;
const sides = getSides(seen);
final += sides * area;
seen.values().forEach((x) => {
const index = startPoints.findIndex((y) => y.join(",") === x);
if (index !== -1) {
startPoints.splice(index, 1);
}
});
}
return final;
}
function getSides(region: Set<string>) {
let sides = 0;
const cornerCandidates = new Set<string>();
for (const rc of region) {
const [r, c] = rc.split(",").map(Number);
for (const [cr, cc] of [
[r - 0.5, c - 0.5],
[r + 0.5, c - 0.5],
[r + 0.5, c + 0.5],
[r - 0.5, c + 0.5],
]) {
cornerCandidates.add([cr, cc].join(","));
}
}
for (const g of cornerCandidates.values().toArray().sort()) {
const [cr, cc] = g.split(",").map(Number);
const config = [];
for (const [sr, sc] of [
[cr - 0.5, cc - 0.5],
[cr + 0.5, cc - 0.5],
[cr + 0.5, cc + 0.5],
[cr - 0.5, cc + 0.5],
]) {
if (region.has([sr, sc].join(","))) {
config.push(1);
} else config.push(0);
}
const number = sum(config);
if (number === 3 || number === 1) {
sides++;
}
if (number === 2) {
if (
(config[0] === 0 && config[2] === 0) ||
(config[1] === 0 && config[3] === 0)
) {
sides += 2;
}
}
}
return sides;
}
function getNeighbors(
grid: string[][],
[x, y]: [number, number],
): [number, number][] {
const currentLetter = grid[x][y];
const up = grid[x - 1]?.[y];
const down = grid[x + 1]?.[y];
const right = grid[x]?.[y + 1];
const left = grid[x]?.[y - 1];
return [
up === currentLetter && [x - 1, y],
down === currentLetter && [x + 1, y],
right === currentLetter && [x, y + 1],
left === currentLetter && [x, y - 1],
].filter(Boolean) as [number, number][];
}

140
2024/day-12/input.txt Normal file
View File

@@ -0,0 +1,140 @@
UCCCCCHHHGGGGHHHPPPPPPPPDGGDDDDBKKKKKKKKKKKKKKKWWWWWWWWWGGGLLLLLLLLLZZZRTDDTTKIIIMIXXXXXAAAAAAAAAAARRRRRRRRUZUUUUUUTTTTTTTTTTTTYYRRRRRRRRRRR
UUUCCHQHHHHHHHPPPPPPPPPDDDDDDDDDKKKKKKKKKKKKKKWWWWWWWWWWWWWWLLLLLLLMZZTTTTTTTTIIIIIIIXXAAAAAAAAAAAAARRRRRRRUUUUUUUUTTTTTTTTTTTTTRRRRRRRRRRRR
UUUCCHHHHHHHHHPPPPPPPPPDDDDDDDDDKKKKKKKKKKKKKKWWWWWWWWWWWLWWLLLLLJJQQTBTTTTTTIIIIIIIIIIYAAAAAAAAAAAAARRRRUUUUUUUUUUTTTTTTTTTTTTTERRIRRRRRRRR
UUUCHHHHHHHHYHPPPPPPPPDDDDDDDDDDKKKKKKKKKKKWWWWWWWWWWWWWWLLLLLLLLLQQQTTTTTTTTIIIIIIIIIIAAAAAAAAAAAAAARRRRRUUUUUUUUTTTTTTTTTTTTTTEEEIIIRRRRRR
UUUUUHHHHHHHHPPPPPPFFPPDDDDDDDDDKKKKKKKKKKKWWWWWWWWWWWWWWLLLLLLQQQQQQQTTTTTTIIIIIIIIIIIIIIAIAAAAAAAAARRRUUUUUUUUUUTTBTTTTTTTTYTEEEEIIRRRRRRR
UUUUFHHHHHHHHHPPPFFFCDDDDDDDDDDDDDDPKKKKKKKKKKWIIWWQQWLLLLLLLLLQQQQQQQTTTTTTTTIIIIIIIIIIIIAIAAAAAAAAARRRUUUUQQQQUUTUUUTVTTTTTTEEEIIIIIIRRRRR
UUUUUHHHHHHHHPPPPFFFFDDDDDDDDDDDDDPPPKKKKKKKKHWHIIWWWWLLLLLLLLLQQQQQTQTTTTTTTTIIIIIIIIIIIIIIAAAAAAAARRRRUUBBQQUUUUUUUUUVTTYTYTTEEIIIIIIIRRRR
UUUUUHHHHHHHMPMPPFFFFDDDDDDDDTTTDDPPPPKKKKKKHHHHHHHWWQLLLLLLLLLQQQQQTTTTTTTTTTIIIIIIIIIIIIIIAAAAAAARRRNRRUUBQQQUUUUUUUUUTYYTYTTEEEIIIIIRRRRR
UUUUUHHHHHMMMMMMMNNFFCDDDDDDDDDTPIPPPPPPPPKKHHHHHHHHWQLLLLLLLLLQQGGQQQTTTTTTTTTIIIIIIIIIIIIIAAAAAAFNNNNNRRQQQQQQUUUUUUUUTYYYYIIEIEIIIIIRRRRR
UUUUHHHHHBMMMMQMMNNDDDDDDPDDDDDTPPPPPPPPPKKHHHHHHHHHWQZZZLLLLLLLGGGQQTTTTTTTTCCIICCCIIIIIIIIIKAAAAANNNNNNQQQQQQQUUUUUUUUYYYYIIIIIIIIIICCCRRR
UUMUUUHHHHMMMMQMMNNNDDDDPPPPPPPTPPPPPPPKKKHHHHHHHHHHZZZZZZZLLLLGGGGGGGTGTTTTTCCCCCCIIIIIILIIIKKAAZZNNNNBNNQQQQQQUUUUUUUUYYYYIIIIIIIIIICCCRRR
UKMUUMHHHHMMMMMMMMMNNPPPPRPPPPPPPPPPPPPPKKKHHHHHHHHHHZZZZLLLZLZGGGGGGGGGGGKTCCCCCCCIIIFFFKKKKKGHAZZZZNNNNNQQQQQQUUUUUUUUYYYYIIIDIIIIIICCRRRR
UUMUMMHHHMMMMMMMMMMPPPPPPPPPPPPPPPPPPPPKKKHHHHHHHHHHHZZZZZLZZZZGGGGGGGGGGGGCCCCCCCIIIFFKKKQKKGGGGZZNNNNNNNQQQQQUUUUUUUUUUYYYIYYIICCCCCCCCCRR
AUMMMMMMMMMMMMMMMPPPPPPPPPPPPPPPPPPPPPKKKKHHHHHHHHHHZZZZZZZZZZZOOGGGGGGGGGGCCCCCCRRFFFFKKKKKKGGGGGGNNNNNNNQQQQUUUUUUUUUYYYYYYYYYCCCCCCCCCRRR
AAMMMMMMMMMMMMMMPPPPPPPPPPPPPPPPPPPPPPKKKKHHHHHHHHHHBBZZZZZZZZZZOOOOOGGRGGCCCCCRRRRFFFFFFKFGGGGGGGGNNNNNNNNQQQUUUUUUUUUYYYYYYYYYCCCCCCCCCRRR
MMMMMMMMMMMMMMMMPPPPPPPPPPPPPPPPPPPPPPKKKKKHHHHHHHHBBBBZBZZZZZZOOOOOUUURRRYCCCCRRRRRFFFFFKFFGGGGGGGNNNNNNNNNQQUUUUUUUYYYYYYYYYYCCCCCCCCCCCRR
FFMFFFMMMMMMMVVVPPPPPPPPPPPPPPPPPPPPPPKKKKHHHHHHHHHHBBBBBBZZZZZOOOOOUUURRRYYCCCRRRRRFFFFFFFGGGGGGNNNNNNNNNNNNNPPUUUUKKYYYYYYYYCCCCCCCCCCCRRR
FFFFFFFEEOMMMMVEFFFFPPPPPPPPPPPPVVPPPKKKKKHHHHHHHHBBBBBBJZZZZZZZOOOOUURRRYYGYCCRRRRRRFFFFFFFGGGGGGGNNNNNNNNNNPPPPPUKKKKYYYYYYYYCCCCCCCCCRRRR
FFFFFEEEEOMMDDEEFFFFFPPPPPPPPPVVVVPPPKKKKHHHHHHHHBBBBBBBBJZZZZZZOOOUURRYYYYYYYCCCRRRRRFFFFFFGGGGGGGNNNNNNNNNNNPPPPUKKKYYYYYYYYYCCCCCCCCCRRRR
FFFEEEEEEOOMEDEEFFFUFFFFPPPPPPVVVVPPPKKKKHHHHHBBBBBBBBBBBZZZZZUUUUUUURYYYYYYYYRRRRRRRFFFFFFFVGVGGGGGNNNNNNNNNKPPPPPPKKYYYYYYYYYCCCCCCCCCCCRR
FFEEEEEEEOOEEEEEFFFFFFFFPPPPIVVVVVVKKKKKKKHHHHHHHBBBBBBBBZZZUUUUUUUUUUAYYYYYYYYRRRRRRRFFFFFFVVVVGGGGGNNGNVNKNKKKPPPKKKKYYYYYYYCCCCCCCCCCRRRR
FFEEEEEEEEEEEEEEFFFFFFFFPPVVVVVVRVVKKKKKHHHHHHHBGBBBBBBBBBBUUUUUUUUUUUAAADDMMDORRRRRRRRFFFFFVVVVVVVGGGNGNVVKKKKKKKPPPEYYYYYYYYYCCCCCCRRRRRRR
FFEEEEEEEEEEEEEFFFFFFFFFVVVVVVVVVVVVKKKKHHHHHHHBBBBBBBBBBBBBUUUUUUUUUNUAUUDDDDDRRRRRRRRFFFFVVVVVVVVGGGNGKKKKKKKKEEEEEEEFYYYYYYCCCCCCCRRRRRRR
FFFFFFEEEEEEEEFFFFFFFFFFMVVVVVVVVVVGPPPKKKKKHHHEBBBBBBBBBBBBUUUUUUUUUUUUUDDDDDXXRARRRRRRFFFVVVVVVVCCCGNGGGGGKKKEEEEEEEEEYYEYYYHHCNCNNDDDDDDR
FFFFFFEEEEEEEFFFFFFFFFFFFVVVVVVVVVVVPPPPKQKHHHRBBBBBBBBBBBNUUUUUUUUUUUUUUUDDDDAXAADRRRRRFFFVVVVVVVCCCGGGGGTGKKEEEEEEEEEEEEEEHHHHNNNNNDDDDDRR
FFFFFEEEEEEEEFFFFFFFFFFFFVVVVVVVVVXXXXPPPQQRRHRBBBBBBBBBBBBBUUOUUUUUUDUDDDDDDAAAAADDRRRRRFFFVVVVVVVEEGGGGGTTTVVVEEEEEEEEEEGGGHHNFNNNNNNDOORO
FFFFFEEEEEEEEEEFFFFFFFFFFVVVVVVVVVXXXXQQQQQRRRRBBBBBBBBBBBBOUUOOOKUUDDDDDDDDDJAAAADDDRFFFFFVVVVVKVEEEEEEEGTTTVVEEEEEEEEEEEGGGNNNNNNNNNNNOOOO
FFTFFFEEEEETEEEEFFFFFFFFFVVVVVVVXXXXXQQQQQQRHHRRRRRRBBBOOBBOUOOOOKKKKDDDDDDDDDAAADDDDDDDDDDVVVVVKEEEEEEEITTTTTVEEEEEEEEEEGGGGGGNWNNNNNNOOOOO
TFTTTTEEEEEEEEEEFFFFFFFFFVVVVVVVXXXXQQQQQQQRRHHHHRRRRBOOBBOOUOOOOKKKKDDDDDDDDDDAADDDDDDDDDPVVIIVKEEEEEEEEETTTTTEEEEEEEEEEGGGGGGNNNNNDNNNOOOO
TTTTTTTETEEEEEEEFFFFFFFFCCVVVVVVXGGXQQQQQQQRHHHHHVVRRBOOOBOOOOOKKKKKKDDDDDDDDDDDDDDDDDDDDDDDIIIEEEEEEEEEEEETYTTTTYEEEEEEEGGGGGGCNNNNNNRRROOO
WTTTTTTTTTTTEWEMEFFFFFFFFVVGVVXXXGGXQQQQQQQHHHHHHVVVVVOOOOOOOOKKKKKJJDDDTDDDDDDDDDDDDDDDDDDIIIESEEEEEEEEEEEYYYYYYYYEEEEEEEGGGCCCCCNNNQRRROOO
TTTTTTTTTEEEEEEEEFFFFFFFHGGGVVGGGGGGHQQQQQQQHHHHCVVVVVOOOOOOZOZSKKKKKKDTTDDDDDDDDDDDDDDDDDDDIEEEEEEEEEEEEEEYYYYYYYYEEEEEEEGGGCCCCCCNRRRRROOO
TTTTTTTTTTTTEEEEFFFFFFFHHGGGGGGGGGGGHHQQQQQHHHHCCVVVYVVOOOOOZZZZHKKKKSSDDDDDDDDDDDDDDDDDDDDDDEEEYEEEEEEEEYYYYYYYYYYYYYECCCGGGCCYYYCCOORRROOO
ITTTTTTTTTTTEEEESFFHHHHHGGGGGGGGGGGGHHHQQQHHHHVVVVVVVVVVVOZOZZZHHHHKKSSDDDDDDDDDDDDDDDDDDDDDXEEYYYYYEEHHCCYYYYYYYYYYYYRRRRGGGCYYYYYYOOOROOOO
IITTTTTTTTTEEEEEEFFHPPPGGGGGGGGGGGGHHHHHHQHHHVVVVVVVVVVVVZZZZZZHHHHHKDDDDDDDDDDDDDDDDDDDDDDDDEYYYYYYYHHHCCYYYYYYYYYYYYRRRRGGGCYYYYYMMOOOOOOO
ITTTTTTTTTTTEEEEEFFPPPPPGGGGGGGGGGGHHHHHHHHHHHHVVVVVVVVVZZZZZZZHZZHHHDDDDDDDDDDDDDDDDDDDDDDDDDYYYYYYYHHHHHRYYYHHHYYYYYRRRRRCCCCYYYMMMMOOOOOO
IITTTTTTTTTTEEEEPPPPPPPPGGGGGGGGJJHHHHHHHHHHHHHVVVVVVVVVZZZZZZZHZZHHHDDDDDDDDDDDDDDDDDDDNDWWYYYYYYYYHHHHHHHYYYPPHHHYYYRRRRRRRRRYYYYMMMOOOOOO
ITTTTTTTTTTTTTPPPPPPPPPGGGGGGGGJJJJHHHHHHHHHHHHVVVVVVVVVVZZZZZZZZHHHHHHHDDDDDDDDDDDDDDDDDWWWWYYYYHYHPHHHHHYYYYHHHYYYYYRRRRRRRRRYYYYMMMMOOOOO
IITTTTTTTTTTTPPPPPPPPPDGGGGGGGGJJJJHHHHHHHBBBHVVVVVVVVVVZZZZZZZZZZHHHHWDDDDDDDDDDDDWWWWWWWWWWWYYYHHHHHHHHHHHXXHHHYYYYYRRRRRRRRRYYYNNNMNNNNNO
IITTTTTTTTTTTTPPPPPPPPPLGGGGGGJJJJJJHHHHHHBBBBAVVVVVVVVVZZZZZZZZZHHHWWWWDUCDDDDDDDDXXWWWZWZZZZZYHHHHHHHHHHHHHHHHHYYYYYRRRRRRRRRYYDNNNNNNNNOO
IIITTTTTTTTTTTKPPQPPLLLLGGGBJJJJJJJJJHHHHBBBBFBVVVVVVZZVZZZZZZZZZHHHWWWWICCDDDDGGGXXXXWZZZZZZZZYHHHHHHHHHHHHHHHHHYYYYYRRRRRRRRRRRRRRNNNNNGGO
GGGGTTTTLTTTTTKQPQQPPLLLHHGHHJJJJJJJJJHHBBBBBBBBBVVVVZZZZZZZZZZZZWWWWWWWWWCCCCGGXXSXXXZZZZZZZZZZHHHHHHHHHHHHHHHHHHYYYYRRRRRRRRRRRRRRNNNNUUGG
GGGGLLLLLLTTQQQQQQQQLLLLHHHHHJJJJJJJJJJUUSBBBBBBBVVVVZZZZZZZZZZZWWWWWWWWWCCCCGGGXXXXXXXZZZZZZZZZHQQQQHHHHHHHHHHHHYYYYYRRRRRRRRRRRRRRNNNNNNNG
LGLLLLLLLLTDQQQQQQQLLLLHHHHHHJJJJJJJUUUUUUUUBBBBBBBZZZZZZZZZDZZZWWWWWWWWCCCCCCGGXXXXXXXXXZZZZZZZZQQQQQHHHHHHHHEEHYYYYAARRRRRRRRRRRRRNNNNNGGG
LLLLLLLLLLLQCQQQQQQLLLLHHHHHHJJJJJJJUUUUUOUUUBBBBBBZZZZZUDDDDWWWWWWWWWWWCCCCCGGGXXXXXXXXMMMMMMQQQQQQQQQHHHHHHHHHWYYYFFARRRRRRRRRRRRRNNNGGGGG
LLLLDRLLLQQQQQQQQQLLLLHHHHHHHJJJRRJJUUUUUUUUUUBBBBBBBZZVDDDDDRWWWWWWWWWWCCCCCGGGVVVXXXXXMMMMMMQQQQQQQQQHHHHHHHHHHFFFFAARRRRRRRRRRRRRNNGGGGGG
LLLLRRRLLLQQQQQQQQQQLLHHHHHHHHHJRJJJUUUUUUUUUUUBBBBBBGZVDDDDWWWWWWWWWWWWCCCCGGVGVVVVXXXXMMMMMMMMMMQQQQQHQQHHHHHHHXFFFFARRRRRRRRRRRRRPNGXLGGG
SRLRRRLLLLLQQQQQQQQLLLHHHHHHHHHHRRJJJUUUUUUUUUUBBBBBBBBDDDDDWWWWWWWDWWWHCCCCGGVVVVVVVXXXMMMMMMMMMMQQQQQMQUHWHHHXXXXXRRRRRRRRRRRRRNNNNNLLLLLG
SRRRLLLLLLLQQQQQQQQCCHHHHHHHHHHHHJJUUUUUUUUUUUBBBBBBBBDDDDDDWDDWDDDDDWWDFFFGGGVVVVVVVXXXMMMMMMMMMMQQQQQQQXGXXXXXXXXXRRRRRRRRRRRRRNNNNNLUULLG
SRRLLLLNLQQQQQQQQCCCCCHHHHHHHHHHQUUUUUUUUUUUUUBBBBBBWWDDDDDDDDDDDGDDDWDDFFGGGGVVVVVVXXXXMMMMMMMMMMQQQFQQQXXXXXXXXXXFRRRRRRRRRRRRRNNNLLLLLLLL
SLLLLLLNLQQQQQQQQQQCCHHHHHHHPHHHHUUUUUUUUUUUUUBBBBBBBWWWDDDDGDGGDGDDDDDDDDQQGGKVVVVVXMMMMMMMMMMMMMQQQQQQQQQXXXXXXXXFRRRRRRRRRRROOOJNLLLLLLLL
SNLLLLLNNQQQQQQQQQQCHHHHHHHHHHHHCUUUUUUUUUUUUZBBBBBBWWWWWWDDGDTGGGGGDDDDDDQQGGGPPGVVVMMMMMMMMMMMMMQQQQQQQQXXXXXXXXFFRRRRRRRRRROOOOJJLLLLLLLL
SNNNNNNNNSQQBQQQQQQXHHHHHHBHHBBBUUUUUUUUUUUUZZZZBBWWWWWWWWWWGGGGGGGGDDDDDDQQQGGGGGGCMMMMMMMMMMMMMMZZQQQQQQXXXXXXXXXERRRRRRRRRRRRROJFFBLLLLLL
GKNNRNNNNNNBBQQQQQXXHHHHHHBBBBBBBBUUUUUUUPPPZZZZBBBWWWWWWWWWWGGGGGGYGDDQDQQQGGGGGGGGMMMMMMMMMMMMMMQQQQQQQQQXXXXXXXEERRRRRRRRRRRRRFFFFFLLLLLL
GNNNNNNNNNBBBQQQQBBXHHFFBBBBBBBBBBBBUUUUUPPPPPPPBBBBWWWWWWWWWGGGGGGGGDDQQQQGGGGGGGGGMMMMMMMMMMMMMMQQQQQQQQQXXXXXXXEERRRRRRRRRRRRRFFFFLLLLLLL
GNNNNNNNNNBBBBQQBBBXXFFFBBBBBBBBBBBUUUUUPPPPPPPPBBBMMMWWWWWWWGGGGGGGDDDQQQQGGGGGGGGGMMMMMMMMMMMMMMQQQQQQQQQXXXXXQXEERRRRRRRRRRRRRFFFFXLLELLL
GGYNNNNNNNNBBBQBBBBBBFFFBBBBBBBBBBUUUUPPPPPPPPPPPBBWWWWWWWGWWGGGGGGGGGGGQQQGGGGGGGGCMMMMMMMMBBBZQQQQQQQQQQQQXXCXXXXERRRRRRRRRRRRRFFFFFEEELLL
GGYYNNNNNNNBBBBBBBBBFFFFFBBBFBBBBBBBUUPPPPPPPPPPPBBWWWWWWWGGGGGGGGGGGGGGGQQQQGGGGGGCMMMMMMMMBBBMMQQQQQQQQEEXXEEZEEEEEEEEEEEEFRRRRFFFFFEEEELL
GGGGNNNNNNNBBBBBBBBFFFFFFBFFFBBBBBBBBPPPPPPPPPPPPPBWWWWWWWWGGGGGGGGGGGGQQQQGGGGGGGSSMMMMMMMMBBBMMQQQQEEQEEEXEEEEEEEEEEEEEEEEERRRRFFFFEEEEEEL
GGGGNNNNNNNBBBBBBBBFFFFFFFFFBBBOOBBBBPPPPPPPPPPPPPPWWWWWWWWGGGGGGGGGGGGGQQQQQQQGGSSSMMMMMMMMBBBMMQQQQEEEEEEEEEEEEEEEEEEEEEEEERRRRFFFFEEEEEEE
GGGGGNNNGGBBBBBBBBBFFFFFFFFFFOOOBBBOPPPPPPPPPPPPPWWWWWWWWWWWWGGGGGGGGGGQQQQSQSQSSSSSMMMMMMMMBBBQQQQQQQEEEEEEEEEEEEEEEEEEEEEEERRRRFFFEEEEEEEP
GGGGGGGGGGGGBBBBBBBBFFFFFFFFFFOOOOOPPPPPPPPPPPPPAAAAWWWWWWWWWWWWGGGGGGQQQQQSSSSSSSSSSMMMMMMMBBBQQQQQQEEEEEEEEEEEEEEEEEEEYEEEERRRREEEEEEEEECI
GGGGGGGGGGGGBBBBBBBBFFFFFFFFOOOOOOOPPPPPPPPPPPPAAAAAWWWWWWWWWWWWGWGGQQQQQQQQSSSSSSSSSMMMMMMMBBBUUQQQEEEEEEEEEEEEEEEEEEEEYBEEEEEEEEEFEEEERIII
GGGGGGGGGGGGBBBBBBBBBBFFFFFFOEOOOOOPPPPPPPPPPPPAAAAAWWWWWWWWWWWWWWGGGGQQQQQSSSSSSSSSSSSMBBBSBBBUUUUQEEEEEEEEEEEEEBBBEEEEEBEJEGGEEEEFFEEERIII
GGGGGGGGGGGGBBBBBBBBBBBBBFFFFEEOOOOPPPPPPPPPPPWAAAAAAWWWWWWWWWWWWWWUGGQQQQQSSSSSSSSUUUYBBBBUBBBUUUUUNEUUEEEEEEEEEBBBVEBEBBBJJJGEEEGFFERRRIII
GGGGGGGGGGGGGGBBBBBBBBOOOFFFIOOOOOOPPPPPPPPPPWWWWAATTTWWWWWWWWWWWWWWQQQQQQQQSQSSSSUUUUYTBBBBBBBUUUUUUUUZEEEEEEEEEBBBBEBBBBBJJJGEEGGFFERRRIII
GGGGGGGGGGGGGBBBBBBBBBBOOBOOOOOOOOOPPPPPPOKKHKKKHHHTHTTZZWWWWWWWWWWQQOQQQQQQQQQQSQUUUUYYBBBBUUUUUUUUZZZZEEEEEEEEEEEBBBBBBBBGGGGGGGGGGERRRIII
GGGGGGGGGGGGGBBBBBBBBBBBOOOOOOOOOOOPPPPPPKKKKKKKHHHHHHHBZZZZWWWEWWOOOOOQQQQQQQQQQQUYYYYYBBBBUUUUUUUUUZZZEEEEEEEEEEEEBBBBGGPGGGGGGGGGDERRRIII
GGGGGGGGGGGXXBBBBBBBBBBBOOOOOOOOOOOPPPPPPKKKKKKHHHHHHHZZZZFWWWWWWWOOOQQQQQQQQUUUUUUFYYYYYYYUUUUUUUUUZZZZEEEEEEIEBBBBBBBBBGGGGGGGGGGGGRRRRIII
GGGGGGGGGGXXXBBBBBBBBBBBBOOOOOOOOOOPPPPPPKKKKKHHHHHHHHHHZZZWWWWWWOOOQQQQQQQQQUUUUUUUYYYYYYYYYGUUUUZZZZZZZZEMMMEEBBBBBBBBBGGGGGGGGGGGGRRRRIRR
GGGGGGGGGGXGGBBBBBBBBBBBOOOWOOOOOOOOKKKKKKKKKKHHHHHHHHHHMMMWWMWWOOOOOQQQQQQQQQUUUUUUZZZYYYYYYZUZZZZZDZZDDDMMMMMMBBBBBBBBBGGGGGGGGGGGGGRGRRRR
GGGGAAGGGGGGGGBBBBBBBBBBOOWWOOOOOOOOOOKKKKKKKKKKHHHHHHHHMMMMWMWWWOOOOOQQQQQQUUUUUUZZZZZZZYYZZZZZZZZZDDDDDMMMMMBBBBBBBBBBBKGGGGGGGGGGGGGGGRRR
GGGGGGGGGGGGGBBBBBBBBBBBWWWWOOOOOUOOKKKKKKKKKKKHHHHHHHHHMMMMWMMMOOOOOOOOOQUUUUUUUUUZZZZZZZZZZZZZZZZZDDDDDMMMSSSSBSBBBBBBKKKKGGGGGGGGGGGGGRRR
GGGGGGGGGGGGGGBBBBBBBBBBBBWWWUUUOUOVVUUUKKKKKKHHHHHHHHHHHMMMMMMMOOOOOOOOOQUUUUUUUUUUUEZZZZZZZZZZZZDDDDDDDDMSSSSSSSBBBBBBKKKKGGGGGGGFFFGGGRRR
GGGGGGGGGGGGGGBBBBBBBBBBBBPWWPPUUUUUUUUUKKKKKKKKHHHHHHHQMMMMMMMMMMMMLOLLOONUUUUUUUUUUEZZZZZZZZZZZDDDDDDDDDMSSSSSSSBBBKBKKKKKKKGGGGGFFFGGGGRR
GGGGGGGGGGGGGGBBBBBBBBBBBBPPPPPUUUUUUUUUKKKKKKKKKHHQPPPQMMMMMMMMMMMLLLLLNNNNUUUUUUUUUEZZZZZZZZZZZZZDDDDDDDDSSSSSSSSXKKKKKKKKKKGGGGGFFFGGGGGR
GGGGGGGGGGGGGGBBBBBBBBBBBBPPPPPUUUUUUUUUKKKKKKKQKSQQPQPQQMMMMMMMMMMLLLNNNNNNNUUUUUUUUUZZZZZZZZZZZZYDDDDDDDSSSSSSSSSSSYYKKKKKKKKKGGGFFFGGRRRR
GGGGGGGGGGGGGBBBZBBBBBBPPPPPUPUUUUUUUUUUKKKKKKKQQQQQQQPQQMMMMZZZZMMLLLLNNNNNNUUUUUUSUUZZZZZZZZZZZZYYADDDANNSSSSSSSSJKYKKKKKKKKKKGGGFFFGGZRRR
GGGGGGGGGGGGGGBBZBBBBBBBUUPUUUUUUUUUUUUUUKKKKKKQQQQQQQQQQMZZZZZMMMZZLLZZZNNNUUUUUUUUUZZZZZZZZZZZZZZYAADAANNSSSSSSSSJKYYKKKKKKKKKZZZFFFQZZRRR
GGGGIGGGBBBBBBBBZZBBBBBBUUUUUUUUUUUVUVKKKKKKKKQQQQQQQQQQQQZZZZZZMZZZLLZZZNNUUUUUURDDUUZZZZZZZZZZZYYYYAAAANNNNSSSSSSSKKKKKKKKKKKZZZZFFFFFFFFR
GGGGGGGNNBBBBBBZZBBBBZBZZUUUUUUUUUVVVVKKKKKKKKQQQQQQQQQQQZZZZZZZZZZZZZZZZZNNUUDUUUDDZZZZZZZZZZZZZYYYYYAANNNNNNNNOSRRRKKKKKKKOKKKPZZFFFFFFFFR
GGNNNGGNNNNNBBZZZBBBBZZJZZZUUUUUUUUVVVVVKMMMKKQQQQQQQQTTQTTTZZZZZZZZZZZZZZZDDDDUUUDDDZZZZZZZBZZZZYYYYAANNNNNNNNNNRRRRKKKKYKKKKKPPZNFFFFFFFFR
NNNNNGNNNNNNBBBZZZBBBZZZZZZZUUUUUVVVVVVVVVMMKKQQQQQQQQTTTTTLLZZZZZZZZZZZMMMMLDDDDDDDDZYBBBBBBZZZZYYYYAANNNNNNNNRRRRRKKKKKKKKKKPPPZZFFFZZZZRR
NNNNNNNNNNNJBBZZZZZZZZZZZZUUUUUUUVVVVVVVVMMMMKUUQQQFFTTTTTTTTZZZZZZZZZZZMLLMLDDDDDDDDDBBBNBBBBZYYYYYYAAANNNNNNNNNNNNKKKKKKKKKKPPPZKZZZZZZRRR
NNNNNNNNNNNNBBZZZZZZZZZZZZUUUUUUUVVVVVVMVMMMMUUUUTTTTTTTTTTTTTZZZZZZZZBBLLLMLDDDDBDDBBBBBBBBBBBYYYYYYYYYNNNNNNNNGGGKKKKKKKKKPPPPPPZZZZZZZIRR
NNNNNNNNNNNQZZZZZZZZZZZZMUUUUUUUUVVVVVVVUMMMMMUUTTTTTTTTTTTTTZZZZZZZZZZBBLLLLDDDDBBBBBBBBBBBBBBYYYYYYYYYNNNNGGGGGGGKRKAAAKKPPSPPPPZZIZZIIIIR
NNNNNNNQQQQQQZZZZZZZZZZZMMUUUUUUUUVVVVVVUMMMMUUUTTTTTTTTTTTTTZZZZZZZZZZBBLLLLLDLDBBBBBBBBBBBBBBYVVVYYYYYNNNNGGGGGZGZRSSSSSSSSSPPPPPPZZIIIIII
NNNNNNNNQQOQJZZZZZZZZZMMMMMUUUUUUCVVVDDVUMMMUUUUTTTTTTTTTTTTTTZZZZZZZZZBBLLLLLLLVVVVBBBBBBBBBBVVVVVVYYYYVVGGGGGGGZZZZSSSSSSSSSSPPPPPZZIIIIID
NNNNNNNNNOOQJJJZZJZZZMMMMMMMUUUMUCCCSSSSSSSUUUUUTTTTTTTTTTTTTZZZZZZZZZZBLLLLLLLLVVVVBBBBBBBBBBVVVVVVVYYYVVVGGGGZZZZZZSSSSSSSSSSSSPPPPPIIIIII
NNNNNNNOOOAJJJJJJJJZZMMMMMMMMUMMUCCCSSSSSSSUUUUUTTTTTTTTTTTTTTTZZZZZZPZLLLLLLLLLVVVVVBBBBBBBBBBVVVVVVVVVVVVGGGGGGZZZSSZSSUSSSSSSSSSWWPIIIIII
NNNNNNNOOOJJJJJJJJJZZMMMMMMMMMMMUCCCSSSSSSSUUUUUTTTTTTTTTTTTTTTCZZZZZZLLLLLLKLLVVVVVVBBBBBBBBBVVVVVVVVVVVVVGGGGZZZZZSSZSQUSSSSSSSSWWWIIIIIII
NNNNNNNNOJJJJJJJJMMMMMMMMMMMMMMMMCOOSSSSSSSUUUUUUUUUTTTTWTTTTTTCCCZRCZAAALLLKVVVVVVVBBBBBBBBABVVVVVVVVVVVVGGGZZZZZZZSSZSZUSUHSSUSSSWWIIIIIII
NNNNNNNJJJJJJJJJJJJMMMMMMMMMMMMMOOOOSSSSSSSUUUUUUKUUTTTTTTTTTTTCCCCCCAAAAALKKKVVVVVVVVBBBBBBBVVVVVVVVVVVVVVVVZZZZZZZZZZZZUUUSSSSWWWWWWJJIIII
NNNNNNNNIJJJJJJJJJMMMMMMMMMMMMMMMMSSSSSSSSSUUKKKKKKUTTTZZTTTTTTTCCCCCCCAANNKKKVVVVVVVVVVBBBBVVVVVVVVVVVVVVVTVZZZZZZZZZZZUUUUWWSWWWWWWIWWWIWI
NNNNNNNIIJJJJJJJJJJMMMKMMMMMMMMMMMSSSSSSSSSUUUUKKKKKKZZZZZZCECTCCCCCCCLNNNNNNNNNVVVVVVVVVVBVVVVVVVVVVVVVVVVVVZZZZZZZZZZZUUUUWWWWWWWWWIWWWWWW
NNNNNNNIIJJJJJJJJJJMMMMMMMMMMMMMMMSSSSSSSSSLKUKKKKKKKZZZZZZCCCCCCCCCCCCDNNNNNNVVVVVVVVVVVVVVVVVVVVVVVVVVOOOVOOOZZZZZZZZUUUUUUWWWWWWWWWWWWWWW
NNNNNNIIIIJLJJJJJJMMMMMMMMMMMMMMMMSSSSSSSSSSSKKKKKKKKKZZZZZZCCCCCCCCCCCNNNNNNNVVVVVVVVVVVVVVVVVVVVVOOVVVOOOOOOOZZZZZZZUUUUUUUUUWWWWWWWWWWWWW
NNNNHHUIULLLJJJJJJMMMMMMMMMMMMMMMSSSSSSSSSSSSDKKKKKKKKZZZZZZZCCCCCCCCCCCNNNNVNVVVVVVVVVVVVVVZVOOOOOOVVVVOOOOOOOZZZZUUUUUUUUUUUUUWWWWWWWWWWWW
NNNUUUUUULLLLJJJJJMMMMMMMMMMMMMMMMSSSSSSSSSSSKKKKKKKKKKZZZZWWWCCCCCCCCCCCDNVVVVXXVVVVVVVVVIIIIOOOOOOVVVDOOOOOOOZZZZUUUUUUUUUUNNNNNNWWWWWWWWW
LLLUUUUULLLLJJJJMMMMMMMMMZZZZMMMZMSSSSSSSSSSSLKKKKKYKKZZZZZWWWWCCCCCCCCCEDVVVVVXXIIIVVVVVVZIIIOOOOOOVVVOOOOOOOOOOOOUUUUUUUUUUUNNNNNWWMWWWWWW
LLJUUUUULLLLLLJJJJMMMMMMMMZZZZZZZZSSSSSSLLLLLLLLKKAKKKKWZWWWWWWCCCCCCCCEEEEVVVVXXVIIIVVVIVIIIIIOOOOOVVOOOOOOOOOOOOOOUUUUUUUUUNNNNNWWWWWWWWWW
LLLLULUULLLLLLLZZZMMMEMMMOZZZZZZZZSSSSSLLLLLLLLLLKKCKKWWWWWWWWWWWWCCEEEEEEVVVVXXXVIIIIIIIIIIIIIIOOOOOOOOOOOOOOOOOOOOUUUUUUUUNNNNNNNNWWWWWWWW
LLLLULLLLLLLLLLLZEEMMEEMOOZZZZZZZZSSSSSLLLLLLLLCCCCCCKWWWWWWWWWWEEEEEEEEENNVZVJXXXIIIIIIIIIIIIIIIOOOOOOOOOOOOOOYYOOUUUUUUUUUNNNNNNNNWWWWWWWW
LLLLLLLLLLLLLLLLZEEEEEEMOOZZZZZZZZZSSSSLLLLLLLLLLCCCKKWWWWWWWWWWEEEEEEEEENNXXXXXXXIIIIIIIIIIIIIIIOOOOOOOOOOOOYYYYUUUUUYYUUUUUUNNNNNZZWWWWWWW
LLLLLLLLLLLLLLLLEEEEEEEMOZZZZZZZZZZZZZZLLLLLLLLLLCCCWWWWWWWWWWWWEEEEEEEEELLLLVXXVXIIIIIIIIIIIIIIIIOOOOOOOOOOOYYYYUUUYUYYUGUUNNNNNNNZZWWWWWWW
LLLLLLLLLDLLLLMMEOOOEEEOOOZZZZZZZZZZZZLLLLLLLLLLLCCCCCWWWWWWWWWWEEEEEEEEEVLLLVVVVCCCIIIIIIIIIIIIIIOOOOOOOOYIYYYYYYYYYUYYYNNNNNNNNZZZZZWWWWWL
LLLLLLLLLLLLMMMMVOVOEOOOOOZZZZZZZZZZZZLLLLLLLLLLLCCCCCWWWWWWWWWEEEEEEEEEVVLLLLLLCCCCCCIIIIIIIIIIIIOOOOOOOOIIYYYYYYYYYYYYYNNNNNNNNZZZZZZWWWWL
LLLLLLLLLLLLMMMMVVVOEOOOOOOZZZZZZZZZZWLLLLLLLLLLCCCCCCCWPPWWWWWEEEEEEEEEEVLLLLLLCCCSPCIIIIIIDIIIIIIOOOOOOOIIYYYYYYYYYYYYNNNNNNNNNNZZZZZZZZWL
LLLLLLLLLLLMMMVVVOOOOOGGGGGGZZZZZZZZZZLLLLLLLLLLLUUUCCCPPPPWWWWWEEEEEEEEELLLLLLLCSSSZZZZZZZZZZZIIIIIOOOOOZZIIYYYYYYYYYYYYYYNNNNNNNZZZZZZZZWL
LLLLLLLLLLLMMVVVVVOGGGGGGGGGZZZZZZZOOULLLSLLLLUUUUUUCCCPPPPPPPWWPEEEEEEELLLLLLLLSSSSZZZZZZZZZZZDIIIOOOOOOZZIIIYYYYYYYYYYYYNNNNNNNNZZZZZZZZZL
RRTTLLLLKKLVVVVVVVVWGGGGGGGGZZZZZZZZZUULUULLLLUUUUUCCCCPPPPPPPPPPEEERELELLLLLLLLLSSSZZZZZZZZZZZDIIIOOOOIIIIIIIIIYYYYYYYYYNNNNNNNNZZZZZZZZZZL
RTTTALLLKKLVVVVVVVVVGGGGGGGZZZZZZZZUQUUUUULUUUUUUUUUCCCPPPPPPPPHPPEEEULLLLLLLLLLLSSSZZZZZZZZZZZDXXOOOIIIIIIIIIIIYYYYYYYYYNNYNNNNNNNQZQZOFFPF
TTTTTLLLKKVVVVVVVVVGGGGGGGGGEEEZZZLUUUUUUUUUUUUUUUUUUCCCPPPPXPZHPGEUUULLLLLLLLLLLSSSZZZZZZZZZZZDDXXOXXXIIIIIIIIIYYYYYYYYYYYYQSSSNQQQQQQFFFFF
TTKTTTTTKKKVVVVVVVVGGGGGGGGEEEEEEZEEUUUUUUUUUUUUUUUUUCCCOPPXXPPHHHHHUULLLLLLLLLLSSSSZZZZZZZZZZZDDXXXXXIIIIIIIIIIYYYYYYYYYYYYYSSQQQQQQQQFFFFF
TTTTTTTTNNKVVVVVVVVGGGGGGGGGEEEEEEEEUUUUCCCCCCCCUUUUUCCOOOPXXHHHHHHKKLLLLLLLLLLLLSSSZZZZZZZZZZZDXXXXXRAAIIIIIIPIYYYYYYYYYYIIIMSMQQQQQQQFFNFF
TTTTTTTNNNKSVVVVVVVGGGGGGGGHHHHHHHEEUUUUCCCCCCCCUUWCCCCCOOOOXXXHHHGKKKKLULLLLALLLSSZZZZZZZZZZZZDDXRXXRAAAIIIIIIIYYYYYYYYIIIIIMMMQQQQQQQQFFFF
TTTTTTTTNNKSSVVSSVGGGGGGGGGHHHHHHHEECCCCCCCCCCCCUUWWCCCCOXOXXXXXXKKKKKKLLLOLLAALSSSZZZZZZZZZZZZDXXRRRRPAAIIIIIIIMMMYYYYYIMMIIMMMQQQQQQQFFFFF
TTTTTTTTRRSSSBVSVVGGGGGGGGGHHHHHHHEUCCCCCCCCCCCCKWWWWWWWOOOXXXXXXKKKKKKKLLLHLAAASSSZZZZZZZZZZZZDDDRRRRPPPFIIIIIIMMMMYYIIIMMMMMMMMQQQQBFFFFFF
TTTTTTTTRTSSSSSSVGGGGGGGGHHHHHHHHHEVCCCCCCCCCCCCNNWWWWWWWWWWXXXKKRKKKKKKKLLLLLAAASSZZZZZZZZDDDDDDRRRRPPPPPPIIIIIMMMMMIIMMMMMMMMMMQQQQBFBBBFF
TTTTTTTTRTSSSSSSSLLLGGGGGHHHHHHHHHEVCCCCCCCCCCCCNNWWWWWWWWWSXXXKKKKKKKKKKLLLLLAAAASZZZZZZZZDDDDDDRRRRRPPPPPRRRIMMMMMIIIIMMMMMMMMMQQQBBBBBBFF
TTTTTTTTTTSSSSSSPLLLLGGGLHHHHHHHHHAVVVVVVCCCCCCCNNNNWWWWWWSSXXXKKKKKKKKKKKLLAAAAAGGZZZZZZZZQQDRRDDRRRPPPRRRRRRMMMMMMMIIIMMMMMVVVVVVVVVVBFFFF
TTTTTTTTTTSSSSSSSLLLLLLLLHHHHHHHHHAVVVVVVCCCCCCCNNNNNNWWWWSXXXXXKKKKKKKKKKLKKKKKAAGGGGGGQQQQQQRRRRRRRRRPRRRRRMMMMMMMMIIIMMMMMVVVVVVVVVVBRRRR
TTTTTTTTTTSSSSSSLLLLLLLLLHHHHHHHHHVVVVVVVVVNNNNNNNNNNNNWWWSSXXXXSKKKKKKKKKKKKKKAAAGGGGGSSQQQQQQTRRRRRRRRRSSRRSNMMMMMMIIIMMMMMVVVVVVVVVVBRRRR
LLLLTTTTCCCCSSSSLLLLLLLLLHHHHHHHHHDVVVVVVVVNNNNNNNNNNNNNNSSSSSSSSKKKKKKKKKKKKKKKAAGSSSGSSQQQQQTTRRRRRSSSSSSRRSSMMMMMMIIIMMMMVVVVVVVVVVVBBRRR
LLLLLTTTTTSSSSSSLJLLLLLLLHHHHHHHHHDVVVVVVVVVNNNNNNNNNNNNSSSSSSSSSSSKKKDDKKKKKKKKKKSSSSSSSSQQQTTTRTTTTTSSSSSSSSSMMMMMMVVIMMMPVVVVVVVVVVVBBRRR
LLLLLTTTTLSSSSRJJJJLLLLLLHHHHHHHHHDVXVVVVVVVFFNNNNNNNNNSSSSSSSSSSSKKKKDDKKKKKKKKKKSSSSSSSSQQTTTTTTTTTUSSSSSSSSSMMMMMMVVVMMMMVVVVVVVVVAAAURRR
LLLLLLLLLLLLSJJJJRLLLLLZZHHHHHHHHHFFVVVVVVVVFFFFFFNNNNNSSSSSSSSSSSSSKDDDDDKKSSKSSKSSLSSSSQQTTTTTTTTTTUUUUSSSSSVVVVVVVVVVMMMSVVVVVYYYYARRRRRR
LLLLLLLLLLKKKJJJJRLLHHHHHHHHHHHHHHFFDMVVVVVQQFFFFFFNNNNSSSSSSSSSSSSSSSSMDDDDSSSSSSSSLSSLSQTTTTTTTTTTTUUUSSSSSSVVVVVVVVVVVMMJJJJYYYYYYAARRRRR
MLLLLLLLLLKKKJJJJJRLHHHHHHEDDDDDDDDDDMMVVVVQFFFFFFFFNNSSSSSSSSSSSSSSSSSMDDSSSSSSSSSSLLSLLQTTTTTTTTTEIIISSSSSSSSMVVVVVVVVJJMJJJYYYYAAAAAAAAVV
MLLLLLLLLLKJJJJJJJJRHHHHHHDDDDDDDDDDDDDDQQQQFFFFFFNNNFFMSSSSSSSSSSSSSSSDDDDDSSSSSSSLLLLLVTJTTTTTTTTEIIIISSSSSSSSVVVVVVVJJJJJJJJJYYAAAAAAAAAA
MMMLLLLLLLLJJJJJJJRREEEEEELDDDDDDDDDDDDDQQQQFFFFFFFFFFFSSSWWWWSSSSSSSSSFDDDSSSSSSSLLLLLLTTTTTTTTTTTEIIISSGGGWMMHMMMVVVVJJJJJJJJJJJJAAAAAAAAA
RMRLLLLLLLLJJJJJJRRREEEEEEDDDDDDDDDDDDDQQQQQFFFFFFFFFFFFSLWWWSSSSSSSSSFFFDDSSSSSSSSSLLLLLLTTTTTTTTEEIIIIGBGGGGMMMMMMMVJJJJJJJJJJJJAAAAAAAAAU
RRRBBLLLRRRJJJJJRRRREEEEEEEDDDDDDDDDDDDQQQQQQFFFFFFFFFFFSLLWWWSSSSSSFFFFDDNSSSSSSSSSLLLGLMMTKTTTTTEEIIIIGBBGGGGMMMMJJJJJJJJJJJJJJJAASAAAAAAU
RRRRLLLLRRJJJJJRRREEEEEEEEEDDDDDDDDDDDQQQQQQFFFFFFFFFFFFSLLLLLSSSSFFFFFNNNNNNSSSSSSSSLLLLMMTTTTTTTTTIIIGGGGGGGGGGGGGZJJJJAAJJJJJJAAAAAAAAAUU
RRRRRRRRRRRRJJJRRREEEEEEEEEDDDDDDEDDDQQQQQQQFFFFFFFFFFFLLLLLFFSSSSSFFFNNNNNNNSNSSSSSSLLLMMMIIIIITPTTIIIGGGGGGGGGGGGGOIIJJAAAAAAAAAAAAAAAAAUU
RRRRRRRRRRRRRJRRRRREEEEEEEDDDDDEEEEDQQQQQQQQFFFFFFFFFFFLLLLLFFSSSFFFFFNNNNNNWNNNSSSSSMMMMMMIIIIPPPTIIIGGGGGGGGGGGGGGOOOJOAAAWWWWAAAAAAAAAUUU
RRRRRRRRRRRRRRRRRRREEEEEEEDDDEDEEEQQQQQEQQQQSSFFFFFFFFFLFLLLFFFSSFFFNNNNNNNNNNNNSMMMSMMMMMMIIIIIPIIIIIGIIIGGGGGGGGGGOOOOOOAAAAWAAAAAAAAAAUUU
RRRRRRRRRRRRRRRRRRRRRREEEEEEEEEEEEQQQQEEQQQSSFFFFFFFFFDFFFLLLLFFFFFFNNNNNNNNNMMNMMMMSMMMMMIIIIIIPIIIIIIIIIGGGGGGGGGGGOOOOZANNWWWWAAAAAUUUUUU
RRRRRRRRRRRRRRRRRRRRRRREEEEEEEEEEEEEEEEEQSSSFFFFFFFFFFFFFFFLLFFFFPPPNNNNNNMNMMMMMMMMMMMMMMMIIIIIIIIIIIIIIIGGGGGGGGGGGOZZZZZNNWWWWAAAAUUUUUUU
RRRRRRRRRRRRRRRRRRRRRRREEEEEEEEEEEEEEEEQQSSSSSSSSFFFFFXFFNNNLFFFFPPPNNBBNMMMMMMMMMMMMMMMMMMIIIIIIIIIIIIIIIIIQGGGGGGGGZZZZZZNWWWWWWAUUUUUUUUU

View File

@@ -0,0 +1,6 @@
AAAAAA
AAABBA
AAABBA
ABBAAA
ABBAAA
AAAAAA

View File

@@ -19,7 +19,12 @@
"linter": { "linter": {
"enabled": true, "enabled": true,
"rules": { "rules": {
"recommended": true "recommended": true,
"complexity": {
"noForEach": {
"level": "off"
}
}
} }
}, },
"javascript": { "javascript": {